博主简介

博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,如果有错误之处,大家可以指正。

专栏简介:   本专栏主要研究计算机视觉,涉及算法,案例实践,网络模型等知识。包括一些常用的数据处理算法,也会介绍很多的Python第三方库。如果需要,点击这里订阅专栏   。

给大家分享一个我很喜欢的一句话:“每天多努力一点,不为别的,只为日后,能够多一些选择,选择舒心的日子,选择自己喜欢的人!”


目录

背景介绍

什么是目标检测

目标检测的难点

目标检测的基础知识

候选框

交并比

非极大值抑制

传统目标检测基本流程

目标检测效果评估



背景介绍

目标检测作为计算机视觉中承上启下的一步,至关重要,可以说,实现了目标检测就实现了计算机视觉基本任务。目标检测急需要对物体进行识别,又要检测出物体的位置,难度较大,网络结构也层出不穷,在深度领域,从R-CNN到SPP-NET再到YOLO最后到SSD,可以说是百家争鸣,各有千秋。

另一方面,目标检测应用非常广泛,例如生活中常见的人脸检测、车牌识别等;在自动驾驶领域,有行人识别、车道线识别;还有智能视频监控、机器人导航、飞机航拍等多种多样的应用。

目标检测可以分解为两个步骤,第一个步骤是寻找物体框的位置,有传统的选择搜索算法,也有基于深度学习的方法;第二个步骤就是对物体框的类别进行判别。所以,目标检测算法也分为一阶段算法和二阶段算法两种。如果将两个步骤分两个网络训练,则称其为二阶段算法,反之,如果将两个步骤合并用一个网络训练,则称其为一阶段算法。本节我们会详细介绍两阶段目标检测算法,下一节我们继续介绍一阶段目标检测算法。

什么是目标检测

对于目标检测,不但要识别处物体的位置,还要检测处物体的类别。一般来说,我们用把一个矩形框来外接一个物体。我们要做的就是检测出这个矩形框(也叫groundtruth)的位置参数,例如中心坐标(x,y),矩形框宽w和矩形框的高h等。

目标检测的难点

对于识别物体来说,难度不大,在目标识别方面,卷积神经网络的正确率已经超过人类的识别水准了,但是想要精确的定位物体,却是非常困难的,我们人类判断照片上人物的位置一般就是说在中间,或者左上等位置名词,但是对于计算机来说,就有点困难,他需要精确的位置坐标。

更难的是,一张图片中往往有多个物体,特别是小物体,在做目标识别的时候,我们对一张图片只需要输出一个物体,而对于检测问题,需要输出多个物体,难度也极具增大。

最后,网络速度和准确率很难兼顾,一般来说,速度较快的网络,也就是每秒能处理的图片较多,效果就会较差,这是由于速度快的网络会降低物体位置的精度,同时也会减少候选框的数量。

目标检测的基础知识

在进行目标检测实战项目前,我们先来了解一下目标检测的基础知识。

候选框

什么是候选框:候选框就是有可能存在物体的框,对于一个物体来说,可能有很多的候选框,一般5~9个都是正常的。对于二阶段目标检测算法,一般候选框生成算法会生成几千个候选框,但是真正有物体的候选框可能就很少了。

交并比

我们有这么多候选框,那么我们如何判断一个候选框的好坏?很明显,与真实物体框越接近,候选框就越好。我们一般用交并比(IOU)来表示候选框的好坏,计算方式:

IOU=(物体框∩候选框)的面积/(物体框∪候选框)的面积。

为什么我们不直接用物体框和候选框的交集2的面积喃?这是因为,对于覆盖整个物体框的候选框,物体框和候选框的交集的面积都为物体框的面积,从而不能区分出优劣。同理也不能直接使用物体框和候选框的并集的面积,否则无法区分小于物体框的候选框的优劣,而同时考虑两者,就能得到比较好的标准。

非极大值抑制

非极大值抑制(NMS),就是对交并比进行抑制,也就是对交并比不是极大值的值进行抑制。举个例子,对于同一个物体,模型检测出三个候选框,交并比分别为0.9,0.8,0.7,那么我们只需要保留交并比为0.9的框,而忽略其他几个。

当然,非极大值抑制并不是这么的简单,比如第一个物体被检测出的交并比为0.9,0.8,0.7,留下0.9的框,第二个物体检测出0.7,0.6,保留0.7的框,这个时候就会出现一个问题,那就是两次处理后得到的候选框都是第一个物体的,会删除第二个物体的候选框,所以一般我们会进行设置阈值(一般为0.3~0.5),只要两个候选框IOU值大于阈值时,认为他们属于同一个物体,对他们进行非极大值抑制即可。

具体流程:

(1)、在候选框列表中选出IOU最大的候选框1;

(2)、将其余候选框与候选框1计算IOU';

(3)、如果IOU'>阈值,则次候选框删除;

(4)、将候选框1输出,然后从候选框列表中删除。

(5)、重复流程(1)~(4)。

传统目标检测基本流程

我们在学习深度学习方法前,先来了解一下传统的目标检测流程,

第一步,提取候选框,最初的时候,我们采用的是滑动窗口的策略,使用一个窗口在整幅图上进行滑动,每次滑动就生成一个候选框,而且对于滑动窗口设置不同的尺寸。这种暴力的策略虽然包含了目标所有可能出现的位置,但是由于冗余窗口太多,导致时间复杂度太高。

第二步就是提取特征值,常用SIFT,SURF,HOG等特征检测算法。

第三步就是训练分类器,主要有SVM,Adaboost等常用的分类器,对提取的物体特征进行分类 ,从而识别物体。

最后一步就是进行非极大值抑制,删除多余的候选框。

目标检测效果评估

对于评估检测准确率,我们使用准确率和精准率,对于评估模型是否将图像中所有的图像都是别出来,我们称之为召回率。

准确率=

精准率=

召回率=

这些参数代表什么意思喃?

我们来看看二分类:

二分类问题
标签 预测为1(预测有物体) 预测为0(预测无物体)
1(存在物体) 真正(TP) 假负(FN)
0(不存在物体) 假正(FP) 真负(TN)

当我们的二分类器设定的阈值发生变化时,准确率和召回率也会跟着变化。所以我们不能简单地使用单一的召回率或准确率来评价整个模型,而需要考虑在不同召回率阈值下模型的效果。

我们将在不同召回率阈值下模型能够达到的最大精准率看成一个点,然后将这些点连接起来,我们称之为Precision-Recall曲线。

显然,曲线下面的面积越大,模型效果越好,于是我们将此面积作为二分类器的评价标准,称为平均精度(AP)。需要注意的是,PR曲线和我们常用的另一个概念ROC曲线是不同的,ROC曲线显示的是真正率和假正率的关系,而PR曲线显示的是精确率和召回率的关系,PR曲线更适合评估目标检测这类样本不平衡的问题。

对于目标检测这种多分类问题,我们如何评价模型喃?我们剋将其看成很多二分类器的叠加,其对每个物体分类就是一个二分类器,我们先算出每个物体分类的平均精度,之后再对所有的分类取平均(或加权平均),即可得到平均精度均值(mAP),这也是我们常用的目标检测分类问题的评价指标。

对于模型速度的评价就要简单许多,一般用处理一张图片要多少时间,或者说单位时间能处理多少图片,学名叫做帧/秒(fps)。

常用目标检测框架的效果
框架名称 mAP(VOC2007数据集) 速度/(帧/秒) 速率/(秒/帧)
DPMv5 33.7 0.07 14
R-CNN 66.0 0 20
Fast R-CNN 70.0 0.5 2
Faster R-CNN 73.2 7 0.14
YOLO 63.4 45 0.022
YOLOv2 78.6 40 0.025
SSD 76.8 19 0.053

好了,本节内容介绍就到此结束了,拜拜了你嘞! 

