[Обнаружение цели (1)] Подробное объяснение RCNN - новаторская работа по обнаружению целей с помощью глубокого обучения
[Обнаружение цели (2)] SPP Net - пусть расчет свертки делится
[Обнаружение цели (3)] Быстрый RCNN — пусть модель RCNN будет обучена от начала до конца
[обнаружение цели (4)] Faster RCNN - сеть RPN вместо выборочного поиска
[Обнаружение цели (5)] YOLOv1 - открытие главы по одноэтапному обнаружению цели
[Обнаружение цели (6)] YOLOv2 - Представляем якорь, лучше, быстрее, сильнее
[Обнаружение цели (7)] YOLOv3 - Комплексное улучшение точности
[Обнаружение цели (8)] В этой статье подробно рассматривается функция потери поля регрессии обнаружения цели - принципы IoU, GIoU, DIoU, CIoU и код Python.
[Обнаружение цели (9)] Подробное объяснение FPN - многомасштабное слияние функций через сеть функциональных пирамид
[Обнаружение цели (10)] Подробное объяснение RetinaNet — функция «Потеря очага» доводит одноэтапный алгоритм до пика
[Обнаружение цели (11)] CenterNet — без привязки, без NMS
[Обнаружение цели (12)] FCOS — использование идеи сегментации экземпляра для обнаружения цели Anchor Free
1. Мотивация: Замена выборочного поиска сетью RPN.
В том же 2015 году команда Росса Гиршика запустила алгоритм обнаружения целей Faster RCNN, который является еще одним шедевром после алгоритма Fast RCNN. Предыдущие статьи представилиRCNN,SPP NetиFast RCNN, этот процесс разработки также представляет собой постепенный сквозной процесс: от выборочного поиска RCNN + сети CNN + классификатора SVM + регрессора Bounding Box до сети SPP расчет свертки необходимо рассчитать только один раз, а затем к следующему быстрому Выборочный поиск RCNN + сеть CNN (включая полностью связанную классификацию прогнозирования слоев и регрессию) значительно сокращают время обучения и время вывода. Весь сквозной процесс разработки можно представить следующей схемой:
Предыдущая статья Представляем Fast RCNNТакже упоминается, что время прямого вывода сети занимает всего 0,32 с, а выборочный поиск занимает 2 с. Основное противоречие текущего узкого места производительности заключается в том, что алгоритм выборочного поиска требует слишком много времени. Чтобы решить эту проблему, Faster RCNN предлагает RPN, Region Proposal Network (сеть предложений региона) для замены исходного алгоритма выборочного поиска, другие части такие же, как у Fast RCNN, а именно: Faster RCNN = RPN + Fast RCNN. Ключом к пониманию Faster RCNN является понимание того, как работает механизм RPN.
2. Принцип быстрого RCNN
2.1 Pipeline
Faster RCNN = RPN + Fast RCNN, в основном разделенный на следующие этапы:
- Введите изображение в сеть CNN, чтобы получить карту объектов.
- Используйте сетевую структуру RPN для создания блоков-кандидатов, а затем спроецируйте эти блоки-кандидаты, сгенерированные RPN, на первый шаг, чтобы получить соответствующую матрицу признаков.
- Масштабируйте каждую матрицу признаков до фиксированного слоя ROI Pooling.
7*7
Карта объектов фиксированного размера и, наконец, сгладьте карту объектов и пройдите через серию полностью связанных слоев, чтобы получить результаты классификации и регрессии.
2.2 Структура сети РПН
2.2.1 Ввод и вывод РПН
На следующем рисунке показана структура сети RPN Сначала выясните, что такое вход и выход RPN.
- Входными данными сети RPN является матрица признаков, выводимая магистралью.Если магистралью является ZFNet или AlexNet, перед RPN находится 5 слоев, а если магистралью является VGG16, — 13 слоев. Если используется AlexNet, вход в RPN
13*13*256
карта особенностей . - Результатом сети RPN является 2k предсказаний оценок и 4k предсказаний значений отклонения bbox (k — количество предсказанных блоков-кандидатов), каждый блок-кандидат предсказывает два балла (различие между передним планом и фоном) и 4 значения отклонений bbox (определение значения смещения то же, что и для RCNN и Fast RCNN).
2.2.2 Детали сети RPN
После того, как RPN вводит карту объектов, извлеченную магистралью (при условии, что входное измерение равно13*13*256
), за которым следует3*3
Ядро свертки (3*3*256
)и1*1
Ядро свертки (1*1*256
), можно получить матрицу признаков 256-d на рисунке ниже. Затем матрица признаков будет вводиться в две ветви параллельно, слой cls первой ветви использует 2k1*1*256
Ядро свертки сворачивается, и выводятся 2 тыс. чисел, указывающих на то, есть ли объект в определенной области, а уровень регистрации второй ветви использует 4 тыс.1*1*256
Ядро свертки сворачивается, и, наконец, выводятся 4k чисел, представляющих смещения x, y, w и h.
Естественно, на ум приходят два вопроса: если это смещение, то по отношению к чьему смещению оно? К чему относится это к?2.2.3
глава объяснит подробно.
2.2.3 Анкерный механизм
Вышеупомянутое k относится к количеству ячеек привязки, и каждая позиция (каждое скользящее окно) соответствует исходному изображению.k=3*3=9
Якоря, включая комбинацию 3 масштабов и 3 соотношений сторон:
- scale: [128, 256, 512]
- ratio: 1:1, 1:2, 2:1
Сеть RPN выполняется после ввода карты объектов.3*3
Существует соответствие между положением карты объектов и исходным пикселем изображения, где центр опорного кадра блока привязки является центральной точкой ядра свертки, поэтому каждая свертка на слое conv5 будет автоматически соответствовать 9 блоку привязки. , так что смещение ограничивающей рамки, которое мы подгоняем, на самом деле является смещением относительно рамки привязки.
Вопрос 1:
Сгенерировано слишком много якорей, что делать, если это влияет на эффективность? для1000*60*3
изображение, которое дает примерно600*40*9
(20000+) анкоров, после игнорирования анкоров, которые пересекают границу изображения, осталось около 6000 анкоров. Существует много перекрытий между кадрами-кандидатами, сгенерированными RPN, и оценка cls, основанная на кадре-кандидате, подавляется алгоритмом NMS, так что в каждом изображении остается только 2000 кадров-кандидатов, что в основном соответствует количеству кадров-кандидатов, сгенерированных выборочным поиском. Автор подтверждает, что уменьшение количества блоков-кандидатов таким образом не снизит точность модели. Подводя итог этому отрывку, автор сжимает сгенерированный якорь следующими четырьмя способами:
- Отфильтруйте привязку, соответствующую исходной области изображения за границей изображения.
- Отфильтруйте привязки с IOU GT Box в [0.3, 0.7].
- После прохождения классификатора и регрессора выполняется подавление NMS для сгенерированного предложения региона.
- После NMS используйте результат классификации softmax (оценку), чтобы выбрать предложение Top-N Region.
Вопрос 2:
Для ZFNet рецептивное поле — 171, рецептивное поле VGG16 — 228, а максимальный масштаб поля привязки может достигать 512. Почему карта признаков рецептивного поля 171 запоминает и исправляет размер кадра 512? Автор считает, что хотя рецептивное поле меньше, чем якорь самого большого масштаба, оно может быть только частью информации об объекте, но частичной информации об объекте достаточно для обучения сети обнаружения цели, как и люди видят только верхнюю часть тела человека без нижней части тела, люди также узнают, что это человек.
2.2.4 Функция потерь RPN
Функция потерь RPN здесь такая же, как у Fast RCNN, как показано на следующем рисунке:
piУказывает вероятность того, что i-я якорь будет истинной меткой, pi1, если образец положительный, 0, если образец отрицательный, tiПредставляет параметр регрессии для прогнозирования ограничивающей рамки i-го якоря, tiУказывает, что ограничительная рамка i-го якоря соответствует параметру регрессии ограничительной рамки GT Box, NclsУказывает количество всех проб в мини-партии (256), NregКоличество анкерных позиций (не количество анкеров) около 2400. Здесь λ — коэффициент баланса двух Loss, взятый из оригинальной статьи.λ=10
. Можно заметить, что Нclsравно 256, а λ*1/NclsЭто примерно 1/240, что в принципе равно, поэтому в официальной реализации torch коэффициент регрессии Loss также установлен равным 1/N.cls, в соответствии с классификатором.
здесь лclsЭто потеря перекрестной энтропии для нескольких категорий (softmax + отрицательный логарифм вероятности). Многие технические блоги называют это расчетом потери перекрестной энтропии для двух категорий. На самом деле это неверно, потому что, если это перекрестная энтропия для двух категорий расчет потерь, слой cls Можно вывести только k баллов вместо 2k баллов. лregРассчитывайте потери только в том случае, если кадр-кандидат действительно является целевым случаем, который точно такой же, как в Fast RCNN, и по-прежнему использует гладкие потери L1.
Здесь регрессия смещения используется для регрессии bbox.Автор подбирает смещение между предсказанным кадром и привязкой и смещение между реальным кадром и привязкой, чтобы они были как можно более равными (я хочу сделатьP=G
, ЭквивалентноP-a=G-a
). В приведенной ниже формуле смещения x и y — это координаты кадра предсказания, w и h — ширина и высота кадра предсказания, а xaи тыaУказывает координаты привязки, соответствующие исходному положению изображения bbox, waи чaУказывает ширину и высоту привязки, соответствующие исходному положению изображения bbox, xи тыУказывает координаты якоря, соответствующие реальному GT Box, wи чУказывает, что якорь соответствует ширине и высоте реального GT Box. Здесь может возникнуть вопрос: почему бы напрямую не регрессировать блок предсказания и GT? Мы рассматриваем два случая, один из которых300*300
Размер большой цели, разница между полем предсказания и полем GT составляет 30 пикселей, а другое - всего15*15
Размер маленькой цели, разница между полем предсказания и полем GT составляет 2 пикселя. маленькая цель, и, наконец, в результате маленькая цель.Эффект обнаружения очень плохой. Это мотивация регрессии со смещением.
2.2.5 Деление положительной и отрицательной пробы
- Возьмите 256 анкоров для каждой картинки в виде мини-пакета и постарайтесь добиться соотношения положительных и отрицательных образцов до 1: 1. Если положительных образцов меньше 128, для заполнения используются отрицательные образцы.
- Положительные условия оценки образца, в статье приведены два условия, если одно из них выполняется, он считается положительным образцом.
- IOU соответствующего положения якоря и GT Box больше 0,7.
- Якорь, у которого самая большая долговая расписка с GT Box.
- Условие отрицательного суждения выборки: долговая расписка с любым GT Box меньше 0,3.
2.2.6 Тренировочный процесс РПН
Сейчас мы все используем совместный метод обучения RPN Loss + Fast RCNN loss для обучения всей сети end-to-end, на тот момент он был ограничен по разным причинам в 2015 году (возможно сеть не так хорошо обучена как сейчас , а гугл только предложил в том же году. Б.Н.), Быстрее RCNN в статье сегментированная тонкая настройка:
- Используйте предварительно обученную модель ImageNet, чтобы инициализировать параметры уровня магистральной сети.
- Уникальный сверточный уровень и параметры полносвязного слоя сети RPN фиксируются, а затем ImageNet и обучающая модель классификации используются для инициализации параметров предварительной сверточной сети, а кадр целевого предложения, сгенерированный сетью RPN, используется для обучения Быстрые параметры сети RCNN.
- Исправлено использование параметров сетевого уровня перед сверткой, обученных Fast RCNN, для точной настройки уникальных параметров сверточного уровня и полносвязного уровня сети RPN.
- Также сохраните фиксированные параметры сетевого уровня до свертки для точной настройки параметров полносвязного уровня сети Fast RCNN. Наконец, сеть RPN совместно использует параметры сетевого уровня до свертки с сетью Fast RCNN, чтобы сформировать единую сеть.
3. Эффекты и недостатки Faster RCNN
Как показано на рисунке ниже, по сравнению с Fast RCNN, Faster RCNN также является увеличением + скорость.mAP@0.5Точность увеличилась с 39,3% до 42,7%.В то же время Fast RCNN потребовалось 2,32 с, чтобы вывести изображение, в то время как Faster RCNN потребовалось всего 0,198 с, что также привело к значительному увеличению скорости. Сегодня Faster RCNN по-прежнему широко используется в отрасли. На практике двухэтапное обнаружение целей по-прежнему является более точным, чем одноэтапные алгоритмы без привязки. Однако Faster RCNN имеет плохой вывод в реальном времени, как правило, менее 10 кадров в секунду. который можно использовать только в сценариях, не требующих высокой скорости обнаружения.
Reference:
- АР Вест V.org/PDF/1506.01…
- woohooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo close непосредственно пропорционально.com/video/bv1afan...