Изменения

Перейти к: навигация, поиск

Распознавание текста на изображении

6633 байта добавлено, 19:02, 19 января 2021
м
E2E-MLT: github
'''Распознавание текста на изображениях''' ( оптическое распознавание символом (англ. optical character recognition, OCR)) - одно из направлений распознавания образов, задача которого заключается в переводе изображений рукописного, машинописного или печатного текста в текстовые данные, использующиеся для представления символов в компьютере (например, в текстовом редакторе).{{В разработке}}
'''Распознавание текста на изображениях''' (оптическое распознавание символов (англ. optical character recognition, OCR<ref>https://en.wikipedia.org/wiki/Optical_character_recognition</ref>)) {{---}} одно из направлений распознавания образов, задача которого заключается в переводе изображений рукописного, машинного или печатного текста в текстовые данные, использующиеся для представления символов в компьютере (например, в текстовом редакторе).
== Общая информация ==
Распознавание текста на изображениях является важной задачей машинного обучения, так как это позволяет организовать удобное взаимодействие с данными: редактирование, анализ, поиск слов или фраз и т.д.
Примерами распознавания текста являются оцифровка изображений текста (отсканированные книгиВ последние десятилетия, статьиблагодаря использованию современных достижений компьютерных технологий, журналы)были развиты новые методы обработки изображений и распознавания образов, обработка анкетных бланков, распознавание номеров машин и надписей на объектах и т.д.. Распознавание благодаря чему стало возможным создание таких промышленных систем распознавания печатного текста на изображениях является важной задачей машинного обучения, так как это позволяет удобное взаимодействие с данными — редактирование, анализнапример, поиск слов или фраз и тFineReader<ref>https://www.дabbyy.com/ru/finereader/</ref>, которые удовлетворяют основным требованиям систем автоматизации документооборота.
В последние десятилетия, благодаря использованию современных достижений компьютерных технологий, были развиты новые методы обработки изображений и распознавания образов, благодаря чему стало возможным создание таких промышленных систем распознавания печатного текста, как например, FineReader, которые удовлетворяют основным требованиям систем автоматизации документооборота. Тем не менее, создание каждого нового приложения в данной области по-прежнему остается творческой задачей и требует дополнительных исследований в связи со специфическими требованиями по разрешению, быстродействию, надежности распознавания и объему памяти, которыми характеризуется каждая конкретная задача.
== История ==
Разработка OCR-систем основана на технологиях, связанных с телеграфией и созданием считывающих устройств для слепых. В 1914 году Эммануэль Гольдберг разработал устройство, считывающее символы и преобразовывающее их в стандартный телеграфный код. Одновременно Эдмунд Фурнье д'Альбе разработал «Оптофон», ручной сканер, который, при перемещении по напечатанной странице, вырабатывал тональные сигналы, соответствующие определенным буквам или символам.
 
В 1974 году Рэй Курцвейл создал компанию «Kurzweil Computer Products, Inc» и начал работать над развитием первой системы оптического распознавания символов, способной распознавать текст, напечатанный любым шрифтом. Курцвейл считал, что лучшее применение этой технологии {{---}} создание машины чтения для слепых, которая позволила бы слепым людям иметь компьютер, умеющий читать текст вслух. Данное устройство требовало изобретения сразу двух технологий {{---}} ПЗС (прибор с зарядовой связью<ref>https://ru.wikipedia.org/wiki/ПЗС</ref>) планшетного сканера и синтезатора, преобразующего текст в речь.
 
Первой коммерчески успешной программой, распознающей кириллицу, стала программа «AutoR» российской компании «ОКРУС». Алгоритм «AutoR» был компактный, быстрый и шрифтонезависимый. Этот алгоритм разработали и испытали ещё в конце 60-х два молодых биофизика, выпускники МФТИ {{---}} Г. М. Зенкин и А. П. Петров. В настоящее время алгоритм Зенкина-Петрова применяется в нескольких прикладных системах, решающих задачу распознавания графических символов.
 
В 1993 году вышла технология распознавания текстов российской компании ABBYY. На её основе создан ряд корпоративных решений и программ для массовых пользователей. Технологии распознавания текстов ABBYY OCR лицензируют международные ИТ-компании, такие как Fujitsu, Panasonic, Xerox, Samsung, EMC и другие.
 
В 2000-х годах производительность и компактность OCR-системы позволила представить на рынок онлайн-сервисы по переводу текста с одного языка на другой. Со временем такие программы получили возможность обрабатывать изображения как печатного, так и рукописного текста.
 
С развитием технологий производства мобильных устройств и упрощения процесса разработки мобильных приложений, OCR-системы стали неотъемлемой частью разнообразных программ: от развлекательных до обучающих, от мобильных помощников до систем управления.
 
== Применение систем распознавания текстов ==
Системы OCR применяются во многих областях. Вот некоторые из задач, которые решают системы распознавания текстов:
* Считывание данных с бланков и анкет.
* Автоматическое распознавание номерного знака.
* Распознавание паспортных данных.
* Извлечение информации из визитных карточек в список контактов.
* Создание цифровых версий печатных и рукописных документов, например, сканирование книг для проекта "Гутенберг"<ref>https://ru.wikipedia.org/wiki/Проект_«Гутенберг»</ref>.
* Технология для помощи слепым и слабовидящим.
== История Наиболее распространенные задачи OCR ==С задачей распознавания символов связаны следующие проблемы:* Разнообразие форм начертания символов: документ может содержать несколько шрифтов сразу, а символы могут быть схожи по начертанию.* Искажение изображения, содержащего текст:** Шумы при печати.** Плохое качество изображения (засвеченность, размытость).* Вариации размеров, масштаба и положения символов на странице.* Влияние исходного масштаба печати: система оптического распознавания текста должна быть нечувствительной по отношению к способу верстки, расстоянию между строками и другим параметрам печати.
Разработка OCR-систем берет начало из технологий, связанных с телеграфией и созданием считывающих устройств для слепых. В 1914 году Эммануэль Гольдберг разработал устройство, которое считывало символы и преобразовывало их в стандартный телеграфный код. Одновременно Эдмунд Фурнье д'Альбе разработал "Оптофон", ручной сканер, который при перемещении по напечатанной странице вырабатывал тональные сигналы, соответствующие определенным буквам или символам== Процесс распознавания текста ==[[Файл:Процесс_распознавания_текста.jpg|thumb|380px|Процесс распознавания текста]]
В конце 1920-х и начале 1930-х годов Эмануэль Гольдберг разработал то, что он назвал "Статистической машиной" для поиска микрофильмов Система распознавания текста предполагает наличие на входе изображения с текстом (в архивах с помощью оптической системы кодового распознаванияформате данных графического файла). В 1931 году он получил На выходе система должна выдать текст, патент на машину, который позже был приобретен компанией IBMвыделенный из входных данных. Весь процесс распознавания текста состоит из нескольких задач.
В 1974 году Рэй Курцвейл создал компанию «Kurzweil Computer Products, Inc»=== Обработка изображения ===Перед началом распознавания текста изображение должно быть очищено от шума и приведено к виду, позволяющему эффективно выделять символы и начал работать над развитием первой системы оптического распознавания символов, способной распознать текст, напечатанный любым шрифтомраспознавать их. Курцвейл считал, что лучшее применение этой технологии — создание машины чтения для слепыхОбычно у изображения повышают резкость, которая позволила бы слепым людям иметь компьютерконтрастность, умеющий читать текст вслух. Данное устройство требовало изобретения сразу двух технологий — ПЗС планшетного сканера выравнивают его и синтезаторапреобразовывают в используемый системой формат (например, преобразующего текст 8-битное изображение в речь. Конечный продукт был представлен 13 января 1976 во время пресс-конференции, возглавляемой Курцвейлом и руководителями национальной федерации слепыхградациях серого).
В 1978 году компания «Kurzweil Computer Products» начала продажи коммерческой версии компьютерной программы оптического распознавания === Распознавание символов. Компания «LexisNexis» была одним из первых покупателей и приобрела программу для загрузки юридических бумаг и новостных документов в онлайн базы данных. Два года спустя Курцвейл продал свою компанию корпорации «Xerox», которая была заинтересована в дальнейшей коммерциализации систем распознавания текста. «Kurzweil Computer Products» стала дочерней компанией «Xerox», известной как «Scansoft».===''' ДОБАВИТЬ ОБЩИЕ СЛОВА '''<br><br>
Первой коммерчески успешной программой== Алгоритмы распознавания символов ===== Распознавание при помощи метрик ===Этой способ лучше всего работает с машинописным текстом, распознающей кириллицуно при обработке новых шрифтов точность распознавания падает. Метрика является признаком символа, была программа «AutoR» российской компании «ОКРУС»поэтому иногда в контексте данного способа говорят о процессе выявления признаков. Программа начала распространяться в 1992 годуВ качестве метрики используют [[Расстояние Хэмминга| расстояние Хэмминга]], работала под управлением операционной системы DOS и обеспечивала приемлемое по скорости и качеству распознавание даже на персональных компьютерах IBM PC/XT с процессором Intel 8088 при тактовой частоте 4которое показывает,77 МГц. В начале 90-х компания Hewlett-Packard поставляла свои сканеры на российский рынок в комплекте с программой «AutoR»сколько пикселей различаются изображения. Алгоритм «AutoR» был компактный, быстрый и в полной мере «интеллектуальный»Если признаки двух символов максимально похожи, то разность между их метриками (то есть расстояние между ними) стремится к нулю. Дальнейшая классификация символа происходит по-настоящему шрифтонезависимый. Этот алгоритм разработали и испытали ещё в конце 60-х два молодых биофизика, выпускники МФТИ — Г. М. Зенкин [[Метрический классификатор и А. П. Петров. Свой метод распознавания они опубликовали в журнале «Биофизика» в номере 12, вып. 3 за 1967 год. В настоящее время алгоритм Зенкина-Петрова применяется в нескольких прикладных системах, решающих задачу распознавания графических символов. На основе алгоритма компанией Paragon Software Group в 1996 была создана технология PenReader. Г.М Зенкин продолжил работу над технологией PenReader в компании Paragon Software Group[1ближайших соседей|методу ближайшего соседа]. Технология используется в одноимённом продукте компании[2].
В 1993 году вышла технология Однако, одной метрики недостаточно для распознавания текстов российской компании ABBYY. На её основе создан ряд корпоративных решений символа, так как некоторые очень похожи между собой, (например, “j” и “i”, “Z” и программ для массовых пользователей“2”) что может привести к ошибке. В частностиДля избежания этого, используют следующие техники:<br><br>1) Группировка символов<br>$\;$Некоторые символы (“O”, “H”, программа для распознавания текстов ABBYY FineReader“I”) обладают суперсимметрией, приложения для распознавания текстовой информации с мобильных устройств(полностью совпадают со своими отражениями, система потокового ввода документов значимые пиксели распределены равномерно по всему изображению) и данных ABBYY FlexiCaptureих можно выделить в отдельный класс. Это значительно сокращает перебор метрик. Технологии <br><br>2) Контекстное распознавание<br>$\;$В качестве помощи алгоритмам распознавания текстов ABBYY OCR лицензируют международные ИТ-компаниив систему включают словари. Они предоставляют справки во многих случаях, такие как Fujitsuно быстро отказывают, Panasonicкогда, Xeroxнапример, Samsung[3]имеют дело с именами собственными, EMC и другиекоторые не находятся в словаре.
=== Распознавание с применением нейронных сетей ===
[[Файл:Нейронная_сеть_для_распознавания_символов.png|thumb|800px|Сверточная нейронная сеть для распознавания символа]]
[[Нейронные сети, перцептрон|Нейронные сети]] – это структура связанных элементов, на которых заданы функции преобразования сигнала, а также коэффициенты, которые могут быть настроены на определенный характер работы.
В 2000-х годах OCR-системы стали доступны в режиме онлайн в том числе и в мобильных приложенияЧасть элементов структуры выделены как входные: на них поступают сигналы извне, таким образом, они описывают значения пикселя изображения. То есть, напримересли имеется изображение 16х16, перевод знаков на иностранный язык на смартфоне в режиме реального временивходов у сети должно быть 256. Сейчас на смартфонах доступны приложенияДругая часть – выходные, которые позволяют извлекать текст с помощью камеры устройстваони формируют результирующие сигналы.
Различные коммерческие и открытые OCR-системы доступны для большинства распространенных алфавитов, включая латинский, кириллический, арабский, ивритСигнал, индийскийпроходящий через нейронную сеть, деванагарскийпреобразуется согласно формулам на элементах сети, тамильскийна выходе формируется ответ. Так как все нейроны поименованы значениями букв, китайскиеследовательно, японские среагировавший нейрон и корейские иероглифынесет ответ распознавания.
Нейронная сеть может быть использована в системе распознавания текста в качестве классификатора. При обучении, сеть получает на вход изображения, анализирует все позиции черных пикселей и выравнивает коэффициенты, минимизируя ошибку. Таким образом, достигается лучший результат распознавания.
== Применение систем распознавания текстов ==Пример нейронной сети====[[Файл:Пример нейронной сети для распознавания символов.jpg|thumb|800px|Пример нейронной сети для распознавания символов]]
Системы OCR применяются во многих областях. Вот некоторые На картинке в качестве примера схематически показана двухслойная нейронная сеть, включающая в себя 35 входов (каждый символ {{---}} матрица 7x5, соответственно, вектор, описывающий матрицу, состоит из задач35 элементов), которые решают системы распознавания текстов26 выходов (количество букв) и 10 нейронов скрытого слоя. В качестве [[Практики реализации нейронных сетей#Функции активации|функции активации]] в данной сети используется сигмоидная функция<ref>https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%B3%D0%BC%D0%BE%D0%B8%D0%B4%D0%B0</ref>, выход которой представлен в диапазоне от 0 до 1, что потом удобно перевести в булеву алгебру.* считывание данных с бланков и анкет<br><br><br><br><br>* автоматическое распознавание номерного знака<br>* распознавание паспортных данных====Пример на синтаксисе скриптового языка MATLAB====* извлечение информации из визитных карточек в список контактов S1 = 10; ''% количество нейронов на скрытом слое''* более быстрое создание текстовых версий печатных документов [S2, напримерQ] = size(targets); ''% количество нейронов на втором слое (количество выходов сети)'' P = alphabet; ''% входная матрица, сканирование книг для проекта "Гутенберг".содержащая информацию о буквах'' ''% создаем новую сеть с использованием диалогового окна''* вспомогательная технология для слепых net = newff(minmax(P), ''% матрица минимальных и слабовидящих пользователеймаксимальных значений строк входной матрицы'' [S1 S2], ''% количество нейронов на слоях''* оцифровывание документов с целью получить возможность удобной работы с текстом - редактирование {’logsig’ ’logsig’}, поиск слов или строк или анализ.''% функция активации'' ’traingdx’ ''% алгоритм подстройки весов и смещений (обучающий алгоритм)'' );
Типовые проблемы, связанные ====Недостатки нейронных сетей====Нейронные сети с системами OCRС задачей успехом могут применяться в системах распознавания символов связаны следующие проблемытекста, однако обладают существенными недостатками, препятствующими их широкому применению:* Разнообразие форм начертания символовЗатраты памяти: необходимо построить достаточно большую сеть элементов, что приводит к большим затратам памяти. * Документ может содержать несколько шрифтом сразу, что усложняет задачу Затраты ресурсов системы: в процессе распознавания текста. Некоторые символы похожи по начертанию (напримериспользуются большие объемы ресурсов системы, “G” и “6”, “S” и “5”, “U” и “V” и тдтак как функции на элементах сети работают с числами с плавающей точкой.) и в нестандартных шрифтах отличить их еще затруднительней* Искажение изображения, содержащего текст- Шумы при печати- Изображение плохого качества (засветНеобходимость в обучении: для достижения более точного результата нейронную сеть необходимо обучать, размытость)* вариации размеров однако и масштаба символовэто не гарантирует идеальный результат.Существенным является и влияние исходного масштаба печати* Сложность построения: так как работа нейронной сети во многом зависит от ее конфигурации, поэтому система оптического распознавания текста должна быть нечувствительной (устойчивой) по отношению к способу верстки, расстоянию между строками и другим параметрам печатитребуется больше усилий для создания наиболее эффективной архитектуры.
== Алгоритмы распознавания текста ==
=== E2E-MLT ===
{{Определение
|definition='''E2E-MLT'''<ref>https://arxiv.org/abs/1801.09919</ref> {{---}} метод, позволяющий решать задачи локализации и распознавания текста на изображениях, содержащих фрагменты на разных языках. Основан на FCN-сети с общими слоями для обеих задач.
}}
Реализация размещена в Github репозитории<ref>https://github.com/MichalBusta/E2E-MLT</ref> одного из авторов проекта.
<gallery mode="packed-hover" widths=500px heights=250px>
Image:e2emlt_work.jpg|250px|500px|''Результат работы E2E-MLT''
</gallery>
== Процесс распознавания текста См. также ==*[[Задача нахождения объектов на изображении]]*[[Сверточные нейронные сети]]*[[Глубокое обучение]]
Система распознавания текста предполагает наличие на входе изображения с текстом (в формате данных графического файла). На выходе система должна выдать текст, выделенный из входных данных. Весь процесс распознавания текста состоит из нескольких задач.== Источники информации ==
436
правок

Навигация