Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8   вперед  Ctrl      все
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Обидно что браузеры не поддержали JBIG как медиаформат картинок.
23 янв 19, 14:50    [21792232]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7606
Leonid Kudryavtsev
внутри PDF (картинка плюс заголовок PDF) - 14 725 байт
PDF генерил http://www.stdutility.com/stduconverter.html

удалил все заголовки до stream и после endstream
в общем, собственно картинка не больше 13 048 байт и около 1 680 байт собственно заголовки/окончания PDF

по сравнению c 16.9KB Kb CCI&T
13 / 17 * 100 = 76 %
экономия одной 1/4 размера конечно значима, но возможные потери качества и мучения на мой взгляд не оправдываются ))) особенно при современных размерах HDD/SSD
23 янв 19, 14:59    [21792262]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Дело принципа. Но если мы нарисуем график типа по оси X - время или мегафлопы.
А по оси Y - сжатие то на этой кривой мы очень-очень быстро обнаружим точку
которая нам будет интересна.

И если там будет время в 1000 раз дольше а сжатие +0.1% то нафик нафик.
23 янв 19, 15:02    [21792266]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Обновил

FormatAlgorithmSize (pixels) Colors Size bytes
PNG ? 1728 x 2339 256 (Gray) 41.4KB
TIFF CCITT(Group4) 1728 x 2339 2 16.9KB
BMP No compress 1728 x 2339 2 505KB
BMP.zip Zip(-9) 1728 x 2339 2 26 Kb
GIF LZW? 1728 x 2339 2 38.9KB
JBIG2 ? 1728 x 2339 2 12.7Kb
23 янв 19, 15:33    [21792322]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
mayton
По поводу корреляций
Для черно-белых точек эта формула должа выродится в банальный подсчет равенства пикселов
источника и получателя.
По правде гря, не понял, скажу, что сам подразумевал.
В самом общем случае подсчёт не проходит, формула корреляции работает согласно формуле.
Кратко это объясняют: степень линейной предсказуемости одного вектора по другому.
Важность имеют именно согласованная последовательность взлётов и падений.
Можо заметить, что коррел-я похожа на формулу скалярного произв-я и на ф. косинуса угла. Формулы коррелируют. А что такое скалярное проходили примерно в 6-8 классе: степень параллельности. Если Вы предсказываете падения долара каждую 2-ю неделю и рост каждую другую неделю, а он прыгает ровно наоборот, то угол 90 град.)) косинус=0.

Вот если считать corr( V, 1), тогда чем больше 1 в V, и чем длиннее их серии, тем она больше.

А насчёт вертикалей я имел ввиду именно правильную вертикаль, ищущуюся НЕ Хафом.
23 янв 19, 22:21    [21792694]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
mayton
По Радону я нифина не понял пока.
В нашей Мат. энциклопедии т.4(в той, у к-рой т.5 за 1985г.) есть Радона преобр-ние. Из него понятно, что Хаф хафнул себе немножко Радона и этим ограничился. Тем не менее предварительно почитав Хафа на примере рентгено-томографии, на примере сечения лучём некоторого множества, проще понять, что собственно означает формула Радона. Не только 1-мерную прямую, но и 2d плоскость,3d ... Nd. Для кривых (дуги на книжном развороте) ребуется задать кривые в параметрическом виде. А для прямых сойдёт и Хаф.
24 янв 19, 19:29    [21793766]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
О базисной системе Хаара.

Здесь результаты для 64-выборки (в предыдущем варианте 32 пропала 2-я гармоника,но она и не используется), и кажется, где-то у меня систематическая погрешность. Готовые реализации не искал, определение взял из нашей Мат. энциклопедии, т.5 с.474, 1985, "Хаара система", а дальше немного линейной алгебры в векторном постранстве. Если бы надо было восстановить фактическую интенсивность цвета, то я бы свои вычисленные Ak поделил на корень из 2.
Но в задаче амплитуды известны: 1/0. По этой же причине коэф-т A0 запоминать не нужно, он имеет смысл матожидания в восстановленной последов-сти. На рисунке это наглядно: 2 цветовых кластера, они всегда не пересекаются.

коэф-ты разложения округлены до 1 знака, Round( ak, 1)
В этом случае их становится только 6 различных вместо 12 либо 13.

Для оптимистичных ухищрений можно следовать за жипегом:
перевод амплитуд из флоат в целые с понижением битности
квантование амплитуд
Хафман или др.
входной вектор не строка рисунка, а квадрат размером 1-2 текстовые строки, размер к-рых определяем предварительно. Далее можно пытаться сегментировать текст, чтобы выделять 1-4 символа прямоуг-ком ...

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

Степень сжатия не то чтобы регулируется ( Round( ak, 1/2/3), квантование ak), скорее нужна наибольшая. Квантование "частот" пока неясно, вряд ли полезно, приведёт к размытию/сжатию букв.

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

На этом по базису Хаара у меня всё, дальше нужно смотреть уже на реальной картинке. Нужна ли экселка для опытов? там только формулы, без макросов. Удлинить выборку достаточно легко ...

частотная таблица коэф-тов разложения
Ak	Count(Ak)
0	33
0,1	12
-0,1	12
0,2	3
-0,2	3
0,7	1
отсчёты вход выход к-ты
+
t=	F(t)=	FF(t)	Round( ak, 1)
0	0	0,417	0,7
1	1	1,549	0
2	1	1,549	0
3	0	0,417	0
4	0	0,017	0
5	0	0,017	0
6	1	1,383	0
7	0	0,251	0
8	0	0,134	0,1
9	1	1,266	0
10	1	1,266	0,1
11	0	0,134	0
12	0	0,134	0
13	1	1,266	-0,1
14	1	1,266	0
15	0	0,134	-0,1
16	0	0,183	0
17	0	0,183	-0,1
18	1	1,783	0
19	1	1,783	0
20	0	0,017	-0,2
21	0	0,017	-0,1
22	0	0,251	-0,2
23	1	1,383	-0,2
24	0	-0,1	0,2
25	0	-0,1	0,2
26	1	1,5	0,1
27	1	1,5	0,2
28	0	-0,1	0
29	0	-0,1	0
30	1	1,5	0,1
31	1	1,5	0
32	1	1,5	-0,1
33	1	1,5	0,1
34	0	-0,1	0
35	0	-0,1	0,1
36	1	1,5	-0,1
37	1	1,5	0,1
38	0	-0,1	-0,1
39	0	-0,1	0,1
40	1	1,383	0
41	0	0,251	0
42	0	0,017	0
43	0	0,017	-0,1
44	1	1,783	0
45	1	1,783	0
46	0	0,183	0
47	0	0,183	0
48	0	0,134	0
49	1	1,266	0
50	1	1,266	0
51	0	0,134	0
52	0	0,134	0,1
53	1	1,266	0
54	1	1,266	0
55	0	0,134	0
56	0	0,251	-0,1
57	1	1,383	0,1
58	0	0,017	-0,1
59	0	0,017	0,1
60	0	0,417	-0,1
61	1	1,549	0
62	1	1,549	-0,1
63	0	0,417	0,1
----------------------------

К сообщению приложен файл. Размер - 12Kb
24 янв 19, 19:39    [21793767]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Добавил в скриптик поддержку JBIG2. К сожалению я не знаю в каком расширении должен
формироваться файл. Возможно это подмножество tiff но шапка файла не соответствует. У тифф - другая сигнатура.

Линуксовая утилита file не смогла инентифицировать содержимое.
convert -threshold 50 -colors 2 -compress jbig2 ccitt01.png ccitt01.jbig
hexdump -C -n 32 ccitt01.jbig
00000000  00 01 01 00 00 00 06 c0  00 00 09 23 00 00 00 21  |...........#...!|
00000010  08 00 03 1c 1a ae 1e 3d  c9 51 01 8f 7d 4f 2f 59  |.......=.Q..}O/Y|
00000020
file ccitt01.jbig
ccitt01.jbig: data
identify ccitt01.jbig
ccitt01.jbig JBIG 1728x2339 1728x2339+0+0 8-bit sRGB 2c 13.9KB 0.040u 0:00.040
26 янв 19, 19:00    [21794895]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Интересно почему identify пишет что цвет - восьмибитный. Может это просто некое обобщение? Я везде заказывал
конверсию в 2 цвета.
26 янв 19, 19:01    [21794896]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
exp98
О базисной системе Хаара.

Здесь результаты для 64-выборки (в предыдущем варианте 32 пропала 2-я гармоника,но она и не используется), и кажется, где-то у меня систематическая погрешность. Готовые реализации не искал, определение взял из нашей Мат. энциклопедии, т.5 с.474, 1985, "Хаара система", а дальше немного линейной алгебры в векторном постранстве. Если бы надо было восстановить фактическую интенсивность цвета, то я бы свои вычисленные Ak поделил на корень из 2.
Но в задаче амплитуды известны: 1/0. По этой же причине коэф-т A0 запоминать не нужно, он имеет смысл матожидания в восстановленной последов-сти. На рисунке это наглядно: 2 цветовых кластера, они всегда не пересекаются.

Дружище exp. Напомни плиз откуда ты брал первые два столбика в Excel-файле?

Про Хаар нечитал. Возможно это аналог фурье где вместо синуса - меандр?
26 янв 19, 19:04    [21794897]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
По поводу моего метода. В голове - уже целый Mind-map направлений куда можно двигаться.
Пока я думаю о том как Фурье или Хаар помогут детектирвать параграф и границы строк и букв.

В данном конкретном случае я пошёл на хитрость. Специально нашел моноширный шрифт но такое
счастье будет не всегда. Большинство современных шрифтов вообще не моноширные.

Далее по результату разбиения параграфа на некоторые строительные блоки (sprites, frames, JPEG-MCU)
я хотел к каждому из них применить еще одно разбиение и анализ.

Вот как на картинке. При этом само по себе разбиение на красных линиях может быть пиксельно не-точным.
Грубо говоря нет гарантии что высота блока будет одинаковой. Вот такие вот условия. Блоки - это просто
хинт. Или подсказка алгоритму а не четкое направление.

К сообщению приложен файл. Размер - 14Kb
26 янв 19, 19:30    [21794912]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Хм... 16 на 31 пиксел. Плюс-минус 1. Если просто собрать эти блоки в некий поток. И подать на вход
классификатору. Нечеткому классификатороу. То на выходе мы получим примерно количество
классов похожее на количество букв в тексте. Как классифицировать? Хм... надо подумать.
26 янв 19, 23:10    [21795013]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Чето в голове крутится все время "Сеть Хопфилда". Из остаточных знаний универа.
Она обучается "без учителя". И способна классифицировать образы автоматом без
подсказок. Это как-раз мой кейс. Закинуть бы в нее как в мясорубку все блоки
и получить на выходе классы символов.
27 янв 19, 16:43    [21795240]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
mayton
Чето в голове крутится все время "Сеть Хопфилда".
Да я от тоже конкретики уже не помню, а с кучей современных алгоритмов уже не знаком.Но помнится, что память однослойного хопфилда была ограничена ~0,14*N - размерность матрицы.

Вопрос откуда всзял 2 столба, я не понял.
Если речь о табличках с результатами, то обе для 32-бит идля 64 таблички однотипны.
Входная битовая строка, к-рая якобы сжимается F() - иитирует 32 пиксела в горизонтальном растре- да откуда угодно, хоть спиралью по квадратику можно взять.

t= отсчёты на отрезке [0;1]	F(t)=сжимаемая строка	FF(t) - восстановленная строка
Round( ak, 1) = округление вычисленных к-тоф Хаара.

Статистика уникальных к-тов (к-рые вычислены)
Ak - уникальный к-т	Count(Ak) - кол-во
27 янв 19, 23:02    [21795394]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
exp98
mayton
Чето в голове крутится все время "Сеть Хопфилда".
Да я от тоже конкретики уже не помню, а с кучей современных алгоритмов уже не знаком.Но помнится, что память однослойного хопфилда была ограничена ~0,14*N - размерность матрицы.

Грубо говоря

16 * 31 = 496

496 * 0.14 = 69 классов символов

Не так уж плохо.
27 янв 19, 23:07    [21795395]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
А что с таким факсом делать? А ведь это ещё хорошее качество скана.

К сообщению приложен файл. Размер - 31Kb
28 янв 19, 01:24    [21795421]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
(пожимая плечами)

Тогда мне капец.

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

Я-же все таки расчитываю применить Хафа вначале чтобы гарантировать что линии распознавания стоят под
правильным углом а дальше ... долбануть распознавание?

Ну вобщем я фактически предлагаю попробовать применить некий анализ букв. Повторов? Фракталов?..

А если не взлетело - ну вернуться обратно в JBIG2 который весьма неплох.
28 янв 19, 01:41    [21795423]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
Да это в редакторе сделал.
Но "чтобы гарантировать что линии распознавания стоят под правильным углом", нужно, чтобы они действительно так располагались. Радон (а след-но и Хаф) не знают вид кривой заранее. Им это мы говорим через параметры, на которые собирать статистику.

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

Можно ещё как извратиться. Сгладить сам текст хоть гауссом, до полной черноты, получим чёрные ручейки. Методами аналогичными векторизации векторизовать ручейки и рассматривать их как линейный график, для выделения тренда. Наложить тренды на текст. Будем знать траекторию движения вдоль текста, и легче сегментировать буквы.
28 янв 19, 02:50    [21795430]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Когда под сканер кидают толстую книгу в мягком переплете она иногда причудливо изгибается.
И некоторые буквы с форзаца действительно "плывут". Где то на хабре была статья как умные
фильтры корректируют такую дисторсию. Но я-бы пока остановился на картинках где отсканирована
книжка эпохи 90х (у меня таких много) и отсканирована в принципе прилично. С сохранением
перпендикулярных направлений страниц.

Кстати я думал над небольшими линейными искажениями порядка 2-5 градусов разворота вправо
или влево. На качество распознавания букв они не повлияют. Главное чтобы образец (блок)
скользил правильно вдоль направляющей под 2-5 градусов по алгоритму Брезенхема к примеру.
Тоесть грубо говоря мы в букву точно не попадаем. Но нам и не надо. Главное чтобы всё множество
букв никуда не уплывало из блока где они распознаются Хопфилдом или еще чем-то более простым.
28 янв 19, 22:42    [21796350]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
И распознавание буквы должно быть толерантно к сдвигу. Плюс-минус 1-2 пиксела вверх-вниз не должно
оказывать сущесвтенного влияния на результат.
28 янв 19, 22:44    [21796351]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
Вот это -15град.
Но ещё обратная сторона страницы часто просвечивает (а иногда продавлена буквами с изнанки).

К сообщению приложен файл. Размер - 22Kb
29 янв 19, 12:36    [21796709]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Просвечивающиеся буквы для bi-tonal будут видны как рандомный шум. Поэтому никакого
фильтра компенсации мы применить не сможем.

Если-бы это было Grayscale то да...
29 янв 19, 12:39    [21796714]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
Думаю о реализации детектора наклона. Взял пока преобразование Хафа. И на первом-же
тесте - вопрос. Если дана картинка. Допустим для простоты квадратного размера. И в центре
ее стоит 1 пиксел. Как будет выглядеть поверхность Хафа? Если это - суперпозиция синусоид
с разной фазой и разным смещением от центра - то данная точка не должна вызывать никакого
отклика на поверхности. По сути точка - имеет одинаковый вклад во все прямые которые прошли
сквозь нее по всем направлениям.

И какую гранулярность угла выбрать? 1 градус? 1 сотая Pi радианов? Или привязаться к арксинусу
или арк такнгенсу относительно абсолютных координат сечения прямой границ рисунка? Последнее
для меня привлекательно ведь я искал пиксельной точности.
30 янв 19, 14:20    [21797792]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 1624
какую гранулярность угла выбрать?
Например половину оценочной высоты шрифта. Это м.б. меньше градуса
30 янв 19, 20:35    [21798266]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 40510
А что с тесткейсом в 1 пиксел? Я в ступоре.
31 янв 19, 12:23    [21798633]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6 7 8   вперед  Ctrl      все
Все форумы / Программирование Ответить