Понятия не имею, как Google Shopper на самом деле работает. Но это может работать так:
- Возьмите свое изображение и преобразуйте его в края (используя краевой фильтр, сохраняя информацию о цвете).
- Найдите точки пересечения ребер и составьте их список (включая цвета и, возможно, углы пересекающихся ребер).
- Преобразование в независимую от вращения метрику путем выбора пар высококонтрастных точек и измерения расстояния между ними. Теперь обложка книги представлена в виде набора чисел: (edgecolor1a, edgecolor1b, edgecolor2a, edgecolor2b, расстояние).
- Выберите пары наиболее заметных значений расстояния и соотнесите расстояния.
- Отправьте эти данные в виде строки запроса в Google, где он найдет наиболее похожий вектор (возможно, с помощью прямого вычисления ближайшего соседа или, возможно, с соответствующим образом обученным классификатором - возможно, машиной опорных векторов).
Google Shopper также может отправлять всю картинку, и в этот момент Google может использовать значительно более мощные процессоры для обработки данных обработки изображений, что означает, что он может использовать более сложную предварительную обработку (я выбрал описанные выше шаги, чтобы сделать их очень простыми). как это можно сделать на смартфонах).
В любом случае, наиболее вероятными общими шагами являются: (1) извлечение масштабируемых и вращательно-инвариантных объектов, (2) сопоставление вектора объектов с библиотекой предварительно вычисленных объектов.