作者:RayChiu_Labloy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处


目录

引言

深度学习在计算机视觉的图像领域几个任务

目标检测技术

定义

历史背景:

几个难题

目标检测的应用

1)人脸检测

2)行人检测

3)车辆检测

4)遥感检测

传统的、古典的目标检测方法

传统检测方法一般分三个阶段:

Region proposal区域提案思路

候选框生成的两种常用方案

滑动窗口

滑动窗口流程:

选择搜索算法Selective Search

效果评估->IoU(Intersection over Union)真实框预测框交并比

概念定义:

IoU计算

IoU和目标检测中的正负样本生成问题

NMS非极大值抑制

基于SS的传统、古典目标检测的流程:

出自论文:

第一步:准备数据集

第二步提取正负样本的Haar、HOG特征

第三步使用SVM等分类器训练:

第四步: 反馈False Positive

第五步测试


引言

回顾神经网络和卷积神经网络的技术更新发展经典CNN卷积神经网络发展史_RayChiu757374816的博客-CSDN博客

我们看到深度学习在人工智能领域已经是解决问题的排头兵了,可以说人工智能各个方向出现棘手问题我们大多数情况会优先考虑深度学习。

而深度学习中有一个重要的研究领域-->计算机视觉,其中有一个小分支目标检测,是我们今天要讨论的内容,目标检测也是当下人工智能在社会生产活动中应用最为广发也最为成熟的领域。

深度学习在计算机视觉的图像领域几个任务

图像分类、目标检测、 语义分割、实例分割

参考:深度学习在图像领域的几个任务和目标检测中的正负样本问题_RayChiu757374816的博客-CSDN博客

目标检测技术

定义

目标检测是这样一种任务:在图像或者视频中,找到目标位置(定位)并进行分类

历史背景:

目标检测对于人类来说,是一项非常简单的任务,就连几个月大的婴儿都能识别出一些常见目标。然而,直到十年之前,让机器学会目标检测仍是一个艰巨的任务。目标检测需要识别并定位视野中某个目标(如:汽车、行人、路标等)的所有实例,其与其他的类似任务,如分类、分割、运动估计、场景理解等,一同构成了计算机视觉领域的基础问题。

现有的目标检测方法有传统检测方法和基于深度学习的检测方法。

早期的传统的、古典的目标检测模型是通过集成一系列手工设计的特征提取器(如:Viola-Jones、HOG、SIFT、DPM等)来构造的,这些模型的特点是:速度慢、精度低、跨域性能差。

重新崛起的CNN和深度学习图像分类改变了视觉领域的格局,在2012 ImageNet大规模视觉识别挑战赛(ILSVRC)上出现的AlexNet,启发了后续关于CNN的一些列研究。近年来,随着新的工具及技术的发展,目标检测的应用呈指数级增长,已在自动驾驶、身份检测到安全及医疗、军事国防、人工智能等领域得到广泛应用。

几个难题

由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题,具体体现在以下几个技术问题点上:

(1)分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。

(2)定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。

(3)检测-Detection:解决“在哪里?是什么?”的问题,即定位出这个目标的位置并且知道目标物是什么。

(4)分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

所以,目标检测是一个分类、回归问题的叠加。

目标检测的应用

1)人脸检测

1.智能门控
2.员工考勤签到
3.智慧超市
4.人脸支付
5.车站、机场实名认证
6.公共安全:逃犯抓捕、走失人员检测

2)行人检测

1.智能辅助驾驶
2.智能监控
3.暴恐检测(根据面相识别暴恐倾向)
4.移动侦测、区域入侵检测、安全帽/安全带检测

3)车辆检测

1.自动驾驶
2.违章查询、关键通道检测
3.广告检测(检测广告中的车辆类型,弹出链接)

4)遥感检测

1.大地遥感,如土地使用、公路、水渠、河流监控
2.农作物监控
3.军事检测

传统的、古典的目标检测方法

传统检测方法一般分三个阶段:

1.首先在给定图像上采用不同大小的滑动窗口对整幅图像进行遍历选择候选区域,或者采用选择搜索算法Selective Search来选择候选区域;

