Автор Тема: Однопроходный DjVu кодер  (Прочитано 5819 раз)

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Однопроходный DjVu кодер
« : 01 ѕЪвпСам 2010, 10:15:33 »
Сделал однопроходный DjVu-кодер. Работает, хотя и медленно. Умеет запускать разные программы для разных страниц. Делает малоцветные DjVu посредством cpaldjvu. Работает со словарями посредством minidjvu. Делит смешанный вывод Scan Tailor на слои и кодирует их в отдельные чанки. Прошу тестировать, особенно разные форматы и разрешения, разные комбинации опций, время обработки, качество и компактность вывода в сравнении с documenttodjvu. Зависимости: bash + getopt + mktemp, ImageMagick, DjVu Libre, minidjvu.
http://github.com/ashipunov/img2djvu
« Последнее редактирование: 01 ѕЪвпСам 2010, 20:16:27 от m7876 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Однопроходный DjVu кодер
« Ответ #1 : 01 ѕЪвпСам 2010, 15:39:36 »
m7876
Отлично, замечательно! :)

А он под Linux, как я понял?

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #2 : 01 ѕЪвпСам 2010, 19:37:50 »
Вообще-то, он должен работать и в виндах. Но нужно поставить bash, getopt и mktemp (а еще, конечно, должны быть ImageMagick, DjVu Libre и minidjvu).

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Однопроходный DjVu кодер
« Ответ #3 : 01 ѕЪвпСам 2010, 21:44:23 »
Кстати, свои соображения по поводу концепции 1-проходного DjVu-кодёра разделённых сканов я изложил тут:

http://www.djvu-scan.ru/forum/index.php?topic=90.0

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #4 : 06 ѕЪвпСам 2010, 12:30:36 »
Новая версия img2djvu -- http://forum.ru-board.com/topic.cgi?forum=5&topic=32945&start=540#19
Делает фсё :)

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #5 : 06 ѕЪвпСам 2010, 12:35:37 »
Перенесено из темы "TiffDjvuOcr" http://www.djvu-scan.ru/forum/index.php?topic=98.0
 
Вот и я туда же -- -- http://forum.ru-board.com/topic.cgi?forum=5&topic=32945&start=540#19
Приятно слышать, что думаю с кем-то в одном направлении.
Tesseract со вчерашнего для работает с русским языком, хотя и хуже, чем cuneiform. Но только ветка cuneiform-multilang умеет распознавать два языка сразу, а без этого биологические книги на русском не распознать.
Jacub Wilks уже сделал вполне рабочую версию ocrodjvu, которая умеет добавлять OCR слой прямо в готовый DjVu файл.
« Последнее редактирование: 07 ѕЪвпСам 2010, 09:11:24 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Однопроходный DjVu кодер
« Ответ #6 : 06 ѕЪвпСам 2010, 14:16:29 »
m7876
А Вы линуксоид?
Цитировать
Вот и я туда же -- -- http://forum.ru-board.com/topic.cgi?forum=5&topic=32945&start=540#19
Почитал. Может, для Linux это и хорошо - не знаю, но под Windows, как мне кажется, это не очень хорошо. То есть нехорошо сделать одну-единственную программу, в которой реализовать ВСЁ. Я это называю "вредный универсализм". Как Вы думаете, это случайность, что существует целый ряд таких программ, как DjVu Small, DjVu Imager, ST Split и пр. - а не сделана единая суперпрограмма, объединяющая все их воедино? 8)
Цитировать
Сыроват, тестировался мало, особенно с OCR.
Вот-вот, и Вы из этой стадии никогда не выйдете окончательно - с этаким-то монстром.
Цитировать
Но только ветка cuneiform-multilang умеет распознавать два языка сразу, а без этого биологические книги на русском не распознать.
Ещё раз повторюсь, что возможность вставки CuneiForm-OCR в DjVu существует в настоящее время только для Linux. Нет никакой возможности вставки CuneiForm-OCR в DjVu под Windows. Я подробно изучал год назад этот вопрос - вот мои изыскания: http://openocr.org/forum/viewtopic.php?f=7&t=3138

