补习一下目标检测!
知识结构图:
一、目标检测原理
1.目标检测定义以及对比:
输出:框、类别、置信度
(a)分类 (b)目标检测 (c)语义分割 (d)实例分割
(分割的话精确到像素级别)
2.传统方法(左)VS深度学习方法(右)
传统方法:
手动特征提取(生成特征);滑动窗口生成候选框
深度学习方法:
(二阶段)提取特征使用CNN;候选框使用RPN;
(单阶段)直接回归得到框的位置和类别
3.目标检测流程:
4.一阶段VS二阶段:
二、传统目标检测
1.V-J算法(Viola-Jones)
Haar特征抽取
(纹理特征:白-黑)
Adaboost算法:
2.HOG+SVM算法(行人检测,open-cv实现)
HOG特征:
SVM(支持向量机)
3.DPM(传统目标检测的巅峰之作)
4.NMS(非极大抑制算法)是什么?
三、深度学习two-stage算法
1.CNN结构:
2.RPN结构:
四、深度学习one-stage算法(没有RPN)
1.CNN结构:
2.回归结构:
五、SSD系列
1.SSD
(1)backbone:VGGNet,后面的全连接换成卷积。
为什么?参数共享,便于计算。
(2)多尺度特征提取:
结果作为检测层的输入。
(3)Default bounding boxes的类别分数、偏移量
(4)损失函数:
2.DSSD and DSOD
3.FSSD and RDSSD
六、Yolo系列 and RCNN系列
SSD(Single Shot MultiBox Detector),平衡了YOLO和Faster RCNN的优缺点的模型。
Faster R-CNN准确率mAP较高,漏检率recall较低,但速度较慢。
而yolo则相反,速度快,但准确率和漏检率较低。
SSD | YOLOv3 | |
LOSS | Softmax loss | Logistic loss |
特征提取 | VGG19 | Darknet-53 |
Bounding Box Prediction | direct offset with default box | offset with gird cell by sigmoid activation |
Anchor box | Different scale and aspect ratio | K-means from coco and VOC |
Small objects | 不好 | 较好 |
Big objects | Better. | Worse. |
Data Augmentation | Different sample IOU crop | Random Scale from 0.25 to 2 |
Input | Original image | Random multi-scale input |