基础知识
·指标
map指标:综合衡量效果:精度+召回率。MAP是所有类别的平均。
IOU:交并比,交集比并集
YOLO-V1
·整体思想
V1检测系统把检测作为一个回归问题去处理。对于输入的图片,首先将图片划分为S*S区域,如果目标中心点落到一个grid cell内,这个cell负责检测这个目标。每个grid cell预测B个bounding boxes和confidence(判断是否为物体的置信度),在合格的候选框里面会选出IOU最大的作为候选框,同时会预测C个类别。在V1通常s为7,b为2,c为20。每个bounding bos由5个指标组成(x,,y,w,h,confidence)。
·网络架构
特征提取部分如下:
完整部分:
全连接层的主要作用是将输入图像在经过卷积和池化操作后提取的特征进行压缩,并且根据压缩的特征完成模型的分类功能。通常输入给全连接层的图像是经过卷积层和池化层提取的输入图像的核心特征,与全连接层中定义的权重参数相乘。
由图可知,最后的预测结果是7*7*30 tensor,也就是49个grid cell,每个grid cell有30个值。30个结果由两个B和20个分类组成。其中每个B分别包含五个参数,即上面提到的参数,两个B就是10个参数;接着20类别是20个参数,总共30个参数。
·损失函数
非常明显,首先损失函数的设计要考虑前文我们提到的每个B的五个参数,前四个损失函数就是在做这件事。最后一个即分类误差。
每个框都有预测结果,所以可以看到损失函数是用两个加和符号来表示的。
意思是即cell i中的第j个b-box对这个物体负责和cell i中是否有物体。
·存在问题
1.每个cell只预测一个类别,如果重叠无法解决。
2.小物体检测效果一般,长宽比可选的单一。
YOLO-V2
·改进
相比YOLO-V1,大框架上没有变动,在细节上加了很多改变。
1.Batch Normalization.V2卷积后,全部加入Batch Normalization,网络的每一层都做了归一化。
2.HighResolution Classifier.V2训练时额外又进行了10epochs的448*448的微调。
3.Convolutional With Anchor Boxes.
4.Dimension Clusters.K-means.聚类,通常K=5,使用的距离为d(box, centroid) = 1 − IOU(box, centroid)。不使用欧式距离是因为大小框会导致标准不统一。K=5会生成5个预测框,5是根据最后的数据综合分析得到的,有较好效果的K。
5.Direct Location prediction.
6.Fine-Grained Features.
7.Multi-Scale Traning.多尺度检测
·网络架构
可以注意到,没有全连接层。
在全连接层中,相邻层的神经元全部连接在一起,输出的数量可以任意指定。存在什么问题呢?那就是数据的形状被忽视了,比如,输入数据是图像是,图像通常是长,宽,通道方向上的高三维形状,但是,在向全连接层输入时,需要将三维数据拉平为1维数据。而卷积层可以保持形状不变,当输入数据是图像时,卷积层会以三维的数据形式接受输入数据,并且同样以3维数据的形式输至下一层,因此,在CNN中,可以正确理解具有形状的数据。
感受野
特征图上的点看到原始输入图多大区域。越大的感受野越能考虑全局。
YOLO-V3
改进
1.多scale
为了能检测到不同大小的物体,设计了3个scale,负责预测大中小三种物体。对不同的特征图融合后操作。
2.Resnet
残差连接-为了更好的特征。
3.Darknet-53
4.Softmax改进
物体检测任务中可能有一个物体有多个标签。Logisitic激活函数来完成,这样就能预测每一个类别是/不是。