LINUX.ORG.RU

По обрезанному изображению найти полный оригинал?

 ,


1

2

ЛОР, на тебе есть специалисты по обработке изображений? Существует какой-нибудь известный алгоритм для поиска похожих изображений с учётом обрезки? Например, по фотографии груди определить порноф кота найти фото девушки, которая держит его на коленях.

Перцептивные хэши типа pHash/dHash или нейросети с этим плохо справляются. Есть какой-то умный способ? Пришло только в голову разбить изображение на небольшие квадратики и каждый захэшировать отдельно. Наверно, велосипед изобретаю, и проблема уже давно решена?

Ответ на: комментарий от anonymous

Спасибо! Только не знаю, как заставить feature matching работать быстро на большом количестве картинок. Близкие перцептивные хэши можно найти очень быстро, а тут придётся сравнивать картинку со всеми картинками в базе. Или нет?

Begpoug ()
Ответ на: комментарий от seiken

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

Begpoug ()

Тут сгодится обычное попиксельное сравнение если 20% размера от любых изображений совпало то можно с 99% вероятностью сказать что это одни и теже изображения.

LINUX-ORG-RU ()
Ответ на: комментарий от anonymous

Можно и так, куски брать от углов изображений и середины 5 таких блоков с 1 изображения будет достаточно будет достаточно. Это для случая если изорбажения реально были просто порезаны а не пережаты с потерями ещё после резки ибо тогда это не сработает.

Но если в фотке 1920x1080 два куска в случайных местах размера 100X100 такие что значения rgb равны на 100% то это оооооооооочень вероятно от одной и той же фотки. Сложнее найти именно наоборот попробуй в похожих фотках найти два одинаковый куска)))))))))0 Терабайт домашних фоток перелопатишь не найдёшь ))

LINUX-ORG-RU ()

Например, по фотографии груди определить порноф кота найти фото девушки, которая держит его на коленях.

Тьфу ты! Я думал просто определить что резаные куски относятка к одной фотки. Сорян, всё что я сказал это не то

LINUX-ORG-RU ()

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

cvv ★★★★★ ()

Пришло только в голову разбить изображение на небольшие квадратики и каждый захэшировать отдельно

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

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

ya-betmen ★★★★★ ()
Ответ на: комментарий от cvv

А как бы ты выделял кривые?

Я про стратегию, тактика не моя забота.

ЗЫ. А вообще наверное 1 или 2 вторая производная от яркости и аппрокимировать. По идее можно порезать на куски. В конечном итоге имеет значение максимальное совпадение. Насколько сами кривые будут адекватны реальности тут не слишком важно.

ya-betmen ★★★★★ ()
Ответ на: комментарий от ya-betmen

1 или 2 вторая производная от яркости и аппрокимировать. По идее можно порезать на куски

Сколько это потребует времени на 1000 изображений?

anonymous ()

Существует какой-нибудь известный алгоритм для поиска похожих изображений с учётом обрезки?

Глянь в ITK ©.

работать быстро на большом количестве картинок

Поиск и сравнение в спектральной области иногда быстрее, чем простая свёртка. Для инвариантности к масштабированию, вращению и сдвигу объекта используют преобразование Фурье-Меллина ©, предварительно выполнив разбеливание изображения (равномерный спектр).

quickquest ★★★★★ ()