目标检测的算法

简介: 目标检测的算法

基于深度学习的目标检测算法分为2类:Two Stage和One Stage。
Two Stage:先预设一个区域,改区域称为region proposal,即一个可能包含待检测物体的预选框(简称RP),再通过卷积神经网络进行样本分类计算。流程是:特征提取 -> 生成RP -> 分类/回归定位。常见的Two Stage算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN等。

One Stage:不用生成RP,直接在网络中提取特征值来分类目标和定位
。流程是:特征提取 -> 分类/回归定位。常见的One Stage算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、YOLOv5、SSD、RetinaNet等。

利用滑动窗口生成RP

对于Two Stage的算法,RP的产生是一个很耗时的过程:通过一个窗口从左到右,从上到下的在整张图片上以一定的步长进行滑动扫描,每次滑动的时候对当前窗口执行分类计算,如果当前窗口得到较高的概率,则认为检测到了物体。过程如下图所示,这个方法也叫滑动窗口。
在这里插入图片描述
滑动窗口其实就是个穷举的过程,由于事先不知道要检测的目标大小,所以要设置不同大小比例的窗口去滑动,而且要选取合适的步长。这样做就会非常耗时。R-CNN就是针对此的一个改进策略,利用一种启发式的方法只扫描可能包含目标的子区域。

利用非极大值抑制算法来挑出最优解

不管是哪个目标检测的算法,一个目标都会被多次检测到,我们会有很多结果,但是大多数的结果置信度都不高,我们利用非极大值抑制算法(NMS)就能挑出那个置信度最好的结果。

算法选择

那么我们该选择哪个算法来完成我们的任务呢?

我们需要根据前文确定的性能衡量指标,对所有的算法做横向对比,这样才能挑出来最好的那个方法。这个过程会比较耗时,对于我们完成任务将会是一个障碍,庆幸的是这个比较已经有牛人帮我们做了,我们此时先使用结果,然后在将来有时间自己再尝试做这个横向的性能比较。

根据mAP和识别时间对各种目标检测算法做的结果统计图,如果单从mAP的角度看,最好的选择是FPN FRCN,但是交互时间却能达到172ms;如果看YOLOv3,mAP是57.9,交互时间只有51ms。所以我们的识别算法选用YOLOv3。

YOLO网络设计

YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。网络结构参考GooLeNet模型,包含24个卷积层和2个全连接层。对于卷积层,主要使用1x1卷积来做channle reduction,然后紧跟3x3卷积。对于卷积层和全连接层,采用Leaky ReLU激活函数,但是最后一层却采用线性激活函数。如图所示:

在这里插入图片描述

相关文章
|
机器学习/深度学习 监控 算法
YoloV(You Only Look Once)是一种基于深度学习的目标检测算法
YoloV(You Only Look Once)是一种基于深度学习的目标检测算法
291 0
|
机器学习/深度学习 算法 数据挖掘
目标检测算法——YOLOv3
目标检测算法——YOLOv3
366 0
目标检测算法——YOLOv3
|
3月前
|
机器学习/深度学习 监控 算法
目标检测算法技术
8月更文挑战第11天
|
3月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第8天
|
人工智能 算法 计算机视觉
目标检测基础(一)
目标检测基础(一)
121 0
目标检测基础(一)
|
机器学习/深度学习 算法 自动驾驶
目标检测之TextSnake
翻译:《TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes》
106 0
|
机器学习/深度学习 固态存储 算法
目标检测之TextBoxes++
翻译:《 TextBoxes++: A Single-Shot Oriented Scene Text Detector》
|
算法 计算机视觉
图像分割的两种算法
图像分割的两种算法
1051 0
|
机器学习/深度学习 监控 算法
了解YOLO算法:快速、准确的目标检测技术
了解YOLO算法:快速、准确的目标检测技术
3091 0
|
机器学习/深度学习 算法 数据可视化
详细解读SSPNet| 小目标检测该如何进行改进?
详细解读SSPNet| 小目标检测该如何进行改进?
233 0