| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 第三章 目标检测 -> 正文阅读 |
|
[人工智能]第三章 目标检测 |
目录 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表示任意两块区域的接近程度,越接近一越接近 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算法。? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |