如何利用神经网络进行对象定位
定位:判断物体在图片中的具体位置。
(bx,by,bh,bw)被检测对象的边界框的参数化表示。
定义目标标签y
**损失函数:**用的平方误差
pc指是否有目标,有的话,pc=1
特征点检测
x:图片;y:特征点的坐标
如何通过卷积网络进行对象检测
基于滑动窗口的目标检测算法
该方法有明显的缺点:计算成本
在卷积层上应用滑动窗口
将神经网络的全连接层转为卷积层
原来的实现方法:在图片中剪切出一块区域,然后输入到卷积网络中,然后是下一块区域
现在:对整张图像进行卷积操作,一次得到所有的预测值
不用依靠连续的卷积操作来识别图片中的对象,提高了整个算法的效率,但是边界框的位置可能还不够准确。
Bounding boxes预测
标签y和对象定位中的一样,具体就精确。
bx,by,bh,bw是相对格子尺度的比例
交并比函数(intersection over union)
该函数是通过计算两个边界框交集和并集之比,来判断对象检测算法优良的
IOU>=0.5即检测正确(0.5是人为规定)
非最大值抑制
非最大值抑制保证算法对每个对象只检测一次。、
只输出概率最大的分类结果(pc此时是一个概率值)
只做汽车检测,就去掉c1,c2,c3这些参数。
(1)去掉所有边界框有对象的概率即pc小于或等于某个阙值
(2)当这里还有边界框时:
选择有最大pc的输出作为预测
去掉与上一个输出边界框iou>=0.5的所有剩下的边界框
Anchor Boxes
让一个格子检测出多个对象。
对于训练集中的每个对象,都根据对象的中点位置分配到对应的格子里,它还分配到一个 和它形状交并比最高的Anchor Boxe
yolo对象检测算法
构造训练集:遍历9个格子,构成对应的目标向量y
输入是图片,训练一个卷积网络,输出是y
作出预测
(可选阅读)候选区域
选出一些区域,在这些区域上运行卷积网络分类器是有意义的。
选出候选区域的方法是:图像分割算法(segmentation algorithm)
找出色块,再在这些色块上跑分类器。
R-CNN算法:使用某种算法求出候选区域,然后对每个候选区域跑一下分类器。每个区域会输出一个标签(有没有车?人?摩托车?)并输出一个边界框。
FAST R-CNN:与R-CNN很类似。不过,用卷积实现了滑动窗口。(与第四节很相似)候选区域的聚类步骤还是缓慢。
FASTER R-CNN:使用卷积神经网络来选择候选区域