Автор Тема: Dewarping от Рамиза Зейналова  (Прочитано 27645 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #15 : 08 БХЭвпСам 2010, 10:41:00 »
Я сделал полную версию исходников Dewarping от Рамиза Зейналова.

По сравнению с теми исходниками, что Рамиз мне дал, я сделал там следующие изменения:

1. Переключил сборку с Debug Mixed Platforms на Release Win32.
2. Настроил все привязки стандартных Win32 lib-библиотек (чтобы не было ошибок и предупреждений при компиляции, описанных ранее).
3. Создал папку "lib" и поместил туда файлы tinyxml.lib, cxcore.lib, cv.lib, highgui.lib (чтобы не нужно было их снова где-то на стороне компилировать).
3. Создал папку "bin" и поместил туда файлы cv110.dll, cxcore110.dll, highgui110.dll (нужные для работы собранного geom_corr.exe), а также поместил туда папку metadata с XML-файлами, управляющими работой geom_corr.exe.
4. Добавил инструкцию и лицензию "GPL 2 and later".

Скачать:

http://www.djvu-soft.narod.ru/soft/ramiz_zeynalov_dewarping_src_full.7z  (3,22 МБ)

(сжато в 7-Zip, хотя я обычно пользуюсь WinRar, но WinRar сжал этот файл в 5,25 МБ - а на Народе ограничение размера файла 5 МБ)

Теперь каждый желающий скомпилировать Dewarping самостоятельно избавлен от тех хлопот и проблем, с которыми столкнулся я (при компиляции).

Если хотите сами скомпилировать Dewarping, возьмите эту полную версию исходников, скачайте и установите Microsoft Visual C++ 2005 Express Edition - ENU.7z и Microsoft Platform SDK for Windows Server 2003 R2 (include lib).7z (см. предыдущие посты). Затем просто откройте в папке makefiles проект geom_corr.sln и запустите Build. Кстати - у меня с первого раза не скомпилировалось, пришлось 2 раз запускать. Это потому, что какие-то свои lib-библиотеки там с первого раза не создаются - а только со 2-го прохода компиляции.

И, если при запуске полученного geom_corr.exe будет вылетать ошибка "Сбой инициализации приложения (0xc0150002). Нажмите кнопку ОК для завершения приложения.", установите Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en .

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #16 : 08 БХЭвпСам 2010, 14:13:37 »
Теперь остаётся главный вопрос: как всем этим пользоваться? :) На пробу пока ничего не получилось обработать - результирующий файл получается чисто белый. :-\

Написал письмо Рамизу, жду ответа.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #17 : 08 БХЭвпСам 2010, 16:56:07 »
Сенсация: свой Dewarping появился на Лептонике! :o :-*

http://www.leptonica.com/dewarping.html

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #18 : 17 БХЭвпСам 2010, 12:17:25 »
Рамиз Зейналов наконец-то откликнулся - на своём математическом форуме:

http://forum.graphicon.ru/viewtopic.php?p=20369#p20369

Рамиз там выложил пример картинки, обработанной Dewarping:



Теперь надеюсь получить от него объяснения, КАК именно он это сделал.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #19 : 23 БХЭвпСам 2010, 14:09:02 »
К сожалению, пока так ничего у меня и не получилось. Рамиз опять замолчал, а программа как не работала ни в какую - так и не работает до сих пор.

Прямо какое-то злое колдовство.  >:( Думаю, я скорее всего, как-то не так скомпилировал. Да и немудрено - компилятор MS VC++ Express Edition 2005 - это просто верх идиотизма. Microsoft совсем скурвился.

Да и в библиотеке OpenCV какой-то бардак - от версии к версии меняются фунции - поди разберись, как и что правильно скомпилировать.

И раздражает эта манера Рамиза то и дело не отвечать на письма.

Короче, полный бордель наблюдается.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #20 : 30 БХЭвпСам 2010, 20:35:41 »
Пользователь woodyfon с форума Руборд передал мне свой экземпляр экзешников Dewarping, который он когда-то получил от Рамиза Зейналова. С условием нераспространения - поскольку на таком условии сам Рамиз дал woodyfon этот пакет.

woodyfon попросил у Рамиза на днях разрешение на снятие ограничения по нераспространению данного пакета - но Рамиз ему не ответил.

Благодаря этому, мне удалось значительно продвинуться в проблеме понимания работы Dewarping от Рамиза Зейналова.

Во-первых, я на присланном пакете Dewarping сразу сумел запустить пробный Dewarping - и он наконец-то сработал как нужно - и я увидел результат своими глазами. :-*

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

Выяснилось довольно немало.

1. Рамиз указал мне неправильный синтаксис запуска Dewarping. Оказалось, что запускать его нужно так:
Цитировать
geom_corr.exe img_1175_bin.png img_1175_bin_out.jpg
И всё - и никаких больше там наворотов малопонятных в командной строке.

2. При этом файл geom_corr.exe нуждается в 4-х XML-файлах, задающих параметры его работы (как бы "расширенная командная строка"). Эти XML-файлы должны лежать в той же папке, где находится geom_corr.exe, и они должны иметь такие имена:

datatypes.xml, graph.xml, variables.xml, varnames.xml.

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

4. Рамиз слишком неточно указал мне, с какой версией библиотеки OpenCV следует компилировать исходники его dewarping. Я компилировал с OpenCV версии 1.1pre - а надо было, наверное, с OpenCV версии 1.0. Я это заключил из того факта, что в пакете dewarping от woodyfon лежат в частности такие dll-файлы:

cv100.dll, cxcore100.dll, highgui100.dll (что указывает на версию OpenCV 1.0).

А у меня вместо этого получились такие файлы:

cv110.dll, cxcore110.dll, highgui110.dll (потому что я использовал версию OpenCV 1.1).

В общем, мне удалось запустить свой экзешник Dewarping - но только когда я подсунул ему XML и DLL-файлы из пакета от woodyfon. И он правильно сработал - даже перекомпилировать не потребовалось! :o Получилась картинка с "выпрямленнными" строками.

Я подсунул своему geom_corr.exe такие DLL из пакета от woodyfon:

gclib.dll, std_factory.dll, test_factory.dll, и ещё стандартные cv100.dll, cxcore100.dll, highgui100.dll (их можно найти на сайте OpenCV). Плюс почему-то ещё потребовалась какая-то libguide40.dll - "Guide Runtime Library" (из пакета от woodyfon). Судя по тому, что её производитель тоже Intel, эта dll из OpenCV.

В пакете от woodyfon также ещё я взял оригинальную картинку с изогнутыми строками. Раньше я брал свою. Казалось бы, мелочь - а вот и нет. Ведь Рамиз-то мне не сказал сразу, какая должна быть битовая разрядность и формат файла картинки. Ведь даже из-за несоблюдения таких "мелочей" программа может не сработать. Так вот - формат картинки - PNG, а битовая разрядность - почему-то 32 бита (хотя картинка - чёрно-белая на вид, да и вообще - 32 бита - это редкая разрядность, это цветная картинка с прозрачностью, обычно цветной картинке нужно лишь 24 бита - т.к. прозрачность для dewaping не нужна).

В общем, я хочу выразить огромную благодарность woodyfon с форума Руборд. woodyfon оказал мне просто неоценимую помощь - даже не знаю, чтобы я без неё делал. :( В условиях, когда из Рамиза нужно тянуть клещами крупицы разрозненной информации (а он отвечает со 2-3 письма) - которая к тому же ещё и не полностью достоверна - помощь от woodyfon оказалась просто бесценной.

Спасибо, дорогой woodyfon! :)

В пакете, присланном woodyfon, также ещё содержится GUI для консольного geom_corr.exe, и вордовский файл - описание дипломной работы. Ни то, ни другое я пока не смотрел - GUI у меня пока не запустился (наверное, хочет Redistributable, который я уже снёс, а Word у меня не стоит на компе, надо будет поставить и глянуть на диплом).

Наверное, dewarping был димпломной работой Рамиза Зейналова.

Кстати, я же, как известно, уже добился от Рамиза разрешения на использование его dewarping по лицензии GPL 2 and later. Так вот - мне этого удалось добиться, как я думаю, через другого человека - Александра Велижева - админа форума мехмата МГУ, где присутствует и Рамиз: http://forum.graphicon.ru/viewtopic.php?f=8&t=4709 . Велижев - это некий соавтор dewarping (интересно - это преподаватель или одногрупник Рамиза). Сам Рамиз довольно туго вёл со мной переговоры насчёт лицензии.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #21 : 30 БХЭвпСам 2010, 20:40:07 »
Теперь я продолжу изыскания в "своём" экземпляре dewarping. Естественно, моя задача - это добиться от скомпилированного мною экзешника dewarping в точности такого же поведения, как этот же экзешник ведёт себя в пакете от woodyfon.

Я попросил woodyfon ещё раз попытаться добиться от Рамиза разрешения выложить в свободный доступ его пакет dewarping. Всё-таки, тем есть GUI и диплом - а также куча готовых картинок-примеров с искривленными строками.

Тем более, что теперь, когда у меня есть разрешение на лицензию GPL, смысл не-обнародования пакета от woodyfon уже теряется. Скрывать этот пакет от широкой публики имело смысл лишь тогда, когда разрешение на лицензию GPL ещё не было (мною) получено (а у woodyfon его копия dewarping уже была тогда).
« Последнее редактирование: 30 БХЭвпСам 2010, 20:56:06 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #22 : 08 ѕЪвпСам 2010, 09:55:35 »
Мне удалось добиться от Рамиза разрешения на публикацию пакета от woodyfon. Сегодня Рамиз прислал мне такое письмо:
Цитировать
Здравствуйте!
 
Я разрешаю вам распространять исходные тексты.
В свою очередь у меня просьба вставить в начало каждого исходного текста
ссылку на автора:
 
/******************************************************************
*
*       Author: Ramiz Zeynalov, Graphics & Media Lab
*       EMail: ramiz.zeynalov@gmail.com
*       WWW: http://graphics.cs.msu.ru/
*
*******************************************************************/
 
С Уважением,
 
Зейналов Р. Ш.
Этот пакет вообще довольно большой - 43 МБ. Поэтому я буду выкладывать его по кускам.

1. Собственно готовая программа по Dewarping, сделанная изначально самим Рамизом:

http://www.djvu-soft.narod.ru/soft/dewarping_rz.rar (1,65 МБ)

Вот это и есть та самая программа, которую каждый теперь может свободно скачать и попробовать сделать Dewarping над любым произвольным сканом (посредством этой программы). Я добавил в эту программу указание на авторство Рамиза и текст лицензии GPL 2 and later. В этом пакете имеется консольная утилита geom_corr.exe. Именно она и делает Dewarping. Там же есть файл run.bat и один файл-пример изображения с искривленными строками. Просто запустите run.bat и подождите. Через некоторое время сгенерируется файл img_1175_bin_out.jpg - результат работы Dewarping (с выпрямленными строками).

Вот содержимое файла run.bat:
Цитировать
start geom_corr.exe img_1175_bin.png img_1175_bin_out.jpg
Не совсем ясно, зачем вначале стоит "start". Без "start" тоже всё работает:
Цитировать
geom_corr.exe img_1175_bin.png img_1175_bin_out.jpg

Там же находятся 4 XML-файла, задающих параметры работы geom_corr.exe:

datatypes.xml, graph.xml, variables.xml, varnames.xml.

Кроме того, в пакете имеется и GUI для (предположительно) geom_corr.exe. Его можно открыть запуском файла gc_gui.exe. Называется "GML TextStraightener". Думаю, что этот GUI, наверное, может менять содержимое XML-файлов (кроме, собственно, запуска geom_corr.exe). Обладание таким GUI весьма ценно - т.к. понятно, что через GUI можно менять содержимое XML-файлов правильным образом. Это гораздо лучше, чем если просто править XML-файлы руками, надеясь не сделать при этом ошибку.

GUI я ещё не тестировал.

В общем - качайте программу, пробуйте, экспериментируйте. Под Windows XP она должна работать, по идее.

С сегодняшнего дня у нас у всех появилась новая реально работающая Dewarping-программа (отечественного производства, в открытыми исходниками под лицензией GPL 2 and later - лучшего трудно и пожелать). 8)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #23 : 08 ѕЪвпСам 2010, 10:54:47 »
2. Дипломная работа Рамиза Зейналова по Dewarping. Формат DOC.

