Можем ли мы использовать несколько моделей для обнаружения объектов?

Итак, я работаю над обнаружением объектов уже много времени, я видел, как модели, такие как YOLO и Mask-RCNN, используют одну глубокую модель для классификации объектов. Можно ли создать несколько небольших сетей для сравнения, чтобы идентифицировать каждый объект отдельно, чтобы повысить точность, и как это повлияет на скорость? Я немного запутался.


person Rahul Mangalampalli    schedule 11.05.2020    source источник
comment
Да, это можно было бы назвать ансамблевой сетью.   -  person jakub    schedule 11.05.2020


Ответы (2)


Если вы заглянете внутрь «черного ящика» таких моделей, как Yolo и Mask-RCNN, вы поймете, что они уже содержат «несколько небольших сетей», в определенной степени, в отношении обнаружения объектов.

Фактически, Mask-RCNN - это примерно Faster-RCNN с дополнительной ветвью для сегментации. Однако, что касается обнаружения, существует «где-то» слой классификации, который дает оценку для каждого объекта класса (и уровень регрессии для оценки блока). Все классы объектов оцениваются из общего представления (всей остальной сети), и только последний уровень является специализированным для каждого класса. Тем не менее, суть в том, что есть преимущества для совместного вычисления общего представления для всех классов объектов, в частности потому, что положительная выборка для класса i обычно также является отрицательной выборкой для класса j.

Идея для YOLO (v1) совершенно иная, но «где-то» в конце сети есть стек слоев нейронов. Для каждого класса объектов существует слой, который вычисляет вероятность присутствия соответствующего объекта в области изображения. И снова слои вычисляются из «общего представления», поэтому в этом смысле они являются вполне независимыми «классификаторами». Но опять же, эти «классификаторы» выигрывают от представления, которое вычисляется совместно для всех объектов класса.

Честно говоря, эти объяснения весьма приблизительны, чтобы попытаться внести ясность. Если вы действительно хотите понять, лучше всего прочитать публикации Yolo или маска R-CNN. Тем не менее, это довольно технический вопрос, требующий хорошего понимания основ глубокого обучения. В Интернете также есть несколько хороших руководств.

При этом вы можете изменить архитектуру Yolo и Mask R-CNN, чтобы заменить существующие слои более сложными «небольшими нейронными сетями». Это может улучшить производительность, поскольку у вас будет больше нейронов, но также будет сложнее обучать. Как сказано в комментариях @jakub, вы также можете обучить несколько конкретных сетей и добавить слой для выбора между всеми, но это будет «новая» архитектура, и я сомневаюсь, что вы получите лучший компромисс между производительностью и вычислительной эффективностью, чем Yolo или маска R-CNN

person xiawi    schedule 11.05.2020

вы можете объединить несколько моделей в ансамбль. Я нашел эту статью, в которой есть более подробное объяснение. об объединении нескольких моделей

person Dulanga Heshan    schedule 19.06.2021