Главное > Сканобработка

Обработка сканов детской книги

(1/224) > >>

monday2000:
Ко мне обратились по электронной почте с просьбой помочь задежавючить сканы детской книги.

Прислали образцы сканов - вот они (в JPG, чтобы снизить размер):


   
   

Всего 3 скана, все вместе тут: http://ifolder.ru/17301841  (4,14 МБ)

Полновесная версия сканов тут:
http://ifolder.ru/17286002  (65,3 МБ - 3 скана)

Задача ставится так:
Как относительно малоквалифицированному пользователю наиболее просто сделать DjVu-книгу из таких сканов?

Как видно, сканы - цветные. Обработка цветных сканов в общем случае более сложна, чем чёрно-белых или серых.

Однако, данный случай, как видно, вполне укладывается в метод разделённых сканов http://www.djvu-soft.narod.ru/scan/low_color_djvu.htm (потому что, в основном, чёткопрофильные объекты (текст, линии, рамки) не находятся на фоне мягкопрофильных объектов (иллюстраций, цветного фона) - а отделены от них промежутками белого пространства. Единственное исключение - чёрный текст на жёлтых полукругах, но такие объекты можно отправить целиком в фон будущего DjVu, т.к. там текст достаточно крупный, чёткий (не слишком размажется в фоне), и не несущий большой смысловой нагрузки).

Таким образом, сканобработка и дежавючение данных сканов не представляет особых трудностей.

Я на пробу обработал и задежавючил эти образцы. Вот что получилось:

http://ifolder.ru/17303433  (80 КБ)

Теперь о том, как я это сделал.

Использовались следующие программы:

1. ScanTailor-anagnost96 (STA) http://djvu-soft0001.nxt.ru/scantailor_0_9_7_1_anagnost96.rar  (6,3 МБ)
2. ScanKromsator v5.92 Full http://www.djvu-soft.narod.ru/soft/basic.htm
3. DjVu Small v0.4.2 http://www.djvu-soft.narod.ru/soft/basic.htm
4. DjVu Imager v2.5 http://www.djvu-soft.narod.ru/soft/basic.htm
5. WinDjView v1.0 noyb http://www.djvu-soft.narod.ru/soft/basic.htm
6. DjVu Pal v1.1 http://www.djvu-soft.narod.ru/soft/djvu_pal_v1_1.rar  (472 КБ)

Порядок обработки

1. Обрабатываем сканы при помощи ScanTailor-anagnost96 (STA), используя руководство http://www.djvu-soft.narod.ru/st_index.htm .
На стадии "Вывод" выделяем вручную те зоны картинок, которые не смогли правильно авто-определиться http://www.djvu-soft.narod.ru/st_zones.htm .

На стадии "Вывод" ставим Режим - Смешанный - Только текст (в выпадающих списках) и запускаем обработку (выбираем режим Применить к ... - Ко всем страницам и жмём кнопку стадии "Вывод" ).

Должно получиться примерно так:



ВАЖНО: после завершения вывода копируем полученную папку out с обработанными сканами куда-нибудь в другое место на диске и переименовываем её (чисто для удобства), скажем, в "out1".

Теперь На стадии "Вывод" ставим Режим - Смешанный - Только изображения (в выпадающих списках) и запускаем обработку. Должно получиться примерно так:



ВАЖНО: после завершения вывода копируем полученную папку out с обработанными сканами куда-нибудь в другое место на диске и переименовываем её (чисто для удобства), скажем, в "out2".

Закрываем СТА - больше он нам не потребуется.

Вывод: мы получили т.н. субсканы переднего плана (текст) - в папке out1 и субсканы заднего фона (иллюстрации)  - в папке out2 - для нижеследующего метода разделённых сканов.

2. Используем ScanKromsator v5.92 (СК) для размытия растра иллюстраций.

Запускаем СК. Загружаем иллюстрации из папки out2. Жмём кнопку "Сбросить все опции и отмаркировать все файлы"


Выбираем вкладку Quality. Нажимаем на клавиатуре Ctrl и, не отпуская его, ставим галку "Enhance image". На вопрос "Apply option to marked files?" нажимаем "Да". Нажимаем на кнопку "Gray enhance" (на вкладке Quality). Выбираем вкладку "Blur". Ставим Gauss blur = 7 (для таких грубых иллюстраций пойдёт). Удерживая Ctrl, выбираем там же флажок "Enable". Жмём кнопку Process! и ждём, пока все сканы не обработаются. Закрываем программу. Результат будет в подпапке out папки out2. :) Папку out2 можно убрать (в архив или удалить) - а папку out из СК сделать вместо неё папкой out2.

Вывод: размытие растра применяется исключительно ради снижения размера будущего DjVu-файла. В принципе, его можно и не делать вообще - либо делать в какой-либо иной, более вменяемой программе, нежели чем ScanKromsator. (Подойдёт любая такая, где есть пакетное размытие типа гауссового Gauss Blur).

3. Используем DjVu Small v0.4.2 для создания т.н. DjVu-заготовки - т.е. дежавючим сканы из папки out1 - с профилем User B/W (600 dpi). Тут всё просто.

Вывод: Мы должны получить DjVu-книгу, содержащую только чёрно-белый текст, и "пропуски" (белые бельма) на месте иллюстраций.

4. Используем DjVu Imager v2.5 для вставки иллюстраций из папки out2 в DjVu-заготовку, полученную в предыдущем пункте. Как пользоваться DjVu Imager - см. тут http://www.djvu-soft.narod.ru/scan/djvu_imager.htm и, если что непонятно, спрашивайте тут: http://www.djvu-scan.ru/forum/index.php?topic=14.0 . Это тоже не особо сложно.

Кстати, при кодировании иллюстраций в DjVu Imager v2.5 я задал опции ДЗФ=5 и Качество задн. фона = 25. Это важно - без этого размер получаемой DjVu-книги будет неоправданно завышен.

Вывод: DjVu-книга готова в общих чертах. Остались некоторые детали.

5. Используем WinDjView v1.0 noyb и DjVu Pal v1.1 для раскраски цветного текста, который встретился на сканах. На 2-м скане был заголовок малинового цвета "Карусельки". В нашей DjVu-книге эта надпись получилась чёрно-белой - так что теперь её надо раскрасить в малиновый цвет - прямо в DjVu-книге. Это можно сделать при помощи связки WinDjView v1.0 и выше и DjVu Pal v1.1.

Программа DjVu Pal v1.1 имеет встроенную помощь, где достаточно подробно расписано, как ею пользоваться. Пользоваться ею исключительно просто. Правда, есть один сложный момент - выбор цвета текста, которым закрашивать текст. Пока что это нужно делать вручную, "на глазок". Вот скриншоты, показывающие, как я выбирал цвет закрашивания текста в WinDjView v1.0:


   
   

Вывод: Этот этап (раскрашивание цветного текста) можно не делать в крайнем случае. Однако, я не вижу существенных причин - почему бы его не делать. Ведь он исключительно простой.

6. Теперь, если будет желание, можно вставить в готовую DjVu-книгу OCR-слой (http://www.djvu-soft.narod.ru/scan/scan_and_share_1_07.htm пункт 5) , гиперссылочное оглавление (DjVu Hyperlinks Editor v0.781 http://www.djvu-soft.narod.ru/soft/basic.htm ), и дерево-оглавление (http://www.djvu-scan.ru/forum/index.php?topic=18.0 ).

Однако, это легко сможет сделать кто-нибудь другой - скачав Вашу DjVu-книгу из Интернета - когда Вы её туда выложите.

Кстати - не забудьте выложить полностью готовую книгу в Интернет. Удобнее всего закачать её на файлообменник ifolder.ru (там файлы хранятся вечно - даже если их никто не скачивает - только на том файлообменнике, кажется, требуется регистрация для закачки туда файлов), а полученную ссылку выложить куда-нибудь на тематический Интернет-форум.

Надо делиться друг с другом полученной продукцией - тем более, что при закачке исходящий ADSL-трафик не тарифицируется и не оплачивается абонентом.

Мелкие советы:

- При сканировании хорошенько прижимайте книгу к стеклу сканера - но не раздавите стекло.
- Отсканировав всю книгу - проверьте комплектность полученных сканов. Многие этого не делают - и получаются в итоге DjVu-книги с пропущенными страницами (исходной бумажной книги).
- В данном описании наиболее сложными являются пункты 1 и 2 - использование СТА и СК. Как уже говорилось, вместо СК можно использовать многие другие программы - PhotoShop, Corel PHOTO-PAINT, WiseBook 2, G'MIC, даже Irfan View можно попробовать.

Или же (для размытия растра иллюстраций) можно применить коммерческие шумодавы - вместо СК (вообще будет отлично):

1. Imagenomic.Noiseware.Professional
2. Neat Image
3. PictureCode Noise Ninja

Подробнее см. http://natahaus.info/forums/showthread.php?t=6055 .

Вместо СТА можно применить СК - но это хуже, т.к. в СК нет авто-распознавания зон http://www.djvu-soft.narod.ru/st_zones.htm .

Можно упростить работу с СТА (чтобы не нужно было делать папки out1 и out2) - если воспользоваться программой Separator http://tinyurl.com/ycvm85z от 57an - но 57an не сделал к ней инструкции, да ещё там требуется пакет .NET для работы - так что я не могу такой вариант советовать.

P.S. Может, кто из участников форума что-нибудь ещё посоветует - по поводу обработки таких сканов.

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

57an:
Самую большую проблему при обработке данной книги представляет желтое восходящее солнце вокруг номера страницы.

Стадия полезная область:
СТ определяет нижний край полезной области по нижнему краю цифр номера страницы. Поэтому на каждой странице книги придется поправлять его, растягивая до нижней границы страницы.
http://www.onlinedisk.ru/image/407467/workplace.jpg

Стадия вывод:
СТ не определяет желтое солнце как автозону (т.к. оно имеет нерастровую природу).
http://www.onlinedisk.ru/edit_image/407468/
Если еще и обводить солнце автозоной на каждой странице книги - то можно вообще потерять интерес к djvu-строению.

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

Сделать вывод одной страницы в режиме цветной/вывод, оставить на результате только солнце на белом фоне (залить даже номер на нем в цвет солнца).

Затем можно пакетно наложить это солнце на страницы в папке pic (после размытия в СК) - тогда солнце окажется в слое background.
Можно наложить солнце на страницы в папке txt. Тогда, если собрать djvu с помощью FSD получим солнце в слое foreground и немного меньший размер файла.

Для такого наложения, конечно, потребуются некоторые навыки работы со слоями во взрослых растровых редакторах (допускающих пакетную обработку).

Кроме того, попытаться исправить погрешности определения автозон  в СТ - автоматически обвести их прямоугольными пользовательскими зонами - можно с помощью утилиты ST Outliner (но она использует LINQ для работы с XML и посему требует аж .NET 3.5).

monday2000:
57an

--- Цитировать ---Если еще и обводить солнце автозоной на каждой странице книги - то можно вообще потерять интерес к djvu-строению.
--- Конец цитаты ---
Т.е. ручной зоной? Да, не очень-то удобно. Но по-другому пока никак. Кстати, в СК такая же проблема возникала. Решение было найдено такое, чтобы запоминать форму выделения в буфер обмена - и потом вставлять на последующих страницах.

--- Цитировать ---автоматически обвести их прямоугольными пользовательскими зонами
--- Конец цитаты ---
Скорее, тут бы круглыми подошло - если бы они существовали. :)

--- Цитировать ---Скорее всего решение лежит в том, чтобы оставить полезную область такой, какая она определена на автомате СТ, при этом поправить нижнее поле макета страницы, чтобы оно включало оставшуюся часть солнца.
--- Конец цитаты ---
Не уверен. А как насчёт грязи, прилегающей к нижней кромке страницы? Она может помешать. Да и автоопределённая полезная область может где-то сильно лажануть. В принципе, не так уж сложно пройтись вручную по всем сканам, и вручную чуть подправить полезную область.

--- Цитировать ---(залить даже номер на нем в цвет солнца).
--- Конец цитаты ---
Это уж чересчур ИМХО. :)

В общем, думаю, данный пример сканов иллюстрирует те существенные недостатки, которые имеются в Scan Tailor. Попробую перечислить:

1. Отсутствие вывода пар субсканов.
2. Некоторое неудобство работы с пользовательскими зонами (нет прямоугольного и круглого выделения - которые есть в СК, к примеру, и нет копирования/вставки формы пользовательской зоны в/из буфер(а) обмена).
3. Отсутствие хоть какого-либо механизма для выделения слоя переднего плана (цветной текст и т.п.). Вместо этого приходится пользоваться DjVu Pal. Я бы на месте Tulon сделал так: ввёл бы новый тип зон - "объекты переднего плана", и сделал бы для таких зон авто-определение усреднённого цвета текста, а также возможность ручного задавания такого цвета. Это был бы вариант хотя бы для создания FGbz-чанка в DjVu - а ведь можно ещё и вариант для FG44-чанка сделать.