8.57 Мб

http://djvu-soft0001.nxt.ru/dewarping_rz_diplom.rar
Зеркало: http://ifolder.ru/19664957

То же самое в формате Pdf:

http://www.djvu-soft.narod.ru/scan/dewarping_rz_diplom_pdf.rar  (4,20 МБ)

То же самое в формате DjVu:

http://www.djvu-soft.narod.ru/scan/dewarping_rz_diplom_djvu.rar  (749 КБ) (чуть похуже качеством, чем Pdf-версия)
« Последнее редактирование: 08 ѕЪвпСам 2010, 11:04:25 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #24 : 08 ѕЪвпСам 2010, 12:40:16 »
3. Тестовая база изображений для Dewarping. Т.е. изображения с искривленными строками.

29.36 МБ

http://djvu-soft0001.nxt.ru/dewarping_rz_testbase.rar

Зеркало:
http://ifolder.ru/19666193

P.S. Это последняя часть из пакета Dewarping от woodyfon.

don555

  • Пользователь
  • **
  • Сообщений: 71
    • Просмотр профиля
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #25 : 09 ѕЪвпСам 2010, 16:39:04 »
Win XP.
Попробовал поиграться прогой. Знаний не хватает.
Взял свой tiff файл сохранил его в png. Бросил внутрь папки. Назвал таким же именем, как и оригинальный.
Стартанул. Получается белый лист.
Видимо разный размер листа. Где и как корректировать?
Брал файлы с разрешением tif. Отредактировал в блокноте файл “run”. Менял окончание файла с png на tif, на jpg. Включается прога и закрывается.

