Как реализовать поиск похожих товаров (изображений товаров) на сайте?
Вроде того как это сделано
тут или хотя бы
тут
Как я себе представляю алгоритм:
1. Индексация изображений на сайте. Выделение доминирующих цветов для каждого изображения товара. Запись в БД, к примеру, 5 основных цветов и их процентных соотношений (в идеале). Или хэша полученных значений. При этом значения цветов должны "округляться", то есть должны быть не тысячи значений оттенков серого, а несколько десятков максимум.
2. Пользователь загружает изображение на сайте.
3. Выделяет область на картинке.
4. Происходит анализ области алгоритмом из пункта 1. Вычисляются 5 цветов выделенной области изображения с "округлением".
5. Происходит поиск по базе товаров по вычисленным параметрам.
Как это реализовать на сайте работающем на PHP? Главное как реализовать пункт 1, особенно "округление".
UPD1: Спасибо всем за ответы. Но, я понял что не совсем точно сформулировал вопрос. Нужно искать похожие по
ЦВЕТУ изображения. Форма и тип товара не имеют значения в данном случае. То есть при поиске по изображению
красно-зеленого дивана можно показывать
красно-зеленые шторы. При этом, если у дивана фиолетовые ножки, которые занимают, к примеру, 5% площади изображения, учитывать
фиолетовый цвет при поиске не нужно.
И важно чтобы находились
любые красно-зеленые шторы а не только те, у которых HEX значения цветов совпадают с цветами дивана. И нужно чтобы степень схожести цветов можно было задавать.
Мне кажется тут можно обойтись без машинного зрения, работы с образами и низкоуровневых языков.
По сути тут работа с числами.
Вот нашел похожий вопрос.
Но не понятно, как сделать "усреднение" цветов и отсекать цвета, которые занимают, например, менее 10% на изображении.