神经网络与深度学习第6周学习总结-深度学习与目标检测
本文是《神经网络与深度学习》课程第六周学习的总结,专注于深度学习与目标检测的学习。
基本卷积神经网络-VGG-16
相比其他网络结构,VGG-16网络规模进一步增大,参数数量约为1.38亿;由于各卷积层、池化层的超参数基本相同,整体结构呈现出规整的特点。具有随网络深入,高和宽衰减,通道数增多的特点。
常用数据集
MNIST
MNIST 数据集主要由一些手 写数字的图片和相应的标签组成,图片一共有 10 类,分别对应从 0~9。原始的 MNIST 数据库一共包含下面 4 个文件:
PASCAL VOC
PASCAL的全称是Pattern Analysis, Statistical Modelling and Computational Learning。 VOC的全称是Visual Object Classes
,是目标分类(识别)、检测、分割最常用的数据集之一。
一共分成20类:
⚫ person
⚫ bird, cat, cow, dog, horse, sheep
⚫ aeroplane, bicycle, boat, bus, car, motorbike, train
⚫ bottle, chair, dining table, potted plant, sofa, tv/monitor
文件格式:
MS COCO
PASCAL的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集。数据集以scene understanding为目标,主要从复杂的日常场景中截取。 包含目标分类(识别)、检测、分割、语义标注等数据集。
提供的标注类别有80 类,有超过33 万张图片,其中20 万张有标注,整个数据集中个体的数目超过150 万个。
ImageNet
始于2009年,李飞飞与Google的合作:“ImageNet: A Large-Scale Hierarchical Image Database”
➢ 总图像数据:14,197,122
➢ 总类别数:21841
➢ 带有标记框的图像数:1,034,908
深度学习视觉应用
算法评价指标
TP: 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数
FP: 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数
FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数
TN: 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数=
P(精确率): 𝑇𝑃/(𝑇𝑃+𝐹𝑃 标识“挑剔”的程度
R(召回率): 𝑇𝑃/(𝑇𝑃+𝐹𝑁)。召回率越高,准确度越低,标识“通过”的程度
精度( Accuracy)::(𝑇𝑃+𝑇𝑁)/(𝑇𝑃+𝐹𝑃+𝑇𝑁+𝐹𝑁)
其中精确率与召回率往往呈现反比例关系,精确率与召回率可以通过改变阈值来调整。
AP(平均准确率)计算
目标检测与YOLO
目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,并且物体还可以是多个类别。
YOLO(一步法)基本思想为:分类问题扩展为回归+分类问题。
基本滑动窗口
基本滑动窗口
选择一个合适大小的窗口进行滑动,在每个窗口中检测目标。
滑动窗口的问题:
1)滑动次数太多,计算太慢
2)目标大小不同,每一个滑动位置需要用很多框
改进主要有以下两种方法:
两步法( Region Proposal):可以确定那些更有可能出现目标的位置,再有针对性的用 CNN 进
行检测
一步法( YOLO):进一步减少出现目标的位置,而且将目标分类检测和定位问题合在一个网络里
YOLO基本思想
分类问题扩展为回归+分类问题
分类:对每个框的目标检测问题
回归:对最小矩形坐标的回归问题
YOLO网络结构
YOLO网络结构概略图
YOLO官方的模型结构图
网络结构包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训
练,后面4个是随机初始化的卷积层,和2个全连接层。
YOLO模型处理: 𝟕×𝟕网格划分
将图片分割为 𝑆^2个 grid( 𝑆=7)),每个 grid cell 的大小都是相等的;每个格子都可以检测是否包含目标 。
YOLO网络输出
输出是一个 7×7×30的张量。对应7×7个cell;每个 cell 对应 2 个包围框 (bounding box, bb) bb),预测不同大小和宽高比对应检测不同目标。每个 bb 有 5 个分量,分别是物体的中心位置 (𝑥,𝑦)和它的高(ℎ)和宽 (𝑤),以及这次预测的置信度。