经典图像检测技术概述

使用视觉传感器采集环境信息,准确地识别物体的特征。需要利用采集回来的图像对有价值的特征点进行提取,然而在实际情况下由于噪声等因素的存在,将会大大降低摄像机所采集到的图像质量,因此在进行特征提取之前对图像的处理操作就显得尤为必要和关键。本章主要介绍了图像处理的方法包括灰度化、二值化、中值滤波等。图像进行特征提取的方法本章主要介绍了基于灰度阈值的图像检测以及边缘提取的经典算法概述。

2.2 基于灰度阈值的图像检测

在现实中经常会受到摄像机设备和外部环境噪声的影响致使数字图像在数字化和传输过程中受到干扰,降低了图像的质量,也为后期的处理增加了难度。直接获取的原始图像还可能存在灰度级较为集中,并不符合人眼观察的习惯等。这些因素都会严重影响对数字图像进一步进行特征提取等处理。因此我们需要对采集的图像进行图像处理。

在工业界的一种颜色标准是通过对红、绿、蓝三个颜色相互叠加来得到各式各样的颜色的。因此在彩色图像每一个像素中R、G、B都有其各自的值。而当R、G、B三个通道个值互等时(即R=G=B时),图像变成灰度图像。灰度化实际上就是将彩色图像上每一像素设定为某一灰度值的过程。一般灰度化方法分为以下四种:

(1)分量法:

彩色图像中的有RGB三个分量,根据所需图像的不同要求,可以分别将其中一个分量作为整个图像的灰度值。

(2-1)

式中 代表图像转换后的灰度图像在点 处的灰度值。

(2) 平均值法:

将彩色图像中的RGB三个分量求和取平均值得到一个灰度值。

(2-2)

式中 代表图像转换后的灰度图像在点 处的灰度值。

(3)最大值法:

(2-3)

式中 代表图像转换后的灰度图像在点 处的灰度值。

(4) 加权平均法:

根据所需图像处理要求,将彩色图像中RGB三个分量的重要性进行比重区分,之后根据各自的权值进行加权平均处理。人眼对于不同颜色的分辨程度不同,其中绿色最高,红色次之,最弱为蓝色。

(2-4)

式中 代表图像转换后的灰度图像在点 处的灰度值。

灰度直方图是对图像中灰度值的数目进行计数的函数。横坐标表示图像中某一点的灰度值,纵坐标表示图像中特定灰度值的数目或频率。灰度直方图的作用是直观的看出灰度范围,有利于选出合适的图像去噪、增等强方法,同时在对图像二值化处理时,灰度直方图对阈值的选取提供判断依据。

在 中,利用函数 对图像进行灰度化处理,其中前两项代表将图像 的颜色空间转换后保存到图像 中, 表示颜色空间的转化形式,当进行灰度化操作时 为 。当创建灰度直方图时使用 函数,其中第一参数 表示直方图的维数,灰度直方图取为1,第二参数 表示直方图维数,第三参数 表示直方图维数的数组。执行灰度处理,如图2.1所示:

(a)原图 (b)灰度图

(c)灰度直方图

图2.1 图像灰度处理

在处理摄像头采集的图像时,通常采集回来的图像信息不仅包含目标物体,还包含目标物体后的背景,以及由摄像机自身和环境所产生的的噪声等,因此要想从图片复杂的信息中提取出我们想要的目标物体,需要应用图像检测技术。常用的方法是选定一个阈值T,将图像上每一个像素点的灰度值与T相比较,将大于T和小于T的像素点分别设置不同的两个特定灰度值。这就将图像数据分成了两个像素群,同时也就将图像中的信息分成目标信息和背景信息两部分,这个过程就称为图像的二值化。

如果图像中的像素点灰度值大于用户根据实际情况所设定的阈值,则将该像素点的灰度值设置为0或255,反之,如果图像中的像素点灰度值小于用户根据实际情况所设定的阈值,则将该像素点的灰度值设置为255或0。而根据选取的阈值不同,可将二值化方法具体分为:非零元素取一法、固定阈值取一法、双固定阈值取值法。

阈值法图像分割表达式:

(2-5)

本课题中同样用到设置阈值进行二值化图像处理的原理,通过采用OpenCV库函数

来处理二值化问题,其中前两项代表将图像 二值化处理后的图像保存到图像 中。

根据图2.5采集的环境图像进行不同阈值下的二值化处理如图2.2所示:

(a)阈值为10 (b)阈值为45

(c)阈值为89 (d)阈值为137

图2.2阈值不同时,实验结果

通过上上图提取的灰度直方图判断,二值化阀值选取的最佳值在90左右,通过图2.2所示不同阀值下的二值化处理可知,在实际现象中阀值取89时,二值化图像分割明显,取值合适。

2.3 图像特征提取

本文需要提取的特征是不需要任何空间关系的信息就可以自动提取的基本特征,又称为低层次特征。由此可知,之前所提到的二值化通过设定阈值处理的方法就是一种低层次特征提取。在现实图像处理过程中图像的边缘信息也是一种低层次特征,其作用非常重要,因为图像的边缘信息通常是要进行特征提取的位置,它的准确性关系到提取信息精度[14]。边缘检测不但可以提高精确度,还可以使总数据减少,符合特征提取的基本要求。通常在边缘处的灰度值会有类似阶跃性的变化,因此提取边缘的过程其实就是将灰度梯度变化显著的点寻找出来,再将所有的点连接起来就形成了边缘线。而由高等数学的知识知道,梯度变化的实质就是微分,通常情况下我们选用一阶微分处理图像就可以实现边缘检测,但当变化过于剧烈的情况时,我们可以考虑选用二阶甚至高阶微分的方法。常用的边缘检测方法有差分边缘检测、罗伯茨边缘检测算子、索贝尔边缘检测算子、普鲁伊特边缘检测算子、拉普拉斯边缘检测算子等。

(1)一阶边缘检测基本算子

由于基于边缘检测的分析不易受整体光照强度变化的影响,都能以边缘为基础理解分析图像。边缘检测强调的是图像的对比度,检测对比度就是检测亮度上的差别,所以可以利用这个特点通过把图像上边界特征凸现出来,表现了与它周围亮度的差别。根据目标的边界周围亮度阶梯变化可以识别出阶梯变化的位置就是边缘位置,我们首先应用一阶微分,由于一阶微分可以使阶梯变化处增强,而信号没有变化处一阶微分不会有响应,我们就可以应用一阶微分的这个特性将边缘信息提取出来。通过在水平方向上的相邻像素点处理可以反映在竖直方向上亮度变化梯度[14]。处理图像时我们需要水平边缘检测算子检测垂直边缘, 如

(2-6)

同样我们需要垂直边缘检测对垂直方向上的相邻像素点进行差分,先确定水平方向上亮度变化,再利用垂直边缘检测算子检测水平边缘, 如:

(2-7)

将两算子合并得出算子 ,用来检测水平边缘和垂直边缘,即

(2-8)

由此得出差分模板的系数:

(2-9)

通常在经边缘检测算子后,常用均值阈值法来将图像中一定区域内最亮的点选取出来,而阈值选取的大小可以限制选取的点数目,通常这个阈值大小是根据经验或实验所获得的。

(2)边缘检测基本算子分析

由之前的分析我们可知,利用微分的方法可以将变化梯度较大处提取出来即边缘信息,因此我们可以应用泰勒级数分析,对相邻点进行差分分析估算出导数值。

用泰勒展开式将 展开,其中为相邻点差值 :

(2-10)

则一阶导数 可由公式2-10整理得:

(2-11)

误差是由间距" 和边缘曲线的复杂程度决定的。此外,如果高阶导数取最大值,误差也会增大,实际上图像的像素点短间距采样及减少高频成分可以得到精确地近似值。关于减少误差的方法,还可以采用在两个差分点间插入一个像素来实现,相当于计算两个相邻点的一阶差分作为新的 ,表达式如下:

(2-12)

它相当于用下式合并间隔来检测边缘 :

(2-13)

再次利用泰勒级数进行分析,扩展 如:

(2-14)

从式2-10减去式2-14得到一阶导数,即:

(2-15)

式2-15表明一阶微分的估算值是由一个像素隔开的两个点的差值,误差为 ,若x<1,误差明显小于计算得出的相邻点像素差分误差,同时均值误差也可以减少噪声干扰和误差。

(3)常用边缘检测算子

罗伯茨交叉边缘检测算子在1965年提出,被公认为是最早的边缘检测算子之一,它的实现原理是在一阶边缘检测的基础上,用两个模板计算对角线上两个像素的差值。两模板分为 、 ,如下图所示:

罗伯茨交叉算子模板

实现过程中利用模板得到的最大值作为该点的边缘检测值进行储存。边缘点 在图像上点 ,对这两个模板进行卷积计算得到两个值中较大的一个:

