OpenCV в релизе SimpleUI 11.50

OpenCV в релизе SimpleUI 11.50

Dmitry Votontsov


Вшитое в платформу распознавание 2d объектов, детектирование свойств

Работа с распознаванием объектов, построенная на детектировании свойств предназначена для идентификации двумерных объектов. В конструкторе шага за это отвечает детектор featuredetector который работает в 2х режимах : обучение и предсказание (аналогично устроено распознавание лиц). В режиме обучения необходимо показать объект, тапнуть на него, появится экран с диалогом где надо укать имя файла. При этом происходит следующее из выделенного объекта извлекаются фичи и записываются в отдельный файл. Все файлы хранятся на устройстве в папке SimpleUI images\FeatureData в файлах *.db

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

Для визуализации таких объектов доступны цветовые списки (green_list, red_list и и т.д.) и object_caption_list

Также доступны любые общие и управляющие команды.


Поддержка OpenCV в объектах и лицах

В настоящий момент доступна интеграция с OpenCV в режиме детектирования объектов (платформа выделяет в видеопотоке объекты и передает их обработчику) и в режиме детектирования лиц (соответственно детектируются лица и передаются обработчику). За это отвечают новые детекторы object_opencv и face_opencv . Нет зависимости от режима обучения/предсказания – это реализует сам разработчик. Т.е. например доступно событие onTouch когда вы нажимаете на объект в кадре и на этом обработчике можно получить объект и что то с ним сделать (выделить свойства или просто взять фото и записать в файл и например отправить куда то), а при обнаружении объекта генерируется событие onObjectDetected которому опять же передается картинка объекта. Разработчик соотвественно работает с картинкой и может влиять на изображение в видеопотоке через цветовые списки и  object_caption_list

Данный режим например может заменить распознавание лиц (т.е. сделать не через онлайн а локально на устройстве).

Обработчики должны быть определенного формата, где через imageBytes передается байт-массив конкретного объекта

def detect_face(hashMap,imageBytes):

       np_data = np.asarray(imageBytes,np.uint8)

       img = cv2.imdecode(np_data,cv2.IMREAD_UNCHANGED)

  #Тут работа с изображением

        return hashMap

Видео как это все работает


Report Page