Это введение в「Detic」, модель машинного обучения, которую можно использовать с ailia SDK. Вы можете легко использовать эту модель для создания приложений ИИ с помощью ailia SDK, а также многих других готовых к использованию AIlia MODELS.

Обзор

Detic (детектор с классами изображений) — это модель сегментации, способная идентифицировать 21 тыс. классов объектов, разработанная Facebook Research и опубликованная в январе 2022 года. Она способна обнаруживать объекты, которые ранее необнаруживаемый с такими моделями, как YOLO, с высокой точностью и без переобучения. Модель можно обучать только с помощью аннотаций к изображениям без необходимости ограничивающих рамок объектов.





Архитектура

Идентификация ограничивающей рамки и класса (типа или категории) объекта на входном изображении называется обнаружением объекта или просто обнаружением. Идентификация только имени класса называется идентификацией объекта или классификацией.

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

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

Detic решает эту проблему, обучая детектор объектов на наборе данных для идентификации объектов.

Метод обучения детектора объектов без использования информации о ограничивающих прямоугольниках называется Обнаружение объектов со слабым контролем (WSOD). Detic использует полуконтролируемый WSODв наборе данных ImageNet-21K, который обычно используется для идентификации объектов, для обучения детектора объектов.

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

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

Набор обучающих данных

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

LVIS – это набор данных, используемый для оценки при обучении Detic. Этот набор данных обычно используется для обнаружения объектов и содержит более 1000 меток классов и 120 000 изображений.

Предварительно обученная модель Detic

Было опубликовано несколько вариантов Detic, обученных на нескольких магистралях.



Например, приведенная ниже модель была обучена с использованием магистрали SwinB (Swin-Transformer), CenterNet2detector, Federated Loss и архитектуры крупномасштабных моделей дрожания с наборами данных ImageNet21k и COCO. Можно выбирать между списками классов COCO и LVIS или списками классов COCO и ImageNet21k.

Detic_C2_SwinB_896_4x_IN-21K+COCO_lvis.onnx
Detic_C2_SwinB_896_4x_IN-21K+COCO_in21k.onnx

Модель ниже использует магистральную сеть ResNet50 и обучается с использованием набора данных ImageNet21k для идентификации объектов. Хотя mAP маски ниже, чем у SwinB, возможен более быстрый вывод.

Detic_C2_R50_640_4x_lvis.onnx
Detic_C2_R50_640_4x_in21k.onnx

Примеры результатов Detic

Detic может распознавать объекты гораздо большего числа категорий, чем YOLO, без необходимости повторного обучения. Вот пример распознавания Detic с использованием SwinB + LVIS.

Строительная техника

Конусы строительные

Спидометры приборной панели

Коровы и ушные бирки

Подводные животные

Ремни безопасности

Применение

Вы можете использовать следующие команды для запуска произвольных изображений Detic с помощью ailia SDK 1.2.10.

$ python3 detic.py --input input.jpg --savepath output.jpg


Также можно сделать вывод, используя магистральную сеть ResNet50, которая примерно в 4 раза быстрее, чем SwinB, с помощью параметра -m R50_640_4x.

$ python3 detic.py --input input.jpg --savepath output.jpg -m R50_640_4x

Ниже показан пример логического вывода на магистральной сети ResNet50 , который менее точен, чем результаты SwinB , показанные выше, но все же может обнаруживать строительные конусы.

Ограничения и обходные пути

Detic обладает высокой точностью, но из-за большого размера модели (551 МБ) он слишком тяжел для работы на периферийных устройствах. Поэтому для периферийных устройств желательно создавать данные аннотаций в Detic и обучать на них YOLOX для расширения категорий распознавания YOLOX по умолчанию.

Топор Инк. имеет сервис для автоматического обучения YOLOX с помощью Detic.

Топор Инк. разработал ailia SDK, который обеспечивает кросс-платформенный быстрый вывод на основе графического процессора.

ax Inc. предоставляет широкий спектр услуг от консалтинга и создания моделей до разработки приложений и SDK на основе ИИ. Не стесняйтесь связаться с нами для любого запроса.