Публичное пространство
SetRetail SCO v.3◾Распознавание товаров
https://crystals.atlassian.net/browse/SCOD-1049
https://crystals.atlassian.net/browse/SCOD-1219
https://crystals.atlassian.net/browse/CR-11156
10.4.8.0
https://crystals.atlassian.net/browse/SCOC-2493
https://crystals.atlassian.net/browse/CR-12805
10.4.24.0
- 1 Описание
- 2 Ценность
- 3 Компоненты системы распознавания
- 4 Описание логики работы модуля распознавания
- 5 Пример работы успешного сценария
- 6 Пример работы отрицательного сценария
- 7 Ограничения
- 8 Дополнительная информация
- 9 Настройка
- 10 Видеодемонстрация
- 11 Статьи по теме
Описание
Начиная с версии 10.4.8.0 для кассы самообслуживания на базе ПО SetRetail SCO v.3 добавлена интеграция с системой распознавания товаров.
Система распознавания - программно-аппаратный комплекс, включающий в себя камеру для снятия изображения товара и программный модуль на базе ИИ (искусственного интеллекта) для распознавания товара, интегрированный с SetRetail10.
После обновления кассового ПО до версии 10.4.9.0 для КСО доступно логирование системы распознавания, а с версии 10.4.10.0 возможно замерять скорость и эффективность модуля распознавания и получать информацию в виде отчета, подробная информация о функциональности в статье SetRetail SCO v.3◾Замер скорости работы распознавания. Логирование работы SetSCO с сервисом MERTECH.
В версии 10.4.24.0 доработан механизм предотвращение фрода (мошенничества) при использовании системы распознавания товаров на КСО: если покупатель, при работе на КСО с системой распознавания, выбирает товар не из предложенной выборки (товар с меньшей вероятностью попадания в выборку распознанных вариантов), тогда КСО будет блокироваться и вызывать консультанта для подтверждения добавления данного товара в чек.
Ценность
Интеграция КСО с системой распознавания товаров позволит ускорить добавление весовых товаров в чек за счет возможностей быстрого распознавания товаров против поиска и выбора этого же товара из пик-листа.
Компоненты системы распознавания
Модуль компьютерного зрения - малогабаритный программно-аппаратный комплекс, который устанавливается в магазине на торговое оборудование, участвующее в продаже весового товара.
Аппаратные компоненты модуля распознавания
Аппаратно модуль реализован в едином корпусе и состоит из:
1. Цифровой видеокамеры для получения изображения взвешиваемого товара;
2. Устройства-вычислителя на базе CPU с встроенным нейропроцессором, модулем обработки изображений, контроллерами памяти и интерфейсов ввода-вывода;
3. USB-интерфейса для связи с кассовой системой магазина или любой другой фронт-системы, использующей распознавание товаров для автоматизации процессов продажи весовых товаров (также используется для питания модуля).
Программные компоненты модуля распознавания
операционная система Linux для промышленных решений;
база данных, где накапливаются и хранятся данные для обучения нейронной сети;
блок обучения нейронной сети;
блок распознавания (каскад связанных нейросетевых алгоритмов по распознаванию товара);
блок бэкапа обученной модели распознавания;
программный интерфейс (API) для взаимодействия с фронт-системами (кассовая, весовая).
Описание логики работы модуля распознавания
В процессе работы модуля и взаимодействия (по API) с кассовой фронт-системой можно выделить следующие операции:
Модуль захватывает изображение и выдает результат распознавания в виде списка известных PLU-кодов с коэффициентами вероятности соответствия распознанному товару;
Модуль получает данные PLU-кода товаров, выбранных оператором в одном из режимов: в интерфейсе обучения модуля, при подборе номенклатуры, при пробитии чека на кассе;
Модуль производит сопоставление полученного от кассовой системы PLU-кода, выбранного оператором с моделью товара на основе захваченного изображения взвешиваемого товара, классифицирует товар, запускает очередную итерацию обучения нейросети (блок обучения);
В блоке обучения пересчитываются веса нейросети, новые веса нейросети сохраняются в базе данных;
В базе данных обновляется таблица сопоставлений PLU-кодов внутренним идентификаторам (ID).
Пример работы успешного сценария
Добавление весового товара без веса в штрихкоде
1. Покупатель походит к КСО и нажимает Найти товар.
2. В нижней части экрана появляется окно с текстом на голубом фоне Положите товар на весы перед вами, ниже анимированное изображение стрелочки и весов → покупатель кладет весовой товар на весы.
3. Камера обрабатывает изображение с прикассовых весов → идет процесс распознавания товара.
4. Ответ от камеры получен → отображается экран с заголовком Выберите товар → ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый, далее товары с меньшей долей вероятности) → крайняя верхняя левая карточка выделена рамкой → покупатель нажимает на требуемый товар (товар в зеленой рамке).
5. Товар успешно добавлен в чек.
Добавление штучного товара
1. Покупатель подходит к КСО и нажимает Найти товар.
2. В нижней части экрана появляется окно с текстом на голубом фоне Положите товар на весы перед вами, ниже анимированное изображение стрелочки и весов → покупатель кладет штучный товар на весы.
3. Камера обрабатывает изображение с прикассовых весов → идет процесс распознавания товара.
4. Ответ от камеры получен → отображается экран с заголовком Выберите товар → ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый, далее товары с меньшей долей вероятности) → крайняя верхняя левая карточка выделена рамкой → покупатель нажимает на требуемый товар (товар в зеленой рамке).
5. КСО возвращается на экран сканирования товаров → товар успешно добавлен в чек.
Весовой товар отсутствует в массиве (дообучение)
1. Покупатель походит к КСО и нажимает Найти товар.
2. В нижней части экрана появляется окно с текстом на голубом фоне Положите товар на весы перед вами, ниже анимированное изображение стрелочки и весов → покупатель кладет весовой товар на весы.
3. Камера обрабатывает изображение с прикассовых весов → идет процесс распознавания товара.
4. Ответ от камеры получен → отображается экран с заголовком Выберите товар → ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый, далее товары с меньшей долей вероятности) → крайняя верхняя левая карточка выделена рамкой → покупатель не находит требуемый товар среди предложенных → покупатель нажимает Здесь нет моего товара.
5. КСО переходит к каталогу товаров → покупатель нажимает на кнопку Поиск товаров → КСО переходит к поиску по всему товарному справочнику -> покупатель вводит название требуемого товара → покупатель выбирает товар из списка.
6. КСО возвращается на экран сканирования товаров → товар успешно добавлен в чек.
В следующий раз при попытке распознавания этого же товара после дообучения карточка с товаром отобразится на экране Выберите товар.
Вызов помощника при добавлении товара не из выборки - товары совпадают
включена настройка
Вызов помощника при добавлении товара ниже порогового значения (товар не из выборки);
Покупатель походит к КСО и нажимает кнопку Найти товар.
В нижней части экрана КСО появляется окно с текстом Положите товар на весы перед вами.
Покупатель кладет весовой товар на весы → камера обрабатывает изображение с прикассовых весов, идет процесс распознавания товара → ответ от камеры получен.
КСО отображает экран с заголовком Выберите товар, ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый (выделен рамкой), далее товары с меньшей долей вероятности).
Покупатель не находит требуемый товар среди предложенных -> нажимает Здесь нет моего товара.
КСО переходит к каталогу -> покупатель находит товар в пик-листе или через поиск по каталогу.
Отображается экран взвешивания товара, указан вес товара.
КСО блокируется и вызывает консультанта → происходит отправка события 138 (с детализацией
"intervention":"confirmRecognition").Консультант подходит и авторизуется на КСО сканированием бейджа.
КСО открывает экран с заголовком Проверьте отсканированный товар и двумя кнопками Товары совпадают и Отменить добавление → консультант нажимает Товары совпадают -> экран Проверьте отсканированный товар закрывается.
Товар успешно добавлен в чек.
Вызов помощника при добавлении товара из выборки_2 - товары совпадают
включена настройка
Вызов помощника при добавлении товара не с максимальной долей вероятности из выборки;
Покупатель походит к КСО и нажимает кнопку Найти товар.
В нижней части экрана КСО появляется окно с текстом Положите товар на весы перед вами.
Покупатель кладет весовой товар на весы → камера обрабатывает изображение с прикассовых весов, идет процесс распознавания товара → ответ от камеры получен.
КСО отображает экран с заголовком Выберите товар, ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый (выделен рамкой), далее товары с меньшей долей вероятности).
Покупатель выбирает второй по соответствию товар (не выделен рамкой).
Отображается экран взвешивания товара, указан вес товара.
КСО блокируется и вызывает консультанта → происходит отправка события 138 (с детализацией
"intervention":"confirmRecognition").Консультант подходит и авторизуется на КСО сканированием бейджа.
КСО открывает экран с заголовком Проверьте отсканированный товар и двумя кнопками Товары совпадают и Отменить добавление.
Консультант нажимает Товары совпадают -> экран Проверьте отсканированный товар закрывается.
Товар успешно добавлен в чек.
Пример работы отрицательного сценария
Отключение камеры в момент распознавание товара
1. Покупатель походит к КСО и нажимает Найти товар.
2. В нижней части экрана появляется окно с текстом на голубом фоне Положите товар на весы перед вами, ниже анимированное изображение стрелочки и весов → покупатель кладет штучный товар на весы.
3. Камера отключается в процесс распознавания → ответ от камеры не получен → на экране КСО отображается экран Каталог товаров → каталог соответствует настроенному на сервере.
Отключение прикассовых весов в момент распознавания товара
1. Покупатель походит к КСО и нажимает Найти товар.
2. В нижней части экрана появляется окно с текстом на голубом фоне Положите товар на весы перед вами, ниже анимированное изображение стрелочки и весов → покупатель кладет штучный товар на весы.
3. Прикассовые весы отключаются в процессе распознавания → ответ от камеры получен → отображается экран с заголовком Выберите товар → ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый, далее товары с меньшей долей вероятности) → крайняя верхняя левая карточка выделена рамкой → покупатель нажимает на требуемый товар (товар в зеленой рамке).
4. КСО возвращается на экран сканирования товаров → товар успешно добавлен в чек.
На сервере выключены обе настройки интервенции консультанта
Вызов помощника при добавлении товара ниже порогового значения (товар не из выборки);
Вызов помощника при добавлении товара не с максимальной долей вероятности из выборки.
Покупатель походит к КСО и нажимает кнопку Найти товар.
В нижней части экрана КСО появляется окно с текстом Положите товар на весы перед вами.
Покупатель кладет весовой товар на весы → камера обрабатывает изображение с прикассовых весов, идет процесс распознавания товара → ответ от камеры получен.
КСО отображает экран с заголовком Выберите товар, ниже на экране отображаются карточки товаров по рангу в зависимости от вероятности соответствия (с максимальной долей вероятности - крайний левый (выделен рамкой), далее товары с меньшей долей вероятности).
Покупатель не находит требуемый товар среди предложенных -> нажимает Здесь нет моего товара.
КСО переходит к каталогу -> покупатель находит товар в пик-листе или через поиск по каталогу.
Отображается экран взвешивания товара, указан вес товара.
Товар успешно добавлен в чек.
Ограничения
1. Одновременно КСО может быть получено и отображено на экране не более 8 товаров.
2. Функциональность не будет работать, если:
камера не подключена, неисправна или находится не в сети;
к КСО не подключены или неисправны прикассовые весы;
выключена функциональность пик-листа.
3. Изображения для товара будут отображаться только в случае их реального наличия на КСО (если они были загружены в папку на кассу вручную или синхронизированы через SetSync).
Дополнительная информация
1. Топ-товар (определенный с наибольшей вероятностью) визуально выделяется отдельной зеленой рамкой.
2. Карточки товаров на экране отображаются по рангу в зависимости от вероятности соответствия товара распознанному (с максимальной долей вероятности - крайний левый, далее товары с меньшей долей вероятности).
3. По ссылке доступна документация разработчика MERTECH. Обратите внимание, документация регулярно обновляется разработчиком.
Настройка
Подключение и настройка модуля распознавания MERTECH VISION AI
Установка камеры на кассовый модуль
Камера MERTECH крепится на внутреннюю сторону нижней части экрана. Ниже приведена инструкция по ее установке на кассовый модуль.
1. Откройте корпус кассы → аккуратно опустите экран.
2. С помощью шестигранника ослабьте винты крепления экрана на 1,5 оборота.
3. Закройте кассовый модуль → аккуратно возьмите монитор двумя руками → потяните его вверх и снимите с корпуса.
Монитор остается прикреплен к кассовому модулю проводами и не снимается с корпуса полностью.
Рекомендуется выполнять установку вдвоем, чтобы полностью не отсоединять монитор.
4. Прикрепите кронштейн камеры распознавания на нижнюю часть экрана с внутренней стороны с помощью двух болтов.
5. Верните монитор на кассовый модуль → придерживая монитор, откройте кассовый модуль → затяните болты для крепления монитора → протяните провод модуля распознавания MERTECH VISION AI в корпус кассы.
6. Подключите модуль распознавания MERTECH VISION AI в USB-разъем на кассе → закройте кассовый модуль.
7. Подключитесь к КСО по ssh → выполните команду ниже, чтобы убедиться, что устройство успешно подключено и распознано.
curl -X POST -d "" http://172.22.0.6/api/get_device_infoПример успешного ответа от модуля распознавания MERTECH VISION AI:
code 0 в теле ответа обозначает, что устройство подключено и распознано.
{
"code": 0,
"data": {
"clientID": "11095",
"clientName": "Store Name",
"engine": "9.5.0",
"firmware": "9.9.4.2",
"learnMode": 1,
"masterIP": "",
"masterSN": "",
"sdk": "9.1.1",
"sn": "12345678",
"soldOutLimit": 3,
"sync": "9.5.17.0",
"syncMode": "normal"
}
}8*. (опциональный шаг; если в предыдущем пункте получен успешный ответ, тогда этот шаг пропускается) Если возникла ошибка при подключении камеры/нет ответа при использовании команды get_device_info, тогда:
1. Выполните команду ниже, чтобы получить информацию о сетевых интерфейсах (показывает список всех доступных сетевых интерфейсов, их IP-адреса, состояния (включен или выключен) и т.д.).
ip a2. Сетевой интерфейс камеры
172.22.0.7→ если в списке доступных интерфейсов его нет, тогда выполните команду ниже, гдеeth10- идентификатор сетевого интерфейса.
sudo ifconfig eth10 172.22.0.7 netmask 255.255.255.0 up3. Если настройка прошла успешно, тогда используйте команду, чтобы подтвердить, что соединение с модулем нормальное.
ping 172.22.0.6Настройка камеры распознавания товаров
Данный функционал доступен только для КСО на операционной системе Ubuntu.
Для настройки камеры используйте Менеджер модуля видеораспознавания VISION-AI (инструмент от MERTECH).
Здесь вы найдете актуальную документацию для модуля распознавания от разработчика.
1. Убедитесь, что модуль распознавания товаров определился в системе и для него поднялся сетевой интерфейс.
Для этого подключитесь к кассе по ssh → выполните команду ниже.
ip aЕсли в ответе будет интерфейс eth15 с адресом
172.22.0.7, тогда модуль установлен правильно и настройки операционной системы соответствуют данному функционалу.
Если в ответе устройство определяется на интерфейсе eth10 с другим ip адресом, тогда примените патч (здесь будет патч) к операционной системе. Это возможно, если Ubuntu была собрана ранее ноября 2024 года.
2. По ссылке перейдите на сайт разработчика MERTECH → скачайте установочный пакет модуля распознавания MERTECH VISION AI в формате deb.
3. Подключитесь к кассе → загрузите установочный пакет на кассу в папку /home/tc/storage.
4. Запустите установку командой ниже.
После установки установочный deb-файл больше не понадобится, удалите его с кассы.
sudo dpkg -i ./mertech-vision-ai-manager_номер актуальной версии_amd64.deb5. Запустите менеджер модуля видеораспознавания VISION-AI командой ниже.
Менеджер модуля видеораспознавания VISION-AI возможно также запустить на экране кассы.
В этом случае выполните команду DISPLAY=:0 /opt/mertech-vision-ai-manager/bin/Mertech\ Vision\ AI\ Manager.
/opt/mertech-vision-ai-manager/bin/Mertech\ Vision\ AI\ Manager6. Откроется окно менеджера → кликните Получить информацию об устройстве → если сеть настроена правильно и устройство исправно, тогда ниже отобразится информация в формате таблицы.
7. Кликните на поле Режим обучения → выберите Обучение включено.
8. Кликните на синюю кнопку с тремя горизонтальными полосками → в выпадающем меню выберите Отправить.
9. Перейдите в вкладку Калибровка → кликните Получить данные для калибровки, чтобы увидеть зону объектива камеры.
Выделенная область задает зону распознавания товаров. Установите зону с помощью подбора параметров верхней левой точки, высоты и ширины зоны распознавания.
10. Как только зона будет выставлена, кликните Задать данные калибровки для сохранения параметров → первичная настройка закончена.
Можно закрыть инструмент.
Копирование базы данных модуля распознавания MERTECH VISION AI
Получение файла резервной копии
Предварительно установите менеджер модуля распознавания MERTECH VISION AI как описано выше.
1. Запустите менеджер модуля распознавания MERTECH VISION AI с помощью команды ниже.
/opt/mertech-vision-ai-manager/bin/Mertech\ Vision\ AI\ Manager2. Перейдите в вкладку Резервное копирования → в секции Получение файла резервной копии кликните на для выбора папки сохранения базы данных.
3. Выберите папку /home/tc/storage → кликните Open.
Вы видите файловую систему кассы.
4. Выбранная папка отобразится в поле Папка для сохранения файла резервной копии → кликните Получить → файл с базой данной отправлен в выбранную папку.
Таким образом, в выбранной папке создан файл резервной копии с расширением .evo.
Подключитесь к кассе → скачайте файл резервной копии.
Восстановление базы данных из файла резервной копии
1. Для восстановления базы из файла резервной копии подключитесь к кассе → загрузите сохраненный ранее файл на кассу.
2. Запустите менеджер модуля распознавания MERTECH VISION AI с помощью команды ниже → перейдите в вкладку Резервное копирование → кликните на в секции Отправка файла резервной копии.
/opt/mertech-vision-ai-manager/bin/Mertech\ Vision\ AI\ Manager3. Выберите ранее загруженный файл резервной копии → кликните Open.
4. Выбранный файл отобразится в поле Путь к файлу резервной копии → кликните Отправить → резервная копия будет загружена в модуль системы распознавания.
Настройка на сервере
Добавление процессинга
1. Войдите на сервер SetCentrum/SetRetail10 → перейдите в раздел Интеграция → вкладка Внешние процессинги → кликните + для добавления нового процессинга.
2. В поисковом поле введите Сервис распознавания Mertech → отобразится группа процессингов Сервисы умных весов → выберите Сервис распознавания Mertech → кликните
.
3. Новый процессинг отобразится в общем списке → кликните на процессинг дважды для редактирования.
Настройте процессинг:
в поле Пороговое значение вероятности, при котором продукт попадет в выборку (в процентах) введите значение 10;
включите настройку
Вызов помощника при добавлении товара ниже порогового значения (товар не из выборки);
Если настройка включена: Покупатель не выбирает товар из предложенной выборки после распознавания, а нажимает кнопку Здесь нет моего товара и выбирает товар из пик-листа или через поиск по всему товарному справочнику -> происходит вызов помощника.
Если настройка выключена: Вызов помощника не происходит.
включите настройку
Вызов помощника при добавлении товара не с максимальной долей вероятности из выборки;
Если настройка включена: Покупатель выбирает товар не с максимальной долей вероятности из предложенной выборки, то есть выбирает не крайний левый (выделен рамкой) - происходит вызов помощника.
Если настройка выключена: Вызов помощника не происходит.
Особенность реализации: Если включена настройка Вызов помощника при добавлении товара не с максимальной долей вероятности из выборки, но выключена
Вызов помощника при добавлении товара ниже порогового значения (товар не из выборки), тогда настройки работают, как если бы были обе включены: КСО вызывает консультанта при выборе любого товара, кроме рекомендованного.
Если обе настройки ( Вызов помощника при добавлении товара ниже порогового значения (товар не из выборки) и
Вызов помощника при добавлении товара не с максимальной долей вероятности из выборки) включены, тогда при выборе товара не с максимальной долей вероятности из предложенной выборки (т. е. не крайний левый (выделен рамкой)) - происходит вызов помощника.
→ кликните СОХРАНИТЬ.
Включение и создание пик-листа
Инструкция по включению и созданию пик-листа на сервере, а также по добавлению изображений для товарных плиток в статье https://crystals.atlassian.net/wiki/spaces/SR10SUPPORT/pages/4203217013.
Подключение весов
Инструкция по подключению весов к КСО в статье https://crystals.atlassian.net/wiki/spaces/SR10SUPPORT/pages/4299620517.
Перезагрузка КСО
1. После применения всех настроек перезагрузите КСО с помощью команды ниже.
cash restart sco2. После перезагрузки КСО проверьте параметр key = RECOGNITION_ENABLED в базе данных кассы sco_v3 в таблице
property. Параметр должен принять значение
value = true (распознавание товаров включено).