Практика 5. Создание пользовательского приложения с применением классификации, детектирования и трекинга.
Цель данной работы - разработать приложениедля поэтапного решения задач детектирования, классификации и трекинга с использованием модуля Dnn библиотеки OpenCV.
В интернете содержится большое количество видео типа "топ X пород собак". В большинстве таких видео нет соответствия между представленной собакой и ее породой. Задача: автоматизировать классификацию представленных собак по породам. Необходимо разработать приложение для:
- детектирования собак;
- распознавания (классификации) породы;
- сохранения информации о породе в текстовый файл;
- сохранения ОДНОЙ фотографии каждой собаки.
Основные задачи:
- Скачать обученные сети
squeezenet1.1
, mobilenet-ssd. - Реализовать приложения для сбора статистики (представительства) объектов по типам.
Дополнительные задачи:
- Используйте собственную реализацию детектора и решения задачи о назначениях Практики 4 для детектирования и отслеживания объектов.
- Для случая, когда на видео присутствует два объекта одного класса, удалить из списка пород собак повторяющиеся. Для каждой породы сохранить фото каждой собаки данной породы, представленной на видео.
- Вывести топ-1, топ-3 пород собак, представленных на видео.
- Скачать обученную сеть
squeezenet1.1
. - Скачать модель для детектирования объектов mobilenet-ssd.
- Использовать решение Практики 2 для детектирования объектов.
- Использовать решение Практики 4 для трекинга(отслеживания) каждого объекта(собаки). Примечание: используйте собственный детектор.
- Сохранить необходимую информацию (классы собак и одно изображение представителя данного класса) на диск.
-
-
в папке
<openvino_dir>/deployment_tools/tools/model_downloader/
запустить скрипт downloader.py с необходимыми параметрам для скачивания обученных моделейsqueezenet1.1
, mobilenet-ssd. Пример:$ cd "C:\Intel\computer_vision_sdk\deployment_tools\tools\model_downloader" $ python downloader.py --name mobilenet-ssd --output <destination_folder>
-
- Перенести исходный код практики
<project_source>/src/practice4.cpp
в<project_source>/src/practice5_YOUR_NAME.cpp
, удостовериться в его работоспособности на видеоdata/topdogs.mp4
. - В файле
<project_source>/src/practice5_YOUR_NAME.cpp
подключить заголовочный файлclassificator.h
и создать объект классаDnnClassificator
. - В файле
<project_source>/src/practice5_YOUR_NAME.cpp
в функцииmain
при помощиDnnClassificator
добавить классификацию объектов для областей изображения, на которых был детектированы собаки. - Записать породу собаки, полученную при помощи
DnnClassificator
, в текстовый файл. - Сохранить ОДНО изображение каждой собаки на диск.
- Решить задачи из списка Дополнительные задачи.