Обзор One.yolo
Автор закладывает в алгоритм YOLO物体检测
(обнаружение объекта) проблемаРассматривать как проблему регрессии, со структурой сверточной нейронной сети ограничительная рамка и вероятности классов могут быть напрямую предсказаны по входному изображению.
Преимущества алгоритма YOLO:
- YOLO'sбыстрый. Скорость на графическом процессоре Titan X составляет 45 кадров в секунду (кадров в секунду), ускоренная версия YOLO — почти 150 кадров в секунду.
- YOLO прогнозируется на основе глобальной информации об изображении.. Это отличается от алгоритмов обнаружения, основанных на скользящем окне и предложении области. По сравнению с Fast R-CNN, YOLO может снизить частоту ошибок ложного обнаружения (обнаружения фона как объекта) более чем наполовину.
- YOLO может выучить обобщенные представления объектов. можно понимать какСильная способность к обобщению.
- Высокая точность, доказано экспериментально.
только йолов1= 98 предложений.
собственное понимание
Собственно эта часть для следующего, делим картинку на, и мы назначаем 2 границы каждой сетке, так что в конце мы имеемзона обнаружения.
Структурная схема алгоритма показана на рис. 1: основной особенностью структуры является унифицированное обнаружение, которое больше не является обнаружением объекта, состоящим из множества шагов, что ускоряет работу модели.Глобальную информацию об изображении можно узнать напрямую, и может быть обучен от начала до конца.
Алгоритм сначала делит входное изображение наСетка, если центр цели попадает в сетку, сетка отвечает за обнаружение цели, соответствующей исходному тексту, следующим образом:
Алгоритм сначала делит входное изображение насетки , а затем предсказать для каждой сеткиB个bounding boxes
. Информация о каждой ограничивающей рамке содержит 5 значений данных, которыеx,y,w,h,和confidence
. Где x, y относятся к координатам положения центра ограничительной рамки объекта, предсказанного текущей сеткой. w,h — ширина и высота ограничивающей рамки. Примечание: В процессе фактического обучения значения w и h нормируются к интервалу [0,1] с использованием ширины и высоты изображения; x, y — значения смещения центрального положения изображения. ограничивающая рамка относительно текущего положения сетки и нормализована до [0,1].
Достоверность отражает наличие объектов в текущей ограничивающей рамке и точность положения объекта.
Среди них, если ограничивающая рамка содержит объект, то Pr(object) = 1, иначе Pr(object) = 0.
IOU (пересечение над объединением) — это значение IOU предсказанной ограничивающей рамки и наземной истины.
Каждая ограничивающая рамка соответствует показателю достоверности.Если в ячейке сетки нет объекта, достоверность равна 0. Если есть, тоПоказатель достоверности равен значению IOU предсказанного блока и истинности основания., см. формулу выше. Итак, как определить, содержит ли ячейка сетки объект? ответ:Если координаты центральной точки наземной истины объекта находятся в ячейке сетки, то ячейка сетки содержит объект, то есть за предсказание объекта отвечает ячейка сетки..
т.е. йоло
目标检测完全是由一些grid cell负责
, которые являются ячейками сетки, содержащими наземные центральные точки истины.(Правильно это или нет, нужно проверить...)
Каждая ячейка сетки предсказывает вероятности класса C, который представляет собой вероятность того, что ячейка сетки принадлежит к определенной категории при условии, что она содержит объект.
Обратите внимание, что вероятность предсказания c категорий основана на ячейке сетки в целом, независимо от содержащихся в ней B блоков.
существует测试
час,Каждая ячейка умножается на вероятность класса и достоверность коробки, чтобы получить конкретную оценку достоверности класса.:
Эта оценка представляет собой вероятность того, что категория появится в поле, а также соответствие поля и цели.. При оценке набора данных PASCAL VOC мы принимаемС=7, В=2, С=20(набор данных содержит 20 категорий), окончательный результат прогноза7×7×30тензор.
собственное понимание:
1. В этом месте наша S равна 7, значит, мы превратим картинку в, B равно 2, что указывает на то, что каждый из наших квадратов имеет два поля предсказания, C равно 20, что указывает на 20 категорий, и, наконец, мы можем получитьЭто то, что каждый B получит 5 данных прогноза, x, y, w, h, достоверность, один квадрат имеет два B, поэтому будет 10 данных, и 20 категорий будут добавлены одновременно, всего будет 30 быть сгенерировано на одном квадрате данных, в результате чего в общей сложноститензора.
2. Расчет доверия использует метод IOU
3. Чтобы предсказать, есть ли объект в ячейке, зависит от того, находятся ли координаты центральной точки объекта в ячейке, вероятность равна 1, а вероятность равна 0.
Как именно выполняется это умножение? См. рисунок ниже: достоверность каждой ограничивающей рамки умножается на оценку каждой категории, чтобы получить оценку достоверности того, к какой категории принадлежит каждая ограничивающая рамка.
То есть, чтобы получить оценку достоверности того, к какой категории относится каждая ограничивающая рамка. То есть, вы в конечном итоге сМатрица оценок, количество ограничивающих рамок в скобках, 20 представляет категорию.
-
Следующие операции выполняются по очереди с 20 категориями:
- В определенной категории (т.е. строке матрицы) установите балл меньше порога (0,2) на 0, а затем отсортируйте по баллу от большего к меньшему.
- Наконец, алгоритм NMS используется для удаления ограничивающей рамки с большой частотой повторения (NMS: для определенной категории выберите ограничивающую рамку с наибольшим количеством баллов, а затем вычислите значение IOU для нее и других ограничивающих рамок. Если IOU больше 0,5, это означает, что частота повторения большая.Оценка устанавливается на 0, если она не больше 0,5, она не будет изменена, после этого раунда выберите наибольшую ограничивающую рамку в оставшихся оценках, и затем рассчитайте долговую расписку ограничивающей рамки и других ограничивающих рамок и повторите описанный выше процесс до конца).
- Наконец, 20 оценок каждой ограничивающей рамки принимают наибольшую оценку.Если оценка больше 0, то ограничивающая рамка является категорией, соответствующей socre (строке матрицы).Если она меньше 0, это означает что в ограничительной рамке нет объектов Пропустить Вот и все. (Подробности см. в ссылке 1 в конце.)
2. Структура сети
Сеть YOLO основана на структуре сети классификации GoogLeNet. Разница в том, что YOLO не использует начальный модуль, а использует сверточный слой 1x1 (Существование сверточного слоя 1x1 здесь для межканальной интеграции информации.)+Простая альтернатива сверточным слоям 3x3. В статье YOLO автор также приводит более быструю сеть обнаружения fast YOLO, которая имеет всего 9 сверточных слоев и 2 полносвязных слоя. Используя titan x GPU, быстрый YOLO может достичь скорости обнаружения 155 кадров в секунду, но значение mAP также снизилось с 63,4% YOLO до 52,7%, но оно все еще намного выше, чем значение mAP предыдущих методов обнаружения объектов в реальном времени ( ДПМ).
Конечный результат7×7×30тензор.
3. Обучение
Авторы используют набор данных класса ImageNet 1000 для предварительной подготовки сверточных слоев. На этапе предварительной подготовки используются первые 20 сверточных слоев в приведенной выше сети, а также слой объединения средних значений и полностью связанный слой. Модель обучалась в течение недели и достигла точности 0,88 (проверочный набор ImageNet2012) из топ-5, что сравнимо с точностью модели GoogleNet. Затем преобразуйте модель в модель обнаружения. Авторы добавили в предварительно обученную модель 4 сверточных слоя и 2 полносвязных слоя, увеличив входное разрешение модели (224×224->448×448). Последний слой предсказывает вероятность класса и значение координации ограничивающей рамки. Ширина и высота ограничивающей рамки нормализуются к интервалу 0-1 по ширине и высоте входного изображения.
В реальном процессе обучения значения w и h нормируются к интервалу [0,1] с использованием ширины и высоты изображения; x, y — значения смещения центрального положения ограничивающей рамки относительно текущего положения сетки и нормализованы до [0,1].
В последнем слое используется линейная активация, а в других слоях — линейная активация с выпрямлением с утечкой..
, , , , , , , ,
Что касается функции потерь, автор использует метод суммы квадратов ошибок для интегрирования ошибки локализации (координатной ошибки ограничивающей рамки) и ошибки классификации.. Однако, если веса этих двух одинаковы, легко сделать модель нестабильной, а обучение - расходящимся. Поскольку многие ячейки сетки не содержат объектов, показатель достоверности многих ячеек сетки равен 0. такиспользуя разные настройки权重方式
решать, с одной стороны, увеличивается вес ошибки локализации, а с другой стороны, уменьшается вес потери достоверности ящика без объекта, и вес потери составляет 5 и 0,5 соответственно. Для ящика, содержащего объект, вес потери достоверности по-прежнему равен исходному значению 1. Подробнее см. исходное объяснение и функцию loos ниже.
Функция потерь подробно описана здесь. В функции потерь первые две строки указываютlocalization error(т.е. ошибка координат),Первая строка — это предсказание координат центра прямоугольника (x, y), а вторая строка — это предсказание ширины и высоты.. Обратите внимание на ширину и высоту здесь开根号
Вместо исходной ширины и высоты сделайтеГлавным образом потому, что одни и те же ошибки ширины и высоты оказывают большее влияние на точность малых целей, чем больших целей.. Например, исходное w=10, h=20, предсказанное w=8, h=22 по сравнению с исходным w=3, h=5, предсказанным w1, h=7, фактически ошибка первое больше, чем второе, меньше, но если не прибавлять квадратный корень, потери те же: 4+4=8, а после прибавления квадратного корня становится 0,15 и 0,7.Третья и четвертая строки представляют собой потерю достоверности ограничивающей рамки., как было сказано выше, делится на два случая: ячейка сетки содержит и не содержит объект. Обратите внимание, что, поскольку каждая ячейка сетки содержит два ограничивающих прямоугольника, это вычисляется только в том случае, если значение IOU истинности земли и ограничивающего прямоугольника в сетке является наибольшим.Пятая строка представляет ошибку прогнозируемого класса., обратите внимание, что предыдущий коэффициент равен только 1, когда ячейка сетки содержит объект.
Итак, каков конкретный процесс реализации?
Во время обучения:
входить:Введите N изображений, каждое изображение содержит M объектов, каждый объект содержит 4 координаты (x, y, w, h) и 1 метку.
вывод:а потом пройти через сетьТрехмерная матрица размера.
каждыйвектор
前5个元素表示第一个bounding box的4个坐标和1个confidence,第6到10元素表示第二个bounding box的4个坐标和1个confidence。最后20个表示这个grid cell所属类别
. Обратите внимание, что эти 30 являются прогнозируемыми результатами.Рассчитать потери:Затем вы можете рассчитать первую, вторую и пятую линии функции потерь. Что касается третьей и четвертой строк, уверенность можно получить, умножив долговую расписку, рассчитанную на наземную правду и предсказанную ограничивающую рамку, на значение 0,1 наличия объекта. Реальная уверенность имеет значение 0 или 1, то есть 1, если объект есть, и 0, если объекта нет. Таким образом можно рассчитать значение функции потерь.
При тестировании:
Введите изображение и доберитесь до конца сетиТрехмерная матрица , хотя IOU здесь не рассчитывается, достоверность ограничивающего прямоугольника была рассчитана напрямую с помощью обученных весов. Затем умножьте его на прогнозируемую вероятность класса, чтобы получить вероятность того, к какому классу принадлежит каждая ограничивающая рамка.
4. Анализ
Ограничения
- Во-первых, каждая сетка YOLO только предсказываетдве коробки, одна категория.Это приводит к снижению точности предсказания моделью соседних объектов.. Поэтому YOLO имеет низкую точность распознавания целей с подкладкой (таких как стая птиц).
- два,YOLO учится предсказывать ограничивающие рамки по данным, поэтому не может распознавать объекты с новыми или необычными углами.
- три,Функция потерь YOLO одинаково обрабатывает ошибки малых и больших ограничивающих рамок, что влияет на точность распознавания модели. Потому что для небольших ограничивающих рамок небольшая ошибка имеет большее влияние..
Обучение модели YOLO делится на два этапа:
1) Предварительная подготовка. используя ImageNet 1000 классов данных обучают первые 20 сверточных слоев + 1 средний объединяющий слой + 1 полносвязный слой сети YOLO. Разрешение тренировочного изображения изменено на 224x224.
2) Используйте первые 20 параметров сети сверточных слоев, полученные на шаге 1), чтобы инициализировать параметры сети первых 20 сверточных слоев модели YOLO, а затем используйте данные, помеченные классом VOC 20, для обучения модели YOLO. Чтобы повысить точность изображения, при обучении модели обнаружения измените разрешение входного изображения на 448x448.
5. Ссылки (这个部分详细观看,对于理解网络非常的透彻
)
docs.Google.com/present Вопрос А…(Сеть yolo очень наглядно проиллюстрирована, особенно процесс тестирования)