计算机视觉——特征检测

【本学期选修国科大高伟老师的计算机视觉课程,本人方向也是cv,因此想通过博客方式记录课程中比较重要的点,巩固并且进行一些扩展学习】

【本章节内容针对图像特征进行讲解】

瞳孔通过接收图像反射的光投射到视网膜上,神经元再将这种刺激传递给大脑,大脑做出反应,辨别出图像的类型。那么大脑是通过什么特征来辨别图像的呢?

边缘和轮廓是两个必不可失的研究方向

因此如果能对边缘和关键点可靠提取的话,很多视觉问题就基本上得到了解决!

而图像边缘的产生源于物体的边界、表面方向的改变、不同的颜色、光照明 暗的变化。

接下来我们将根据边缘定义、提取边缘意义和方法进行介绍。

1.边缘定义:

1.1   “边缘是图像中亮度突然变化的区域。”
1.2   “图像灰度构成的曲面上的陡峭区域。”

1.3   “像素灰度存在阶跃变化或屋脊状变化的像素的集合。”

2.提取边缘的意义

  边缘是最基本的图像特征之一:
  可以表达物体的特征、边缘特征对于图像的变化不敏感 、几何变化,灰度变化,光照方向变化 、可以为物体检测提供有用的信息、是一种典型的图像预处理过程

3.如何提取边缘

灰度图象边缘提取思路:
抑制噪声(低通滤波、平滑、去噪、模糊) 边缘特征增强(高通滤波、锐化) 边缘定位

拿下图黑到白为例子,我们以及通过灰度值1-0中变化最快的,也就是一阶导数极大值或者二阶导数过零点来判断边缘。

这边介绍一下比较重要的拉普拉斯算子

\Delta I=\triangledown ^{2}I=\frac{\alpha ^{2}I}{\alpha x^{2}}+\frac{\alpha ^{2}I}{\alpha y^{2}}

拉普拉斯算子的数值近似   3*3卷积模版,也就是锐化效果,加剧边缘对比。

Laplacian of Gaussian (LoG)

首先用Gauss函数对图像进行平滑,抑制噪声 ,然后对经过平滑的图像使用Laplacian算子,利用卷积的性质LoG算子等效于: Gaussian平滑 + Laplacian 二阶微分。

接下来我将介绍一个边缘的检测器

Canny边缘检测器   

非极大值抑制::由梯度幅值图像M(x,y),仅保留极大值。

双阈值提取:使用大的阈值,得到: 少量的边缘点 、许多空隙

                      使用小的阈值,得到: 大量的边缘点 、大量的错误检测

 

 最后我们将介绍两种角点检测算法

Harris角点

基本思想:从图像局部的小窗口观察图像特征
角点定义:   窗口向任意方向的移动都导致图像灰度的明显变化

 数学表达:

 

 

对每一个窗口计算得到一个分数R,根据R的大小来判定窗口内 是否存在harris特征角。
定义:角点响应函数𝑅(与特征值相关)
𝑅 = det 𝑀 − 𝑘(trace 𝑀)2
det 𝑀 = 𝜆1𝜆2
trace 𝑀 = 𝜆1 + 𝜆2

 

Harris角点的性质 

1.角点响应函数𝑅对于图像的旋转具有不变性

2.对于图像灰度的仿射变化具有部分的不变性

3.对于图像几何尺度变化不具有不变性:随尺度变化,Harris角点检测的性能下降

FAST

【假设:若该点的灰度值比其周围领域内足够多的像素点的灰度值大或者小,则该点可能为角点。】
FAST算法步骤
1. 从图片中选取一个像素P,下面我们将判断它是否是 一个特征点。我们首先把它的亮度值设𝐼 𝑝
2. 设定一个合适的阈值t。
3.考虑以该像素点为中心的一个半径等于3像素的离散化的Bresenham圆,这个圆的边界上有16个像素.
4.如果在这个大小为16个像素的圆上有n个连续的像素点,它们的像素值要么都比𝐼 𝑝 +t大,要么都比 𝐼 𝑝 t小,那么它就是一个角点。(白色虚线所示)

 进阶版思路:

