Как работает распознавание изображений в Google Shopper? - PullRequest
0 голосов
/ 16 сентября 2010

Я поражен тем, насколько хорошо (и быстро) работает это программное обеспечение.Я поместил камеру своего телефона на небольшую область обложки книги в тусклом свете, и Google Shopper потребовалось всего несколько секунд, чтобы определить ее.Это почти волшебно.Кто-нибудь знает, как это работает?

Ответы [ 3 ]

2 голосов
/ 16 сентября 2010

Понятия не имею, как Google Shopper на самом деле работает. Но это может работать так:

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

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

В любом случае, наиболее вероятными общими шагами являются: (1) извлечение масштабируемых и вращательно-инвариантных объектов, (2) сопоставление вектора объектов с библиотекой предварительно вычисленных объектов.

1 голос
/ 08 сентября 2011

В любом случае методы распознавания образов / машинного обучения часто основаны на:

  1. Извлечение функций из изображения, которое может быть описано как числа. Например, используя края (как объяснил Рекс Керр ранее), цвет, текстуру и т. Д. Набор чисел, который описывает или представляет изображение, называется «вектором признаков» или иногда «дескриптором». После извлечения «векторного признака» изображения можно сравнивать изображения с использованием функции расстояния или (не) сходства.
  2. Извлечение текста из изображения. Есть несколько способов сделать это, часто основанные на OCR (оптическое распознавание символов)
  3. Выполните поиск в базе данных, используя функции и текст, чтобы найти ближайший связанный продукт.

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

    По моему мнению, объекты изображения отправляются в различные классификаторы шаблонов (алгоритмы, которые могут предсказать "класс", используя в качестве входных данных вектор объектов), для распознавания логотипов и, впоследствии, сам продукт.

    Используя этот подход, он может быть: локальным, удаленным или смешанным. Если локально, вся обработка выполняется на устройстве, и только «вектор признаков» и «текст» отправляются на сервер, где находится база данных. Если удалено, все изображение отправляется на сервер. Если смешанный (я думаю, что это наиболее вероятный), частично выполняется локально и частично на сервере.

    Еще одним интересным программным обеспечением является Google Googles, которое использует CBIR (контентный поиск изображений) для поиска других изображений, связанных с снимком, сделанным смартфоном. Это связано с проблемой, которую решает Покупатель.

0 голосов
/ 16 сентября 2010

Распознавание образов.

...