57an:
Сколько страниц в этой книжке - 100, 150?
И на каждой придется двигать полезную область и обводить солнце (причем, т.к. солнце находится с краю скана, то обводка еще более усложняется).
Судя по этим трем сканам нижняя граница по номеру страницы определяется достаточно надежно (и нет причин полагать, что на остальных будет иначе. Даже если было бы копирование зон и круглые зоны, обработка все равно оказалась бы достаточно трудоемкой.

Я предложил максимально автоматизированное решение, требующее минимальных трудозатрат от пользователя, но наличия некоторых навыков, слабо совместимых с понятием "относительно малоквалифицированный пользователь" в условии задачи.

А по первому пункту существенных недостатков СТ - давно бы уже сделали свой сепаратор - он делается из любой Вашей ST-программы заменой пары строк - и он исчезнет..
В конце концов, иногда сканы невозможно корректно разложить на субсканы и приходится полагаться на автосементор..

monday2000:
57an

--- Цитировать ---Сколько страниц в этой книжке - 100, 150?
--- Конец цитаты ---
Понятия не имею.

--- Цитировать ---Судя по этим трем сканам нижняя граница по номеру страницы определяется достаточно надежно
--- Конец цитаты ---
Нет. Там на автомате захватывается крохотная чёрная горизонтальная полоска грязи снизу.

--- Цитировать ---И на каждой придется двигать полезную область и обводить солнце (причем, т.к. солнце находится с краю скана, то обводка еще более усложняется).
--- Конец цитаты ---
Да ничего страшного ИМХО. Я вон когда-то вручную в Фотошопе обрезал по фиксированной рамке каждый скан http://www.djvu-soft.narod.ru/b_cr.htm :) .
Можно обработать в 2 прохода: сначала обрезать сканы, затем снова загрузить уже обрезанные (чтобы гарантированно без грязи), и расставить зоны руками.

--- Цитировать ---А по первому пункту существенных недостатков СТ - давно бы уже сделали свой сепаратор - он делается из любой Вашей ST-программы заменой пары строк - и он исчезнет..
--- Конец цитаты ---
Да сделаю я - я же сказал, что у меня это в планах. Просто я ещё не успел - не могу же я разорваться на части.  :) Но, вообще-то, я считаю, что разумнее встроить "Сепаратор" прямо в СТ - пусть и без размытия растра (а размытие - в отдельной программе). Иначе СТ получается каким-то недоделанным. Впрочем, это тема для отдельного большого разговора по СТ. :)

--- Цитировать ---В конце концов, иногда сканы невозможно корректно разложить на субсканы и приходится полагаться на автосементор..
--- Конец цитаты ---
Конечно. В этом примере я как раз с этим и столкнулся - там на 3 скане такой дымчатый голубенький туман по контуру рисунков не определялся автозонами (например, справа от средней кисти) - так что я руками в ломанный многоугольник эти рисунки выделил.

--- Цитировать ---Я предложил максимально автоматизированное решение, требующее минимальных трудозатрат от пользователя,
--- Конец цитаты ---
К сожалению, пока что ИМХО это труднодостижимый идеал. Всё равно от пользователя требуется какая-никакая квалификация, понимание основ DjVu-книгосканирования, а также изрядная доля ручного труда, да ещё и определённая сообразительность.

Кстати, возникает вопрос: а как бы нам ускорить приход тех времён, когда DjVu-книгосканирование станет действительно простым  делом?

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

Вот, например, Tulon - ни за что не хочет сделать в СТ вывод пар субсканов (а ему это раз плюнуть). Вы - никак не хотите отказаться от .NET. И даже такую малость, как написание доки по Сепаратору - тоже почему-то упорно не делаете. Будь Ваш Сепаратор .NET-независимым, с докой, и толковым - может быть, я свой и не стал бы делать (мне его вообще скучно будет делать).

Вторая проблема - все хотят, ни разу в жизни не сканировав книги в DjVu, взять, что-то отсканировать - и тут же получить качественную DjVu-книгу. Я вот думаю - это невозможно. Всё равно, если человек никогда ничего в жизни не сканировал, то ему сначала необходимо получить некий минимальный базовый объём знаний из области DjVu-книгосканирования - и только после этого браться что-то сканировать-дежавючить.

То есть, нужно что-то вроде курсов по DjVu-книгосканированию. Как автошкола - для желающих научиться водить машину. Нельзя же садиться за руль, не умея водить машину, и не зная правил дорожного движения.

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

Но всем "хочется быстрей" - а это невозможно (если человек далёк). Отсюда и получается низкое качество самодельных DjVu-книг.

Инструкция типа ScanAndShare http://www.djvu-soft.narod.ru/scan/scan_and_share_1_07.htm слишком кратка для подобных целей. Нужно написать целый учебник - причём доступным, понятным, и хорошим языком, с красноречивыми примерами (возможно, с видео). Пусть даже такой дистанционный курс будет "весить" сотни мегабайт - ничего страшного (Интернет теперь для многих не проблема).

Но хороший доходчивый учебник написать трудно - это большое напряжение ума, и риск "налить туда воды". Большинство существующих учебников (по какой бы то ни было теме) как раз плохи - поскольку их пишут не с целью "научить", а с любыми иными целями.

P.S.
Я думаю, что в будущем возможно появление новых алгоритмов авто-распознавания зон с иллюстрациями - раз уж имеющийся не всегда справляется. Это, впрочем, не слишком срочно - так что Tulon может с этим пока не заморачиваться (пока авто-зоны и руками подправим, если что).

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии