4

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

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

У меня нет конкретного результата - я просто ищу что-то более интересное, чем значение по умолчанию. Предложения?

+0

Когда вы говорите генетический алгоритм, который «генерирует изображение, соответствующее образцу образца», что вы имеете в виду? Вы имеете в виду алгоритм, который всегда генерирует то же изображение, на котором он был обучен? Если да, то есть ли такое сжатие? (В противном случае в чем смысл?) –

+0

Да, вы снабжаете «целевое» изображение, и оно оценивает каждого человека на близость к изображению. Дело в том, что это демонстрация - она ​​не предназначена для обеспечения сжатия или какой-либо другой конкретной цели. –

+0

Извините, я до сих пор не понимаю - какие здесь люди? Другие, изначально шумные изображения? Или отдельные пиксели в одном изображении? –

ответ

3

Предполагаю, вы говорите о чем-то вроде Roger Alsing's program.

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

Сравнение по пикселям может быть дорогостоящим для любых, кроме небольших изображений. Например, используемое изображение размером 200x200 пикселей имеет 40 000 пикселей. С тремя значениями на пиксель (R, G и B) это 120 000 значений, которые необходимо включить в расчет пригодности для одного изображения. В моей реализации я масштабирую изображение перед выполнением сравнения, чтобы было меньше пикселей. Компромисс - это слегка уменьшенная точность развитого изображения.

При исследовании альтернативных функций фитнеса я столкнулся с некоторыми предложениями использовать YUV colour space вместо RGB, так как это более тесно связано с человеческим восприятием.

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

Помимо этого, вы находитесь в сферах компьютерного зрения. Я ожидаю, что эти методы, основанные на извлечении признаков, будут более дорогими для каждого изображения, но они могут быть более быстрыми в целом, если они приводят к тому, что для достижения приемлемого результата требуется меньшее количество поколений. Возможно, вам захочется исследовать библиотеку PerceptualDiff. Кроме того, в this page показан код Java, который может использоваться для сравнения изображений для сходства на основе функций, а не пикселей.

+0

Ага, это было! Благодаря! –

0

Я не видел такой демонстрации (возможно, вы могли бы связать ее). Но пара протои-идей из вашего описания, которые могут вызвать интересный:

  • Три разных алгоритма, работающих параллельно, возможно, RGB или HSV.
  • Движение, поворот или иное изменение целевого изображения во время пробега.
  • Фитнес, основанный на различиях контрастности/значения между пикселями, но не зная фактического цвета.
  • ... затем «премьер» один пиксель с правильным цветом?
1

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

Реализация такой меры в программном обеспечении, безусловно, нетривиальна. Google «Модель человеческого зрения», «показатель перцептивной ошибки» для некоторых отправных точек. Вы можете обойти проблему - просто представляйте изображения кандидата человеку для выбора лучших, хотя это может быть немного скучно для человека.

+0

Вот почему я сказал «ближе», а не «идентичен». Там должно быть что-то, что лучше, чем сравнение по пикселям, но проще, чем реализация ИИ. :) –

+0

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

+0

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

0

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

Моим наивным подходом к этому было бы обучение распознавателя паттернов на нескольких изображениях, каждый из которых генерируется из целевого изображения с одним или несколькими преобразованиями, применяемыми к нему: например. повернулся на несколько градусов в любом случае; перевод нескольких пикселей в одну сторону; разные масштабы одного и того же изображения; различные размытия и эффекты (маски свертки хороши здесь). Я бы также добавил некоторый шум случайности к каждому из изображений. Чем больше образцов, тем лучше.

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

Как только вы научитесь распознавать паттерн, вы можете указать его на изображения популяции GA и получить скалярную оценку из распознавателей.

Лично мне нравится Radial Basis Networks. Быстро тренироваться. Я бы начал с слишком большого количества ресурсов и сократил их с помощью анализа основных компонентов (IIRC). Выходы могут быть просто мерой взаимопонимания и мерой несходства.

Последнее, независимо от того, к чему вы идете - не могли бы вы блог об этом, опубликовать демо, что угодно; сообщите нам, как вы это сделали.