Недавно я решил научиться реализовывать алгоритмы машинного обучения (ML), особенно в области компьютерного зрения, с помощью известного пакета Pytorch. Одним из полезных ресурсов, позволяющих растопить лед с помощью такого мощного пакета машинного обучения, является серия руководств PyTorch для начинающих , предлагаемых Learn OpenCV. Серия содержит некоторые основные темы, которые должны быть понятны разработчикам компьютерного зрения, использующим Pytorch.

Я следую второму руководству под названием: PyTorch для начинающих: классификация изображений с использованием предварительно обученных моделей. Я удивлен количеством архитектур, поддерживаемых модулем Torchvision для классификации изображений.

Пакет Torchvision состоит из популярных наборов данных, архитектур моделей и стандартных преобразований изображений для компьютерного зрения. По сути, если вы занимаетесь компьютерным зрением и используете PyTorch, Torchvision вам очень поможет!

Я подумал, что было бы полезно использовать приложение YonoArc на платформе YonoHub, чтобы инкапсулировать все поддерживаемые архитектуры классификации изображений с помощью пакета torchvision в одном блоке. У разработчиков будет возможность использовать только один блок YonoArc для оценки и сравнения различных характеристик известных классификаторов с его предварительно обученными весами.

YonoHub – это первая облачная система для проектирования, совместного использования и оценки сложных систем, таких как автономные транспортные средства, ADAS и робототехника. Yonohub имеет инструмент перетаскивания для создания сложных систем, состоящих из множества блоков, торговую площадку для обмена и монетизации блоков, конструктор для пользовательских сред и многое другое.

Как работает блок?

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

Блок Torchvision Image Classifier YonoArc имеет один вход, который интуитивно относится к типу изображения. Источником входных изображений является проигрыватель набора данных nuScenes, как показано выше. С другой стороны, блок имеет два разных выхода. Первый выходной порт — это изображение после написания классов, в которых модель уверена. Другой порт — это классы, связанные с его достоверностью, предсказанной моделью. Тип этого выходного порта — это пользовательское сообщение ROS, которое включено в пакет perception_msgs, который я реализовал для взаимодействия с блоками YonoArc в области компьютерного зрения.

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

Отличительной особенностью YonoArc является то, что каждый блок может использовать разные модели ресурсов в одном и том же конвейере. Например, блок классификатора изображений использует GPU в качестве модели ресурсов. Однако восьмиядерный ЦП является ресурсной моделью как для проигрывателя nuScenes, так и для блоков просмотра видео.

Исходный код

При реализации представленного блока я использую код туториала LearnOpenCV. Я манипулирую им, чтобы он был общим и подходил для структуры кода блоков YonoArc. YonoHub Docs очень полезен для понимания того, как создать блок YonoArc API Python 3. Вы можете прочитать эту часть документации, чтобы понять, какие изменения происходят с кодом туториала. Вы можете проверить исходный код ниже,

Результаты

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

Наконец, я попытался продемонстрировать, как использовать приложение YonoArc на платформе YonoHub для реализации руководства по классификации изображений от Learn OpenCV. Объединение преимуществ Pytorch, особенно Torchvision, и приложения YonoArc для создания инкапсулированной библиотеки моделей для классификации изображений в форме блока. Вы можете бесплатно приобрести блок Torchvision Image Classifier через YonoStore и попробовать различные доступные модели, не вникая в детали кода. Кроме того, вы можете клонировать приведенный выше исходный код отсюда, чтобы повторно использовать его для таких блоков. Следуйте инструкциям в упомянутом учебнике, чтобы узнать, как реализовать блок YonoArc.

Далее я буду работать над учебным пособием по семантической сегментации, чтобы иметь аналогичный многоразовый блок YonoArc. Попробовать Yonohub легко. Новые пользователи получают бесплатные кредиты в размере 25 долларов США. Зарегистрируйтесь на Yonohub!