关于计算机视觉中的目标检测与目标识别概念的理解

参考:https://baijiahao.baidu.com/s?id=1587893678902208140&wfr=spider&for=pc

个人在看文献时候,会发现有一部分人喜欢用目标检测,有一部分人喜欢用目标识别,那么两者有什么区别呢???

以最经典的人脸检测来说,对于一张输入的包含有人脸的图,检测做的工作主要是将人脸的位置进行标记,至于对应位置的人脸是谁的脸???不做分析;

当将检测到的人脸位置的人脸进一步识别后,即进行了人脸识别,就可以获取到对应的人脸信息,是张三的脸呢,还是李四的脸;

以实际例子来说明,opencv中机器学习经典应用中包含有人脸检测的检测核haarcascades,(使用基于Haar特征的级联分类器的对象检测是Paul Viola和Michael Jones在2001年发表的文章“使用简单特征的增强级联的快速对象检测”中提出的一种有效的对象检测方法。它是基于机器学习的方法,其中a级联功能是从许多正面和负面图像进行训练。然后用它来检测其他图像中的对象。);

引用:https://blog.csdn.net/mago2015/article/details/83748330

如下图所示,纯粹的人脸检测只能标记出脸的位置,需要进一步知道脸对应的人物还需要做进一步的工作;而那一部分工作做完就是人脸识别(产品很多,像目前流行的门卫处一般会安置人脸识别等等设备);

在这里插入图片描述
https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1603100172916&di=39d62b49b19dc6402aa75ba89337b0b5&imgtype=0&src=http%3A%2F%2Fimages.ofweek.com%2FUpload%2FNews%2F2016-11%2Fsmarthome%2F1102%2F26.png在这里插入图片描述

关于在车辆与行人的检测与识别这一块,个人认为在这里这两个词没有太多的区别,车辆检测与车辆识别在很多做自动驾驶方向的文章中并没有做太多的区别,并没有呈现出识别工作比检测更深一步的现象,例如,车辆检测需要完成视觉或者激光的检测,获取对应的位置,速度等信息,而识别则需要达到清楚车辆是哪一种车辆???(轿车、货车、客车 etc.)

同样,行人检测与识别区别又是什么样子呢???是不是识别需要达到能够分辨出行人类型???(男性、女性、老人、小孩、老师、工程师 etc.)

反过来问?倘若获取到这些信息,是否有利于自动驾驶的信息处理,这些信息是否有必要???

如果有必要清楚更细节的信息,那么识别相对检测来说更为重要;

————————————————————————————————————————————————————————————————————————————

“对象检测”和“对象识别”通常可以互换使用,应用的命名主要取决于编写程序的人员。
“对象追踪”则常见于检测与识别算法公司。

三者结合在一起能够实现更可靠的应用,但我们可能不清楚彼此的区别以及彼此的关联(对象追踪实际上只是对象识别的延伸吗?)。然而,我们可以首先参考一本标准的字典,查看与每个流程有关的算法,然后对这三者进行明确的区分。

一个可能有用的做法是,我们可以用对象发现来替换对象检测用对象理解来替换对象识别。显然,我们知道理解一个事物和发现这个事物有所不同。除了语义之外,我们希望知道每个流程所涉及的算法(理清算法的基本作用)。当我们理解应用特定模型或算法类型的结果时,区分术语之间的含义不仅只是词语的问题,而是一个过程和结果的问题。但词语的意义仍然十分重要,因为它们首先影响了大脑描述现实的方式。下面我们首先看看检测的标准定义。

1. 检测

检测算法会提出这个问题:这里“有”什么吗?

1.1 一种发现的行为

字典总是有助于我们理清任何一个词语的定义,尤其是程序员和工程师不常以一致方式使用的词语。《韦氏词典》将检测定义为:发现,发觉或注意到某事的行为或过程。“某事”可以是任何东西(鸟,飞机或气球)。检测的主要意义是:注意到某事存在于这里。
对象检测的目标是注意或发现对象的存在(图像或视频帧内),为了能够判定除静态背景(更大一组的像素,大部分在帧与帧之间都保持不变)之外的一个对象(像素的一个不同子集)。但是,我们如何能从背景中辨别出一个对象呢?对于这一点,图像和视频的处理方式有所不同。

。。。

1.5 从一般到具体

气体检测器是检测或感知气体存在的设备。根据设备的精度,甲烷,酒精蒸汽,丙烷和更多的化合物都有可能触发警报。金属探测器是用来发现金属的仪器。对象检测器会发现对象存在的设备,亦即一帧中像素的区域。当我们开始从一般到具体时,如从气体到甲烷从金属到金从对象到人,其中的含义是指:我们事先已经知道这具体的事物。

这就是检测与识别的区别:检测是判断这里存在一个对象,识别则是知道这个对象是什么。

我们可以将检测到的气体识别为甲烷;我们可以将检测到的金属识别为黄金;而且我们可以将一个检测到的对象识别为一个人。对象识别技术使得我们能够创建更精确的计算机视觉应用程序,可以处理对象的细节(人或灵长类动物,男性或女性,鸟类或飞机)。对于检测,这就像是说我们知道远处出现了一个(模糊)对象,而识别就像是为我们戴上了一副眼镜,我们现在可以知道这个对象实际上是一只猫,而不是一块石头。

识别的定义

韦氏词典将“识别”定义为:由于先验知识或经验而知道某人或某物是什么的行为。基于这一点,我们可以将对象识别理解为一种识别或了解(图像或视频帧中的)对象性质的过程。识别可以基于匹配,学习或模式识别算法,其目标是标注(分类)一个对象,并提出如下问题:这个对象是什么?
在这里插入图片描述

识别的行为(我“知道”这个对象是一只白头鹰)不同于检测行为(我注意到那里“有”一个对象)。但算法在看到这个对象后究竟如何“知道”这就是白头鹰呢?我们是否可以“训练”算法来区分白头鹰与其他鸟类呢?也就是说编写一个可以详细说明白头鹰与其他鸟类性质的计算机程序?事实证明,我们无法有效对计算机进行如此训练(亦即提供指令),所以我们必须设计出可以自我学习的算法。

从经验中学习的算法

我们可以通过识别技术(足够聪明,可以判断商业客机与海鸥的区别)来进一步探测对象的性质。这种算法可以精确地对对象进行分类,因为它们已经接受了这样的训练,而我们将其称之为机器学习算法。算法获取关于某物(例如鸟类)知识的方式是通过训练数据:通过接触成千上万张不同鸟类的图像,算法可以“自我学习”,从而识别不同种类的鸟禽。机器学习算法是可行的,因为它们可以从图像中提取视觉特征。在提取视觉特征后,算法可以根据特征将一个图像(第一次出现的未知图像)与另一个图像(在训练期间“看到”的图像)相关联。如果上面的识别应用程序(图5)从未接受过任何标有“白头鹰”的图像的训练,在向其展示一只白头鹰时,应用程序将无法将对象标记为白头鹰。但应用程序可能仍然足够聪明,可以知道这个对象是一只鸟(正如图6所示,应用将最左边的对象标记为“bird(鸟)”)。

追踪

追踪算法希望知道某物到底要去哪里。

牢牢盯着某物

追踪算法喜欢“死缠烂打”。这种顽强的算法会一直跟着你(假设你是目标对象),无论你走到哪里都一直跟着你。至少,这是我们所设想的理想追踪器。韦氏词典将“追踪”的动词用法定义为:跟随或观察某物或某人的路径。
对象追踪的目标是一直观察某物(连续视频帧中对象的路径)。追踪算法通常建立在对象检测和对象识别的基础上,或者与对象检测和对象识别共同协作,然后在视频流中定位(并稳定地观察)运动对象(或一系列的运动对象)。
系统存在对象的位置历史记录(追踪总是在处理帧与帧之间的关系),这使得我们知道对象位置会如何随着时间的推移而发生变化。这意味着我们拥有了一个对象运动的模型(提示:模型可以用于预测)。卡尔曼滤波器(一组数学方程)可用于确定对象的未来位置。通过采用一系列随时间进行的测量,这种算法提供了预测过去,现在和未来状态的方法。
当然,预测状态有助于对象追踪。对于移动对象,我们希望可以预测其未来的状态,亦即对象的下一步行动。但是,为什么我们要这样做呢?因为对象可能会被遮挡,而且如果我们的最终目标是在帧与帧之间保持对一个对象的识别,预测对象的未来位置有助于帮助我们处理遮挡的情况。

遮挡问题

当你试图牢牢盯紧关注某物或某人时,遮挡可能会成为一个问题。假设我们在一条繁忙的城市街道上跟踪一个特定的行人,然后公共汽车突然之间挡住了他的身影。这时,一个强大的追踪算法就可以处理暂时的遮挡,并保持对目标人物的锁定。确保算法能够一直锁定于同一个对象,从而确保不会丢失追踪,这实际上是十分困难的挑战。即使图像中的行人不再存在(公交车的像素遮挡了行人),这个算法还是有可能预测行人的未来路径。因此,尽管有无数的障碍物可能会遮挡住我们的视线,但我们可以继续有效地跟踪这个行人。

彼此区分但可以彼此协作的过程

对象检测的过程可以发现这里“有”什么东西(我们称之为“对象”一个像素子集);对象识别技术可以判断这是“什么”(将对象标记为特定对象,比如说白头鹰);对象追踪则可以确保我们跟随特定对象的路径。

准确的定义有助于我们了解这一系列的过程。结合定义和我们对所述算法的理解,我们可以进一步了解术语之间的不可替换性,亦即检测不是识别的同义词,追踪不仅只是检测的延伸。如果我们知道检测的结果(基于这个词的真正含义),我们就会知道检测算法的目标不是分类或识别一个对象,其目标只是发现这个对象的存在;我们也知道,诸如卡尔曼滤波器(可以确定对象的未来状态)这样的追踪算法不仅只是背景减法之类的扩展;识别意味着我们(总是)事先已经知道某物,而检测则恰恰相反。

我们现在知道,区分这些术语不仅只是字词的问题,而是一个过程和结果的问题(根据所涉及算法的目标和结果)。尽管彼此不尽相同,但三者不存在哪一个优于哪一个的说法,对象检测,对象识别和对象追踪的结合通常可以创建出更先进或更强大的应用程序。每个过程(对象检测,对象识别和对象追踪)都存在自己的目标,而它们可以相互补充。但如果我们希望最终结合这三者(思索出尤为智能的算法组合),以创建出有用和可靠的计算机视觉应用程序,我们首先需要知道怎样区分它们,而这也是映维网今天向大家分享本文的主要原因。

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sjh_sjh_sjh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值