banner
Qt/C++. Object Detector. Версия для комплекта Qt 6.5 LTS.

Программа Object Detector версии 1.7.1 написана для комплекта Qt 6.5.2. Все предыдущие версии основывались на Qt 5.15.2. В состав Qt 6.5 LTS разработчики компании добавили новые классы. Некоторые классы были модифицированы, другие удалены. В контексте изменений, внесенных в комплект Qt 6.5 LTS в программу Object Detector также были внесены изменения:
  • QMake заменен на CMake;
  • Протокол SMTP. Библиотека LibSMTP заменена на Simple-Mail;
  • Протокол MQTT. Реализация протокола переведена на версию Qt 6.5 LTS;
  • Протокол FTP. Использована программа cURL в составе объекта класса QProcess;
  • Transfer файлов по Bluetooth удален из версии программы 1.7.1;
  • Протокол HTTP POST. Протокол реализован и включен в состав Object Detector;
  • Отсутствующие в Qt 6.5 LTS классы QMultimedia, QAudioRecorder, QAudioProbe заменены на AudioWidget и XYSeriesIODevice.
На рисунке показано окно с визуальным изображением звука, сгенерированного программой при обнаружении объектов. Программа генерирует название объекта и дистанцию до него, а также сохраняет звук в файле на диске в формате m4a.
В программе исправлены найденные ошибки и недочеты.
Это девятнадцатая статья из цикла "Real-Time Object Recognition". Первые восемнадцать опубликованы здесь: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 и 18.
При разработке программ использовались:
  • операционная система macOS Big Sur версия 11.6.2;
  • среда разработки Qt Creator версия 12;
  • программа сборки CMake 3.26.0;
  • компилятор Apple Clang версия 13.0.0 (clang-1300.0.29.30);
  • библиотека OpenCV версия 4.5.5
  • нейронная сеть из группы YOLO, обученная на наборе данных COCO.
  • СУБД (система управления базами данных) PostgreSQL 14.7
  • администратор баз данных pqAdmin 4 version 6.4
1. Программа Object Detector выполняет следующие функции:
  • принимает поток данных с видеокамеры в режиме реального времени;
  • детектирует объекты с помощью нейронной сети (Deep Neural Networks) yolov4-tiny;
  • принимает настройки пользователя для установки связи между объектами и действиями;
  • озвучивает (произносит) имена обнаруженных объектов и вероятности их распознавания;
  • принимает и устанавливает настройки пользователя для модуля голосовых данных (высоту тона, громкость, скорость речи);
  • сохраняет изображения обнаруженных объектов (images) в виде jpg файллов на диске и ссылки на них в базе данных PostgreSQL;
  • отсылает файлы images по заданному в программе e-mail адресу;
  • отсылает файлы images по протоколу FTP на удаленный сервер;
  • записывает звук с микрофона на диск в виде m4a файлов;
  • отображает в отдельном окне приложения звуковой сигнал, поступающий на вход микрофона;
  • выводит на экран сохраненные на диске images;
  • формирует текущeе географическое положение устройства и сохраняет его в базе данных;
  • подключается к брокеру broker.hivemq.com;
  • подписывается на канал приема команд от программы Client Mqtt;
  • передает программе Client Mqtt через брокера фотографии обнаруженных объектов;
  • выполняет команды, полученные от приложения Client Mqtt;
  • тестирует исправность канала связи Mqtt;
  • открывает карту и показывает место нахождения (обнаружения) объекта(объектов);
  • выполняет SQL выборки по комбинациям параметров: тип объекта, период времени, вероятность распознавания;
  • предоставляет возможность редактирования снимков распознанных объектов;
  • загружает с веб сервера HTML страницу с фотографиями распознанных объектов и сохраняет ее на локальном диске компьютера;
  • передает изображения обнаруженных программой объектов на сервер по протоколу HTTP POST;
  • формирует матрицы настроек программы;
  • выполняет операции: Save As, Save, Open, Open Recent для файлов, содержащих матрицы настроек;
  • выполняет операции connect/disconnect для клиентов, работающих по протоколу TCP/IP;
  • выполняет операции read/send для объектов QByteArray и QString, содержащих изображения и имена файлов изображений по протоколу TCP/IP;
  • реализует протоколы SSL и WebSocket;
  • запускает/останавливает QuickTime Player для создания видео клипов;
  • измеряет, выводит на экран и озвучивает дистанции до распознанных объектов;
  • сохраняет на диске видео с камеры в файлах формата avi.

Окно с визуальным изображением звука, сгенерированого программой при обнаружении объектов. audio_widget.png
2. Документация на проекты.
Полное описание исходных текстов проектов: Object Detector version 1.7.1, iOS MQTT Client, macOS MQTT Client, Client TCP, SslWebSocketServer, SslWebSocketClient предоставляются платно в файлах pdf или odt при запросе через e-mail: veresov@jdesign.ru.
Проекты можно загрузить и поблагодарить: Спасибо!  2202   2005   9442   6213   (сбербанк)
Евгений Вересов.
10.01.2024 года.