Автор Тема: CuneiForm для DjVu  (Прочитано 40084 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #75 : 04 јРЩ 2011, 16:02:53 »
Билл Риемерз прислал мне на днях письмо по поводу глюка из  http://www.djvu-scan.ru/forum/index.php?topic=115.msg1757#msg1757 :
Цитировать
Oh good to hear.  There was a patch submitted that addressed a similar, but separate issue to the one you reported, and I was hoping it solved this problem as well.  I am glad to hear it did.  :)

Regards,

Bill

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #76 : 06 јРЩ 2011, 11:58:46 »
Я исправил глюк в djvuxmlparser, o котором писал ранее:
Цитировать
Глюки такие: в начале каждого параграфа текстового слоя DjVu вставляется один некий "левый" символ (это пока относительно малокритично) - хотя в исходном DjVu XML его не было.
Как оказалось, в начале каждого параграфа в текстовом варианте OCR-слоя (получаемом при выделении мышкой и копировании в буфер обмена) вставлялся символ с шестнадцатиричным кодом 1F. Это какой-то т.н. "Unit separator" http://en.wikipedia.org/wiki/Unit_separator .

Вот исправление:

Здесь http://djvu.cvs.sourceforge.net/viewvc/djvu/djvulibre-3.5/libdjvu/XMLParser.cpp?revision=1.14&view=markup

в строке 824 нужно заменить

sepchar=DjVuTXT::end_of_paragraph;
на

sepchar=0;
и после этого всё становится нормально.

Я написал об этом исправлении Биллу Риемерзу, и предложил внести его в CVS DjVuLibre. Билл ответил, что он посмотрит, и, если оно правильное, добавит. Заодно Билл переслал моё письмо Леону Боту.

В принципе, этот глюк не слишком серьёзен, но всё-таки действует на нервы.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #77 : 06 јРЩ 2011, 12:21:34 »
Новая подверсия:

CuneiDjVu v1.2

http://djvu-soft0001.nxt.ru/cuneidjvu_v1_2.rar  (24,1 МБ)

Исходники:

http://www.djvu-soft.narod.ru/soft/cuneidjvu_v1_2_src.rar  (24 КБ)

Что нового:

- Добавлен русский интерфейс. При первом запуске программы автоматически выбирается либо русский, либо английский интерфейс.

- Добавлена англоязычная помощь (Help).

- Устранён глюк, описанный в предыдущем посте.

P.S. Предыдущие версии CuneiDjVu удалены с сайта.

Это первая по-настоящему стабильная (я надеюсь) версия программы.
« Последнее редактирование: 06 јРЩ 2011, 12:23:54 от monday2000 »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Re: CuneiForm для DjVu
« Ответ #78 : 06 јРЩ 2011, 13:29:49 »
Спасибо!

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #79 : 10 јРЩ 2011, 12:24:08 »
Я написал статью:

Использование CuneiDjVu

http://www.djvu-soft.narod.ru/scan/cuneidjvu.htm

Ссылка на статью добавлена в статью о CuneiForm на Википедии.

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: CuneiForm для DjVu
« Ответ #80 : 11 јРЩ 2011, 08:29:31 »
Отличная работа. Одну книжку уже обработал. На другой CuneiDjvu вылетел с ошибкой.

Интересно, в консольной версии заложен функционал Искать таблицы и Искать картинки, есть ли возможность вынести их в параметры командной строки?

Параметры --fax, --dotmatrix и --singlecolumn (кстати, последнего почему-то нет шаблоне использования, выводимом при запуске cuneiform без параметров) можно задавать по отдельности. В Windows версии CuneiForms 12 они представлены через отдельные флажки.

Ну и как обычно нелепо смотрятся сокращения на кнопках при 50% заполнении рабочей области формы. Еще можно понять все эти Источны и Назначи при отсутствии нормальной подписи к полю выбора файла в Djvu Imager, хотя и там подпись была бы намного полезнее. В CuneDjvu же по факту имеем две подписи к каждому полю, Input=Source и Output=Dest.
Вообще считается, что на кнопке должна быть команда - Выбрать, Задать, Обзор. Да просто классическое троеточие - во многих программах ставшее стандартной интернациональной подписью к подобным кнопкам.
« Последнее редактирование: 11 јРЩ 2011, 08:31:28 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #81 : 11 јРЩ 2011, 09:52:17 »
57an
Цитировать
Отличная работа.
Спасибо! :)
Цитировать
На другой CuneiDjvu вылетел с ошибкой.
Спасибо за пример. Причину вылета я уже установил - я просто не подумал о том, что CuneiForm хочет непременно чёрно-белый BMP у себя на входе - а в Вашей книге 2-я страница декодировалась в 8-битный BMP. Надо будет прикрутить ещё и бинаризацию - думаю, возьму Otsu (как в СТ) из BookScanLib.
Цитировать
Интересно, в консольной версии заложен функционал Искать таблицы и Искать картинки, есть ли возможность вынести их в параметры командной строки?
Что-то я о таком функционале вообще слышу в первый раз. Откуда такие сведения? Вообще я пробовал распознавать таблицы - получался настолько жуткий бред, что только принудительная установка singlecolumn хоть как-то спасала дело.

