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
Видео как это все работает