LINUX.ORG.RU

Есть ли ПО, распознающее Таблицы, как ТАБЛИЦЫ с текстом (а не просто текст).

 , ,


0

2

И картинки желательно не убирающее. И разметку хоть как-то сохраняющее. Всё что я видел - надстройки над консольными текстовыми распознавалками (gocr / tesseract/ cuneiform / ocrad / и т.д.). А людям всего Мира нужно как FineReader. И не интерфейс к его облачным серверам за деньги. Как SETERE OCR, выдаваемый за инновацию. И тоже не opensource, да. Может есть где-то альфа-версия 0.0.1? Как люди распознают таблицы? Только текст поверх картинки в pdf? Тот же YAGF понимает таблицы, но выдирает из них только текст, а саму таблицу не рисует! Почему так? Никому не надо? А картинки не трогать и форматирование сохранять? Распознал область текста - остальное скопируй, пачиму удаляиш брат? Новые языки программирования делают, ОС форкают, а распознавалку документов через wine приходится 15 лет запускать…


А людям всего Мира нужно как FineReader

Мне за последние лет 10 ни разу не понадобилось не то что таблицы, а вообще текст распознавать. Опросил нескольких знакомых (кто был онлайн в этот момент) — никому из них распознание таблиц тоже никогда не требовалось, хоть и юзают FineReader. Про людей всего Мира, да ещё и с большой буквы — как-то уж очень громко сказано.

Новые языки программирования делают, ОС форкают, а распознавалку документов через wine приходится 15 лет запускать…

Ну ты сравнил жопу с пальцем, конечно…

А так да, обидно, что нет опенсорсных распознавалок, сравнимых с FineReader по функциональности. С другой стороны — чем не повод помочь существующим стать лучше? Говоришь YAGF распознаёт таблицы? Уже пол дела сделано, если так. Можно взять и довести до ума, как тебе надо. А по результату и pull request сделать не грех.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

а распознавалку документов через wine приходится 15 лет запускать…

Может дело не в софте а в ваших документах? За 15 лет могли б уже всё нужное распознать, а далее юзать только электронный документооборот. А то писают кипятком от PDF, а потом начинается: «а как с этим работать?!» Софт то движется в правильном направлении - мощные обработки текста и электронная подпись, к нему то какие притензии? Распознавание - зубодробительная вероятностная на уровне машинного зрения математика, это действительно трудно тянуть на уровне opensource.

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

Да ладно, распознавание печатного текста вполне себе простая задача.

Меня удивляет что несмотря на торжество всевозможных нейросетей до сих пор удовлетворительно не решена задача оффлайного распознавания рукописи.

Хотя с другой стороны меня это радует, потому что в своё время не смог довести до вменяемого уровня такой распознаватель. И чем дольше её не решат, тем выше планка которую я пытался взять, тем менее стыдно за то что я её не смог решить :-)

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

Да ладно, распознавание печатного текста вполне себе простая задача.

Ерунда, если б это было так просто, то было куча открытого софта и без ошибок распознавания. В печатном тексте только человек, не задумываясь какие ресурсы за это работают в его мозгу, распознает 99% те проблемы, обо что споткнулась железная распознавалка. Оно бы и бог с ним, если б оно ещё гарантированно указывало, что вот тут есть сомнения, а не лепила бы вероятную чушь, которую в больших текстах ещё потом скрупулезно приходится вычитывать.

vodz ★★★★★
()

ЕМНИП даже finerader таблицы очень криво распознает. Но в нем можно вручную разметить таблицу, дальше он все нормально сделает.

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

несмотря на торжество всевозможных нейросетей до сих пор удовлетворительно не решена задача оффлайного распознавания рукописи

Ничего удивительного, она даже на уровне моей личной нейросети решается с переменныи успехом.

ya-betmen ★★★★★
()

И разметку хоть как-то сохраняющее.

Гы. Тут толком не могут сделать перевод из одного формата документа в другой с этой самой разметкой (впрочем, с этим в отдельную тему), а ты на распознавание замахнулся.

И не совсем про таблицы, но… Раз уж тут упомянули tesseract, принято считать, что его надо обучать. Особенно русским текстам. Необученный tesseract это недоразумение, обученный — вполне годная OCR. Но я сам ненастоящий сварщик, пересказываю мнение людей, которым доверяю.

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

Мне за последние лет 10 ни разу не понадобилось не то что таблицы, а вообще текст распознавать.

Опросил нескольких знакомых (кто был онлайн в этот момент) — никому из них распознание таблиц тоже никогда не требовалось

Мне бывает нужно и первое, и второе. Не часто, да, но когда нужно — становится обидно за бедность инструментария. Последний раз, когда распознавал текст, использовал андроид-версию MS Office, он где-то там на серверах запускает OCR, а пользователю скидывает результат. Таблиц там не было, да.

Но во-первых, это пойдёт только для текстов, для которых не страшна утечка (тут была не страшна, надо было подготовить к публикации статью по краеведению, набранную автором на пишущей машинке). Во-вторых, объём ручной правки всё равно оказался очень даже приличен. Да, самую нудную часть работы сделала OCR, но чисто по времени я не думаю, что получил значительный выигрыш по сравнению с полностью ручным перенабором — вот нервов некоторое количество сэкономил, это да.

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

Мне бывает нужно и первое, и второе. Не часто, да, но когда нужно — становится обидно за бедность инструментария. Последний раз, когда распознавал текст, использовал андроид-версию MS Office, он где-то там на серверах запускает OCR, а пользователю скидывает результат. Таблиц там не было, да.

Да понятно, что это вполне может понадобиться. Моя придирка была исключительно к «людям всего Мира нужно». Уж больно пафосно звучит.

но чисто по времени я не думаю, что получил значительный выигрыш по сравнению с полностью ручным перенабором

Я думаю, что всё же получил. После ручного перенабора всё равно нужна вычитка и правка неизбежно возникающих опечаток, если текст длинный. Тут не только чистое время на набор текста со своей привычной скоростью, это надо учитывать. А так получается, что вычитка и правка объединена с исправлениями после кривого OCR. Просто исправлять сильно больше, чем после себя.

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

Значит людей и препятствия распознавать на дороге научились, номера машин для штрафов за пару лет - легко, теперь в 23м году подключают камеры всей страны к системе распознавания лиц людей (до этого тестировали в Москве и его метро в частности - сопоставление с карточкой при проходе). А таблицы и картинки отделить от не-текста - не, сложна. Не надо никому… Аж 190 языков FineReader поддерживает и свою облачную Engine предлагает. Платно конечно. И конкурентов особо нет. Микрософт упомянули, про гугль знаю. OpenSource? Да не надо никому… Книги, научные работы старые, краудфайндинги собирали, чтобы Abbyy заплатить. А знаете чем ЕГЭ распознаётся? Вот этим самым, ага. Абби. Так может пора монополиста чуток потеснить, или ещё 20 лет ждать будем пока в YAGF-е поймут, что раз мы понимаем где таблица в документе - так может и научимся себе кусочек LibreOffice writer-a вставить, и там создавать? Он же опенсорс, да? Да. Ну так а чё? Мне пилить никак. Я даже по выхам занят. Вчера спрашивали над какой задачей работаю, когда вырубился в 14.30. Ипотеки нет если что )))

c0unt0
() автор топика
Ответ на: комментарий от CrX

Ага, наберите пару книжек. И картинки, и таблицы… И разметку сохраните. А потом больше никогда таким заниматься не будете. Абби подсвечивает места, где не уверен, и кнопочкой можно перемещаться между предполагаемыми ошибками. А не вычитка. И показывает оригинал выше, чтобы понять, что там было. Можно даже масштаб поменять. И это было много лет назад.

Моя придирка была исключительно к «людям всего Мира нужно». Уж больно пафосно звучит.

190 языков и офисы Абби в разных странах, типа США, Китая и Японии подтверждают. Альтернативы не было. А жирные корпорации спали в неведении.И получился монополист. Хотя нейросети известны давным-давно. В ру-ете мало инфы и спецов готовых общаться и объяснять, идут в корпорации и там кодят, а в англо-сайтах вполне себе. Причём китайцы делают! Кое-что у них брал в своё время по opencv.

c0unt0
() автор топика
Последнее исправление: c0unt0 (всего исправлений: 1)
Ответ на: комментарий от vodz

Ну конечно виноват спрашивающий человек )) Только давайте не флеймить а по существу. Эту тему найдут люди и будут искать предложения «Как быть». Вы их не увидите, а они есть. Распознавание Tesseract - удовлетворительное. Даже хорошее. Есть проблема - русский + английский. Вроде есть даже словарь такой. Либо можно самому научить. Так что решаемая. В FR решили много лет назад. Они Боги там что ли? Те же выпускники ВУЗ-ов. А в Гарварде, Оксфорде и MIT хуже учат получается? Но как сохранить таблицы и разметку - вот в чём вопрос. Видишь текста нет на картинке - оставь её as is! Не надо чистить. Вот книжку с нотами надо распознать. Ноты оставить, текст под ними. Всё, приехали. Руководство по какой-нибудь ОС с картинками, кодом на английском, и русским текстом. Аналогично. Это всё просто пропадёт, если не оцифровать. Я искал как-то скриншоты Xerox StarOS и более ранней. На ютубе кое-как нашёл видео разные, в-принципе понял как выглядела, сделал. Есть книги разные по старому железу и софту у людей. Захочет кто-то из 22-го века почитать - а борода. Потому что кто-то решил что «мне не надо, значит никому не надо». Ну ок, мне не нужны Майбахи, Ролс-Ройсы и Порш-Кайены не красивые.

c0unt0
() автор топика
Ответ на: комментарий от peregrine

Тогда придётся ждать, пока сдо… оставит свой пост, как Царь. Вендекапца же ждали? Ждали. И дождались в отдельно взятых нашей и Китайской стране. Теперь вот бегают «а где взять импортозамещённый софт до НГ…». А админы должны родить ВЕСЬ. Сколько лет говорили - надо замещаться. И? Пара посадок топ-менеджеров, и пошло бы дело.

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

Значит людей и препятствия распознавать на дороге научились, номера машин для штрафов за пару лет - легко, теперь в 23м году подключают камеры всей страны к системе распознавания лиц людей (до этого тестировали в Москве и его метро в частности - сопоставление с карточкой при проходе). А таблицы и картинки отделить от не-текста - не, сложна. Не надо никому…

Ну да. Во-первых это немножко сложнее (хотя сравнимо), во-вторых действительно тупо не надо никому, по сравнению с выше перечисленным. Abbyy нашли нишу, в которую особо никто не лезет. Опенсорс часто во многом строится на энтузиазме, иногда на интересах корпораций. А энтузиастов пилить распознавание таблиц нет — ну действительно мало кому это надо, тут даже спорить не о чем. Корпорациям (именно денежным, для ЕГЭ не в счёт, там наоборот выгоднее попилить на закупке файнридера) это тоже не требуется.

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

Тогда придётся ждать, пока сдо… оставит свой пост, как Царь.

Так зачем ждать? Надо начинать пилить алтернативу. Точнее допиливать то, что есть. Вот тебе лично это нужно — ну так помоги пилить Tesseract или ещё что-то поверх него. Кто за вас это сделает-то? Те, кому распознание таблиц нафиг не упёрлось, не будут just4fun пилить такое — это не ЯП и не ОС, это скучно.

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

Мне пилить никак. Я даже по выхам занят. Вчера спрашивали над какой задачей работаю, когда вырубился в 14.30. Ипотеки нет если что )))

Ну вот и не у одного тебя такая ситуация.

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

Те, кому распознание таблиц нафиг не упёрлось, не будут just4fun пилить такое — это не ЯП и не ОС, это скучно.

Ну насчёт скучно, поспорю. Довольно интересная задача. Но это не стопятисотый гуй к БД, тут надо и думать основательно, и пробовать разные варианты десятки и сотни раз.

Если таблицы с границами, например… Можно попробовать свести к распознаванию отрезков, притянуть openCV (или что-то своё), потом как-то координаты этих отрезков ранжировать и что-то из них слепить. Но там тоже не всё однозначно, я вот сейчас пинаю преобразование Хафа для поиска окружностей в той же OpenCV, и результат пока, скажем так, далёк от удовлетворительного…

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

надо и думать основательно, и пробовать разные варианты десятки и сотни раз

Если таблицы с границами, например… Можно попробовать свести к распознаванию отрезков, притянуть openCV (или что-то своё), потом как-то координаты этих отрезков ранжировать и что-то из них слепить. Но там тоже не всё однозначно, я вот сейчас пинаю преобразование Хафа для поиска окружностей в той же OpenCV, и результат пока, скажем так, далёк от удовлетворительного…

Если так, то не скучно, согласен.

Но нынче такое делается более модным способом — обучением нейросетки. Это проще и в конце концов обычно эффективнее (в плане качества результата. о производительности никто не больше парится). А это скучно и к непосредственно программированию мало отношения имеет, скорее glorified bruteforce.

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

там даже не столько в математике проблема, сколько в тех машинках на которых все эти нейронки учить. Их же не один раз придётся переучивать в процессе тюнинга и улучшений алгоритмов

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

Поверх бесполезно. Там надо весь алгоритм принципиально менять.

Почему? В чём проблема сделать отдельную тулзу, которая разбивает изображение на «просто текст», «текст в несколько колонок», «таблицы», «изображения с подписью под ними», и т.д. и т.п., сделав эдакий шаблон форматирование всего результата, а потом скормить именно фрагменты (каждую ячейку таблицы отдельно, каждую колонку текста отдельно, и т.д.) тессеракту?

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

потому что базовый подход там убогий, начать надо со сбора матрицы признаков для машинного обучения, а не по результатам распознавания матрицы признаков генерить

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

Их же не один раз придётся переучивать в процессе тюнинга и улучшений алгоритмов

Всегда интересовал вопрос, что вот типа можно, но только обучить. Так чего не дать результат после обучения, чтобы пользовались? Может потому что на самом деле результат то так себе?

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

Не понимаю, как это мешает разбить задачу на две. Тессеракт вполне справляется с распознанием простых фрагментов текста, без особого форматирования. При этом ничто не мешает сделать тулзу, которая будет заниматься только распознанием форматирования на странице (где таблицы, где заголовки, где абзацы и т.д.), но не распознавать сам текст — ей вообще пофиг, на каком оно языке и т.д. Эта новая тулза размечает шаблон для итогового результата, затем каждый фрагмент текста отдельно скармливает тессеракту (которому вообще знать не надо, таблицы там или кто), а результат, выданный тессерактом вставляет в этот самый шаблон. При этом получаем тот факт, что нам не нужно велосипедить распознавалку текста с нуля. Также выходит, что тессеракт при желании можно заменить на любой аналог без особых проблем, что тоже плюс и даже некоторый намёк если не на юниксвей, то хотя бы модульность.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от peregrine

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

Ну то есть «вот тебе алгоритм, пиши сам программу»? Так можно на много сказать, что есть рабочее решение :)

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

Процесс распознавания более-менее адекватный выглядит следующим образом (упрощённо)

0) Предобработка изображения (баланс белого и т.д., исправление смазанности и размытости и т.д., тут даже нейронкам есть где разгуляться)

1) Определение блоков (текст, таблицы, изображения)

2) Определение направления текста

3) Сегментация текста по строкам

4) Сегментация текста по предположительным буквам

5) Обработка изображения (разрешение, резкость, цвета и т.д.)

5) Распознавание текста

Если мы будем определять блоки где-то ещё, то по очевидным для меня причинам (данные статистически будут отличаться от тех, на которых проводилось обучение алгоритмов), точность распознавания будет падать.

Тессеракт, же, про половину этих этапов ничего не знает, а вторую половину умеет на основе алгоритмов которые были передовыми в 1995 году. Т.е. 30 лет теории прошли мимо него.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Ну вот смотри, можно для начала 0 и 1 этапы выделить в отдельную надстройку, а для 2–5 вызывать тессеракт. Поблочно. Затем добавить к этому делу определение направления текста и т.д. В итоге можно поэтапно запилить новый инструмент, который будет пригоден к использованию не через 10 лет (и то если не забросят), а намного скорее, а дальше, когда оно уже работает и известно, проект станет интересен большему количеству потенциальных разработчиков, дело пойдёт быстрее — и так далее, в итоге получая уже полный инструмент, делающий все необходимые этапы, а тессеракт из зависимостей выкинут.

