| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 目标检测算法实战综述 -> 正文阅读 |
|
[人工智能]目标检测算法实战综述 |
目录 ? 一、目标检测问题定义?目标检测(0bject Detection ) = What, and Where ?????????目标种类与数量问题 目标检测是在图片中对可变数量的目标进行查找和分类: ?目标检测vs图像分类 ????????目标检测不仅给出图像所在位置标注矩形框,并通过不同颜色的矩形框来表示不同类别;图像分类则是以一张图片作为输入,不同类别的概率分布作为输出。 目标检测vs目标分割 a图为图像分类,只需要指出图像所属的类别 b图为目标检测,需要定位图像所处的位置(不同矩形框) c图为目标分割,其不同与目标检测,其需要找到当前目标所占的区域,c图表示语义分割;d图则为实例分割;对于语义分割只需要找到同一类目标所占的区域,实例分割比语义分割更加精细,不仅要区分不同语义的目标,而且对于同一类别的目标也要进行分割 总结:对于目标检测来说更关注语义分割层面的结果,对于目标分割更关注对于像素层面的分割结果。目标检测主要是定义物体的位置,位置可以由一个矩形表示(四维数据);目标分割需要对每个像素点进行不同类别的划分,这时候我们的结果需要与原始的图片大小保持一致。 二、目标检测问题方法传统目标检测方法到深度学习目标检测方法的变迁 ????????传统目标检测算法包括HOG、DPM等等,这些方法遵循了了传统手动设计特征,并结合滑动窗口的方式来进行目标检测和定位,其主要存在的问题有:1、手动设计特征不但很难设计,往往设计出来的特征会存在各种各样的问题,如对于某些特定条件不适应,特征鲁棒性差,效率低。2、通过滑动窗口的方式定义目标框并对目标框进行判定,在提取滑动窗口是的流程十分地繁琐,速度慢。DPM在imagenet数据集上使用传统方式已经处于高点,传统的目标检测算法已经遇到瓶颈,很难再网上提升。 ? ? ? ? 基于卷积方法如RCNN提出后,目标检测在使用卷积神经网络时,只是使用深度学习进行特征提取,并没有从本质上改变搜索框对目标区域提取的策略。因此这些方法在速度上依然存在瓶颈,直到后来Faster-RCNN这样的方法提出后,通过RTN网络来代替原始的滑动窗口策略也标志着基于深度学习的目标检测方法彻底地完成了一个端到端的过程。整个过程只需要通过一个网络就可以完成,这样就使得在基于深度学习的目标检测方法不仅在性能上,而且在速度上同样得到了很大的提升。 ????????后来我们不采用提取候选框的策略,采用直接回归目标框位置的策略如YOLO、SSD方法来完成目标检测和定位,对目标检测算法有了进一步提升,而且能够有原先Proposal一样的精度。 算法基本流程 传统目标检测方法. ?????????Viola-Jones? ? 采用积分图特征结合AdaBoost分类器来进行人脸检测等任务 ?深度学习目标检测方法 ?传统目标检测方法VS深度学习目标检测方法 ?三、常见传统目标检测算法3.1?Viola-Jones (人脸检测)????????Haar特征抽取?训练人脸分类器(Adaboost 算法等)?滑动窗口 ??Haar特征(value=白-黑) ??Adaboost算法 ?3.2 HOG+SVM (行人检测、Opencv实现)?????????提取HOG特征?训练SVM分类器?利用滑动窗口提取目标区域,进行分类判断?NMS?输出检测结果 ?HOG特征 ??SVM ?最大分类间隔面 ?3.3?DPM (物体检测)????2008年Pedro Felzenszwalb提出;VOC,07,08,09年的检测冠军;2010 VOC授予“终身成就奖”;是HOG的扩展 DPM特征提取:有符号梯度vs无符号梯度 ?计算DPM特征图
3.4 NMS(非极大值抑制算法)?????????目的:为了消除多余的框,找到最佳的物体检测的位置 ????????用分类器对目标检测进行分类时会得到不同分类的概率值,利用概率值对所有检测框进行排序后选出得分最大的那个检测框,把与当前最大检测框与其他检测卡LOU面积超出阈值的检测框进行删除,接下来对哪些没有处理过的检测框重新进行排序,迭代上述步骤。 改进算法:Soft-NMS (非极大值抑制算法) ?相邻区域内的检测框的分数进行调整而非彻底抑制,从而提高了高检索率情况下的准确率 四、深度学习目标检测算法原理实践4.1?基于Two-stage的目标检测算法综述Two-stage基本介绍 Two-stage基本流程? ?Two-stage常见算法:RCNN、Fast RCNN、Faster RCNN、Faster RCNN变种 ?Two-stage核心组件:CNN网络与RPN网络 CNN网络设计原则 ?RPN网络 ?RPN网络的区域推荐(Anchor机制) ?????????解释:对于当前的feature map其大小为n*c*w*h,用w,h候选区的中心点去提取候选区域,每个点都成为一个Anchor,然后以这个点为中心,提取候选区域。通常Fast-RCNN采用的是9个不同尺度提取9个候选区。 也可参考:RPN网络的anchor机制_wchange7的博客-CSDN博客_rpn网络的anchor生成细节 RPN网络?ROI Pooling rois中5的解释:ROI区域为5个值,正常情况便是矩形框只需要4个值(X,Y,W,H),这里的五个值为(index,X,Y,W,H),最前面的是索引,表示当前batch中的哪个图片。 ROI Pooling主要完成的是一个抠图+resize的操作,resize是使得抠图得到的feature map固定到同一个大小的feature map上。 Two-stage改进方向 4.2?基于One-stage的目标检测算法综述One-stage基本介绍: ????????●使用CNN卷积特征 One-stage基本流程: ?One-stage常见算法:YoloV1/2/V3、SSD/DSSD等、Retina-Net等等 ?One-stage核心组件:CNN网络与回归网络 CNN网络设计原则 回归网络 区域回归是指通过回归网络直接输出最终目标Bounding boxes的位置信息,如图片中红框和蓝框;置信度是表示当前区域是否存在目标。 回归网络预测过程(Yolo) yolo算法在进行回归网络计算时,会对整张图片进行划分,划分为SxS,针对每个网格来分别预测当前网格为中心的目标区域的位置信息,还会给出置信度表示目标区域的可能性,输出目标所属类别的概率分布图(Class probability map)。 One-stage VS Two-stage ?????????????????缺点?????????????????????????????????????????????????????缺点 参考:??RPN网络的anchor机制_wchange7的博客-CSDN博客_rpn网络的anchor生成细节?????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 2:51:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |