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

Откуда: loopback
Сообщений: 48022
Привет друзья.

Дима-Т, Сова, Илья, Иван-ФХC, ПТР-128, Эхп98, Барлон, Зяма и прочие простите кого забыл.

В продолжение топиков:

Я задаю тему.

Эксперименты с ГПСЧ, Системами счисления, кодеками и архиваторами. Макеты. Proo-of-conept. Работающее
приложение. Здесь мы будем обкатывать наши идеи в виде реализации.

Некоторые поинты.

1) Базовый тип. Для формального доказательства наших гипотез, нам не нужны биты.
Нам хватит строк. std::string, String, e.t.c. Пример:
string s="00101010010101010";

Любой сможет на них легко делать булевы
операции и что главное - конкатенации и обрезку. Памяти нам хватит. Оверхед составит
порядка 8-16 раз ну и пофиг.

А биты пойдут потом. Когда гипотеза взлетит.

2) Визуализация.. Я - большой фанат научной графики и визуализации идей. Зачастую
бывает что данные представленные картинкой несут больше ценных сведений чем куча
умных словесных тезисов. Поэтому черно-белая (bi-tonal) картинка придаст больше
наглядности для энтропии и преобладания каких-то свойств в бинарном файле.

Для тех, кому лень кодить графические кодеки - берите формат PPM. Это матрица пикселов в тексте.
Или рисуйте в браузере на канвасе. Примеры - тривиальны.

3) Язык. Любой из популярных. Можно даже JavaScript, главное чтоб мы смогли хотть как-то протестить.

4) Сорцы.. Как всегда я поднимаю репку. Комитте сюда.
https://sourceforge.net/p/psevdo-random-arc/code/HEAD/tree/

5) Сторонние библиотеки. Желательно чтоб были сорцы чтоб понять идею.


Go-go кодить!

Теоретики - курят в сторонке.
11 янв 18, 23:33    [21099367]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
В продолжение топиков 210891852109314621093146
11 янв 18, 23:42    [21099384]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
Идея архиватора с ГПСЧ не рабочая, не будет сжатия. Писал тут 21093742 и тут 21094323

Если кратко: длина подстроки исходных данных, которая совпадет с последовательностью из ГПСЧ вероятнее всего будет меньше или равна длине инфы требуемой для инициализации ГПСЧ. Т.е. меняем M бит на M бит.

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

PS Собственных экзотических идей по данному вопросу у меня нет.
12 янв 18, 11:31    [21100619]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
архиваторами
2) Визуализация.
кодить

Простите за немного не в тему.
Насчёт последнего - каждый занимается тем, чего ему нехватает)

Архивация, п.2):
Внезапно вспомнил давно уопробированные варианты. К началу 90-х (640К оперативка, 10М диск либо ваще только флоппи) ГУИшные проги делали с внешним хэлп-файлом (он же и ресурсный файл). Ради экономии места и/или защиты от самостоятельного пополнения использовался простейший вариант сжатия по повторяющимся частям слов. Просто видно было, как по мере листания файла вначале шли боле-мене узнававемые чуть не целые слова, затем превращаясь в разноообразные куски букв. Вот и вся визуализация.

Реализация примитивная, сжатие сильное, однако отнюдь не максимальное. Надеюсь с идеей всё ясно, исходники, извините, далече.
-----------

ГПСЧ в эксэле: щас найду картинку ...
Раздел "МС Офис"
тема generator-sluchaynyh-chisel-v-excel
сообщение 20570120

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

Сообщение было отредактировано: 12 янв 18, 12:19
12 янв 18, 12:15    [21100855]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
К вопросу о приложениях ГЧ.
Ещё давнее вспомнил. Была, не мною, предложена модель в целях локации моделировать пересечённую местность вариантом итеративной 2-мерной корелляционной модели с параметрами, на основе ГПСЧ. Там интересные картинки рисовывались, всевозможные площадные регионы типа овалов, рукавов, амёб и т.д., каждый регион со своими корелл. характеристиками. В каком-то случае возник "треуг-к Серпинского". Ну и как подзадача было облагородить сишный ГЧ.
Надо сказать, как и в случае с натуральными фракталами, под заданную картинку модель надо было подбирать (читай перебором).
За ради модели и исходников надо долго и физически рыться, если сохранилось.
12 янв 18, 13:10    [21101093]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20536
Dima T
Идея архиватора с ГПСЧ не рабочая, не будет сжатия.
Угу...
Очень давно, когда архиваторы были слабыми, а я совсем зелёным, у меня зарождалась аналогичная идея. Но её убил простой эксперимент. Взял я файл (большой текст), обмял его архиватором (ДОСовым RAR) с максимальными настройками, потом отXORил его рандомом (помнится, сделал аж 100 копий, каждая обработана со своим seed) и попытался обжать тем же архиватором с теми же настройками... посмотрел на результат - и зарёкся плодить дурные идеи.
12 янв 18, 13:19    [21101146]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Иван FXS
Member

Откуда:
Сообщений: 2007
Akina,

а осталась в вашей памяти что-то более конкретное про результат того эксперимента: типа -- ни одна из 100 копий не сжалась ни на один бит? Мы ведь обсуждаем вопрос "можно ли случайную строку сжать", а не "можно ли её сжать на десятки процентов" ...
12 янв 18, 14:48    [21101746]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20536
Иван FXS
а осталась в вашей памяти что-то более конкретное про результат того эксперимента: типа -- ни одна из 100 копий не сжалась ни на один бит?

Исходный файл - форматированный ASCII-текст размером порядка 1 Мбайт, в сжатом виде порядка 80 кбайт.
Среда программирования (и ГСЧ) - Borland Turbo BASIC 1.0.
Максимальное дополнительное сжатие - порядка 1.6% (на одном файле).
Количество файлов, размер которых уменьшился - порядка 70%.
Среднее уменьшение размера файла, по всему массиву - порядка 0,2%.
Среднее уменьшение размера файла, только по дополнительно сжатым - порядка 0,3%.
12 янв 18, 15:23    [21101900]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
д0kХ
Guest
Dima T
Идея архиватора с ГПСЧ не рабочая, не будет сжатия. Писал тут 21093742 и тут 21094323

Если кратко: длина подстроки исходных данных, которая совпадет с последовательностью из ГПСЧ вероятнее всего будет меньше или равна длине инфы требуемой для инициализации ГПСЧ. Т.е. меняем M бит на M бит.

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

PS Собственных экзотических идей по данному вопросу у меня нет.

+1

exp98
К вопросу о приложениях ГЧ.
Ещё давнее вспомнил. Была, не мною, предложена модель в целях локации моделировать пересечённую местность вариантом итеративной 2-мерной корелляционной модели с параметрами, на основе ГПСЧ. Там интересные картинки рисовывались, всевозможные площадные регионы типа овалов, рукавов, амёб и т.д., каждый регион со своими корелл. характеристиками. В каком-то случае возник "треуг-к Серпинского". Ну и как подзадача было облагородить сишный ГЧ.
Надо сказать, как и в случае с натуральными фракталами, под заданную картинку модель надо было подбирать (читай перебором).
За ради модели и исходников надо долго и физически рыться, если сохранилось.

+1

Извини mayton, но задача-идея писать на эту тему код - попытка
поставить телегу впереди лошади.

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

Если очень глубоко копать, тему, то точка перехода качества сжатия,
в качество востанновленной информации
находится где то по этой методике.
И нужно будет минимум 2 прохода по всему объему информации ,
что бы поймать фрактальные зависимости.
12 янв 18, 19:27    [21102879]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
д0kХ
Guest
Если стоит вопрос масимального сжатия без потерь,
то это другая область математики - многомерные пространства.
Тут еще больше украдено до нас.

Ищи мат выкладки по алгоритма ADSL и прочие алгоритмы укладки
шаров в многомерных пространствах.

Усидеть одновременно на 2 стульях если и получится,
то код никакого фундаметального и
практического интереса представлять не будет.
12 янв 18, 19:37    [21102902]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
д0kХ
Если стоит вопрос масимального сжатия без потерь,
то это другая область математики - многомерные пространства.
Тут еще больше украдено до нас.

Ищи мат выкладки по алгоритма ADSL и прочие алгоритмы укладки
шаров в многомерных пространствах.

Усидеть одновременно на 2 стульях если и получится,
то код никакого фундаметального и
практического интереса представлять не будет.

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

Дело в том что мы тут занимаем свою нишу. И занимаемся не математическими
открытиями а инженерией алгоритмов. Подобно конструктору Lego, мы собираем
из примитивов нечто. Это не наука. Это приспособление. Мы "приспосабливам"
для себя осколки знаний just for fun. Эволюционный путь. Отбор. Итеративный
подход. Best practices. Scrum/Agile. Это все разные названия этого процесса.

Мы не претендуем даже на строгое доказательство верности нашего пути.
Здесь нет формул. Просто скопление практик.

И я как и все другие мемберы тоже нахожусь здесь for fun. Помимо этого
я решаю параллельно еще 3-4 других задачи которые я не озвучил но они
перемежаются с обсуждаемыми хеш-тегами и рано или поздно я ими поделюсь.

Вот как то в таком вот аспекте.
12 янв 18, 23:11    [21103549]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Dima T
Идея архиватора с ГПСЧ не рабочая, не будет сжатия. Писал тут 21093742 и тут 21094323

Если кратко: длина подстроки исходных данных, которая совпадет с последовательностью из ГПСЧ вероятнее всего будет меньше или равна длине инфы требуемой для инициализации ГПСЧ. Т.е. меняем M бит на M бит.

Я не собираюсь "ломать об колено" архиватор с ГПСЧ. Он вполне себе
может существовать как "концепт" для сравнения его с другими.
Я-бы поставил другую задачу. Не опровергнуть тезисы Ивана а скорее
дать ему новые идеи и тезисы. Опять-же. На практике.
12 янв 18, 23:14    [21103558]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Надо сказать, как и в случае с натуральными фракталами, под заданную картинку модель надо было подбирать (читай перебором).За ради модели и исходников надо долго и физически рыться, если сохранилось.

Скриншоты сохранились?
12 янв 18, 23:17    [21103561]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
д0кХ
Guest
mayton
д0kХ
Если стоит вопрос масимального сжатия без потерь,
то это другая область математики - многомерные пространства.
Тут еще больше украдено до нас.

Ищи мат выкладки по алгоритма ADSL и прочие алгоритмы укладки
шаров в многомерных пространствах.

Усидеть одновременно на 2 стульях если и получится,
то код никакого фундаметального и
практического интереса представлять не будет.

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

Дело в том что мы тут занимаем свою нишу. И занимаемся не математическими
открытиями а инженерией алгоритмов. Подобно конструктору Lego, мы собираем
из примитивов нечто. Это не наука. Это приспособление. Мы "приспосабливам"
для себя осколки знаний just for fun. Эволюционный путь. Отбор. Итеративный
подход. Best practices. Scrum/Agile. Это все разные названия этого процесса.

Мы не претендуем даже на строгое доказательство верности нашего пути.
Здесь нет формул. Просто скопление практик.

И я как и все другие мемберы тоже нахожусь здесь for fun. Помимо этого
я решаю параллельно еще 3-4 других задачи которые я не озвучил но они
перемежаются с обсуждаемыми хеш-тегами и рано или поздно я ими поделюсь.

Вот как то в таком вот аспекте.

Я как бы о том, что мало смысла пытаться собрать пазлы брутфорсом.
Даже ради лулзов.
Универсальная Алгоритмы сжатия с потерями имеет огромный практический смысл.
Это базовая алгоритмика абстрактного и образного мышления искуственного интеллекта.
Поэтому я бы подвинул приоритет задачи в эту сторону.
12 янв 18, 23:24    [21103578]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
д0кХ
Я как бы о том, что мало смысла пытаться собрать пазлы брутфорсом.
Даже ради лулзов.
Универсальная Алгоритмы сжатия с потерями имеет огромный практический смысл.
Это базовая алгоритмика абстрактного и образного мышления искуственного интеллекта.
Поэтому я бы подвинул приоритет задачи в эту сторону.

Давай через пару недель. Подниму тему с lossy compression. У меня там идей еще больше...
12 янв 18, 23:27    [21103586]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
д0кХ
Guest
mayton, я бы не ввязывался в эту дискуссию ,
если бы не считал нужным лайнуть посты Dima T и exp98
дополнить их мысли мну ИМХО .
Они дело говорят , обрати внинмание на выделенное мной их постах.


Они тоже уже переросли этот топик.
12 янв 18, 23:35    [21103595]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я-ж говорю. Каждый здесь находит своё.
12 янв 18, 23:45    [21103608]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6330
mayton
Dima T
Идея архиватора с ГПСЧ не рабочая, не будет сжатия. Писал тут 21093742 и тут 21094323

Если кратко: длина подстроки исходных данных, которая совпадет с последовательностью из ГПСЧ вероятнее всего будет меньше или равна длине инфы требуемой для инициализации ГПСЧ. Т.е. меняем M бит на M бит.

Я не собираюсь "ломать об колено" архиватор с ГПСЧ. Он вполне себе
может существовать как "концепт" для сравнения его с другими.
Я-бы поставил другую задачу. Не опровергнуть тезисы Ивана а скорее
дать ему новые идеи и тезисы. Опять -же. На практике.

один дурак задаст столько вопросов.... (с)

уже отвечено 21082855
12 янв 18, 23:55    [21103629]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
д0кХ
Guest
mayton
Dima T
Идея архиватора с ГПСЧ не рабочая, не будет сжатия. Писал тут 21093742 и тут 21094323

Если кратко: длина подстроки исходных данных, которая совпадет с последовательностью из ГПСЧ вероятнее всего будет меньше или равна длине инфы требуемой для инициализации ГПСЧ. Т.е. меняем M бит на M бит.

Я не собираюсь "ломать об колено" архиватор с ГПСЧ. Он вполне себе
может существовать как "концепт" для сравнения его с другими.
Я-бы поставил другую задачу. Не опровергнуть тезисы Ивана а скорее
дать ему новые идеи и тезисы. Опять-же. На практике.

Имхо Иван пытается откопать и обсмаковать Гавно мамонта протухшие лулзы



+ квота для жерв информационного геноцида


Подам отличную идею — уже сейчас делить разные числа одно на другое, конвертить остатки в avi и смотреть еще не вышедшие фильмы :)

»
— Результат обсуждения Бабушкинского алгоритма сжатия на хабре.
Сам молодой гений описывает своё изобретение так:

Алгоритм™ архивации таков: любой файл представляет собой HEX-последовательность символов, переводим этот HEX в DEC, получаем неебически-большое число, дописываем перед этим число 0, — получаем число в диапазоне от 0 до 1 с огромным числом знаков после запятой, а дальше всё просто — подбираем 2 таких целочисленных числа, частное которых даст нам искомое число в диапазоне от 0 до 1 с точностью совпадений до последнего знака. Беда в подборе чисел, которое может идти и 2 часа, а может идти и 2 недели. Есть опытные образцы и работающая программа, и всё это работает.

Сжатый фильм «Клик» (Файл удалён). Тест алгоритма архивации Бабушкина.

2 марта 2013 г. поциент Вконтакте выложил ссылку на статью Криса Касперски «Могущество кодов Рида-Соломона или информация, воскресшая из пепла», прочитав которую, можно понять, что даже «придуманный» им алгоритм архивации заимствован из полушутливого раздела статьи про инопланетян.

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

12 янв 18, 23:58    [21103636]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
Скриншоты сохранились?
надо долго и физически рыться, если сохранилось. Как только так и ... ну 95-й, о чём-то говорит? Хотя в отчёте 2-3 конечно были, только это было заказное исследование ) А так, визуально помнится как выше описано. Итеративность - ключевой момент был, в принципе и своё воссоздать можно.

И да, сжатие изображений "фрактальными" методами, похоже что преимуществ по Ксж пред жпг не особо. Во всяк, в сравнимое время. Хотя идея подбираться к "неподвижной точке сжимающего отображения" в полном Банаховом пространстве очень вдохновляла в первое время. Это намёк.
13 янв 18, 19:18    [21104702]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
д0кХ, пусть Иван сам делает выводы с учётом или без наших мнений. Учиться не поздно никогда и никому. К тому же его идея не в архиваторе, а в применении оного.
13 янв 18, 19:24    [21104715]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Попробовал на "бумаге" систему счисления с весами Фибоначчи. Забавно. У нее есть
возможность восстанавливать трафик после сбоя. Тоесть даже если было повреждение
то имеется возможность "поймать синхроизацию" трафика как сетевых протоколах и телевидении.

К сожалению имеются изначально трудности с кодированием отрицательных чисел, нуля и единицы.
Отрицательные требуют дополнительного бита, а ноль и единица - неразличимы с трафике и следовательно
их кодировать невозможно.

Если пойти на хитрость и прибавить +2 то последний артефакт устраняется.
14 янв 18, 21:57    [21106023]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 62839
Блог
mayton
К сожалению имеются изначально трудности с кодированием отрицательных чисел, нуля и единицы.

Множество целых чисел гомеоморфно множеству натуральных. Всегда можно воспользоваться.
15 янв 18, 13:27    [21107479]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
softwarer
Множество целых чисел гомеоморфно множеству натуральных. Всегда можно воспользоваться.
Плз, аккуратнее с общепринятыми мат.терминами! Лишь одинаковая мощность, что говорит только о БИЕКТИВНОСТИ. Даже "изо-" требует "операции", не говоря о "гомео-".
Ну или операцию тогда надо определить (весьма экзотическим способом).
15 янв 18, 13:43    [21107599]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 62839
Блог
exp98,

операция определяется легко и просто на первом курсе. Например,

НатуральноеЦелое
10
21
3-1
42
5-2
63
......


А в целом ок, принимается.
15 янв 18, 14:28    [21107823]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
exp98
За ради модели и исходников надо долго и физически рыться, если сохранилось.

Скриншоты сохранились?
В общем откопал свёрнутую трубочкой распечату одного варианта. Ещё 2000 вёдер немного усилий, и можно бы восстановить скриншотики. Тем более это простой Си и сотня строк.
Но как всегда: как только, так и ...
3 май 18, 10:09    [21383532]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Окей жду.
3 май 18, 11:42    [21383881]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Я сдаюсь((
Долго не могу выделить время на перевод в техт. Оказалось, что лучше бы перевести все 9 страниц, учитывая, что оно для DOS. Параметрические файлы эбсент, значения нужно подбирать, секрета никакого. Это только расчётная часть. ГУИ для изучения свойств сформированного поля шло отдельной прогой. Бледная распечатка - вот всё, что сейчас есть.

Сфотал, для примера загнал как есть в распознавалку Си/С++ на сервисе файнридера. Результат можно показывать в теме достижений ИИ. Пример в zip-вложении.

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

Для желающих самим перевести жипег в тхт окажу посильную консультационную помощь о том, что делала когда-то прога. Но картинки по качеству подобному исходым картинкам сюда не поместятся.

Только сейчас вспомнил, что для фото следовало подкладывать толстый лист бумаги.
24 май 18, 11:37    [21435553]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

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

К сообщению приложен файл (Downloads.zip - 138Kb) cкачать
24 май 18, 11:37    [21435558]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Ок. Спасибо. Почитаю.
24 май 18, 19:20    [21437848]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
недостающие листы
лист1 лежит в предыдущем зипе.
далее ещё листы 2-8.

лист2 здесь.

К сообщению приложен файл. Размер - 136Kb
25 май 18, 13:52    [21440169]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
лист3

К сообщению приложен файл. Размер - 134Kb
25 май 18, 13:52    [21440173]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
лист 4

К сообщению приложен файл (img_1359-2.zip - 137Kb) cкачать
25 май 18, 13:56    [21440193]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
лист 5

К сообщению приложен файл (img_1360-2.zip - 141Kb) cкачать
25 май 18, 13:57    [21440195]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
лист 6

К сообщению приложен файл (img_1361-2.zip - 141Kb) cкачать
25 май 18, 13:57    [21440203]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
лист 7

К сообщению приложен файл (img_1363-2.zip - 140Kb) cкачать
25 май 18, 13:58    [21440210]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
лист 8

К сообщению приложен файл (img_1364-2.zip - 141Kb) cкачать
25 май 18, 13:59    [21440212]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
OMG. Дружище. А сканером можно было? Не уверен что распознавалка скушает фотки с рук.
25 май 18, 14:36    [21440442]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, файнридер справился на 20%
А бумага сама по себе тонкая и прозрачная, а краска именно такая бледная.
Ну попробую ещё, похожу по копировльням.
25 май 18, 18:47    [21441501]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я чувствую что тут тонна ручной работы будет даже после оптического распознавания.
26 май 18, 00:55    [21442061]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Полностью согласен, поэтому и сдался. Для этого нужно очень сильно захотеть. 2-3 тыр я бы
кому-нить дал за выверенный текст, но не больше.
Вот вариант со сканера. Для чтения гораздо лучше, но для ФР не на много.
26 май 18, 15:13    [21442611]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
файл не грузится, суббота выходной?

К сообщению приложен файл (002-2.zip - 140Kb) cкачать
26 май 18, 15:17    [21442615]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Вроде теперь выполняю обещание по исходникам для картинок, хотя и без ГСЧ (оказалось, что это была отдельная прога)
Здесь вот обещал:
exp98
К вопросу о приложениях ГЧ.
Ещё давнее вспомнил. модель в целях локации моделировать пересечённую местность вариантом итеративной 2-мерной корелляционной модели с параметрами, на основе ГПСЧ. Там рисовывались всевозможные площадные регионы типа овалов, рукавов, амёб и т.д., каждый регион со своими корелл. характеристиками. Ну и как подзадача было облагородить сишный ГЧ.
Надо сказать, как и в случае с натуральными фракталами, под заданную картинку модель надо было подбирать (читай перебором).
См. вложенный zip-файл.
В нём достаточный комплект исходников, параметров и примера результатов (не показательного), чтобы самому подбирать параметры. Но это не легко (нужно вникнуть в модель), и нужен компилятор С++ безоконного достаточно.
В файле ридми.тхт что смог, написал.

К сообщению приложен файл (darm-m.zip - 24Kb) cкачать
14 янв 19, 21:24    [21785208]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98, в какой кодировке у вас исходники?
14 янв 19, 22:14    [21785230]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
В винде-1251 все файлы д.б.
Да там всего 3 сишника и 2 пхпшника.

И , ой, забыл define.c
Он на другой машине, завтра-послезавтра, если не подойдёт тот, к-рый я ранее уже загружал.

Но на самом деле ничего красочного, просто обещал ...
14 янв 19, 22:25    [21785235]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Мда. Остался пустяк. Понять как этим пользовался.
14 янв 19, 23:37    [21785292]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Да можно и не пользоваться, а только посмотреть Dz.png, ради этого же поднял. А не нравится, каждый может свои параметры изобрести.

Модель почти типовая: вариант 2-мерной регрессии. Параметры только не типовые, в частности тэта рассчитывается как
t[y][x]= FFF( t[y - 1][x], t[y][x-1] ), по 2-м точкам.
А Dz[][] стандартно взвешенно суммируется по всем предыдущим значениям по Х и отдельно по У.

Короче, инклуд-файл здесь приложен, да и в нём половина лишнего.

К сообщению приложен файл (defines.c - 918bytes) cкачать
15 янв 19, 18:08    [21786029]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Вот этот? И где тут архивация? Сорян вообще непонятно.

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

Откуда:
Сообщений: 2446
exp98
mayton
2) Визуализация.
К вопросу о приложениях ГЧ.

Как уже поясненено, сам ГЧ остался в прошлом (а именно фильтрующая ф-ция для типового датчика, для Eps[]).
17 янв 19, 16:08    [21788085]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
А вообще, за тобой иногда замечается заносчивость. Что ж, сейчас наверное это доблесть.
17 янв 19, 16:10    [21788088]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Извини чел. Я вообще ничего не понял. Ты можешь дать краткое описание своей разработки?
Ну типа это - такая-то утилита. На вход идет тото. На выходе - это.
17 янв 19, 16:49    [21788139]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6330
exp98
А вообще, за тобой иногда замечается заносчивость. Что ж, сейчас наверное это доблесть.
майтон просто зайчик =)

Если что, я тоже невкурил, проведи ликбез плз

ЗЫ.Хотя я не верю в кибернетическую археологию
17 янв 19, 23:14    [21788356]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Да. Тяжко нам, зайцам.

Я вот опубликую мысль над которой я иногда думаю. Рассеянно.
Раскачиваясь на стуле и глядя в потолок.
Вот если взять черно-белую картинку с факсмильным текстом.

Типа такой (внизу).

И предположим что мы ее хотим оптимально хранить. Разобъем
ее на две половинки по вертикали. И будем рассматривать половинки как 2 независимых картинки.
Слева допустим будет полу-картинка которая будет сжата стандартым факсимильным CCITT Group 4 compression.
Ну неважно чем. Главное что чем-то уже известным. Не суть.

Далее правая половинка - это документ который имеет характеристики сходные с левой.
У них - одинаковый растеризованный шрифт. У них - одинаковая высота строк. И много
похожих статистических характеристик.

Далее я ставлю такую задачу. Я хочу используя сложение по модулю 2 восстановить
правую половинку по информации которая есть в левой. Ну... грубо говоря я ищу
в ней (в левой и правой картинках) фрагменты прямоугольного размера которые совпадают.
И если я нашел - переношу слева направо. Bобщем на псевдо-коде.

image = load("file.ttf")
imageLeft = lefthalf(image)
imageRightOriginal = righthalf(image)

imageRightRecovered = clearImage(image.x / 2,image.y)

while(isDiffer(imageRightOriginal,imageRightRecovered) {
   frame = getFirstDifferFrame(...) // Здесь много эвристики надо думать
   apply(frame, imageRightRecovered) // Здесь не обязательно XOR. Можно рассмотреть AND/OR тоже как операции
   addTo(setOfDifferFrames, frame)
}

save(imageLeft, withCCITTcompression)
save(setOfDifferFrames)
/// Здесь в качестве полезного эффекта я расчитываю получить сет
// изменений в виде некоторого лога действий который в общем
// сериализованном виде будет компактнее чем правый оригинальный image


Далее. Можно попробовать применить рекурсивно этот-же подход к левой картинке разбив еще на две
четвертинки.

Вобщем расчитываю получить некий профит.

P.S. Никакой имплементации пока у меня нет.

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

Откуда:
Сообщений: 14886
ИМХО может не повторы с одной половины искать на другой, а просто повторы.
Например нашли прямоугольник с буквой O и по всему оставшемуся документу делаем поиск аналогичной катринки.
Затем в конечный файл записываем картинку исходного прямоугольника и координаты всех ее включений.
И т.д. пока не обработаны все места картинки.

Для текстов может и сойдет, и то не факт если это скан.
Даже без повторов может пожаться при большом количестве белого, если в прямоугольники брать только фрагменты с черным.
18 янв 19, 15:33    [21788850]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Ну... я предполагаю что 80% это как раз и будут тексты.
18 янв 19, 15:37    [21788854]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Так. Ту картинку нафик. Она - полутоновая. Вот более правильная.

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

Откуда:
Сообщений: 8785
mayton
Так. Ту картинку нафик. Она - полутоновая. Вот более правильная.

Вы случайно не
https://en.wikipedia.org/wiki/Group_4_compression
пытаетесь по новой изобрести ?

ну или
https://en.wikipedia.org/wiki/JBIG2

+

Ideally, a JBIG2 encoder will segment the input page into regions of text, regions of halftone images, and regions of other data. .... Textual regions are compressed as follows: the foreground pixels in the regions are grouped into symbols. A dictionary of symbols is then created and encoded...
19 янв 19, 21:50    [21789401]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Итак дорогие мои Бабушкины. Я продолжу субботний поток сознания.

Немного цифр.

Оригинальное изображение имеет разрешение 1728x2339. Это главная цифра.

Я сохранил ее в 256 цветное индексное изображение но я был неправ. Цель - архивировать
bi-tonal images поэтому я чуть позже все переделаю. Но не суть. Сейчас это не имеет значения.
Считайте что мы работает только с чёрным и белым цветом без градаций серого.

Под катом - сведенья которые выдает imagemagic.
+
Image: ccitt01.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: PseudoClass
  Geometry: 1728x2339+0+0
  Resolution: 28.35x28.35
  Print size: 60.9524x82.5044
  Units: PixelsPerCentimeter
  Type: Bilevel
  Base type: Grayscale
  Endianess: Undefined
  Colorspace: Gray
  Depth: 8-bit
  Channel depth:
    gray: 1-bit
  Channel statistics:
    Pixels: 4041792
    Gray:
      min: 0 (0)
      max: 255 (1)
      mean: 248.376 (0.974024)
      standard deviation: 40.5613 (0.159064)
      kurtosis: 33.5236
      skewness: -5.96017
      entropy: 0.173792
  Colors: 2
  Histogram:
    104990: (  0,  0,  0) #000000 gray(0)
   3936802: (255,255,255) #FFFFFF gray(255)




Вводная. Термины.

Сжатие-архивирование.
В топике суть одно и тоже.

Raw-size - несжатый объем картинки в байтах. При этом предполагаем что бит 1 и бит 0 в байте определяют
черный и белый цвет соотв.

Для нашей картинки:

1728 x 2339 = 4041792 pixels

В байтах 4041792 / 8 = 505224 = 493 килобайта. Прошу запомнить цифру. Я буду часто на нее ссылаться как
на некий эталон или стартовую точку отсчета. Именно стольно информации хранит наша харнтинка в raw-size.

Спрайт - некий фрагмент картинки (возможно прямоугольной формы) с которым мы работаем. Ищем. Сопоставляем.
И применяем к результату.

Имеющиеся на рынке алгоритмы.

Имеющиеся в наличии сегодня алгоритмы которые архивируют подобные bi-tonal (bi-level) картинки
- CCITT Group 4. Документация пишет что достигает сжатия 20:1

- JBIG2 (Joint Bi-level Experts Group)
Все эти алгоритмы (CCITT, JBIG) очень быстро работают. Некоторые (для факсимильной связи) не видят всю картинку
в целом а обрабатывают только строку независимо от других строк. Это разумно, беря во внимание
возможности железа в 70-80х когда эти алгоритмы только создавались

Чуть позже я соберу цифры как архивируется оригинальная картинка на них всех + еще в различных
конфигурациях параметров алгоритма если таковые будут.

- GIF/PNG - уже известны. Работают хорошо с индексным цветом (2,4,8,16,256 цветов)
но не учитывают особенности bi-tonal. Грубо говоря есть куда расти.

- Архиваторы WinRar/WinZip/Bzip2 .... e.t.c. Работают хорошо применительно к general информации
но также не анализируют пространственные свойства картинок. Хотя на дельта-кодах и на много-цветных (true-color)
картинках WinRar может быть очень эффективен.

Для нашего эксперимента архиваторы не интересны. Хотя могут быть полезны для "дожатия" цифрового потока
который получен например после применения нашего алгоритма который мы создаем.


Цель


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

По сути - разработать компрессор.

Компрессия должна нести в себе полезный эффект превышающий пользу от JBIG, CCITT*

compressed-size << compressed-size-JBIG/CCITT << raw-size


Несколько предположений по реализации.

1) Если поставить задачу чуть подольше анализировать картинку то можно поднять больше сведений
о закономерностях которые в нем есть. Ограничений на время нет. Можно анализировать хоть целый день.

2) Если рассмотреть некие атомы из которых состоит данная факсимильная картинка то можно
заметить что это буквы. И всякие символы вокруг букв.

3) Буквы имеют дефекты сканирования. Тоесть одна и та-же буква будет не похожа сама на себя.

4) Разумно рассматривать не целую букву а фрагмент (спрайт? Фрейм?). Есть большая вероятность что ему будет найден
похожий образец.

5) Разумно брать спрайт небольшого размера 3x3, 4x4, 5x5 pix. Слишком большой размер просто сгенерирует
уникальный справочник который по размеру будет эквивалентен raw-size. Слишком мелкий (2х2) годится
но не даст полезного эффекта сжатия т.к. информация по индексу справочника также будет равна самому элементу
по объему занимаемых данных.

6) Разумно сегментировать картинку. Выделить в ней абзацы и строки хотя-бы для облегчения поиска спрайтов.

7) Разумно индексировать картинку. Выделить в ней области которые имеют какие-то признаки для быстрого
поиска.

8) Разумно создавать дополнительные структуры данных (плоскости оригинального изображения) где помечать
уже обработанные пикселы.

9) Разумно рассматривать рекурретное самоподобие восстанавливаемой картинки. Тоесть после того как мы
начали процесс реконструкции у нас кроме справочника могут появлятся новые детали которые также
можно рассматривать как новый справочник.

10) Язык программирования - любой. Ограничений по времени компрессии - нет. Однако желательно чтобы
декомпрессия была по сложности близка к распаковке архива. Как-то так.

Что в топике мы не будем обсуждать.

Сжатие алгоритмами JPEG/JPEG2000/LuraWave и прочие которые вносят
необратимые потери. Сжатие с потерями - отдельная тема и ее можно
обсудить отдельно.

Классические архиваторы. По причинам которые я описал выше.

Всё что здесь написано - безо всяких копирайтов. Вы можете спокойно брать и юзать. Я не против.
20 янв 19, 00:01    [21789461]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
mayton
Так. Ту картинку нафик. Она - полутоновая. Вот более правильная.

Вы случайно не
https://en.wikipedia.org/wiki/Group_4_compression
пытаетесь по новой изобрести ?

ну или
https://en.wikipedia.org/wiki/JBIG2

+

Ideally, a JBIG2 encoder will segment the input page into regions of text, regions of halftone images, and regions of other data. .... Textual regions are compressed as follows: the foreground pixels in the regions are grouped into symbols. A dictionary of symbols is then created and encoded...

Уже ответил походу.
20 янв 19, 00:03    [21789462]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Давненько не брал я в руки факсов. Кажется мне,что такими ровными и белыми могут быть только электронные факсы. В моём прошлом строчки на бумаге гуляли как волны, перемежаясь с площадями серой грязи.
На факсах м.б. логотипы и печати.

Просто находить линии, когда они прямые, легко. Файнридер так делает. В целом - это "преимущественные" направления.

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

Вообще же, если предполагать разброс % черноты в пределах 10 - 90%, универсальный фрактальный метод тоже ж придумали. Там универсальный словарь графических примитивов.
Вспоминая, что некий нулевой вариант фрактального метода, тоже был когда-то в моей археологии, могу быть уверенным, что однотонные площади он закодирует как надо. На степень сжатия будет влиять размер нарезки.
Жпег конечно разрывные функции приближает косинусами, но бесконечным их кол-вом (согласно теории Ф), и сжатие слабое.

А насчёт зайцев щас найду ....
20 янв 19, 00:05    [21789463]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Просто находить линии, когда они прямые, легко. Файнридер так делает. В целом - это "преимущественные" направления.

+1

Это мысль. Что здесь в помощь? Фурье?

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

Цветные картинки и градации серого я отметаю. Не интересно пока. Не буду заниматься.
Вообще большинство книг эпохи 90х были оцифрованы именно в bi-tonal. Я может
быть хотел свою библиотеку перецифровать. Да мало-ли...

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

Я вспоминаю что-то в compression.ru или в книжках Ратушняка и Ватолина про фрактальный метод. И где-то даже
был исходник на VisualC++ который сжимал очень ограниченное изображение (квадрат) в grayscale.
Но я-бы хотел подойти к этому методу чуть позже. Хочу вычерпать свои мысли сначала.
20 янв 19, 00:18    [21789472]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Жпег конечно разрывные функции приближает косинусами, но бесконечным их кол-вом (согласно теории Ф), и сжатие слабое.

К чорту JPEG.
20 янв 19, 00:21    [21789474]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Siemargl
проведи ликбез плз
Для начала согласно правилам: ридми прочтён? там написано немного сумбурно, но перечислены входные параметры и 2 выходных массива (1 для изучения, как бы основной промежуточный параметр, 2-й реально выходной - картинка).
Ну и вообще распаковка входных параметров прозрачнее некуда.
Запись в файл WriteDz() - тоже.
Собственно расчёт формулы - тоже - те 20 строчек после
/*** Вычислить Dz[] методом DARM ***/


Какие ожидания или конкретные вопросы ?

Непараметрическую регрессию всегда нужно понимать как формулу сглаживания с плавающим окном.
Единственно необычного, что стандартно регрессия используется, чтобы найти коэфф-ты уравнения по значениям, минимизирующие невязку, а тут в обратную сторону.
20 янв 19, 00:26    [21789478]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
Фурье?
В топку, это же гармоники, приближающие 2-мерную поверхность, а она кусочно постоянная. И волны ничего не знают про геометрию площадей.
Я же подразумевал преимущественные направления текстовых строк. По сути - это куда и на сколько повернуть рисунок. Методы выдумывать уже не буду, наверняка описаны. Например можно приспособить типа "векторизации" для нахождения строк или пучки прямых (кол-во чёрных точек по направлению для равномерной выборки из файла)
Если не этого хотелось, то ссори.

Но книги сканировать лучше всё же в полутоне - меньше потерь и артефактов.
20 янв 19, 00:41    [21789481]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Полностью согласен насчёт того как правильно сканировать книги.

Но вернёмся к bi-tonal.
20 янв 19, 00:47    [21789483]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
В пучках прямых ещё можно дополнительно использовать кластеризацию черноты. Например, если поперёк текста или по кляксе. Характеристики кластеров (размер на прямой, функция распределения по размерам кластера ...)

Ладно,печалька, думал, что в прорубь сегодня, блин ((( термос заварил ....
20 янв 19, 00:48    [21789484]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Почитал вики по Преобразованию Хафа. Интересно. Может пригодится.
20 янв 19, 00:59    [21789488]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Хаф использует выделение границ как промежуточный шаг.

Интересно. Можно ли обойтись без него. Для bi-tone картинки границы между строками букв достаточно четкие.
20 янв 19, 10:42    [21789537]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Чорт. Этот Хаф уводит меня сильно далеко. Кроме того надо ещё и имплементации поискать.
По ссылкам Хабра нашёл под C#.

И ещё вродебы OpenCV поддерживает.

Форкну отдельно. В профильных форумах.
20 янв 19, 16:31    [21789711]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8785
mayton
- GIF/PNG - уже известны. Работают хорошо с индексным цветом (2,4,8,16,256 цветов)
но не учитывают особенности bi-tonal. Грубо говоря есть куда расти.

LZW для bi-tonal вроде не очень подходит. Всю жизнь считал, что bi-tonal значительно лучше сжимается Хаффманом. Был уверен, что TIFF для Bi-tonal именно Хаффман использует, но Wiki пишет про CCITT

Кто ошибается, мой маразм или Wiki - не знаю.

mayton
exp98
Просто находить линии, когда они прямые, легко. Файнридер так делает. В целом - это "преимущественные" направления.

+1

Это мысль. Что здесь в помощь? Фурье?

Плохо разбираюсь в математике, но вроде Фурье апроксимирует ф-ции (!), а bi-tonal назвать не прерывной функцией можно только с большого перепоя. Т.ч. JPEG и Фурье для bi-tonal и вообще любых картинок с резкими границами - зло. AFAIK

mayton
Для bi-tone картинки границы между строками букв достаточно четкие.

Если изобретать свой простой велосипед, то IMHO вполне достаточно XOR'ить соседние строки. Т.к. скорее всего они будут повторяться (вертикальные линии), а горизонтальные линии и Хаффман и LZW хорошо пожмет. В принципе, к велосипеда можно еще приделать квадратные колеса, где в начале каждой обрабатываемой строки или использовать или не использовать "пред обработку" (по аналогии с PNG). Но не думаю, что по качеству сжатия это сильно уйдет от CCIT

А если велосипед не изобретать, то читать про то, как сделал JPEG Independent Group. Работа над JPEG 2000 шла черти сколько времени + в процессе работы отовсюду торчали ушы военных (т.е. бабло). Первые демки по FOI (Future of Interest) в JPEG 2000 вообще были снимки Ирака с пусковыми установками ))), даже уши не прятали ))).

Не думаю, что в форуме можно изобрести нормальные алгоритмы распознавания изображений.

В крайнем случае, можно посмотреть на набор алгоритмов в Open CV. Насколько я помню, там были и алгоритмы для выделения границ, и алгоритмы для поиска FOI, и нейронные алгоритмы поиска похожих (плюс нечувствительные к масштабу и поворотам).

Но мне кажется, это из пушки по воробьям. Даже DjVu настолько не заморачивается (а это коммерческий продукт)
20 янв 19, 16:43    [21789719]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
Плохо разбираюсь в математике, но вроде Фурье апроксимирует ф-ции (!), а bi-tonal назвать не прерывной функцией можно только с большого перепоя. Т.ч. JPEG и Фурье для bi-tonal и вообще любых картинок с резкими границами - зло. AFAIK

Я имел в виду детектирование частот и фаз. Ну да бох с ним. Я уже отказался от Фурье.
Пока что Hough transform - актуален.
20 янв 19, 17:46    [21789752]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Siemargl
проведи ликбез плз
Для начала согласно правилам: ридми прочтён? там написано немного сумбурно, но перечислены входные параметры и 2 выходных массива (1 для изучения, как бы основной промежуточный параметр, 2-й реально выходной - картинка).
Ну и вообще распаковка входных параметров прозрачнее некуда.
Запись в файл WriteDz() - тоже.
Собственно расчёт формулы - тоже - те 20 строчек после
/*** Вычислить Dz[] методом DARM ***/


Какие ожидания или конкретные вопросы ?

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

Я с вашего позволения сделаю копи-паст с вашего readme.txt и приаттачу в форум для удобства.

+
Очень кратенько описание в начальном приближении.

Все файлы подразумеваются в одном каталоге.
Darm-m.cpp  - Основная программа, проверялась для C++(11) в режиме debug,
    часть переменных осталась от предыдущих моделей, они не вычищены, т.к.
    файл сделан со старой распечатки, но имевшей версию близкую к окончательной.
    Полезные сочетания параметров модели для хороших картинок надо подбирать.
    Основная идея модели в том, чтобы сформировать корреляционное поле со спец. св-вами.
    Эти св-ва визуально могут выглядеть в виде протяжённых либо компактных регионов,
    к-рые можно интерпретировать на своё усмотрение. 
    Например в данном варианте гистограмма распределения амплитуд яркости показывает 
    два доминирущих кластера по яркости (но не по площади). 
    Можно, к примеру, сказать, что это перепады высот. (А можно и, 
    что это группировки в соцсети вокруг агентов влияния 2-х разных идей...)
    Точно помню, что при неких простых параметрах вида констант 0/1 получилось 
    похоже на треуг-к Серпин-го.
    
defines.c  - включаемый файл, содержит универсальные макросы
cfg-m.cfg   - параметры модели в текстовом виде, нужно wN1=iP ...


Dz[][]  - 2-мерное поле точек, основная цель программы, на выходе файлы Dz.flt и Dz.json
Teta[][] - 2-мерное поле промежуточного параметра модели, сохраняется в teta.flt
eps.flt  - входной массив вероятностей (epsilon), должен иметь распределение спец. свойства,
      но свойства надо знать.
doEps.cpp  - можно создавать свой файл eps.flt, затем
      Eps[] будет использоваться для создания pi[0-3] с нужными характеристиками,
      в то время как pi[4-5] формируются случайным образом. 

  
Кстати переменные созвучны греческим буквам:
dzeta[][]  - значения числового поля, вычисляется по модели регрессионного типа
epsilon[]  - [0; 1], задано в файле
teta[][]  - {0; 1}, вычисляется рекуррентно, записывается в файл для промежуточного контроля
PVer[]  - [0; 1], заданы вероятностями, желательно чтобы и больше, и меньше 1/2,
          имеет смысл порогов сравнения.
pi[0-3] и pi[4-5] - {0; 1}, (не путать с числом 3,141593...), вычисляется,
          имеют 2 разных происхождения и использования
"Мю"   - ~0.5, вычисляется, имеет смысл матожидания в модели регрессии
Ro[], Lambda[] - [-1; 1], вычисляется
A[], B[]  - вычисляется
C[]  - [-1; 1], вычисляется


Если неохота писать рисовалку данных для изучения полученных корреляционных св-в.
пакет PHP версии от 5.2
запускать (зашито, что из каталога c:/tmp/4php/)
php.exe ind3.php Dz.png 30 33
где 30х33 - пример размеров графического полотна в пикселах

ind3.php  - рисует в png-файле (например в Dz.png) то, что читает из Dz.json 
dataDZ.inc  - включаемый файл
Dz.json  - встроенный входной файл для рисовалки, он же выходной для модели ( из Darm-m)
Dz.png - имя, к-рое задавать в командной строке
---------------------------------
20 янв 19, 17:52    [21789753]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
LZW для bi-tonal вроде не очень подходит. Всю жизнь считал, что bi-tonal значительно лучше сжимается Хаффманом. Был уверен, что TIFF для Bi-tonal именно Хаффман использует, но Wiki пишет про CCITT

Кто ошибается, мой маразм или Wiki - не знаю.

Не уверен. LZW обычно подходит для текстовых данных где есть ярко выраженные слоги.

Для сжатия черно-белых строк в классическом варианте используются кодирование Хаффмена.
Различные вариации CCITT Group 3/4. Строка изображения при этом представлена как последовательность
длинн черно-белых отрезков. Где черный и белый - строго четные и нечетные или наоборот.
20 янв 19, 18:00    [21789759]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
Если изобретать свой простой велосипед, то IMHO вполне достаточно XOR'ить соседние строки. Т.к. скорее всего они будут повторяться (вертикальные линии), а горизонтальные линии и Хаффман и LZW хорошо пожмет. В принципе, к велосипеда можно еще приделать квадратные колеса, где в начале каждой обрабатываемой строки или использовать или не использовать "пред обработку" (по аналогии с PNG). Но не думаю, что по качеству сжатия это сильно уйдет от CCIT

Эксперимент с XOR (вправо) я уже проводил где-то в sql.ru. Не могу найти правда.
У него полезный эффект - почти тот-же что и кодирование чет-нечет отрезков черного и белого.
Я-бы даже сказал что это одно и то-же. Для детектирование переходов мы можем xor-ить
соседей явно или в алгориме подразумевать это.

Добавление вертикального XOR к строкам не даёт полезного эффекта. Ну ... по крайней мере
для тех данных на которых я тестировал.

Хотя XOR может быть полезен как фильтр границ. Ну об этом чуть позже я еще напишу.
20 янв 19, 18:08    [21789763]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
Не думаю, что в форуме можно изобрести нормальные алгоритмы распознавания изображений.

Я не претендую. В конце концов это чортовы игры разума. Как ферзи на доске.
20 янв 19, 18:10    [21789765]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я читал про J2k. КМК главный полезный по настоящему эффект - это другая информационная ценность
потока. Она основана на том что низкие частоты картинки перенесены в заголовок. Это позволяет
видеть в принципе картинку "не в фокусе" даже если она прогрузилась только на 10-20%. И это
не какой-то дурацкий progressive load а настоящий step-by-step способ детализации.

Но там не Фурье а другие функции в основе. Вроде как импульсы.

Но в моём эксперименте с факсом - Lossy JPeg2000 мне не подходит.
20 янв 19, 18:14    [21789767]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
Но мне кажется, это из пушки по воробьям. Даже DjVu настолько не заморачивается (а это коммерческий продукт)

Я читал книжки в DJVu. Мне понравилось что он тоже наносит повреждения для скан-документов.
Местами это распознанный OCR-текст. Местами - картинка там где формула или хитрый символ.

Вобщем DJVu я тоже отношу к способам сжатия которые наносят непоправимый damage.

Если этот damage управляемый и можно его как-то регулировать или отключить - то пожалуйста
покажите где это описано. Пока впечатление у меня от этого типа документа очень прискорбное.
20 янв 19, 18:17    [21789768]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Leonid Kudryavtsev
В крайнем случае, можно посмотреть на набор алгоритмов в Open CV. Насколько я помню, там были и алгоритмы для выделения границ, и алгоритмы для поиска FOI, и нейронные алгоритмы поиска похожих (плюс нечувствительные к масштабу и поворотам).

Наслышан про Open CV. Мощная штука. Но я пока попробую не завязываться на нее.

Хаф-трансформ у меня вызывает вопросы но в целом он не выглядит нерешаемым.

В противоположность "Непараметрическую регрессию" и "Корреляционное поле" которую
предложил наш коллега я не могу ни к чему применить. У меня наверное не хватает знаний
по данной предментной области.
20 янв 19, 18:21    [21789772]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
mayton
Хаф использует выделение границ как промежуточный шаг.

Интересно. Можно ли обойтись без него. Для bi-tone картинки границы между строками букв достаточно четкие.

Хм... сам спросил. Сам ответил.

Если взять изображенеи шахматной доски с линейным искажением (снято под углом) то
Hough_transform можеть дать сбой. Тоесть детектировать края. Но центр доски и клетки
могут скомпенсировать друг друга.
20 янв 19, 21:46    [21789847]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Вопрос в чём? На предыдущей же странице, можно сказать, всё расписано.
Могу выразить своё к этому отношение.
Послед-сть повторяющихся 0 и 1 - это вроде в основе своей RLE (run lehgth ... ).
Крупноразмерные графические паттерны в словаре - да, путь к сильному сжатию. Но чем они крупнее, тем больше их надо придумать.
С другой стороны, фрактальный метод "quad tree" как раз иерархически разбивает блок на мелкие части, в результате чего паттерны формируются самостоятельно. Это сжатие да, с потерей, однако чёткость восстановления увеличивается по мере итераций восстановления (но есть предел качества).

Статистика триграмм, квадрограмм и т.д., ну да, "слоги", LZW.

Вейвлеты да,не гармоники, однако плоскую функцию можно хорошо приблизить лишь огромным кол-вом кругленьких функций, в рез-те чего сжатие падает, либо качество. Что и наблюдается в виде ореолов на контурах. В качестве ухищрения можно сделать вид, что картинка дана в интенсивностях 0 и 1 вместо 0 и 255. И тогда это не вертикальный перепад,а линия под 45 град. Но всё остальнное - это всё равно прямая, а не кривая.

Если рассмотреть только пр-во кусочно-постоянных функций всюду с одним константным перепадом (что и предлагается в виде ч/б картинки), то можно попытаться построить базис из кусочно-постоянных. Получим векторное постранство функций,в к-ром любой факс представлется в виде линейной комбинации базисных векторов. Получим аналог вейвлетов, но без ореолов и недостатков на контурах. Я так думаю. Конечно, по амплитуде не смогеть квантовать, но по "частоте", возможно, что запросто.
Надо только соблюсти нек-рые условия (ортонормировность, коэффициенты=скалярному произведению и т.д.), чтобы ряд разложения мог называться рядом Ф, и по нему разлагать. Правда коэфф-ты будут вещественными числами. Что-то подобное шевелится в памяти, но надо искать.
20 янв 19, 23:46    [21789888]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Закину несколько видео по Хафу

+


+

21 янв 19, 00:21    [21789899]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Пораскинув остатками мозгов, прихожу к промежуточному мнению, что делать ставку надо на:
CCTTiiiii или как его там
+ лежащие где-то в инете методы ориентации текста и периодичности текстовых строк, к примеру из файнридера. Писать распознавалки - желание закончилось лет 20 назад.

Тем не менее.
1) По базису как всегда опередили: ортонормированный базис кусочно-постоянных функций Хаара на отрезке.
Предварительно склоняюсь, что сжатие им будет поменьше жипега. Кроме того, сходимость ряда Ф тоже медленнее.
Выигрышная сторона в том, что спектр будет ограничен, для задачи нужно только 2 значения. Квантование по "частоте" (здесь это номер канала) скорее всего приведёт (если сжимать построчно одномерными ф-циями Хаара) к утолщению букв, однако неравномерно от строки к строке.
Ситуацию со сжатием может улучшить 2-мерное преобразование, но надо построить плоский аналог таких ф-ций (впрочем это не кажется невыполнимым).

2) см. далее
22 янв 19, 16:06    [21791315]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
По поводу выделения текстовых строк. Велосипед, да, но вдруг кого наведёт.

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

а) Через точку провести горизонталь и вертикаль.
б) Наскоком с горизонталями ещё не всё ясно. Предположим, что всё же угол поворота меньше 45 гр.
Например считаем коэф-т корреляции её со строкой (11111...)
Есть предположение, что для печатных букв (не рукописных!!!) коэф-т в среднем достигает максимума либо вдоль строки (даже для курсива), либо поперёк.

в) Используем свойства авторегрессионной функциии, чтобы найти усреднённую высоту строк.
Пусть уже нашли направление строк. Если неправильно нашли, то вертикаль хоть и косо, но срезает много строк.
В любом случае, ожидаем, что вектор пересечения (0011001011...) почти периодичен. Предполагаю, что квазипериодичность обеспечат просветы между строками почти одинаковой длины.
Находим этот квазипериод.
По теории в чистых случаях это будет номер отсчёта первого максимума.
Детали процесса (в) иллюстрирует вложенная эксэлка с формулами и графиком.
Для простоты я размножил 20-битовый столб много раз. Теория ожидает индикацию чистого периода. Пример подтверждает, период=20.

Все опыты легко проводить в эксэле, без программирования.

К сообщению приложен файл (Книга2.zip - 86Kb) cкачать
22 янв 19, 16:52    [21791361]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Пораскинув остатками мозгов, прихожу к промежуточному мнению, что делать ставку надо на:
CCTTiiiii или как его там
+ лежащие где-то в инете методы ориентации текста и периодичности текстовых строк, к примеру из файнридера. Писать распознавалки - желание закончилось лет 20 назад.

Мы думаем одинаково. У меня была мысль - распознавать текст. И потом добивать разницу между орининалом
и синтезированным рисунком через булев операции. По сути - добавить "недостающий шум". И тогда основная
сложность будет на сжатии шума.

1) По базису как всегда опередили: ортонормированный базис кусочно-постоянных функций Хаара на отрезке.
Предварительно склоняюсь, что сжатие им будет поменьше жипега. Кроме того, сходимость ряда Ф тоже медленнее.
Выигрышная сторона в том, что спектр будет ограничен, для задачи нужно только 2 значения. Квантование по "частоте" (здесь это номер канала) скорее всего приведёт (если сжимать построчно одномерными ф-циями Хаара) к утолщению букв, однако неравномерно от строки к строке.
Ситуацию со сжатием может улучшить 2-мерное преобразование, но надо построить плоский аналог таких ф-ций (впрочем это не кажется невыполнимым).

Начал читать про Хоара. Пока неясно. Преимещества Фурье очевидны на гладких кривых и низких частотах.
У нас нет ни того ни другого. Кроме того классический JPEG это функция с ручкой-регулятором. Сколько пользователь
накрутит - столько и будет сжатие. Хоть 100 раз. Понятие дефолтного профиля практически не существует. Все программы
делающие jpeg по дефолту - делают его пр разному.

Ессьб поэтому сомнения.
22 янв 19, 19:32    [21791512]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6017
mayton,

Burrows–Wheeler transform как-то забыли

по идее оно то как раз одинкаково напечатанные буквы должно хорошо ловить
22 янв 19, 20:31    [21791549]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
kealon(Ruslan)
по идее оно то как раз одинаково напечатанные буквы должно хорошо ловить
Мой ограниченный инглиш при беглом просмотре говорит, что это чуть лучше, чем просто построчный RLE, так?
автор
Хоара. Пока неясно. Преимещества Фурье очевидны на гладких кривых и низких частотах
- Хоар ?= Хаар;
- тоже неясно, плоские пов-сти надо приближать плоскими же, а не гладкими - идея была в этом. Но первые непроверенные манипуляции в эксэле привели как раз к размытию "1", сжатие слабенькое,но это на послед-сти двойного периода и "дискретизации" 1/64;
- здесь всё тоже обощённое разложение Ф, но по системе кусочно-постоянных функций, что как раз и приминительно к ч/б картинкам. Отображение в спектр взаимнооднозначно. Я же не предлагаю полиномы Маллера, я их не знаю))
- здесь как раз важны "Высокие частоты".
- Пугает необходимость делние на 2**m.
22 янв 19, 22:18    [21791616]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6017
exp98
Мой ограниченный инглиш при беглом просмотре говорит, что это чуть лучше, чем просто построчный RLE, так?
нет
это предварительный метод, он как раз создаёт очень много повторяющихся "сиволов", а выход с него уже дальше подают например Хаффману

в вики есть русский вариант
23 янв 19, 00:18    [21791677]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Всё же почти дожал пробный вариант. Цвет восстанавливется однозначно.

Выборка 32 точки, базис функций 31 штука, ak - вычисленные к-ты разложения (амплитуды), Inp(t) - битовая строка, Outp(t) - восстановленная по к-там
+
t	Inp(t)	Outp(t)	Round( ak, 3)
0	0	-0,002	0,661
1	1	1,510	-0,067
2	1	1,510	-0,067
3	0	-0,002	0,094
4	0	0,001	0
5	0	0,001	0,094
6	1	1,513	0
7	0	-0,001	0
8	0	-0,002	-0,134
9	1	1,512	0
10	1	1,512	0
11	0	-0,002	-0,267
12	0	-0,002	-0,134
13	1	1,512	-0,267
14	1	1,512	-0,267
15	0	-0,002	-0,189
16	0	-0,001	0,189
17	0	-0,001	0
18	1	1,509	0,189
19	1	1,509	-0,189
20	0	0,001	0,189
21	0	0,001	-0,189
22	0	-0,001	0,189
23	1	1,513	0
24	0	0	0
25	0	0	0
26	1	1,511	-0,189
27	1	1,511	0
28	0	0	0
29	0	0	0
30	1	1,511	0
31	1	1,511
Вместо ak записываем старшиие 8 разрядов мантиссы, затем сжимаем Хафманом.
При желании можно предварительно квантовать ak (аналогично жпегу).
Можно полностью отбросить a0.
23 янв 19, 00:23    [21791679]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
kealon(Ruslan)
mayton,

Burrows–Wheeler transform как-то забыли

по идее оно то как раз одинкаково напечатанные буквы должно хорошо ловить

Я не знаю как применить BWT к графике.
23 янв 19, 01:11    [21791689]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
По поводу выделения текстовых строк. Велосипед, да, но вдруг кого наведёт.

Этот метод надо сравнить с Хафом. Хаф вобщем-то не дает ответа на вопрос "под каким углом лежит текст
скан-документа". Он дает двумерную поверхность где есть множество локальных максимумов
которые (потенциально) как стрелка компаса указывают на возможное направление.

Если ваш метод-велосипед даст ответ на вопрос о двух локальных максимуммах (вертикаль и горизональ
текста) то это конечно good.

По wiki если идти по ссылкам от Хафа то можно подойти к преобразованию Радона. Которое
как пишут предпочтительнее для зашумленных картинок. По Радону я нифина не понял пока.
Много математики.
23 янв 19, 01:32    [21791691]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
А теперь подкину цифры как обещал

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


Вот 16 килобайт это рекорд. Надо его побить. Такая вот сверх-задача.

Какой алгоритм используется в GIF я не помню. Возможно LZW. Надо проверять.

По приколу BMP я сжал Zip-ом с опцией (-9) best compression. Для сравнения с другими.

Скриптик как я их получил. И результат. Оригинал изображения - приаттачен был ранее. Оригинал - в формате PNG
в градациях серого 8-bit но из них используются 2 цвета.
+
file ccitt01.png
ccitt01.png: PNG image data, 1728 x 2339, 8-bit grayscale, non-interlaced
identify ccitt01.png
ccitt01.png PNG 1728x2339 1728x2339+0+0 8-bit sRGB 256c 41.4KB 0.000u 0:00.000

convert -threshold 50 -colors 2 -compress group4 ccitt01.png ccitt01-group4.tif
file ccitt01-group4.tif
ccitt01-group4.tif: TIFF image data, little-endian, direntries=18, height=2339, bps=1, compression=bi-level group 4, PhotometricIntepretation=WhiteIsZero, orientation=upper-left, width=1728
identify ccitt01-group4.tif
ccitt01-group4.tif TIFF 1728x2339 1728x2339+0+0 1-bit Bilevel Gray 16.9KB 0.000u 0:00.000

convert -threshold 50 -colors 2 ccitt01.png ccitt01.bmp
file ccitt01.bmp
ccitt01.bmp: PC bitmap, Windows 98/2000 and newer format, 1728 x 2339 x 1
identify ccitt01.bmp
ccitt01.bmp BMP 1728x2339 1728x2339+0+0 1-bit sRGB 2c 505KB 0.020u 0:00.019

convert -threshold 50 -colors 2 ccitt01.png ccitt01.gif
file ccitt01.gif
ccitt01.gif: GIF image data, version 89a, 1728 x 2339
identify ccitt01.gif
ccitt01.gif GIF 1728x2339 1728x2339+0+0 8-bit sRGB 2c 38.9KB 0.000u 0:00.000


Все прочие форматы получены конвертером с преобразованием в 2 цвета и трешолдом в 50% относительно белого.
23 янв 19, 02:17    [21791698]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Алгоритм JBIG чуть позже добавлю. Пока не нашел коробочный вариант установки. Чето-надо качать из левых репок.
23 янв 19, 02:22    [21791699]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Вобщем скачал я какой-то дурацкий JBIG-KIT. Собрал. Он в качестве входных данных
хавает псевдотекстовые картинки как мы делали в Card-Raytracer. Еще геморр. Ладно
пошел спать. Пока.
23 янв 19, 02:30    [21791700]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
Если ваш метод-велосипед даст ответ на вопрос о двух локальных максимуммах (вертикаль и горизональ текста)
Ха, если найти верную вертикаль, то горизонталь ей перпендик-на. Лишь бы не попутать гор. с верт-лью.
Для прямых Хафа лучше. Вспомнил, читал кажется на хабре. Если не ошибаюсь, для прямых можно построить радар 360 град, а по углу получить диаграмму рассеяния показателя. Где максимумы, там и прямые. Вроде так?
Похожее я и подразумевал. Надо только искать в пучках параллельных направлений, т.к. в одно можно и не попасть.
23 янв 19, 13:33    [21792060]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
mayton
Если ваш метод-велосипед даст ответ на вопрос о двух локальных максимуммах (вертикаль и горизональ текста)
Ха, если найти верную вертикаль, то горизонталь ей перпендик-на. Лишь бы не попутать гор. с верт-лью.

Вовсе не факт. Документ может содержать посторонние линии.

Тоесть может быть 3 экстремума на фазовой плоскости Хафа. И только 2 из них - под углом 90. А третья - может
быть просто жирной диагональной линией. Элементом чертежа и прочее.
23 янв 19, 13:37    [21792067]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
По поводу корреляций и ковариаций двух векторов. (Или двух матриц битов).

Для черно-белых точек эта формула должа выродится в банальный подсчет равенства пикселов
источника и получателя.

Ну... я на это надеюсь.
23 янв 19, 13:39    [21792070]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8785
mayton
Вобщем скачал я какой-то дурацкий JBIG-KIT. Собрал. Он в качестве входных данных
хавает псевдотекстовые картинки как мы делали в Card-Raytracer. Еще геморр. Ладно
пошел спать. Пока.

По I-net'у Image Magick поддерживает JBIG. И аж две штуки JBIG1 и JBIG2 )))

Не скачивал, не смотрел, но вроде Image Magick раньше был достаточно "серьезным" (не глюкавым) продуктом.
23 янв 19, 14:05    [21792111]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
О. Спрасибо. Я и не заметил.
23 янв 19, 14:43    [21792212]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8785
Да, порнография какая-то с Jbig2
в виде отдельного формата почти никем по нормально не поддерживается, только внутри PDF

В общем, B&W картинка - якобы 12 794 байт, но ничем не открыть )))
внутри PDF (картинка плюс заголовок PDF) - 14 725 байт
PDF генерил http://www.stdutility.com/stduconverter.html
23 янв 19, 14:46    [21792220]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 8785
Прикладываю получившуюся PDF'ку. Хром показывает нормально )))

К сообщению приложен файл (ccitt01.pdf - 14Kb) cкачать
23 янв 19, 14:47    [21792222]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

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

Откуда:
Сообщений: 8785
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
Сообщений: 48022
Дело принципа. Но если мы нарисуем график типа по оси X - время или мегафлопы.
А по оси Y - сжатие то на этой кривой мы очень-очень быстро обнаружим точку
которая нам будет интересна.

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

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

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:38
23 янв 19, 15:33    [21792322]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Грубо говоря

16 * 31 = 496

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Откуда: loopback
Сообщений: 48022
А что с тесткейсом в 1 пиксел? Я в ступоре.
31 янв 19, 12:23    [21798633]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
по всем направлениям
это ключевое слово, откуда синусы? прямая определена 2-мя тт. Навскидку и получается, что для каждого танкенса своё пересечение с осью У - условно говоря (надёжнее в полярных координатах). Ну и будет какая-то непрерывная кривулька\прямулька + ещё для пучка, что через точку проходит: вартикальная прямая (ну, или горизонтальная). Это и будут ровные по высоте хребты, остальное 0. Вроде так.
31 янв 19, 20:00    [21799147]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Хорошо. К чорту тангенсы.

Занимаясь этой бедой я неизбежно думаю о предварительной оптимизации.
И возможно это меня тормозит. Писать же концептуальный код который будет
работать сутки - как-то неинтересно.

Значит так. Ищем непустые пикселы. Допустим это будут тексты и картинки нашего факса.

Картинка с другого сайта.

Для каждого пиксела рисуется семейство прямых которые проходят через него
под разными углами (допустим с шагом в 1 градус). Для каждой прямой оценивается
влияние соседних пикселов. Влияние фиксируется как синусоида на поверхности Хафа (справа).
Поверхность - вещественная. Все синусоиды образуют суперпозицию (характерный полутональный рисунок).
Для простоты можно считать что величина 1.0 это минимальный дискретный уровень синусоиды.
Характеристики синусоиды соответсвтуют прямой в полярных координатах где (Ро и Тета) расстояние
от центра коодинат до прямой и угол наклона относительно оси Х).

Вопросы. Имеет-ли смысл ограничить наш текст некоторый выпуклой областью (типа многоунольника
чтобы исключить лишние вычисления).

Имеет ли смысл дважды учитывать влияния одного пиксела на другой когда прямая проходит через них.
Мы фактически дважды посчитаем их. Или трижды для трех.
1 фев 19, 14:28    [21799722]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

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


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

Откуда:
Сообщений: 2446
Так бы сразу и сказал (С)
А то вопрос про одну точку, а ответ нужен про все вместе.

Насчёт дублирования всего. Имею только ИМХО.
Украшательство это. Не надо только секущие крутить на все 365 град. А если пучок переносишь в другую точку, то там эта парная находится в другом окружении, и там её доля другая, так что считать придётся повторно. Не запоминать же статистику для уже проведённой однажды прямой.
И оболочка тоже украшательство, если очень хочется программировать. Хорошо, если она отсечёт черные поля.
1 фев 19, 20:31    [21800139]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Так бы сразу и сказал (С)
А то вопрос про одну точку, а ответ нужен про все вместе.

Нужен тест. Когда я напишу фунцию для расчета Хафа для одной точки мне будет интересно
правильно я написал или нет. Вы - можете придумать утверждение для данного теста?
2 фев 19, 00:57    [21800257]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

Украшательство это. Не надо только секущие крутить на все 365 град.

Эта фраза меня запутывает. Она либо составлена впопыхах либо вы другое хотели сказать. Вобщем непонятно.
2 фев 19, 00:58    [21800258]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
И оболочка тоже украшательство, если очень хочется программировать. Хорошо, если она отсечёт черные поля.

Нифига себе украшательство!

Это на минуточку - половина площади всего листа. Я напомню что там идет учёт пикселов. И если его
удастся сократить на 50% - это уже блин оптимизация. А прямые тогда заменяются на лучи или отрезки
с более короткой длиной. Не доходя до границ листа.
2 фев 19, 01:00    [21800260]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

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

Да, я действительно предыдущее писал не то чтобы впопыхых, а просто не особенно обязываясь. И даже вспоминаю, что кое что неверно.
В случае полярных координат 365 град не будет, при 0 в углу поля. В случае тангенсов могло бы быть.
Сначала я подразумевал послед-сть действий типа: в каждой точке проводим пучок. Но сейчас кажется, чо может быть и лучше, если внешним циклом сделать направления и каждое из них ссуммировать внутренним циклом по по всей площади. Тогда в одном направлении любая точка участвует не более 1 раза теоретически.

Но остаюсь при мнении, что я бы сначала сделал для всего листа (и тщательно проверил бы), после чего уже можно оптимизировать.
2 фев 19, 22:35    [21800581]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Я даже скажу, что сам бы сначала сделал на языке как можно более высокого уровня, где бы большинство нюансов обсудил с заказчиком. Потом уже остальное всё. Жаль, что питон не знаю.

Здесь же прикладываю просто рекламные картинки. Вдумываться в них не надо !! Просто хотел понять, сгодится ли для модели. Один рис. фрагмент факса и выделенные формулами 3 напрвления ~86, 60, 45 град без всякого Брэзенхэма или как его звать.
На др-м рис. тоже формулами в пространстве тангенсов вычислял позицию, через к-рую пройдёт эта прямая в исходном пр-ве. Случилась неожиданная красота, решил поделиться.
На самомделе здесь только некий нелинейный срез этих позиций. Думать запрещено!

Но в эксе-2003 колонок 255, даже при транспонировании входит только 255 строк факса.
В 2007-15 их уже много тысяч, но я им дома не пользуюсь. Так что это тупиковый для моделирования метод

К сообщению приложен файл. Размер - 4Kb
2 фев 19, 23:11    [21800590]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
"красота"

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

Откуда: loopback
Сообщений: 48022
Я даже скажу, что сам бы сначала сделал на языке как можно более высокого уровня, где бы большинство нюансов обсудил с заказчиком.

(пожимая плечами)

Нет заказчика. Ну или я сам себе заказчик.
2 фев 19, 23:33    [21800604]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Здесь же прикладываю просто рекламные картинки. Вдумываться в них не надо !! Просто хотел понять, сгодится ли для модели. Один рис. фрагмент факса и выделенные формулами 3 напрвления ~86, 60, 45 град без всякого Брэзенхэма или как его звать.
На др-м рис. тоже формулами в пространстве тангенсов вычислял позицию, через к-рую пройдёт эта прямая в исходном пр-ве. Случилась неожиданная красота, решил поделиться.
На самомделе здесь только некий нелинейный срез этих позиций. Думать запрещено!

Вы могли-бы перенести это в JavaScript? Шаблон я вам подскажу. Там надо будет просто вписать вашу тригонометрию
в процедуры которые я определю. И добавлю "TODO:".
2 фев 19, 23:51    [21800613]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Хм... все оптимизации JavaScript ведут к webassembly. Интересная шняга. Надо-бы поднять отдельно
обсуждение.
3 фев 19, 20:21    [21800895]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Про заказчика я условно = степень завершённости.
mayton
Вы могли-бы перенести это в JavaScript?
Э-ээ, дело в том, что в эксе формулы хороши тем, чтобы не прогать. Взамен приходится многие вещи делать руками и повторно.

Из формул здесь единственная типа y=kx+b, перебор k и b (или через полярные корд-ты). Что тут переносить? А вот манипуляции ручками как раз и надо прогать.

Нужна загрузка картинки на канву и в массив.
Работа с канвой - в JSе канву никогда не прогал.
Определить диапазон для исходных переменных,
для целевых переменных
Ну т.е. задать преобразование.
В циклах по направлениям и точках провести суммирование (либо процентовку).
Добавить процедурку - показометр второго рисунка в целевом пр-ве.
Поотладить это всё.

Пустяк для JSсчика. Но это реально затрачиваемое время. Мне это не один час. Боюсь обещать.

А главное в конце ещё и поискать надо ту самую хребтину, к-рая должна индицировать направление. А их как минимум 2: вертикальная и гориз-ная. К тому же в индицирующем пространстве мы не имеем геометрических координат исходного пр-ва, а лишь направления.
И м.б. вместо рисования прямых каждый раз поворачивать картинку, а тогда нужно заранее расширить размеры поля.
3 фев 19, 21:37    [21800915]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я не JS-ник. Но я написал заготовочку. Которая позволит хотя-бы как-то на едином языке что-то разработать.

Вот. Прикладываю. Там в секции TODO: надо подставить картинку которую надо обработать.

+
<!DOCTYPE html>
<meta charset="UTF-8">

<head>
   <style>
    body {
      background-color: gray;
    }
	#main{
	  position:absolute;
	  width:1024px;
	  height:512px;
	}
	#main > div {
	  float:right;
	}
	#d1{
	  width:512px;
	  height:512px;
	}
	#d2{
	  width:512px;
	  height:512px;
	}
   </style>
</head>

<HTML> 

<script type="text/javascript">
	"use strict";

	// 2-Feb-2019 : mayton : "Initial commit"

	function getR(canvas, pix, x, y) {	
		return pix[x * 4 + y * canvas.width * 4];
	}

	function getG(canvas, pix, x, y) {
		return pix[x * 4 + y * canvas.width * 4 + 1];
	}

	function getB(canvas, pix, x, y) {
		return pix[x * 4 + y * canvas.width * 4 + 2];
	}

	function filterHighFrequency(canvas, pix, x, y) {

		var m =    [[ -1, -1, -1 ], 
		            [ -1,  9, -1 ], 
		            [ -1, -1, -1 ]];		

		var r = 0;
		var g = 0;
		var b = 0;
		for(var yy = 0; yy < 3 ; yy++) {
			for(var xx = 0 ; xx < 3 ; xx++) {				
				var tm = m[xx][yy];				
				r += (getR(canvas, pix, x + xx - 1, y + yy - 1) * tm);
				g += (getG(canvas, pix, x + xx - 1, y + yy - 1) * tm);
				b += (getB(canvas, pix, x + xx - 1, y + yy - 1) * tm);
			}
		}
		return col(r,g,b);
	} 

	function getPixelOffset(canvas, x, y) {
		return x * 4 + y * canvas.width;
	}
	
	function col(r, g, b) {
		return "rgb(" + r + "," + g + "," + b + ")";
	}

	// mayton:> converts from (r,g,b) to grayscale value normalized to 0..1
	function brighness(r, g, b) {
		return r * 0.299 + g * 0.587 + b * 0.114;
	}

	window.onload = function() {
		console.log("01::onload");
    	
		var WIDTH = 512;
		var HEIGHT = 512;

    	var source = document.getElementById("source");
    	var sourceCtx = source.getContext("2d");   

    	var image1 = new Image();
    	// TODO: Replace with correct image
	    image1.src = "remastered-lena-512x512.png"; //"b_img7.jpg"; //"faxBW2-15grad-small.png"; 	

    	image1.onload = function() {
    		console.log("02::image loaded");
    		sourceCtx.drawImage(image1, 0,0);    		
	    	var dest = document.getElementById("dest");
	    	var destCtx = dest.getContext("2d");

	    	console.log("03::getting source image data");

	    	var sourceImageData = sourceCtx.getImageData(0, 0, source.width, source.height);
			var pix = sourceImageData.data;
	    	var i = 0;

	    	console.log("04::start image processing");
	    	var rmax = 0;
	    	var avgBr = 0.0;
	    	for(var y = 1; y < 512 - 1; y++) {
	    		for(var x = 1; x < 512 - 1; x++ ) {
	    			//------------------------- TODO: Implement here...	    			
	    			destCtx.fillStyle = filterHighFrequency(source, pix, x, y);
	    			destCtx.fillRect(x, y, 1, 1);
	    			//-------------------------------------------	    			
	    		}
	    	};   

	    	console.info(" average mean = " + avgBr / WIDTH / HEIGHT / 255.0); 	

	    	console.log("05::finished")
    	}
    	
    	
	};
</script>

<BODY background = "gray">
	<div id="main">		
		<div id="d1"><canvas id = "dest" width="512" height="512"/></div>
		<div id="d2"><canvas id = "source" width="512" height="512"/></div> 
	</div>
</BODY>

</HTML>


Принцип такой. Слева - источник. Справа - получатель. Получатель имеет вольную семантику. Это не обязательно
картинка. Это может быть как раз пространство Хафа. Где более яркому цвету соотв. более выская величина Z
на поверхности X,Y.
3 фев 19, 21:43    [21800917]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Картинка с печально известной мадам Леной. У меня в браузере выглядит как-то так.
В качестве tech demo я добавил фильтр высоких частот. Но его надо выкинуть и заменить на то
что надо нам по смыслу.

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

Откуда: loopback
Сообщений: 48022
exp98
А главное в конце ещё и поискать надо ту самую хребтину, к-рая должна индицировать направление. А их как минимум 2: вертикальная и гориз-ная. К тому же в индицирующем пространстве мы не имеем геометрических координат исходного пр-ва, а лишь направления.
И м.б. вместо рисования прямых каждый раз поворачивать картинку, а тогда нужно заранее расширить размеры поля.

Давайте предположим что мы сканируем журнал пчеловодов.
Есть пол-листа - плоский текст. А на другой половине - картинка
с пчелиными сотами. Снятая в высоком контрасте.

Предполагаю что на плоскости Хафа мы детектируем углы в 0 и 90 градусов.
(это - направления текста) Тут как-бы все ОК. И еще странные локальные всплески
по углам 60 градусов. Минус 60. Это направления линий пчелиных сот.
Чисто технически нам стоит задача - понять где правильные локальные максимумы.
И где - фейковые образованные иллюстрацией.
3 фев 19, 22:01    [21800922]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Ловко сделано, практически всё готово.

Загвоздка в том, что только по Хафу не получится и не могло.
В сотовой конкретике, хребты пересекаются под 60 гр, а текстовые под 90.
Но с шашечным журнал фокус не пройдёт.
И заранее пока неизвестно, чей хребет будет выше: графический или текстовый. Готов повторить: размываем текст, чтобы получить полосы посплошнее.

Я не искал, как это давно решили у Арлазарова и Яна, или как это делают в дискретке.
В "КБ и НИИ" подобное традиционно делали через изучение 2-мерного корреляционного поля амплитуд. Разное там, кластеры, периоды, частотные спектры ... нужно же отличить в окуляре танк от избушки, БР от восхода Луны, свою БР от НЛО, подводку от косяка рыб ...

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

Как и для избушки, нужна типовая статистика. Других дум пока не имею.
Только хочу ещё сказать, что не верю в метод сжатия путём распознавания текста, уж лучше жипег. С текстом неизбежны искажения и ложные сработки. В этой же теме я приводил примеры сишного распознавания - слёзы, правда с опцией 2-язычности в комментариях проги.
3 фев 19, 23:08    [21800946]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Смотрите. Чтобы у нас не вышло диалога каждый о своём. Я предложил тему. Вы можете
не соглашаться с методикой. И высказывать ваши прогнозы.

Но я ожидаю предложений. Потому что на 1 оптимиста всегда найдется 10 000 пессимистов.

Ваше сишное распознавание я не понял по юзкейсу. Тоесть как его использовать? И где его
полезный эффект. Как его "пощупать" за вымя?
3 фев 19, 23:32    [21800954]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, забудьте уже о тех файлах. Я сейчас написал о том, насколько плохо распознался скан на сервере ФР для халявных распознаваний. Можно сказать совсем не. Необходимо понимать, что мой оптимизм либо пессимизм непосредственно мотивирует меня. Заклинания здесь не помогут.

Можно остановиться на вопросе, как отсеять ложные "прямые". Не могу уверенно сказать, что по анализу признакового пр-ва это выяснится однозначно. Похоже, что надо получить и посмотреть 4 результата, как группируются яркие точки.
Сотовый случай как средней паршивости,
шашечный - как худший.
Раздельно, если клетки у них плоские, с малой долей полутонов, и когда не плоские.

Насчёт проги. В инете выложены тексты этого суммирования из матлаба. Можно их приспособить. Там примерно так
//Линейная интерполяция
TAU = -N/2:N/2;
T = length(TAU);
P = tan(-pi*89/180:pi/180:pi*89/180);
R = length(P);
result = zeros(T, R);
for p = 1:R
for th = 1:T
for x = -T:T
xx = T+x; ................
4 фев 19, 18:39    [21801513]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Шашечки сдетектируются нормально после применения фильтра границ.

Литература отсылает меня к фильтру Собеля. Но... как мне кажется для черно-белых пикселов
можно его сильно упростить до сложения по модулю два по вертикали и по горизонатли.
Уже когда-то такое делал.
4 фев 19, 18:59    [21801530]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
В общем пример сразу не прошёл. Откопал МЛ, там есть примеры обоих пр-ний. Прошли практически сразу на примере фрагмента факса с поворотом на 1.5 гр (выше прикладывал).
Складываю в 2 порции вложений. Тестовые рис. с графикой надо готовить, могу посмотреть.
Правда думаю, что теперь только в выхи.

Радон здесь. В общем поворот на ~1-2 град детектируется отчётливо вплоть до самих строчек.
Угол - нижняя ось, диапазон от -10 до 170 град, тогда отсётливо виден 2-й пунктир около 0-2 гр - вертикальное направление суммирования.

К сообщению приложен файл. Размер - 100Kb
5 фев 19, 23:17    [21802246]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Хаф.
Для него там готовое решение вместе с индикацией точек и с показометром найденных прямых на исходном рисунке.

Читается примерно так же, только, если в Радоне я сделал шаг по 1/2 гр, а по х шаг=2,то здесь куча вложенных п/программ - уже небыло сил влезать в них.
2 файла в зипе.

К сообщению приложен файл (Hough15grad.zip - 84Kb) cкачать
5 фев 19, 23:23    [21802249]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
В случае Хафа наблюдаются ещё 3слабых вертик пунктира. Я так понял, что это 3 изолированные точки в правой верхней части исходника.

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

Откуда: loopback
Сообщений: 48022
Спасибо за investigation. Это часть задачи. Нужно детектировать еще абзацы и строки.
Иначе - символы не найду.

По поводу МЛ.

Мне МЛ - не помошник. Нужен код на императивном языке.
6 фев 19, 02:04    [21802296]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Х-ха, зато мне МЛ в помощь. Это самая натуральная исследов-ская задача. Если не считать того, что в распознавалках этим уже занимались.

Теперь более уверенно могу сказать, что просто так одним методом не обойтись. Даже в такой постановке.Здесь нет детерминизма. Выдумаете, почему никто не бросает сюда пустячный код? Преимущественно потому, что неумеют или отвыкли от исследовательских задач. Детерминизма не видят, либо по существу задачи, либо по предопределённости результата.

Конкретно, надо разделять области с сужественным преобладанием графики либо текста. Сперва на моделях. К примеру, как определяются на камеру номера авто?

Абзацы и строки.
Снова конкретика. В Радоне в центре основной вертикальный пунктир. Он разбит на 2 большие группы. Это и есть два больших абзаца, внутри них пунктирчики - строки. Но это могут быть не все строки, автоХаф это и показал, что не все строки понимамет. Догадываетесь, почему не все?

Так вот ранее я говорил о предположениях для существенно текстового фрагмента. Основная идея - чересполосица. Если шрифт одного размера, хоть и курьер, полосы периодичны. Если встречается немного мелкого или текст плывёт - квазипериод. В этом я вижу источник недетерминированности. Поэтому и интесно, как решали такое в ФР и КФ.

С абзацами полный абзац. Здесь хорошо, что они разделены воздухом. В наших прежних книгах абзац = красная строка, а длина красной строки может оказаться короче следующей.
Вот такое предварительное описание проблемки.
6 фев 19, 12:48    [21802618]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Абзацы - это уже ближе к некой кластеризации.
6 фев 19, 12:51    [21802623]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Приветствую! Вопрос по графике.
В общем пробовал вариант на ЯС. И, бл-я, знал, что придётся трахаться. Вариант пробный, в МЛ нормально работает и полутоновый показометр.
Здесь же результирующая часть как будто в ч/б,хотя значения занимают весь спектр, что видно в тхт-файле из куска, полученного в МЛ.
Сделал 1:1 как в МЛ, хотя числа могут оличаться на неск %, фигня.

Для простоты на рисунке наклонная линия под углом 18гр., пересечение с ОУ около 103.
Вокруг точки должен расходиться наклонный полутоновый "конус", но не расходится.
14 фев 19, 22:09    [21810017]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
...забыл вложить

К сообщению приложен файл (html.zip - 5Kb) cкачать
14 фев 19, 22:10    [21810018]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98, спасибо уже смотрю. Вот что у меня получилось.

Я так понимаю фильтр границ вы пропустили и подложили сразу отфильтрованное. Ну ОК. Это тоже норм.
Фильтр границ во много раз проще чем детектор направления.

Я с вашего позволения сегодня отвлекусь на каталогизацию фоток. А где-то с выходных начну смотреть
ваш код и потихоньку портировать его интересные части с JavaScript в Java.

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

Откуда:
Сообщений: 2446
Да, именно это получаю в МЛ. Вчера я наверное впервые по-бабски сорвался, клава достала, а тут ещё это ... на 64-й очень неудобно, МЛ на х32, и здесь 4 браузера, 2 дохромиумных + старенький ИЕ. Догадываюсь, что в этом дело, причём как раз хромиумный не знает что такое gray, однако знает blue, но зачем-то ругается на кроссориджин - это на локохосте, ИЕ - ещё чего-то не понимает, а, ещё в нетбинсе встроенный браузер тоже чего-то хочет, но сам нетбинс всю память занимает, а выполняет в 8 раз медленнее, в общем бардачок.
15 фев 19, 11:51    [21810416]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
В моём браузере видна только самые яркие точки в центре, а здесь я при отладке растянул их по горизонтали, просто утроил.

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

В моём же варианте детектирую прямые поближе к х=0 и пересекающие ось У в [-2Ny; 3Ny], при этом ещё и показывается на экране только для [0; Ny].
Промахи из-за подстановки Х в уравнение прямой можно уменьшить вывернув циклы наизнанку и уравнени х= (y - b) / tg(). Но тогда имеем котангенс и , след-но, проблемно детектировать горизонтали.

Это геморрой.

Поэтому полярные к-ты практичнее. А след-но как раз от "интересной части" останется только идея 3-х вложенных циклов, но даже границы циклов несколько иные, зато заведомо ограниченные.
15 фев 19, 12:19    [21810444]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Установил браузер ФФ, теперь рисует.
Небольшая галерея изображений в 2-х, если поместится или в 3 посылках.
Объяснений не пишу,т.к. только что написал очень много в блокноте, хотел сделать сэйв, новсё зависло. Ну а по вопросам - чё ж не ответить.

К сообщению приложен файл (MAIOR-multi.zip - 139Kb) cкачать
17 фев 19, 23:24    [21812335]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
следующее пытаюсь ... не прошло, будет 3 посылки.

К сообщению приложен файл (4sql.zip - 78Kb) cкачать
17 фев 19, 23:28    [21812346]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
последняя.

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

Откуда: loopback
Сообщений: 48022
exp98
В моём браузере видна только самые яркие точки в центре, а здесь я при отладке растянул их по горизонтали, просто утроил.

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

Я не спешу. Есть у меня графическая библиотечка. Она на 20% написана и остальное - разваленный
и недописанный код в состоянии вечного "TODO". Я ее начал писать в 2000x с перерывами на несколько лет.
В основе там лежит работа с цветом. И заложен фундамент для графических алгоритмов. Есть комплексные числа.
Кватернионы. Есть основы для работы с матричной алгеброй.

Распознавание направления я планирую портировать с JavaScript на Java. Я думаю это не будет сложно.
18 фев 19, 00:08    [21812412]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
последняя.

На картинке на фазовой плоскости видна такая полосатая спираль. Это я так понимаю
детектировано направление горизонтальных прямых под 0 градусов относительно OX ?

И еще. Вы пробовали сравнивать разницу Картинка -> Hough и Картинка -> Фильтр границ -> Hough?
Насколько получается лучше детектирование?
18 фев 19, 00:11    [21812418]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
https://hitech.newsru.com/article/15feb2019/nvidia
Нейросеть Nvidia научилась генерировать реалистичные лица людей

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

...

Теоретически наверно можно сгенерить нейросеть по готовой картинке.
Интересно что занимает больше места: картинка или нейросеть для ее генерации?
18 фев 19, 08:13    [21812492]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Dima T
https://hitech.newsru.com/article/15feb2019/nvidia
Нейросеть Nvidia научилась генерировать реалистичные лица людей

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

...

Теоретически наверно можно сгенерить нейросеть по готовой картинке.
Интересно что занимает больше места: картинка или нейросеть для ее генерации?

Перед нейросетями ставятся другие задачи. Быстрое принятие решений например.
А хранение информации - это не про нейросети.

Если говорить про способы хранения информации в биологии - то там очень многое основано
на аналоговой технике. А это вобщем-то очень далеко от современного It. Вернее сказать
It еще слишком мало знает об этой теме. Забавную цитату сказал Савельев. Буквально
- "те личности которые строят современный AI совершенно не имеют представления о том как работает
человеческий мозг". Вот такой вот факт.
18 фев 19, 10:47    [21812619]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Dima T
Интересно что занимает больше места: картинка или нейросеть для ее генерации?
Если есть хорошие закономерности. От картинки зависит. Так же, как и создание геометрч-х фракталов. Можно задать 10-ю парм-ми, можно 1000-ю и т.д. Как и трутайп с кривыми Безье, параметрчески, как и векторный SVG.

maton
...такая полосатая спираль. Это я так понимаю...
Да, угол к ОХ около 0, ось У смотрит вниз. Для себя я называю это позвоночником, а яркие штрихи позвонками. Каждый позвонок = 1 строка текста, уровень соответствует картинкам.
Аналогично в художественных изображениях отсутствует позвоночник. Там только косая "мышца", ширина к-рой определяется "углом зрения" ~45гр (в моей реализации).
Мои ограничения с дргуогой стороны позволяют игнорировать крутые tg()~ +-2-3 наклонные линии, отстоящие подальше от левого края.
18 фев 19, 12:24    [21812799]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Мои ограничения с дргуогой стороны позволяют игнорировать крутые tg()~ +-2-3 наклонные линии, отстоящие подальше от левого края.

Вот эту фразу я вообще не понял. Можете на картинке обрисовать где этот левый край и какие это крутые тангенсы?
18 фев 19, 12:41    [21812827]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

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

Надо выделять кластеры раздельно для текстов и растров.
"Преимущественное направление текста" находится по максимуму в позвоночнике. У позвоночника может быть характерный паттерн. Привёл паттерн отдельным рисунком.Он для того же рекламного буклета, только выполнен встроенным Радоном в МЛ. А там центрирование 0 в картинке, и синусоиды (т.е. полярные к-ты). В рез-те позвоночник кверху ногами, зато позвонки не косые, и даже суммарный их профиль (это тоже сглаживание) сохраняет максимумы и минимумы. Чего нельзя сказать про мою реализацию. Ввыше написал, что мой первый абзац более размытый и более косой.,сглаживание не поможет, и последнюю строчку 1-го абз автоматически распознать нет гарантии, и даже можно спутать с началом очередного, якобы, абзаца.
АвтоКорреляц-ная кривая невыраженно детектирует периодичность строк ~22пикс. (просто картинки уменьшены, но файл с числами у меня полный).
18 фев 19, 12:43    [21812836]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, левый край= ось У,
диапазон параметра ТАУ [-2Ny; 3Ny], tg()= +2, tg()= -3, Тангенс= отношению катетов.
луч, поведённый из прав-нижнего угла вверх под этим улом tg()= +2, пересечёт ОУ в т=-2Ny
аналогично, если вниз.
Так понятнее?
18 фев 19, 12:48    [21812850]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
а) к отсутствию "глобальной" выпуклой оболочки вокруг всего текста

Если речь идет о выпуклой оболочке вокруг абзаца - то я планировал ее искать фильтром гаусса + threashold + неким
фильтром детектором прямоугольников.
18 фев 19, 12:50    [21812853]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
mayton, левый край= ось У,
диапазон параметра ТАУ [-2Ny; 3Ny], tg()= +2, tg()= -3, Тангенс= отношению катетов.
луч, поведённый из прав-нижнего угла вверх под этим улом tg()= +2, пересечёт ОУ в т=-2Ny
аналогично, если вниз.
Так понятнее?

Давайте чуть позже я нарисую свою картинку а вы скажете ОК или не-ОК.
18 фев 19, 12:51    [21812855]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, обрисовать: на космическом рисунке есть несколько прямолинейных штанг 3 ил 4.
В принципе,в диапазон ТАУ их т.т пересечения с ОУ у всех должны попасть, а был бы наклон покруче к ОХ, не попал бы.
Правда из-за того, что на экране выведена только часть диапазона ТАУ [0; Ny], одна или более штанга на целевом постранстве, как бы, не детектирована, т.е. прога её как бы не замечает.
18 фев 19, 12:57    [21812873]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Ещё коммент.
Освежил в памяти картинку. Ну да, 2 самых крутых наклона штанг не видны, 2 других видны.

Космический рисунок расположен без сдвига как и другие, вертик. и гориз. шкалы по периметру явлются частью рисунка. В частности на полученном "рентгеновском снимке грудной клетки" проступают рёбра. Это следы детектирования чисел на вертик-й шкале. Протяжённость "рёбер" по диагонали означает одновременно и широкий спектр прямых и высокий диапазон их пересечения с ОУ.
18 фев 19, 13:13    [21812919]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
exp98
Протяжённость "рёбер" по диагонали означает одновременно и широкий спектр прямых и высокий диапазон их пересечения с ОУ.
широкий спектр наклона прямых к ОХ, походящих через каждое число, и широкий диапазон (параметр ТАУ) пересечения прямых с ОУ.
18 фев 19, 13:17    [21812932]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
портировать с JavaScript на Java. Я думаю это не будет сложно.
Конечно, это преобразование не сложнее поворота точки на угол. Я глянул в их сишный текст. Даже с учётом разных там оптимизаций и начальных проверок весь файл 7Кб.

Насчёт сравнения с Хафом. В самом начале сравнивал в МЛ на примере прямоуг-ка и эллипса. Разница там, как теперь я понимаю, по причине разных писателей и связана больше с представлением результатов.
Возможно, тонкая разница обоих методов тоньше разрешающей способности моих извилин, "в Радоне2 параметра, в Хафе счётчики ....". Для случая полярных координат - принцип ИДЕНТИЧЕН, реализация может разниться. Я уже высказывался, что этот Хаф хафнул у Радона ...

Просто в хафе можно проектировать на любое параметрическое криволинейное многообразие, необязательно на линейную гиперплоскость. На поверхонсть унитаза например Если заранее знать описывающие (в матем. смысле) параметры, ха-ха.
А истиный Радон должен быть линейным, иметь все объявленные св-ва, включая связь с фурье и т.п. Но нам эта связь не треб.

Лишь для проверки свойства для секущих прямых: прямая переходит в точку, точка - в прямую (с т.зр. математики). Реально же если как у меня, то в дискретике прямая - в конус, точка, цифирки, маленький шарик - в почти прямую (рёбра на "рентгеновском снимке").
18 фев 19, 14:57    [21813089]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Собака и монетки выглядят подозрительно похоже на фазовой диаграмме.
20 фев 19, 18:44    [21815723]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Обижаешь, Начальник! Принтскрин это ...

К сообщению приложен файл (public_html.zip - 49Kb) cкачать
20 фев 19, 21:16    [21815820]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

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

Идея логики.
// В исходном рисунке (цветном) выделить края в массив В(). Нарисовать новый рис рядом с исходным.
// В тот же В() записать преобразование радона-хафа с тангенсами. На том же месте рисовать новый рис.

Псевдокод.
pix= GetFile("имя.файла")
DrawImage(pix)
B[][]= Sobel(pix)
DrawImage(B[][])

  // return; // чтоб посмотреть только Sobel(pix), раскоментить эту строку
  // вместо возврата можно сделать паузу типа alert("Любуемся выделенными краями", 10000);

B[][]= RadoHough(B[][])
//B[3x + 0,1,2][]=B[x][] // утроение по горизонтали,т.к. ширина канвы 512, а угол 180*3 ~ 512
DrawImage(B[][])
end.
Такая была задумка.
Возможную ошибку прежде всего стоит искать в районе
B[][]= RadoHough(B[][])

Глазкамми ошибку не нахожу.
21 фев 19, 12:41    [21816191]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98, грязь мы зачистим. Это не страшно.

Вы пользуетесь sourceforge, github, bitbucket?
21 фев 19, 14:58    [21816446]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Ой, нет, увольте. Раз попробовал: в одном бабки, в другом региться - нэнавввижжу.
В МЛ те же рез-ты.
21 фев 19, 18:45    [21816759]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Везде бесплатно. Я не платил нигде.
21 фев 19, 18:51    [21816766]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Неважно, в ближайшиее же время у меня 2 варианта. Как дядя Гена, либо никак. В обоих случаях нафиг региться, тем более, что нэнаввижу.
21 фев 19, 19:05    [21816779]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
В предыдущей проге на вход надо было подать выСобеленный рис, в этом варианте по задумке нужен цветной (возможно, что не со всякой "палитрой").

Для bi-tonal картинки с которой я начал есть предположение что Собель вырождается в простой фильтр границ.

exp98
// В тот же В() записать преобразование радона-хафа с тангенсами. На том же месте рисовать новый рис.

Непонятно. Все таки вы реализовали радона? Я к тому что мне тяжелая артиллерия не нужна. Только-бы
детектировать 2 главных направления. Строки. И некая вертикальная линия абзацев. Дожны быть примерно
под 90 градусов.

Поэтому если есть возможность упростить Радона - ябы хотел упростить. У него слишком большой универсализм.
21 фев 19, 19:19    [21816788]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Как дядя Гена, либо никак.

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

Откуда:
Сообщений: 2446
Возвращаюсь к баранам.
Преобразование - самая лёгкая часть,но оно следует за этапом отделения графики от текста.

Сделал пробный МЛ-ный вариант (образец картинки приложен).
+
1) Составить ковариационную матрицу
2) убедиться, что характеристики регионов разнятся
3) вычленить регион(ы) графики и текста(ов) - проблема 1 (рисунки приложены)
3.1) глазками убедились,что всё по задумке
3.2) У= корень(диагональ) это СКО .... столбцов
3.3) посмотрели и убедились, что плоский график по задумке.
3.4) робастно сгладив, обнаружили 2(3,4,....) кластера (это отдельный метод) да и без сглаживания видно
3.4.1) проблема 1.1, графика может перемежаться с текстом,разделятьсялишь одной текстовой строкой ит.п.
3.5) Наконец выделили регионы.


Это пока на одном примере, а нужна репрезентативная подборка - проблема 2.

К сообщению приложен файл (covar.zip - 62Kb) cкачать
21 фев 19, 19:26    [21816793]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Мой радон-хаф (я их уже не отличаю) проще некуда, всё наверчено вокруг ур-ний у=кх+в, а лучше в полярных, тогда будет уCos()+xSin() и поворот оси для каждого угла. Тоже несложно, но объективно более трудоёмко, а я ленивый.

Метафора? нет, это его имя, судя по нику, (ну там ещё second name).

Перпендикуляры есть - макс точка вычисляется, остаётся её нарисовать в предположении, что имеем преимущественно текстовый контент, в МЛ пока всё.

Вот я обрисовал выше 2 стороны одной проблемы: кластеризация. Проблема в том, что для глазок всё очевидно, для автоматизма куча вариантов. Таково моё видение этого участка задачи. А на пальцах всё просто.
21 фев 19, 19:38    [21816805]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
Зря вы скриншоты игнорируете.
Есть идея сделать очередное удаленное управление (прямая передача по UDP), т.к. тимвьюер стал монополистом и просто беспредельничает в плане финансов. Хочу создать бесплатный аналог, желательно технически превосходящий.
Алгоритмы построения снимка на основе предыдущего снимка тут очень пригодятся.
21 фев 19, 20:44    [21816847]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Это а-ля удалённый рабочий стол виндовса? около 4-х лет за ним просидел. Так-то ничего, но в сочетании с удалённым дебилдером и удалёнными файлами жуткие тормоза.
А по сути если, то совсем не в направлении топика. Ближе к мпегу. Те капли, что сейчас из себя выдавливаю, экспромты. Не преувеличивайте мои, во всяк, возможности.
21 фев 19, 21:14    [21816862]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
exp98
Это а-ля удалённый рабочий стол виндовса?

Если очень приближенно, то да. Главная проблема пробиться через наты.
21 фев 19, 21:20    [21816864]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98, я в общей сложности от вас получил аж 6 архивов. И что теперь с ними делать?

4sql.zip
covar.zip
Hough15grad.zip
html.zip
MAIOR-multi.zip
public_html.zip


Трудно без версионного контроля. Мдя... Попробую понять где сорцы. И где актуальное.
22 фев 19, 02:16    [21816950]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Dima T
Зря вы скриншоты игнорируете.
Есть идея сделать очередное удаленное управление (прямая передача по UDP), т.к. тимвьюер стал монополистом и просто беспредельничает в плане финансов. Хочу создать бесплатный аналог, желательно технически превосходящий.
Алгоритмы построения снимка на основе предыдущего снимка тут очень пригодятся.

Есть бесплатный VNC. Лет 10 назад он уже был портирован с Linux на Windows и вполне себе работал.

Есть еще Radmin под Windows. Последний раз я его использовал во времена Windows2003/XP. Очень надежная
и нетребовательная штука.
22 фев 19, 02:25    [21816952]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Последние сорцы тут и тут.
html.zip (14-Feb-2019)
public_html.zip (20-Feb-2019)

Ревизия от 20-Feb не работает. Вобщем ничего не рисует.
22 фев 19, 02:45    [21816954]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
mayton
Есть бесплатный VNC. Лет 10 назад он уже был портирован с Linux на Windows и вполне себе работал.

Есть еще Radmin под Windows. Последний раз я его использовал во времена Windows2003/XP. Очень надежная
и нетребовательная штука.

Они не подходят, т.к. сервером является тот, кем надо управлять, а он за NAT`ом, т.е. без проброски порта туда не прорваться.
Собственно в этом основная проблема: юзер, к кому надо подключиться, должен выполнить для настройки сложные действия, значительно превышающие его ИТ-квалификацию.
22 фев 19, 07:20    [21816973]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Dima T
mayton
Есть бесплатный VNC. Лет 10 назад он уже был портирован с Linux на Windows и вполне себе работал.

Есть еще Radmin под Windows. Последний раз я его использовал во времена Windows2003/XP. Очень надежная
и нетребовательная штука.

Они не подходят, т.к. сервером является тот, кем надо управлять, а он за NAT`ом, т.е. без проброски порта туда не прорваться.
Собственно в этом основная проблема: юзер, к кому надо подключиться, должен выполнить для настройки сложные действия, значительно превышающие его ИТ-квалификацию.

Архитектурно твоя задача звучит как автоматизация проброски UDP за NAT. И я думаю что надо почитать в этом направлении.
Может тебе не надо разрабатывать свой удленный десктоп.
22 фев 19, 11:55    [21817167]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
Последние сорцы тут и тут.
html.zip (14-Feb-2019)
public_html.zip (20-Feb-2019)
Других и не загружал. Повторяю их различие. Более ранняя версия ожидает на входе собелённый файл. Версия от 20 фев. предполагает, что файл цветной либо полутоновый, и поэтому сперва выводит на экран его. Затем выделяет в нём края с маской (-1 4 -1) и дальше работает уже с этим изображением.
mayton
Версия от 20-Feb не работает. В общем, ничего не рисует.
mayton, Вы как ребёнок (что удивительно). Когда "не работало" у меня, то хотя бы левое изображение выводилось, а правое было в ч/б цвете. Использование другого брра вопрос решило. Но это же не Ваш случай.

Вы дали мне заготовку с выводами в консоль. Вы хотя бы в консоль заглянули? до finish добралось? Я думаю, что завершилось на onload.
Вы прекрасно знаете, где искать строку с именем файла-картинки. Такой файл есть в том же каталоге? я думаю, что нет.
22 фев 19, 19:27    [21817590]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Рекламное изображение с сегментацией дисторшнутого факса (был, кто ещё помнит такой).
Извините уж, там 800х600, меньше некуда.

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

Откуда:
Сообщений: 2446
И оставлю , пожалуй, остальные картинки и псевдокод, МЛ-ный вариант.
Выполняется отдельно для исходного и транспонированного изобр-я.
Варант автоматический (файл только задать надо, а потом сохранить картинки).
+
%%function runCAV_Vsections(sfile, sext)
%%%%%% Запускать как ф-цию:  clear all;close all; runCAV_Vsections('sfile', 'sext');

%%%%%% Запускать как m-file:
%% clear all;close all; sfile= 'c:\tmp\mix\ImgSampls\Fax-distor\fax1_distor.png'; sext= 'png';
    %%%%[A, map]= imread('c:\tmp\mix\Oval2\public_html\coins.png', 'png');
    %%%% B= single(255*edge(rgb2gray(A), 'sobel')); 

%% Загрузить и обработать рисунок
if strcmp( sext, 'bmp') || strcmp( sext, 'jpg') || strcmp( sext, 'png')
    [A, map]= imread(sfile, sext);
else
    fprintf(1, 'ERROR: Неизвестный тип файла: %s\n', sext);  return;  %% 1=stdout
end;
if length(size(A)) == 3
    %%C= A( (1:size(A,2)), (1:size(A,1)), (1:size(A,3)) ); A=[]; A= C;
    CVA= cov( single(rgb2gray(A)) ); 
else
    %%C= A((1:size(A,2)), (1:size(A,1))); A=[]; A= C;
    CVA= cov( single(ind2gray(A,map)) );
end;
  %%Gr= single(rgb2gray(A)); C=[Gr; zeros(1024-768, 1024)]; CVA=C;


%% Сгладить стат. характ-ки
h=15; dm=[]; dd=[];
dm=[]; p=length(diag(CVA)); for k=2:(p-1) if k<=h  hk=k-1; elseif k<=p-h hk=h; else hk=p-k; end;  dm(k)= sqrt(mean( reshape(CVA((k-hk):(k+hk), (k-hk):(k+hk)), length([(k-hk):(k+hk)])^2, 1) )); end;
dd=[]; p=length(diag(CVA)); for k=2:(p-1) if k<=h  hk=k-1; elseif k<=p-h hk=h; else hk=p-k; end;  dd(k)= sqrt(std(  reshape(CVA((k-hk):(k+hk), (k-hk):(k+hk)), length([(k-hk):(k+hk)])^2, 1) )); end;
t=0.15; my= dd*(1-t) + dm*(1+t); %%smooth( dd, 3,'rloess');
sb= edge(my, 'sobel', 1, 'vertical'); 
ind=[];nums=[]; ind= find(sb==1); nums= ind; %%nums()=nums();
clear nc; nc(1)=nums(1); cnt=1; bh=true; nc0=nums(1); for k= 2:length(nums)  if nums(k)-nc0>2*h+1  nc(cnt+1)= nums(k); cnt=cnt+1; bh=false; nc0=nums(k);  else if bh==false  nc0=nums(k-1); bh=true; end;  nc(cnt)= (nc0 + nums(k))/2; end;  end;


%% Принудительно притянуть крайние границы к краю рисунка
dln=length(nc); x= nc(1); y= nc(end); dh= h; %% h/2
if dln>2 
    nc(2:(end-1))= nc(2:(end-1)); 
    if (x < dh)  nc(1)= 1; end;
    if  (abs(y-size(CVA,2))< dh)  nc(end)= size(CVA,2); end;  
else
    nc(1)=max([x-dh, 1]); nc(end)= max([y-dh, 1]);
end;
clear dln, clear dh, clear x, clear y;


