前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入研究与优化目标检测算法,以提高其性能与适用性的探索性研究

深入研究与优化目标检测算法,以提高其性能与适用性的探索性研究

原创
作者头像
申公豹
发布2023-12-08 20:00:18
2180
发布2023-12-08 20:00:18
举报
文章被收录于专栏:申公豹的专栏申公豹的专栏

基于深度学习的目标检测算法分为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激活函数,但是最后一层却采用线性激活函数。如图所示:

在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 利用滑动窗口生成RP
  • 利用非极大值抑制算法来挑出最优解
  • 算法选择
  • YOLO网络设计
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com