| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 两阶段(two stage)目标检测原理详解 -- RCNN -> 正文阅读 |
|
[人工智能]两阶段(two stage)目标检测原理详解 -- RCNN |
目录 (三)边框回归( Bounding Box Regression ) 1.?非极大值抑制(Non-Maximum Suppression,NMS) ?????????目前目标检测领域的深度学习方法主要分为两类:two stage 的目标检测算法;one stage 的目标检测算法。 一、目标检测的任务在图像中把目标物体框出来,主要分为两个:
????????两阶段指的是实现检测的方式有主要两个过程,如下: ????????第一步:先提取物体区域; ????????第二步:再对区域进行CNN分类识别; ????????因此,“两阶段”又称基于候选区域(Region proposal)的目标检测。它是基于深度学习的检测算法的先驱者;代表性算法如下图的RCNN系列(RCNN,Fast RCNN,Faster RCNN)还有SPPNet等。 ????????例如,RCNN,也是“两阶段”目标检测中的第一个模型。该算法步骤大致分为两大步骤进行: ????????1.获取输入图像,提取约候选区域; ????????2.将候选区域分别输入CNN网络(这里需要将候选图片进行缩放),将CNN的输出,输入分类器中进行类别的判定。 ????????两阶段目标检测模型结构:
????????传统算法模型结构: ????????两阶段目标检测模型结构: (二)候选区域算法????????传统目标检测算法使用“穷举法”来获取候选区域,即暴力的使用滑动窗口从左到右、上到下扫描图片。缺点非常明显,候选区域过多,相邻窗口重复信息大,无效的区域也很多,导致计算量大,检测速度慢。 ????????RCNN使用“选择性搜索算法”(SS,Selective Search)来获取候选框,具体步骤如下: ????????(1)图片中的每一个像素作为一组,然后计算每个像素的纹理; ????????(2)将相近的组合起来形成更大的像素组,然后继续合并各个像素组; ????????(3)SS选取的检测框大小都不一样,最后,得到不同尺寸的BBox候选框(约2000个)。 ????????相比传统的穷举法,BBox候选框明显的减少了,在后面步骤的物体分类上减少了很多计算资源。 (三)边框回归( Bounding Box Regression )????????围绕如下2个问题进行算法设计:
????????经过SS搜索,共有2000多个候选区域,首先需要对每个候选区域进行分类识别: ????????如上图所示,每个目标有两三个候选区域,每个候选区域都有目标概率值;原则上,1个物体对应1个候选区域,那么如何去除冗余的候选区域框,保留最好的1个? ????????使用非极大值抑制NMS来解决以上问题。 1.?非极大值抑制(Non-Maximum Suppression,NMS)????????思路:选取那些邻域里分类数值最高,并且抑制那些分数低的窗口。 ????????做法:设定阈值(阈值通常设定0.3~0.5 ),比较两两区域的IoU与阈值的关系。 ????????Iou是两个区域的交并比,如下: ? ? ? ? ? ?? ?????????那么可以如下两个思路来筛选候选框,假设阈值设定0.5: ????????(1)IoU>0.5,表示A框与B框重叠率高,可能是同一个物体,保留上一步计算的分类概率值高的候选框; ????????(2)IoU<0.5,表示A框与B框重叠率不高,可能是两个物体; ????????例子:假设检测到如下出6个都是人脸的矩形框,目的要找到最好的一个。 ????????(1)根据分类器的类别分类概率做排序从小到大的概率分别为A、B、C、D、E、F; ????????(2)从最大概率矩形框F开始,分别判断A~E与F的重叠度IoU是否大于设定的阈值; ????????(3)假设B、D与F的重叠度超过阈值,那么就去除矩形框B、D;并标记第一个矩形框F,是我们保留下来的一个人脸框; ????????(4)从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,如果A、C的重叠度都大于设定的阈值,那么就去除;并标记E是我们保留下来的第二个矩形框; ????????(5)就这样一直重复,遍历所有,直到找到所有被保留下来的矩形框。 2.?对候选框进行坐标调整????????将最后选出的候选框与目标值(Ground Truth)建立回归方程。如下图: ?????????红色的框:最终提取的候选区域框; ????????绿色的框:目标值, 即真实标注的目标区域。 ????????目测可判定,红色框定位不准(IoU<0.5), 那么说明红色框没有正确的标志飞机,因此需要对红色框进行微调,使得经过微调后的窗口跟目标值更接近。 ????????对于窗口,一般使用四维向量(x,y,w,h)表示,分别表示窗口中心点坐标和宽高;寻找一种关系使得输入候选窗口 P 经过映射f得到一个跟真实窗口G^更接近的回归窗口G ?,使得新的候选区域G ?更接近真实目标G^,从而提高预测的准确率: 回归方程:?
????????模块1 : ? ? ? ? ? ? ? ? (1)采用selective search算法对每个图片提取约2000个候选框; ? ? ? ? ? ? ? ? (2)再将尺寸变形为227×227的大小【适应AlexNet网络的输入】 ????????模块2: ? ? ? ? ? ? ? ? (1)使用AlexNet网络对候选框进行特征提取,每个候选框有4096维特征; ? ? ? ? ????????(2)采用训练好的AlexNet CNN网络进特定样本【如VOC数据集-20个分类类别】下的微调fine-tune; ????????模块3: ? ? ? ? ? ? ? ? (1)对每个候选框的4096维特征进行分类; ? ? ? ? ? ? ? ? (2)需要为每个类别训练单独的SVM; ????????模块4: ? ? ? ? ? ? ? ? (1)进行边框回归训练。 ?????2.?R-CNN 总结????????优点:基于传统的手工提取特征的方法,性能大幅提升; ????????缺点:但是训练时间很长(84h),测试阶段很慢,一张图片大概16s;R-CNN速度较慢的一个重要原因是卷积特征重复计算量太大,每张图片约有2000区域需计算CNN特征。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 14:35:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |