Новые возможности подсистемы ActiveCV в SimpleUI

19.06.23

Разработка - Мобильная разработка

Задачи, которые ставятся в прикладных решениях перед ActiveCV, усложняются, поэтому требуется развитие. Теперь недостаточно просто подсвечивать штрихкоды в видеопотоке разными цветами и выводить какие то надписи– требуется распознавать объекты материального мира в целом с их свойствами. Дополнение к статье https://infostart.ru/public/1153616/.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример прайс-чекера
.epf 12,31Kb
2
2 Скачать (2 SM) Купить за 2 150 руб.

Появился новый детектор – multiscanner. Он работает по другому принципу, чем другие детекторы ActiveCV (ActiveCV - это подсистема Simple, которая позволяет организовать альтернативный интерфейс в дополненной реальности и выводить учетные данные в видеопоток). В других детекторах заранее готовятся списки отображаемых объектов (green_list, object_caption_list), и он потом их выводит. А тут по-другому – он захватывает объекты и все, что в объекте – штрихкоды и надписи, и генерирует события по ним, обрабатываемые уже на стороне обработчиков непрерывно.

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

Далее для простоты рассуждений будем рассматривать пример с ценником. Будем решать задачу прайсчекера: найти ценник, определить по БД, что это за товар, вывести над ценником надпись с названием товара и ожидаемой ценой и далее попытаться найти эту цену в ценнике и если она нашлась – покрасить в зеленый ну и как-нибудь пикнуть.

Уже из постановки задачи видно, что цену и штрихкод надо искать не где попало, а внутри ценника. Поэтому – multiscanner.

 

Первый подход – сканирование всего объекта без ограничений

 

 


Допустим, нам надо распознать такой ценник. Ценники могут быть разные (с разными макетами), мы не знаем, где находится штрихкод и цена.

Если ничего не настраивать, multiscanner работает так:

  1.     Выделяет на экране объекты
  2.     По каждому объекту ищет все штрихкоды/QR и отправляет в обработчики - это бесконечный цикл, он постоянно сканирует и генерирует события 

Далее, согласно логике обработчика, объект может быть подсвечен разными цветами и выведены соответствующие надписи.

Все бы ничего, да вот беда – OCR (распознавание текста) работает медленно и притормаживает видеопоток. Пока еще устройства не такие мощные, чтобы все было плавно.

Поэтому надо стараться включать его только по необходимости.

Цикл работы с каждым ценником такой:

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

Достигается это двумя настройками:

  • Переменная CVDetectors, может быть равна barcode или ocr (если не задана, то и то, и другое). Таким образом включается общих для всех объектов режим «что искать в объекте?» - штрихкод или текст
  • Переменная object_detector_mode – задает уже для конкретного объекта что делать: ocr|barcode|stop Т.е. это имеет более высокий приоритет чем CVDetectors. 

Параметры задаются в виде JSON-массива объектов вида: [{“object_id”:<ИД Объекта>, "mode":"barcode|ocr|stop" }]

Таким образом получается, что для каждого ценника проходит цикл Штрихкод-Текст-Стоп, если задать сначала CVDetectors=barcode, а потом object_detector_mode ocr, потом stop

Также появилось еще 2 общие флага настройки:

  • CVSingleDetector – позволяет включить режим захвате в кадре только одного объекта – самого заметного. По умолчанию – до 5 объектов
  • CVSkipNested – позволяет игнорировать объекты, вложенные в другие объекты

 

 

На этом подходе реализован пример простого прайс чекера, который прикреплен к этой статье. Кстати, он реализован не как конфигурация, а как suip-файл, т.е. 1С делает файл в котором и данные о товарах и ценах и сама конфигурация. На устройстве достаточно, чтобы стоял Simple последней версии 11.55.20.

Как им пользоваться:

  1.     Открыть обработку ГенерацияПрайсЧекера.epf в УТ11/КА2/ERP2 или другой похожей конфигурации
  2.     Выбрать тип цен и выгрузить файл
  3.     Отправить на устройство любым способом – мессенджер, почта и т.д.
  4.     Открыть его как текст с помощью SimpleUI (именно открыть, не поделиться)

Ну а как это работает – на гифке - выше.

Важно! Это полностью автоматический прайсчекер, т.е. сканирует еще и цену, а это ресурсоемкая операция - плавно такое работает только на мощных телефонах, с хорошими процессорами и графическими сопроцессорами. Для более слабых девайсов можно отключить OCR в коде - вывод будет только штрихкодов и учетной информации

 


Второй подход – шаблон ценника

 

 

 


Первый подход – универсальный, сработает со всеми форматами объектов. Но можно настроить шаблон так, чтобы он искал штрихкод и считывал данные только из определенных полей. Т.е. на экране будут нарисованы поля, и оператор должен совместить изображение так, чтобы данные попадали в поля. Особенно это актуально для считывания не ценников, а всяких табличек, где есть много полей.

Шаблон рисуется в «Векторном редакторе» в Simple. Полученный файл указывается в процессе в поле mask. Все поля в векторном редакторе рисуются прямоугольниками. Они могут иметь метку (price, barcode и т.д.), могут начинаться с префикса barcode: (“barcode:<метка>”) – что говорит, что в данном поле надо сканировать штрихкод/QR.

Тут есть один нюанс, о истории борьбы с которым я написал отдельный пост: https://telegra.ph/Anons-novoj-fichi-dlya-ActiveCV-02-22

Там же есть видео, как это работает.

В двух словах: все дело в пропорциях – рамки должны быть пропорциональны объекту.

Поэтому при таком подходе в векторном редакторе сначала рисуется прямоугольник c меткой object (зарезервированное слово), а внутри него уже поля, которые надо отсканировать.

Работает это так: мультисканнер ищет объекты примерно с такими же пропорциями как object. Найдя, рисует рамки. В этих рамках он начинает сканировать то, что ему указали (либо barcode, либо текст).

 

Просто рамки

 

 

 


Если сделать шаблон, но не рисовать в нем object, а нарисовать просто одну рамку и указать его потом в процессе в mask, то тогда она будет всегда нарисована на экране и будет происходить сканирование только в этой рамке, а за ее пределами не будет. Т.е. это как бы прицел такой.

 

Фото в процессе работы ActiveCV

 

 

 

ActiveCV создавался как альтернатива традиционному экранному интерфейсу и один из его принципов – бесшовность/непрерывность. Т.е. водишь камерой и все учетные процессы происходят без необходимости куда-то  что-то переключать и нажимать.

И вот теперь, находясь в процессе ActiveCV, можно делать фото прямо из видеопотока. Т.е., например, у вас на ActiveCV сделана инвентаризация, вы считали товар и тут же сделали фото.

Это можно запускать как из обработчика (например, считали товар, послали CVCaptureImage и сделалось фото, привязалось к этому товару), так и повесить, например, на кнопку на экране. Но самое лучшее применение – делать снимок автоматом из обработчика, по какому-то событию.

За фото отвечает команда CVCaptureImage, когда она попадает в поток выполнения, происходит снимок и само фото пишется в файл, а ссылку на файл можно получить в CVCaptureResult в переменной CVCaptureFile.

Фото делается, разумеется, всего, что в данный момент попало в кадр.

Основная статья, где есть файл с комплектом разработчика, с примерами к этой статье: //infostart.ru/1c/tools/1153616/

Телеграмм-канал проекта, в котором масса всего полезного:  https://t.me/devsimpleui

Simple ActiveCV дополненная реальность Android

См. также

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38188    108    161    

201

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    59284    192    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97206    586    189    

321

Логистика, склад и ТМЦ Сканер штрих-кода Терминал сбора данных Мобильная разработка Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

3450 руб.

28.04.2023    9465    15    0    

9

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4641    1    0    

6

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1212    6    informa1555    1    

13

Мобильная разработка Мобильная платформа Абонемент ($m)

В этом релизе собрано много нового из области интерфейса, связи, хранения и важные новые способы управления. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

25.06.2024    2596    28    informa1555    0    

33
Оставьте свое сообщение