深度学习中的两阶段目标检测相关推荐

  1. 基于深度学习的高分辨率遥感图像目标检测技术目前的研究现状

    参考   基于深度学习的高分辨率遥感图像目标检测技术目前的研究现状 - 云+社区 - 腾讯云 目录 一.概述 二.通用目标检测方法 1.类不平衡问题 2.复杂背景 3.目标的尺度变化 4.特殊视角 5 ...

  2. 深度学习遥感图像语义分割目标检测

    深度学习遥感图像语义分割&目标检测 代码见github: WangZhenqing-RS/2021Tianchi_RSgithub.com 图标 赛题描述 本赛题基于不同地形地貌的高分辨率遥感 ...

  3. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《我要打篮球》视频段进行实时目标检测

    DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对<我要打篮球>视频段进行实时目标检测 目录 输出结果 设计思路 核心代码 相关文章 成功解决AttributeError ...

  4. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测

    DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对<俄罗斯总统普京对沙特王储摊的"友好摊手"瞬间-东道主俄罗斯5-0完胜沙特>视频段实时检测 导读   ...

  5. 深度学习笔记(34) 目标检测

    深度学习笔记(34) 目标检测 1. 目标检测算法 2. 图像滑动窗口操作 3. 滑动窗口目标检测算法缺点 1. 目标检测算法 了解对象定位和特征点检测,现在来构建一个目标检测算法 通过卷积网络进行对 ...

  6. 深度学习中的两种不确定性:偶然不确定性和认知不确定性(Aleatoric Uncertainty Epistemic Uncertainty)

    转载:https://zhuanlan.zhihu.com/p/56986840 注: 本文中,概念.公式与实验均基于 Alex Kendall & Yarin Gal的论文:https:// ...

  7. 目标检测YOLO实战应用案例100讲-基于深度学习的无人机航拍图像目标检测算法研究与应用

    目录 基于深度学习的无人机航拍图像目标检测算法研究与应用 基于深度学习的目标检测相关知识理论

  8. 目标检测YOLO实战应用案例100讲-基于深度学习的光学遥感图像目标检测及价值评估

    目录 基于深度学习的光学遥感图像目标检测方法研究 传统的目标检测方法

  9. 深度学习中的单阶段小目标检测方法综述

    随着深度学习的不断发展,目标检测技术逐步从基于传统的手工检测方法向基于深度神经网络的检测方法转变.在众多基于深度学习的目标检测方法中,基于深度学习的单阶段目标检测方法因其网络结构较简单.运行速度较快以 ...

最新文章

  1. R语言ggplot2可视化柱状图添加数值说明并控制文本、数值字体大小、轴标签字体大小实战
  2. C 语言里的字符串---字符数组
  3. 【语言处理与Python】1.5自动理解自然语言
  4. Nginx 笔记与总结(13)Nginx 的 gzip 压缩
  5. 如何open一个新tab页面
  6. 图谱实战 | 知识图谱构建的一站式平台gBuilder
  7. 新手必备: win10 系统下 VSCode+CMake+Clang+GCC 环境的搭建!
  8. 【网络拥塞管理和避免(队列调度算法FIFO/SP/RR/WRR/DRR/MDRR/WDRR/WFQ)】
  9. linux服务器安装caffe(无root权限)
  10. 关于单点登录的简单原理和实现步骤
  11. android xml红心圆,Android自定义View圆形图片控件代码详解
  12. adobe flash player android 4.4,adobe flash player最新版
  13. python实现具有删除空格、英文标点替换、英文单词大写等功能的文字排版工具
  14. Android AppWidget详解,内附详细注释
  15. 互联网公司招聘,我只服百度的神操作
  16. Java 对接打印机接口
  17. 网上收集的一些程序员笑话
  18. 苹果5G芯片研发失败:继续依赖高通,还要担心被起诉?
  19. 一个蚂蚁程序员,曾经的辛酸面试历程
  20. python-外部程序的调用os库、subprocess 模块

热门文章

  1. 办公室十大危险关系,你属于那一种?
  2. OBS视频数据输出流程(模块加载,编码,推流)详细说明
  3. js系列十七:函数是一等公民
  4. Unity官方教程—space shooter练习日记之脚色移动
  5. python3.6 ,pyqt5获取海康录像机视频
  6. 星创汽车携手中企动力探索汽车销售多元模式
  7. 计算机保研面试经验分享—重庆大学
  8. 获取 今天零点 时间戳
  9. (附源码)spring boot医院门诊挂号系统 毕业设计 033123
  10. 高考志愿填报网站服务器,高考志愿填报系统设计方案.doc