Изменения

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

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

1820 байт убрано, 19:13, 30 сентября 2020
м
Paragraph renamed
{{В разработке}} '''Распознавание текста на изображениях''' ( оптическое распознавание символом (англ. 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 году Эммануэль Гольдберг разработал устройство, которое считывало символы и преобразовывало их в стандартный телеграфный код. Одновременно Эдмунд Фурнье д'Альбе разработал "Оптофон"«Оптофон», ручной сканер, который , при перемещении по напечатанной странице , вырабатывал тональные сигналы, соответствующие определенным буквам или символам. В конце 1920-х и начале 1930-х годов Эмануэль Гольдберг разработал то, что он назвал "Статистической машиной" для поиска микрофильмов в архивах с помощью оптической системы кодового распознавания. В 1931 году он получил патент на машину, который позже был приобретен компанией IBM. В 1974 году Рэй Курцвейл создал компанию «Kurzweil Computer Products, Inc», и начал работать над развитием первой системы оптического распознавания символов, способной распознать текст, напечатанный любым шрифтом. Курцвейл считал, что лучшее применение этой технологии — создание машины чтения для слепых, которая позволила бы слепым людям иметь компьютер, умеющий читать текст вслух. Данное устройство требовало изобретения сразу двух технологий — ПЗС планшетного сканера и синтезатора, преобразующего текст в речь. Конечный продукт был представлен 13 января 1976 во время пресс-конференции, возглавляемой Курцвейлом и руководителями национальной федерации слепых. В 1978 году компания «Kurzweil Computer Products» начала продажи коммерческой версии компьютерной программы оптического распознавания символов. Компания «LexisNexis» была одним из первых покупателей и приобрела программу для загрузки юридических бумаг и новостных документов в онлайн базы данных. Два года спустя Курцвейл продал свою компанию корпорации «Xerox», которая была заинтересована в дальнейшей коммерциализации систем распознавания текста. «Kurzweil Computer Products» стала дочерней компанией «Xerox», известной как «Scansoft».
Первой коммерчески успешной программой, распознающей кириллицу, была программа «AutoR» российской компании «ОКРУС». Программа начала распространяться в 1992 В 1974 годуРэй Курцвейл создал компанию «Kurzweil Computer Products, работала под управлением операционной Inc» и начал работать над развитием первой системы DOS и обеспечивала приемлемое по скорости и качеству распознавание даже на персональных компьютерах IBM PC/XT с процессором Intel 8088 при тактовой частоте 4оптического распознавания символов, способной распознавать текст,77 МГцнапечатанный любым шрифтом. В начале 90Курцвейл считал, что лучшее применение этой технологии {{--х компания Hewlett-Packard поставляла свои сканеры на российский рынок в комплекте с программой «AutoR». Алгоритм «AutoR» был компактный}} создание машины чтения для слепых, быстрый и в полной мере «интеллектуальный»которая позволила бы слепым людям иметь компьютер, то есть поумеющий читать текст вслух. Данное устройство требовало изобретения сразу двух технологий {{--настоящему шрифтонезависимый. Этот алгоритм разработали и испытали ещё в конце 60-х два молодых биофизика, выпускники МФТИ — Г}} ПЗС (прибор с зарядовой связью<ref>https://ru. Мwikipedia. Зенкин org/wiki/ПЗС</ref>) планшетного сканера и А. П. Петров. Свой метод распознавания они опубликовали в журнале «Биофизика» в номере 12синтезатора, вып. 3 за 1967 год. В настоящее время алгоритм Зенкина-Петрова применяется в нескольких прикладных системах, решающих задачу распознавания графических символов. На основе алгоритма компанией Paragon Software Group в 1996 была создана технология PenReader. Г.М Зенкин продолжил работу над технологией PenReader в компании Paragon Software Group[1]. Технология используется преобразующего текст в одноимённом продукте компании[2]речь.
В 1993 году вышла технология распознавания текстов Первой коммерчески успешной программой, распознающей кириллицу, стала программа «AutoR» российской компании ABBYY«ОКРУС». На её основе создан ряд корпоративных решений Алгоритм «AutoR» был компактный, быстрый и программ для массовых пользователейв полной мере «интеллектуальный», то есть по-настоящему шрифтонезависимый. В частностиЭтот алгоритм разработали и испытали ещё в конце 60-х два молодых биофизика, программа для распознавания текстов ABBYY FineReader, приложения для распознавания текстовой информации с мобильных устройств, система потокового ввода документов выпускники МФТИ {{---}} Г. М. Зенкин и данных ABBYY FlexiCaptureА. П. Петров. Технологии распознавания текстов ABBYY OCR лицензируют международные ИТВ настоящее время алгоритм Зенкина-компанииПетрова применяется в нескольких прикладных системах, такие как Fujitsu, Panasonic, Xerox, Samsung[3], EMC и другиерешающих задачу распознавания графических символов.
В 1993 году вышла технология распознавания текстов российской компании ABBYY. На её основе создан ряд корпоративных решений и программ для массовых пользователей. Технологии распознавания текстов ABBYY OCR лицензируют международные ИТ-компании, такие как Fujitsu, Panasonic, Xerox, Samsung, EMC и другие.
В 2000-х годах производительность и компактность OCR-системы стали доступны в режиме позволила представить на рынок онлайн в том числе и в мобильных приложения, например, перевод знаков -сервисы по переводу текста с одного языка на иностранный язык на смартфоне в режиме реального временидругой. Сейчас на смартфонах доступны приложенияСо временем такие программы получили возможность обрабатывать изображения как печатного, которые позволяют извлекать текст с помощью камеры устройстватак и рукописного текста.
Различные коммерческие С развитием технологий производства мобильных устройств и открытые упрощения процесса разработки мобильных приложений, OCR-системы доступны для большинства распространенных алфавитов, включая латинский, кириллический, арабский, иврит, индийскийстали неотъемлемой частью разнообразных программ: от развлекательных до обучающих, деванагарский, тамильский, китайские, японские и корейские иероглифыот мобильных помощников до систем управления.
== Применение систем распознавания текстов ==
Системы OCR применяются во многих областях. Вот некоторые из задач, которые решают системы распознавания текстов:
* считывание Считывание данных с бланков и анкет;* автоматическое Автоматическое распознавание номерного знака;* распознавание Распознавание паспортных данных;* извлечение Извлечение информации из визитных карточек в список контактов;* более быстрое создание текстовых Создание цифровых версий печатных и рукописных документов, например, сканирование книг для проекта "Гутенберг"<ref>https://ru.wikipedia.org/wiki/Проект_«Гутенберг»</ref>;* вспомогательная технология Технология для слепых помощи слепым и слабовидящих пользователей* оцифровывание документов с целью получить возможность удобной работы с текстом - редактирование, поиск слов или строк или анализ.слабовидящим;
Типовые проблемы, связанные с системами == Наиболее распространенные задачи OCR==
С задачей распознавания символов связаны следующие проблемы:
* Разнообразие форм начертания символовДокумент : документ может содержать несколько шрифтом шрифтов сразу: как распространенных, так и нестандартных;$\;\;\;\;\;\, что усложняет задачу распознавания текста. Некоторые $символы похожи могут быть схожи по начертанию (например, “G” и “6”, “S” и “5”, “U” и “V” и тд.) и в нестандартных шрифтах отличить их еще затруднительней;* Искажение изображения, содержащего текст:** Шумы при печати;** Изображение плохого качества Плохое качество изображения (засветзасвеченность, размытость);* вариации Вариации размеров , масштаба и масштаба положения символов.на странице;Существенным является и влияние * Влияние исходного масштаба печати, поэтому : система оптического распознавания текста должна быть нечувствительной (устойчивой) $\;\;\;\;\;\,$по отношению к способу верстки, расстоянию между строками и другим параметрам печати. 
== Процесс распознавания текста ==
[[Файл:Процесс_распознавания_текста.jpg|thumb|400px|Процесс распознавания текста]]
Система распознавания текста предполагает наличие на входе изображения с текстом (в формате данных графического файла). На выходе система должна выдать текст, выделенный из входных данных. Весь процесс распознавания текста состоит из нескольких задач.
=== Обработка изображения ===
Перед началом распознавания текста изображение должно быть очищено от шума и приведено к виду, позволяющему эффективно выделять символы и распознавать их. Обычно у изображения повышают резкость, контрастность, выравнивают его и преобразовывают в в используемый системой формат (например, 8-битное изображение в градациях серого).  === Сегментация === Сегментация подразумевает собой разбиение изображения документа на отдельные области. Сначала система выделяет блоки текста. Это особенно важно при обработке документов с несколькими столбцами или таблиц.  Далее в каждом блоке выделяются базовые линии, которые позволяют разделить блок на строки, а в дальнейшем на символы. Это позволяет системе обрабатывать каждый символ по отдельности. Сначала производится предварительное разбиение изображения текста на отдельные изображения символов и после этого определяется зависимость между разными изображениями с оценкой расстояния между ними. На этапе распознавания результаты разбиения могут уточняться с целью дополнительного разбиения или объединения нескольких полученных изображений. Уточнения могут строиться на основе контекста: если часть символов хорошо распознаны, они могут указать на нераспознанный, либо факт уточнения может основываться на плохом распознании получившегося изображения символа. [[Файл:БлокСтрокаСлово.png|Блок, строка, слово]] === Распознавание символы ===
Для распознавания символа существуют 2 основных алгоритма. === Распознавание символов ===''' ДОБАВИТЬ ОБЩИЕ СЛОВА '''
== Алгоритмы распознавания символов ===== Распознавание при помощи метрик ====
Этой способ лучше всего работает с машинописным текстом, но при обработке новых шрифтов точность распознавания падает.
Метрика по сути является признаком символа, поэтому иногда в контексте данного способа говорят о процессе выявления признаков.
В качестве метрики используют [[Расстояние Хэмминга| расстояние Хэмминга]], которое показывает, на сколько пикселей различаются изображения.Если признаки двух символов максимально похожи, то разность между их метриками (то есть расстояние между ними) стремится к нулю. Дальнейшая классификация символа происходит по [[Метрический классификатор и метод ближайших соседей|методу ближайшего соседа ]]  
Однако одной метрики недостаточно для распознавания символа, так как некоторые символы очень похожи между собой (например, “j” и “i”, “Z” и “2”) и это может привести к ошибке. Чтобы избежать этого, есть несколько способов:
* группировка символов
В качестве помощи алгоритмам распознавания в систему включают словари. Словари предоставляют справки во многих случаях, но быстро отказывают, когда, например, имеют дело с именами собственными, которые не находятся в словаре.
==== Распознавание с применением нейронных сетей ==== [[Файл:Нейронная_сеть_для_распознавания_символов.png|thumb|800px|Сверточная нейронная сеть для распознавания символа]][[Нейронные сети , перцептрон|Нейронные сети]] – это структура связанных элементов, на которых заданы функции преобразования сигнала, а также коэффициенты, которые могут быть настроены на определенный характер работы.
Часть элементов структуры выделены как входные: на них поступают сигналы извне, таким образом, они описывают значения пикселя изображения. То есть, если имеется изображение 16х16, входов у сети должно быть 256. Другая часть – выходные: они формируют результирующие сигналы.
Нейронная сеть может служить в системе распознавания текста в качестве классификатора. Этот классификатор сначала обучают, настраивая коэффициенты на элементах сети. При обучении сеть получает на вход изображения, анализирует все позиции черных пикселей и выравнивает коэффициенты, минимизируя ошибку. Таким образом, достигается лучший результат распознавания.
'''Пример нейронной сети''' [[Файл:Пример нейронной сети для распознавания символов.jpg|thumb|800px| Пример нейронной сети для распознавания символов]] На картинке в качестве примера схематически показана нейронная сеть, которая включает в себя 35 входов (каждый символ {{---}} матрица 7x5, соответственно, вектор, описывающий матрицу, состоит из 35 элементов) и 26 выходов (количество букв). Данная НС является двухслойной сетью. [[Практики реализации нейронных сетей#Функции активации|Функцией активации]] поставим логарифмическую сигмоидную функцию, которую удобно использовать, потому что выходные векторы содержат элементы со значениями в диапазоне от 0 до 1, что потом удобно перевести в булеву алгебру. На скрытый уровень выделим 10 нейронов (это число можно регулировать).<br><br><br><br>'''Пример на синтаксисе скриптового языка MATLAB''' S1 = 10; ''% количество нейронов на скрытом слое'' [S2,Q] = size(targets); ''% количество нейронов на втором слое (количество выходов сети)'' P = alphabet; ''% входная матрица, содержащая информацию о буквах'' ''% создаем новую сеть с использованием диалогового окна'' net = newff(minmax(P), ''% матрица минимальных и максимальных значений строк входной матрицы'' [S1 S2], ''% количество нейронов на слоях'' {’logsig’ ’logsig’}, ''% функция активации'' ’traingdx’ ''% алгоритм подстройки весов и смещений (обучающий алгоритм)'' );  '''Недостатки нейронных сетей'''  Нейронные сети с успехом могут применяться в системах распознавания текста, но существует большое число недостатков, которые препятствуют их широкому применению. Для * Затраты {{---}} для построения сети, обеспечивающей распознавание каждого символа текста, необходимо построить достаточно большую сеть элементов, что приводит к большим затратам памяти. Еще * Затраты ресурсов системы {{---}} помимо памяти, еще сильнее тратятся ресурсы системы в процессе распознавания, так как функции на элементах сети работают с числами с плавающей точкой. Кроме этого нейронные сети * Необходимость в обучение {{---}} для достижения более точного результата нейронную сеть необходимо обучать на все случаи, что, однако, и это не гарантирует точного результата100% результат. И, наконец, * Зависимость от конфигураций сети {{---}} так как работа нейронной сети по распознаванию текста во многом зависит от конфигурации сети и функций, заданных в элементах, что требует больших требуется больше усилий для построения эффективно работающей сети. == См. также ==*[[Задача нахождения объектов на изображении]]*[[Сверточные нейронные сети]] == Источники информации ==
436
правок

Навигация