2.然后对这些区域提取特征,使用以下方法之一来定义特征:

  • 基于 Haar 功能的 Viola–Jones 目标检测框架
  • 尺度不变特征变换(SIFT)
  • 定向梯度直方图(HOG)特征
  • DPM算法

3.最后基于SVM支持向量机模型、RF 模型等常用分类器进行分类。

虽然这种方法取得了不错的结果,但是采用滑动窗口进行区域选择时没有针对性导致时间复杂度高且窗口冗余;另外手工设计的特征没有很好的鲁棒性。

Region proposal区域提案思路

区域提案、候选区域就是图像中可能是目标的区域。

通过先找到候选区域然后去做目标检测的方式,首先避免了因暴力扫描对无目标区域的分析,占用更少的资源加快训练,其次可以提升检测的准确性。

区别一下Region Proposal和bounding box,Region Proposal是一个区域,bounding box就是这个区域的4条边。

候选框生成的两种常用方案

参考:滑动窗口与选择搜索 - 韩昊 - 博客园

滑动窗口

图像金字塔思路:

用滑动窗口的方法时,在图片上滑动的矩形框尺寸是固定的,这就导致了如果目标的尺寸相对于矩形框太大或太小都会导致我们无法检测到目标,我们可以使用不同大小的滑动框来解决上述问题。

而使用图像金字塔和滑动窗口相结合的方式可以近似实现这种思路。

图像金字塔就是把图像下采样出不同尺寸大小的图像:

这样使用相同的滑动框就可以找到不同大小的目标了。

滑动窗口流程:

首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率,则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后,会得到不同窗口检测到的物体标记,这些窗口大小会存在重复较高的部分,最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终,经过NMS筛选后获得检测到的物体。
        滑窗法简单易于理解,但是不同窗口大小进行图像全局搜索导致效率低下,而且设计窗口大小时候还需要考虑物体的长宽比。所以,对于实时性要求较高的分类器,不推荐使用滑窗法。

选择搜索算法Selective Search

选择搜索方法是最为熟知的图像bouding boxes提取算法,由KoenE.A于2011年提出。

选择搜索算法的主要观点:图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此,选择搜索基于上面这一想法采用子区域合并的方法进行提取bounding boxes候选边界框。首先,对输入图像进行分割算法产生许多小的子区域。其次,根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小等等)进行区域合并,不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做bounding boxes(外切矩形),这些子区域外切矩形就是通常所说的候选框。

Selective Search策略其实是借助了层次聚类的思想将层次聚类的思想应用到区域的合并上面。
算法流程:

step0:生成区域集R
        step1:计算区域集R里每个相邻区域的相似度S={s1, s2,…}
        step2:找出相似度最高的两个区域,将其合并为新集,添加进R
        step3:从S中移除所有与step2中有关的子集
        step4:计算新集与所有子集的相似度
        step5:跳至step2,直至S为空

选择搜索优点:
  计算效率优于滑窗法。
  由于采用子区域合并策略,所以可以包含各种大小的疑似物体框。
  合并区域相似的指标多样性,提高了检测物体的概率。

效果评估->IoU(Intersection over Union)真实框预测框交并比

概念定义:

IoU是一种测量在特定数据集中检测相应物体准确度的一个标准。IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。为了可以使IoU用于测量任意大小形状的物体检测,我们需要ground-truth 和 bounding boxes,即真实框、预测框。

这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高。如上图所示。绿色标线是人为标记的正确结果(ground-truth),红色标线是算法预测的结果(predicted)。

IoU计算

IoU是两个区域重叠的部分除以两个区域的集合部分得出的结果,通过设定的阈值,与这个IoU计算结果比较。

举例,绿色是预测框,红色是真实框:

IoU和目标检测中的正负样本生成问题

参考:深度学习在图像领域的几个任务和目标检测中的正负样本问题_RayChiu757374816的博客-CSDN博客

NMS非极大值抑制

