www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Обнаружение объектов в режиме реального времени с моделью обнаружения TensorFlow

Дата публикации Jan 28, 2018

Недавно я закончил курс 4 «Сверточная нейронная сеть»который предлагаетdeeplearning.aiс помощьюCourseraкак часть «Специализация глубокого обучения».Эндрю Нг,Киан Катанфорооша такжеЮнес Бенсуда Муррипредложить много практических и теоретических знаний в этой специализации. Поэтому я очень рекомендую всем, кто хочет получить опыт глубокого обучения.

С самого начала я был очень амбициозен и интересовался возможностями CNN, и на одной из недель этого курса я узнал, как идеи, реализованные в классификации изображений, были полезны для классификации изображений с локализацией, и как идея, извлеченная из локализации, была полезна. полезно для обнаружения. Что ж, после окончания 3-й недели, полностью основанной на обнаружении объектов, некоторые вещи беспокоили меня, как и все остальное.

Но, прежде чем углубляться в детали о вещах, которые беспокоили меня. Позвольте мне сначала кратко объяснить, что такое классификация изображений и что я имел в виду, когда упомянул классификацию изображений с локализацией. Для начала давайте посмотрим на картинку ниже, я знаю, что собаки слишком милые, поэтому мои дорогие читатели, не теряйте вашего внимания :) Итак, под классификацией изображений я имел в виду всякий раз, когда алгоритм смотрит на эту картинку [рисунок 1] и может ответить и сказать, что это собака, что означает, что она может классифицировать изображение как изображение собаки.

И [рисунок 2], показывает, как алгоритм помещает ограничивающий прямоугольник или рисует синий прямоугольник вокруг положения собаки на изображении. Итак, то, что называется Классификацией с Локализацией, с термином Локализация относится к выяснению, где на рисунке обнаруживается Собака.

И [рисунок 3] показывает, как алгоритм обнаруживает и локализует не один, а несколько объектов на изображении.

После этого краткого объяснения настало время обратить ваше внимание на вопросы, которые я неоднократно упоминал как «вещи». Вопросы, которые возникали у меня в голове, заключались в том, существует ли какой-либо метод обнаружения объектов, который, как правило, более точен, чемТы только один раз (ЙОЛО)и имеют более высокую частоту кадров в секунду (FPS), чемБыстрее R-CNNs, В дополнение к этому я даже начал искать сетевую архитектуру, которая может работать на устройствах, которые не имеют высокой вычислительной мощности или не используют мощь графического процессора Nvidia, такого как Titan X или Jetson.

Как говорится «Чтобы что-то открыть, нужно что-то искать». Так что мои часы исследований привели меня кAPI обнаружения объектов TensorFlow”, Которая является платформой с открытым исходным кодом, построенной на основе TensorFlow, которая позволяет легко создавать, обучать и развертывать модели обнаружения объектов, а также предоставляет коллекцию моделей обнаружения, предварительно обученных наНабор данных COCO,Набор данных KittiиНабор данных Open Images, Одной из многих моделей обнаружения является сочетаниеДетекторы одиночного выстрела (SSD)а такжеMobileNetsархитектура, которая является быстрой, эффективной и не требует огромных вычислительных возможностей для выполнения задачи обнаружения объектов, пример которой можно увидеть на изображении ниже. Итак, простыми словами, на каждый мой вопрос ответила комбинация твердотельных накопителей с моделью MobileNets.

После обучения всех вас различным терминам, которые чаще всего используются в области компьютерного зрения, и самоотвечению на мои вопросы, пришло время перейти к практической части, рассказав вам, как с помощьюOpenCVа такжеTensorFlowс моделью ssd_mobilenet_v1 [ssd_mobilenet_v1_coco] обучался на наборе данных COCO [Common Object in Context]. Мне удалось обнаружить объекты в реальном времени с помощью веб-камеры за 7 долларов и ноутбука.

Итак, без дальнейших промедлений давайте начнем

  1. Прежде всего достичь этогоссылкав разделе «Содержание» раздела «Настройка» выберите подраздел «Установка».
  2. В основном, раздел «Установка» состоит из списка библиотек, от которых зависит API обнаружения объектов TensorFlow. Итак, установите все зависимости, прежде чем двигаться вперед.
  3. Среди всех библиотек вам нужно установить еще одну библиотеку, котораяПротобуф 2.6, Поскольку я использую Windows 10 [вы можете загрузить zip-файл в соответствии с используемой операционной системой], я скачал и распаковал этот файлprotoc-3.5.1-win32.zip,
  4. После установки всех требований пришло время загрузить модели, которые вы можете найтиВот, От вас полностью зависит, хотите ли вы клонировать или загрузить репозиторий. После принятия решения просто распакуйтефайли убедитесь, что ваш файл protoc и models должен находиться в одной папке
  5. Затем нам нужно изменить имя главной папки модели на модель. Если вы посмотрите в папке моделей поиск папки исследований, то в папке исследований найдите папку обнаружения объектов, в папке обнаружения объектов найдите папку протос.
  6. Открыв его, вы обнаружите, что нет файлов с именами, такими как box.predictor_pb2.py, fast_rcnn_box_coder_pb2.py, чтобы получить эти файлы, нам нужно скомпилировать библиотеки Protobuf.
  7. Итак, для того, чтобы скомпилировать библиотеку Protobuf, откройте приглашение Anaconda, измените каталог на место, где вы сохранили обе папки, затем выполните [change directory] cd models / research и затем введите эту команду, состоящую из полного пути, если ваш протокол Файл .exe находится с последующим указанием [protoc object_detection / protos / *. proto - python_out =.].
  8. Например, [C: /Users/ADMIN/tf_obj_det/protoc-3.4.0-win32/bin/protoc object_detection / protos / *. Proto - python_out =. ], здесь tf_obj_det - это папка, в которой я сохранил модели и файл protoc после распаковки.
  9. Теперь, после завершения части компиляции, просто введите блокнот jupyter в строку приглашения Anaconda / терминал Anaconda, а затем, как только блокнот jupyter откроется, вы готовы написать код для обнаружения объектов в реальном времени.
  10. Вы можете использовать код для этого проекта из моего репозитория, который упоминается в разделе «ССЫЛКИ», и наряду с ним я также включаю ссылку на видео YouTube, которая фактически демонстрирует, как моя веб-камера обнаруживает каждый объект в кадре, который вы можете опыт на картинке ниже.

Последняя вещь…
Если вам понравилась эта статья, нажмите 👏 ниже и поделитесь ею с другими людьми, чтобы они тоже могли наслаждаться ею.

ССЫЛКИ:

  1. Ссылка на репозиторий GitHub для кода этого проекта может быть найденаВот,
  2. Чтобы узнать больше об обнаружении объектов, вы можете проверитьВот,
  3. Чтобы узнать больше о Convolutional Neural Network, вы можете проверитьВот,
  4. И последнее, но не менее важное: вы можете посмотреть видео с YouTubeВот,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map