Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
languagepy
themeRDark
titleНастройка сервиса распознавания

{"app_sale.goods_recognition" : {
  params : {
    runOrder = 20
    include file("conf/misc/vision.conf")   # Настройки, которые касаются кассы, а не типа касс; туда можно вынести любую строку, если нужно
    baseUrl = "http://127.0.0.1:6060"
    partnerId = 345 // узнать id у менеджера
    #camSerialNumber = "serialNumber567"    # Вынесен в conf/misc/vision.conf для возможности настройки для каждой кассы индивидуально
    pictureUrl = "http://vision.servplus.ru/catalog/picture"
    isReweighingDialog = false // для весов типа NCR (невозможно повторное взвешивание, без снятия товара с весов)
    sendAllItemsOnAddition = false
    // connectTimeout = 10 seconds // таймаут ожидания соединеия при запросе
    // requestTimeout = 30 seconds // таймаут ожидания ответа при запросе
     blackoutTimeout = 5 seconds // при неудачном соединении отправка все запросов будет заблокирована на время blackoutDelay
    // apiVersion = "1.4" // версия api, по умолчанию 1.4. возможно задать 1.3, все остальные версии будут трактоваться как 1.4
  }
}}

...

  1. Создаём конфигурационный файл камеры:

    Блок кода
    languagepy
    themeRDark
    sudo cat >> /var/opt/camera_agent/config.yaml << 'EOF'
    %YAML 1.2
    ---
    schema_version: 2
    web_api:
      recognition: https://vision.servplus.ru/v2.3/recognize/partner/
      upload: https://vision.servplus.ru/v2.3/upload/
    devices:
      gst_device_usb:
        connection: v4l2src device=/dev/v4l/by-id/gst-usb-camera
        socket: /tmp/gst_dev_usb
        cap: image/jpeg,width=1920,height=1080,framerate=30/1
    default_camera: <<cameraID>>
    sources:
      <<cameraID>>:
        camera:
          classname: GStreamerSRBCamera
          stream: shmsrc socket-path={devices.gst_device_usb.socket} num-buffers=1 ! {devices.gst_device_usb.cap} ! appsink
          device: gst_device_usb
        transform:
          - Crop:
              box: [670, 280, 1270, 800]
    EOF
  2. Вписываем лицензию вместо <<cameraID>> в default_camera: и sources (лицензия обязательно должна быть та же, которая прописана на сервере в vision.conf):

    ПримерВ режиме редактирования файла F4 – в mc, проверяем, что в конце строк нет символов переноса; если есть, то удаляем.

    Ниже пример правильного конфига:

    А вот так быть не должно:

  3.  При необходимости настраиваем статический ip адрес и DNS:

    Блок кода
    languagepy
    themeRDark
    sudo mcedit /etc/netplan/01-netcfg.yaml

    Прописываем адреса, пример ниже:

  4. Настраиваем службы:

    Блок кода
    languagepy
    themeRDark
    sudo sed -i -e 's/ukmclient/ukm5/g' /etc/systemd/system/camera_agent.service
    
    sudo sed -i -e 's/ukmclient/ukm5/g' /etc/systemd/system/gst_camera@.service
    
    sudo sed -i -e 's/ukmclient/ukm5/g' /etc/systemd/system/uni_worker@.service
    
    cd /opt/camera_agent; sudo venv/bin/python3 -u devices.py
    
    sudo systemctl enable --now uni_worker@camera_agent
    
    sudo systemctl enable camera_agent.service

    Каждую команду нужно выполнить отдельно, не все сразу.

  5. Запускаем службы:

    Блок кода
    languagepy
    themeRDark
    sudo systemctl restart gst_camera@gst_device_usb.service
    sudo systemctl restart camera_agent.service
    sudo systemctl restart uni_worker@camera_agent.service

    Каждую команду нужно выполнить отдельно, не все сразу.

  6. По пути http://IP_KASSA:6060/image должна быть доступна картинка с камеры:
Раскрыть
titleНастройка обрезки изображение (настройка кропа)
  • Открываем картинку с камеры в браузере

    1

    http://cash_ip:6060/image



    Image Added


  • Настраиваем обрезку картинки с камеры /var/opt/camera_agent/config.yaml
    Сохраняем картинку с браузера и открываем её в Paint.
    Рисуем рамку как на картинке ниже из точки 2 в точку 1.



    Image Added


    Далее наводим указатель мыши (в Paint это будет прицел) в точку 1 и точку 2, смотрим в левый нижний угол окна Paint с координатами точек

    Image AddedImage Added



    Округляем координаты до 10-ков и вписываем их в раздел обрезки в файле конфигурации и сохраняем его.


    1
    2
    3

    transform:
      - Crop:
          box: [710, 280, 1200, 670]

    Первые 2 числа - это координаты верхнего левого угла, вторые два числа - координаты нижнего правого угла.

          Если необходимо изменить поворот камеры, дописываем в этот же конфиг параметр Rotate и при необходимости меняем значение angle

1
2

- Rotate:
            angle: 90

  • Далее перезапускаем camera agent на кассе.

    1

    sudo systemctl restart camera_agent.service

    Получаем обрезанную картинку в браузере (обновляем страницу).

    1

    http://cash_ip:6060/image



    Image Added


  • Для камеры DP2710 HD настраиваем фокусное расстояние сняв фиксацию винта у линзы, вращая линзу по и против часовой стрелки до получения чёткой картинки товара на площадке весов (яблоко, банан и тп - товар сантиметров в 5 в высоту).
    Стараемся выловить "центр" того диапазона прокрутки линзы в котором товар в фокусе, это поможет попасть в фокус товару другого размера.
    После аккуратно фиксируем винтом линзу! Резкая фиксация приведёт к смещению линзы и пропаданию фокуса камеры с площадки весов.



    Image Added



  1. Если картинка с камеры не видна или на экране черный квадрат, то перезагружаем весь системный блок кассового аппарата по питанию.
  2. Если при открытии http://IP_KASSA:6060/sku/image видим ошибку 500, то вероятнее всего ошиблись в конфигурационном файле /var/opt/camera_agent/config.yaml.
  3. Если всё было сделано верно, по инструкции, но вместо картинки с камеры в браузере видно белый пиксель по центру экрана, то перезапускаем udev-правила и службы ещё раз:

    Блок кода
    languagepy
    themeRDark
    sudo udevadm control --reload-rules && udevadm trigger
    sudo systemctl restart gst_camera@gst_device_usb.service
    sudo systemctl restart camera_agent.service
    sudo systemctl restart uni_worker@camera_agent.service
  4. Если и это не помогло, то перезапускаем ОС:

    Блок кода
    languagepy
    themeRDark
    sudo reboot
  5. Проверяем работу СуперМаг Vision.