欢迎光临散文网 会员登陆 & 注册

44 物体检测算法:R-CNN,SSD,YOLO【动手学深度学习v2】

2023-08-06 17:31 作者:月芜SA  | 我要投稿

目标检测常用算法:

区域卷积神经网络

原理:1、使用启发式搜索算法选择锚框。2、将每个锚框视为一张图片,使用卷积网络抽取Feature。3、训练SVM(向量机)用于类别分类。4、训练线性回归模型预测偏移。

注:图中Category prediction是对锚框的类别进行判断。Bounding box prediction是对偏移量进行判断

但是每次选出的锚框大小可能会不同,如何将大小不同的锚框统一进行运算?

将各个锚框转化为训练用的batch:RoI兴趣区域池化层。

RoI优点:不管原锚框大小是多少,经过RoI池化层后输出的数据结构都是相同的,可以放到一个batch中进行训练。

此方法存在效率上的弊端,如果一张图片上存在1000个锚框,每个锚框都要用CNN进行识别,则相当于识别了1000张图片的计算量。

R-CNN的主要性能瓶颈在于,对每个提议区域,卷积神经网络的前向传播是独立的,而没有共享计算。 由于这些区域通常有重叠,独立的特征抽取会导致重复的计算。 Fast R-CNN 对R-CNN的主要改进之一,是仅在整张图象上执行卷积神经网络的前向传播。

Fast RCNN:在RCNN的基础上的改进,先对整个图片进行CNN抽取特征。再用选择性抽取CNN过的小图获得若干锚框。

为了较精确地检测目标结果,Fast R-CNN模型通常需要在选择性搜索中生成大量的提议区域。 Faster R-CNN (Ren et al., 2015)提出将选择性搜索替换为区域提议网络(region proposal network),从而减少提议区域的生成数量,并保证目标检测的精度。

如果在训练集中还标注了每个目标在图像上的像素级位置,那么Mask R-CNN能够有效地利用这些详尽的标注信息进一步提升目标检测的精度。

RCNN用于对高精度场景下的目标检测


单发多框检测(SSD)

原理:对网络中的每一段都生成锚框

 此模型主要由基础网络组成,其后是几个多尺度特征块。 基本网络用于从输入图像中提取特征,因此它可以使用深度卷积神经网络。 单发多框检测论文中选用了在分类层之前截断的VGG (Liu et al., 2016),现在也常用ResNet替代。 我们可以设计基础网络,使它输出的高和宽较大。 这样一来,基于该特征图生成的锚框数量较多,可以用来检测尺寸较小的目标。 接下来的每个多尺度特征块将上一层提供的特征图的高和宽缩小(如减半),并使特征图中每个单元在输入图像上的感受野变得更广阔。

回想一下在 13.5节中,通过深度神经网络分层表示图像的多尺度目标检测的设计。 由于接近 图13.7.1顶部的多尺度特征图较小,但具有较大的感受野,它们适合检测较少但较大的物体。 简而言之,通过多尺度特征块,单发多框检测生成不同大小的锚框,并通过预测边界框的类别和偏移量来检测大小不同的目标,因此这是一个多尺度目标检测模型。



YOLO(You Only Live Once)

为防止锚框重叠造成重复计算,YOLO将图片均匀分成锚框,每个锚框预测若干边缘框(反之有多个预测目标被同一锚框框住)

总结:生成的无效锚框越少,识别速度就越快


无锚框识别:center net


知识补充:

多模型融合对提升准确率比较有用





44 物体检测算法:R-CNN,SSD,YOLO【动手学深度学习v2】的评论 (共 条)

分享到微博请遵守国家法律