对之前的学习内容进行一个简单的总结,有时间会继续补充。
目标检测常见算法主要分为两类:
One stage: SSD, YOLO V1, YOLO V2, YOLO V3; (精度较低,速度较快)
Two stage: Fast RCNN, Faster RCNN;(精度较高,速度较慢)
Multi stage:RCNN;(精度较低,速度极慢)
一. R-CNN
主要步骤:
1. 候选区域生成:Selective Searcht在图片中提取一系列可能是物体的候选区域(约2000个);
2. 特征提取:在这些候选区域(Wrap过的,padding+各向异性缩放)上,采用CNN进行特征提取;
3. 类别判断:binary linear SVM分类;
4. 位置精修:线性脊回归;
训练集:两个数据库:ImageNet ILSVC 2012(分类、一千万图像、1000类),PASCAL VOC 2007(检测、一万图像、20类);本文使用分类库预训练,检测库调优,检测库测评;
测试集:PASCAL VOC 2010、PASCAL VOC 2012。
二. Fast R-CNN
主要步骤:
1. Selective Search在图片中提取框(约2000个),并坐标映射到特征提取层;
2. CNN特征提取;
3. ROI pooling;
4. SVM分类 + BBOX回归。
三. Faster R-CNN
创新点:RPN找到候选框,进行ROI后,基于softmax和Smooth L1回归;
1. RPN(训练 进行Anchor Box的分类和回归) + Faster RCNN(ROI);
2. RPN原理:基准点映射回原图,找到Anchor box,再将Anchor box从原图映射到特征图
附:损失函数、网络、以及训练的细节。
四. SSD
1. 直接利用Anchor box进行和分类和Bounding box回归;
2. 多个feature map上应用不同的Anchor box生成Prior box来预测和分类;
五. YOLO
1. S*S个格子,物体中心落在这个格子,则这个格子
2. 损失函数:loss = coordError + iouError + classError;
(x, y, w, h, 置信度);置信度A = P(Object)*iou;各个类别的概率B = P(Class|Object);综合得分A*B = P(Class)*iou
六. YOLO V2
相对YOLO V1的改进点:
1. 加入BN(darknet19 );
2. 更高分辨率的分类器;
3. 借鉴Faster RCNN的Anchor boxes + 维度聚类;
4. 直接预测对于单元格的相对位置;(bx = sigma(tx) + cx,by = sigma(ty) + cy,bw = Pw * e^(tw),bn = Pn * e^(tn));
5. Fine-Grained Features;B*B,各种特征图上作推荐网络,得到一个范围内的分辨率——> passthrough层;
6. 多尺度训练;
七. YOLO V3
1. 多标签分类;
2. 多尺度预测;