%% Рисовать
figure(2); imshow(CVA, []);
figure, plot([dm.' dd.' my.']); 
for k= 1:length(nc)  line( [nc(k) nc(k)], [1  max(my)] ,'LineWidth',1,'Color','green'); end;
figure, plot( sb);

figure, imshow(A,[]); for k= 1:length(nc)  line( [nc(k) nc(k)], [1  size(A,1)] ,'LineWidth',1,'Color','green'); end;
figure(2),            for k= 1:length(nc)  line( [nc(k) nc(k)], [1  size(CVA,1)] ,'LineWidth',1,'Color','green'); end;
S= edge(CVA, 'sobel'); figure, imshow(S, []);

Модератор: Просьба код форматированный давать. Убрал под спойлер чтобы разметку страницы не рвало


К сообщению приложен файл (Fax-distor.zip - 125Kb) cкачать

Сообщение было отредактировано: 5 мар 19, 17:46
5 мар 19, 16:00    [21825509]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Мне кажется что бочка - это не наш кейс.

Я бы в топике ее не рассматривал особо.
5 мар 19, 17:34    [21825629]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Я высказывал скепсис распознаванию как методу сжатия без потерь. Мой интерес просто в самом отделении текста от графики. А Ваш случай специфицирован достаточно расплывчато.
Даже книги могут быть похожи на этот. Книги могут иметь иллюстрации, посреди текста.
Книги по программизму чаще содержат большие вставки скринов. Скрин - часто есть смесь текста с графикой. Среди 6 вариантов, рассмотренных мною, есть и 2 таких скрина.

Кроме того это тоже пробный метод и без привлечения хафа. Просто у меня получился замкнутый круг. Чтобы повернуть лист, нужен хаф, но в скринах хаф сам по себе не отличит все рамки окна от текста, нужно распознавать графику. Круг замкнулся.

И только боле мене искусственный вариант - да и тот может давать сбои. Во вложении.

В инете рекламируют SWT. Достаточно друдоёмко для факультативной работы.

К сообщению приложен файл (Mior-2_2-5.zip - 127Kb) cкачать
5 мар 19, 18:27    [21825678]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Тема топика задана. Архивация.
5 мар 19, 20:24    [21825744]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
прошу прощения за внезапный up.

Тема на тостере проскочила https://qna.habr.com/q/729129

Мне кажется - интересная. Не просто разворот. Но еще и с перспективой.
10 мар 20, 22:12    [22096461]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Up. Ругаю себя за лень и прокрастинацию.

Вот недавно возникла задача шкурная. Надо посканировать старые семейные фотоальбомы.

Кидаю под сканер сразу пачку фоток. Стекло скользит. И после закрытия крышки некоторые фотки
оказываются развёрнутыми на градусов 5-15. Но работы много и я на такие мелочи не обращал
внимания.

Теперь надо сделать кадрирование, crop с разворотом тех фоток какие лежат криво.

Вот и вспомнил про нашу автоматизацию.
7 май 20, 10:48    [22128670]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
пример "в студию", попробую не полениться.
7 май 20, 13:38    [22128791]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
ОК. Чуть позже приаттачу.
7 май 20, 13:39    [22128792]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Вот. Большинство из них - вынуто из альбома и положено под сканер.

Мне надо извлечь все фотки в отдельные файлы разворотом чтобы линия границы
фотки была горизотнальной.

К сообщению приложен файл. Размер - 57Kb
9 май 20, 13:38    [22129828]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50842
mayton
после закрытия крышки

А ты её не закрывай. У фотографий бумага плотная, им крышка ни к чему.
9 май 20, 14:23    [22129862]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Не могу. Часть фотографий изогнулись дугой. И если их не прижимать то уголки будут чёткие а середина - не в фокусе.

И переснимать я уже не будут. Хлопотно. Пускай цифровые алгоритмы мне окажут помощь.
9 май 20, 14:26    [22129864]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Х-ха! лет 5 назад я тоже сканировал, тоже изогнутые и не с первой попытки удачное закрытие крышки. Так и оставил.
И этот - ещё неплохой результат. Те немногие фоты, к-рые печатал, вырезал либо отдельно переснимал. Потом уже подумал, что можно было стеклом заматерелым накрывать. О, да, я их группировал тематически - так что всё равно бы рядом находились.
Однако ж сколько у вас там военных, у нас меньше.

Будем посмотреть неторопливо.

Кстати, сегодня заснял авиацию, улетающую с Кр.пл, не успел настроить, дюже мелко получилось, словно как просто обозначил сам факт съёмки.

Сообщение было отредактировано: 9 май 20, 16:04
9 май 20, 16:00    [22129888]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Заметил что некоторые фотки имеют один и тот-же дефект.
Желтизна с краёв. Мне кажется я уже знаю фильтр как убирать этот дефект.
Надо только подобрать грамотно две точки. Одну на фотобумаге без дефекта
а другую точно такую-же по предполагаемому цвету но с дефектом.
9 май 20, 17:45    [22129914]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, я не забыл, я зарылся.
Делюсь помежуточной проблемкой.
Если вспомнить метод Радона, там ищутся максимумы в постранстве (угол, т.пересечения с У). Я задал 50 максимальных значений, получил такие кучки прямых (рис.) Из-зачего понятно - так EDGE() сработал. Хуже, что короткие отрезки вверху-справа не найдены. Пока не хочется искать 200-500 прямых.

Отчего их так много тоже понятно. Куча мелких точек почти в любом направлении из-за множества резких перепадов в исходнике.

Может есть не велосипедные методы как улучшить EDGE()? Комбинации сглаживанияс масштабированием ?.. Наложение EDGE на исходник с последующим повторным EDGE немного отсеивает шум, но и кусочки отрезков тоже.

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

К сообщению приложен файл. Размер - 25Kb
13 май 20, 23:31    [22132494]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Легче будет, если по центру всегда есть вертикальная пустая полоса. Или ещё что-нибудь обязательное.
13 май 20, 23:36    [22132495]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я уже стал сомневаться в самодостаточности Хафа.

Возможно он - вспомогательный. А основа - это детектор уголков фотографии.

Как с QR code.
14 май 20, 04:56    [22132552]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Его всегда относил к вспомогательным, он нужен для угла поворота. Навроде медианного фильтра. Отдельные шумы(прямые) нормально узнаются, когда массовые, всплывают дополнительные проблемы вроде этой.
-В отличие от матрикс-кодов здесь углы нечёткие.
-Конкретно здесь шикарный верхний-левый угол на всю страницу.
-Если на "серой бетонной стене" висит фотография.
-Если фото овальное как на загран.
В задаче желательны дополнительные упрощающие предпололжения (в дополнение к предобработке). Вообще говоря, интерактив намного проще.

Пюс-минус лапоть всё сегментируется и без Радона с качеством - вся эта тема в примерах.
Так, тихо. Возникла ещё мысль, на проработку остаток недели. Вот в этом и фигня чрезмерно общих постановок. Мыслей много, исследование каждой долгое.
Мысль такова: сегментацию начинать не сужением рамки, а изнутри кадра.
14 май 20, 13:12    [22132807]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

-Если на "серой бетонной стене" висит фотография.

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

Если что - могу подложить синюю или зеленую бумажку.
14 май 20, 13:20    [22132812]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Картинка с другого сайта.
14 май 20, 13:21    [22132814]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

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

Не напрягайся сильно. Я уже жену напряг вручную через XnView кропать фотки.
Так что автоматизация - вторична. Но будет все равно приятно насетапить какой-то
скриптик.

Я себе это вижу так.

Input:

*.png
- цвет хромокея

Output:
-*.cmd/*.sh - скрипты для image-magic для трансляции и вращения и кропа.
14 май 20, 13:24    [22132818]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton
Я могу гарантировать что крышка ...
И всё же, хочу услышать однозначно, можно ли рассчитывать на то, что всегда имеется вертикальный прямой разрез страницы надвое? или хотя бы наискось, но прямой.

Имел ввиду фотографию внутри фотографии, что затрудняет поиск угла.
Менять цвета не надо.
Магиком не владею.
Правильные углы в данном примере от 3,0 до 0,0 градусов. Угол 15 град - это уже не просто небрежность...
Шаг поиска мельче 0,25гр стоит ли?
И наверное правильно будет параметризовать 2-3 варианта скриптов на разные сложные случаи.
автор
Не напрягайся сильно
удобный случай развить предыдущие наработки. Хобби не напрягает особо, время есть, пока московейные начальники не захотят закончить с домашним арестом, там уже рулетка пошла.
14 май 20, 15:50    [22133007]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
mayton
Я могу гарантировать что крышка ...
И всё же, хочу услышать однозначно, можно ли рассчитывать на то, что всегда имеется вертикальный прямой разрез страницы надвое? или хотя бы наискось, но прямой.

Нет. Есть крупные фотографии (формата где-то А5) которы лежат произвольно. И в центре.
14 май 20, 15:53    [22133011]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

Правильные углы в данном примере от 3,0 до 0,0 градусов. Угол 15 град - это уже не просто небрежность...
Шаг поиска мельче 0,25гр стоит ли?

Здесь тоже ничего не могу сказать. Есть фотографии которые были обрезаны фото-резаком неровно.
Трапеции. Я ничего с ними не могу поделать. Для них критерий - хотя-бы они целиком уместились
в прямоугольник кропа.

Есть еще некоторые которые были окантованы фигурным резаком.
14 май 20, 15:56    [22133013]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

И наверное правильно будет параметризовать 2-3 варианта скриптов на разные сложные случаи.

Здесь согласен. Я могу хотя-бы разложить сканы по разным фолдерам.
Например

/SingleFoto - здесь будут только сканы крупных фоток формата А5.
/Quad - здесь будут 4 фотки по углам (я думаю таких будет больше всего)
/LeftBoundAlignedFoto - здесь будут россыпи мелких фоток которые кластеризованы возле левой границы сканера.
14 май 20, 16:02    [22133021]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

Магиком не владею.

Я меджиком пользовался от случая к случаю. В основном это выглядело так.
Меня просят по почте отправить 100 фоток. Почта лопается. Гооврит не могу.
Я смотрю - каждая фотка по 100 мегабайт.
Пишу скрипт с for который все фотографии делает scale 25% и фотки пролезают.

Вот пример кропа.

http://www.imagemagick.org/Usage/crop/#crop
14 май 20, 16:07    [22133025]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

Пюс-минус лапоть всё сегментируется и без Радона с качеством - вся эта тема в примерах.

И почему Радон?

Он на выходе выдает на 1 измерение больше. Хаф - плоскость. Радон - пространство выходных
данных. Разве вам проще работать с данными на 1 размерность выше?
15 май 20, 10:55    [22133522]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Насколько запомнил я, не-а. Так же 2 коорд-ты, только неск. иные. И он был первым, ещё до Революции. И у обоев угол наклона для прямой. Но второй к--той я в след за Радоном использую точку пересечения прямой с У.
А Хафчик (вполне технологично) сделал себе переменную, не помню уже. Короче говоря, ось у него переменная. Главное, что исчез запрет на вертикальное направление (где тангенс бесконечен и проблемы вблизи вертикали).

Ну а здесь достаточно угла < 45 град для горизонталей. А вертикали не искать либо искать на транспонированном изображении. В общем-то тоже ноу проблемс. Просто производительность ниже возможно.
И вопрос не простоты или сложности, а исторической сложимости - я пользовал Радона. И в том яваскрипте он же был.

А вспомнил отличие. Радон более общий. У него вааще гиперплоскость, а не только линейная прямая. Ну т.е. его можно применить в многомерном пр-ве для поиска более "тонких" подпространств. Отсюда и воспоминание о нескольких измерениях.

Сообщение было отредактировано: 15 май 20, 20:01
15 май 20, 19:57    [22133935]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Ничо не понял насчет Радона. Ну да ладно. Не моего уровня видимо ответ.

По поводу классификатора фоток. Возникла следующая идея.

Большая часть фоток - стандартны. Имеют размеры 9х12 или 12х18 итд.

Можно создать генетический алгоритм. Который будет просто искать 2 или 4 фотки на листе по известным
ему признакам. По возмущениям света на уголках. Эти уголки изначально можно задать как базовая
хромосома. И потом ее двигать в небольших пределах +/- 20% транляции или ротации или масштаба
и я думаю за 1000 итераций уголки фотки будут детектированы.

Для оптимизации скорости - самые первые итерации алгоритма можно делать не в исходном разрешении
(300 dpi) а в низком например в 75 dpi. А ближе к финалу алгоритма - просто увеличивать разрешение.

Это похоже будет на калибровку радио-технического прибора. Сначала выставляем экстремумы на
грубом сигнале. А потом детализируем сигнал и еще раз калибруем.
16 май 20, 12:48    [22134126]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Еще идея. Которая вобщем-то не моя. А просто развитие Хафа. Можно сразу детктировать
прямоугольники. Правда размерность пространства Хафа тоже увеличивается.

Для линий и кругов - 2 измерения.

Для эллипсов - 3 измерения (центр и какое-то соотношение двух радиусов)

Для прямоугольных рамок - 3 измерения (центр и пропорция)

Для прямоугольных рамок с произвольным вращением (ПРПВ) 4 измерения (центр и пропорция и некий угол фи на который повернута
рамка)

И я вангую что по ПРПВ потребует вычислений на несколько порядков больше т.к. нам уже надо искать
максимумы в 4х мерном пространстве. И здесь уже визуально нельзя оценить промежуточное качество
алгоритма т.к. количество данных просто несоизмеримо велико.
16 май 20, 12:55    [22134129]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Генетика и нервные сетки - не моё исполнительское амплуа. Только теоретически.

mayton
Еще идея. Которая вобщем-то не моя. А просто развитие Хафа. Можно сразу детктировать прямоугольники. Правда размерность пространства Хафа тоже увеличивается.
Да, можно. Только это уже частный случай Радона, где можно детектировать, вообще говоря, силуэт унитаза. Если он эффективно вычисляется, хоть бы и кривыми Безье. Хафчик тогда идёт лесом.
автор
И я вангую что по ПРПВ потребует вычислений на несколько порядков больше т.к. нам уже надо искать максимумы в 4х мерном пространстве. И здесь уже визуально нельзя оценить промежуточное качество алгоритма т.к. количество данных просто несоизмеримо велико.
Поэтому не хотелось даже пробовать. Правда я забыл, про стандартные размеры фотографий.

Но самое главное теперь в другом. С сего дня внешний монитор к недобуку не хочет работать. Вчера ещё только капризничал. Хорошо бы, если только монитор. Но если посыпался диск ССД ... А им обоим как раз время пришло. А МЛка только для 32х.

Размер экрана недобука планшетный A5, дюже мелко, малый объём инфы ...
Время покажет, а пока пауза. Пока только браузер.
16 май 20, 14:37    [22134177]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Генетика и нервные сетки - не моё исполнительское амплуа. Только теоретически.

Если вы хоть раз считали квадратный корень методом Ньютона - то значит уже кодили однослойный
и одно-синапсный нейрон.

Это вообще КМК не предмет принципа или веры. Это не церковь и не партия.

Так. Еще один способ ускорить полный перебор.
16 май 20, 14:45    [22134182]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
нет уж, на моём уровне надо знания применять, а не кодерствовать вновь и вновь. Пусть этим занимаются те, которые на словах легко хвалят возможности того и другого. Конечно же пару нейронов прогал на заре ... а что из инструментов тогда было доступно? ничего, кроме ЯП. Остальные же попытки были лишь имитацией нейроподобности. Время такого баловства прошло.
16 май 20, 18:29    [22134248]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Созрел у меня полный алгоритм.

И Хаф пригодится и генетика.

Бонус!. Я введу в скан-копии искусственный хромокей.

Я тестовую картинку обработаю в Gimp.
Просто для демо.

Бонус #2

И Хаф и поиск локальных максимумов в его пространстве и генерация рамок-хромосом - параллелится!
17 май 20, 08:49    [22134427]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
С хромокеем не везде получается. На некоторых альбомах я сканировал фотки
не вынимая их из подложки. Следовательно крышка сканера не видна
а видна картонная бумага подложки.

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

Откуда: loopback
Сообщений: 48022
Вот вариант с искусственым хромо-кеем.

Значит как он был получен. Пока вручную. Через редактор Gimp с помощью "Fuzzy Select Tool".
Кажется в Фотошопе он называется волшебная палочка.

В дальнейшем я смогу автоматизировать реплейсмент ярко-белых цветов с уровнем
чувствительности на контрольный синий RGB(00,00,FF) но только для таких фоток
которые были посканированы отдельно от альбома.

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

Откуда: loopback
Сообщений: 48022
Зачем нужен контрольный синий?

Если искать рамки фотографий на таком хромокейном варианте - то мы получаем готовую
fitnessFunction для генетики. А именно.

1) Чем больше не-хромокейных пикселов покроет фото-рамка - тем лучше. Метрика растет.
2) Если рамка покроет хромо-кейные пиксели - то функция фитнеса получит штраф. Отрицательную величини
контрольных синих пикселов.

Получается что максимум фитнес-функции будет достигнут только если мы детектируем две рамки.
Верхнюю и нижнюю и разместим их сотвественно. И нижней дадим легкий крен влево (премерно на 5 градусов).

Этот крен тоже надо включить в генетику как мутацию.
17 май 20, 13:06    [22134497]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 62839
Блог
mayton,

мне кажется, что для такого изображения уже не нужен генетический алгоритм, чтобы выделять рамки. А расширить потом его область применения на "без контрольного" может и не получиться.
17 май 20, 13:18    [22134500]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
По поводу Хафа. Эти самые 5 градусов могли быть взяты как исходные данные для например первой
тысячи хромосом оттуда. Куда их писать и в какую рамку не суть важно. Важно что Генетика нам
обеспечит сворачивание комбинаторной задачи в квази-линейную.

Для двух-рамочных хромосом я-бы предположил такой расклад.

[ Rect1 : { x1, y1, d1, k1, phi1 }, { Rect2 : { x2, y2, d2, k2, phi2 } ]


Здесь (x,y) - центр рамки. D1 - диагональ. K1 соотношение сторон. Например для фотографии 9:12
это соотношение может быть 3:4 = 0.75. Угол phi1 - это соотв вращение рамки.

Почему я взял диагональ и коэффициент вместо высоты и шириы? ХЗ? На данном этапе это не имеет
значения. Для генетики это будет вопрос вторичный. Если будет плохо - можно будет вернуться к другому
варианту.

Вот здесь Хафчик поможет. На его плоскости будут ярко выражены углы в 0 и 90 и 5 градусов. Там будут пики.
Эти пики надо детектировать и вбросить как исходные данные в первую тыщу хромосом. Именно вбросить.
Совершенно без изучения того куда. Здесь как раз механизм кроссовера поможет применить эти 5 градусов
именно в правлильную рамку Rect2 даже в том случае если первая тыща хромосом не имела таковой. А имела
ошибочно в Rect1.
17 май 20, 13:21    [22134502]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
softwarer
mayton,

мне кажется, что для такого изображения уже не нужен генетический алгоритм, чтобы выделять рамки. А расширить потом его область применения на "без контрольного" может и не получиться.

Мне все равно нужен какой-то метод последовательного приближения к решению.
Будет ли это спуск в ямку по градиенту или какой-то другой метод.
Трудность этой задачи в том что у меня не 1 точка - а много точек в четырехмерном
пространстве и есть между ними влияние. Тоесть 1 точка может временно погасить фитнес-функцию
для другой но потом снова ее вернуть обратно. Если изначальный расклад был выбран неправильно
(например большая рамка накрыла весь лист). Минимизировать эту большую рамку уже нельзя плавным
образом. Нужен прыжок через овраг фитнес-функции.
17 май 20, 13:25    [22134504]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 6017
mayton,

Алгоритм Левенберга — Марквардта
17 май 20, 16:14    [22134576]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
mayton
С хромокеем не везде получается. На некоторых альбомах я сканировал фотки
не вынимая их из подложки. Следовательно крышка сканера не видна
а видна картонная бумага подложки.

Картинка с другого сайта.

не пробовали реализовать такое: неск.раз сканировать одну и ту же фотку, а потом с разных фоток собрать самые яркие пиксели?
17 май 20, 16:59    [22134594]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Не понял. Зачем несколько раз?
17 май 20, 17:13    [22134598]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Алексей Роза, ТЗ другое, отчасти игровое. Не одна фотка, а несколько на одном скане. + к этому автору лень лишний раз сканировать, но не лень сколь угодно долго разрабатывать автоматизацию.
Если уж и брать макс, то в преобразованном пространстве. Только зачем, если существуют кластеризации?
17 май 20, 17:51    [22134613]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я действительно сканировал каждый альбомный лист 2 раза. Лист больше границ сканера.
И полюбому либо 2 верхние либо 2 нижние фотки - не в фокусе. Тоесть я руками придавливаю
середину альбомного листа к стеклу. И при этом упираюсь верхом альбома в упор сканирующей рамки.
Делаю 1 копию. Потом - тоже самое - но делаю упор к нижней рамке сканера.

Но слабый фокус на загнутых листах - это меньшая проблема которая меня беспокоит.
После автоматизации разрезки - мне останется только поудалять дубликаты. А я это
сделаю в ручном режиме легко.
17 май 20, 17:55    [22134615]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Я добавлю, что именно 2 последних примера легко режутся вертикально пополам методом гистограмм. После чего даже Радон справляется + небольшие эвристики насчёт краёв страницы. Вот только барОчные рамки порежутся.

И ещё как общее дополнение. Можно представить расположение фот будто в клетках таблицы. Сколько фот в каждом столбе можно пытаться определять вертикальным Радоном - конкретно, сколько кластеров вертикальных линий получится в клетке. Но это тоже требует роверки.

А насчёт простоты с генетикой ничего сказать не могу, сомневаюсь я в простоте.И коечно нужен движок.
17 май 20, 18:14    [22134619]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я понял почему я не могу начать Хафа.

1) Я так и не определился с системой координат. Допустим у меня есть тестовая картинка (lena.png). в пикселах (512 : 512)

Система координат - левая. Ось OX - смотрит вправо. Ось OY - смотрит вниз. (Как у растровых изображений).

Система хафа. По горизонали отложен угол фи (φ) в диапазоне от 0 до Пи (π).
По вертикали - радиус (расстояние от центра до прямой в полярных координатах.
Радиус берут равным диагонали картинки. Корень из 512.

Но в некоторых источниках и видосах по вертикали берут диапазон отрицательных радиусов Ро (ρ)

Зачем? В какиз случаях мы можем выйти в отрицательный радиус? Ведь уравнение в полярных координатах
его просто сводит к противоположному углу.

2) Область допустимых значений Хафа? Весь квадрат используется?

3) Как рендерить аккумуляторы Хафа? В некоторых статьях - ведут учёт количества пикселов вращением прямой.
В некоторых видео (с шикарной оптимизацией по скорости) просто считают что каждый пиксел исходного изображения
это - синусоида на Хафе. Чел мышкой рисует по исходной картинке и (совершенно очевидно что без расчета
вращенеим прямых) на Хафе рисуется множество синусоид с накоплением.

Рисование синусоид меня больше привлекает. Там нет нудного подсчета. Больше автоматических действий.

3) Нормализация. Сколько брать под аккумулятор Хафа? int? float?

Аппрувните кто-то. Я уже заколебался.
17 май 20, 18:37    [22134624]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
mayton

Рисование синусоид меня больше привлекает. Там нет нудного подсчета. Больше автоматических действий.

Я дополню. Если на Grayscal bitmap (256 дискретных отсчетов) накапливать энергии синусоид
то велика вероятность что я быстро выйду за предел этого диапазона так и не найдя локальных
максимумов. Плоскость Хафа сожмется сверху и будет пологой "полочкой" для измерений.

Тут есть вариант - отказаться от рисования синусоид и перейти к матрице вещественных чисел
flota (32 bit) или попробовать картинку более высокой разрядности (PNG-48bit) но я не знаю
поддерживает ли javax.imageio этот формат и как я смогу оценить визуально результат этой работы.

С графическим редактором было-бы просто на первых порах двигая цветовые кривые и контраст
просто смотреть такие малые величины в условиях разрядности например 16 бит на 1 цветовой канал.
18 май 20, 12:38    [22134939]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton,
пп.1-2) Да.
4) как нравится, главное не забыть потом, что шаг реального угла нужен дробный.
3) Думать нехота. Ну вот нафига хаф, если есть Радон (угол и т. пересечения прямой с У) - и нет вопросов.
Рендерить? От же ж можно простоё представление жаргоном запутать до невозможности. Есть 2-мерное плоское пр-во: угол и радиус. Евклидово даже. Рисуем в нём мелкую сетку. Для каждого узла сетки суммируем счётчики. И т.д. Получилась поверхность на плоскости. Синусоиды сами получатся. Рендери как нравится.
автор
В какиз случаях мы можем выйти в отрицательный радиус?
Для меня новость. Может там очепятки или м.б. речь шла типа X*Cos(тупой_угол)? Прямая м.б. параллелно побочной диагонали матрицы, тогда тангенс наклона <0. Если же || главной диагонали, то тангенс её наклона >0, но куда смотрит радиус вектор? Проекция его на Х отрицательна. Может про это?
автор
Радиус берут равным диагонали картинки. Корень из 512.
Тоже новость. прямая может порходить в дальнем углу. Конечно же Корень из гипотенузы, именно диагональ. Последнюю точку можно не включать))
18 май 20, 19:11    [22135247]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

Рендерить? От же ж можно простоё представление жаргоном запутать до невозможности. Есть 2-мерное плоское пр-во: угол и радиус. Евклидово даже. Рисуем в нём мелкую сетку. Для каждого узла сетки суммируем счётчики. И т.д. Получилась поверхность на плоскости. Синусоиды сами получатся. Рендери как нравится.

ОК. Я понял что все равно. И я понял в чем моя беда. Я уже сейчас думаю об оптимизации. Как-бы меньше считать.
Я-бы вышел на синусоиды или на крутящиеся как пропеллер прямые в любом случае. Просто есть сухая теория
которая верна в любом случае. И есть Java, которая все таки может быть не так быстра в процессинге графики
и не параллелится сама по себе как OpenMP.
18 май 20, 19:14    [22135249]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, сочувствую. Это результат желания сэкономить.
автор
Тут есть вариант - отказаться от рисования синусоид и перейти к матрице вещественных чисел flota (32 bit)
я сразу перешёл на double.
18 май 20, 19:19    [22135254]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
А float - это отсылка к этому топику https://www.sql.ru/forum/1325196/nvidia-cuda-vs-radeon

OpenCL не умеет double считать. Впрочем это просто инфа по некому состоянию аппаратного
обеспечения GPU в прошлом. Может уже умеет? Да только я не рьяно слежу на апдейтами.
18 май 20, 19:24    [22135260]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
На всяк на заметку.
Визуализация нужна токмо для отладки. Попытки заменить в рабочей проге вычисления матриц рисованием из фреймворка - путь не совсем в нужную сторону. Хотя ввчера только видел в продажах блочёк заместо монитора, эмулирующий последний в случае ненадобности.

Нахождение прямых. Независиом от того, каким способом задавать прямую. Редка когда вычисление попадёт в целые точки на экране (или, что то же самое, в матрице изображения). Если не использовать варианты на тему ближайшей точки, то будет получаться много коротких отрезков, к-рые ещё надо уметь склеивать, чтобы убедиться, что они часть одной прямой.
20 май 20, 12:33    [22136289]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Вот и я же хотел уйти от процесса подсчета пикселей. Но ценой увеличения разрядности
поверхности Хафа. Тоесть к примеру на картинке 512 на 512 пикс изображение.
С порогом в 0.5 от яркости я детектировал там условно половину белых. Это будет
512 * 512 / 2 = 2^9 * 2^9 / 2 = 2^17
Короче примерно 128 тыщ пикселов. И для каждого из них я планирую швырять
по 1 синусоиде. Тоесть 1 аккумулятор Хафа должен иметь запас емкости чтобы
нормально хранить счетких без переполнения или без эффекта квантизации сверху.
20 май 20, 12:44    [22136297]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1543
mayton,

Можно в двух словах, что вы хотите сделать?
20 май 20, 13:00    [22136306]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я делаю то что уже тыщу раз реализовано в OpenCV и МатЛабе.

Вот такой я загадочный человек. Надеюсь не осуждаете?? В форуме
я видал и более бесполезные задачи.
20 май 20, 13:55    [22136356]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
А я делаю, что ещё недавно раз 30 делал. Вот в 31-й раз потрудился на маленьком экранчике.
- Разрезал фото-01 вертикально автоматически, x~293. Вообще я планирую в будущем сегментировать вплоть до отдельного кадра, вычищать его, а затем начинать 2-й проход уже без него.
- 30 максимальных значений в пространстве Радона с шаггом по углу 0,25 гр, для сравнения:
+
 29.0000   30.0000  193.0000   28.0000  464.0000  194.0000
       0   -0.2500         0    0.2500         0   -0.2500

195.0000  196.0000  239.0000  195.0000  238.0000  192.0000
 -0.5000   -1.0000   -0.5000   -0.7500   -0.2500    0.2500

240.0000  239.0000   30.0000   31.0000   31.0000  196.0000
 -1.0000   -0.7500   -0.5000   -0.5000   -0.7500   -0.7500

196.0000   28.0000  197.0000   21.0000   22.0000  463.0000
 -1.2500    0.5000   -1.7500    0.5000    0.2500    0.2500

 23.0000  197.0000  204.0000  465.0000  203.0000  204.0000
       0   -1.5000   -0.7500   -0.2500   -0.5000   -0.5000
приведены пары координат (h, fi), где fi=угол наклона прямой к оси Х,
h=ордината пересечения прямой с У. Счётчики упорядочены по убыванию.

-картинка.

К сообщению приложен файл. Размер - 16Kb
20 май 20, 18:40    [22136616]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Хм. А вертикальные линии?
20 май 20, 19:07    [22136636]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
а было в ТЗ? ))

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

Сообщение было отредактировано: 20 май 20, 19:15
20 май 20, 19:13    [22136644]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Кстати, когда установлено, что между горизонталями ровно 1 кадр, можно переходить на цветную канву и там итерационно начинать уменьшать рамку.
20 май 20, 19:27    [22136653]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98, ничего не могу сказать насчет ТЗ. Нет никакого ТЗ.

Есть россыпь фоток. Образцы я приложил. Могу еще приложить пяток разных чтоб
была понятна глубина всех глубин.
20 май 20, 21:01    [22136712]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Да не надо пока, глубины описаны выше словесно.
Меня мучает шкура неубитого медведя. Я пока не представляю, в случае окончания, на чём скрипт будет сделан и кем. Сейчас отдельные пробы на 100 строк. Потом всех строк >300 точно наберётся. А на чём-либо другом >1000 будет - вообще-то это попотеть, если переводить. Не на яву ведь...
20 май 20, 23:32    [22136796]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1543
mayton
Вот такой я загадочный человек. Надеюсь не осуждаете??

Я тоже люблю велоразработку.
21 май 20, 04:34    [22136827]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Я пока не представляю, в случае окончания, на чём скрипт будет сделан и кем. Сейчас отдельные пробы на 100 строк. Потом всех строк >300 точно наберётся. А на чём-либо другом >1000 будет - вообще-то это попотеть, если переводить. Не на яву ведь...

Java.

Рассматриваю некоторые варианты на С под OpenCL для оптимизации скорости (1-Хаф, 2-Детектор попадания в хромокей).
Но это уже потом. Как будет время.
21 май 20, 11:15    [22136941]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Задача такая комплексная что я пожалуй нарисую структурную картинку как я это себе
вижу. И по отдельным пунктам создам отдельные топики. Генетика там.
21 май 20, 11:20    [22136950]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Вот. По уродски получилось. Не знаю как описать формат выходных данных.
Но наверное для этого уровня диаграмм это норм.

Картинка с другого сайта.

+
И сорцы для диаграммки.
@startuml
start
  fork
    :recognize_and_fill_chromokey;
  fork again
    :generate_HoughSpace;
  end fork  
  repeat
   :generate_GeneticPopulation;
   :filter_fitness;
  repeat while (fitnessNotSuccessfull)
@enduml

21 май 20, 16:40    [22137157]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton, в МЛ тоже работает некая генетика. На пробу тамошний простой пример действует.
Есть ещё там какой-то АПИ-интерфейс с явой. Не смотрел, не интересно.

crutchmaster
Я тоже люблю велоразработку.
...но только на расстоянии?
21 май 20, 18:38    [22137248]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Поразмыслил. Генетика не взлетит в том варианте в котором я хочу.
В java (в том что я собираюсь использовать) надо делать большое количество
скалярных умножений одних картинок на другие.

Чтобы посчитать 1 фитнесс функцию для хромосомы мне надо умножить
скалярно хромокей на расстановки рамок. Для листа А4 в разрешении 300 dpi
это большой объем вычислений. Здесь нужно какраз подключать нативные
штуки (С++/OpenMP или спец-либы для графики). А таких хромосом рандомно
надо нагенерить миллионы чтоб хотя-бы в 1 поколении была хорошая выборка.

Тоесть функция фитнеса должна быть легко-вычислима. А у меня получается
- очень тяжело.

Есть направления как это обойти. Можно понижать разрешение и оперировать
в 150 и 75 dpi на 1 генерации хромосом. Но это какая-то странная надстройка
которая не ложится в Генетику гладко и я пока это отложу.

Скороее всего мне пригодится Генетика + Градиентный спуск в совокупности.

Но над этим надо думать.

Поэтому пока я откладываю эту задачку на неопределенный срок.
27 май 20, 10:39    [22140342]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Чисто случайно нашел статью на хабре

https://habr.com/en/company/mailru/blog/453872/

Не совсем по теме разворота фотографий. Но тут - тоже речь идет о ретуши.
27 июн 20, 23:09    [22158425]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Только что посмотрел хабр по ссылке. Тяжёлое впечатление.
Отчасти перекликается с соседней темой про Литературное программирование. Похоже, что автор занялся именно им((
Одновременно оно и как пример того, что не стоит такие статьи отдавать на откуп хоть и "исследователю", но всё же программисту. Жуть берёт конкретно от того, что автор даже если не спешит похвастаться, то ... нет, не косноязычен ... Жуть берёт от обилия терминологии, высосанной из конкретного программного пакета. Из-за этого вникать глубоко в суть не стал, искал объяснения принципов на родном мне языке. Увидел ровно 1 такой: предположение, что мусор должен занимать существенно меньшую часть площади. Хорошая новость))
Раньше ядумал, прежде чем сесть писать,надо очертить круг потенциальных пользователей будущей писанины. Неужели такой уровень подачи теперь у всех прогеров? Не стал портить ему малину в комментах, пиши ещё, дорогой исследователь-программист.
3 июл 20, 16:22    [22161745]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Просто он публицист. Любит печатное слово.
3 июл 20, 16:57    [22161763]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Понятно, 3 в 1, или, как раньше говорили, многостаночница. А если публицист, то явно начинающий.
3 июл 20, 17:30    [22161778]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Хабр явно испортился. Вместо интересных статей как 2000м - сейчас там пишут в основном журналисты и графоманы.
Информации мало. Много каких-то пустых восторженных фраз. Эта миграция в англо-язычный сегмент с одной
стороны сделала ресурс более широким. А с другой стороны - он перестал быть интересным. А просто стал новостным.

Мне больше импонировал стиль таких ресурсов как CITForum, Algolist
- http://citforum.ru/
- http://algolist.ru/

Хотя и сейчас можно найти интересные статьи но они в основном датируются до 2010 годом.
3 июл 20, 18:35    [22161792]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Здесь я быстро угадал что слева фотография раскрашена дизайнером-человеком.

+
Картинка с другого сайта.


Только человек мог знать что красный крест на сумке - именно красный. Сколько уровней понимания
и классификации должна была априори иметь сеть чтобы определять что на фотографии - полевой медик
и что прямоугольный узор на сумке - это не случайный шум а символика.
3 июл 20, 20:06    [22161841]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
mayton
Здесь я быстро угадал что слева фотография раскрашена дизайнером-человеком.

Только человек мог знать что красный крест на сумке - именно красный.

ИМХО просто убрали нижнюю часть спектра (красный), возвращать сложнее, серый не везде бывший красный.
3 июл 20, 20:52    [22161855]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
зато у него под большим пальцем почему-то сумка покраснела...
ИИ в кач-ве художника то ещё развлечение:

Студия Артемия Лебедева выдавала нейросеть за дизайнера
Студия Артемия Лебедева рассказала, что разработала «искусственный дизайнерский интеллект» для работы над уникальными логотипами и создания айдентики на их основе. Нейросеть назвали «Николай Иронов».

Дизайнеры «больше года» выдавали искусственный интеллект за удалённого сотрудника и никому из клиентов правду не раскрывали. О проекте знала только «изолированная команда» внутри студии. Так компания «получала объективную обратную связь, не подверженную влиянию предрассудков о генеративном дизайне».

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

Он способен создавать действительно новое, предлагая удивительно смелые и неожиданные идеи. Это важное событие в истории отражает момент начала массовой коммерческой автоматизации творческих процессов.
В портфолио, страницу с которым студия создала для «Николая Иронова», за год опубликовано 17 проектов. Это работы для видеоблогеров, например, Руслана Усачева и Юрия Хованского, кафе, баров, приложений и других брендов. Всего, по данным студии, нейросеть выполнила более 20 коммерческих проектов.

Все работы «Иронова» относятся к программе «экспресс-дизайна», которая предполагает, что студия не обсуждает с клиентом результат. Услуга стоит 100 тысяч рублей за работу.

+
Блогер Юрий Хованский
Картинка с другого сайта.
«Полированный бетон» — компания, делающая бетонные полы
Картинка с другого сайта.
Крафтовое пиво «Пилз»
Картинка с другого сайта.
Пиар-агентство «Взрывной пиар»
Картинка с другого сайта.



Сообщение было отредактировано: 3 июл 20, 20:52
3 июл 20, 20:54    [22161857]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
Алексей Роза
ИИ в кач-ве художника то ещё развлечение:

Дизайнер в качестве художника тоже страшен, но намного дороже
3 июл 20, 21:03    [22161865]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Да я подписан на блоги Артемия.

Собственно тут сенсации нет. Если очень долго смотреть в рандомные картинки - можно что то наковырять.

Но это не НС. А ГА
3 июл 20, 21:06    [22161867]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
Dima T
Дизайнер в качестве художника тоже страшен, но намного дороже

ну лого всё таки ближе к дизайнерам
а вообще студию после такого можно сжигать нахой

Сообщение было отредактировано: 3 июл 20, 21:07
3 июл 20, 21:09    [22161868]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
mayton
Да я подписан на блоги Артемия.

Картинка с другого сайта.
3 июл 20, 21:11    [22161869]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Dima T
Member

Откуда:
Сообщений: 14886
Алексей Роза
Dima T
Дизайнер в качестве художника тоже страшен, но намного дороже

ну лого всё таки ближе к дизайнерам
а вообще студию после такого можно сжигать нахой

Они далеко ушли от здравого смысла, видел дизайнерские ремонты квартир за много денег... Мне там даже посрать неприятно..
3 июл 20, 21:14    [22161871]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
мне вот неприятно срать в таком месте, на золотом унитазе, а кому-то нравится
Картинка с другого сайта.

Сообщение было отредактировано: 3 июл 20, 21:36
3 июл 20, 21:37    [22161882]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Алексей Роза
мне вот неприятно срать в таком месте, на золотом унитазе, а кому-то нравится
Картинка с другого сайта.


И зачем тут это?
3 июл 20, 21:44    [22161884]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
мы обсуждаем дизайнеров. Это очень важно.
картинка померла. вот:
+
Картинка с другого сайта.
4 июл 20, 08:48    [22161959]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Алексей Роза.

Я не понял тот взгляд с прищуром. Возможно там был какой-то упрёк? Или неодобрение?
4 июл 20, 11:31    [22161987]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
подозрение
4 июл 20, 12:15    [22161995]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
exp98
Member

Откуда:
Сообщений: 2446
Мне одному кажется, что тема круто повернула?
Хоть меня и обвиняюют, что якобы часто даю бессмысленные посты, но, полагаю, что делаю это эстетично и не страдаю мстительностью. Уж не узнал ли Алексей себя в "многостаночнице" и решил погадить в теме?..
4 июл 20, 12:36    [22162001]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
какой ещё теме? архивариус это тема?
mayton
2) Визуализация.. Я - большой фанат научной графики и визуализации идей.

в итоге мы пришли к ИИ, и на что он способен в плане графики/искусства.
начали сравнивать с человеческими дизайнерами.
всем радостно и прельстиво.
а вот ты тут оффтопиш

Сообщение было отредактировано: 4 июл 20, 14:42
4 июл 20, 14:44    [22162040]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я рассуждаю так. Если мы оффтопим, сохраняя при этом тренд Программирования
то с точки зрения модератора - всё нормально.

А тут.... Сидят себе 2 ботана. И уже 12 страниц говорят про нейросети и ГА. Тишь да гладь.

Вообще. Сама по себе идея закрытия топика обычно идет от нарушения. Тоесть если есть
какая-то жалоба. Или есть общественное возмущение.

Иногда некоторые мемберы целенаправленно шатают топик. Забрасывают порно-картинки.
Политику. Или просто вызывают споры вокруг личностей. Тогда уже модератор закрывает
тему. Просто чтоб сохранить определённый профиль и integrity. В этом смысле модераторы к примеру
stoackoverflow - жестоки и беспощадны. Там - вообще не забалуешь. Дума... как говорицца - не место
для дискуссий. Только ответ на вопрос. Голосование. И решение какой ответ был полезен.

Вот такие пироги.
4 июл 20, 18:54    [22162119]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
у стека своя жизнь. Кто хочет стек, те сидят на стеке.
А у вас свои проблемы. Вы не баните откровенных троллей, которые засирают тему бессмысленными сообщениями и провоцируют на срач.
Вместо этого хлопаете тему?
4 июл 20, 21:16    [22162158]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Алексей Роза, оглянись вокруг. Мир - сложен и интересен. И в нем тысячи тем для дискусий.

Не трать свою жизнь на унылое переживание одного и того же. В противном случае такая
увлеченность привет тебя к навязчивым идеям и к медикаментозному лечению себя самого.
А зачем тебе это надо?
4 июл 20, 22:23    [22162177]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый архивариус  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 557
Модератор: Бан 3 дня за грубость и мат


Сообщение было отредактировано: 7 июл 20, 07:48
4 июл 20, 22:35    [22162187]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8 9 10 .. 12      [все]
Все форумы / Программирование Ответить