Обнаружение объектов на изображении для автономных роботов | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №20 (258) май 2019 г.

Дата публикации: 18.05.2019

Статья просмотрена: 268 раз

Библиографическое описание:

Соломатин, А. И. Обнаружение объектов на изображении для автономных роботов / А. И. Соломатин. — Текст : непосредственный // Молодой ученый. — 2019. — № 20 (258). — С. 43-44. — URL: https://moluch.ru/archive/258/59176/ (дата обращения: 18.12.2024).



В современной жизни нас все чаще и чаще начинают окружать роботы или какие-либо автоматизированные системы. Роботы с каждым днем становятся все умнее и умнее, и все больше похожи на человека. Но, чтобы стать более похожим на человека, компьютеры должны думать, как человек, получать информацию об окружающем мире, как человек, и обрабатывать ее, как человек. Большую часть информации об окружающем мире человек получает при помощи глаз. Для робота в роли глаз выступают видеокамеры, однако если просто поставить на робота камеру не кажется большой проблемой, то заставить его понимать, что происходит вокруг при помощи камеры, уже задача намного сложнее. Одной из основных функций зрения является определение объектов на получаемом изображении. В условиях интеграции роботов в повседневную жизнь основными объектами для обнаружения являются люди и иные роботы. Автономные роботы, как правило, обладают довольно ограниченными вычислительными и энергетическими ресурсами. Не всегда представляется возможным предугадать, как будет выглядеть тот или иной объект в разных условиях. Все это усложняет и без того непростую задачу обнаружения объектов.

В рамках компьютерного зрения эта задача называется object detection (обнаружение объектов), и с этой задачей отлично справляются заранее обученные сверточные нейронные сети. Библиотека TensorFlow для глубокого обучения позволяет строить такие нейронные сети и даже предоставляет несколько обученных моделей нейросети, которые можно изменить и переобучить под свои задачи. Этой нейронной сети можно, как ребенку, показывать, где на изображениях находится человек, а где робот. Подготовив большую базу данных с правильными ответами, мы можем запустить обучение модели нейронной сети, и через некоторое время сеть научится правильно определять людей и роботов на изображении. Таким образом, нейросеть сама найдет закономерности, по которым можно определить человека на изображении, в какой бы позе он не находился и что бы вокруг него не находилось. Тем не менее, такие расчеты требуют колоссальных вычислительных мощностей — центральные процессоры просто не предназначены для таких вычислений. Однако графические процессоры выполняют эти вычисления на порядок быстрее. Если обучить нейронную сеть можно заранее на мощных компьютерах, то работа уже обученных нейронных сетей, которая все еще требует немалых вычислительных ресурсов, должна происходить на бортовой ЭВМ самого робота. В качестве бортовой ЭВМ может выступать очень популярный одноплатный компьютер raspberry pi 3, обладающий достаточными вычислительными мощностями и низким энергопотреблением для управления роботом на автономном питании, но не позволяющий своевременно обрабатывать информацию с камеры. К счастью, компаний NVIDIA недавно выпустила относительно бюджетный одноплатный компьютер jetson NANO (рис. 1), который помимо центрального процессора содержит графический процессор со 128 ядрами NVIDIA CUDA. Этот компьютер способен запустить обученную модель сверточной нейросети под названием «ssd_inception_v2_coco_2018_01_28» и обрабатывать с помощью нее до 5 кадров в секунду, что вполне достаточно для быстрой реакции робота при изменении ситуации на изображении и на порядок выше, чем на raspberry pi 3.

https://lh4.googleusercontent.com/0HwwR5bfKA5wRQ_OG89_q7_7nD67-zifughS7mtCTG3c7yErYXFloxysx0UQcNx-LSDiK7NFnhfcrcNm-emuUEI1XPnm002Lzw0t0XwstyXzIFp5aShhnhWD5CRjcB12s7T-uIfO

Рис. 1. Jetson nano

Для решения данной проблемы была реализована работоспособная система, состоящая из Raspberry pi 3 и Jetson NANO. Raspberry pi 3 является бортовой ЭВМ робота с подключенной к ней камерой и работающими программами для управления. Jetson NANO принимает видеопоток, отправленный с бортовой ЭВМ, анализирует его и посылает результаты обработки обратно на бортовую ЭВМ. Связаны эти компьютеры посредством ethernet кабеля, и весь обмен данными происходит по стандартным сетевым протоколам.

https://lh4.googleusercontent.com/TyZbjHOJrp7AhP2qO8hF0y7KaqCpTqzMuzvtVZyk9G71JR0XgCZwba8Rfcm5NmW_NRSb9VP00W9S4C1Z-L8MsW1wraVV1mC9gNaDpbOMdcBfK0PIa2rS9tL-CynECyHOYphf4h3t

Рис. 2. Пример обнаружения объектов на изображении

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

Литература:

  1. Evan EdjeElectronics / Tutorial to set up TensorFlow Object Detection API on the Raspberry Pi // github.com. URL: https://github.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi (дата обращения: 01.04.2019).
  2. Evan EdjeElectronics / How To Train an Object Detection Classifier for Multiple Objects Using TensorFlow (GPU) on Windows 10 // github.com. URL: https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10 (дата обращения: 02.04.2019).
  3. kangalow / Jetson Nano — Use More Memory! // jetsonhacks.com. URL: https://www.jetsonhacks.com/2019/04/14/jetson-nano-use-more-memory/ (дата обращения: 04.04.2019).
  4. Андрей Созыкин / Поиск объектов на изображениях. URL: https://www.asozykin.ru/deep_learning/2018/07/24/Object-Detection-using-TensorFlow.html (дата обращения: 06.04.2019).
Основные термины (генерируются автоматически): NANO, NVIDIA, бортовая ЭВМ, нейронная сеть, робот, CUDA, графический процессор, изображение.


Задать вопрос