Qt/C++. Распознавание объектов и создание видео клипов.
В статье обсуждается несколько вопросов, связанныех с "Real-Time Object Recognition".
Первый из них - это время, затрачиваемое программой на распознавание и сохранение объектов.
Предположим, что частота кадров с видекамеры (FPS - frames per second) составляет 24 - 30 единиц в секунду.
Это означает, что программе Objects Detection надо успеть в течении 33 - 40 миллисекунд распознать каждый кадр и сохранить его на диске в виде изображения.
Если по какой либо причине этого не происходит, то часть кадров будет потеряна.
Конечно для компьютеров, имеющеих GPU(Graphics Processing Unit), уложиться в это время вполне реально, а вот для CPU
возможны потери отдельных кадров.
Второй вопрос.
Давайте подсчитаем, сколько кадров (один кадр - одно распознанное изображение) в идеальном случае будет сохранено программой на диске, например, за минуту?
При частоте от 24 до 30 единиц, число сохраненных изображений составит от 1440 до 1800 файлов.
Фактически это значение, конечно, может быть меньше по нескольким причинам.
Например, из за того, что объект часть времени может отсутствовать перед камерой или некоторые кадры будут распознаны с меньшим значением определенного коэфициента вероятности.
Тем не менее, вопрос состоит в нарастающих объемах изображений, которые нерационально держать в оперативной памяти. Другими словами, в программе
должен быть реализован механизм постраничного отображения сохраненных на диске изображений, скажем, по несколько сотен изображений на страницу.
Как просматривать и анализировать большое колличество изображений?
Простым решением может быть создание видео клипа, используя для этого,
например, QuickTime Player. Это стандартный плеер для macOS, он создает клип из 1400 изображений примерно за 15 секунд.
Еще минута потребуется на просмотр клипа в плеере.
Как можно запускать QuickTime Player? Player можно запускать как отдельное приложение из Launchpad или из программы Objects Detection.
Большой разницы нет.
В программе Objects Detection version 1.3 введен новый режим работы "Save to Disk",
при котором заданные оператором объекты распознаются и записываются на локальный диск. По сети изображениия этих объектов никуда не отсылаются.
Другие выбранные типы объектов могут быть распознаны, сохранены и переданы по сети.
Ниже приведен пример клипа созданного из последовательности изображений, состоящей из 1070 jpg файлов, записанных в режиме "Save to Disk".
Для создания этой последовательности программе было предложено распознавать и сохранять объекты типов: Tvmonitor, Sofa, Chair.
В текущей версии программы устранены найденные ошибки.
Это пятнадцатая статья из цикла "Real-Time Object Recognition".
Первые четырнадцать опубликованы здесь:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13 и
14
При разработке программ использовались:
1. Программа "Objects Detection" выполняет следующие функции:
2. QuickTime Player в программе "Objects Detection".
Запуск/останов плеера может быть выполнен из меню "Create Movies" программы "Objects Detection 1.3". После запуска плеера для создания клипа
следует перейти в меню "Файл -> Открыть последовательность изображений", затем перейти в меню "Правка -> Выбрать все"
и далее "Выбрать медиафайл". QuickTime Player содаст клип с заданным именем и расширением "mov".
Далее клип может быть запущен на просмотр.
Работа с плеером реализована в классе MainWindow программы "Objects Detection version 1.3" в строках 366-445.
Здесь выполняется обработка основных сигналов (в терминах .NET - событий):
&QProcess::started, &QProcess::finished, &QProcess::errorOccurred.
По запуску плеера в качестве аргумента ему может быть передан любой файл, например : "./Movies/ObjectDetection/Start.mov".
Ниже приведен пример клипа, созданного из распознанных и сохраненных в виде последовательности файлов объектов.
Полное описание исходных текстов проектов "Objects Detection version 1.3", "iOS MQTT Client", "macOS MQTT Client", "Client TCP", "SslWebSocketServer", "SslWebSocketClient" предоставляются платно в файлах pdf или odt при запросе
через e-mail: veresov@jdesign.ru.
|