Кроме того, программа http://www.cuneiform.ru/downloads/setup_openocr_cuneiform_rus.exe , только лишь в которой и есть пакетный OCR для Windows, почему-то распознаёт хуже, чем старый 12-ый CuneiForm (который вообще никак не приспособишь под OCR, т.к. он вообще не генерирует FED-файлы).
« Последнее редактирование: 06 ѕЪвпСам 2010, 14:18:11 от monday2000 »

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #7 : 06 ѕЪвпСам 2010, 22:08:32 »
m7876
А Вы линуксоид?
Работаю под Windows, разные Linux и Mac OS X. Сейчас быстро перехожу на Ubuntu 10.04 как основную рабочую систему.
Цитировать
Как Вы думаете, это случайность, что существует целый ряд таких программ, как DjVu Small, DjVu Imager, ST Split и пр.
Возможно, и не случайность, но мне больше нравится простое решение: Scan Tailor + img2djvu. К тому же img2djvu -- не суперпрограмма, а просто текстовый скрипт, где опции позволяют отключить всю лишнюю функциональность. При желании можно и внутри что надо поправить -- это же текстовый файл.
Кроме того, комбинация этих утилит позволяет решить некоторые задачи оптимальнее. Например, OCR делается только на текстовую часть смешанной страницы. Обработка (контрастность и пр.) делается только с цветной частью. Не надо делать сначала пары субсканов, потом черно-белый DjVu, потом разбирать его и опять соединять -- все делается на месте, с каждой страницей. И т.п.
Наконец, без опций img2djvu "просто" комбинирует цветное фотокодирование и черно-белое кодирование JB2, а этого, если я правильно помню, вообще ни одна программа не делает. В то время как, на мой взгляд, это единственное спасение от "порчи картинок в DjVu" новичками.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Однопроходный DjVu кодер
« Ответ #8 : 07 ѕЪвпСам 2010, 09:47:07 »
m7876
Цитировать
но мне больше нравится простое решение: Scan Tailor + img2djvu.
ИМХО так называемые "простые" решения ведут в ад. Их привлекательность лишь кажущаяся. Сколько раз я уже об этом говорил - наверное, уже больше десяти. :)

Надо же - насколько эта идея привлекает умы. Столько разных людей тяготеют к ней - bolega, Tulon, и Вы вот теперь. Я считаю такой подход ошибочным. По крайней мере, на текущем уровне развития технологий DjVu-книгосканирования.

Для того, чтобы сделать программу "всё-в-одном", нам всем пока что не хватает доступных технологий. А именно - нужных алгоритмов и программных модулей. Плюс некоторые процедуры настолько разнородны по смыслу - что их как раз целесообразно разделить по разным программам.

Я думаю, что разумным был бы такой подход:

1. Сделать отдельную разрезалку сдвоенных разворотов.

2. Объединить ST и ST Split (пока нереально, единственный путь - кому-то сделать нужный "клон" СТ - и потом поддерживать его актуальным), плюс удалить из СТ функционал разрезания страниц (когда будет отдельная разрезалка).

3. Сделать единый DjVu-кодировщик со встроенным OCR. Такой кодировщик должен включать как просто documenttodjvu (автоматическая сегментация), так и функционал DjVu Imager (ручная сегментация), так и какой-то OCR (конечно, лучше всего ABBYY OCR). Примерно об этом меня давно просит 57an - см. http://www.djvu-scan.ru/forum/index.php?topic=90.0 .

Понятно, что появление на свет такого кодировщика практически нереально. Скажу честно - никакого смысла в использовании minidjvu, CuneiForm и Tesseract я не вижу (ну разве что как резервно-фриварный вариант - когда пиратские версии совсем неприемлемы). Маленький шанс в этом направлении состоит в том, чтобы попытаться уговорить фирму ABBYY внедрить в их FineReader ВЕСЬ недостающий там нужный функционал, описанный здесь. Но это слишком призрачная надежда.

