Изменения

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

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

1885 байт убрано, 19:36, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{В разработке}} '''Распознавание текста на изображениях''' ( оптическое распознавание символом символов (англ. 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 году Эммануэль Гольдберг разработал устройство, считывающее символы и преобразовывающее их в стандартный телеграфный код. Одновременно Эдмунд Фурнье д'Альбе разработал «Оптофон», ручной сканер, который, при перемещении по напечатанной странице, вырабатывал тональные сигналы, соответствующие определенным буквам или символам.
Разработка OCR-систем берет начало из технологийВ 1974 году Рэй Курцвейл создал компанию «Kurzweil Computer Products, связанных с телеграфией Inc» и созданием считывающих устройств начал работать над развитием первой системы оптического распознавания символов, способной распознавать текст, напечатанный любым шрифтом. Курцвейл считал, что лучшее применение этой технологии {{---}} создание машины чтения для слепых, которая позволила бы слепым людям иметь компьютер, умеющий читать текст вслух. В 1914 году Эммануэль Гольдберг разработал Данное устройствотребовало изобретения сразу двух технологий {{---}} ПЗС (прибор с зарядовой связью<ref>https://ru.wikipedia.org/wiki/ПЗС</ref>) планшетного сканера и синтезатора, которое считывало символы и преобразовывало их преобразующего текст в стандартный телеграфный код. Одновременно Эдмунд Фурнье д'Альбе разработал "Оптофон", ручной сканер, который при перемещении по напечатанной странице вырабатывал тональные сигналы, соответствующие определенным буквам или символамречь.
В Первой коммерчески успешной программой, распознающей кириллицу, стала программа «AutoR» российской компании «ОКРУС». Алгоритм «AutoR» был компактный, быстрый и шрифтонезависимый. Этот алгоритм разработали и испытали ещё в конце 192060два молодых биофизика, выпускники МФТИ {{---}} Г. М. Зенкин и начале 1930А. П. Петров. В настоящее время алгоритм Зенкина-х годов Эмануэль Гольдберг разработал тоПетрова применяется в нескольких прикладных системах, что он назвал "Статистической машиной" для поиска микрофильмов в архивах с помощью оптической системы кодового решающих задачу распознавания. В 1931 году он получил патент на машину, который позже был приобретен компанией IBMграфических символов.
В 1974 1993 году Рэй Курцвейл создал компанию «Kurzweil Computer Products, Inc», вышла технология распознавания текстов российской компании ABBYY. На её основе создан ряд корпоративных решений и начал работать над развитием первой системы оптического программ для массовых пользователей. Технологии распознавания символовтекстов ABBYY OCR лицензируют международные ИТ-компании, способной распознать тексттакие как Fujitsu, напечатанный любым шрифтом. Курцвейл считалPanasonic, что лучшее применение этой технологии — создание машины чтения для слепых, которая позволила бы слепым людям иметь компьютерXerox, умеющий читать текст вслух. Данное устройство требовало изобретения сразу двух технологий — ПЗС планшетного сканера и синтезатора, преобразующего текст в речь. Конечный продукт был представлен 13 января 1976 во время пресс-конференцииSamsung, возглавляемой Курцвейлом EMC и руководителями национальной федерации слепыхдругие.
В 1978 году компания «Kurzweil Computer Products» начала продажи коммерческой версии компьютерной программы оптического распознавания символов. Компания «LexisNexis» была одним из первых покупателей 2000-х годах производительность и приобрела программу для загрузки юридических бумаг и новостных документов в компактность OCR-системы позволила представить на рынок онлайн базы данных-сервисы по переводу текста с одного языка на другой. Два года спустя Курцвейл продал свою компанию корпорации «Xerox»Со временем такие программы получили возможность обрабатывать изображения как печатного, которая была заинтересована в дальнейшей коммерциализации систем распознавания так и рукописного текста. «Kurzweil Computer Products» стала дочерней компанией «Xerox», известной как «Scansoft».
Первой коммерчески успешной программой, распознающей кириллицу, была программа «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. На её основе создан ряд корпоративных решений и программ для массовых пользователей. В частности, программа для распознавания текстов ABBYY FineReader, приложения для распознавания текстовой информации с С развитием технологий производства мобильных устройств, система потокового ввода документов и данных ABBYY FlexiCapture. Технологии распознавания текстов ABBYY OCR лицензируют международные ИТ-компании, такие как Fujitsu, Panasonicупрощения процесса разработки мобильных приложений, Xerox, Samsung[3], EMC и другие.  В 2000-х годах OCR-системы стали доступны в режиме онлайн в том числе и в неотъемлемой частью разнообразных программ: от развлекательных до обучающих, от мобильных приложения, например, перевод знаков на иностранный язык на смартфоне в режиме реального времени. Сейчас на смартфонах доступны приложения, которые позволяют извлекать текст с помощью камеры устройства.  Различные коммерческие и открытые OCR-системы доступны для большинства распространенных алфавитов, включая латинский, кириллический, арабский, иврит, индийский, деванагарский, тамильский, китайские, японские и корейские иероглифыпомощников до систем управления.
== Применение систем распознавания текстов ==
 
Системы OCR применяются во многих областях. Вот некоторые из задач, которые решают системы распознавания текстов:
* считывание Считывание данных с бланков и анкет.* автоматическое Автоматическое распознавание номерного знака.* распознавание Распознавание паспортных данных.* извлечение Извлечение информации из визитных карточек в список контактов.* более быстрое создание текстовых Создание цифровых версий печатных и рукописных документов, например, сканирование книг для проекта "Гутенберг"<ref>https://ru.wikipedia.org/wiki/Проект_«Гутенберг»</ref>.* вспомогательная технология Технология для слепых помощи слепым и слабовидящих пользователей* оцифровывание документов с целью получить возможность удобной работы с текстом - редактирование, поиск слов или строк или анализслабовидящим.
Типовые проблемы, связанные с системами == Наиболее распространенные задачи OCR==
С задачей распознавания символов связаны следующие проблемы:
* Разнообразие форм начертания символовДокумент : документ может содержать несколько шрифтом шрифтов сразу, что усложняет задачу распознавания текста. Некоторые а символы похожи могут быть схожи по начертанию (например, “G” и “6”, “S” и “5”, “U” и “V” и тд.) и в нестандартных шрифтах отличить их еще затруднительней* Искажение изображения, содержащего текст:** Шумы при печати.** Изображение плохого качества Плохое качество изображения (засветзасвеченность, размытость).* вариации Вариации размеров , масштаба и масштаба положения символовна странице.Существенным является и влияние * Влияние исходного масштаба печати, поэтому : система оптического распознавания текста должна быть нечувствительной (устойчивой) по отношению к способу верстки, расстоянию между строками и другим параметрам печати. 
== Процесс распознавания текста ==
[[Файл:Процесс_распознавания_текста.jpg|thumb|380px|Процесс распознавания текста]]
Система распознавания текста предполагает наличие на входе изображения с текстом (в формате данных графического файла). На выходе система должна выдать текст, выделенный из входных данных. Весь процесс распознавания текста состоит из нескольких задач.
=== Обработка изображения ===
Перед началом распознавания текста изображение должно быть очищено от шума и приведено к виду, позволяющему эффективно выделять символы и распознавать их. Обычно у изображения повышают резкость, контрастность, выравнивают его и преобразовывают в используемый системой формат (например, 8-битное изображение в градациях серого).
Перед началом распознавания текста изображение должно быть очищено от шума и приведено к виду, позволяющему эффективно выделять символы и распознавать их. Обычно у изображения повышают резкость, контрастность, выравнивают его и преобразовывают в в используемый системой формат (например, 8-битное изображение в градациях серого). === Распознавание символов ===''' ДОБАВИТЬ ОБЩИЕ СЛОВА '''<br><br>
==Алгоритмы распознавания символов = Сегментация ==== Распознавание при помощи метрик ===Этой способ лучше всего работает с машинописным текстом, но при обработке новых шрифтов точность распознавания падает. Метрика является признаком символа, поэтому иногда в контексте данного способа говорят о процессе выявления признаков.В качестве метрики используют [[Расстояние Хэмминга| расстояние Хэмминга]], которое показывает, на сколько пикселей различаются изображения.Если признаки двух символов максимально похожи, то разность между их метриками (то есть расстояние между ними) стремится к нулю. Дальнейшая классификация символа происходит по [[Метрический классификатор и метод ближайших соседей|методу ближайшего соседа]].
Сегментация подразумевает Однако, одной метрики недостаточно для распознавания символа, так как некоторые очень похожи между собой разбиение изображения документа на отдельные области, (например, “j” и “i”, “Z” и “2”) что может привести к ошибке. Сначала система выделяет блоки текстаДля избежания этого, используют следующие техники:<br><br>1) Группировка символов<br>$\;$Некоторые символы (“O”, “H”, “I”) обладают суперсимметрией, (полностью совпадают со своими отражениями, значимые пиксели распределены равномерно по всему изображению) и их можно выделить в отдельный класс. Это особенно важно при обработке документов значительно сокращает перебор метрик.<br><br>2) Контекстное распознавание<br>$\;$В качестве помощи алгоритмам распознавания в систему включают словари. Они предоставляют справки во многих случаях, но быстро отказывают, когда, например, имеют дело с несколькими столбцами или таблицименами собственными, которые не находятся в словаре.
Далее в каждом блоке выделяются базовые линии, которые позволяют разделить блок на строки, а в дальнейшем на символы. Это позволяет системе обрабатывать каждый символ по отдельности. Сначала производится предварительное разбиение изображения текста на отдельные изображения символов и после этого определяется зависимость между разными изображениями с оценкой расстояния между ними. На этапе распознавания результаты разбиения могут уточняться === Распознавание с целью дополнительного разбиения или объединения нескольких полученных изображений. Уточнения могут строиться на основе контекста: если часть символов хорошо распознаны, они могут указать на нераспознанный, либо факт уточнения может основываться на плохом распознании получившегося изображения символа. применением нейронных сетей === [[Файл:БлокСтрокаСловоНейронная_сеть_для_распознавания_символов.jpgpng|thumb|800px|БлокСверточная нейронная сеть для распознавания символа]][[Нейронные сети, строка, словоперцептрон|Нейронные сети]] – это структура связанных элементов, на которых заданы функции преобразования сигнала, а также коэффициенты, которые могут быть настроены на определенный характер работы.
=== Распознавание символы ===Часть элементов структуры выделены как входные: на них поступают сигналы извне, таким образом, они описывают значения пикселя изображения. То есть, если имеется изображение 16х16, входов у сети должно быть 256. Другая часть – выходные, они формируют результирующие сигналы.
Для Сигнал, проходящий через нейронную сеть, преобразуется согласно формулам на элементах сети, на выходе формируется ответ. Так как все нейроны поименованы значениями букв, следовательно, среагировавший нейрон и несет ответ распознавания символа существуют 2 основных алгоритма.
==== Распознавание при помощи метрик ====Нейронная сеть может быть использована в системе распознавания текста в качестве классификатора. При обучении, сеть получает на вход изображения, анализирует все позиции черных пикселей и выравнивает коэффициенты, минимизируя ошибку. Таким образом, достигается лучший результат распознавания.
Этой способ лучше всего работает с машинописным текстом, но при обработке новых шрифтов точность ====Пример нейронной сети====[[Файл:Пример нейронной сети для распознавания падает. Метрика по сути является признаком символа, поэтому иногда в контексте данного способа говорят о процессе выявления признаков.Если признаки двух символов максимально похожи, то разность между их метриками (то есть расстояние между ними) стремится к нулю. Дальнейшая классификация символа происходит по методу ближайшего соседа Однако одной метрики недостаточно jpg|thumb|800px|Пример нейронной сети для распознавания символа, так как некоторые символы очень похожи между собой (например, “j” и “i”, “Z” и “2”) и это может привести к ошибке. Чтобы избежать этого, есть несколько способов:* группировка символовНапример, некоторые символы (“O”, “H”, “I”) обладают суперсимметрией (полностью совпадают со своими отражениями и значимые пиксели распределены равномерно по всему изображению) и их можно выделить в отдельный класс. Это сокращает перебор метрик в несколько раз.* контекстное распознаваниеВ качестве помощи алгоритмам распознавания в систему включают словари. Словари предоставляют справки во многих случаях, но быстро отказывают, когда, например, имеют дело с именами собственными, которые не находятся в словаре.]]
На картинке в качестве примера схематически показана двухслойная нейронная сеть, включающая в себя 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’ ''% алгоритм подстройки весов и смещений (обучающий алгоритм)'' );
Часть ====Недостатки нейронных сетей====Нейронные сети с успехом могут применяться в системах распознавания текста, однако обладают существенными недостатками, препятствующими их широкому применению:* Затраты памяти: необходимо построить достаточно большую сеть элементов структуры выделены , что приводит к большим затратам памяти. * Затраты ресурсов системы: в процессе распознавания используются большие объемы ресурсов системы, так как входные: функции на них поступают сигналы извне, таким образом, они описывают значения пикселя изображенияэлементах сети работают с числами с плавающей точкой. То есть* Необходимость в обучении: для достижения более точного результата нейронную сеть необходимо обучать, если имеется изображение 16х16, входов у сети должно быть 256однако и это не гарантирует идеальный результат. Другая часть – выходные* Сложность построения: они формируют результирующие сигналытак как работа нейронной сети во многом зависит от ее конфигурации, требуется больше усилий для создания наиболее эффективной архитектуры.
Сигнал== Алгоритмы распознавания текста ===== 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>
Нейронная сеть может служить в системе распознавания текста в качестве классификатора== См. Этот классификатор сначала обучают, настраивая коэффициенты также ==*[[Задача нахождения объектов на элементах изображении]]*[[Сверточные нейронные сети. При обучении сеть получает на вход изображения, анализирует все позиции черных пикселей и выравнивает коэффициенты, минимизируя ошибку. Таким образом, достигается лучший результат распознавания. ]]*[[Глубокое обучение]]
Нейронные сети с успехом могут применяться в системах распознавания текста, но существует большое число недостатков, которые препятствуют их широкому применению. Для построения сети, обеспечивающей распознавание каждого символа текста, необходимо построить достаточно большую сеть элементов, что приводит к большим затратам памяти. Еще сильнее тратятся ресурсы системы в процессе распознавания, так как функции на элементах сети работают с числами с плавающей точкой. Кроме этого нейронные сети необходимо обучать на все случаи, что, однако, не гарантирует точного результата. И, наконец, работа нейронной сети по распознаванию текста во многом зависит от конфигурации сети и функций, заданных в элементах, что требует больших усилий для построения эффективно работающей сети.== Источники информации ==
1632
правки

Навигация