Возьмите вас, чтобы прочитать компьютерное зрение RCNN из серии статей
Но таким образом мы всегда привыкли неохотно меняться.
предисловие
Серия статей RCNN в основном состоит из **RCNN, Fast RCNN, Faster RCNN, Mask RCNN, Cascade RCNN,** Эта серия статей представляет собой двухэтапный алгоритм обнаружения целей Эта серия алгоритмов имеет высокую точность и хорошее эффект Да Важный класс методов.
Давайте сначала объясним R-CNN, новаторскую работу по обнаружению целей.
Rich feature hierarchies for accurate object detection and semantic segmentation
Это более ранний алгоритм обнаружения объектов, опубликованный в CVPR в 2014 г. Это также новаторская работа серии алгоритмов R-CNN. В Интернете можно найти множество связанных блогов. Эта статья не находится в порядке статей, но, глядя на этот алгоритм, основанный на собственном опыте, я надеюсь дать новичкам интуитивное ощущение, и нет необходимости слишком запутываться в деталях, потому что в последующих алгоритмах многие части были улучшены.
Будучи первым документом, в котором концепция RPN сочетается с CNN, R-CNN постоянно совершенствовалась в дальнейшем, и был рожден ряд классических моделей, таких как Faster-RCNN и Mask-RCNN, поэтому это необходимо. читать классическую бумагу для входа CV.
01 Найдите рекомендуемые области
Первым шагом в архитектуре R-CNN является поиск рекомендуемого региона (Region Proposal), то есть выяснение возможной интересующей области (Region Of Interest, ROI). Существует три метода получения рекомендуемой области, которые делятся на: скользящее окно, блок правил и выборочный поиск.
Во-первых, это раздвижное окно. Скользящее окно по сути является исчерпывающим методом, использующим разные масштабы и соотношения сторон для исчерпывающего перечисления всех возможных больших и малых блоков, а затем отправки их на идентификацию, а те, с высокой вероятностью идентификации, остаются. Очевидно, что такой метод слишком сложен и генерирует много избыточных областей-кандидатов, что в действительности неосуществимо.
Второй блок правил. Некоторая обрезка была сделана на основе исчерпывающего метода, и использовались только фиксированные размеры и соотношение сторон. Однако для обычного обнаружения цели блоку правил все равно нужно посетить множество локаций, а сложность высока.
Третийвыборочный поиск. С точки зрения машинного обучения отзыв предыдущего метода хорош, но точность неудовлетворительна, поэтому суть проблемы заключается в том, как эффективно удалить избыточные области-кандидаты.На самом деле, большинство избыточных областей-кандидатов перекрываются.Выборочный поиск использует это для объединения соседних перекрывающихся областей снизу вверх, тем самым уменьшая избыточность.
02 Структура R-CNN
R-CNN в основном состоит изтри частиСтруктура состоит из:
Первый этап: Стадия сбора предложений региона. В основном используется технология, которая была предложена ранее: выборочный поиск.Мы не будем подробно рассматривать эту технологию.Если вам интересно, вы можете посмотреть конкретные детали реализации статьи в конце. Пока мы понимаем, что изображение вводится на этом этапе, будет возвращено около 2k предложений регионов.
вторая стадия: После получения большого количества предложений по регионам мы соответственно вводим их в сеть CNN. Каждое предложение по региону вводится один раз, и возвращается вектор признаков (4096 измерений), соответствующий предложению по региону. О конкретной структуре CNN автор бумаги Alexnet используется в качестве скелета модели.
Некоторые люди, возможно, обнаружили проблему. Предложения по регионам, извлеченные на первом этапе, имеют разные размеры, и входные данные CNN часто требуется зафиксировать. В этой статье требуется, чтобы входной размер CNN был фиксированным на 227 * 227, так как же решить? Размер предложения региона не соответствует задаче.
Третий этап: после получения вектора признаков каждого предложения региона мы используем двоичный классификатор SVM для прогнозирования каждого предложения региона.
У некоторых студентов возникают вопросы: почему это так хлопотно, не лучше ли использовать Softmax для классификации напрямую, как Alexnet, зачем использовать SVM, чтобы классифицировать их по одному?
Основная причина заключается в том, что категории положительных и отрицательных образцов несбалансированы, а количество отрицательных образцов намного больше, чем количество положительных образцов.В качестве примера в процессе обучения принимается размер партии 128, в процессе обучения имеется только 32 положительных образца. и 96 отрицательных образцов, причем все отрицательные образцы выбираются случайным образом, а SVM лучше справляется со сложными образцами, чем Softmax.
положительный образецНаземная коробка правды для этого класса.
отрицательный образецИсследуйте каждый кадр-кандидат, если перекрытие со всеми калибровочными кадрами этого класса меньше 0,3, он считается отрицательной выборкой.
03 R-CNN Подробности
Рабочий процесс R-CNN
Алгоритм RCNN разделен на 4 этапа.
- Одно изображение генерирует от 1 до 2 тысяч областей-кандидатов;
- Для каждого региона-кандидата используйте глубокую сеть для извлечения признаков;
- Функции отправляются классификатору SVM каждого класса, чтобы определить, принадлежат ли они этому классу;
- Используйте регрессор, чтобы точно исправить положение кадра-кандидата;
Деформированные учебные образцы для обучения VOC 2007. Средняя точность обнаружения (%) по тесту VOC 2010. R-CNN наиболее непосредственно сопоставим с UVA и Regionlets, поскольку все методы используют выборочные предложения области поиска. Регрессия ограничивающей рамки (BB). На момент публикации SegDPM был лидером в таблице лидеров PASCAL VOC. DPM и SegDPM повторно оценивают использование контекста, не используемого другими методами.
результат
В 2014 году, когда документ был опубликован, DPM вступил в период узкого места, и улучшения даже со сложными функциями и структурами очень ограничены. Этот документ вводит глубокое обучение в область обнаружения и одним махом увеличивает скорость обнаружения на PASCAL VOC с 35,1% до 53,7%.
Первые два шага в этой статье (извлечение области-кандидата + выделение признаков) не зависят от категории, которую нужно обнаружить, и могут быть разделены между разными категориями. Эти два шага занимают около 13 секунд на графическом процессоре.
При одновременном обнаружении нескольких классов необходимо умножать только два последних шага (различение + уточнение), которые являются простыми линейными операциями и быстрыми. Эти два шага занимают всего 10 секунд для категории 100K.
Ссылаться на:zhuanlan.zhihu.com/p/168742724 blog.CSDN.net/QQ_30091945…