Оптично разпознаване на символи

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Видео на процеса на сканиране и оптично разпознаване на символи в реално време с портативен скенер. За работен текст е използвана разпечатка на статията „Optical character recognition“ от Уикипедия на английски.

Оптичното разпознаване на символи (на английски: optical character recognition, OCR) е технология за конвертиране на печатен текст в текстов файл.

Тя е широко използвана за въвеждане на печатни данни от хартия или файл, включително от лични документи, фактури, банкови извлечения, компютърни разпечатки, визитки, поща. Това е често срещан метод на запис на печатни текстове, за да може текста да бъде редактиран с текстов редактор, да се търси в него, да се съхранява по-компактно, да се показва онлайн, както и да се използва в компютърни програми, като автоматизиран превод, конвертиране на текст към говор.

История[редактиране | редактиране на кода]

Развитието на оптичното разпознаване на символи може да бъде проследено до технологии, включващи телеграфа и устройства за четене на слепите. През 1914г. Emanuel Goldberg разработва машина, която чете знаци и ги превръща в стандартен телеграфен код. В същото време, Edmund Fournier d'Albe разработва устройство наречено Optophone - ръчен скенер, който като като сканира една печатна страница, произвежда тонове, които отговарят на конкретни букви или символи.

В края на 1920 и в 1930г. Emanuel Goldberg разработва устройство, което той нарича "Статистическа машина" за търсене на в микрофилми, използвайки система за оптично разпознаване на код. През 1931г. е удостоен с USA Patent номер 1838389 за изобретението. Патентът е придобит от IBM.

Слепи и слабовиждащи потребители[редактиране | редактиране на кода]

През 1974 г., Ray Kurzweil започна основава Kurzweil Computer Products Inc. и продължава развитието на omni-font OCR, който би могъл да разпознава текст, отпечатан в практически всеки шрифт. Kurzweil решил, че най-доброто приложение на тази технология би било да се създаде машина четене на слепите, която ще позволи на незрящи хора да чуват компютър който четейки конвертира текста към говор. Това устройство изисква изобретението на две базови технологии - плосък скенер и синтезатор на текст-към-говор. На 13 януари 1976 г. успешно завършения продукт е представен по време на пресконференция начело с Kurzweil и ръководителите на Националната федерация на слепите. През 1978 г., Kurzweil Computer Products Inc. започва да продава търговска версия на компютърна програма за оптично разпознаване на символи (OCR). LexixNexis е един от първите клиенти, който и си купува програмата, за да я използува за качване на юридически и новинарски документи в онлайн бази данни. Две години по-късно, Kurzweil продава своята компания да Xerox, които са имали интерес от по-нататъшната комерсиализация на преобразуването на текст от печатни книги на компютър.

Изследователска група начело с проф AG Ramakrishnan в Индийския институт на науките, е разработила програмата PrintToBraille, с отворен код GUI интерфейс, която може да се използва от всеки за конвертиране на сканирани изображения на печатни книги до брайлови книги.

През 2000-та година, оптичното разпознаване на символи (OCR) е на разположение като онлайн услуга (WebOCR) в компютърна среда облак и в мобилните приложения за превод в реално време на чужди езици на смартфон.

Различни системи оптично разпознаване на символи (OCR) (търговски и с отворен код) са на разположение за най-често срещаните писмени системи, включително латиница, кирилица, арабски, иврит, индийски, китайски, корейски и японски символи.

Приложения[редактиране | редактиране на кода]

Оптичното разпознаване на символи (OCR) бива прилагано в множество програми.Основна причина за разработката на подобни приложения са слабостите на хартиения носител като средство за съхраняване на информация. Колкото повече се увеличават документите на хартиен носител, толкова повече продуктивността спада.Става все по-трудно информацията да бъде намирана, а нейното използване става бавно и неефикасно.Хартията е скъпа и заема голямо пространство.Информацията на хартиен носител не може да бъде редактирана на момента, както би било възможно при работата с текстов файл на вашия компютър.Всички тези фактори довеждат до внедряването на Оптичното разпознаване на символи (OCR),което позволява извличането на информация от остарелите, скъпи и трудно-обработваеми хартиени носители и поставянето и в удобни за работа текстови формати, които могат да бъдат лесно намирани,използвани и редактирани.

Примерни стъпки от процеса на разпознаване[редактиране | редактиране на кода]

  • Програмата анализира структурата на документа
  • Разделяне на страницата на блокове : текст, таблици, изображения и др.
  • Редовете се разделят на отделни думи.Думите се разделят на отделни символи.
  • След като текстът е разделен на единични символи, всеки един от тях бива сравнен с набор от шаблони.
  • След усъществяването на сравнението, програмата излиза с няколко хипотези за това какъв е символът.
  • Символите биват съединени обратно в думи и след това в редове.
  • Програмата предоставя на клиента своя финален резултат

Процес от гледна точка на потребителя[редактиране | редактиране на кода]

  • Потребителя сканира документа
  • Зарежда сканираният файл в програмата за разпознаване
  • Запаметява разпознатия файл в избран от него формат (DOC, XLS, RTF, HTML, TXT, etc.)

Възможна употреба на приложенията:[редактиране | редактиране на кода]

  • Извличане на данни от банкови извлечения, фактури, чекове и др.
  • Извличане на данни визитни картички и поставянето им в листи за контакти
  • Създаване на текстови версии на принтирани документи (сканиране на книги и т.н.)
  • Контролиране на компютър, чрез ръкопис.Ръкописът (подаден на таблет чрез стилус или пръст) се конвертира на момента в дадена команда
  • Анти-бот защита
  • Технология, помагаща на незрящи и слабовиждащи потребители

Техники[редактиране | редактиране на кода]

Предварителна обработка[редактиране | редактиране на кода]

Много често, OCR софтуерите предварително обработват изображения, за да подобрят възможностите за успешно разпознаване. Техниките за предварителна обработка включват:

  • Завъртане на образа – ако документът не е бил подравнен правилно по време на сканирането, е възможно да се наложи да бъде наклонен няколко градуса по часовниковата стрелка (или обратно), за да станат линиите на текста максимално хоризонтални или вертикални.
  • Филтриране – премахване на шум и смущения от изображението, породени от разнообразието на качество на печат, хартия или инструмент за писане.
  • Бинаризация – преобразуване на изображението от цветната или сивата гама до черно и бяло (наречено бинарно изображение, защото има само два цвята). В някои случаи, това е необходимо за алгоритъма за разпознаване на символи, а в други – алгоритъма работи по-добре въхру оригиналното изображение и тогава тази стъпка може да бъде пропусната.
  • Премахване на линии – изчистване на линии и полета, в който няма текст.
  • Анализ на оформлението или зониране – разделяне на колони, параграфи, надписи и пр., като различни блокове. Това е особено важно при оформления с няколко колони и таблици.
  • Откриване на редове и думи – създава основните форми на думите и символите, ако е необходимо разделя думи.
  • Разпознаване на начина на изписване – в многоезични документи, начина за изписване може да се промени на ниво дума и следователно трябва първо да се идентифицира начина на изписване на символите, за да се извика правилния OCR.
  • Отделяне на символите или „сегментиране” – ако няколко символа са се свързали, например поради наличие на шум в изображението, те трябва да се разделят или ако единични символи са се разделили на парчета по подобна причина, те трябва да се свържат в съответния символ.
  • Нормализиране на пропорциите и мащаба

Сегментацията на непропорционални (с фиксирана ширина или моно-разреден (monospace)) шрифтове се постига сравнително лесно като изображението се подравнява в еднородна решетка в зависимост от това, къде е най-малко вероятно вертикалните линии да се пресекат с черни полета. За пропорционалните шрифтове са нужни по-сложни техники, защото празното място между буквите понякога може да е по-голямо от това между самите думи и е възможно вертикалните линии да се пресичат с повече от един символ.

Разпознаване на символите[редактиране | редактиране на кода]

Има два основни OCR алгоритъма, които могат да създадат списък с класифицирани символи „кандидати“.

Матрично разпознаванe сравнява изображението с глифове от шаблон пиксел по пиксел (pattern matching или pattern recognition). Този аглоритъм разчита на това, че подаденият глиф е правилно отделен от останалата част на изображението и че глифът за сравнение е в сходен шрифт и мащаб. Тази техника работи най-добре с машинописен текст и не работи много добре, когато попадне на нови шрифтове.

Друг алгоритъм е чрез деление на даден глиф на атрибути (като линии, контури, посока на линиите, пресечни точки) и те се сравняват с абстрактно векторно представяне на символ, който може да върне един и повече прототипа. По-съвършените OCR програми използват техники за разделяне на изображението на множество от зони и установяват, къде в различните зони има текст и къде друга информация, както и различни характеристики на текстовете в различните зони. Това е обичайна техника при интелигентното разпознаване на символи (Intelligent Character Recognition (ICR)) и при най-съвременните OCR програми. За сравнение на атрибутите на изображението с тези на глифовете от шаблона и избиране на най-близкото съвпадение, се използва „методът на най-близкия съсед“, като например методът на k-най-близките съседи (kNN).

Последваща обработка[редактиране | редактиране на кода]

Точността на OCR може да се увеличи, ако изходът е ограничен от речник – списък от думи, които могат да се съдържат в документа. Например, това могат да са всички думи в даден език или да е списък със специфични технически термини за определено поле или област от изображението. Тази техника, обаче, може да създаде проблеми, когато документ съдържа думи, който не са включени в такъв списък – като например имена (на хора, места, забележителности и пр.). Познаването на граматиката на езика на който е сканираното изображение, също може да помогне много при определяне дали дадена дума е глагол или съществително и така да подобри точността на разпознаване.

Изходът обикновено е текстов поток или файл от символи, като по-сложните OCR системи могат да запазят първоначалното оформление на страницата и да създадат PDF документ, който съдържа едновременно и първоначалното изображение и текстовото представяне.

Точност[редактиране | редактиране на кода]

Упълномощен от U.S. Department of Energy (DOE),Института по Информационни Научни Проучвания има мисията да подобри автоматизираните технологии за разбиране на машинни напечатани документи, то бива проведено на най-авторитетния годишен тест по OCR точност от 1992 до 1996.

Разпознаване от Латинска-Азбука, машинописния текст не е 100% точен дори когато снимката е била ясна. Едно проучване базирано на разпознаване на текстове от вестници от 19-ти и ранния 20-ти век стигат до извода че буква по буква OCR прочита думите с точност от 81% до 99%, пълната точност може да бъде достигната ако човек прочете текста или Data Dictionary Authentication.Други зони включващи разпознаването на ръкопис, и печатането на текст на други скриптове (специално на източно Азиатските езици, с букви който имат много извивки за единична буква)- са все още обект на проучвания и развитие. МНИСТ база данни е най-често използвана за разпознаване на ръчно написани букви.

Точността на разчитане може да бъде измервана по няколко начина, и по начина по който бива измервана може силно да повлияе на разчетения текст. Например, ако дума контекст(принципно лексикон на думи) не е използвана в правилен софтуер намиращ не съществуващи думи, броя на грешките е 1% (99% точност) може да завърши с 5%(95% точност) или по-зле базирано на това дали всяка дума е разпозната с непознати символи или букви.

Уеб базираните OCR системи за разпознаване на ръчно написан текст "в движение" е станал добре познат и разпространен продукт през последните години (вижте Tablet computer .Точност от 80% до 90% на спретната, чиста ръчно написана буква може да бъде достигнато с Pen computing софтуер, но обсега на точността все още достига дузина грешки на преведена страница, правещ технологията доста безполезна и ограничена само до няколко приложения.

Разпознаването на курсив текст е активна зона на проучвания, с нива на разпознаване на текста дори по ниски от ръчно написаният текст. Високи нива на разпознаване на бързо написан скрипт няма да бъдат възможни без използването на контекстуална или граматическа информация.Например разпознаването на цели думи от речника е по-лесно от колкото разпознаването на отделни букви от скрипт. Прочитането на Количество редове на Проверка (която е винаги с изписани числа) е пример за използването на малак речник който повишава нивата на разпознаване значително. Формата на индивидуално изписаните букви сами по себе си просто не съдържа достатъчно информация за да бъде превода точен (по-висок от 98%).

Разшифроване[редактиране | редактиране на кода]

Главна статия Optical Character Recognition (Unicode block) Букви който съдържат OCR са добавени в Уникод стандарта през Юни 1993 версия 1.1.

Някои от тези букви са добавени в шрифтовете MICR или OCR-A

Some of these characters are mapped from fonts specific to MICR or OCR-A.

Optical Character Recognition
0 1 2 3 4 5 6 7 8 9 А B C D E F
U+244
U+245x
Notes

1.^ As of Unicode version 7.0

2.^ Grey areas indicate non-assigned code points