IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 第三章 目标检测 -> 正文阅读

[人工智能]第三章 目标检测

目录

1 目标定位

2 特征点检测

3 目标检测

4 滑动窗口的卷积实现

1 单个滑动窗口的卷积

2 YOLO算法

3 交并比

4 YOLO算法-极大值抑制

5 YOLO算法-多目标重叠情况

5 候选区域


1 目标定位

目标检测的目标不同于前面几章的判断问题,我们不仅需要判断还需要确定物体的位置。

标准的CNN分类问题可以帮助我们判断图中是否有某个物体

原始图片经过卷积层后,softmax层会输出4 x 1向量来给出判断,但目标定位问题并不仅限于此

我们首先给出规定,(0,0)点为图像左上角点,(1,1)为图像右下角点。原始图片经过卷积层后,softmax会给出一个8 x 1向量,这个向量除了包含分类向量外,还包含了(bx, by),表示目标中心位置坐标;还包含了bh和bw,表示目标所在矩形区域的高和宽;还包含了Pc,表示矩形区域是目标的概率,数值在0~1之间,且越大概率越大。

输出的范例可表示为:

上图中pc=0的情况表示没有检测到目标,此时后面的七个参数没有实际意义。

对于目标检测问题 ,其损失函数如下所示:

当pc=1时:

当pc=0时:,此时由于没有检测到目标,因此只需关注检测的准确性即可。

2 特征点检测

检测目标的类别和位置可以通过对目标的关键特征点进行定位,比如人脸识别,可以对人脸的部分特征点进行定位检测:

这个模型检测人脸上的64处特征点,加上检测是否是脸的标志位。共有64x2+1=129个输出值,通过这个模型可以进行情绪分类和判断,还可以对人体姿态动作进行检测。

3 目标检测

目标检测的一种简单算法是滑动窗口算法,这种算法首先在训练集上通过利用各种目标和非目标图片训练CNN模型,使模型具有较高的识别率。然后在测试图片上,选择适宜大小的窗口和步长,进行从左至右从上至下的滑动,将窗口区域送进CNN模型进行判断。

滑动窗口算法原理简单,没有选定目标区域的问题,但同样有由于需要认为确定窗口大小以及步长的缺点,另外如果图片较大但是窗口步长较小,会出现运算量大,耗时长的问题。

4 滑动窗口的卷积实现

1 单个滑动窗口的卷积

首先,单个滑动窗口进入CNN网络模型时,包含了全连接层,因此滑动窗口算法的卷积实现第一步就是将全连接层转变为卷积层:

转换操作很简单,只需要用使用与上层尺寸一致的卷积核进行卷积运算即可。最终得到的输出层维度是1 x 1 x 4,代表4类输出值。

单个窗口区域的卷积网络结构建立后,可以对待检测图片进行运算

2 YOLO算法

滑动窗口算法会存在滑动窗口无法完全覆盖目标的问题

YOLO算法可以解决这类问题,生成类似于上图中红框的目标区域。

YOLO算法首先将原始图片分割成n x n 尺寸的网格,为了简化说明,下图令n为3

然后利用滑动窗口算法,对该图片构建CNN网络,所得的输出层维度为3 x 3 x 8。其中,3 x 3对应9个网格,每个网格的输出包含8个元素:?

其各参数定义类似于目标定位中的参数定义,但是存在bh,bw大于1的情况,这是由于目标可能并不完全在网格内部,可能存在横跨多个格子的情况,并且划分的网格越密越好。

3 交并比

?交并比可以用来评价目标检测的准确性

上图中红色方框为真实目标区域,蓝色为检测目标区域,两者交集为绿色区域,蓝色与红色的接近程度定义为IoU

IoU=\frac{I}{U}?

?IoU表示任意两块区域的接近程度,越接近一越接近

4 YOLO算法-极大值抑制

YOLO算法中有可能出现多个网格都检测出同一个目标的情况,比如相邻的网格可能都判断某一目标的中心坐标在其内

上图红色和绿色的三个网格都检测了同一个目标,希望判断哪个网格最精确要如何操作,答案是使用非最大值抑制算法。

非最大值抑制算法的过程:先计算出每个网格的PC值,然后选择PC值最大的网格,计算该区域所有其他网格的PC的IOU,剔除掉所有IOU大于某个阈值的网格。然后从剩下的网格中执行上述操作,最终使得每个目标都只有一个网格与之对应

5 YOLO算法-多目标重叠情况

对于多个目标重叠在一个网格内的情况要如何操作呢?方法是使用不同情况的?Anchor Boxes

上图中正下方网格内出现了人车两个目标,为了同时检测两个目标,需要设置两个?Anchor Boxes,一个检测人,一个检测车,也就是说每个网格增加一层输出,即从输出维度?3 x 3 x 8变成了3 x 3 x 2 x 8。每个Anchor box对应了一个Pc值,当其超过某个阈值即表示检测到了某个目标。

?

?对Anchor box同样可以使用非最大值抑制算法,Anchor box的形状可以通过人为选取也可以通过其它机器学习算法获取。

5 候选区域

在滑动窗口算法执行时会对一张图片的所有区域进行扫描,但是很明显一张图片会有很大部分是没有目标的,对其进行检测会浪费时间。为了解决这个问题可以使用候选区域的方法。具体而言就是对原始图片进行分割,然后只对分割后的图片块进行检测。

但是相比较而言这种算法效率低于YOLO算法。?

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:54:48  更:2021-07-17 11:55:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:49:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码