(2-16)

我们还可以把两个模板的处理结果相加,这样我们就合并了水平边缘和垂直边缘,这种方法同样可以计算最大值。虽然在实际处理过程中边缘的种类有很多,但我们都将模板看作是用来计算边缘向量的两个成分的,即水平方向的边缘强度和垂直方向的边缘强度,进而我们可以得到向量成分。由此我们可以知道,向量长度由边缘强度表示,向量方向由边缘方向表示。

除了罗伯茨边缘检测算子,我们常用的边缘检测算子还有索贝尔边缘检测算子、普鲁伊特边缘检测算子、拉普拉斯边缘检测算子等。

(4)Canny检测算子原理及实现

本章中我们对采集回来的图像信息进行特征提取时使用的边缘检测算子是Canny检测算子。Canny检测算子的主要目标第一减少噪声滋扰,为了可以对目标信息无附加地响应最优检测我们采用高斯滤波器对边缘进行检测,第二个目标是保证图像处理的正确性,即要在正确的位置检测边缘的正确信息,这里我们是采用非极大值抑制处理来实现,非极大值抑制返回的都是边缘数据顶脊处的点,再将这些顶脊点连成线,这就大致检测出了边缘正确位置。第三个目标是单个边缘点对于亮度变化的定位,我们采用双阈值算法将检测出的结果连成线就将边缘信息提取了出来。

Canny检测算子的基本原理中用高斯滤波器平滑图像是最优的,高斯算子 可表示为:

(2-17)

沿坐标轴对单位向量 和 进行微分处理可得:

(2-18)

高斯平滑处理和一阶微分结合处理后,边缘的数据信息就成为了数据岭,我们想要在正确点上标记边缘要对给出的一阶导数算子进行卷积计算,它的最大值就是边缘数据岭的峰值,在该点的梯度是最精确的,就可将此作为边缘位置。

一阶导数为:

(2-19)

式中 可通过高斯函数 与图像 进行卷积计算求出,并适当缩放尺度,如下表达式:

(2-20)

边缘点的位置是与图像进行卷积运算的Gx的极大值所在的像素点,即当沿n微分值为0,其极大值为:

(2-31)

把式代入式,得到:

(2-22)

该算子符合Canny边缘检测算子标准,可在正确的位置检测到边缘,利用非极大值抑制返回峰值可细化边缘检测算子的响应给出正确点,对噪声的响应最小。

但要做到精确实现很难,常采用一个近似实现,具体操作如下:

(1) 用高斯平滑处理

(2) 用Sobel算子进行图像处理

(3) 用非极大值抑制返回峰值

(4) 连接边缘点(数据岭峰值点)的滞后阈值处理

非极大值抑制和滞后阈值处理的应用如图2.5所示,非极大值抑制是沿着图像顶脊选取特征点。将这个点标记为边缘像素点,通常我们把它设为白色像素点,进而将第一个边缘点找到,然后查找该点的邻域部分判断是否大于下限阈值,同之前的处理一样,凡是大于下限阈值的点都将其标定位边缘像素点,然后再查找大于下阈值的边缘点。根据此可以将找到的边缘点连起来形成边缘线。

根据采集的环境图像进行Canny边缘检测图像处理如图2.4所示:

(a)原图 (b)边缘检测

图2.4 边缘检测处理前后效果图

函数用于对图像进行边缘检测,其中前两项代表将图像 边缘检测后的图像保存到图像 中,第三、四个参数分别为坎尼算子的上下阈值。

2.4 经典计算机视觉技术概述

在现实生活中我们可以看到很多照片。计算机中照片由大量的像素组成,每个像素都记录颜色或亮度信息。物体在三维世界中反射或发射的光穿过照相机的光学中心并投射到照相机的成像平面上。在接收到光之后,照相机的光感测装置产生测量值并获取像素,形成我们所看到的照片。

可以使用几何模型描述摄像机将3D世界( )中的坐标点映射到2D图像平面( )的过程。有许多不同的模型,其中最简单的是针孔模型。针孔模型是一种非常普遍有效的模型。它描述了在光束穿过针孔后针孔背面的投影和成像之间的关系。在这本书中,我们使用一个简单的针孔相机模型来建模这种映射。

图2.5 针孔相机模型

