Обнаружение объектов можно определить как задачу классификации и локализации объектов. Обнаружение объектов играет важную роль во многих проектах глубокого обучения и приложениях AIoT, например, нам необходимо обнаружение объектов для автономных транспортных средств, оно необходимо нам для наблюдения с помощью камер видеонаблюдения, и даже для приложений, используемых нами для создания PDF-файлов, в настоящее время используется обнаружение объектов для обнаружения документов. Короче говоря, обнаружение объектов имеет широкий спектр приложений.

Таблица содержания

  • Введение в cAInvas
  • Импорт данных и необходимых файлов
  • Загрузить предварительно обученную модель
  • Тестирование модели
  • Введение в DeepC
  • Компиляция с DeepC

Введение в cAInvas

CAInvas - это интегрированная платформа разработки для создания интеллектуальных периферийных устройств. Мы не только можем обучить нашу модель глубокого обучения с помощью Tensorflow, Keras или Pytorch, мы также можем скомпилировать нашу модель с его пограничным компилятором под названием DeepC для развертывания нашей рабочей модели на кромочные устройства для производства. Модель обнаружения объектов также является частью галереи cAInvas, и все зависимости, которые вам понадобятся для этого проекта, также предустановлены.

cAInvas также предлагает различные другие записные книжки для глубокого обучения в своей галерее, которые можно использовать для справки или для получения информации о различных проектах глубокого обучения. Он также имеет поддержку графического процессора, что делает его лучшим в своем роде.

Импорт данных и необходимых файлов

Когда дело доходит до обнаружения мультиклассовых объектов, в основном все полагаются на предварительно обученные модели, такие как R-CNN или Yolo. Но их реализация и управление всеми их файлами конфигурации, весами моделей и т. Д. Может занять много времени. Но поскольку этот проект уже является частью cAInvas Gallery, мы можем легко импортировать все, что есть в нашей рабочей области, выполнив некоторые команды.

Выполнение вышеуказанных команд загрузит в нашу рабочую область следующее:

yolov3.weights          
  test_images3.jpg             
  test_images2.jpg             
  cfg/yolov3.cfg          
  coco.names              
  yolov3_model.h5                
  test_image.jpg

Это все файлы, которые нам понадобятся для решения нашей задачи классификации на несколько классов.

Загрузить предварительно обученную модель

Как только мы закончим загрузку необходимых файлов, мы загрузим предварительно обученную модель. Поскольку модель Yolov3 была обучена на наборе данных MS COCO в течение тысяч эпох и часов обучения, поэтому нет необходимости в явном обучении, мы можем просто использовать предварительно обученную модель и ее веса, предоставленные Yolo. Следующим шагом является загрузка файла весов и конфигурации Yolov3, чтобы он мог выполнять обнаружение мультиклассовых объектов. Мы можем сделать это, выполнив следующие команды:

Тестирование модели

После того, как мы загрузили все файлы конфигурации, модель и ее веса. Теперь нам просто нужно протестировать нашу модель с тестовыми изображениями, которые мы скачали ранее. Модель хорошо распознала большинство объектов на изображении, а также нарисовала ограничивающую рамку вокруг объектов.

Введение в DeepC

Компилятор DeepC и структура логического вывода предназначены для включения и выполнения нейронных сетей с глубоким обучением путем сосредоточения внимания на функциях устройств малого форм-фактора, таких как микроконтроллеры, eFPGA, процессоры и другие встроенные устройства, такие как raspberry-pi, odroid, arduino, SparkFun Edge, risc -V, мобильные телефоны, ноутбуки x86 и arm, среди прочего.

DeepC также предлагает заранее подготовленный компилятор, создающий оптимизированный исполняемый файл на основе цепочки инструментов компилятора LLVM, специализированной для глубоких нейронных сетей с ONNX в качестве интерфейса.

Компиляция с DeepC

Теперь мы скомпилируем файл yolov3_model.H5 с помощью компилятора DeepC, который входит в состав платформы cAInvas, чтобы он преобразовал нашу сохраненную модель в формат, который можно легко развернуть на периферийных устройствах. И все это очень легко сделать с помощью простой команды.

Вот и все, наше обнаружение объектов готово к развертыванию на пограничных устройствах.

Ссылка на блокнот cAInvas: https://cainvas.ai-tech.systems/use-cases/object-detection-app-using-yolo-v3/

Кредит: Ашиш Арья