Полагаю, вы говорите о чем-то вроде программы Роджера Алсинга .
Я реализовал версию этого, так что я также заинтересован в альтернативных функциях фитнеса, хотя я подхожу к этому с точки зрения улучшения производительности, а не эстетики. Я ожидаю, что всегда будет какой-то элемент «затухания» из-за характера эволюционного процесса (хотя настройка эволюционных операторов может повлиять на то, как это выглядит).
Попиксельное сравнение может быть дорогим для всего, кроме маленьких изображений. Например, изображение размером 200x200 пикселей, которое я использую, имеет 40000 пикселей. С тремя значениями на пиксель (R, G и B) это 120000 значений, которые должны быть включены в расчет пригодности для одного изображения. В моей реализации я уменьшаю изображение перед выполнением сравнения, чтобы было меньше пикселей. Компромисс - немного уменьшенная точность развитого изображения.
При исследовании альтернативных фитнес-функций я натолкнулся на несколько предложений по использованию цветового пространства YUV вместо RGB, поскольку оно более тесно связано с человеческим восприятием.
Другая идея, которая у меня была, заключалась в том, чтобы сравнивать только случайно выбранную выборку пикселей. Я не уверен, насколько хорошо это будет работать, не пытаясь это сделать. Поскольку сравниваемые пиксели будут различными для каждой оценки, это будет способствовать сохранению разнообразия в популяции.
Кроме того, вы находитесь в сферах компьютерного зрения. Я ожидаю, что эти методы, основанные на извлечении признаков, будут более дорогими для каждого изображения, но в целом они могут быть быстрее, если они приведут к тому, что для достижения приемлемого результата потребуется меньше поколений. Возможно, вы захотите изучить библиотеку PerceptualDiff . Кроме того, на этой странице показан некоторый код Java, который можно использовать для сравнения изображений по сходству на основе признаков, а не пикселей.