一、目标检测概述
1.什么是目标检测
目标检测定义识别图片中有哪些物体以及物体的位置(坐标位置)
2.传统目标算法到深度学习
2.1目标检测算法的变迁
对于传统的:
将待检测作为输入图片,候选框的提取通常会通过滑动窗口的方法进行,对每一个窗口的局部性特征会采用传统的计算机视觉和模式识别一些比较表征的方法。分别为基于颜色,纹理,形状,以及一些中层次或者高层次的方法,有的是要经过学习来得到的方法,比如说凑趣直方图特征,纹理特征。提取方法之后会通过PCA对特征进行降维度,或者通过LDA对算法进行空间的投影。
分为三类:
(1)低层次的特征(手工设计的特征)
(2)中层次的特征:特征挖掘LDA之类的(学习的特征)
(3)高层次的特征:将低层次,中层次特征进行特征的挖掘
一般集中在第1,2类。
对于深度学习:
将特征提取的部分变成卷积神经网,候选框则通过一个RPN网络来完成(也就是twostage的目标检测算法),onestage的目标检测算法则通过直接回归的方法来获得可能得目标区域,位置,和目标的类别。
2.2算法基本流程
3.目标检测任务描述
3.1目标检测算法分类
(1)传统目标检测方法(候选区域+手工特征提取+分类器)
HOG+SVM、DPM(传统算法中比较好)
(2)region proposal+CNN提取分类的目标检测框架
(R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN)
(3)端到端(End-to-End)的目标检测框架
YOLO、SSD
3.2目标检测的常见指标
3.3目标定位的简单实现
在分类的时候我们直接输出各个类别的概率,如果再加上定位的话,我们可以考虑在网络的最后输出加上位置信息。
例如:增加一个全连接层,即为FC1、FC2FC1:作为类别的输出,FC2:作为这个物体位置数值的输出
假设有10个类别,输出[p1,p2,p3,...,p10],然后输出这一个对象的四个位置信息[x,y,w,h]
位置数值的处理(归一化)
对于输出的位置信息是四个比较大的像素大小值,在回归的时候不适合。目前统一的做法是,每个位置除以图片本身像素大小。
假设以中心坐标方式,那么x = x/x_image,y/y_image, w/x_image,h/y_image,也就是这几个点最后都变成了0~1之间的值(归一化)。
参考文档 :https://www.cnblogs.com/kongweisi/p/10894415.html
参考视频:https://www.bilibili.com/video/BV1mb4y1H7ZB/?spm_id_from=333.999.0.0&vd_source=84555d77a58e708cf47319e185cf427a