Линуксовый CuneiForm 1.0 - это всё же достаточно обрезанный по функционалу CuneiForm. Действительно, в родном CuneiForm декларирована некая устойчивая работа с опознаванием структуры таблиц - однако в Линуксовом CuneiForm 1.0 всё это просто было закомментировано при портировании на Linux (где-то в комментах писали).

Впрочем, уже вышел Линуксовый CuneiForm 1.1 - может там есть что-то новенькое... (?)

ИМХО это вообще чудо, что CuneiForm хоть как-то смогли более-менее успешно портировать на Linux. Теперь ещё долго будут разгребать проблемы портирования, думаю.
Цитировать
(кстати, последнего почему-то нет шаблоне использования, выводимом при запуске cuneiform без параметров)
Видимо, он идёт по-умолчанию (что и логично).
Цитировать
можно задавать по отдельности.
Так у меня они и задаются именно по отдельности.
Цитировать
В Windows версии CuneiForms 12 они представлены через отдельные флажки.
Считаете, что можно задать сразу несколько опций из числа --dotmatrix, --fax, --singlecolumn? А что, я как-то об этом и не подумал, попробую, что из этого получится.
Цитировать
Ну и как обычно нелепо смотрятся сокращения на кнопках при 50% заполнении рабочей области формы.
Да, я о таких мелочах ещё не успел подумать. :) Хорошо, я изменю как-нибудь наименования этих 2 кнопок. Правда, не знаю, как насчёт троеточий - если их поставить, то кнопки будут совсем уж маленькими - тыкать мышью туда будет неудобно. :) Поставить что ли "Обзор" ("Browse")?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #82 : 11 јРЩ 2011, 12:24:43 »
Новая подверсия:

CuneiDjVu v1.3

http://djvu-soft0001.nxt.ru/cuneidjvu_v1_3.rar  (24,1 МБ)

Исходники:

http://www.djvu-soft.narod.ru/soft/cuneidjvu_v1_3_src.rar  (24 КБ)

Что нового:

- Исправлен глюк, когда не-чёрно-белые DjVu не распознавались. Теперь DjVu декодируется с опцией black (у ddjvu есть такая) - т.е. декодируется только маска, причём в некоем умном режиме. Если кому-то потребуется распознавать буквы фона DjVu - дайте мне знать.

- Исправлен глюк: при нажатии кнопки "Отмена" при распознавании отмена происходила долго и неправильно.

- Режим распознавания сделан с возможностью множественного выбора.

- Кнопки выбора ввода и вывода обрели надписи "Обзор" ("Browse").

Также подправлена нужным образом статья http://www.djvu-soft.narod.ru/scan/cuneidjvu.htm и ссылка на программу в таблице программ.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #83 : 11 јРЩ 2011, 12:46:47 »
Одним из достоинств CuneiForm является быстрота его работы. Считается, что он работает даже быстрей, чем FineReader (так это или нет, я лично не знаю).

Одним из применений CuneiForm-Linux мог бы стать т.н. "Умный Despeckle". Поскольку CuneiForm-Linux способен находить координаты прямоугольников, описанных вокруг каждой буквы на скане, то можно было бы производить обычный Despeckle в областях, не занятых буквами.

Забавно, что подобный Despeckle можно было бы осуществлять ... прямо в готовых DjVu-файлах! :D Можно делать при помощи CuneiDjVu побуквенный OCR в DjVu (а то и при помощи DjVuOCR - он тоже позволяет побуквенную детализацию) - а затем функционалом, схожим с программой DjVu Pal, удалять из маски DjVu "мусорные" шейпы. Естественно, при этом нужно уметь разбивать несвязные шейпы на связные. Всё равно ведь OCR в DjVu делать надо. Разница лишь в том, что сейчас OCR в DjVu делается с пословной детализацией. Хотя даже и пословная детализация могла бы стать основной для умного деспекла - только более грубого.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #84 : 11 јРЩ 2011, 18:30:30 »
Новая подверсия:

CuneiDjVu v1.4

http://djvu-soft0001.nxt.ru/cuneidjvu_v1_4.rar  (24,1 МБ)

Исходники:

http://www.djvu-soft.narod.ru/soft/cuneidjvu_v1_4_src.rar  (24 КБ)

