Qt/C++. Object Recognition and Geo Position Info.
В статье описан пример формирования и использования географического (Geo) положения в контексте Object Recognition.
Эта задача может быть актуальной в том случае, когда камера, распознающая объекты, находится в движении. Geo положение предствляет собой вектор, состоящий из 9 значений
и изменяющийся с некоторой частотой. Предположим, что мы нашли способ его формирования.
Однако cам по себе вектор мало что значит.
Для полной картины его значения требуется сопоставлять с другими данными, такими как: имя объекта, время обнаружения, фотографией, верояностью распознавания.
Предположим, что мы создаем такой список.
Однако эти данные надо где-то сохранять с тем, чтобы затем их использовать. Как вариант решения, полученную информацию можно записывать в таблицы базы данных с соответствующими связями
между записями (кортежами).
Ниже описан пример формирования geo положения объектов с использованием классов QGeoPositionInfoSource, QGeoPositionInfo, QGeoCoordinate. Детектирование объектов выполняется средствами Qt/C++, Open/CV и нейронной сетью из группы YOLO. Сохраняется информация в базе данных СУБД PostgreSQL в двух таблицах detectedobjects и geoposition.
Это пятая статья из цикла "Real-Time Object Recognition". Первые четыре статьи обубликованы
ранее здесь, здесь,
здесь и здесь.
При разработке программы использовались:
1. Программа выполняет следующие функции:
2. Формирование вектора Geo Position.
В состав вектора входят значения:
При использовании wi-fi для определения geo координат из приведенного выше перечня будут формироваться только последние пять позиций.
Программа при этом выведет сообщение об отсутствии GPS трекера: "serialnmea: No known GPS device found. Specify the COM port via QT_NMEA_SERIAL_PORT."
Формирование вектора реализовано в файлах positionclient.cpp и positionserver.cpp. В программе использованы фрагменты исходных текстов из примеров к книге:
Hands-On Mobile and Embedded Development with Qt 5: Build apps for Android, iOS, and Raspberry Pi with C++ and Qt.
Рекомендую эту книгу.
3. Сохранение информации в базе данных.
Приложение имеет две таблицы: detectedobjects и geoposition. Таблица detectedobjects
содержит следующий перечень полей и соответствующих им значений:
Записи в таблицах имеют отношение один к одному.
Полное описание программы предоставляется платно в файлах pdf или odt.
|