预测结果中,可能多个预测结果间存在重叠部分,需要保留交并比最大的、去掉非最大的预测结果,这就是非极大值抑制(Non-Maximum Suppression,简写作NMS)。如下图所示,对同一个物体预测结果包含三个概率0.8/0.9/0.95,经过非极大值抑制后,仅保留概率最大的预测结果。

非极大值抑制使用来根据Iou阈值筛选候选框的,过程是:

  1. 首先将所有框按照置信度进行排序(bboxs集合);
  2. 选取bboxs集合中置信度最高的框m,放入集合M中;
  3. 计算bboxs里所有框和m的IOU,如果IOU大于阈值,则视为重复框,将之除去;
  4. 重复2、3步。、

放到整个流程中是:

首先原图先生成候选框,然后根据IoU划分正负样本,最后NMS筛选候选框。

基于SS的传统、古典目标检测的流程:

出自论文:

Uijlings, Jasper RR, et al. "Selective search for object recognition." International journal of computer vision, 104(2) (2013): 154-171.

第一步:准备数据集

负样本: 给定一张训练图像 --> 形成原始的过分割区域 --> 使用本文SS方法对区域进行融合,形成一系列最可能的候选区域 --> 计算每个候选区域与真实标记区域GT之间的重合度,如果区域A与GT的重合度在20-50%之间,而且A与其他的任何一个已生成的负样本之间的重合度不大于70%,则A被采纳为负样本,否则丢弃A,继续判别下一个区域;

正样本: 就是那些手工标记的GT区域作为正样本;

这里注意正负样本均衡问题。

第二步提取正负样本的Haar、HOG特征

HOG特征 + bag-of-words特征,同时辅助性地增加了SIFT,two colour SIFT,Extended OpponentSIFT,RGB-SIFT这四种特征,这样特征加起来的维度达到了惊人的360,000

第三步使用SVM等分类器训练:

第四步: 反馈False Positive

将分类器训练好了,训练好了就完了吗? NO! 现在流行一种反馈机制,SVM训练完成了,将得到每个训练图像每个候选区域的软分类结果(每个区域都会得到一个属于正样本的概率),一般如果概率大于0.5将被认为是目标,否则被认为是非目标,如果完全分类正确,所有的正样本的SVM输出概率都大于0.5,所有负样本的SVM输出概率都小于0.5,但是最常见的情况是有一部分的负样本的输入概率也是大于0.5的,我们会错误地将这样样本认为是目标,这些样本就称之为"False Positives".

我们这里就是想把这些"False Positives"收集起来,以刚才训练得到的SVM的权值作为其初始权值,对SVM进行二次训练,经过二次训练的SVM的分类准确度一般会有一定的提升;

第五步测试

测试的过程基本和训练过程相同: 首先用SS方法得到测试图像上候选区域 --> 然后提取每个区域的特征向量 --> 送入已训练好的SVM进行软分类 --> 将这些区域按照概率值进行排序 --> 把概率值小于0.5的区域去除 --> 对那些概率值大于0.5的,计算每个区域与比它分数更高的区域之间的重叠程度,如果重叠程度大于30%,则把这个区域也去除了 --> 最后剩下的区域为目标区域.

【如果对您有帮助,交个朋友给个一键三连吧,您的肯定是我博客高质量维护的动力!!!】