1.仅检查在位置1,9,5和13四个位置的像素,首先检测 位置1和位置9,如果它们都比阈值暗或比阈值亮,再检 测位置5和位置13。
2.如果p是一个角点,那么上述四个像素点中至少有3个 应该必须都大于 𝐼 𝑝 +t或者小于 𝐼 𝑝 t,因为若是一个角点, 超过四分之三圆的部分应该满足判断条件。如果不满足, 那么p不可能是一个角点。
3.对于所有点做上面这一部分初步的检测后,符合条件 的将成为候选的角点,再对候选的角点,做完整的测试, 即检测圆上的所有点。
FAST需要改进的地方:
1.由于FAST算法依赖于一个阈值t,因此算法还需要人为干涉;
2. FAST算法不产生多尺度特征而且FAST特征点没有方向信息,这 样就会失去旋转不变性
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 人脸识别系统是一种利用计算机技术对人脸进行识别和验证的系统。其,opencv人脸检测是一种基于opencv库的人脸检测算法,可以通过计算机视觉技术对图像或视频的人脸进行检测和识别,具有高效、准确、实时等特点,广泛应用于安防、人机交互、智能家居等领域。 ### 回答2: 人脸识别系统是一种可以通过对人脸进行特征提取、比对和识别的技术,目前已广泛应用在生物特征识别、安防监控等领域。而OpenCV人脸检测是在计算机视觉领域应用广泛的一种算法。 OpenCV是一个开源计算机视觉库,提供了很多图像处理和机器视觉算法,其人脸检测是OpenCV应用最广泛的算法之一。OpenCV人脸检测的基本思路是利用Haar-like特征进行人脸检测。 Haar-like特征是一组由Viola和Jones在2001年提出的能够对图像进行分类的特征,主要由白色和黑色的矩形块组成。这些特征可以在人脸区域和非人脸区域产生显著的区别,因此可以用来进行人脸检测。在OpenCV,利用Adaboost算法来训练分类器,从而实现人脸检测。 OpenCV人脸检测有以下几个优点: 1. 检测速度快:OpenCV的人脸检测算法可以实现实时检测,能够处理实时视频,并对每一帧进行人脸检测。 2. 高检测率和低误检率:OpenCV人脸检测算法经过大量的训练和优化,能够准确地检测人脸,且误检率低。 3. 应用广泛:由于OpenCV是一个开源库,其特性与应用广泛,可以应用于不同领域的人脸检测。 4. 动态人脸识别:OpenCV人脸检测算法能够在不同角度、不同光照条件下对人脸进行检测和识别。 5. 简单易用:OpenCV提供了简单的API调用,即可完成人脸检测。同时,OpenCV还提供了丰富的文档和示例,使得人脸检测的实现变得更加简单。 总之,OpenCV人脸检测算法是一种可靠的人脸检测技术,可以广泛应用于不同领域。通过不断地优化和训练,OpenCV的人脸检测算法仍有望在未来得到进一步的提升。 ### 回答3: 人脸识别是一种高科技应用,它可以在不进行人工干预的情况下识别人们的身份。在过去的几年里,随着计算机技术的不断发展壮大,人脸识别技术得到了迅速的发展和应用。 Opencv人脸检测是一种常见的人脸识别技术,它可以快速、准确地检测人脸并提取出相关的数据信息。Opencv人脸检测使用基于统计学的模型,可以快速检索出整张图像的所有人脸,并用边缘高亮标出。其识别空间包括面部区域,由眼睛、口鼻、眉毛和脸型等特征组成。而为了提高识别的准确度,Opencv人脸检测还涉及到其他一些算法,比如特征提取、人脸分类和智能识别。 Opencv人脸检测是非常重要的安全工具,它可以用于认证和安全访问控制、图像搜索和媒体应用。在计算机视觉和机器学习领域,Opencv人脸检测是重要的探究之一,因为对于如何解决图像多样性问题的机器人操作的研究而言,人脸检测是非常关键的。Opencv人脸检测还可以用于许多领域,如自然语言处理、光学字符识别等,进一步方便了计算机与人类之间的交流。 在未来,Opencv人脸检测技术有望得以发展与扩展,实现更加准确、精密的人脸识别,为广大人民群众的生产生活提供更多的便利与保障。诚然,Opencv人脸检测仅仅是人脸识别的一个小部分,但它在其占有重要的地位,在此我们真诚地期待着Opencv人脸检测技术能够顺利地实现更深入的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值