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

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

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

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

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

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

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

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

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

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

Бонус #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Откуда: loopback
Сообщений: 47948
По поводу Хафа. Эти самые 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
Сообщений: 47948
softwarer
mayton,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Откуда: loopback
Сообщений: 47948
Вот и я же хотел уйти от процесса подсчета пикселей. Но ценой увеличения разрядности
поверхности Хафа. Тоесть к примеру на картинке 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

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

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

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

Вот такой я загадочный человек. Надеюсь не осуждаете?? В форуме
я видал и более бесполезные задачи.
20 май 20, 13:55    [22136356]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 9 [10] 11 12   вперед  Ctrl      все
Все форумы / Программирование Ответить