目标检测综述(一:历史由来和古典目标检测的出现)相关推荐

  1. Deep Learning for Generic Object Detection: A Survey -- 目标检测综述总结

      最近,中国国防科技大学.芬兰奥卢大学.澳大利亚悉尼大学.中国香港中文大学和加拿大滑铁卢大学等人推出一篇最新目标检测综述,详细阐述了当前目标检测最新成就和关键技术.文章最后总结了未来8个比较有前景的 ...

  2. 【时间序列异常检测】时序异常检测综述整理(2020-2021)

    转载:宅码 最近阅读几篇异常检测综述,这里整理分享给大家,推荐阅读:5星.不足之处,还望批评指正. 赵越博士的异常检测库Python Outlier Detection (PyOD) [1]写的很好, ...

  3. 模式识别和机器学习有必要学么_【视觉】机器视觉表面缺陷检测综述(下)

    摘自于:汤勃, 孔建益, 伍世虔. 机器视觉表面缺陷检测综述[J]. 中国图象图形学报, 2017, 22(12):1640-1663.关键词:机器视觉; 表面缺陷; 检测算法; 图像处理; 图像识别 ...

  4. 近20年最全目标检测综述

    点击蓝字关注我们 扫码关注我们 公众号 : 计算机视觉战队 扫码回复:目标检测,获取源码及论文链接 OBJECT DETECTION IN 20 YEARS 我们将从多个方面回顾对象检测的历史,包括里 ...

  5. 近20年最全目标检测综述(第二期)

    点击蓝字关注我们 扫码关注我们 公众号 : 计算机视觉战队 扫码回复:目标检测,获取源码及论文链接 由于之前该推送没有署名论文作者相关信息,这次我们做了修改调整,给大家重新分享一次,希望能给需要的同学 ...

  6. 2020年最全目标检测综述(完结篇)

    点击蓝字关注我们 computerVision 计算机视觉战队 ● 扫码关注,回复:目标检测 ● 获取目标检测相关下载链接 今天我们的目标检测综述最后一章,也是这个系列的完结,希望有兴趣的同学可以从中 ...

  7. 目标检测综述:Object Detection in 20 Years: A Survey

    文章目录 1. INTRODUCTION 1.1 区别 1.2 目标检测中的困难和挑战 2. OBJECT DETECTION IN 20 YEARS 3. SPEED-UP OF DETECTION ...

  8. AI综述专栏 | 基于深度学习的目标检测算法综述

    https://www.toutiao.com/a6685618909275488780/ 2019-04-30 17:35:53 关注微信公众号:人工智能前沿讲习, 重磅干货,第一时间送达 AI综述 ...

  9. 分割点云数据_3D点云深度学习综述:三维形状分类、目标检测与跟踪、点云分割等...

    3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每年在各大会议上都有大量的相关文章发表.当前,点云上的深度学习变得越来越流行,人们提出了许多方法来解决这一领域的不同 ...

  10. 【百度飞浆】目标检测综述

    目标检测综述 什么是目标检测 应用场景 商品检测 智慧交通 巡检:安全生产 巡检:输电通道本体及缺陷识别 存在的挑战 垂类细分领域 算法进展 传统目标检测算法 深度学习的优势 两阶段之RCNN:深度学 ...

最新文章

  1. UVA 10494 - If We Were a Child Again(高精度除法和取余)
  2. 写给将要参加软考的朋友们
  3. 国赛无望,兄弟尽力了
  4. Java如何判断今天本月第几周的周几?
  5. Python合并两个List
  6. 高精度乘法 c语言,很大的数相乘怎么办?
  7. Java Spring研究之initHandlerMappings - MavenSandbox debug
  8. css定位positon
  9. 151205 财务管理原理作业(笔试题型)
  10. leetcode 538. 把二叉搜索树转换为累加树 思考分析
  11. 【Python 必会技巧】使用 Python 追加写入 json 文件或更改 json 文件中的值
  12. ad域 禁用账号_IST-AD域信息同步平台来袭
  13. 【英语学习】【WOTD】purview 释义/词源/示例
  14. STM32网络ETH
  15. maze3D-一款三维迷宫游戏
  16. 标注工具 labelImg 的下载安装及使用
  17. 优化算法--SGD,batch SGD
  18. 金庸的武侠世界和SAP的江湖
  19. python opencv Shi-Tomasi 角点检测和特征跟踪
  20. 微信音乐回复时出现“链接无效,无法播放”的情况

热门文章

  1. html网页中加入音乐播放器,html 网页添加音乐播放器
  2. 企业微信双开及三开的方法
  3. OpenModelica使用入门
  4. 教育培训招生小程序源码
  5. wincc显示系统时间_Wincc的系统时间该如何用变量显示?
  6. 蓝牙HC05主从设置连接说明
  7. sqlite创建表格
  8. 计算机专业文献阅读报告,文献阅读报告范本.doc
  9. 阿里云域名转入/转出操作教程
  10. 微信小程序 转发功能实例讲解