Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

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

ТехнологииИнтернет+1
Степан Кочетков
  ·   · 11,1 K
Системный администратор в небольшой организации.  · 18 апр 2015

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

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

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

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

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

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

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

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