Что нового:

- Cuneiform-Linux v1.0 (OCR-движок программы) заменён на Cuneiform-Linux v1.1.

Также подправлена нужным образом статья http://www.djvu-soft.narod.ru/scan/cuneidjvu.htm и ссылка на программу в таблице программ.

PS Это я только что скомпилировал самую свежую версию Cuneiform-Linux  - 1.1. При этом обнаружился (и был мною устранён) ещё один баг:

Bug #781179 in Cuneiform for Linux “uintptr_t is not defined under MS VC++ 6” ( https://bugs.launchpad.net/cuneiform-linux/+bug/781179 )

Что нового в Cuneiform-Linux v1.1 по сравнению с Cuneiform-Linux v1.0 - я не знаю, и узнать негде. ;D Наверное, глюков меньше. (?)

57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: CuneiForm для DjVu
« Ответ #85 : 11 јРЩ 2011, 20:51:46 »
А какой смысл во флажке Режим распознавания? Имхо, лишний он, путает только..


57an

  • Постоялец
  • ***
  • Сообщений: 201
    • Просмотр профиля
    • Djvu Bookmarker on SF.net
Re: CuneiForm для DjVu
« Ответ #86 : 11 јРЩ 2011, 21:04:01 »
И еще - вряд ли все знают термин OCR. По мне, в русском варианте уместнее Язык распознавания (по крайней мере так в CuneiForm 12) и Детализация текста (а тут даже не знаю где подсмотреть - у gencho в этом месте невнятный Тип OCR, в коммерческом Pdf To Djvu - Text Extraction).
« Последнее редактирование: 11 јРЩ 2011, 21:09:26 от 57an »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #87 : 12 јРЩ 2011, 09:03:34 »
57an
Цитировать
Имхо, лишний он, путает только..
Он для тех, кто любит заморачиваться. Флажок показывает, что данная группа опций опциональна - и её можно (и нужно :) ) вообще не включать. У меня такое ощущение, что не сильно эти опции на что-то влияют. :)
Цитировать
Язык распознавания (по крайней мере так в CuneiForm 12) и Детализация текста
Отлично, так я и сделал - подправил программу и перезалил по той же ссылке http://djvu-soft0001.nxt.ru/cuneidjvu_v1_4.rar . Версию решил не менять из-за такого пустяка. В статье скриншот окна подправил тоже.
« Последнее редактирование: 12 јРЩ 2011, 09:16:41 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: CuneiForm для DjVu
« Ответ #88 : 13 јРЩ 2011, 08:57:31 »
Пришёл ответ от Билла Риемерза по поводу глюка с Unit Separator http://www.djvu-scan.ru/forum/index.php?topic=115.msg1769#msg1769 :

Билл ранее написал мне, что вообще-то это не баг, а фича. :) Что, мол, Unit Separator должен вставляться в соответствии со спецификациями. Я спросил у него, о каких спецификациях он говорит? И ещё сказал ему, что в OCR-TXT выводе Файнридера нет никаких таких левых символов.
Цитировать
The specifications are in the djvulibre/doc directory.   Reference section 8.3.5 for the TXTa and TXTz chunks.   What you are seeing is the US (unit separator).   In practice, the core library code works with or without these separators, but some other applications depend on them.  More or less the purpose of the separators are to give enough information about the layout of the text that simple text viewers do not need to try and interpret the zone information.   For example JavaDjVu just displays the raw text layer when asked for it.  Without the separators it is pretty hard to even read the text.   With the separators, it is still a challenge sometimes.
Билл спросил у меня, выводится ли Unit Separator в OCR-XML выводе? Я ответил ему, что нет.
Цитировать
Good.  I cannot remember does djvutxt have the option to strip out the separators?  If not it would probably be something useful to add.  It would probably also be useful to add that option at the api method your application is calling to read the text layer.

After all, there is no reason why applications that don't need the separators should need to see them in the output.
То есть, Билл готов на компромисс. Он предлагает ввести опцию "Выводить сепараторы". Это хорошая идея, надо будет так обязательно сделать.

И ещё Билл сказал, что DjVuLibre перешла с CVS на Git. Я спросил, чем это лучше.
Цитировать
That is an interesting topic.  In short, for collaborative efforts yes.   Each developer ends up with a clone of the repository and changes can easily be merged between developers repositories.
« Последнее редактирование: 13 јРЩ 2011, 09:00:10 от monday2000 »

DikBSD

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: CuneiForm для DjVu
« Ответ #89 : 17 °ТУгбв 2011, 20:42:20 »
Возможно мой пвопрос не совсем в эту тему.
Не знаете, что нового в cuneiform1.1.0 ветки Linux? Есть ли улучшения работы распознавания, новые опции?...