LINUX.ORG.RU

Кто пробовал OCR программы под линукс?


0

0

Есть много OCR софта под линукс. Например:

http://jocr.sourceforge.net/links.html

Но там или без поддержки Русского или нужно тренировать программу. Кто пробовал OCR софт подскажие есть ли смысл его использовать. Т.е. как там с КАЧЕСТВОМ РАСПОЗНАВАНИЯ. Удобство для меня второстепенно.

anonymous

Пользуюсь им для распознавания английских субтитров в фильмах.
Ничего так. В сочетании со spellcheker'ом довольно приятно.

А русский - хрен.

jackill ★★★★★
()
Ответ на: комментарий от fagot

> говорят, нету нормальных вообще

Я знаю что "говорят". Но меня интересует практический опыт. Например под винду кроме FineRider'a есть бесплатная TWAIN-совместимая прога WOCAR v2.5 и качество распознавания очень хорошее сам пробовал (правда только для Английского и Французкого языков) а многие ли про неё знают? Не очень потому что реклама делает своё дело только там где выгодно.

anonymous
()
Ответ на: комментарий от jackill

> Пользуюсь им для распознавания

кем "им"? Там шесть ссылок внизу страницы.

> А русский - хрен.

Так там есть такие которые от языка не зависят. Но требуют обучения. Меня интересует есть ли смысл напрягатся.

Немного не в тему. Недавно какой-то професор зделал коммерческую прогу для перевода текстов основанную на статистических алгоритмах и "паралельных текстах". Так говорят после нескольких часов обучения БЕЗ СЛОВАРЕЙ легко задвинет любой промт. Т.е никаких словарей никакой грамматики одни "паралельные тексты"

anonymous
()
Ответ на: комментарий от anonymous

>Немного не в тему. Недавно какой-то професор зделал коммерческую прогу для перевода текстов основанную на статистических алгоритмах и "паралельных текстах". Так говорят после нескольких часов обучения БЕЗ СЛОВАРЕЙ легко задвинет любой промт. Т.е никаких словарей никакой грамматики одни "паралельные тексты"

А может ты и линк дашь? Или хоть для гугля ключевые слова? На систему с возможностями AI не жалко никаких денег. Может скажешь где ты хоть такую новость видел?

anonymous
()
Ответ на: комментарий от anonymous

>Немного не в тему. Недавно какой-то професор зделал коммерческую прогу для перевода текстов основанную на статистических алгоритмах и "паралельных текстах". Так говорят после нескольких часов обучения БЕЗ СЛОВАРЕЙ легко задвинет любой промт. Т.е никаких словарей никакой грамматики одни "паралельные тексты"

видимо прогресс в использовании нейросеток ускоряется

anonymous
()
Ответ на: комментарий от anonymous

> видимо прогресс в использовании нейросеток ускоряется

нет там статистика

anonymous
()
Ответ на: комментарий от anonymous

Нихера. С начала 80-х такой застой, что Брежнев удавился бы от зависти.

anonymous
()
Ответ на: комментарий от jackill

> Нихера. С начала 80-х такой застой, что Брежнев удавился бы от зависти.

Как раз WOCAR v2.5 про который я говорил использует нейросети

> gocr Насчет обучения - хз. Этот тоже учится, но он распознает все английскими буквами :)

Но там нет ключа "обучение"?! Или я не туда смотрел? gocr/jocr - действительно английскими, но там ещё есть (внизу страницы ссылки) clara_ocr, locr и ocre. Все с обучением. Не интерактивным а через параметры командной строки.

Мне бы вот к ним (clara_ocr, locr и ocre) патчик сделать такой что-бы при распознавании можно было несколько баз использовать. Это повысило-бы гибкость и точность.

1. Например если таблица только с цифрами то нужны толко цифры и запятая (или только цифры и точка). И таких "частных случаев" очень много. А выбирать из более узкого круга символов заведомо легче.

2. Можно каждое отдельное слово распознавать перебирая (автоматически) ВСЕ предложенные базы и затем по количеству "неуверенно распознанных" символов выбирать (для каждого отдельного слова) подходящюю базу

PS: Я сам не програмист и даже в таких простых как у LOCR исходниках ( всего 44KB :) увы не в состоянии разобратся. Может кто-нить на ЛОРе сумеет сделать патчик соответствующий.

anonymous
()
Ответ на: комментарий от anonymous

я исходники gocr-а смотрел - там один здоровый сишник есть в нем автор распознавалку для всех латинских букв написал. На вход этой функции подается изображение буквы и его размер. В принципе туда же можно подвесить и нейросеть, только с автором придется таки списаться насчет того чтобы с этой функции он не char снимал а wchar_t (все догадались почему :) )

hooj ★★
()
Ответ на: комментарий от hooj

> я исходники gocr-а смотрел

Наконец хоть кто-то :)

> в нем автор распознавалку для всех латинских букв написал

Так-же и WOCAR v2.5 устроен (только французкие буквы "с акцентами" добавлены и нейросеть прикручена). Но проблема в том что такой принцип это "синица в руках" т.е. эффективен но негибок. При такой системе пользователь не может сам настроить программу например на греческий алфавит (для мат формул полезно) если ты ему не напишешь готовое.

А как насчет сообщения от anonymous (*) (16.03.2004 10:55:49) Особенно пункт 2 интересует.

anonymous
()
Ответ на: комментарий от hooj

2hooj:

> там один здоровый сишник есть в нем автор распознавалку для всех латинских букв написал.

Не вздумай "механически" расширять эту "распознавалку" иначе резко упадёт точность. Например не ясно буква H из какого алфавита русского или английского? Только работа с несколькими базами символов решает проблему.

anonymous
()
Ответ на: комментарий от anonymous

я бы в принципе реализовал нейросетку для буковок только тут некоторые затыки будут: нормально ли будет работать несколько слоев с обратным распространением ошибки если на нее bitmap подавать(будет ли к поворотам +-~20 устойчива)? или лучше векторный обход сделать (так ведь буквы-то рваные могут быть)?

какой тип сети туда?

алгоритм разделения букв сумбурно представляю, хотя примерная идея наверно такая будет: слова-то друг от друга легче отделить, ловим в прямоугольник слово, считаем что мол буквы квадратные поэтому ширина=высота, после чего детектим первую букву (ну или не первую а весь ряд, или 2 буквы) c заданной шириной, причем подстраиваем ширину (не более чем на высота*2 не менее высота*0.2) пока наилучшее распознавание не будет (думаю за показатель взять разность между самым большим выходом и остальными или дисперсию на выходе?) если брать 2 буквы то можно каким-нить словарем чекить какова вероятность подобного буквосочетания

как слово проверять - думаю множество букв в слове сверять со множеством букв в словаре (интересно что iconv скажет на допустим "сдсво"?) хотя выше можно и статистику прикрутить... (кто знает как это писать?) есть ли вообще такой ocr где на вход функции слово подается? а ели там интеграл? или хотя бы <sup>?

hooj ★★
()
Ответ на: комментарий от hooj

2hooj:

Спасибо что откликнулся :) Я (Владимир bcspm2-at-ukr.net) сюда периодически буду заходить так что если что-нить конкретное будет то кидай ссылку сюда.

> будет ли к поворотам +-~20 устойчива

В одной из GPL прог такая устойчивость вроде есть. Подробности смотри здесь http://http.cs.berkeley.edu/~fateman/kathey/skew.html если понравится можно позаимствовать :)

> или лучше векторный обход сделать

Не знаю. Но говорят что человеческий глаз делает примерно так: 1. двигает мышцами сетчатку (постоянно но на очень маленькое расстояние) 2. ставит "точки" в тех местах где при движении "туда-сюда" постоянно меняеться яркость 3. соединяет эти точки вместе получая контур 4. уделяет особое внимание тем местам контура где наибольшая кривизна (поскольку они максимально показывают форму. смотри например эскизы художников сделанные только острым карандашом)

А дальше идёт разбивка на ряды Фурье (но подробнее я увы не помню) Ещё используются текстуры для определения расстояния. Отсюда и большинство "оптических иллюзий" но текстуры нам не пригодятся.

> так ведь буквы-то рваные могут быть

Здесь http://http.cs.berkeley.edu/~fateman/kathey/char_recognition.html подробно показано как ORCchie решает это для букв типа "i". Кроме того LOCR делает похоже тоько проще.

> алгоритм разделения букв

Очень прост если не брать рукописей :) Предполагаешь что буквы все УЖЕ отделены друг от друга. А "слипшиеся" берёшь как лигатуры (см. FineReader начиная с версий 4.x)

> слова-то друг от друга легче отделить

Сначала блоки текста можно в процессе "сегментации" по "плотности" отделить. Затем определять слова (тоже по плотности только порог плотности другой) одновременно отмечая "плохие" слова с нереальными размерами как КАРТИНКИ. Естественно под плотностью понимается относительное к среднему по листу количество "темного" цвета.

> как слово проверять - думаю множество букв в слове сверять со множеством букв в словаре

НЕ-Е-Е-Е-Е-Т!!! Боже упаси. Я же говорил: не вздумай "механически" расширять эту "распознавалку" иначе резко упадёт точность. Пускай пользователь сам выбирает набор языков (в распознаваемом документе) каждому из которых соответствует своя БАЗА СИМВОЛОВ с возможным тупым повторением например знаков препинания в каждой базе (поскольку на этом этапе всякие там точки и двоеточия ЕЩЁ НЕ ОТДЕЛЕННЫ от слова!!) Далее можно посмотреть кол-во "неуверенно распознанных" символов. В смысле для КАЖДОЙ базы символов т.е. ТУПО "меженически" пробовать с каждым словом ВСЕ предложенные пользователем "языки" (которые на самом деле базы символов но простому пользователю об этом знать не нужно :) В принципе этого должно быть достаточно, но для самых "уверенных" можно задействовать spellcheck'ер причём искать с жесткой привязкой словаря к базе символов. А spellcheck'ер должен обязательно не ошибочные слова а правильные варианты выдавать (если это возможно).

Глубокий смысл всего этого в том что-бы ОПРЕДЕЛИТЬ на каком "языке" написано слово.

> а ели там интеграл? или хотя бы <sup>?

Еще раз смотри параграфом выше 'Глубокий смысл всего этого в том что-бы ОПРЕДЕЛИТЬ на каком "языке" написано слово.' Причём под "языком" понимается не реальный язык а скорее МНОЖЕСТВО ДОПУСТИМЫХ СИМВОЛОВ

anonymous
()

kognition.sf.net не смотрели? Проект был изначально задуман как дипломная работа, но идея достаточно симпотная. Я ему сдуру русский перевод сделал, потому как не знал, что они дальше развивать программу не будут.

Недостаток: распознанные символы кидаются в консоль, из которой программа запускается, а не в текстовое коно какое-нибудь.

AP ★★★★★
()
Ответ на: комментарий от AP

> kognition.sf.net не смотрели?

Пока нет. Щас гляну.

anonymous
()
Ответ на: комментарий от anonymous

2anonymous (*) (24.03.2004 16:06:59)

Если склероз не изменяет, там kdelibs нужны. В принципе, можно через webcvs хедеры глянуть.

AP ★★★★★
()
Ответ на: комментарий от AP

Фигово что информация пожоже по немецки я только английский нормально знаю.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.