yolo9000学习笔记

  • Post author:
  • Post category:其他





原始的yolo采用224×224的训练数据训练分类网络,再high resolution其为448×448的图像用于检测.这意味着网络同时要学习物体检测和high reslution输入图像.





对于yolov2,我们首先输入图像为448×448,训练分类网络,在ImageNet上迭代10个epochs.这就使得网络有时间去调整其滤波其以更好地处理high resolution input.之后我们用该分类网络初始化我们的检测网络,精度提高大约4%mAP.




2.1Convolutional With Anchor Boxes




2.1.1High Resolution Classifier





yolo直接从全连接层预测bounding box的坐标点.与直接预测坐标点不同,Faster R-CNN预测bounding box使用手动得到的先验(文献15).仅仅使用卷积层,Faster R-CNN中的RPN网络可以预测anchor box的偏移和置信度.由于预测层是可以卷积的,RPN在feature map的每个location预测anchor box的偏移.通过预测偏移而不是坐标点可以简化问题,并使得网络更容易学习.





我们移除yolo的全连接层,并使用anchor box预测bounding box.





首先,去除一个pooling layer以使网络的卷积层higher resolution输出.同时,缩小网络移除例416的输入图像而不是448×448.我们这样做事应为,我们在feature map中想得到奇数的location,从而只有一个center cell.





物体,特别是大物体,趋向于在图像的中心,因此对于预测这些物体,在中心有一个location是好的,而不是有在中心周围有四个location.yolo的卷积层通过参数32下采样图像,输入图像为416,我们便可以得到输出feature map为13×13.





对于anchor boxes,我们同样从空间location拆分类别预测机制,而不是对于每个anchor box都预测类别和物体.与yolo一样,物体检测仍然预测真实值的IOU,并且所得到的box和类别用于预测所给予的物体的类别的条件概率.





使用anchor boxes,我们可以得到一个小的精度下降.yolo对于每幅图像仅预测98 个boxes,但有anchor boxes时,我们的模型预测超过1000个boxes.没有anchor boxes,我们的中间模型得到69.5mAP,recall为81%.计时mAP下降,recall means的增长也是可以提升的.




2.1.2Dimension Clusters





我们使用yolo的时候,对于anchor boxes,我们遇到连个问题.





第一个问题就是box的维度是很难得到的.网络可以学会合理地调整boxed,但是如果我们选择更好的先验用于网络的开始,那么我们就可以使得网络更容易学习更好地检测物体.与手动选择先验不同,我们采用k-means聚类训练bounding boxes以自动得到好的先验.如果我们使用标准k-means,采用欧式距离,那么更大的boxes相比于更小的boxes会导致更多的额错误.然而,我们所想要的先验是可以得到好的IOU得分的先验,其是独立于box的大小的.因此我们使用下列具体矩阵:




























我们取不同的k值进行k-means聚类,并画出average IOU与k的关系图,如图2所示. 我们选择k=5,以平衡模型复杂度和high recall.聚类中心即为anchor boxes.表1可以看出.聚类IOU效果更好.




2.1.3Direct location prediction.





第二个问题模型的稳定性,特别是在早起的迭代中.大多数稳定性问题是由于预测box的(x,y) location.在区域中,所提的网络可以预测值tx,ty,因此中心坐标点可以通过下式计算:















版权声明:本文为u011961856原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。