Показать сообщение отдельно
Старый 02.03.2013, 04:40
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Сравнение такого плана (опознание картинок не точно похожих друг на друга) - это задача из области самообучающихся програм... Но, естесственно, если можно как-то схитрить, то имеет смысл (т.е. если картинки, за исключением группы пикселов идентичны, а не просто похожи.

Что да имело бы смысл сделать: изначально сравнивать не все картинки со всеми картинками, а вычислить хеш от каждой картинки, и сравнивать хеши (если создать хеши длиной 32 бита, то сравнения будут очень быстрыми). Можно воспользоваться CRC для этого, или тот же MD5 - главное быстрый алгоритм и короткий хеш.

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

Еще варианты: для предварительной фильтрации использовать вычисление гистограмы, или усредненного цвета всей картинки.

Добавлено через 2 минуты
Цитата:
Сообщение от Sync Посмотреть сообщение
Почему нет предложений про нейросеть? Удобная же задача)))
Нейронные сети сами по себе очень непростой вопрос. Если уж что-то самому организовывать, то support vector machine было бы проще реализовать... но простота тут относительная С другой стороны есть проект fann который уже реализовывает эти сети, но биндингов к нему в AS3 я что-то не припомню
__________________
Hell is the possibility of sanity