4. Сделать универсальный визуальный DjVu-метаредактор. Включающий в себя функционал таких программ, как Document Express Professional, DjVu Hyperlinks Editor, DjVu Bookmarker, DjVu Pal, DjVu Tinter, и т.п. Это - единственное, что довольно реально реализовать на сегодняшний день.

Вот так - необходимый минимум - это 4 программы (и то, это лишь основные DjVu-программы). Сливать их все в одну - ИМХО вряд ли целесообразно.
« Последнее редактирование: 07 ѕЪвпСам 2010, 09:51:49 от monday2000 »

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #9 : 17 ѕЪвпСам 2010, 08:04:06 »
Тем временем сделал уже версию 1.3 (в основном оптимизация). Теперь пользуюсь img2djvu для создания всех своих DjVu-файлов (начинал с  DjVu Small ;) ).
Кстати, img2djvu заменяет еще и DjVu Pal, потому что если на вход подать трехцветный файл, вызовется csepdjvu.

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #10 : 17 ѕЪвпСам 2010, 08:05:10 »
Да, и: нужна ли опция создания MMR и jpeg-чанков (вместо "нормальных" JB2 и IW44)?

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Однопроходный DjVu кодер
« Ответ #11 : 17 ѕЪвпСам 2010, 14:27:06 »
m7876
Цитировать
Да, и: нужна ли опция создания MMR и jpeg-чанков (вместо "нормальных" JB2 и IW44)?
Думаю, едва ли - я вот никогда даже и не слышал, чтобы кто-то их реально использовал.

MetaSpirit

  • Новичок
  • *
  • Сообщений: 15
    • ICQ клиент - 334848279
    • Просмотр профиля
    • Творческая Мастерская R.A.S.Lab
Re: Однопроходный DjVu кодер
« Ответ #12 : 12 ПЭТРам 2011, 12:46:00 »
Как уже упоминал, лучше было бы разделить скрипт на несколько отдельных:
  • скрипт для кодирования передних субсканов
  • скрипт для кодирования задних субсканов
  • скрипт для собирания DjVu-книги из отдельных файлов (передних и задних DjVu-файлов субсканов)
  • скрипт для добавления OCR в DjVu-книгу
  • скрипт для добавления оглавления и алфавитного (предметного) указателя в DjVu-книгу
  • скрипт для добавления метаинформации в DjVu-книгу
либо дорабатывание конвейера с возможность просмотра результатов на каждом этапе и возможности изменения параметров кодирования отдельных страниц или всего этапа без необходимости перекодирования полностью всей книги.

Опционально: добавление интерактивности в процесс ( можно использовать notify-send) и если скрипт запускается без параметров, то добавить простой диалоговый интерфейс (скриптовый GUI на базе Zenity).

m7876

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Однопроходный DjVu кодер
« Ответ #13 : 12 ПЭТРам 2011, 20:57:51 »
Ответил частично в другой теме.
Цитировать
скрипт для добавления OCR в DjVu-книгу
Такой скрипт есть -- ocrodjvu
Цитировать
# скрипт для добавления оглавления и алфавитного (предметного) указателя в DjVu-книгу
# скрипт для добавления метаинформации в DjVu-книгу
А вот этого нет совсем. Может, возьметесь?

MetaSpirit

  • Новичок
  • *
  • Сообщений: 15
    • ICQ клиент - 334848279
    • Просмотр профиля
    • Творческая Мастерская R.A.S.Lab
Re: Однопроходный DjVu кодер
« Ответ #14 : 22 ПЭТРам 2011, 12:56:54 »
Цитировать
# скрипт для добавления оглавления и алфавитного (предметного) указателя в DjVu-книгу
# скрипт для добавления метаинформации в DjVu-книгу
А вот этого нет совсем. Может, возьметесь?
Если бы был программистом, то уже б сделал.