Тессеракт неплохо справляется с распознаванием отдельных блоков скормленных ему, даже если тупо вручную это проверять. Поэтому я не вижу в этом серьёзных проблем. Таким образом задачу можно решить относительно быстро, пусть и не идеально. Но лучше неидеально, чем никак.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

а) разве FineReader не российский продукт?
б) если да, то надо пнуть по поводу поддержки отечественных ОС

Также верны выводы @peregrine про пайплайн распознавания. Тесеракту надо подсовывать куски именно текста, а со структурой разбираться на предыдущих этапах (как и с контрастом, бинаризацией и прочим) - для этого существуют фреймворки вроде OCR-d, который умеет распознавать те же таблицы; текст внутри них - в самом конце.

ЗЫ что у тесеракта неоспоримое преимущество - обучение автоматизируется. Накидать в директорию тхт файлов и соответстующих им изображений слов, оставить на час-ночь-недельку, и получаем адекватную модель. С файнридером подобное нельзя, по крайней мере - в интернете не нарыл, а серверную/эмбеддед версии (ни доки к ним) на поиграться не дают.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 7)
Ответ на: комментарий от peregrine

Насколько сложно при анализе страницы оставлять то, где текста нет, и делать это как текст, а вокруг картинки? Я не понимаю подхода всех Линукс-OCR: выдернуть текст, остальное отбросить. Также таблицы и области текста можно выделять ручками, как уже сейчас сделано в yagf. И давным-давно в Finereader, который тоже ошибался при авто-выделении. И «сохранять строки как в оригинале», т.е. некоторое подобие сохранения разметки. Текстовой. Можно оставить полученную страницу документа, где выделили вырезать и вписать текст, и сохранить хоть в pdf, хоть в odt. Осталось-то чуток, просто «никому не надо». А разрабы yagf-a движутся в нужном направлении. Раньше он был гораздо менее функционален.

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

У них память текла рекой как я помню. Сидел у себя дома зимой как-то, январь кажется года 4 назад, солнышко светит, небо голубое, сугробы за окном, хочу YAGF-ом 100 отсканированных страниц в высоком разрешении распознать - 15 секунд лагов и оом приходит за иксами (16 гигабайт оперативки вжух и всё)... Стал смотреть что там и как, а этот дурачок на YAGF пытается все страницы сначала в оперативку загрузить, а потом распознавать. Посмотрел я на это дело, плюнул и пошел файнридер в вайн ставить.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 3)
Ответ на: комментарий от peregrine

Есть такое слово - МРП. Минимально работоспособный продукт. Это не идеал, а просто чтобы все требуемые функции работали. Как-то. С неидеальным алгоритмом распознавания текста. С утечками ОЗУ. Главное привлечь людей и разрабов. Билл это прекрасно понимал, и его команда делала не идеально, где-то тырила идеи у других, но стремилась быть 1й. Если бы они всё вылизывали, все бы сейчас сидели на Линуксах и Мак-ах. А на вопрос про сложность ответьте пожалуйста, Вы я вижу хорошо в этом разбираетесь.

c0unt0
() автор топика
Ответ на: комментарий от peregrine

Насколько сложно при анализе страницы оставлять то, где текста нет, и делать это как текст, а вокруг картинки?

Да ничего, не срочно ) Мы видимо где-то в одинаковых часовых поясах, в Сибири ))

c0unt0
() автор топика
Последнее исправление: c0unt0 (всего исправлений: 1)
Ответ на: комментарий от c0unt0

Я в Москве. В общем случае - сложно. Потому что текст может быть и на картинке. При этом относится он по смыслу к документу или к самой картинке в общем случае не понять даже человеку.

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

Но если перед распознаванием примерно выделить зоны, дать поправить человеку, а потом именно не удалять, а давать вывод как картинки + текст? Т.е. вставить текстовый процессор в правое окошко, где вывод?

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