Пока не идёт.
Вообще мне нужны файлы в tif, а не png и jpg.

don555

  • Пользователь
  • **
  • Сообщений: 71
    • Просмотр профиля
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #26 : 09 ѕЪвпСам 2010, 19:38:19 »
Дал программе покушать файлы, вышедшие из SK. Tif не принимает.
Переделал в png.
Прошло. Каждый раз результат разный. То вверху нормально выравнивает, а внизу увеличивает шрифт и размывает, то наоборот. Иногда режет страницу с правой стороны, иногда пустой лист.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #27 : 09 ѕЪвпСам 2010, 19:49:42 »
don555
Цитировать
Попробовал поиграться прогой. Знаний не хватает.
К сожалению, у меня у самого пока что точно такая же ситуация.  :D
Программа ведь не моя - так что я пока понятия не имею, как с ней совладать. :)
Ну ничего - это дело будущего, думаю, постепенно всё будет проясняться.
Цитировать
Где и как корректировать?
Попробуйте через GUI. А можно напрямую попытаться как-то подкорректировать 4 XML-файла - именно они задают параметры для geom_corr.exe. Как именно их корректировать - я пока понятия не имею.
Цитировать
Пока не идёт.
Ничем не могу помочь. По крайней мере, прямо сейчас. Может, найдётся какой-нибудь программист, который захочет поучаствовать в изучении кода этой программы. Если не найдётся - я сам этим буду заниматься - но это займёт месяцы.

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #28 : 09 ѕЪвпСам 2010, 19:53:59 »
don555
Цитировать
Каждый раз результат разный.
Да, Рамиз предупреждал, что там уйма параметров, и их порой непросто настроить. Собственно, это же программа без гарантий (в отличие от коммерческих аналогов вроде Book Restorer), наверняка её ещё потребуется даже улучшать как-то чисто алгоритмически.

Но нужно радоваться и этому - человек дал нам бесплатно свою программу (так нам нужную), да ещё и разрешил некоммерчески пользоваться. А никто ведь больше не давал - а только обещали (например, Thomas Breuel из Ocropus).
« Последнее редактирование: 09 ѕЪвпСам 2010, 20:03:08 от monday2000 »

don555

  • Пользователь
  • **
  • Сообщений: 71
    • Просмотр профиля
    • E-mail
Re: Dewarping от Рамиза Зейналова
« Ответ #29 : 10 ѕЪвпСам 2010, 01:24:49 »

Но нужно радоваться и этому - человек дал нам бесплатно свою программу (так нам нужную), да ещё и разрешил некоммерчески пользоваться. А никто ведь больше не давал - а только обещали (например, Thomas Breuel из Ocropus).

Полностью согласен. К тому же без ваших стараний, усилий, вашего креатива, не было бы, даже того, что имеем. Я вообще думаю, что если бы программка правильно заработала, то это была бы бомба.
Это лучше, чем графические обработки  - цветность, освещённость, тени – шмени.
IMHO - это то, что нужно для сканирования толстых книг.