AI Automatic Product Recognition in Customer Hands

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Automatic Product Recognition in Customer Hands
Complex
from 1 week to 3 months
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1215
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823

Распознавание товаров в руках покупателя в магазине

Amazon Go открылся в 2018 году и до сих пор вызывает вопрос: как система вообще знает, что я взял с полки и положил в корзину, а не передумал и вернул? Ответ — не одна камера и не одна модель, а синхронизированная работа детекции, трекинга и распознавания на десятках потоков одновременно. Это одна из самых технически насыщенных retail-CV задач.

Что значит «распознать товар в руке»

Задача состоит из нескольких подзадач:

  1. Детекция факта взятия товара с полки — рука пересекла зону полки, что-то взяла
  2. Идентификация товара — что именно взяли: SKU-level распознавание
  3. Трекинг покупателя — привязать взятый товар к конкретному человеку
  4. Детекция возврата на полку — взяли → посмотрели → положили обратно

Каждая из этих подзадач нетривиальна. Вместе они создают задачу, которую Amazon решала 4+ лет до коммерческого запуска.

Глубокий разбор: детекция взаимодействия рука-товар

Hand detection и рука-объект контакт

Первый шаг: найти руки в кадре. MediaPipe Hands — хорошо для изолированных рук, но в ретейле руки часто частично закрыты полкой, другими товарами, телом покупателя. Специализированный hand detector: 100DOH (Hand-Object Detector) или EgoHands dataset fine-tuned модель работает лучше в заслонённых сценах.

После детекции рук — распознавание контакта рука-объект. Это не просто пространственное перекрытие боксов: нужно понять, держит ли рука объект или просто находится рядом. Подходы:

  • Bounding box overlap + velocity analysis: объект движется синхронно с рукой → контакт
  • Contact state classification: отдельный классификатор на паре (hand crop, object crop) → держит/не держит
  • Pose estimation: ладонь сомкнута вокруг объекта — детекция захвата через hand keypoints

SKU-level recognition: самая сложная часть

Магазин — это 5 000–50 000 уникальных SKU. Классификатор на 50 000 классов — нереалистично без специальных техник.

Эффективный подход: metric learning + open-set recognition. Вместо закрытой классификации — embeddings, где похожие товары близко в пространстве. Добавление нового SKU = добавление одного эталонного embeddings без переобучения модели.

Backbone: ConvNeXt-Small или EfficientNet-B4 с ArcFace loss, обученный на каталоге товаров (студийные фото). Few-shot recognition: 1–5 эталонных фото на SKU достаточно для надёжной идентификации. На internal benchmark (2 000 SKU бакалейного магазина, условия реального магазина): top-1 accuracy 0.87, top-3 accuracy 0.96.

Дополнительно: штрихкод/QR-код как backup channel. Если товар в руке расположен удобно — CV считывает код напрямую через ZXing или ZBar интегрированный в pipeline. Confidence-based fusion: если barcode читается с confidence > 0.98 → использовать его, иначе → visual recognition.

Инфраструктура для магазина

Плотность камер: для надёжного покрытия зон полок — 1 камера на 1.5–2 м² площади полок. Это много. Магазин 200 м² торговой площади → 30–50 камер. Overhead камеры (смотрят сверху) дополняют боковые.

Вычисления: централизованный GPU сервер (4× NVIDIA A10 для магазина 200 м²) обрабатывает все потоки. DeepStream SDK для multi-stream pipeline, TensorRT для оптимизированного инференса.

Синхронизация: все камеры синхронизированы по времени (PTP, IEEE 1588) с точностью < 1 ms — критично для трекинга между камерами.

Ограничения и реалистичные ожидания

Честно о сложностях:

  • Ошибки при схожих упаковках: два варианта одного товара (классический/лайт) — сложнее всего
  • Частичная видимость: покупатель закрывает товар телом — inevitable gap
  • Возвраты на чужую полку: детектировали взятие, трекали, но положили в другое место

Точность на уровне Amazon Go (~99%+ по их заявлению) требует дополнительных сенсоров — весовые датчики на полках снимают неопределённость: убыло N граммов → взяли 1 пачку конкретного товара. CV + весы = значительно выше точность, чем чистое CV.

Сроки

Pilot-система для зоны 20–30 м² с ограниченным ассортиментом (200–500 SKU): 10–16 недель. Полноценная система магазина 100+ м² с интеграцией в кассу/POS: 5–9 месяцев.