由于图像坐标系仅指示数字图像中的像素列和行数,所以图像中像素的物理位置不以物理单位表示,因此需要以物理单位(例如,毫米)表示的成像平面。坐标系 如图2.5所示。我们使用 表示图像坐标系中的像素坐标,并且 表示以物理单位测量的成像平面坐标系的坐标。在坐标系 中,原点 被定义在摄像机光轴和图像平面的交点处,并被称为图像的主点。这一点一般位于图像的中心,但是由于摄像机的产生,可能存在一些偏差。如果图像坐标系中的 坐标为 ,则 轴和 轴方向上的每个像素的物理尺寸是 、 ,而是两个坐标系之间的关系。

(2-23)

为了确定摄像机在空间中的位置,有必要在空间中定义一个参考坐标系来描述它,并用它来描述任何物体在空间中的位置和姿态。这个坐标系称为绝对坐标系(也称为世界坐标系)。它由 轴组成。

绝对坐标系与摄像机坐标系之间存在刚体变换关系。在绝对坐标系和摄像机坐标系中,使空间点 的坐标为 和 ,变换关系为

(2-24)

由摄像机拍摄的两幅图像之间的基本矩阵可以通过匹配图像之间的点来计算。当使用基本矩阵获得摄像机运动参数时,基本矩阵的精度对获得的摄像机运动参数有很大影响。因此,要求基本矩阵必须足够精确,否则获得的摄像机姿态误差较大。

当使用特征匹配点对进行基本矩阵计算时,有两个因素降低了基本矩阵的精度:首先,在进行特征匹配时,生成匹配点对,这也被称为模型中的输出点。这很难去除。第二个是特征点位置的准确度。虽然特征提取算法可以将特征点定位到子像素级,但不能避免误差。因此,为了获得用于后续计算的更精确的基本矩阵,有必要考虑外点的去除和误差的减少。

针对这些问题,人们研究了许多基本的矩阵求解算法。这些求解算法大致可分为三类:线性求解算法、鲁棒解算法和迭代求解算法。

线性求解算法比较简单,但计算精度差,对外部点和误差敏感。它不适合直接使用。7点法和8点法是经典的线性求解算法。线性求解算法是稳健求解算法和迭代求解算法的基础。它们是基于线性求解算法的。鲁棒解算器将检测和去除匹配对中的离群值,提高解的鲁棒性。缺点是,该解决方案是基于简单的线性算法,并且仍然对匹配对的坐标误差敏感。使用 的7点和8点法是稳健估计的典型方法。迭代法利用迭代的思想对参数进行非线性优化,使误差最小。这种算法的优点是,当特征点匹配对的数量足够大时,由匹配对的坐标误差引起的计算误差可以大大减小,但缺点是它对外部点非常敏感,并且非常小的N。异常值的数目会导致计算结果的严重误差。

应用本节的知识到经典的 算法中,我们采用德国慕尼黑大学的数据集来运行开源的 算法代码。

(a)根据图像匹配得到的相机位置并求得位移轨迹

(b)根据计算的相机位置重建三维场景图像(c)根据实相机位置得到的场景图

图 2.6 实验结果图

2.5 本章小结

本章主要综述对采集的视觉图像进行图像检测、灰度化等方法的图像处理过程,之后综述了Canny边缘检测算子将图像的边缘信息提取出来。

相关推荐
AI人工智能+1 小时前
营业执照识别技术通过计算机视觉与人工智能技术,实现企业证照信息的自动化采集
人工智能·深度学习·ocr·营业执照识别
目黑live +wacyltd1 小时前
算法备案的实操指南(含截图示例)
人工智能·算法·llm·大模型备案·算法备案
guslegend1 小时前
第2节:工程初始化
人工智能·大模型
wuyoula1 小时前
如何在捷云鲸论坛高效获取高质量技术解答?
服务器·c++·人工智能·tcp/ip·源码
MacroZheng1 小时前
IDEA + Claude Code = 王炸!
人工智能·后端·intellij idea
蜘蛛小助理1 小时前
从 Excel 到多维表:蜘蛛表格如何解决传统数据库开发与维护痛点
数据库·人工智能·excel·数据库开发·多维表·多维表格·蜘蛛表格
甲维斯1 小时前
活久见 !Claude又发两好消息,感谢Codex
人工智能·ai编程
康谋自动驾驶1 小时前
缩短40%迁移周期:如何构建具身智能高可靠验证底座?
人工智能·机器人·仿真
Black蜡笔小新1 小时前
企业私有化AI训练推理一体工作站DLTM:零代码私有化重构企业AI安全监控新模式
人工智能·重构