Степан Кочетков
21 ноября 02:37.
2426

Каким образом Google осуществляет поиск по картинкам?

Ответить
Ответить
Комментировать
0
Подписаться
7
2 ответа
Поделиться

Свой алгоритм работы google, конечно не выдаст, но можно выделить несколько способов поиска:

1. Метаинформация.

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

2. Нахождение опорных точек картинки. Используя специальный алгоритм (обычно очень сложный) можно на картинке выбрать несколько точек (например найти самые контрастные разные цвета на картинке). Дальше запоминаем расположение точек относительно друг к другу. В итоге у каждой картинки есть некоторое уравнение, описывающее расположение этих точек, сравнивая уравнения всех имеющихся у нас картинок можем найти похожую. У этого способа есть большой плюс - мы можем выявлять деформированную картинку и находить "баяны", когда картинка будет использоваться в другой, но этим способом мы можем пропустить очень похожие картинки (например если это будет фотосессия какой-нибудь модели, в которой она меняет свои позы, мы найдём только 1 фото)

3. Поиск по цвету.

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

Для лучшего поиска нужно использовать смесь этих подходов.

8
Прокомментировать

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

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

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

2
Прокомментировать
Ответить