banner
Qt/C++. Object Recognition and Bluetooth Technology.

Как передавать изображения распознанных на компьютере объектов на телефон? В статье описана реализация с использованием технологии Bluetooth. Выглядит это следующим образом. В меню программы "Object Detection" пользователь выбирает группы объектов, подлежащих распознаванию. Например, в эту группу можно включить людей или (и) животных, других объектов. Затем в программе следует выполнить сканирование доступных телефонов и создать пару между Bluetooth устройствами компьютера и телефона. От владельца телефона требуется разрешение на связь. После получения разрешения можно запускать передачу изображений в ручном или автоматическом режиме. В автоматическом режиме все файлы изображений распознанных программой объектов будут передаваться на телефон. В ручном режиме работы любой выбранный пользователем файл с компьютера может быть передан на телефон.
Обращаю внимание на потенциальную возможность сканирования устройств принадлежащих объекту, после его распознавания. Это может быть использовано для получения дополнительной информации об объекте.
Это десятая статья из цикла "Real-Time Object Recognition". Первые девять опубликованы здесь: 1, 2, 3, 4, 5, 6, 7, 8 и 9.
При разработке программы использовались:
  • операционная система macOS Big Sur версия 11.6.2;
  • среда разработки Qt Creator версия 8.0.0;
  • компилятор Apple Clang версия 13.0.0 (clang-1300.0.29.30);
  • библиотека OpenCV версия 4.5.5
  • нейронная сеть из группы YOLO, обученная на наборе данных COCO.
  • СУБД (система управления базами данных) PostgreSQL 14.1
  • администратор баз данных pqAdmin 4 version 6.4
1. Программа Object Detection выполняет следующие функции:
  • принимает поток данных с видеокамеры в режиме реального времени;
  • детектирует объекты с помощью нейронной сети (Deep Neural Networks) yolov4-tiny;
  • принимает настройки пользователя для установки связи между объектами и действиями;
  • озвучивает (произносит) имена обнаруженных объектов и вероятности их распознавания;
  • принимает и устанавливает настройки пользователя для модуля голосовых данных (высоту тона, громкость, скорость речи);
  • сохраняет изображения обнаруженных объектов (images) в виде jpg файллов на SSD диске и ссылки на них в базе данных PostgreSQL;
  • отсылает файлы images по заданному в программе e-mail адресу;
  • отсылает файлы images по протоколу FTP на удаленный сервер;
  • записывает звук с микрофона на SSD диск в виде wav файлов;
  • отображает в Status Bar приложения уровень звукового сигнала, поступающего на вход микрофона;
  • выводит на экран сохраненные на диске images;
  • формирует текущeе графическое положение устройства и сохраняет его в базе данных;
  • подключается к брокеру broker.hivemq.com;
  • подписывается на канал приема команд от программы Client Mqtt;
  • передает программе Client Mqtt через брокера фотографии обнаруженных объектов;
  • выполняет команды, полученные от приложения Client Mqtt;
  • тестирует исправность канала связи Mqtt;
  • открывает карту и показывает место нахождения (обнаружения) объекта(объектов);
  • выполняет SQL выборки по комбинациям параметров: тип объекта, период времени, вероятность распознавания;
  • предоставляет возможность редактирования снимков распознанных объектов;
  • загружает с веб сервера HTML страницу с фотографиями распознанных объектов и сохраняет ее на локальном диске компьютера;
  • сканирует и находит устройства Bluetooth;
  • подключается к выбранному пользователем устройству Bluetooth образуя пару;
  • пересылает на удаленное устройство Bluetooth, например телефон, файлы изображений распознанных программой объектов.
2. Поиск устройств Bluetooth, создание пары и передача файлов изображений.
Описываемые в статье функции реализованы в файлах проекта: newthread, mainwindow, selectname, device, service, progress. Последние три файла с некоторыми дополнениями включены в проект из примеров к документации QT.
Какие типы устройства Bluetooth могут быть сопряжены в пару? Самые разнообразные. Например, при отладке программы использовался компьютер iMac Apple и телефон Philips. При сопряжении устройств владелец телефона может согласиться или отказаться от предложения создания пары.
Как в программе устанавливается автоматический или ручной режим передачи файлов? Для этого в окне Bluetooth Scanner есть CheckBox Manual Mode.
Может быть написан вариант программы, выполняющий сканирование устройств Bluetooth после обнаружении программой объекта заданного типа. При этом связь между ранее созданной парой останется рабочей. Использовать такой вариант работы можно для получения дополнительной информации об объекте.
Ниже показан пример работы программы.
photo_list.png
Полное описание исходного текста программы Object Detection предоставляется платно в файлах pdf или odt при запросе через e-mail: veresov@jdesign.ru
Проект можно загрузить.
Евгений Вересов.
03.08.2022 года.