计算机视觉度量指标教程(一)

原文:Computer Vision Metrics

协议:CC BY-NC-SA 4.0

零、简介

污垢。这是一罐泥土。

是的。

。。。这瓶泥土有用吗?

如果你不想要,就还给我。

*——加勒比海盗,*杰克斯派洛和蒂亚·达尔玛

这项工作侧重于计算机视觉度量领域的一个部分,从特征描述度量的角度,或者如何描述、计算和设计构成图像中较大对象的宏观特征和微观特征。重点是视觉流水线的像素端,而不是后端训练、分类、机器学习和匹配阶段。这本书适合参考,更高层次的课程,以及计算机视觉的自我导向学习。这本书的目标读者是已经熟悉计算机视觉和图像处理的人;然而,通过大量的插图和汇总表,即使是该领域的新手也会发现对关键概念的高层次的良好介绍。

我认为计算机视觉是一种数学艺术形式,它的研究者和实践者是艺术家。因此,这本书更像是一次艺术画廊之旅,而不是一篇技术或科学论文。提供了观察结果,提出了有趣的问题,建议使用视觉分类法来绘制该领域的概念图,并提供了参考资料来进行更深入的挖掘。这本书就像是试图绘制一幅以功能度量为中心的世界地图,尽管这张地图可能不准确且模糊,但希望其他人会受到启发,以他们自己的方式扩展细节层次,这比我或甚至少数人单独完成的要好。如果我能找到一本类似的涵盖这一特定主题的书,我就不会着手写这本书了。

书里没有的是什么

寻找计算机视觉“how-to”源代码示例、教程讨论、性能分析和快捷方式的读者不会在这里找到它们,相反,他们应该参考广受好评的http://opencv.org图书馆资源,包括许多优秀的书籍、在线资源、源代码示例和几个博客。对于实践者来说,没有什么比 OpenCV 更好的了。出于这个原因,这本书在复制 OpenCV 社区和其他地方已经提供的“如何做”的材料方面开辟了一条清晰的道路,而是提供了一个对位讨论,包括一个全面的调查、分析和方法分类。此外,不要期望所有的计算机视觉主题都被证明和性能分析所深入涵盖,因为参考书目已经很好地涵盖了这些问题:例如,机器学习、训练和分类方法只是略微介绍了一下,因为这里的重点是特征度量。

总之,这本书是关于特性度量的,展示了实践者正在使用的“什么”方法,详细观察和分析了“为什么”这些方法有效,偏向于通过观察提出问题,而不是提供太多的答案。我最喜欢提问,因为好的问题会引出很多好的答案,而每个答案往往会孕育出更多好的问题…

这本书的目标是一个调查水平,有一个分类和分析,所以没有详细的例子,个别用例或方法之间的赛马。然而,在 540 多篇参考文献中提供了更多的细节,以更深入地挖掘实际问题。此外,附录 C 中还提供了一些“操作方法”和“实际操作”资源。本书部分附带的一点“敷衍”的源代码可以在网上找到,因为附录 A 涵盖了第七章中介绍的合成兴趣点字母表的兴趣点检测器评估;以及在附录 D 中,了解第三章中涵盖的扩展 SDM 指标。

书里有什么

具体来说,第一章提供了关于 2d 图像形成和 3d 深度成像的序言,第二章促进了智能图像预处理以增强特征描述。第三章到第六章构成了对特征描述的核心讨论,重点是局部特征。全局和区域指标在第三章中介绍,特征描述符概念在第四章中介绍,视觉分类在第五章中建议,局部特征描述在第六章中介绍。真实情况数据包含在第七章的中,第八章从工程的角度讨论了假想的视觉流水线和假想的优化,作为一组练习将视觉概念结合到真实的系统中(课程作业可以设计为实现和改进第八章中的假想例子)。在第七章的中开发了一组合成兴趣点字母,并针对这些字母运行了 10 个常用检测器,结果在附录 A 中提供。很难清楚地划分图像处理和计算机视觉中的所有主题,所以在章节中有一些重叠。此外,实践中使用了许多混合方法,因此在第五章视觉分类中不可避免地会有重叠,并且创造力总是出现在地平线上,以发现使用旧方法的新的和意想不到的方式。然而,分类法是一个起点,有助于指导这本书的组织。

因此,主要目标是调查和了解用于描述特征的各种方法,而不是判断哪种方法更好。本文介绍了一些历史来描述为什么要开发某些方法,以及目标是什么性质的不变性或性能,我们让其他人来证明这些说法,因为每种方法“如何”实现决定了性能和准确性,而每种方法“用什么”来测试,就基本事实数据而言,实际上说明了故事的其余部分。如果我们能从其他人的工作中收集好的想法,那就是衡量他们工作成功的标准。

范围

为了简洁起见,我排除了与计算机视觉度量本身不直接相关的选定主题的深入处理;这是一种不寻常的方法,因为计算机视觉讨论通常包括更广泛的主题。具体来说,这里没有深入讨论的主题包括统计和机器学习、分类和训练、特征数据库构建和优化以及搜索和排序。相反,提供了参考书目。讨论了距离函数,因为它们与特征度量直接相关。(这本书的未来版本可能会深入研究计算机视觉的统计和机器学习方面,但不是现在。)

术语警告

有时文献中的术语在描述类似概念时并不一致。因此,在某些情况下,这项工作中采用的术语在独立的研究团体中并不标准化。事实上,这里可能会引入一些新的和不标准的术语,可能是因为作者不知道更好的现有术语(也许这部作品中引入的一些术语会变得标准化)。术语分歧在数学主题如聚类、回归、组距离和误差最小化方面最为明显,在计算机视觉主题如关键点、兴趣点、锚点等方面也是如此。作者认识到人们不愿意改变术语,因为许多概念都是在术语的基础上学习的。我想起了我的一个朋友,Homer Mead,他是波音公司月球车和预警机雷达的首席工程师,他下意识地拒绝从使用旧术语电容器转换到使用新术语电容器。

灵感有几个来源,主要是开拓的机会:随着边界的扩大,任何新领域总是缺乏清晰度、结构和组织,所以在这个广阔的领域,探索的机会是引人注目的:绘制出知识的结构和路径,其他人可能会跟随找到新的研究领域,沿途创建更好的标记,并将路径延伸得更远。

这本书的灵感来自于多年来与许多人的交谈。这一切是从哪里开始的?它始于 20 世纪 80 年代初的波音公司,当时我还在上大学。在我工作的高级开发研究实验室里,我接触到了计算机图形学,当时航天飞机的第一个计算机阴影 3D 渲染是以光栅形式制作的。当时,主要使用矢量图形机器,如 Evans & Sutherland Picture Systems,最终实验室增加了 BARCO 帧缓冲区,Jeff Lane 和他的团队以及 Loren Carpenter 开创了图形模型阴影图像的高级光栅计算机渲染。分形、NURBS 和 A-buffer 技术是在实验室中开发的一些方法,计算机图形的数学,如双三次曲面片和双五次曲面片,最初让我害怕图形。但我被 BARCO 帧缓冲区中的单个像素所吸引,一次一个像素,一行一帧,因为它们看起来如此直观和明显。我最初追求成像和计算机视觉,而不是所有的计算机图形和相关的数学。然而,事实证明,计算机视觉和图像处理数学更多样,而且同样复杂。从那以后,我也花了相当多的时间在计算机图形学上。早在 20 世纪 80 年代中期,我的老板唐·斯诺(Don Snow)曾是太平洋西部系统公司(Pacific Western Systems)的联合创始人兼研究副总裁,后来在 Applied Precision 工作,他让我分析用于模式识别的维尤-PRB 固定功能硬件单元,以用于自动晶片探测(以防我们需要自己制造类似的东西),从而定位晶片上的模式并调整探测机器。相关性被用于模式匹配,我们称之为“超像素”的尺度空间搜索方法匹配速率是 NTSC 上每秒 4 个 32×32 的补丁,具有亚像素精度,我计算了位置、旋转和偏移,以对准晶片探测器平台,为晶片探测做准备;我们称之为自动校准。我设计了一个模式识别伺服系统,以几个微弧度的旋转精度和几分之一微米的位置精度来定位模式。在 20 世纪 80 年代后期,我去了 Mentor Graphics 工作,几年后我离开了 R&D 公司,向总裁 Gerry Langeler 汇报,创办了一家公司 Krig Research,专注于为高端军事和研究客户提供基于昂贵且现已灭绝的工作站(SGI、Apollo、Sun……已不复存在,现已不复存在……)的计算机视觉和成像,从那以后我一直保持着兴趣。我们的行业发生了很多变化;软件似乎都是免费的,硬件或 SOC 也几乎是免费的,所以我不知道还有谁能在这上面赚钱。

最近,其他人也提供了灵感。感谢 Paul Rosin 的合成图像和组织思想。感谢 Yann LeCun 为深度学习和卷积网络提供关键参考,感谢 Shree Nayar 允许使用一些图像,并继续通过 Cave 研究项目为计算机视觉社区提供灵感。感谢 Luciano Oviedo 对行业活动和发展战略的广泛报道以及热烈的讨论。

其他的,不胜枚举,也增加了我的旅程。尽管对话有时很简短,甚至在许多情况下是通过电子邮件或 SKYPE 进行的虚拟对话,但他们的工作和思想的影响仍然存在,因此要特别感谢几位为手稿或书籍大纲提供评论、提供图片或只是他们可能没有意识到的简单灵感的人。感谢 Rahul Suthankar,Alexandre Alahi 使用图片和讨论;Steve Seitz、Bryan Russel、Liefeng Bo 和 Xiaofeng Ren 深入讨论 RGB-D 计算机视觉和其他研究主题;Gutenberg Guerra-filho、Harsha Viswana、Dale Hitt、Joshua Gleason、Noah Snavely、Daniel Scharstein、Thomas Salmon、Richard Baraniuk、Carl Vodrick、Hervé Jégou 和 Andrew Richardson 我还要感谢与英特尔的几位同仁就计算机视觉主题进行了许多有趣的讨论,包括 Ofri Weschler、Hong Jiang、安迪库兹马、Michael Jeronimo、Eli Turiel 以及其他许多我没有提到的人。

摘要

总之,我的目标是调查人们用于功能描述的方法(生成的关键指标),并使任何人都更容易理解实践中的方法,以及如何使用视觉分类和鲁棒性标准评估方法以获得他们想要的结果,并找到扩展艺术状态的领域。在听到该工作第一个版本的所有反馈后,我希望创建第二个版本,甚至更好。

斯科特战争

2014 年域年

一、图像捕获和表示

身体转化为光,光转化为身体,这非常符合自然的进程,自然似乎很喜欢这种转化

-艾萨克牛顿

计算机视觉从图像开始。本章概述了一系列涉及图像捕捉、处理和表示的主题,包括计算成像、2D 成像和 3D 深度成像方法、传感器处理、立体和单目多视图立体的深度场处理以及表面重建。提供了所选主题的高层次概述,并为感兴趣的读者提供了深入挖掘的参考。在 2D 和 3D 成像领域有深厚背景的读者可以从本章的轻松阅读中受益。

图像传感器技术

本节提供图像传感器技术的基本概述,作为理解图像如何形成以及开发图像传感器处理的有效策略以优化计算机视觉图像质量的基础。

典型的图像传感器由 CCD 单元 (电荷耦合器件 )或标准 CMOS 单元(互补金属氧化物半导体)制成。CCD 和 CMOS 传感器具有相似的特性,都广泛用于商业相机。然而,今天的大多数传感器使用 CMOS 单元,主要是出于制造考虑。传感器和光学系统通常被集成在一起,以创建晶圆级相机 用于生物学或显微镜等应用,如图图 1-1 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-1 。具有光学器件和滤色器的通用集成图像传感器装置

图像传感器旨在实现不同应用的特定设计目标,提供不同水平的灵敏度和质量。查阅厂家资料,熟悉每个传感器。例如,针对给定的半导体制造工艺优化每个光电二极管传感器单元元件的尺寸和材料成分,以便实现硅管芯面积和光强度和颜色检测的动态响应之间的最佳折衷。

对于计算机视觉,采样理论的影响是相关的——例如,应用于目标场景像素覆盖的奈奎斯特频率。传感器分辨率和光学器件必须一起为每个像素提供足够的分辨率,以对感兴趣的特征进行成像,因此,感兴趣的特征应该以对该特征重要的最小像素的最小尺寸的两倍进行成像或采样。当然,2 倍过采样只是精度的最低目标;实际上,单像素宽的特征不容易分辨。

为了获得最佳结果,应该针对给定的应用对相机系统进行校准,以确定不同照明和距离情况下的传感器噪声和像素位深度的动态范围。应该开发适当的传感器处理方法,以处理任何颜色通道的传感器的噪声和非线性响应,检测和校正坏像素,并处理几何失真的建模。如果您设计了一种简单的校准方法,使用具有精细和粗糙灰度、颜色和特征像素大小的测试图案,您可以查看结果。在第二章中,我们调查了一系列适用于传感器处理的图像处理方法。但是,让我们从调查传感器材料开始。

传感器材料

硅基图像传感器是最常见的,尽管其他材料如镓(Ga)也用于工业和军事应用,以覆盖比硅能达到的更长的红外波长。图像传感器的分辨率范围取决于所用的相机,从单像素光电晶体管相机,到工业应用的 1D 线扫描阵列,再到普通相机的 2D 矩形阵列,一直到高分辨率成像的球形阵列。(传感器配置和摄像机配置将在本章后面介绍。)

常见的成像传感器使用硅作为 CCD、CMOS、BSI 和 Foveon 方法 s 制成,本章稍后将对此进行讨论。硅图像传感器具有非线性光谱响应曲线;光谱的近红外部分被很好地感应到,而蓝色、紫色和近紫外被不太好地感应到,如图 1-2 中的所示。请注意,读取原始传感器数据并将数据量化为数字像素时,必须考虑硅光谱响应。传感器制造商在这方面进行设计补偿;然而,在校准您的相机系统和为您的应用设计传感器处理方法时,也应该考虑传感器颜色响应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-2 。几种硅光电二极管的典型光谱响应。请注意,在 900 纳米左右的近红外范围内灵敏度最高,在 400-700 纳米的可见光谱范围内具有非线性灵敏度。由于正常的硅响应,从相机中移除 IR 滤光器增加了近红外灵敏度。(光谱数据图像 OSI 光电公司,经许可使用)

传感器光电二极管电池

图像传感中的一个关键考虑因素是光电二极管尺寸或单元尺寸。使用小型光电二极管的传感器单元将无法捕获与大型光电二极管一样多的光子。如果单元尺寸低于要捕获的可见光的波长,例如 400nm 的蓝光,则在传感器设计中必须克服额外的问题以校正图像颜色。传感器制造商非常注意设计最佳尺寸的单元,以同样好地成像所有颜色(图 1-3 )。在极端情况下,由于缺乏积累的光子和传感器读数噪声,小型传感器可能对噪声更敏感。如果光电二极管传感器单元太大,也没有任何好处,芯片尺寸和硅成本增加,没有任何优势。普通的商用传感器设备可能具有大约 1 平方微米或更大的传感器单元尺寸;然而,每个制造商都是不同的,为了达到特定的要求,需要进行权衡。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-3 。波长的原色分配。请注意,原色区域重叠,绿色是所有颜色的良好单色代理

传感器配置:Mosaic、Foveon、BSI

多光谱传感器设计有多种片上配置,包括镶嵌和堆叠方式,如图图 1-4 所示。在镶嵌法中,滤色片以镶嵌图案排列在每个单元上方。FOV eon1传感器堆叠方法 依赖于颜色波长穿透到半导体材料中的深度物理学,其中每种颜色穿透到硅的不同深度,从而对单独的颜色进行成像。总单元尺寸容纳所有颜色,因此不需要为每种颜色设置单独的单元。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-4 。(左)堆叠 RGB 单元以吸收不同深度的不同波长的 Foveon 方法,每个单元位置都有所有 RGB 颜色。(右)标准马赛克单元布局,每个光电二极管上方有 RGB 滤光片,滤光片仅允许特定波长的光进入每个光电二极管

背面照明(BSI)传感器配置重新排列芯片上的传感器布线,以允许更大的单元面积和在每个单元中积累更多的光子。有关正面和背面芯片电路布置的比较,请参见 Aptina [410]白皮书。

传感器单元的排列也影响颜色响应。例如,图 1-5 显示了原色( R、G、B )传感器以及白色( W )传感器的各种排列,其中 W 传感器有一个透明或中性滤色器。传感器单元排列允许一系列像素处理选项,例如,在传感器处理期间,在相邻单元的各种配置中组合所选像素,以形成优化颜色响应或空间颜色分辨率的像素。事实上,一些应用只是使用原始传感器数据并执行自定义处理,以提高分辨率或开发替代的颜色混合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-5 。几种不同的细胞颜色镶嵌配置,包括白色、原色 RGB 和次生 CYM 细胞。每种配置都为传感器处理提供了不同的选项,以优化颜色或空间分辨率。(图片由英特尔出版社授权使用,来自构建智能系统)

传感器的整体尺寸和格式也决定了镜头的尺寸。一般来说,更大的镜头可以让更多的光进入,所以更大的传感器通常更适合摄影应用的数码相机。此外,芯片上的单元布局纵横比决定了像素的几何形状,例如,数码相机通常采用 4:3 的纵横比,而 35mm 胶片则采用 3:2 的纵横比。传感器配置细节值得了解,以便您可以设计最佳的传感器处理和图像预处理流水线。

动态范围和噪声

当前最先进的传感器为每个颜色单元提供至少 8 位,通常为 12 至 14 位。传感器电池需要面积和时间来积累光子,因此必须仔细设计更小的电池以避免问题。噪声可能来自光学器件、滤色片、传感器单元、增益和模数转换器、后处理或压缩方法(如果使用的话)。传感器读出噪声也会影响有效分辨率,因为每个像素单元都是从传感器中读出,发送到 A/D 转换器,并形成数字行和列以转换为像素。更好的传感器将提供更少的噪声和更高的有效位分辨率。Ibenthal 的工作[409]对去噪进行了很好的调查。

此外,每种颜色的传感器光子吸收是不同的,对于蓝色来说可能是有问题的,蓝色对于较小的传感器来说可能是最难成像的颜色。在某些情况下,制造商可能试图为每种颜色提供一种简单的内置于传感器中的伽马曲线校正方法,但这并不推荐。对于要求苛刻的色彩应用,考虑比色设备模型和色彩管理(将在第二章中讨论),或者甚至通过表征传感器每个色彩通道的非线性并开发一组简单的校正 LUT 变换。(适用于深度传感的噪声过滤方法也在第二章中有所涉及。)

传感器处理

需要传感器处理来对来自传感器阵列的像素进行去马赛克和组合,并校正感测缺陷。本节我们将讨论传感器处理的基础知识。

通常,在每个成像系统中提供专用传感器处理器,包括快速硬件传感器接口、优化的 VLIW 和 SIMD 指令,以及专用的固定功能硬件模块,以处理传感器处理的大规模并行像素处理工作负载。通常,传感器处理是透明的、自动的,并且由成像系统的制造商设置,并且来自传感器的所有图像都以相同的方式处理。可以存在旁路来提供原始数据,该原始数据可以允许用于诸如数字摄影的应用的定制传感器处理。

去马赛克

根据传感器单元的配置,如图 1-5 中的所示,采用各种去马赛克算法从原始传感器数据中创建最终的 RGB 像素。Losson 和 Yang [406]以及 Li 等人[407]所做的一项出色调查为所涉及的挑战和所采用的各种方法提供了一些背景资料。

去马赛克的主要挑战之一是像素插值,以将来自附近单元的颜色通道组合成单个像素。给定传感器单元布局的几何形状和单元布局的纵横比,这不是一个小问题。一个相关的问题是颜色单元权重 例如,每种颜色有多少应该被整合到每个 RGB 像素中。由于镶嵌传感器中的空间像元分辨率大于最终组合的 RGB 像素分辨率,因此一些应用需要原始传感器数据来利用所有可能的精度和分辨率,或者执行特殊处理以提高有效像素分辨率,或者更好地完成空间精确色彩处理和去镶嵌。

坏像素校正

像 LCD 显示器这样的传感器可能会有坏像素。厂商可以在工厂校准传感器,并提供已知缺陷的传感器缺陷图,提供这些坏像素的坐标,用于在相机模块或驱动软件中进行校正。在一些情况下,在传感器上使用自适应缺陷校正方法[408]来监控相邻像素,以主动寻找缺陷,然后校正一系列缺陷类型,例如单个像素缺陷、列或行缺陷以及例如 2×2 或 3×3 簇的缺陷。相机驱动程序还可以提供自适应缺陷分析,以实时查找缺陷,并可能在相机设置菜单中提供特殊的补偿控制。

颜色和照明校正

需要色彩校正来平衡整体色彩准确度和白平衡。如图 1-2 中的所示,硅传感器对红色和绿色的颜色敏感度通常非常好,但对蓝色的敏感度较差,因此提供最准确颜色的机会始于理解和校准传感器。

大多数图像传感器处理器都包含一个用于渐晕校正的几何处理器,,它表现为图像边缘较暗的照明,如第七章 ( 图 7-6 )所示。校正基于几何扭曲函数,该函数在工厂校准以匹配光学渐晕图案,允许可编程照明函数增加朝向边缘的照明。关于适用于渐晕的图像扭曲方法的讨论,参见参考文献[490]。

几何校正

镜头可能有几何像差或可能向边缘弯曲,产生径向失真的图像,这个问题与上面讨论的渐晕有关,并在第七章 ( 图 7-6 )中显示。为了处理镜头失真,大多数成像系统都有一个专用的传感器处理器,带有硬件加速的数字扭曲单元,类似于 GPU 中的纹理采样器。几何校正在工厂中为光学系统进行了校准和编程。关于图像扭曲方法的讨论,参见参考文献[490]。

相机和计算成像

许多新颖的相机配置正在进入商业应用,使用计算成像方法从原始传感器数据合成新图像——例如,深度相机和高动态范围相机。如图 1-6 中的所示,传统的相机系统 使用单个传感器、镜头和照明器来创建 2D 图像。然而,计算成像相机可以提供多个光学器件、多个可编程照明模式和多个传感器,从而实现新颖的应用,例如 3D 深度感测和图像重新照明,利用深度信息,将图像作为纹理映射到深度图上,以及引入新的光源,然后在图形流水线中重新渲染图像。由于计算相机开始出现在消费设备中,并将成为计算机视觉流水线的前端,我们调查了一些使用的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-6 。计算成像系统与传统照相机的比较。(上图)简单的相机模型,带有闪光灯、镜头和成像设备,之后是图像增强,如锐化和色彩校正。(下图)使用可编程闪光灯、光学阵列和传感器阵列的计算成像,然后是计算成像应用

计算成像概述

计算成像[447,414]提供了从原始图像数据合成新图像的选项。计算相机可以控制可编程闪光图案投影仪、透镜阵列和多个图像传感器,以及从原始数据合成新图像,如图图 1-6 所示。要更深入地挖掘计算成像并探索当前的研究,请参见哥伦比亚大学的 CAVE 计算机视觉实验室和罗切斯特技术成像研究所。下面是一些正在使用的方法和应用。

单像素计算相机

单像素计算相机可以从同一场景的一系列单个光电探测器像素图像中重建图像。单像素相机领域[103,104]属于压缩传感研究领域,该领域还具有图像处理之外的应用,延伸到诸如模数转换的领域。

如图图 1-7 所示,单像素相机可以使用类似于衍射光栅的微镜阵列数字镜器件(DMD)。光栅排列成矩形微镜栅格阵列,允许栅格区域被打开或关闭以产生二进制栅格图案。二进制模式被设计为伪随机二进制基集。通过组合相邻区域的图案来调整网格图案的分辨率,例如,2x2 或 3x3 微镜区域的网格。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-7 。一种单像素成像系统,其中入射光通过微镜的 DMD 阵列反射到单个光电二极管上。微镜阵列中的网格位置可以对光打开或关闭,如图所示,以创建二元图案,其中白色网格正方形是反射性的和开放的,而黑色网格正方形是封闭的。(图片经许可使用,R. G. Baraniuk,压缩传感讲义)

通过一组伪随机微透镜阵列图案拍摄一系列单像素图像,然后从该组图像中重建图像。事实上,重建图像所需的模式样本数量低于奈奎斯特频率,因为使用了稀疏随机采样方法,并且随机采样方法在研究中已被证明在数学上是足够的[103,104]。网格基集采样方法直接适用于图像压缩,因为只采集相对稀疏的一组模式和样本。因为微镜阵列使用矩形形状,所以图案类似于一组 HAAR 基函数。(更多信息参见图 2-20 和图 6-22 。)

DMD 方法是值得注意的,因为可以从单个光电探测器拍摄的相当小的一组图像中重建图像,而不是像 CMOS 或 CCD 图像传感器那样从光电探测器的 2D 阵列中重建图像。由于仅使用单个传感器,该方法有望应用于由 CMOS 和 CCD 传感器成像的近红外和可见光谱之外的波长。例如,使用对不可见波长敏感的非硅传感器,DMD 方法可用于检测隐藏的武器或物质在不可见波长的发射。

2D 计算相机

可编程 2D 传感器阵列、透镜和照明器的新配置正被开发成相机系统,如计算相机【424,425,426】,其应用范围从数字摄影到军事和工业用途,采用计算成像方法来增强事后图像。计算相机借用了共焦成像[419]和共焦显微镜[421,420]的许多计算成像方法,例如,使用多个照明模式和多个焦平面图像。他们还利用第二次世界大战后开发的合成孔径雷达系统[422]的研究,使用单个移动相机平台的宽基线数据创建高分辨率图像和 3D 深度图。使用多个图像传感器的合成孔径 和使用晶圆级集成的重叠视野光学系统也是研究的主题【419】。我们在这里调查一些计算 2D 传感器方法,包括高分辨率 (HR) 、高动态范围 (HDR)和高帧率 (HF)相机。

目前商用数字百万像素相机的范围从大约 1000 万像素以上,提供的分辨率相当于或超过 35mm 相机中使用的高端胶片[412],因此图像传感器的像素大小相当于最佳分辨率胶片上的一粒银。从表面上看,似乎没有什么动机去追求更高的分辨率用于商业用途,因为目前的数字方法已经取代了大多数电影应用,电影打印机已经超过了人眼的分辨率。

然而,非常高分辨率的千兆像素成像设备被设计和构造为图像传感器和透镜的阵列,为拍摄图像后的计算成像提供了优势。一种配置是由图像传感器的正交 2D 阵列和相应的光学器件组成的 2D 阵列相机、;另一种配置是球形摄像机 如图图 1-8【411,415】,是作为 DARPA 研究项目在哥伦比亚大学 CAVE 开发的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-8 。(上图)超高分辨率千兆像素相机的组件,采用新颖的球形镜头和传感器排列。(下图)以 82,000 x 22,000 = 1.7 千兆像素显示的高分辨率图像。(所有数字和图像均由哥伦比亚大学洞穴研究项目使用)

高动态范围 (HDR)相机【416,417,418】通过拍摄不同曝光设置的场景的多幅图像,然后将这些图像组合起来,可以产生更深的像素,具有更高的位分辨率和更好的颜色通道分辨率。这种组合使用合适的加权方案来产生具有更高位深度的更深像素的新图像,例如每个颜色通道 32 个像素,从而提供超出普通商业 CMOS 和 CCD 传感器能力的图像。HDR 方法允许弱光和强光同样良好地成像,并且可以使用自适应局部方法来组合弱光和强光,以消除眩光并创建更均匀和令人满意的图像对比度。

高帧率 (HF)相机【425】能够将场景的快速连续图像捕捉成一组,并使用包围技术组合这组图像,以改变曝光、闪光、聚焦、白平衡和景深。

3D 深度相机系统

将 3D 深度场用于计算机视觉为许多应用提供了不言而喻的优势,因为计算机视觉在很大程度上关注于从 2D 图像中提取 3D 信息,这导致了各种各样的精度和不变性问题。正在为 3D 深度场计算机视觉设计新的 3D 描述符,并在第六章中讨论。

使用深度图,可以很容易地将场景分割成前景和背景,以识别和跟踪简单的对象。数字摄影应用在三维空间中结合了各种计算机视觉方法,从而变得更加丰富。使用 3D 深度图的所选区域作为遮罩实现了局部图像增强,例如基于深度的对比度、锐化或其他预处理方法。

如表 1-1 所示,从图像中提取深度的方法有很多。在某些情况下,只需要一个摄像头和传感器,其余的由软件完成。请注意,照明方法 是许多深度传感方法的关键组成部分,如结构光方法。传感器、镜头和照明的组合用于深度成像和计算成像,如图图 1-9 所示。本节我们将探讨几种精选的深度检测方法。

表 1-1 。获取深度信息的选定方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Source: Courtesy of Ken Salsmann Aptina [427], with a few other methods added by the author.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-9 。常见相机的多种镜头和传感器配置:a .常规,b .飞行时间,c .立体,d .阵列,e .全光,f .球透镜球面

深度感测并不是一个新的领域,在几个具有巨大工业应用和财政资源的相关学科中都有很好的覆盖,例如卫星成像、遥感、摄影测量和医学成像。然而,随着 Kinect 等商用深度传感相机的出现,涉及深度传感的主题在计算机视觉中越来越受关注,这使得预算有限的研究生可以使用手机或 PC 来实验 3D 深度图和点云。

多视角立体 (MVS) 深度感测已经被用于计算数字高程图或 DEM,以及数字地形图或 DTM,从使用雷达和激光雷达成像的卫星图像,以及从使用特别装备的具有高分辨率相机和稳定相机平台的飞机的区域航空勘测,包括与相邻区域的照片叠加在一起的数字地形图。照片拼接 是计算机视觉中的一个相关话题,正在受到关注。关于数字地形制图 的文献中有大量关于合适的几何模型和视差计算方法的信息。此外,通过 CAT 和 MRI 模态的 3D 医学成像 得到了丰富的研究社区的支持,使用出色的深度传感方法,并提供基于深度的渲染和可视化。然而,观察一个领域(如计算机视觉)对其他领域使用的众所周知的方法的“再发明”总是很有趣的。正如所罗门所说:“日光之下,并无新事。”在本节中,我们引用相关研究,在计算机视觉的背景下研究深度感测,并将其他相关学科的有趣旅程留给感兴趣的读者。

双目立体

Stereo [432,433,437]可能是捕捉 3D 深度图的最基本和最熟悉的方法,因为许多方法和算法都在使用,所以我们在这里提供了一个高层次的概述,并选择了一些标准参考。立体算法的第一步是通过确定摄像机系统的立体校准参数来参数化从世界坐标点到其相应图像坐标的投影变换。开源软件可用于立体声校准。 2 注意,L/R 图像对在搜索用于视差计算的特征之前被校正。计算立体深度 r ,如图图 1-10 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-10 。基本双目立体原理的简化示意图

Scharstein 和 Szeliski [440]以及 Lazaros [441]的工作对立体算法和方法进行了出色的调查。立体几何是由射影欧几里得【437】组合而成;我们将在本节的后面讨论一些影响其精度的几何问题。用于比较立体算法的标准在线资源由米德尔伯里学院提供, 3 许多新算法在此进行了基准测试并提供了比较结果,包括附录 B 中讨论的大量真实情况数据集。

立体深度所需的基本几何校准信息包括以下基本内容。

  • **摄像机校准参数。**相机校准超出了本工作的范围,但是参数被定义为 11 个自由参数[435,432]—3 个用于旋转,3 个用于平移,5 个固有参数—加上一个或多个镜头失真参数,以从 2D 相机空间中的像素重建世界坐标中的 3D 点。可以使用几种方法来执行相机校准,包括已知的校准图像模式或许多自校准方法之一[436]。外在参数定义摄像机在世界坐标中的位置,内在参数定义摄像机图像坐标中像素坐标之间的关系。关键变量包括光学系统下图像的主点或中心点处的两个相机之间的校准基线距离;光学系统的焦距;它们的像素大小和长宽比,这是通过传感器大小除以每个轴上的像素分辨率来计算的;以及摄像机的位置和方向。
  • **基本矩阵或本质矩阵。**这两个矩阵是相关的,定义了用于投影重建的立体摄像机系统的流行几何形状【438,436,437】。它们的推导超出了本文的范围。根据所采用的算法,可以使用任一矩阵。本质矩阵仅使用外部摄像机参数和摄像机坐标,而基础矩阵取决于外部和内部参数,并揭示核线上立体图像对之间的像素关系。

在任一情况下,我们都以投影变换结束,以从立体图像对中的 2D 相机点重建 3D 点。

立体声处理步骤通常如下:

  1. 拍摄: 同时拍摄左/右图像对。
  2. 矫正: 将左右图像对矫正到同一平面上,使像素行 x 坐标与直线对齐。几种投影扭曲方法可用于纠正[437]。通过沿着 x 轴对齐图像,校正将图像间的图案匹配问题简化为沿着 x 轴的 1D 搜索。校正还可以包括作为单独步骤的光学器件的径向失真校正;然而,许多相机包括内置的工厂校准的径向失真校正。
  3. 特征描述: 对于图像对中的每个像素,隔离出每个像素周围的一个小区域作为*目标特征描述符。*各种方法被用于立体特征描述【215,120】。
  4. 对应: 在对面图像对中搜索每个目标特征。搜索操作通常进行两次,首先在右图像中搜索左对目标特征,然后在左图像中搜索右对目标特征。为了提高景深精度,对应需要亚像素精度。
  5. 三角测量: 使用三角测量计算匹配点之间的差异或距离[439]。使用多种方法中的一种对所有 L/R 目标特征匹配进行排序,以找到最佳质量的匹配[440]。
  6. 空洞填充: 对于没有对应的良好匹配的像素和相关联的目标特征,在深度图中的该位置有一个空洞。孔洞可能是由 L/R 图像对中的特征遮挡引起的,或者仅仅是由开始时的不良特征引起的。使用局部区域最近邻像素插值方法来填充孔洞。

立体深度-距离分辨率是视点距离的指数函数:一般来说,基线越宽,长距离深度分辨率越好。较短的基线对于近距离深度更好(参见图 1-10 和 1-20 )。据测量,人眼基线或瞳孔间距在 50 至 75 毫米之间,男性平均为 70 毫米,女性为 65 毫米。

多视图立体 (MVS) 是一种使用同一主题的不同基线从几个视图计算深度的相关方法,例如从单个或单目相机,或相机阵列。本节稍后将介绍单目、MVS 和阵列相机深度感测。

结构光和编码光

结构光或编码光使用特定的图案投射到场景中并反射回来,然后测量以确定深度;参见图 1-11 。在本讨论中,我们定义了以下使用结构光的方法[445]:

  • 空间单一模式方法 **,**在单一图像中只需要单一照明模式。
  • 定时多路复用多模式方法 ,需要一系列模式照明和图像,通常使用二进制或 n 阵列代码,有时涉及相移或抖动后续帧中的模式以提高分辨率。常见的模式序列包括格雷码、二进制码、正弦码和其他独特的码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-11 。所选的结构光模式和方法:a .格雷码,b .二进制码,c .规则点网格,d .随机点网格(用于原始 Kinect),e .正弦相移模式,f .压缩结构光的随机模式[446]

例如,在最初的微软 Kinect 3D 深度相机中,由几个略有不同的微网格图案或红外光的伪随机点组成的结构光被投影到场景中,然后拍摄单个图像来捕捉场景中出现的点。基于对实际系统和专利申请的分析,最初的 Kinect 使用几种方法来计算深度,包括(1)红外点的大小——较大的点和较低的模糊度意味着位置更近,而较小的点和较高的模糊度意味着位置更远;(2)光斑的形状——圆形表示平行面,椭圆形表示斜面;以及(3)通过一起使用小区域或斑点的微图案,使得分辨率不是非常好,但是噪声灵敏度是好的。使用这种方法从单个图像计算深度,而不需要几个连续的图案和图像。

多图像方法用于结构光,包括投射多组时序结构和编码图案,如图图 1-11 所示。在多图像方法中,每个图案被顺序发送到场景中并被成像,然后来自所有图案的深度测量的组合被用于创建最终的深度图。

来自结构光的深度测量的工业、科学和医学应用可以达到高精度,以扩展到微米范围的精度成像几米大小的物体。使用图案投影方法,以及使用多个照明光束产生波长干涉的激光条纹图案方法;干涉被测量以计算距离。例如,普通的牙科设备使用插入口中的小型手持式激光测距仪来创建具有缺失部分的牙齿区域的高度精确的深度图像,然后使用 CAD/CAM 微型铣床使用该图像来创建新的、实际上完美配合的牙冠或填充物。

当然,红外光模式在日光下的户外效果不好;它们被自然光洗掉了。此外,可使用的红外发射器的强度受到实用性和安全性的限制。在室内有效使用结构光的距离受到可用于 IR 发射器的功率量的限制;也许 5 米是室内红外光的现实极限。Kinect 声称目前使用均匀恒定红外照明的 TOF(飞行时间)方法的范围约为 4 米,而第一代 Kinect 传感器使用结构光具有类似的深度范围。

除了创建深度图,结构光或编码光还用于采用光学编码器的测量,如在机器人和过程控制系统中。编码器测量径向或线性位置。它们提供红外照明模式,并在标尺或十字线上测量响应,这对于线性电机和旋转丝杠等单轴定位设备非常有用。例如,像二进制位置码和反射二进制格雷码[444]这样的模式可以很容易地转换成二进制数(见图 1-11 )。每个格雷码集元素在连续元素之间的汉明距离为 1。

结构光方法在处理高镜面反射和阴影时会遇到问题;然而,这些问题可以通过在图案投影仪和场景之间使用光学漫射器来缓解,使用漫射结构光方法[443]来保持照明编码。此外,多图案结构光方法不能处理快速移动的场景;然而,单一模式方法可以很好地处理帧运动,因为只需要一帧。

光学编码:衍射光栅

衍射光栅是光学编码[447]的多种方法之一,用于创建一组用于深度场成像的图案,其中光结构元素,如镜子、光栅、光导或特殊透镜,放置在探测器或透镜附近。据报道,最初的 Kinect 系统使用衍射光栅方法来创建随机红外点照明图案。传感器上方的衍射光栅【430,431】,如图图 1-12 所示,可以提供角度敏感的像素传感。在这种情况下,光以各种角度折射到周围的细胞中,这由衍射光栅或其他光束形成元件(如光导)的位置决定。这允许相对于给定视角以不同方式处理相同的传感器数据,从而产生不同的图像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-12 。硅上的衍射光栅用来产生用于深度成像的塔尔博特效应(1836 年左右首次观察到)。(更多信息见参考文献[430])。)衍射光栅是一种光结构元件

该方法允许减小检测器尺寸,同时使用从窄孔径衍射光栅并行捕获的低分辨率图像的组合系列来提供更高分辨率的图像。衍射光栅使得从相同的传感器数据中产生大范围的信息成为可能,包括深度信息、增加的像素分辨率、透视位移以及在图像被拍摄后在多个焦平面上的聚焦。衍射光栅是一种照明编码装置。

如图 1-13 所示,光结构或编码元件可置于多种配置中,包括【447】:

  • 客体侧编码:靠近主体
  • 光瞳平面编码:靠近物侧镜头
  • 焦平面编码:靠近探测器
  • 照明编码:靠近照明器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-13 。图案的光学结构化和编码的各种方法[447]:(从左至右):物方编码、光瞳平面编码、焦平面编码、照明编码或结构光。照明图案在光学编码器中确定

请注意,照明编码在图 1-11 中显示为结构光模式,而照明编码的变体在图 1-7 中显示,使用一组打开或关闭的镜子来创建模式。

飞行时间传感器

通过测量红外光传播和反射所花费的时间量,创建了飞行时间 (TOF)传感器【450】。TOF 传感器是一种测距仪或激光雷达[449]。有几种单芯片 TOF 传感器阵列和深度相机解决方案可用,例如第二版的 Kinect 深度相机。基本概念包括在已知时间向场景中传播红外光,例如通过脉冲 IR 激光器,然后测量光在每个像素返回所用的时间。据报道,根据 TOF 传感器的使用条件、设计中采用的具体方法以及红外激光器的功率大小,高端系统在数百米范围内的精度达到亚毫米级[449]。

TOF 传感器中的每个像素都有几个有源组件,如图 1-14 所示,包括红外传感器井、测量从照明到检测红外光的往返时间的定时逻辑,以及用于同步电子快门和脉冲红外激光器的光闸。TOF 传感器提供激光测距能力。例如,通过门控电子快门以消除短的往返响应,可以减少诸如雾或烟反射的环境条件。此外,可以通过以期望的时间间隔打开和关闭快门来测量特定的深度范围,例如长距离。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-14 。一种假设的 TOF 传感器配置。注意,光脉冲长度和传感器可以一起选通,以瞄准特定的距离范围

用于 TOF 传感器的照明方法可以对第一图像使用非常短的 IR 激光脉冲,获取没有激光脉冲的第二图像,然后获取图像之间的差异以消除环境 IR 光的影响。通过使用光子混合器设备(PMD) 用射频载波信号调制红外光束,可以测量返回的红外信号的相移,以提高精度——这在许多激光测距方法中很常见【450】。结合增强型 CCD 传感器的快速光学门控可用于在有限条件下将精度提高到亚毫米范围,即使在 100 米以上的范围内也是如此。然而,多次红外反射会给距离图像带来误差,因为单个红外脉冲是在整个场景上发出的,并且在成像之前可能会从几个表面反射。

由于 TOF 传感器的深度感测方法与传感器电子设备集成在一起,因此与立体声和其他方法相比,所需的处理开销非常低。然而,红外光在室外环境下的局限性仍然存在[448],这可能会影响深度精度。

阵列摄像机

如前面的图 1-9 所示,阵列相机包含几个相机,通常排列成 2D 阵列,如 3x3 阵列,为计算成像提供几个关键选项。用于便携式设备的商用阵列相机开始出现。如前所述,他们可以利用阵列中传感器的组合,使用多视图立体方法来计算视差。阵列相机的一些关键优势包括用于计算 3D 深度图的宽基线图像集,该 3D 深度图可以看穿遮挡及其周围,从每个传感器的较低分辨率图像插值的较高分辨率图像,全聚焦图像,以及在一个或多个位置重新聚焦的特定图像。阵列相机的最大孔径等于传感器之间的最宽基线。

径向摄像机

围绕透镜的圆锥形或径向反射镜和 2D 图像传感器创建了径向相机[413],其结合了 2D 和 3D 成像。如图 1-15 所示,径向反射镜允许 2D 图像形成在传感器的中心,而包含反射的 3D 信息的径向环形图像形成在传感器周边。通过基于锥形镜的几何形状将环形信息处理成点云,提取深度,并且图像中心的 2D 信息可以作为纹理图覆盖,用于完全 3D 重建。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-15 。(左)带有锥形镜的径向相机系统,用于捕捉 3D 反射。(中心)捕捉边缘周围的 3D 反射和中心面的 2D 信息。(右)从径向图像 3D 信息和作为纹理图的 2D 面重建的 3D 图像。(图片由哥伦比亚大学 CAVE 许可使用)

全光学:光场相机

全光方法 创建一个定义为*光场的 3D 空间,由多个光学元件创建。全光系统使用一组微光学器件和主光学器件对 4D 光场进行成像,并在后处理过程中从光场中提取图像[451,452,423]。全光照相机只需要一个图像传感器,如图图 1-16 所示。4D 光场包含空间中每个点的信息,并且可以表示为体积数据集,将每个点视为具有 3D 定向表面的体素、*或 3D 像素,具有颜色和不透明度。可以处理体积数据以产生不同的视图和透视位移,允许在拍摄图像后在多个焦平面聚焦。可以获取体积的切片来隔离透视并呈现 2D 图像。渲染光场可以通过使用光线追踪和体绘制方法来完成[453,454]。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-16 。全光照相机插图。可以从相同的传感器图像处理场景中的多个独立对象。拍摄图像后,可以为每个对象独立计算景深和焦距,从而在 3D 光场内调整透视和焦平面

除了光场的体积和表面渲染,来自 3D 场或体积的 2D 切片可以通过傅立叶投影切片定理[455]在频域进行处理,如图 1-17 所示。这是处理 3D MRI 和 CAT 扫描数据的医学成像方法的基础。Levoy [455,452]和 Krig [137]描述了傅立叶投影切片法对体积和 3D 范围数据的应用。基本算法描述如下:

  1. 使用 3D FFT 将体积数据正向变换成幅度和相位数据。
  2. 为了形象化,通过八分区移位每个立方体来重新排列频率体积中产生的 3D FFT 结果,以围绕体积中心的 3D 笛卡尔坐标系的中心对齐频率 0 数据,类似于 2D 频谱围绕 2D 笛卡尔坐标系的中心进行象限移位以显示频谱的方式。
  3. 从平行于 FOV 平面的体积中提取平面 2D 切片,其中切片穿过体积的原点(中心)。从频域体数据获取的切片的角度决定了期望的 2D 视图的角度和景深。
  4. 来自频域的 2D 切片通过逆 2D FFT,以产生对应于所选角度和景深的 2D 空间图像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-17 。傅里叶投影切片定理算法的图形表示,它是光场处理的一种方法。3D 傅立叶空间用于过滤数据以创建 2D 视图和渲染图[455,452,137]。(图片由英特尔出版社授权使用,来自构建智能系统)

3D 深度处理

由于历史原因,在深度感测和相关方法的讨论中使用了几个术语及其缩写,因此我们在本节中涵盖了一些重叠的主题。表 1-1 之前提供了深度感测的基本物理方法的概要。不管深度感测方法如何,都有许多相似之处和共同的问题。考虑到相机系统的校准精度、深度场的几何模型、深度数据的测量精度、深度数据中存在的任何噪声以及预期应用,深度信息的后处理是至关重要的。

我们在此调查几个相互关联的深度感测主题,包括:

  • 稀疏深度传感方法
  • 密集深度感应方法
  • 光流
  • 同步定位和绘图(SLAM)
  • 结构来自运动(SFM)
  • 三维表面重建,三维表面融合
  • 单眼深度感应
  • 立体和多视角立体(MVS)
  • 深度感测中的常见问题

人类的深度感知依赖于一组先天和后天的视觉线索,这些线索超出了本工作的范围,并重叠到几个领域,包括光学、眼科和心理学[464];然而,我们在深度处理的上下文中提供了上述所选主题的概述。

方法概述

对于深度处理方法的讨论,根据表 1-1 所示的方法,深度感测分为两大类:

  • 稀疏深度方法 ,利用计算机视觉方法提取局部兴趣点和特征。只有选定的点被组合成稀疏的深度图或点云。随着相机或场景的移动,逐帧跟踪特征,并更新稀疏点云。通常只需要一台摄像机。
  • 密集深度法 ,计算每个像素的深度。这将使用立体声、TOF 或 MVS 等方法创建密集的深度图。它可能涉及一个或多个摄像机。

许多稀疏深度方法使用标准的单目相机和计算机视觉特征跟踪,如光流和 SLAM(这将在本节稍后讨论),并且逐帧跟踪特征描述符以计算视差和稀疏深度。密集深度方法通常更多地基于特定的深度相机技术,如立体或结构光。也有例外,下面会讲到。

深度感测和处理中的问题

深度感测方法各有特定的问题;然而,这里我们可以解决一些常见的问题。首先,一个常见的问题是深度场的几何建模 ,它很复杂,包括透视和投影。大多数深度感测方法将整个区域视为笛卡尔坐标系,这给深度解决方案带来了一些小问题。相机传感器为 2D 欧氏模型,离散体素在 3D 欧氏空间成像;然而,使用简单的笛卡尔模型在相机和真实世界之间进行映射会引入几何失真。其他问题包括对应、或未能匹配独立帧中的特征,以及噪声遮挡。我们将在下一节中探讨这些问题。

几何场和变形

场几何是影响深度感测和 2D 成像的复杂领域。对于商业应用,几何场问题可能并不重要,因为定位面部、跟踪简单物体和增强现实在 3D 精度方面并不苛刻。然而,军事和工业应用通常要求高精度和准确度,因此需要仔细的几何处理。为了理解深度感测方法常见的几何场问题,让我们来分解一下主要领域:

  • 射影几何问题,处理透视
  • 极坐标和球面几何问题,处理视角随着与观察者的距离而扩展
  • 由于透镜像差造成的径向失真
  • 坐标空间问题,由于传感器和体素的笛卡尔坐标,以及将光线从场景投射到传感器的极坐标性质

本讨论的目标是列举深度感测中的问题,而不是解决它们,并在适用的情况下提供参考。由于几何的主题是广泛的,我们只能在这里提供一些更好的方法来模拟深度场的例子。希望通过确定深度感测中涉及的几何问题,对这一重要课题给予更多的关注。对于任何深度系统,包括校正在内的完整几何模型都非常复杂。通常,在流行的商业应用中会忽略高级几何的话题;然而,我们可以肯定的是,鉴于所需的精度,粒子束武器和导弹系统等先进的军事应用不会忽视这些复杂性。

一些研究人员已经研究了处理射影几何问题的更鲁棒的非线性方法[465,466],特别是通过将核几何相关的失真建模为 3D 圆柱失真、 而不是平面失真,并通过提供合理的计算方法进行校正。此外,Lovegrove 和 Davison [484]的工作使用球形拼接方法处理几何场,以对齐整个图像进行深度融合,由于球形建模而提高了精度。

双眼单视区、帕努姆区和深度融合

如图 1-18 所示,双眼单视界区域,最早由托勒密等人在天文学背景下研究,是一个包含 3D 点的曲面,这些点与观察者的距离相同,并且位于同一焦平面上。帕努姆区 是人类视觉系统将视网膜中的点融合成相同距离和焦平面的单个物体的双眼单视界周围的区域。人类视觉系统能够调和 3D 点之间的距离并合成一个共同的深度场,这是一个小小的奇迹!双眼单视区域和帕努姆区域面临的挑战在于,任何深度算法都必须有一个后处理步骤,才能像人类视觉系统那样正确地融合这些点。误差幅度取决于通常的变量,包括基线和像素分辨率,误差在深度场的边界最明显,在中心不太明显。有些球面畸变是由于透镜朝向边缘的像差造成的,可以部分地进行校正,如本章前面讨论的早期传感器处理过程中的几何校正。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-18 。立体和多视图立体方法的问题,显示双眼单视区域和 Panum 区域,以及空间中的三个点,这三个点从左眼的角度看起来是同一点,但从右眼的角度看却不同。这三个点围绕在帕努姆区域的双眼单视界周围,并被人类融合以合成视在深度

笛卡尔坐标与极坐标:球面射影几何

如图图 1-19 所示,TOF 或单目深度传感方法中使用的 2D 传感器也有特定的几何问题;问题朝着视野的边缘增加。请注意,从空间中的一点到传感器中的一个像素的深度实际上是在一个使用极坐标的球坐标系中测量的,但传感器的几何图形是纯笛卡尔的,因此几何误差被烤成了蛋糕

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-19 。2D 深度传感器和透镜具有处理距离的夸大的成像几何问题,其中深度根据透镜和传感器上的入射角而不同。注意,P1 和 P2 离焦平面的距离相等;然而,每个点通过光学系统到传感器的距离是不相等的,因此根据所使用的几何模型,计算的深度将是不准确的

因为立体和 MVS 方法也使用单个 2D 传感器,所以影响单个传感器深度感测方法的相同问题也影响多相机方法,增加了开发精确且计算合理的几何模型的困难。

深度粒度

如图 1-20 所示,简单的笛卡尔深度计算无法将深度场分解成线性均匀的粒度;事实上,深度场粒度随着与传感器的距离成指数增加,而在长距离下解析深度的能力则不太准确。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-20 。典型立体相机系统的 z 深度粒度非线性问题。注意,使用立体和 MVS 方法的实际深度感测在深度场中具有局限性,主要受像素分辨率、基线和焦距的影响。在 10 米处,深度粒度几乎是米,因此对象必须移动至少+或-米,以便计算测量的立体深度的变化

例如,在一个使用 480p 视频分辨率的基线为 70mm 的假设立体视觉系统中,如图图 1-20 所示,10 米处的深度分辨率下降到大约 1 米;换句话说,在 10 米远的地方,物体可能看起来不会在 Z 方向移动,除非它们在 Z 方向移动了至少正负一米。深度分辨率可以简单地通过加倍传感器分辨率来加倍。随着距离的增加,人类越来越多地使用单眼深度线索来确定深度,例如物体的大小、物体的运动速度、颜色强度和表面纹理细节。

一致

对应或特征匹配对于大多数深度感测方法来说是常见的。对于立体特征匹配算法的分类,参见 Scharstein 和 Szeliski [440]。在这里,我们沿着应用于立体、多视图立体和结构光的特征描述符方法和三角测量的路线讨论对应性。

亚像素精度 是大多数深度传感方法的目标,因此存在几种算法【468】。通过拟合表面来找到最高匹配来关联两个补丁或强度模板是很流行的;然而,傅立叶方法也用于关联相位【467,469】,类似于强度关联方法。

对于立体系统,在特征匹配之前对图像对进行校正,以便在大约相同的比例下沿着相同的线找到特征,如图图 1-11 所示;具有很少或没有旋转不变性的描述符是合适的[215,120]。诸如相关性模板的特征描述符是好的,而诸如 SIFT 特征描述方法 [161]的强大方法是过度的。特征描述符区域可以是有利于在 x 轴上的差异并且期望在 y 轴上有很小变化的矩形,例如矩形 3×9 描述符形状。差异预计出现在 x 轴,而不是 y 轴。使用描述符形状的几种窗口大小调整方法,包括固定大小和自适应大小[440]。

多视图立体系统类似于立体;然而,校正阶段可能不那么精确,因为帧之间的运动可能包括缩放、平移和旋转。由于缩放和旋转在帧之间可能有显著的对应问题,其他特征描述的方法已经被应用于 MVS,具有更好的结果。应用于多视图和宽基线立体的一些值得注意的特征描述符方法包括 MSER [194]方法(也在第六章的中讨论),其使用斑点状补片,以及苏珊[164,165]方法(也在第六章的中讨论),其基于具有特征存在的已知质心或核心的对象区域或分割来定义特征。

对于结构光系统,光模式的类型将决定特征,相位的相关性是一种流行的方法[469]。例如,依赖于使用相位相关[467]模板匹配的相移模式的结构光方法声称精确到 1/100 个像素的分之一。其他方法也用于结构光对应,以实现亚像素精度[467]。

孔洞和遮挡

当一个图案不能在帧之间匹配时,深度图中存在一个。孔也可能是由咬合引起的。无论哪种情况,深度图都必须修复,有几种方法可以做到这一点。应提供一张球洞图,显示问题所在。一种简单的方法是在局部深度图补片中使用双线性插值来填补空洞。另一种简单的方法是使用来自当前扫描线的深度图中的最后一个已知良好的深度值。

存在用于处理遮挡的更鲁棒的方法[472,471],其使用计算更昂贵但稍微更精确的方法,例如自适应局部窗口来优化插值区域。处理孔洞的另一种方法是将表面融合到深度体【473】(接下来讨论),由此将多个连续的深度图整合到深度体中作为累积表面,然后可以从深度体中提取深度图。

表面重建和融合

从深度图信息创建表面的一般方法是表面重建。计算机图形方法可用于渲染和显示表面。基本思想是组合几个深度图来构建一个更好的表面模型,包括表面的 RGB 2D 图像渲染为纹理图。通过创建集成来自不同视点的若干深度图的 3D 表面的迭代模型,可以增加深度精度,可以减少或消除遮挡,并且创建更宽的 3D 场景视点。

Curless 和 Levoy [473]的工作提出了一种将多个距离图像或深度图融合到 3D 体积结构中的方法。该算法通过整合多个距离图像将所有距离图像作为等值面渲染到体积中。使用存储在现有表面的体数据结构中的带符号的距离函数和加权因子,新的表面被集成到体中,用于实际表面存在的位置的累积最佳猜测。当然,生成的表面有几个令人满意的特性,包括减少噪音、减少孔洞、减少遮挡、多视点和更好的精确度(见图 1-21 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-21 。(右)Curless 和 Levoy [473]从距离图像或深度图构建表面的方法。这里显示的是使用光线投射投射到体积中的三个不同的加权表面测量。(左)Kinect 融合方法的处理流程

应用于 SLAM 的 Curless 和 Levoy 方法的衍生方法是 Kinect 融合方法【474】,如图图 1-22 所示,使用计算密集型 SIMD 并行实时方法,不仅提供表面重建,还提供摄像机跟踪和 6 自由度或 6 自由度摄像机姿态。光线追踪和纹理贴图用于表面渲染。还有其他从多幅图像进行表面重建的方法[480,551]。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-22 。使用 ESM [485]获得六自由度相机姿态的密集全图像对准解决方案的图示

噪音

噪声是深度传感器的另一个问题[409],各种原因包括低照度和在某些情况下的运动噪声,以及劣质的深度感测算法或系统。此外,深度图通常非常模糊,因此可能需要图像预处理,如第二章中的所述,以减少明显的噪声。许多人更喜欢用于深度图处理的双边滤波器[302],因为它尊重局部结构并保留边缘过渡。此外,已经开发了其他噪声滤波器来弥补双边滤波器的弱点,这些滤波器非常适合于去除深度噪声,包括导向滤波器[486],其可以像双边滤波器、边缘避免小波方法[488]和域变换滤波器[489]一样执行边缘保持噪声滤波。

单目深度处理

单目或单传感器深度感测使用逐帧运动来创建立体视差,从而从成对的图像帧创建深度图。在立体对之间具有校准的固定几何形状的立体处理的假设不适用于单目方法,因为每次摄像机移动时,必须重新计算摄像机姿态。摄像机姿态是一个 6 自由度 (6DOF)方程,包括 x、y、z 沿各轴的直线运动和绕各轴的滚动、俯仰、偏航旋转运动。在单目深度感测方法中,必须为每一帧计算相机姿态,作为比较两帧和计算视差的基础。

注意,6DOF 矩阵的计算可以使用*惯性传感器、如加速度计和 MEMS 陀螺仪【483】作为粗对准步骤来增强,随后是稍后讨论的关于光流的基于视觉特征的表面对准方法。*由于商用惯性传感器是手机和平板电脑的标准配置,随着传感器的成熟,惯性姿态估计将变得更加有效和常见。虽然商用加速度计的精度不是很好,但单目深度传感系统可以利用惯性传感器进行姿态估计,从而节省计算时间。

多视角立体

大多数单目多视图立体(MVS)深度算法的几何模型是基于射影几何和核几何;Hartley 和 Zisserman [437]在经典文本中对两者进行了很好的概述。Seitz 等人【478】对六种 MVS 算法进行了分类和准确性比较。在这一节中,我们来看几个有代表性的方法。

稀疏法:PTAM

稀疏 MVS 方法创建稀疏的 3D 点云,而不是完整的深度图。稀疏深度的基本目标很简单:逐帧跟踪特征,计算特征差异以创建深度,并执行 6DOF 对齐以定位新帧并获得相机姿态。根据应用的不同,稀疏深度可能非常适合用作特征描述符的一部分,以增加透视视点的不变性,或者为基于场景中几个关键地标的导航提供足够的信息。机器人社区已经开发了几种稀疏深度感测方法,分别称为 SLAMSFM光流(下面讨论)。

然而,我们首先通过讨论一种特定的方法来更详细地说明稀疏深度感测:并行跟踪和映射(PTAM)【456,457】,它既可以跟踪 6DOF 相机姿态,又可以生成适用于轻型增强现实应用的稀疏深度图,从而允许将化身逐帧放置在场景中的已知位置和方向。基本算法由两部分组成,它们在并行线程中运行:用于更新姿态的跟踪线程和用于更新稀疏 3D 点云的映射线程。接下来,我们将对每一项进行快速概述。

映射线程处理最后 N 个关键帧的历史缓冲区和历史缓冲区中每一帧的 N 级图像金字塔,通过束调整过程(简单地说就是通过选择的最小化方法,例如 leven Berg-Marquardt【437】)使用最新的输入深度特征,从该历史缓冲区中不断细化稀疏的 3D 点云。当时间允许时,在低场景运动期间,束调整过程可以在有限的一组最近帧上执行局部调整,或者在所有帧上执行全局调整。

跟踪线程基于已知良好特征最后出现的位置的投影,扫描输入图像帧的预期特征,以引导特征搜索,使用 6DOF 相机姿态作为投影的基础。FAST9 [138]角点检测器用于定位角点,随后是 Shi-Tomasi [157]非最大抑制步骤,以移除弱角点候选(在第六章中详细讨论)。特征匹配阶段遵循图像金字塔上由粗到细的渐进过程来计算 6DOF 姿态。

目标特征在新的帧中使用围绕每个所选角的 8×8 补丁进行计算。参考特征也被计算为来自原始补丁的 8×8 补丁,原始补丁取自它们被发现的第一幅已知图像。为了在特征匹配之前对准参考和目标补片,每个参考补片的表面法线用于相对于最后已知的 6DOF 相机姿态预扭曲补片,并且使用零均值 SSD 距离来执行对准的特征匹配。

定位失败时,单目深度感测的一个弱点就显现出来了;也就是说,如果运动太多,或者光照变化太大,系统可能无法定位并且跟踪停止。另一个缺点是,该算法必须完全针对特定的局部场景或工作空间(如桌面)进行初始化。对于初始化,PTAM 遵循五点立体声校准方法,需要几秒钟的时间与用户合作执行。另一个缺点是,包含点云的 3D 体积的大小旨在用于小的局部场景或工作空间。不过从积极的一面来说,3D 点云的精度非常好,接近像素大小;姿态对于 AR 或游戏应用来说足够精确;并且可以通过在场景中走动来创建 360 度的透视点云。PTAM 已经在移动电话[456]上实现,使用适度的计算和存储器资源,具有准确度和帧速率的折衷。

密法:DTAM

与稀疏方法相比,密集单目深度感测是相当计算密集型的,因此研究和开发更加有限。目标与稀疏单目深度大致相同——即,计算用于图像对齐的 6DOF 相机姿态,但创建密集的每像素深度图,而不是稀疏的点云。为了便于说明,我们强调了由纽科姆、洛夫格罗夫和戴维森[482]开发的密集跟踪和绘图方法(DTAM)中的关键概念。

虽然 DTAM 的目标是计算每个像素的密集深度,而不是稀疏深度,但 DTAM 与 PTAM [457]有一些相同的要求,因为两者都是单目方法。DTAM 和 PTAM 都需要计算每个新帧的 6DOF 姿态,以便对准新帧来计算视差。DTAM 还需要一个用户辅助的场景单目校准方法,它使用 PTAM 校准方法。DTAM 也适用于小型的本地化场景或工作空间。DTAM 分享了取自 Lovegrove 和 Davison [484]的球面拼接方法的几个背景概念,包括基于有效的二阶最小化(ESM)方法[485]的整个图像对齐的概念,,据报道,该方法使用比 LK 方法[458]更少的迭代来找到稳定的表面对齐,作为生成 6DOF 姿态的过程的一部分。

显然,DTAM 和球面镶嵌都使用球面坐标几何模型来将新帧镶嵌到密集的 3D 表面中,在图像金字塔上从粗略到精细对准,以迭代 6DOF 相机姿态的解决方案。全像面对齐的思路如图图 1-22 所示。使用局部导向滤波方法【486】将新的和现有的深度表面整合到成本体积中。也就是说,引导滤波器使用引导图像来将进入的深度信息合并到成本体中。

DTAM 还充分利用了 SIMD 指令和高度线程并行的 SIMT GPGPU 编程,以获得在商用 GPU 硬件上实时操作所需的性能。

光流、SLAM 和 SFM

光流以位移矢量的形式测量特征和图案在帧与帧之间的运动。光流类似于稀疏单目深度传感方法,它可以应用于宽基线立体匹配问题[463]。由于光流研究及其应用领域广阔[459,460,461],我们在此仅提供介绍,着眼于描述所使用的方法和获得的特征。

光流可以被认为是稀疏特征跟踪问题,其中特征可以被认为是一个粒子【462】,因此光流和粒子流分析是相似的。粒子流分析应用于各种粒子场流分析问题,包括天气预报,模拟燃烧和爆炸,流体动力学和机器人导航。存在用于 2D 和 3D 光流的方法。各种光流算法关注的是离散标量值的连续场中的跟踪特征描述符或矩阵,而不是单个标量或像素。对于计算机视觉,光流算法的输入是一组连续的 2D 图像和像素,或 3D 体积和体素,输出是一组显示被跟踪特征的运动方向的矢量。

早期 Lucas Kanade (LK)方法【458,459,460,461】的许多衍生和替代方法被用于光流;然而,这仍然是最受欢迎的参考点,因为它以相关性模板的形式使用本地特征(如第六章中的所述)。Baker 和 Matthews 的 Lucas Kanade 20 years on,【480】对基于 LK 的最先进方法进行了很好的报道。高效的二阶最小化(ESM)方法【485】与 LK 方法相关。据报道,ESM 是一种稳定的解决方案,使用的迭代次数比 LK 少。相反,它依赖于像素邻域,如 3×3 矩阵或模板区域,并试图猜测特征移动的方向,迭代搜索局部区域,并使用最小二乘解对搜索结果进行平均,以找到最佳猜测。

虽然 LK 方法有许多变体[459,460,461],但大多数 LK 导出的光流方法的关键假设包括帧与帧之间的小的特征位移、刚性特征和以局部梯度形式的足够的纹理信息,以便识别特征。使用各种方法来寻找局部梯度,例如 Sobel 和 Laplacian(在第二章中讨论)。具有帧与帧之间的大特征位移和很少纹理信息的场不太适合 LK 方法。这是因为 LK 算法通过检查每个局部矩阵的特征值来优化迭代解,从而忽略了几乎没有梯度信息的区域。然而,最近的和稳健的研究方法正在超越 LK [459,460]的限制,并包括 Deepflow [344],它是为可变形特征和大位移光流[394]设计的,使用类似于卷积网络[339]的多层特征尺度层次[404]。

表面重建在定位和测绘中的应用被用于同时定位和测绘 (SLAM) 和从运动中构造 (SFM)的方法中——例如,在机器人导航中。SLAM 的一个目标是定位或找到当前位置和 6DOF 相机姿态。另一个目标是创建包含深度的局部区域图。要更深入地了解 SLAM 和 SFM 方法,请参阅贝利和休·达兰特-威特的历史调查。

3D 表示:体素、深度图、网格和点云

深度信息以各种可转换的格式表示和存储,这取决于预期的用途。我们在这里总结了一些常见的格式;参见图 1-23 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-23 。各种 3D 深度格式。泽尼克多项式的渲染。(从左到右):深度图,使用 3D 四边形的多边形网格渲染,相当于体素的点云渲染

对于不同的算法来说,在深度格式之间进行转换的能力是可取的,并且很容易做到。常见的 3D 深度格式包括:

  • **2D 像素阵列,3D 深度图:2D 像素阵列是内存中 2D 图像的默认格式,它是许多处理操作的自然存储格式,如卷积和邻域过滤。对于深度图图像,像素值是 Z ,或深度值。数组中的每个点可能包含{颜色,深度}。
  • **3D 体素体积:*由 3D 体素阵列组成的 3D 体数据结构对于几种算法是理想的,包括用于 3D 表面重建的深度图集成和用于图形渲染的表面光线跟踪。体素是体积元素,就像像素是图片元素一样。每个体素可能包含{颜色,正常}*;深度坐标隐含在体积结构中。
  • **3D 多边形网格:**在标准 3D 多边形网格中存储 3D 点提供了一组连接的点或顶点,每个点或顶点具有表面法线、3D 坐标、颜色和纹理。网格格式非常适合在 GPU 流水线中渲染表面,如 OpenGL 或 DirectX。网格中的每个点可以包含 {x,y,z,颜色,法线},,并且与标准模式中的相邻点相关联,例如描述表面的四边形或三角形。
  • **3D 点云:**这是一种稀疏结构,可以直接转换成标准的 3D 多边形网格。点云格式是稀疏单目深度传感方法的理想选择。云中的每个点都可能包含 {x,y,z,颜色,法线}。

摘要

在这一章中,作为视觉流水线的第一步,我们概述了图像传感方法和传感器图像处理方法。我们讨论了可用的图像传感器技术,着眼于可能有助于充分利用图像数据的图像预处理,因为图像传感方法通常决定了所需的图像预处理。(关于图像预处理的更多讨论在第二章中提供。)讨论了用于 2D 和 3D 成像的传感器配置,以及用于计算成像以在捕获数据后创建新图像的各种相机配置,例如 HDR 图像和图像重聚焦。深度成像方法也在这里讨论,包括立体和飞行时间,因为移动设备越来越多地为消费应用提供 3D 深度相机技术。深度图可用于计算机视觉中解决许多问题,如前景和背景物体的三维特征描述和三维图像分割。3D 深度处理和 3D 特征的主题贯穿本书始终;第六章涵盖 3D 特征描述符,第七章和附录 B 涵盖 3D 真实情况数据。


1 Foveon 是 Foveon Inc .的注册商标。

2 http://opencv.org,摄像机标定和三维重建

3

二、图像预处理

“我走进去,发现尼摩船长正在用代数方法计算 x 和其他量。”

*—儒勒·凡尔纳,*海底两万里

本章描述了用于准备图像以供进一步分析的方法,包括兴趣点和特征提取。这些方法中的一些对于全局和局部特征描述也是有用的,特别是从变换和基空间导出的度量。重点是计算机视觉的图像预处理,因此我们没有涵盖应用于计算摄影和照片增强等领域的所有图像处理主题,因此我们让感兴趣的读者参考数字图像处理和信号处理中的各种其他标准资源[4,9,325,326],我们还指出了一些有趣的研究论文,这些论文将增强对这些主题的理解。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 在图像处理方面有很强背景的读者可以从本章的轻松阅读中受益。

图像处理透视

图像处理是一个广阔的领域,不可能在一章中涵盖。那么我们为什么要在一本关于计算机视觉的书中讨论图像预处理呢?原因是促进局部和全局特征描述的科学,因为在特征描述的讨论中通常忽略图像预处理。由于应用和图像数据将指导图像预处理阶段,因此根据特征描述,此处涵盖了一些通用图像处理主题,旨在说明而非禁止。

有些人会认为图像预处理不是一个好主意,因为它扭曲或改变了原始数据的真实性质。然而,图像预处理的智能使用可以提供益处并解决问题,最终导致更好的局部和全局特征检测。我们调查了图像增强和校正的常用方法,这些方法会以有利和不利的方式影响视觉流水线下游的特征分析,具体取决于这些方法的使用方式。

图像预处理可能对特征提取的质量和图像分析的结果具有显著的积极影响 。图像预处理类似于数据集的数学归一化,这是许多特征描述符方法中的常见步骤。或者打个音乐的比方,把图像预处理想象成一个有一系列控件的声音系统,比如没有音量控件的 raw 声音;用一个简单的音调旋钮控制音量;音量控制加上高音、低音和中音;或者音量控制加上完整的图形均衡器、效果处理和卓越的扬声器,营造出一个听觉卓越的房间。这样,本章通过描述校正和增强的组合来促进图像预处理,校正和增强是计算机视觉流水线的基本部分。

图像预处理过程中需要解决的问题

在本节中,我们将根据您选择的特征描述符方法,为图像预处理提供一些建议。直接来自摄像机的原始图像数据可能会有各种各样的问题,如第一章中所述,因此它不太可能产生最佳的计算机视觉效果。这就是为什么仔细考虑图像预处理是至关重要的。例如,使用灰度数据的局部二进制描述符将需要与彩色 SIFT 算法不同的预处理;此外,需要一些探索性工作来微调图像预处理阶段以获得最佳结果。我们通过遵循四个基本的特征描述方法家族的视觉流水线来探索图像预处理,具有一些例子,如下:

  1. 本地二进制描述符 (LBP,ORB,FREAK,others)
  2. 光谱描述符 (SIFT,SURF,其他)
  3. 基空间描述符 (FFT,小波,其他)
  4. 多边形形状描述符 (斑点对象面积、周长、质心)

在第五章的中,这些特性描述度量家族被发展成一个分类法。在此之前,第四章讨论了特征描述符构建概念,而第三章涵盖了全局特征描述,然后第六章调查了局部特征描述。此处介绍的图像预处理方法和应用是示例,但在第八章中,我们将根据各种视觉流水线开发一组更完善的示例,包括预处理阶段的特定应用讨论。

视觉流水线和图像预处理

表 2-1 列出了常见的图像预处理操作,用四个描述符族中每一个的例子说明了这些图像预处理步骤之间的差异和共性,可以在特征描述之前应用。我们这里的目的是说明而不是禁止或限制所选择的方法。

表 2-1 。应用于不同视觉流水线的可能的图像预处理增强和校正

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

局部二元特征处理点对的像素强度比较。这使得比较对光照、亮度和对比度相对不敏感,因此可能不太需要图像预处理来获得良好的结果。文献中描述的当前局部二元模式方法通常不需要太多的图像预处理;它们依赖于一个简单的比较阈值,该阈值可以根据光照或对比度进行调整。

光谱描述符,如 SIFT(作用于局部区域梯度)和 SURF(使用具有局部区域上的积分像素值的 HAAR-like 特征),提供了不同的预处理机会。使用图像金字塔的方法通常对图像金字塔执行一些图像预处理,以使用高斯滤波来平滑金字塔的较高层,从而创建数据的尺度空间表示。在计算梯度之前,基本的照明校正和过滤可能有助于增强图像,例如,增强可能包含特征的梯度边缘信息的强度带内的对比度。但是一般来说,文献没有报道用于在特征提取之前预处理图像数据的任何特定方法的好的或坏的结果,并且其中存在机会。

基础空间要素通常是全局的或区域性的,跨越一个规则形状的多边形-例如,在整个图像或块上计算的傅立叶变换。然而,基空间特征可以是局部特征的一部分,例如 LBP 直方图的傅立叶谱,其可以在局部描述符的直方图面元值上计算以提供旋转不变性。另一个例子是傅立叶描述符,用于计算显示特征圆度的径向线段长度的多边形因子,以提供旋转不变性。参见第三章,尤其是图 3-19 。

最复杂的描述符族是基于多边形形状的描述符,它可能需要几个图像预处理步骤来分离图像中的多边形结构和形状以进行测量。多边形形状描述流水线可能涉及从图像增强到结构形态学和分割技术的所有内容。设置面要素形状提取的预处理通常比任何其他方法都需要更多的工作,因为阈值和分割需要微调才能获得良好的结果。还要注意,多边形形状描述符不是局部模式,而是更大的区域结构,其特征跨越数十甚至数百个像素,因此处理也可以更密集。

在某些情况下,需要对图像进行预处理,以纠正否则会对特征描述产生不利影响的问题;我们接下来看看这个。

修改

在图像预处理期间,在特征测量和分析之前,图像中可能存在应该被校正的伪像。这里有各种候选人进行更正。

  • **传感器校正。**在第一章中讨论过,这些包括坏点校正、几何镜头失真和渐晕。
  • **灯光校正。**照明可以引入使局部纹理和结构模糊的深阴影;此外,场景中不均匀的照明可能会扭曲结果。候选校正方法包括等级滤波、直方图均衡化和 LUT 重映射。
  • **噪音。**这有多种形式,可能需要特殊的图像预处理。有许多方法可供选择,本章将对其中一些方法进行概述。
  • **几何校正。**如果整个场景被旋转或从错误的视角拍摄,在特征描述之前校正几何图形可能是有价值的。正如在第四章、第五章和第六章中所讨论的,一些特征比其他特征对几何变化更具鲁棒性。
  • **颜色校正。**重新分配色彩饱和度或校正亮度通道中的照明伪像可能会有所帮助。通常,色调是较难校正的属性之一,使用简单的伽马曲线和 sRGB 色彩空间可能无法进行校正。我们将在本章后面介绍更精确的比色法。

提高

增强功能用于优化特定的功能测量方法,而不是修复问题。常见的图像处理增强功能包括锐化和色彩平衡。以下是一些图像增强的一般示例,以及它们对特征描述的潜在好处。

  • **比例-空间金字塔。**当使用倍频程标度和像素抽取对图像进行子采样以创建金字塔来构建金字塔时,会引入子采样伪像和锯齿状像素过渡。尺度空间金字塔构建过程的一部分涉及将高斯模糊滤波器应用于子采样图像,这将移除锯齿状伪像。
  • **照明。**一般来说,光照总是可以增强的。可以使用简单的 LUT 重映射和像素点操作以及直方图均衡化和像素重映射来增强全局照明。可以使用梯度滤波器、局部直方图均衡化和等级滤波器来增强局部照明。
  • **模糊和对焦增强。**在预处理阶段,可以采用许多公知的锐化和模糊滤波方法。例如,为了补偿由旋转引入的像素混叠伪像,其可能表现为模糊精细细节的模糊像素,可以在梯度计算之前使用锐化滤波器来增强边缘特征。或者相反,旋转伪影可能太强,可以通过模糊来消除。

在任何情况下,预处理增强或校正取决于使用图像的描述符和应用。

为特征提取准备图像

每个特征描述方法家族对于流水线的预处理阶段具有不同的目标。让我们看看每个系列的几个例子,并检查每个系列可能的图像预处理方法。

本地二进制族预处理

局部二元描述符族主要与点对强度值比较有关,几种点对模式在第四章的中进行了说明,用于 FREAK、BRISK、BRIEF 和 ORB 等常用方法。如图图 2-4 所示,点与点之间的比较差(<、>、=)才是最重要的,因此几乎不需要任何图像预处理。基于上述讨论,以下是两种图像预处理方法:

  1. **保持像素不变。**除了使用像素值差比较阈值之外什么也不做,例如在 Census 变换和其他方法中所做的,因为阈值负责过滤噪声和其他伪像。

    *if(|point1–point2|>threshold)*
    
  2. **使用过滤。**除了使用比较阈值之外,应用合适的过滤器来移除局部噪声,例如平滑或等级过滤器。或者,采取相反的方法,使用锐化过滤器来放大微小的差异,也许随后是平滑过滤器。根据数据和应用,这两种方法都可能奏效。

图 2-1 使用 3x3 局部区域中的中心相邻点对比较来说明局部阈值和局部二进制模式 LBP 的预处理操作之间的差异,如下所示:

  • 左图:原始未处理的局部 3x3 区域数据;比较阈值= 5,暗像素距离中心像素> 5。
  • 左中图像:比较阈值= 10;注意,通过简单地改变阈值,图案形状是不同的。
  • 右侧中心图像:在对 3x3 区域应用拉普拉斯锐化滤波器后,请注意中心像素值从 52 变为 49,因此在比较阈值设置为 5 的情况下,图案现在不同于左侧的原始图案。
  • 右图:拉普拉斯滤波数据的阈值设置为 10;请注意不同的结果二进制模式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-1 。LBP 如何受到预处理的影响,显示了比较阈值的影响。(左)比较阈值= 5。(中间偏左)比较阈值= 10。(中右)应用拉普拉斯算子后的原始数据。(右)对拉普拉斯滤波数据比较阈值= 5

光谱族预处理

由于光谱类别中的方法范围很广,因此很难概括可能有用的潜在预处理方法。例如,SIFT 涉及在每个像素计算的梯度信息。SURF 关注的是 HAAR 小波或积分像素值的局部矩形区域的组合,这降低了单个像素值的重要性。

对于使用类似 HAAR 特征的基于积分图像的方法,例如 SURF 和 Viola Jones,这里有一些假设的预处理选项。

  1. 什么也不做。简单地通过对局部区域像素值求和,从积分图像计算 HAAR 特征;在总和中没有保留局部像素中的精细结构,因此一种选择是对图像预处理不做任何事情。
  2. **噪声去除。**这在 HAAR 预处理阶段似乎不需要,因为局部区域中的积分图像求和具有滤除噪声的趋势。
  3. **光照问题。**这可能需要预处理;例如,如果训练数据的照明不同于当前帧,对比度增强可能是个好主意。在这种情况下,一种预处理方法是为训练集中的图像计算全局对比度度量,然后在每一帧中计算相同的全局对比度度量,并且如果对比度偏离超过阈值,则调整图像对比度以更接近期望的全局对比度度量。对比度增强的方法包括 LUT 重映射、全局直方图均衡和局部自适应直方图均衡。
  4. **模糊不清。**如果模糊是当前帧中的问题,它可能表现为类似于局部对比度问题,因此可能需要局部对比度增强,例如锐化滤波器。计算诸如 SDM 的全局统计度量作为地面实况数据的一部分来测量局部或全局对比度可能是有用的;如果当前图像在对比度上偏离太多,可以应用合适的对比度增强作为预处理步骤。

注意在图 2-2 中,增加局部区域对比度会导致更大的梯度和更明显的边缘。依赖于局部梯度信息的特征描述符受到局部对比度的影响。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-2 。局部对比度对梯度和边缘检测的影响:(左)原始图像和 Sobel 边缘。(右)对比调整后的图像,放大局部区域细节和生成的 Sobel 边缘

对于使用局部区域梯度的 SIFT 类型描述符,预处理可能有助于在计算之前增强局部梯度,从而影响某些特征:

  1. **模糊不清。**这将抑制梯度幅度计算,并可能使确定梯度方向变得困难,因此可能应采用局部等级滤波器、高通滤波器或锐化滤波器。
  2. 噪音。这将加剧局部梯度计算,使它们变得不可靠,因此应用几种现有的噪声去除算法之一可能会有所帮助。
  3. 对比。如果局部对比度不够高,梯度计算就很困难且不可靠。也许可以应用局部直方图均衡化、LUT 重映射、等级滤波器或者甚至锐化滤波器来改善结果。

基空间族预处理

根据我们在这项工作中遵循的分类法,不可能对基空间方法的图像预处理进行归纳,因为它们是非常多样的。如第四章、 5 和 6 所述,基空间方法包括傅立叶、小波、视觉词汇、KTL 等。然而,这里我们提供一些关于预处理的一般观察。

  1. **傅立叶方法,小波,斜变换,沃什·哈达玛,KLT。**这些方法将数据转换到另一个领域进行分析,在不了解预期应用的情况下,很难提出任何预处理建议。例如,计算傅立叶频谱会产生幅度和相位,相位在特征描述中非常有用,可以提供对模糊的不变性,正如在第六章中描述的 LPQ 线性相位量化方法中所报告的,因此在这种情况下,模糊的图像可能不是问题。
  2. 稀疏编码和视觉词汇。这些方法依赖于局部特征描述符,其可以是 SURF、SIFT、LBP 或从空间域中的像素导出的任何其他期望的特征。因此,特征描述的方法将决定预处理的最佳方法。例如,使用相关和原始像素块作为稀疏码的方法可能不需要任何预处理。或者也许可以使用一些最小的预处理,例如平衡对比度的照明归一化、局部直方图均衡化或 LUT 对比度重新映射。

在图 2-3 中,对比度调整对傅立叶方法没有太大影响,因为图像中没有主导结构。傅立叶频谱典型地揭示了主导结构和功率被限制在象限移动 2D 图中心的较低频率。对于具有主要结构的图像,例如线条和其他形状,傅立叶功率谱将显示该结构,并且预处理可能更有价值。此外,傅立叶功率谱显示按对数值缩放,并不线性显示所有细节,因此线性频谱渲染可能会显示缩放和放大的较低频率,以便更好地擦除视图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-3 。在这个例子中,如傅立叶频谱所示,预处理没有任何好处;(左)之前。(右)对比度调整后的输入图像

多边形形状族预处理

当考虑图像预处理步骤时,多边形形状可能是要求最高的特征,因为如表 2-1 所示,潜在预处理方法的范围相当大,并且所采用方法的选择非常依赖于数据。可能是因为多边形形状测量的挑战和预期用例,它们仅用于各种利基应用,如细胞生物学。

在多边形形状测量之前,最常用的图像准备方法之一是物理校正照明并选择主体背景。例如,在自动化显微镜应用中,用荧光染料制备包含细胞的载玻片,以突出细胞中的特征,然后在放大下仔细调整照明角度和位置,以在待测量的每个细胞特征下提供均匀的背景;由此产生的图像更容易分割。

如图图 2-4 和图 2-5 所示,如果预处理错误,得到的形状特征描述符用处不大。在基于形状的特征提取之前,这里有一些比较突出的预处理选项,然后我们将在本章的后面介绍一系列其他方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-4 。使用阈值处理来解决图像预处理期间的问题,以准备用于多边形形状测量的图像:(左)原始图像。(中间)已设定阈值的红色通道图像。(右)阈值以上的周界追踪

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-5 。多边形形状测量之前的另一系列形态学预处理步骤:(左)原始图像。(中间)范围阈值和扩大的红色通道。(右)阈值以上的形态周长形状

  1. **照明校正。**通常对定义二元特征的形状和轮廓至关重要。例如,如果周界跟踪或边界分割是基于边缘或阈值的,不均匀的照明将会引起问题,因为边界定义变得模糊。如果照明不能被校正,那么其他不基于阈值的分割方法是可用的,例如基于纹理的分割。
  2. **模糊和聚焦校正。**由于对象边界和形状的分割对模糊不太敏感,因此对于多边形形状检测来说,照明可能不那么重要。
  3. **滤波去噪。**形状检测对噪声有一定的容忍度,这取决于噪声的类型。散粒噪声或斑点噪声可能不是问题,并且可以使用各种噪声清除方法轻松消除。
  4. **阈值处理。**这对于多边形形状检测方法至关重要。采用了许多阈值处理方法,从简单的二进制阈值处理到本章后面讨论的局部自适应阈值处理方法。阈值处理是一个有问题的操作,除了仔细控制光源位置和方向以处理阴影之外,还需要算法参数微调。
  5. **边缘增强。**可能对周界轮廓定义有用。
  6. **形态学。**为测量准备多边形形状最常用的方法之一,本章稍后会详细介绍。形态学被用来改变形状,大概是为了变得更好,主要是通过腐蚀和膨胀操作的组合或流水线,如图图 2-5 所示。形态学示例包括对象区域边界清理、毛刺去除以及一般的线和周界清理和平滑。
  7. **分割。**这些方法使用图像中的结构或纹理,而不是阈值,作为将图像划分为连通区域或多边形的基础。本章稍后将介绍几种常见的分段方法。
  8. **面积/区域处理。**在分割之前,诸如锐化或模糊之类的卷积滤波器屏蔽以及诸如等级滤波器或媒体滤波器之类的统计滤波器可能是有用的。
  9. **点加工。**逐点对图像数据进行算术缩放,例如将每个像素乘以给定值,然后进行裁剪操作,以及 LUT 处理,通常在分割之前是有用的。
  10. **色彩空间转换。**对于准确处理颜色特征至关重要,将在本章稍后介绍。

如图 2-4 所示,范围阈值方法使用红色通道,因为桌子背景有很多红色,可以很容易地用红色进行阈值处理以去除桌面。通过剪切强度带之外的值来对图像进行阈值处理;请注意,右下角的 u 盘在阈值之后消失了,因为它是红色的,低于阈值。还要注意,底部中间的白色 u 盘也几乎不见了,因为它是白色的(最大 RGB 值)并且高于阈值。右图显示了试图追踪阈值以上的周界;它仍然不是很好,因为需要更多的预处理步骤。

图像处理方法的分类

在我们调查图像预处理方法之前,有一个简单的分类法来框架讨论是有用的。建议的分类法是一组操作,包括点、线、区域、算法和数据转换,如图 2-6 所示。图 2-1 中介绍的图像预处理操作的基本类别符合这个简单的分类法。请注意,根据预期用途,视觉流水线的每个阶段可能都有主要任务和相应的预处理操作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-6 。简化的典型图像处理分类,适用于整个视觉流水线

我们在这里提供一个分类法的简要介绍,随后在第五章中有更详细的讨论。注意,分类法遵循图像数据的内存布局和内存访问模式。内存布局尤其会影响性能和功耗。

点操作一次处理一个像素,不考虑相邻像素。例如,点处理操作可分为数学、布尔和像素值比较替换部分,如后面“点过滤”部分的表 2-2 所示其他点处理示例包括颜色转换和数字数据转换。

线条

线操作处理像素或数据的离散线,不考虑前面或后面的线。示例包括 FFT,这是一种可分离的变换,其中像素行和列可以作为 1D FFT 行操作独立地并行处理。如果算法需要数据行,那么可以对图像预处理存储器布局、流水线读/写和并行处理进行优化。优化将在第八章中介绍。

面积

区域操作通常需要局部像素块——例如,通过内核遮罩、卷积、形态学和许多其他操作进行空间过滤。区域操作会产生特定类型的内存流量,并且可以使用细粒度方法进行并行化,例如图形处理器中的通用着色器和粗粒度线程方法。

算法的

有些图像预处理方法是纯串行或者算法代码。并行化这些代码块是困难的,甚至是不可能的。在某些情况下,算法块可以被分割成几个独立的线程以实现粗粒度的并行,或者流水线化,如第八章中所讨论的。

数据转换

虽然这些任务是平凡而显而易见的,但是可以花费大量的时间来进行简单的数据转换。例如,整数传感器数据可以被转换成浮点,用于几何计算或色彩空间转换。在许多情况下,数据转换是图像预处理的重要组成部分。转换示例包括:

  • 整数位深度转换(8/16/32/64)
  • 浮点转换(单精度到双精度)
  • 定点到整数或浮点
  • 浮点数和整数的任意组合,反之亦然
  • 各种颜色空间之间的颜色转换
  • 基空间计算的转换,例如 FFT 的整数和浮点之间的转换

如第八章所述,在设计上关注数据转换和性能是合理的,可以提供良好的投资回报。

比色法

在本节中,我们将简要概述色彩科学,以指导特性描述,并关注色彩准确性、色彩空间和色彩转换。如果特征描述符使用颜色,那么颜色表示和处理应该是精心设计的,准确的,并且适合于应用。例如,在一些应用中,可能仅使用颜色来识别物体,可能使用汽车的油漆颜色来识别汽车,假设供应商每年为每个型号选择了唯一的油漆颜色。通过将颜色与另一个简单的特征(如形状)结合起来,可以设计出一个有效的描述符。

颜色科学是一个由国际标准定义并在文献[249,250,251]中详细描述的众所周知的领域。我们在这里只列出几个资源。

  • 罗彻斯特理工学院的孟塞尔色彩科学实验室是色彩科学和成像领域的领先研究机构之一。它提供了广泛的资源,并与柯达、施乐等行业成像巨头有着密切的联系。
  • 国际照明委员会(CIE)提供了与颜色科学相关的一系列光源的标准照明数据,以及众所周知的颜色空间 CIE XYZ、CIE Lab 和 CIE Luv 的标准。
  • ICC 国际色彩联盟为成像设备提供 ICC 标准色彩描述文件,以及许多其他行业标准,包括彩色显示器的 sRGB 色彩空间。
  • 由行业领导者开发的专有色彩管理系统包括 Adobe CMM 和 Adobe RGB、Apple ColorSync 和 HP ColorSmart 也许最先进的是微软的 Windows 颜色系统,它是基于佳能早期在 CIECAM02 上使用的 Kyuanos 系统。

色彩管理系统概述

计算机视觉应用可能不需要成熟的色彩管理系统,但在处理色彩时,了解色彩管理的方法是至关重要的。如图 2-7 所示,色彩管理系统在设备色彩空间(如 RGB 或 s RGB)和比色色彩空间(如 CIE Luv、Lab、Jch 或 Jab)之间转换颜色,以执行色域映射。由于每个设备只能在特定的色域或颜色范围内再现颜色,因此需要色域映射,使用每个颜色设备的数学模型将颜色转换为最接近的匹配。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-7 。具有 RGB 照相机设备模型、sRGB 显示设备模型、CMYK 打印机设备模型、色域映射模块和光源模型的色彩管理系统

发光体、白点、黑点和中性轴

光源 是自然光或荧光灯等光源,根据其光谱成分和光谱功率或色温定义为白点颜色。真实系统中的白点颜色值从来都不是完美的白色,而是一个测量值。白点值和相对的黑点值一起定义了颜色空间的中性轴 (灰度强度)的端点,它不是一个完全直的颜色矢量。

色彩管理依赖于光源或发光体的准确信息和测量。如果没有关于测量颜色的光源的准确信息,颜色就无法表示,因为在荧光灯和自然光下颜色看起来是不同的,等等。CIE 标准定义了标准光源的几个值,例如 D65,如图 2-8 中的所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-8 。(左)三维颜色空间的表示,中性轴表示白色量,色相角表示原色,饱和度表示存在的颜色量。(右)CIE XYZ 色度图,显示标准光源 D65 OE 作为白点的值,以及 R、G 和 B 的原色值

设备颜色型号

打印机、显示器和相机等真实设备通常会再现颜色,而标准色标是使用校准光源和光谱设备测量的,例如,广泛使用的 Munsel 色标根据标准光源在色调、亮度和色度(HVC)方面定义颜色。为了有效地管理给定设备的颜色,必须为每个设备创建数学模型或设备颜色模型,定义设备色域及其色域范围中的异常。

为了使色彩管理系统准确,必须在实验室中对每个真实设备进行光谱表征和建模,以创建数学设备模型,将每个设备的色域映射到标准照明模型。设备模型用于色彩空间之间的色域转换。

设备通常使用原色和二次色 RGB 和 CYMK 来表示颜色。RGB 是原色、加色空间;从黑色开始,添加 RGB 原色红、绿和蓝来创建颜色。CYMK 是第二颜色空间,因为颜色分量青色、黄色和品红色是 RGB 原色的第二组合;青色=绿色加蓝色,洋红色=红色加蓝色,黄色=红色加绿色。CYMK 也是一个减色空间,因为颜色是从白色背景中减去的,以创建特定的颜色。

色彩空间和色彩感知

色度空间以抽象的术语表示颜色,如亮度、色调或颜色以及颜色饱和度。每个颜色空间都是为不同的原因而设计的,并且每个颜色空间对于不同类型的分析和处理都是有用的。简单色彩空间的例子包括 HSV(色调、饱和度、值)和 HVC(色调、值、色度)。在 CIE 颜色空间的情况下,RGB 颜色分量由标准化值 CIE XYZ 分量代替,作为定义 CIE Luv 和 CIE Lab 颜色空间的基础。

在颜色科学的最高端,我们有更新的 CIECAM02 颜色模型和颜色空间,如 Jch 和 Jab。CIECAM02 不仅仅是光源和色标本身的色度学,它还提供了高级的颜色外观建模考虑因素,包括测量颜色的环境[254,249]。

虽然 CIECAM02 对于大多数应用来说可能有些过分,但还是值得研究一下。由于人们对颜色的感知方式不尽相同,因此颜色感知会因观察颜色的环境、组合的直接照明和环境照明的光谱和角度以及人类视觉系统本身而有很大差异。

色域映射和渲染意图

色域映射是在两个色彩空间之间转换颜色并获得最佳匹配的艺术和科学。由于每个设备的色域不同,色域映射是一个挑战,并且有许多不同的算法在使用,没有明确的赢家。根据渲染的目的,可以使用不同的方法,例如,从相机色彩空间到打印机色彩空间的色域映射不同于映射到 LCD 显示器进行查看。

CAM02 系统提供了详细的指导模型。例如,彩色成像设备可以很弱地捕捉蓝色,而显示器可以很好地显示蓝色。色域拟合方法应该使用颜色裁剪还是拉伸?如何计算色域之间的差异?哪个颜色空间?有关超过 90 种色域映射方法的出色调查,请参见 Morovic 的工作[252]。

在图 2-9 (左图)中,sRGB 色彩空间显示为适合 Adobe RGB 色彩空间,说明 sRGB 没有覆盖像 Adobe RGB 一样宽的色域。每个色域以不同的方式再现颜色,每个颜色空间可能是线性的或内部扭曲的。图 2-9 中的右图说明了一种色域映射方法,该方法使用欧几里德距离和裁剪来确定两个色域中最接近的共同颜色;然而,还有许多其他色域映射距离方法。根据周围的光线和环境,颜色感知会发生变化,从而使色域映射变得更加复杂。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-9 。色域映射的中心问题:(左)使用 Gamutvision 软件创建的彩色 sRGB 和 Adobe RGB 色域。(右)色域映射细节

在色域映射中,有源色域和目标色域。例如,源可以是照相机,目的可以是 LCD 显示器。根据色域转换的渲染意图,已经开发了不同的算法来将颜色从源色域转换到目标色域。使用感知意图,色彩饱和度被映射并保持在目标色域的边界内,以努力保持相对色彩强度;并且来自源的色域外颜色被压缩到目标色域中,这允许更可逆的色域映射转换。使用*色度意图,*颜色可以直接从源色域映射到目标色域,而目标色域之外的颜色则被简单地剪切掉。

一种常见的颜色校正方法是依靠应用于强度通道的简单伽马曲线来帮助人眼更好地可视化数据,因为伽马曲线会使图像的暗区域变亮并压缩亮区域,这与人类视觉系统处理亮区域和暗区域的方式类似。然而,色域校正与真实的传感器数据没有关系,因此建议使用经过校准的色度校正方法。

色彩增强的实际考虑因素

对于图像预处理,颜色强度通常是唯一应该增强的颜色信息,因为颜色强度本身携带了大量信息并且是常用的。此外,在保持相对颜色的同时,颜色处理不能容易地在 RGB 空间中完成。例如,当 RGB 通道被重新组合成单个渲染时,使用锐化滤波器独立增强 RGB 通道将导致莫尔条纹伪像。因此,为了锐化图像,首先 RGB 正向转换到一个颜色空间,如 HSV 或 YIQ,然后锐化 V 或 Y 分量,然后反向转换回 RGB。例如,为了校正彩色照明,诸如 LUT 重映射或直方图均衡化的标准图像处理方法将起作用,只要它们在强度空间中执行。

作为一个实际问题,快速的颜色转换到灰度从 RGB,这里有一些方法。(1)G 颜色通道是灰度信息的良好代理,因为如第一章的传感器讨论所示,光谱中的 RB 波长与 G 波长严重重叠。(2)从 RGB 到灰度强度 I 的简单转换,取 I = R+G+B / 3 即可。(3)在 NTSC 电视广播标准中使用的 YIQ 色彩空间提供了 RGB 和灰度分量 Y 之间简单的向前/向后色彩转换方法,如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

颜色准确度和精度

如果颜色精度很重要,每个 RGB 颜色通道 8 位可能不够。有必要研究图像传感器供应商的数据手册,以了解传感器到底有多好。在撰写本文时,普通图像传感器每 RGB 通道产生 10 至 14 位的颜色信息。每个颜色通道可能有不同的光谱响应,如第一章中所述。

通常,在大多数设备上,绿色是一个良好且相当准确的颜色通道;红色通常也很好,并且如果从传感器移除 IR 滤光器,还可能具有近红外灵敏度;蓝色始终是一个挑战,因为蓝色波长在较小的硅阱中最难捕获,硅阱接近蓝色波长的尺寸,因此传感器供应商需要特别注意蓝色传感细节。

空间滤波

与使用傅立叶方法的频域滤波相比,对离散像素阵列的滤波被认为是*空间滤波、*或时域滤波。空间滤波器是频域方法的替代方法,并且在空间域中多种多样的处理方法是可能的。

卷积滤波和检测

卷积是一种基本的信号处理操作,易于计算为离散空间处理操作,对于 1D、2D 和 3D 处理是实用的。基本思想是将两个信号组合或卷积在一起,将源信号改变为更像滤波器信号。源信号是图像中的像素阵列;滤波信号是加权的核掩模,例如梯度峰值形状和定向边缘形状或其他加权形状。有关滤镜内核遮罩形状的几个示例,请参见本章后面讨论 Sobel、Scharr、Prewitt、Roberts、Kirsch、Robinson 和 Frei-Chen 滤镜遮罩的部分。

卷积通常用于滤波操作,如低通、带通和高通滤波器,但许多滤波器形状都有可能检测到 f 特征,如对边缘方向敏感的边缘检测内核,甚至是点、角和轮廓检测器。卷积被用作卷积网络方法中的检测器【85】,如第四章所述。

图 2-10 (中心图像)中的锐化内核遮罩旨在放大与相邻像素相关的中心像素。每个像素乘以其核心位置,结果(右图)显示中心像素是卷积的总和,相对于相邻像素已经增加或放大。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-10 。卷积,在这种情况下是锐化滤波器:(从左到右)图像数据、锐化滤波器和结果图像数据

卷积运算之后通常会有一组后处理点运算来清理数据。以下是一些有用的后处理步骤:在本章后面的“点过滤器”一节中有更多的建议。

switch (post_processor)
{
case RESULT_ASIS:
break;
case RESULT_PLUS_VALUE:
sum += value;
break;
case RESULT_MINUS_VALUE:
sum -= value;
break;
case RESULT_PLUS_ORIGINAL_TIMES_VALUE:
sum = sum + (result * value);
break;
case RESULT_MINUS_ORIGINAL_TIMES_VALUE:
sum = sum - (result * value);
break;
case ORIGINAL_PLUS_RESULT_TIMES_VALUE:
sum = result + (sum * value);
break;
case ORIGINAL_MINUS_RESULT_TIMES_VALUE:
sum = result - (sum * value);
break;
case ORIGINAL_LOW_CLIP:
sum = (result < value ? value : result);
break;
case ORIGINAL_HIGH_CLIP:
sum = (result > value ? value : result);
break;
}

switch (post_processing_sign)
{
case ABSOLUTE_VALUE:
        if (sum < 0) sum = -sum;
        if (sum > limit) sum = limit;
        break;
case POSITIVE_ONLY:
        if (sum < 0) sum = 0;
        if (sum > limit) sum = limit;
        break;
case NEGATIVE_ONLY:
        if (sum > 0) sum = 0;
        if (-sum > limit) sum = -limit;
        break;
case SIGNED:
        if (sum > limit) sum = limit;
        if (-sum > limit) sum = -limit;
        break;
}

卷积用于实现各种常见的滤波器,包括:

  • 渐变或锐化滤镜,放大并检测最大值和最小值像素。例子包括拉普拉斯算子。
  • 边缘或线检测器,其中线是显示线段或轮廓的连接梯度。边缘或线检测器可以转向特定的方向,如垂直、对角、水平或全向;在第三章中讨论了作为基集的可控滤波器。
  • 平滑和模糊滤镜,取邻域像素。

内核过滤和形状选择

除了卷积方法之外,可以设计核来捕获像素区域,一般用于统计滤波操作,其中区域中的像素从低值到高值被分类到列表中。例如,假设一个 3×3 内核区域,我们可以设计以下统计过滤器:

sort(&kernel, &image, &coordinates, &sorted_list);

switch (filter_type)
case RANK_FILTER:
        // Pick highest pixel in the list, rank = 8 for a 3x3 kernel 0..8
        // Could also pick the lowest, middle, or other rank
        image[center_pixel] = sorted_list[rank];
        break;
case MEDIAN_FILTER:
        // Median value is kernel size / 2, (3x3=9)/2=4 in this case
        image[center_pixel] = sorted_list[median];
        break;
case MAJORITY_FILTER:
        // Find the pixel value that occurs most often, count sorted pixel values
        count(&sorted_list, &counted_list);
        image[center_pixel] = counted_list[0];
        break;
}

等级过滤器是一种简单而强大的方法,它对区域中的每个像素进行排序,并用所需等级的像素替换中心像素,例如用区域中最高的像素替换中心像素,或者用中值或多数值替换。

形状选择或形成内核

任何区域操作都可以受益于形状选择核来从该区域中选择像素并排除其他像素。形状选择或形成可以作为预处理步骤应用于任何图像预处理算法或任何特征提取方法。形状选择核可以是二进制真值核,以选择来自源图像的哪些像素被用作一组,或者标记应该接受单独处理的像素。形状选择核,如图 2-11 所示,也可以应用于局部特征描述符和检测器;类似但有时更复杂的局部区域像素选择方法通常与局部二进制描述符方法一起使用,如第四章所述。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-11 。真实核和形状核:(左)形状核灰色核位置,指示要处理或使用的像素,例如,要在局部二进制模式点对比较检测器之前进行卷积的像素。(右)指定用于区域平均的像素的真实形状内核,支持对角线-T 表示使用此像素,F 表示不使用

点过滤

在进行图像预处理实验时,通常会忽略单个像素的处理。点加工适用于许多优化方法,这将在第八章的中讨论。如上所述,卷积之后通常是点后处理步骤。表 2-2 举例说明了数学运算、布尔运算、比较和替换运算领域中几种常见的像素点处理方法,这些方法看似显而易见,但对探索图像增强方法以增强特征提取非常有价值。

表 2-2 。可能的点操作

|

//数学运算

|

//比较和替代操作

|
| — | — |
| 名称 math _ ops[]= {
" src+value->dst "、
"src - value - > dst "、
"src * value - > dst "、
"src / value - > dst "、
(src+dst)* value->dst "、
(src-dst)* value->dst "、
(src * dst)* dst)
“src * src+value->dst”,
“exp(src)+value->dst”,
“log(src)+value->dst”,
“log 10(src)+value->dst”,
“pow(src ^值)- > dst”,
“sin(src)+value->dst”
//布尔运算
名称 bool_ops[] = {
"src 与值- > dst ",
"src 或值- > dst ",
"src 异或值- > dst ",
"src 与 dst - > dst ",
"src 或 dst - > dst ",
“src 异或” | 名称 change _ ops[]= {
" if(src = thresh)value->dst ",
"if (src = dst) value - > dst ",
"if (src!= thresh) value - > dst ",
"if (src!= thresh) src - > dst ",
if(src!= dst)值- > dst ",
"if (src!= dst) src - > dst“,
“if(src>= thresh)value->dst”,
“if(src>= thresh)src->dst”,
“if(src>= dst)value->dst”,
“if(src>= dst)src->dst”,
“如果
“if(src<= dst)src->dst”,
“if(lo<= src<= hi)value->dst”,
“if(lo<= src<= hi)src->dst”,
}; |

噪声和伪像过滤

噪声通常是图像传感器的伪像,但并非总是如此。图像中还可能存在其他几种伪像。噪声去除的目标是在不扭曲底层图像的情况下去除噪声,并且去除伪像的目标是相似的。根据噪声或伪像的类型,可以采用不同的方法进行预处理。第一步是对噪声或伪影进行分类,然后设计正确的图像预处理策略。

  • **散斑,随机噪声。**这种类型的噪声显然是随机的,可以使用等级滤波器或中值滤波器去除。
  • **瞬时频率尖峰。**这可以使用傅立叶频谱来确定,并且可以使用尖峰上的陷波滤波器来移除;频率尖峰很可能位于频谱的异常区域,并可能表现为图像中的亮点。
  • **抖动和抖动线路噪声。**这是视频流特有的伪像,通常是由于电视电影伪像、摄像机运动或图像场景造成的,并且很难校正。它主要面向行,而不仅仅是面向单像素。
  • **运动模糊。**这可能由匀速或非匀速运动引起,是一个复杂的问题;有几种去除方法;参见参考文献[305]。

Gonzalez[4]讨论了消除噪声的标准方法。最基本的方法是去除异常值,并且采用各种方法,包括阈值和基于局部区域的统计滤波器,例如等级滤波器和中值滤波器。加权图像平均有时也用于从视频流中去除噪声;假设相机和对象不移动,它可以很好地工作。尽管有时使用去模糊或高斯平滑卷积核来去除噪声,但是这种方法可能导致拖尾,并且可能不是最佳方法。

Buades 等人【511】提供了噪声去除方法的调查和性能比较模型。该来源包括作者的 NL-means 方法的描述,该方法除了使用较大图像区域上的相似加权像素值之间的欧几里德距离度量之外,还使用非局部像素值统计来识别和去除噪声。

整体图像和盒式过滤器

积分图像用于快速找到矩形像素组的平均值。积分图像也被称为总面积表,其中积分图像中的每个像素是当前像素左侧和上方所有像素的积分和。积分图像可以在图像上的单次通过中快速计算。使用来自图像 i(n,m) 的当前像素值,结合先前进入总面积表的条目 s(n,m) ,计算总面积表中的每个值,如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如图图 2-12 所示,从积分图像中求一个 HAAR 矩形特征值,只使用积分图像表 A、B、C、D 中的四个点,而不是从图像中求几十或几百个点。然后,矩形区域的积分图像和可以除以矩形区域的大小,以产生平均值,这也被称为盒式滤波器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-12 。图像中的(左)像素。(中间)整体图像。(右)从积分图像中的四个点计算盒状过滤器值的区域:sum = s(A)+s(D)-s(B)-s©

积分图像和箱式滤波器用于许多计算机视觉方法,例如 HAAR 滤波器和特征描述符。积分图像也用作小区域的高斯滤波器的快速替代,作为降低计算成本的一种方式。事实上,具有大量重叠区域处理的描述符,如 BRISK [131],有效地利用积分图像来构建描述符,并将积分图像用作快速高斯模糊或卷积的代理。

边缘检测器

边缘检测器的目标是增强图像中的连通梯度,其可以采取边缘、轮廓、线或一些连通的边缘集合的形式。许多边缘检测器被简单地实现为内核操作或卷积,我们在这里考察常用的方法。

核心集 :索贝尔、沙尔、普鲁伊特、罗伯茨、基尔希、罗宾逊、弗赖-陈

Sobel 算子检测边缘检测的梯度大小和方向。这里显示了基本方法。

  1. 使用诸如 3×3 核的基本导数核近似,使用如下值,执行两个方向索贝尔滤波器( xy 轴):

  2. 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 计算总梯度为Gv= |Sx|+|Sy|

  4. 计算渐变方向为θ=ATAN(Sy/Sx)

  5. 计算梯度幅度外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用于 Sobel 边缘检测的核的面积大小和形状存在变化。除了上面示出的 Sobel 核之外,在实践中还使用其他类似的核集合,只要核的值相消并且加起来为零,例如由 Scharr、Prewitt、Roberts、Robinson 和 Frei-Chen 提出的那些核,以及拉普拉斯近似核。Frei-Chen 核被设计成在一个集合中一起使用,因此边是所有核的加权和。有关边缘检测掩模的更多信息,请参见参考文献[4]。一些内核具有指南针方向,例如 Kirsch、Robinson 和其他人开发的那些内核。参见图 2-13 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-13 。几个边缘检测核心掩码

Canny 探测器

Canny 方法[154]类似于 Sobel-style 梯度幅度和方向方法,但它增加了后处理来清理边缘。

  1. 使用选定的卷积核(7x7,5,5 等)对图像执行高斯模糊。),具体取决于所需的低通滤波水平。
  2. 执行两个方向索贝尔滤波器( x & y 轴)。
  3. 在渐变方向上执行非最大值抑制,将不在边缘上的像素(最小值)设置为零(0)。
  4. 沿梯度方向在一个值带(高、低)内执行滞后阈值处理,以消除边缘混叠和异常伪像,并创建更好的连接边缘。

变换滤波、傅立叶变换等

本节讨论图像滤波中的基空间和图像变换,最常用和最广泛使用的是傅立叶变换。在第三章的中,提供了特征描述上下文中对基础空间和变换的更全面的处理。Pratt [9]为图像处理环境中的变换滤波提供了一个很好的参考。

为什么要使用转换来切换域?使图像预处理更容易或更有效,或者更有效地执行特征描述和匹配。在某些情况下,除了将图像变换到另一个域,没有更好的方法来增强图像或描述特征,例如,消除作为傅立叶频谱异常频率成分的噪声和其他结构性伪影,或者使用 HAAR 基特征对图像特征进行压缩描述和编码。

傅立叶变换族

傅立叶变换是众所周知的,并在布拉采维尔的标准参考文献[227]中有所涉及,它构成了一系列相关变换的基础。执行快速傅立叶变换(FFT)的几种方法在图像和信号处理库中很常见。傅立叶分析几乎触及了世界事务的每个领域,包括科学、金融、医学和工业,并被誉为“我们一生中最重要的数值算法”[290]。这里,我们讨论傅立叶分析的基本原理,以及傅立叶变换家族的几个分支和图像预处理应用。

傅立叶变换可以使用光学以光速计算[516]。然而,我们对适用于数字计算机的方法感兴趣。

基本原则

傅立叶分析[227,4,9]的基本思想是将周期函数分解成一系列正弦和余弦波 ( 图 2-14 )。傅立叶变换是在周期波和频域中相应的一系列谐波基函数之间的双向变换,其中每个基函数是正弦或余弦函数,与基频间隔整个谐波倍数。正向 FFT 的结果是由序列中每个正弦和余弦分量的幅度和相位数据组成的复数,也称为实数据虚数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-14 。(左)正弦波的调和级数。(右)正弦和余弦波的傅立叶调和级数

任意周期函数可以通过对期望的一组傅立叶基函数求和来合成,并且周期函数可以使用傅立叶变换分解成作为傅立叶级数的基函数。傅立叶变换在离散像素的时域和频域之间是可逆的,其中每个基函数的幅度和相位都可用于滤波和分析,幅度是最常用的分量。

2D 图像或 3D 体积的 FFT 是如何实现的?傅立叶变换是一种可分离变换,因此可以实现为一组并行 1D FFT 线变换 ( 图 2-15 )。因此,对于 2D 图像和 3D 体积,每个维度,例如 x、y、z 维度,可以作为独立的 x 线并行地就地计算,然后下一个维度或 y 列可以作为平行线就地计算,然后 z 维度可以作为平行线就地计算,并且根据变换缩放最终结果。任何好的 1D FFT 算法都可以设置成使用并行化处理 2D 图像或 3D 体积。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-15 。傅立叶级数和傅立叶变换概念,表示由一系列傅立叶谐波近似得到的方波

为了从频率空间回到像素的逆变换的精度,FFT 计算将需要两个双精度 64 位浮点缓冲器来保存幅度和相位数据,因为诸如正弦和余弦之类的超越函数需要高浮点精度来保证精度;对图像数据使用 64 位双精度浮点数,可以计算图像的前向变换,然后进行逆变换,与原始图像相比精度没有损失——当然,非常大的图像需要两倍以上的精度。

由于 64 位浮点运算速度通常较慢,功耗也较高,这是由于 ALU 中的计算要求和芯片面积增加,以及存储器带宽负载较重,因此开发了使用整数变换的 FFT 优化方法,在某些情况下还使用定点,这是许多应用的良好选择。

注意在图 2-16 中,应用低通滤波器(中右)主要是为了保护靠近图中心的低频信息,并减少靠近边缘的高频成分,从而在最右边产生滤波后的图像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-16 。基本傅立叶滤波:(左)原图。(中左)傅立叶光谱。(中右)低通滤波器形状用于乘以傅立叶幅度。(右)使用低通滤波器的逆变换图像

一个关键的傅立叶应用是滤波,其中原始图像被正向转换成幅度和相位;幅度分量被显示为幅度数据的傅立叶功率谱,其将图像中的结构显示为直线和块,或者通常是噪声的异常结构或斑点。可以通过各种滤波器形状对幅度进行滤波,例如高通、低通、带通和斑点滤波器,以消除斑点噪声,从而影响频谱的任何部分。

在图 2-16 中,显示了一个圆形对称低通滤波器形状,滤波器系数从 1 到 0 平滑分布,在低频中心有高乘数,在边缘向高频逐渐下降到零。滤波器形状在频域中与幅度数据相乘,以滤除频谱图外部的较高频率分量,然后进行逆 FFT,以提供滤波后的图像。低频分量朝向中心;通常这些是最令人感兴趣的,因此大部分镜像功率包含在低频成分中。可以使用任何其他滤波器形状,例如点滤波器,来去除噪声或光谱特定位置处的任何结构。

傅立叶变换族

傅立叶变换是一系列变换[4]的基础,其中一些是:

  1. **离散傅立叶变换,快速傅立叶变换。**傅立叶变换的离散版本,通常作为快速版本或 FFT 来实现,通常用于图像处理。实现 FFT 的方法有很多种[227]。
  2. 正弦变换 **。**仅由正弦项组成的傅立叶公式。
  3. **余弦变换。**仅由余弦项组成的傅立叶公式。
  4. DCTDST,MDCT。离散傅立叶变换以几种形式实现:离散正弦变换(DST) 、离散余弦变换(DCT) 和改进的离散余弦变换(MDCT) 。这些相关方法对宏块(例如 16×16 或 8×8 像素区域)进行操作,因此可以针对整数而不是浮点的计算使用进行高度优化。典型地,DCT 在用于视频编码和解码应用的硬件中实现,用于从帧到帧的宏块的运动估计。为了计算效率,MDCT 对重叠的宏块区域进行操作。
  5. 快速哈特莱变换 *、DHT。这是大约在 1925 年作为电话传输分析的傅立叶变换的替代公式开发的,被遗忘了许多年,然后被布拉采维尔重新发现并再次推广[227]作为傅立叶变换的替代。哈特利变换是傅立叶变换的对称公式,将信号分解为两组正弦函数,合起来作为一个cosine-a*nd-*sine*或 cas( ) 函数,其中 cas(vx) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 cos(vx) + sin(vx)。这包括正负频率分量,并完全根据实数进行输入和输出。Hartley 公式避免了傅立叶复指数exp(jωx)中使用的复数。Hartley 变换已经被开发成被称为 DHT 的优化版本,显示出与优化的 FFT 速度相当。

其他转换

其他几种变换可用于图像滤波,包括小波、可控滤波器组以及其他将在第三章的中描述的变换。请注意,变换通常有许多重叠的共同用途和应用,例如图像描述、图像编码、图像压缩和特征描述。

形态学和分段

为简单起见,我们将形态学的目标定义为形状和边界定义,分割的目标是定义具有内部相似性的区域,例如纹理或统计相似性。形态学用于将特征识别为可以用形状度量描述的多边形区域,这将在第三章和第六章中讨论,不同于使用其他方法的局部兴趣点和特征描述符。图像被分割成区域,以允许根据一些策略或处理目标对每个区域进行独立的处理和分析。区域覆盖的面积小于全局图像,但通常大于局部兴趣点特征,因此应用可能将全局、区域和小局部兴趣点度量一起用作对象签名

Haralick 和 Shapiro 的工作[321]对几种分割方法进行了出色的回顾。在实践中,分割和形态学并不容易:结果往往不如预期的有用,需要反复试验,有太多的方法可以提供任何严格的指导,并且每个图像都是不同的。因此,这里我们只调查引入主题和说明复杂性的各种方法。区域分割方法概述见表 2-3 。

表 2-3 。分割方法

|

方法

|

描述

|
| — | — |
| 形态分割 | 基于阈值和形态学算子来定义该区域。 |
| 基于纹理的分割 | 区域的纹理用于将相似的纹理分组到相连的区域中。 |
| 基于变换的分割 | 基空间特征用于分割图像。 |
| 边缘边界分割 | 单独使用梯度或边缘来定义区域的边界,在某些情况下使用边缘链接来形成边界。 |
| 颜色分割 | 颜色信息用于定义区域。 |
| 超像素分割 | 内核和距离变换用于对像素进行分组,并将其值更改为公共值。 |
| 灰度/亮度分段 | 灰度阈值或带用于定义区域。 |
| 深度分割 | 深度图和距观看者的距离被用于将图像分割成前景、背景或其他场景间特征的渐变。 |

二元形态学

二进制形态学对二进制图像进行操作,二进制图像是从其他标量强度通道图像创建的。形态学[9]用于通过去除形状噪声或异常值,并通过加强主要特征特性,将特征形状变形为新的形状,以供分析。例如,可以使用形态学去除孤立的像素,细化特征,并且仍然保留主要的形状。请注意,形态学本身是一个相当大的研究领域,可应用于一般对象识别、细胞生物学、医学、粒子分析和自动显微镜。我们在这里介绍二进制图像形态学的基本概念,然后在这一节之后介绍灰度和彩色数据的应用。

二进制形态学从二进制化图像开始,因此通常首先进行阈值处理,以创建具有由 8 位黑白值组成的二进制值像素的图像,0 值=黑色,255 值=白色。在这一章的后面,我们将对阈值处理方法进行探讨,在形态学之前,阈值处理是至关重要的。

二值形态学是一种邻域运算,可以使用带有真值的成形核,如图图 2-17 所示。成形核通过定义哪些周围像素对形态有贡献来指导形态过程。图 2-17 显示了两个形成的内核:内核 a,其中所有接触当前像素的像素都被考虑,内核 b,其中只考虑正交相邻的像素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-17 。3×3 形成核以及使用核的二元腐蚀和膨胀;在给定的应用中,其他内核大小和数据值可能是有用的。(图片由英特尔出版社授权使用,来自构建智能系统)

形态学的基本运算包括布尔与、或、非。用于基本形态学操作的符号用于膨胀侵蚀。在二值形态学中,膨胀是布尔 OR 运算符,而腐蚀是布尔 AND 运算符。在图 2-17 提供的例子中,只有带“1”的核元素用于形态计算,考虑到邻域贡献的变化。对于侵蚀,所有真正形成核心元素下的像素一起进行“与”运算;如果全部为真且像素特征保留,则结果为 1,否则像素特征被侵蚀或设置为 0。

对于中心像素的侵蚀,正在形成的真实内核下的所有像素必须是真实的。侵蚀试图减少稀疏要素,直到只剩下强要素。膨胀试图膨胀稀疏特征以使它们变得更胖,对于中心像素的膨胀,形成的核元素下只有 1 个像素必须为真,对应于布尔 or。

基于简单的腐蚀和膨胀,一系列的形态学操作如下所示,其中外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 =膨胀,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 =腐蚀。

Erode                                  G(f) = f   `b`
`Dilate                                 G(f) = f`   ``b`
`Opening                        G(f) = (f`   ``b)` ` `b`
`Closing                        G(f) = (f`   ``b)`   ``b`
`Morphological Gradient           G(f) = f`   ``b or G(f) = f` ` `b – f` ` `b`
`Morphological Internal gradient G i(f) = f  -  f` ` `b`
`Morphological External gradient        G e(f) = f` ` `b -  f`
      ``````py````

``灰度和颜色形态和

灰度形态学有助于将像素合成并组合成具有相似强度值的均匀强度带或区域。灰度形态学可用于各个颜色分量,以提供影响各种颜色空间中的色调、饱和度和颜色强度的颜色形态学。

对于灰度形态学或彩色形态学,基本操作是最小值、最大值和最小最大值,其中最小值以上的像素变为相同的值,最大值以下的像素变为相同的值,而最小最大值范围内的像素变为相同的值。最小值和最大值是阈值的一种形式,而最小最大值允许像素值的带合并成相等的值,形成同质区域。

形态学优化和改进

除了简单形态学[9],还有其他使用自适应方法的形态学分割方法[254,255,256]。简单形态学方法依赖于在整个图像的每个像素上使用固定的核,并假设阈值已经应用于图像;而自适应方法将形态学操作与基于局部像素强度统计的可变核和可变阈值相结合。这允许形态学适应局部区域强度,并且在某些情况下,产生更好的结果。自动阈值和自适应阈值方法将在本章稍后讨论,并在图 2-24 和图 2-26 中说明。

欧几里得距离图

距离图或欧几里德距离图(EDM)将二进制图像中的每个像素转换为每个像素到最近背景像素的距离,因此 EDM 需要输入二进制图像。EDM 对于分割很有用,如图 2-18 中的所示,其中 EDM 图像根据 EDM 值设定阈值——在这种情况下,类似于腐蚀操作符。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-18 。预处理序列:(左)阈值处理和腐蚀后的图像。(中间)EDM 显示与像素到黑色背景的距离相对应的灰度级。(右)简单的二进制阈值 EDM 图像

超像素分割

一种超像素分割方法[257,258,259,260,261]试图将局部区域中的相似像素折叠成具有相等像素值的更大的超像素区域,因此相似值被归入更大的超像素中。超像素方法通常用于数字摄影应用,以创建缩放或水彩特效。超像素方法将每个像素视为图中的一个节点,基于相邻像素的相似性和图距离来确定区域之间的边。参见图 2-19 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-19 。各种超像素分割方法的比较(图片 Radhakrishna Achanta 博士,经许可使用)

可以基于超像素设计特征描述符,包括超像素值直方图、每个多边形超像素的形状因子以及相邻超像素值的空间关系。显然,在基于超像素的描述符方面做的工作很少;然而,几种程度的鲁棒性和不变性的潜力似乎很好。接下来,我们调查一系列超像素分割方法。

基于图形的超像素方法

基于图的方法基于像素与相似值像素区域的质心特征或边缘特征的距离将像素组织成树。计算复杂度因方法而异。

  • SLIC 方法 [258]简单线性迭代聚类(SLIC)基于 5D 空间创建超像素,包括 CIE Lab 原色和 XY 像素坐标。SLIC 算法将所需数量的超像素作为输入,以生成并很好地适应灰度和 RGB 彩色图像。聚类距离函数与超像素的期望数量的大小相关,并且使用欧几里德距离函数将像素分组为超像素。
  • 归一化切割 [262,263]使用基于局部纹理和区域轮廓的递归区域分割方法来创建超像素区域。
  • GS-FH 方法【264】基于图形的 Felzenszwalb 和 Huttenlocher 方法试图使用基于感知或心理线索的边缘来分割图像区域。该方法使用图树结构中像素之间的最小长度来创建超像素区域。计算复杂度为 *O(n Log n),*相对较快。
  • SL 方法【265】超像素点阵(SL)方法使用图形切割方法在平铺图像区域或像素带内找到区域边界。

基于梯度上升的超像素方法

梯度上升方法迭代地改进超像素聚类以优化分割,直到达到收敛标准。这些方法使用树形图结构根据一些标准将像素关联在一起,在这种情况下,这些标准可以是像素的笛卡尔坐标的 RGB 值,然后应用距离函数或其他函数来创建区域。因为这些是迭代方法,所以性能可能会很慢。

  • 均值偏移【266】基于基于内核的均值平滑方法,通过配准区域质心来创建相似像素的区域。
  • 快速移动 [267]类似于均值移动方法,但不使用均值模糊内核,而是使用基于 RGB 值和 XY 像素坐标从图形结构计算的距离函数。
  • 分水岭【268】从局部区域像素值极小点开始,寻找定义分水岭的基于像素值的轮廓线,或者流域轮廓,在其中相似的像素值可以被替换以创建同质像素值区域。
  • turbo pixels【269】使用小的圆形种子点,这些种子点放置在图像上的均匀网格中,超像素围绕这些种子点被收集到指定的区域中,然后超像素边界被逐渐扩展到未指定的区域中,使用几何流方法使用受控的边界值扩展标准来扩展边界,以便将更多的像素聚集到具有相当平滑和均匀的几何形状和大小的区域中。

深度分割

深度信息,如图 2-20 所示的深度图,是基于距离分割对象的理想选择。深度图可以通过各种各样的深度传感器和方法来计算,包括单个相机,正如在第一章中讨论的。深度相机,如微软 Kinect 相机,正变得越来越常见。深度图是 2D 图像或阵列,其中每个像素值是距离或 Z 值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-20 。来自米德尔伯里数据集的深度图像:(左)原始图像。(右)对应深度图。数据由 Daniel Scharstein 提供,经许可使用

计算机视觉中的许多不确定性源于在二维图像阵列中定位三维对象的问题,因此向视觉流水线添加深度图是一项巨大的资产。使用深度图,图像可以很容易地分割成前景和背景,并能够分割特定的特征或对象,例如,通过简单的深度阈值分割。

取决于深度感测方法,深度图通常非常模糊且有噪声,因此可能需要图像预处理。然而,深度图清理没有完美的过滤方法。许多从业者更喜欢双边滤波器[302]及其变体,因为它保留了局部结构,并且在处理边缘过渡方面做得更好。

颜色分割

有时颜色可以单独用于分割和阈值处理。使用正确的颜色分量可以很容易地从图像中过滤出特征。例如,在图 2-6 中,我们从 RGB 集合中的红色通道图像开始,目标是从桌子背景中分割出 u 盘。由于桌子是棕色的,包含很多红色,红色通道与 USB 记忆棒形成了有益的对比,允许通过红色进行分割。可能需要对图像进行色彩校正以获得最佳效果,例如色域校正或提高每种颜色的色调或饱和度以突出差异。

阈值处理

阈值处理的目标是以一定的强度水平分割图像,以揭示诸如前景、背景和特定对象等特征。存在从全局到局部自适应的多种阈值方法。在实践中,阈值处理非常困难,并且其本身通常不令人满意,必须针对数据集进行调整,并与视觉流水线中的其他预处理方法相结合。

阈值处理中的一个关键问题是照明不均匀,因此需要阈值处理的应用,如细胞生物学和显微镜,需要特别注意细胞制备、样本间距和光线位置。由于许多图像对涉及简单方法的全局阈值处理没有很好的响应,所以通常需要局部方法,其使用局部像素结构和统计关系来创建有效的阈值。这里讨论了阈值处理的全局和局部自适应方法。阈值可以有几种形式:

  • 地板允许的最低像素强度
  • 上限允许的最高像素强度
  • 斜坡地板和天花板之间像素斜坡的形状,如线形或原木形
  • 可以是没有下限、上限或斜坡的二元阈值点

全局阈值

在全局确定的阈值水平上对整个图像进行阈值处理有时是开始探索图像数据的好地方,但是通常局部特征会受到影响,并且结果是难以理解的。可以使用统计方法来确定最佳阈值水平,从而改进阈值处理。可以构建查找表(LUT ),在统计矩的指导下创建地板、天花板和斜坡以及对图像执行快速 LUT 处理的函数,或者对图像进行假色以便可视化。

直方图峰值和谷值,以及滞后阈值

我们再次转向老的备用图像直方图。直方图中的峰值和谷值 可以指示用于分割和阈值处理的阈值【319】。一个滞后区域标记了具有相似值的像素,在直方图中很容易被发现,如图图 2-21 所示。此外,许多图像处理程序具有交互式滑块,允许使用指针设备设置阈值点甚至区域。 1 花些时间,通过直方图了解图像数据,并熟悉使用交互式阈值方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-21 。用箭头标注的直方图显示了峰和谷,虚线显示了使用滞后阈值定义的相似强度的区域

如果直方图峰值之间没有明显的谷,那么建立两个阈值,在谷的每一侧一个,是一种定义滞后区域的方法。滞后区域内的像素值被视为在对象内部。此外,可以使用滞后范围和形态学将像素一起分类为一个区域,以确保区域连通性。

LUT 变换,对比度重新映射

简单查找表(lut)对于对比度重映射和全局阈值处理非常有效,交互式工具可用于创建 lut。一旦使用交互式实验找到最佳下限、上限和斜坡函数,就可以将 lut 生成为表数据结构,并用于在 fast 代码中设置阈值。使用伪彩色 lut 对图像进行假着色是常见的,对于理解数据中的阈值非常有价值。可以设计各种 LUT 形状和斜坡。使用线性斜坡函数的示例见图 2-22 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-22 。对比度校正:(左)原始图像显示棕榈叶细节压缩成一个狭窄的强度范围模糊细节。(中间)全局直方图均衡恢复了一些细节。(右)LUT 重映射功能将亮度值扩展到更窄的范围,以显示棕榈叶的细节。对角线下的直方图部分被拉伸以覆盖右图像中的全部强度范围;其他强度区域被剪切。当用诸如 Sobel 的梯度算子处理时,对比度校正的图像将产生更多的梯度信息

直方图均衡化和规范

直方图均衡化使用对比度重映射功能在地板和天花板之间分布像素值,目的是创建一个直方图,使近似相等的面元计数接近直线分布。参见图 2-23 。虽然此方法适用于灰度图像,但彩色图像应在所选色彩空间(如 HSV V)的强度通道中进行均衡。单独均衡每个 RGB 分量并重新渲染会产生彩色莫尔条纹。直方图均衡化使用固定区域和该区域中所有像素的固定重新映射;然而,自适应局部直方图均衡方法是可用的[314]。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-23 。(左)原始图像和直方图。(右)直方图均衡化图像和直方图

可以创建所需的直方图形状或值分布,称为直方图规范 ,然后重新映射源图像的所有像素值,以符合指定的直方图形状。可以直接创建该形状,或者可以使用来自第二图像的直方图形状来重新映射源图像以匹配第二图像。对于一些图像处理包,直方图规定可以是交互式的,并且可以放置和调整曲线上的点以创建期望的直方图形状。

全局自动阈值处理

已经设计了各种方法来基于图像直方图的统计特性自动寻找全局阈值[320,513,514,515],并且在大多数情况下,结果不是很好,除非在自动阈值处理之前进行一些图像预处理。表 2-4 提供了自动阈值方法的简要概述,而图 2-24 显示了每种方法的效果图。

表 2-4 。从基本直方图特征导出的选定的少数全局自动阈值方法[303]

|

方法

|

描述

|
| — | — |
| 默认 | IsoData 方法的变体,也称为迭代中间方法。 |
| 黄 | 黄的模糊阈值法。 |
| 【生】节间部 | 迭代直方图平滑。 |
| 迭代自组织数据分析 | 对高于和低于阈值的值进行迭代像素平均,以导出高于复合平均值的新阈值。 |
| 里 | 迭代交叉熵阈值处理。 |
| 最大熵 | Kapur-Sahoo-Wong(最大熵)算法。 |
| 平均 | 使用平均灰度作为阈值。 |
| 米诺尔 | 来自 Kittler 和 Illingworth 的迭代方法收敛于最小误差阈值。 |
| 最低限度 | 假设双峰直方图,迭代直方图平滑。 |
| 朋友圈 | Tsai 阈值化算法旨在阈值化和保持原始图像矩。 |
| 大津 | 通过最小化方差来设置局部阈值的 Otsu 聚类算法。 |
| 百分位 | 根据前景和背景像素的预设分配调整阈值。 |
| 雷尼熵 | 另一种基于熵的方法。 |
| 山巴哥 | 使用模糊集度量来设置阈值。 |
| 三角 | 使用图像直方图峰值,假设峰值不在中心,在峰值两侧的最大区域设置阈值。 |

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-24 。所选自动阈值方法的渲染(使用 ImageJ 自动阈值插件生成的图像[303])

局部阈值

局部阈值方法从局部像素区域获取输入,并分别对每个像素进行阈值处理。下面是一些常用的有用的方法。

局部直方图均衡

局部直方图均衡化将图像分成小块,如 32×32 像素,并为每个块计算直方图,然后使用直方图均衡化重新渲染每个块。然而,对比度结果可能包含对应于所选直方图块大小的块伪影。局部直方图均衡有几种变化,包括对比度受限的自适应局部直方图均衡(CLAHE) [304]。

积分图像对比度滤波器

与直方图相关的方法使用积分图像来计算局部区域统计,而不需要计算直方图,然后相应地重新映射像素,这样速度更快,并且达到类似的效果(图 2-25 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-25 。来自 ImageJ 的积分图像滤波器,用于重新映射局部区域的对比度,类似于直方图均衡化:(左)原始。(中间)20x20 个区域。(右)40x40 区域

本地自动阈值方法

局部阈值处理基于图像中每个目标像素周围的紧邻区域来调整阈值,因此局部阈值处理更像是标准区域操作或过滤器[513,514,515]。标准软件包中提供了局部自动阈值方法。 2 图 2-26 提供了一些自适应局部阈值方法的例子,总结在表 2-5 中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-26 。使用 ImageJ 插件呈现选定的几个局部自动和局部阈值方法[303]

表 2-5 。选定的几个局部自动阈值方法[303]

|

方法

|

描述

|
| — | — |
| 伯恩森 | 使用圆形窗口代替矩形和局部中间灰度值的 Bernsen 算法 |
| 平均 | 使用局部灰度平均值作为阈值 |
| 中位数 | 使用局部灰度平均值作为阈值 |
| Grey 医生 | 使用局部区域灰度均值- C(其中 C 是常数) |
| 尼布莱克 | 尼布莱克的算法是:p = (p >均值+ k 标准差- c)?对象:背景 |
| 索沃拉 | 索沃拉尼布莱克变奏:p = (p >均值
(1 + k *(标准差/ r - 1)))?对象:背景 |

摘要

在这一章中,我们考察了作为预处理步骤的图像处理,它可以改进图像分析和特征提取。我们开发了一种图像处理方法的分类法来构建讨论,并将该分类法应用于四个基本视觉流水线中的示例,这将在第五章的分类法中开发,包括(1)局部二进制描述符,如 LBP、ORB、FREAK(2)光谱描述符,如 SIFT、SURF(3)基空间描述符,例如 FFT、小波;以及(4)多边形形状描述符,例如斑点对象面积、周长和质心。讨论了图像预处理的常见问题和机会。从照明、噪声和伪像消除开始,我们讨论了一系列主题,包括分割变化,如深度分割和超像素方法、二进制、灰度和彩色形态学、卷积空间滤波和统计区域滤波,以及基础空间滤波。


1 参见开源包 ImageJ2,菜单项 Image 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传调整-亮度/对比度进行交互式阈值处理。

2 参见开源包 Imagej2,菜单项 Image 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传调整外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传自动本地阈值|自动阈值。``

三、全局和区域特征

量两次,切一次。

—木匠的说法

本章涵盖一般特征描述的度量,通常用于整个图像和图像区域,包括纹理、统计、基于模型和基础空间方法。纹理是图像处理中的一个重要指标,通常分为结构方法和统计方法。结构方法寻找边缘和形状等特征,而统计方法关注像素值关系和统计矩。也存在对图像纹理建模的方法,主要用于图像合成而非描述。基空间,如傅立叶空间,也用于特征描述。

很难在图像处理和计算机视觉中的相关主题之间建立清晰的划分,这些主题属于全局、区域和局部特征度量;大多数指标的应用有相当大的重叠。然而,对于这一章,我们沿着合理的边界划分这些主题,尽管这些边界可能看起来是任意的。同样,此处关于全局和区域特征的讨论与第二章关于图像处理的和第六章关于局部特征的中讨论的主题也有一些重叠。简而言之,许多方法被用于局部、区域和全局特征描述,以及图像处理,例如傅立叶变换和 LBP。

但是我们首先简要介绍一下纹理分析和一般视觉度量领域的一些关键概念。

特征的历史调查

为了比较和对比全局、区域和局部特征度量,调查和跟踪用于描述机器视觉特征的关键思想、方法和手段的发展是有用的。该调查包括图像处理(纹理和统计)和机器视觉(局部、区域和全局特征)。从历史上看,由于计算性能、内存和传感器技术的限制,功能指标的选择仅限于当时可计算的指标。随着时间的推移和技术的发展,这些指标的计算变得越来越复杂,消耗了更多的内存。图像正变得*多模态,*结合了强度、颜色、多光谱、深度传感器信息、多重曝光设置、高动态范围图像、更快的帧速率,以及在 x、yZ 深度上更精确和准确。因此,内存带宽和计算性能的提高带来了描述特性指标和执行分析的新方法。

已经尝试了许多纹理分析的方法;这些分为以下几类:

  • 结构,通过一组称为纹理元素的微观纹理图案来描述纹理。示例包括自然纹理的数字描述,如织物、草和水。边缘、线和角也是结构模式,并且区域内的边缘特征,例如边缘方向、边缘计数和边缘梯度幅度,作为纹理度量是有用的。边缘特征的直方图可以用来定义纹理,类似于 SIFT 等局部特征描述符中使用的方法(在第六章中描述)。
  • 统计,基于灰度统计矩描述点像素区域属性,包括共生矩阵或 SDM 等方法。例如,颜色强度在相近范围内的图像区域可以被认为具有相同的纹理。具有相同直方图的区域可以被认为具有相同的纹理。
  • 基于模型的,包括分形模型、随机模型、各种半随机场。通常,模型可以用来生成合成纹理,但可能无法有效识别纹理,我们不包括纹理生成。
  • 基于变换或基的,包括诸如傅立叶、小波、Gabor 滤波器、Zernike 和其他基空间的方法,其在此被视为统计方法(统计矩)的子类;然而,基空间也用于图像处理和滤波的变换中。

关键理念:全局、区域和本地

让我们简单看看特性度量研究中的几个主要趋势和里程碑。虽然这份简要概述并不打算对所有关键事件和研究进行精确、全面的审视,但它描述了主流行业思维和学术活动的一些总体趋势。

20 世纪 60 年代、70 年代、80 年代——整体目标方法

在此期间,度量主要描述整个对象、更大的区域或图像;通过 FFT 频谱方法和相关性对大目标进行模式匹配;识别方法包括物体、形状和纹理度量;简单的几何图元用于对象合成。NTSC、PAL 和 SECAM 等低分辨率图像很常见——主要是灰度级,在有足够内存的情况下会有一些颜色。军方可以获得一些分辨率更高的卫星图像,如美国宇航局的陆地卫星图像和法国的 SPOT 图像。

模式识别的一些早期工作开始使用局部兴趣点和特征:值得注意的是,Moravic[520]在 1981 年开发了局部兴趣点检测器,1988 年 Harris & Stephens[156]开发了局部兴趣点检测器。商业系统开始出现,特别是 20 世纪 80 年代初的 View PRB,它使用数字相关和尺度空间超像素进行粗到细的匹配,实时图像处理和模式识别系统通过成像技术引入。机架安装成像和机器视觉系统开始被工作站和高端电脑所取代,这些电脑带有附加的成像硬件、阵列处理器以及 Krig Research 等公司的软件库和应用。

20 世纪 90 年代早期——部分物体方法

计算能力和内存不断增加,使人们能够更多地关注局部特征方法,如 Shi 和 Tomasi[157]改进 Harris 检测器方法的开发,Kitchen 和 Rosenfeld[208]开发灰度级角点检测方法,以及 Wang 和 Brady[213]的方法。1990 年,Khotanzad 和 Hong[276]使用 Zernike 多项式计算了多边形形状的图像矩。Lindberg[520]将尺度空间理论应用于计算机视觉,许多其他研究人员沿着这一思路走向未来,例如 Lowe [161]在 2004 年。

描述更小的对象或对象组件和图像部分的度量;地方特色和兴趣点的使用越来越多。使用了大量的子模式或基本向量,并开发了相应的度量标准。颜色信息的使用越来越多;越来越多的方法似乎可以改善缩放、旋转或仿射变化的不变性;和识别方法是基于用适当的度量找到对象的部分而开发的。更高的图像分辨率、更大的像素深度和彩色信息越来越多地用于公共部门(尤其是医疗应用),此外还有新的经济型图像传感器,如 KODAK MEGA-PLUS,它提供 1024x1024 的图像。

20 世纪 90 年代中期—局部特征方法

更多的注意力放在识别图像中兴趣点周围的小的局部特征的度量上。特征描述符从每个特征周围的窗口或补丁添加更多细节,识别基于搜索特征集并将描述符与更复杂的分类器匹配。描述符光谱包括梯度、边缘和颜色。

20 世纪 90 年代后期—分类不变局部特征方法

开发并改进了新的特征描述符,使其对比例、亮度、旋转和仿射变换的变化不变。Schmidt 和 Mohr[348]提出并推广了局部特征描述方法。特征充当字母表,用于拼出复杂的特征描述符或向量,由此向量用于匹配。使用神经网络和其他机器学习方法对特征匹配和分类阶段进行了改进,以提高速度和有效性[142]。

21 世纪初—场景和对象建模方法

场景和对象被建模为具有良好构造的描述符的特征组件或模式的集合;特征之间的空间关系被测量并用于匹配;新的复杂分类和匹配方法使用 boosting 和相关方法来组合强和弱特征,以便更有效地识别。Lowe 的 SIFT [161]算法发表;Bay 等人[160]也发表了 SURF,采用不同的方法,使用 HAAR 特征而不仅仅是梯度。Viola-Jones 方法[504]发表,使用 HAAR 特征和增强的学习方法来分类,加速匹配。用于计算机视觉的 OpenCV 库由 Bradski 在英特尔开发,并以开源形式发布。

2000 年代中期—更精细的特性和公制组合方法

这一领域的研究人员数量开始激增;Czurka 等人[234]开发了各种特征和度量组合(特征包),使用 Sivic [521]描述的关键点来描述场景和对象;创建了新的局部特征描述符并改进了旧的描述符;人们对商业应用中的实时特征提取和匹配方法越来越感兴趣。对更好的局部度量和特征描述符进行分析、测量,并一起使用以提高模式匹配的准确性。此外,特征学习和稀疏特征码书被开发来减少模式空间,加快搜索时间,并提高准确性。

2010 年后—多模态特征度量融合

鲁苏和布拉德斯基等人越来越多地使用深度传感器信息和深度图来分割图像和描述特征,并创建体素指标【398】;2D 纹理度量在三维空间中表示;3D 深度感测方法激增,增加了高分辨率图像和高动态范围(HDR)图像的使用,以提高特征精确度;更大的位深度和彩色图像的准确性允许有价值的基于颜色的度量和计算成像。增强的处理能力和廉价、充足的内存在低成本计算平台上处理更大的图像。使用二进制模式的更快更好的特征描述符已经被开发出来,并使用汉明距离快速匹配,例如 Alahi 等人的 FREAK[131]和 Rublee 等人的 ORB[131]。多模态和多变量描述符由具有其他传感器信息的图像特征组成,例如加速度计和位置传感器。

当存在足够的计算和存储容量来执行旧方法时,未来的计算研究甚至可能会回到起点,例如使用并行和固定功能硬件方法实时进行跨多个尺度和几何视角的相关。这将消除当前对局部特征的小不变集的一些关注,并允许协同地一起使用几种方法。因此,这一领域的发展历史值得了解,因为它可能会以不同的技术形式重演。

由于没有单一的解决方案来获得正确的特性度量集,所以随着时间的推移开发的所有方法今天都有应用,并且仍然在使用。

结构分析

最基本的度量之一是纹理,它是对图像通道表面的描述,例如颜色强度,就像高程图或地形图一样。纹理可以在全局或局部区域内表达。纹理可以通过一个区域内相邻像素间的统计关系来局部地表达*,也可以通过一幅图像或区域内像素值的汇总关系来全局地表达*。有关涵盖各种纹理方法的文献示例,请参见参考文献[13,59,60,310,16–20,312,313]。**

**根据 Gonzalez [4],在图像分析中有三种基本的纹理类别:统计的、结构的和光谱的。统计测量包括直方图、散点图和 SDM。结构技术更关注图像中的定位模式或结构基元,如平行线、规则模式等。这些技术在[11,1,5,8]中有描述。频谱纹理来源于分析数据的频域表示。也就是说,使用快速傅立叶变换来创建数据的频域图像,然后可以使用傅立叶技术对其进行分析。

直方图揭示了整体像素值分布,但没有说明空间关系。散点图本质上是二维直方图,不揭示任何空间关系。参考文献[315]给出了一个很好的调查结果。

纹理已被用于实现几个目标:

  1. 基于纹理的分割(在第二章的中讨论)。
  2. 图像区域的纹理分析(包含在本章中)。
  3. 纹理合成,使用合成纹理创建图像(本书未涉及)。

在计算机视觉中,纹理度量被设计成通过使用离散方法来描述纹理的感知属性。例如,纹理已被描述为感知的几个属性,包括:

  • 对比
  • 颜色
  • 粗糙
  • 方向性
  • 线状的
  • 粗糙
  • 坚定不移
  • 分组
  • 分割

如果可以识别纹理,则可以基于纹理分割图像区域,并且可以使用形状度量(如面积、周长和质心)来测量相应的区域(将在第六章的中讨论)。第二章介绍了分割方法,其中一些是基于纹理的。对于计算机视觉应用,可以识别和比较分割的纹理区域。局部区域的微观纹理,例如在第六章中详细讨论的 LBP,可以用作特征描述符,而宏观纹理可以用于描述一个区域的同质纹理,例如一个湖或一片草地,因此可以自然地应用于图像分割。总之,纹理可用于描述全局图像内容、图像区域内容和局部描述符区域内容。特征描述符和纹理度量之间的区别可能很小。

与过去的计算和存储能力相结合的传感器限制已经将纹理度量的发展限制为主要是 2D 灰度度量。然而,随着普及计算摄影技术的进步,每台相机都提供了更高分辨率的图像、更高的帧速率、更深的像素、深度成像、更多的内存和更快的计算,我们可以预计纹理度量将会取得相应的新进展。

这里是一个简单的纹理度量的历史调查。

20 世纪 50 年代到 70 年代——全局统一纹理度量

自相关或互相关由 Kaiser[34]于 1955 年开发,作为一种在航空摄影中寻找随机性和重复模式特征的方法,其中自相关是一种将信号或图像与其自身的时移版本相关联的统计方法,产生一种计算简单的方法来分析地面覆盖和结构。

Bajcsy[33]于 1973 年开发了傅立叶频谱方法,在频域中使用各种类型的滤波器来分离各种类型的重复特征作为纹理。

Haralick 于 1973 年开发并使用了灰度级空间相关性矩阵、GLCMs、SDMs 或共生矩阵[6],以及 SDMs 的一组汇总统计指标,以帮助对纹理进行数字分类。一些(但不是全部)汇总指标被证明是有用的;然而,SDM 的分析和新 SDM 指标的开发仍在继续,包括空间区域内 SDM 数据的 2D 可视化和过滤等方法[26],以及添加新的 SDM 统计指标,其中一些将在本章中讨论。

20 世纪 80 年代—基于结构和模型的纹理分类方法

虽然早期的工作集中在描述相邻像素的小核之间的统计度量的微观纹理,但是宏观纹理被开发来处理更大区域内的纹理结构。K. Laws 在 1979 年和 1980 年开发了纹理能量检测方法【35–37】,以及纹理分类器,它们可以被认为是一些现代分类器概念的先驱。Laws 方法可以被实现为并行流水线中的纹理分类器,该并行流水线具有通过高斯滤波图像上的一组卷积掩模来获取梯度以隔离纹理微观特征的阶段,随后是处理噪声的高斯平滑阶段,随后是来自组合梯度的能量计算,随后是匹配纹理描述符的分类器。

特征滤波器由 Ade【38】于 1983 年开发,作为梯度法或能量法和 SDMs 的替代方案;使用局部 3×3 像素区域强度的协方差矩阵表示来实现特征滤波器,这允许基于协方差矩阵中的特征向量内的方差进行纹理分析和聚合到结构中。

结构方法由 Davis[39]于 1979 年开发,旨在关注纹理的总体结构,而不是图元或微观纹理特征。霍夫变换于 1972 年由杜达和哈特[228]发明,作为一种寻找直线和曲线的方法,1988 年被艾希曼和卡斯帕里[40]用于提供不变纹理描述。

分形方法和马尔可夫随机场方法被开发成纹理描述符,虽然这些方法对于纹理合成可能是好的,但是它们不能很好地映射到纹理分类,因为分形和马尔可夫随机场方法都使用随机场,因此当应用到非随机的真实世界纹理时存在局限性。

20 世纪 90 年代—纹理度量的优化和改进

在 1993 年,Lam 和 Ip[41,47]使用金字塔分割方法来实现空间不变性,其中使用 Voronoi 多边形镶嵌和不规则金字塔分割技术在取自二进制阈值图像的 Q 点周围将图像分割成同质区域;为每个多边形计算五个形状描述符:面积、周长、圆度、方向和长/短轴比,组合成纹理描述符。

局部二元模式 (LBP )于 1994 年由 Ojala 等人【173】开发,作为一种编码模式和对比度以定义纹理的新方法【43,44,15,16】;自那以后,数百名研究人员在理论基础、2D 和 3D 推广、面部检测中使用的特定领域兴趣点描述符以及运动分析的时空应用等领域对 LBP 文献进行了补充[42]。LBP 的研究在这个时候仍然相当活跃。LBP 在第六章中有详细介绍。强大的 LBP 方法有许多应用,如纹理度量、特征描述符和图像处理算子,后者在第二章中讨论过。

2000 年到今天—更健壮的不变纹理度量和 3D 纹理

特征度量研究正在研究对尺度、旋转、光照、透视等不变的纹理度量,以接近人类纹理辨别的能力。实际上,纹理在某些圈子里被交替用作特征描述符。Pun 和 Lee[45]的工作是开发旋转不变纹理度量以及尺度不变性的一个例子。不变性属性在第五章的通用分类法中讨论。

正在开发的下一波度量标准将越来越多地利用 3D 深度信息。一个例子是由 Spence [46]在 2003 年开发的表面形状度量,其提供了用于仿射不变纹理识别和具有比例和透视不变性的纹理描述的凹凸贴图类型度量。第六章还讨论了一些相关的 3D 特征描述符。

统计方法

统计方法的主题是广泛的,我们只能让读者参考我们选择的文献。一个有用且全面的资源是在线的 NIST 国家科学技术研究所工程统计手册, 1 包括示例和附加资源和工具的链接。

可以在任何时候利用统计方法来生成新颖的特征度量。任何特征,例如像素值或局部区域梯度,都可以通过任何数量的方法统计地表示。简单的方法,如图 3-1 所示的直方图,是非常宝贵的。在第二章(图 2-22)所示的直方图中,可以很容易地看到最小值、最大值和平均值等基本统计数据。我们在这里调查统计方法在计算机视觉中的几种应用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-1 。带有线性刻度值(黑色)和对数刻度值(灰色)的直方图,说明相同的数据如何根据图表刻度进行不同的解释

纹理区域度量

现在我们来详细看看基于纹理的特征描述的具体度量。纹理是研究最多的度量标准之一。可以从表面的角度来考虑,例如,与丝绸面料相比,粗麻布包。有许多可能的结构关系和签名可以在一系列领域中设计出来,新的结构关系和签名一直在开发中。在本节中,我们将介绍一些最常用的计算纹理度量的方法:

  • 边缘度量
  • 交叉相关
  • 傅立叶光谱特征
  • 共现矩阵,哈拉里克特征,扩展 SDM 特征
  • 定律纹理度量
  • 镶嵌
  • 局部二进制模式
  • 动态纹理

在一幅图像中,每个图像区域都有一个纹理签名,其中纹理被定义为该区域中的一个公共结构和图案。纹理特征可以是位置和强度关系的函数,如在空间域中,或者基于一些其他函数基和特征域中的比较,如使用傅立叶方法的频率空间。

纹理度量可用于分割和描述区域。基于纹理同质性来区分区域,因此,纹理作为区域分割的方法非常有效。纹理也是一种很好的特征描述度量,因此它对于特征检测、匹配和跟踪很有用。

附录 B 包含几个真实情况数据集,带有用于计算纹理度量的示例图像,包括哥伦比亚大学的 CUReT 反射率和纹理数据库。一些关键论文描述了针对 CUReT 数据集[21,48–50]使用的指标,包括作为双向反射分布函数(BRDF)和双向纹理函数(BTF)的表面外观。

这些指标旨在测量纹理作为方向和照明的函数,以捕捉每个表面的粗略细节和精细细节。如果表面纹理包含在单个像素或像素组中不明显的重要子像素细节,BRDF 反射度量可以捕捉粗略反射细节。如果表面包含逐像素的差异细节,BTF 会捕捉到精细纹理细节。

边缘度量

边缘、线条、轮廓或脊是基本的纹理特征[316,317]。仅仅通过分析图像中区域的边缘结构,就可以设计出各种简单的度量。文献中有许多边缘度量,这里举例说明了一些。

计算边缘可以被认为是从兴趣点到边缘的连续方法,其中兴趣点可以是梯度最大值或最小值处的单个像素,几个连接的梯度最大值像素组成角、脊线段或轮廓。综上所述,梯度点是退化边缘,边缘是连通梯度点的集合。

可以对图像区域局部或全局计算边缘度量,如下所示:

  • 计算每个像素处的梯度 g(d) ,选择适当的梯度算子 g() 并选择适当的内核大小或距离 d 来瞄准微观或宏观边缘特征。
  • 距离 d 或内核大小可以变化以实现不同的度量;许多研究人员已经使用了 3x3 内核。
  • 通过将每个边缘的宁滨梯度方向计算成直方图来计算边缘方向;例如,在 0 度、45 度、90 度、135 度、180 度、225 度、270 度总共使用 8 个 45 度角度增量仓。

可以使用其他几种方法来计算边缘统计数据。这里显示了代表性的方法;参见 Shapiro 和 Stockton [517]的标准参考。

边缘密度

边缘密度可以表示为一个区域中梯度幅度 g m 的平均值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边缘对比度

边缘对比度可以表示为梯度幅度的平均值与该区域中最大可能像素值的比值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边缘熵

边缘随机性可以表示为梯度幅度的香农熵的度量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边缘方向性

边缘方向性可以表示为梯度方向的香农熵的度量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边缘线性度

边缘线性使用梯度方向测量共线边缘对的共现,如图 3-2 中边缘 a-b 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-2 。用于说明边缘度量关系的边缘 a、b、c、d 的梯度方向

边缘周期性

边缘周期性使用梯度方向测量同向边缘对的共现,如图 3-2 中的边缘 a–c 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边缘尺寸

边缘尺寸使用梯度方向测量方向相反的边缘对的共现,如图 3-2 中的边缘 a-d 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边缘图元总长度

边缘图元长度测量沿同一方向的所有梯度幅度的总长度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

互相关和自相关

互相关【34】是显示两个信号之间具有时间位移的相似性的度量。自相关 是信号与其自身的时间位移版本的互相关。在关于信号处理的文献中,互相关也被称为滑动内积或滑动点积。通常,这种方法用于在大信号中搜索较小的模式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用维纳-钦钦定理作为一般互相关定理的特例,互相关可以简单地写成函数 f v 的绝对平方的傅立叶变换,如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在计算机视觉中,用于相关的特征可以是像素或梯度幅度的 1D 线、2D 像素区域或 3D 体素体积区域。通过使用互相关导数比较来自当前图像帧和先前图像帧的特征,我们获得了有用的纹理变化相关度量。

通过将图像的位移版本与其自身进行比较,我们获得了一组局部或全局自相关纹理度量。自相关可用于检测图像中的重复图案或纹理,也可用于根据精细或粗糙来描述纹理,其中粗糙纹理比精细纹理显示更慢的自相关函数下降。参见第六章和图 6-20 中的相关性讨论。

傅立叶频谱、小波和基签名

诸如 FFT 之类的基变换将信号分解成一组基向量,根据这些基向量可以合成或重构信号。将这组基向量视为一个频谱是理解图像纹理和创建签名的一种有价值的方法。本章讨论了几种基空间,包括傅立叶、哈尔、小波和泽尼克。

虽然计算成本高且占用大量内存,但快速傅立叶变换(FFT) 通常用于产生频谱签名。FFT 频谱对许多问题都很有用。根据变换的基数,计算通常限于固定大小的矩形区域(见布拉采维尔[227])。

如图图 3-3 所示,傅里叶频谱图揭示了明确的图像特征,有助于图像的纹理和统计分析。例如,图 3-10 显示了 LBP 模式度量的 FFT 频谱。注意傅立叶谱有很多有价值的属性,比如旋转不变性,如图图 3-3 所示,其中纹理图像旋转 90 度,对应的 FFT 谱表现出相同的属性,只是旋转了 90 度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-3 。(顶行)带纹理的示例图像。(底行)在相应的 FFT 功率谱中揭示的纹理和形状信息

小波【227】类似于傅立叶方法,并且在纹理分析中变得越来越流行【311】,这将在基础空间章节中讨论。

请注意,作为纹理度量或描述符的 FFT 频谱是旋转不变的,如图 3-3 的左下图像所示。可以在矩形 2D 区域上获取 FFT 频谱。此外,诸如围绕物体形状的周界所取的形状的环形或笛卡尔坐标的 1D 阵列可以被用作 FFT 的输入和 FFT 描述符形状度量。

共现矩阵,Haralick 特征

Haralick[6]提出了一组从相邻像素之间的方向差异计算的 2D 纹理度量,称为共生矩阵、或空间依赖矩阵 (SDM),或灰度共生矩阵(GLCM) 。通过评估在 x、y、对角线 x 和对角线 y 方向上相邻像素之间的差异来计算一组完整的四(4)个矩阵,如图 3-4 中的所示,并进一步用图 3-5 中的所示的 4x4 图像和相应的同现表进行说明。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-4 。四个不同的矢量用于 Haralick 纹理特征,其中绘制图像中每个像素的差异以揭示图像的纹理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-5 。(a) 4x4 像素图像,灰度值在 0-3 范围内。(b)对应于 SDM 表的最近邻角。©(d)(e)(f)每个角度的邻域计数

SDM 作为纹理度量的一个好处是它很容易在图像上一次通过就计算出来。SDM 对于旋转也是相当不变的,这通常是难以获得的鲁棒性属性。在分割区域内或兴趣点周围,SDM 图本身可以是有价值的纹理度量,因此对于纹理分析、特征描述、噪声检测和模式匹配是有用的。

例如,如果一台摄像机有数字电路读出噪声,只有在沿 x 方向从传感器中一次扫描出一条线时,它才会出现在 x 方向的 SDM 中,因此使用 SDM 信息将使智能传感器处理能够消除读出噪声。然而,应该注意的是,SDM 指标并不总是单独有用,应该用附加的特征信息来限定。SDM 主要关注空间关系,即空间方位和出现频率。因此,它主要是一种统计方法。

在四个方位计算 SDM,如图图 3-4 所示。由于 SDM 只涉及相邻的像素对,这四种计算涵盖了所有可能的空间方向。通过使用延伸到 5×5、7×7、9×9 和其他维度的成形核,SDM 可以延伸到 2×2 区域之外。

一个空间相关性矩阵基本上是一个给定像素值与另一个像素值相邻出现的次数的计数。图 3-5 说明了这个概念。例如,假设我们有一个 8 位图像(0。255).如果 SDM 显示像素值 x 频繁出现在范围 x +1 到 x -1 内的像素附近,那么我们会说在该强度下存在“平滑”纹理。然而,如果像素值 x 频繁出现在范围 x +70 到 x -70 的像素附近,我们可以说在该强度下有相当多的对比度,如果不是噪声的话。

使用 SDMs 的一个关键点是,对小图像区域和大图像区域采样时获得的不同结果保持敏感。通过在更小的区域(比如 64x64 像素)内对 SDM 进行采样,SDMs 中原本模糊不清的细节将得以展现。样本图像区域越大,填充的 SDM 就越多。采集的样本越多,SDM 图像中的细节就越有可能被模糊。实际上,使用 SDMs 时,较小的区域(即 64x64 像素)是一个很好的起点,因为较小的区域计算速度更快,并且会揭示很多关于局部纹理的信息。

图 3-6 中显示了 Haralick 指标。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-6 。哈拉里克纹理度量。(图片由英特尔出版社授权使用,来自构建智能系统)

一些研究人员扩展了 SDM 的统计特征,以增加更有用的度量[26],许多研究人员将 SDMs 应用于 3D 体积数据,取得了良好的结果[25]。

扩展的 SDM 指标

作者[26]开发了哈拉里克指标的扩展,主要是受图 3-7 所示的 SDM 图的视觉研究的启发。扩展 SDM 度量的应用包括纹理分析、数据可视化和图像识别。SDMs 的视觉图本身就是像素强度关系的有价值的指标,值得与直方图一起使用来了解数据。

扩展的 SDM 度量包括质心、总覆盖范围、低频覆盖范围、总功率、相对功率、轨迹长度、轨迹平均密度、面元平均密度、包容度、线性度和线性强度。扩展的 SDM 指标捕捉关键信息,最好通过查看 SDM 图来观察。在许多情况下,扩展 SDM 度量被计算四次,每个 SDM 方向 0、45、90 和 135 度一次,如图 3-5 所示。

从图像的角度来看,SDM 本身非常有趣和有用。在查看和理解 SDM 之后,许多建议的纹理度量是显而易见的;其他的既不明显也不明显有用,直到对 SDM 图像情节的视觉解释有了基本的了解。接下来,我们调查以下内容:

  • **显示四个方向 SDM 图的 SDM 示例:**一套完整的 SDM 将包含四个不同的图,每个图对应一个方向。解读 SDM 图直观地揭示了有用的信息。例如,具有平滑纹理的图像将产生同现值的窄对角线带;具有宽纹理变化的图像将产生更大范围的值;有噪声的图像将产生在极值处具有异常值的共生矩阵。在某些情况下,噪声可能只分布在图像的一个轴上——可能分布在各行或 x 轴上,这可能表示从传感器中读取每一行时的传感器读出噪声,这表明视觉流水线中有一个面向行或线的图像准备阶段来补偿摄像机。
  • **扩展的 SDM 纹理度量:**在 Haralick 提出的度量基础上增加了 12 个其他有用的统计度量。
  • 一些代码片段:这些说明了扩展的 SDM 计算,完整的源代码显示在附录 D 中。

在图 3-7 中,可以很容易地看到几个扩展的 SDM 度量,包括包容度和轨迹平均密度。注意,右边的图像没有大量的大纲图强度点或噪声(良好的包容性);大部分能量集中在对角线上(紧密轨迹),显示了一组相当平滑的图像像素过渡和纹理,而左侧图像显示了更大范围的亮度值。对于某些图像,较宽的范围可能是噪声在整个光谱中传播(较差的抑制),显示较宽的能量带和相邻像素之间的对比度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-7 。在对应于顶行中图像的底行中的 64 个面元上计算的一对图像同现矩阵图(x 轴图)

度量 1:质心

为了计算质心,对于每个 SDM 仓 p(i,j) ,仓的计数乘以 x,y 的仓坐标,并且总仓计数被求和。质心计算被加权以基于实际的箱计数来计算质心,而不是仅基于箱数据的存在来确定宁滨区域的中心的未加权的“二进制”方法。结果是 SDM 面元上的加权质心。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 2:总覆盖率

这是对宁滨分布范围的一种度量。小的覆盖百分比将指示具有较少灰度级的图像,这在某些情况下对应于图像平滑度。例如,随机图像将具有非常大的覆盖数,因为所有或大多数 SDM 箱将被命中。覆盖特征度量(2,3,4)与下面建议的线性特征(11,12)一起,可以给出图像平滑度的指示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 3:低频覆盖范围

对于许多图像,SDM 中面元计数小于阈值(例如 3)的任何面元都可以被认为是噪声。低频覆盖度量或噪声度量提供了多少宁滨在该范围内的概念。随着图像区域的样本区域的增加,这可能尤其如此。对于整个图像,阈值 3 已经被证明对于确定面元是否包含数据范围 0-255 的噪声是有用的,并且在较小的局部内核区域上使用 SDM 可以使用所有的值,而不需要阈值处理。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 4:修正的覆盖率

校正覆盖率是去除噪声后的总覆盖率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 5:总功率

功率度量提供了对图像中相邻像素之间的摆动值的测量,并在四个方向上进行计算。平滑图像的幂数值较低,因为像素之间的差异较小。总功率和相对功率是相互关联的,相对功率是使用总填充仓(z)和总差分功率(t)计算的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 6:相对功率

使用非空的 SDM 频段基于缩放的总功率来计算相对功率,而总功率使用所有频段。

*外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 7:轨迹平均密度

对于许多图像,在面元轴周围有一个高强度宁滨的“轨迹”区域(轨迹轴是相邻像素具有相同值 x=y 的地方),对应于从 SDM 图左上角画出的对角线。轨迹区域周围的聚集程度表示图像的平滑程度。来自噪声图像的宁滨将被散射,与轨迹区域几乎没有关系,而更清晰的图像将显示以轨迹为中心的图案。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基因座平均密度是基因座区域内 bin 值的平均值。该轨迹是中心对角线周围的区域,在穿过每个 SDM 中心的同一条线( x=y )两侧的 7 个像素带内。然而,数字 7 并不特别,但根据经验,它只是给出了整个图像所需特征的良好指示。该特征有利于指示平滑度。

指标 8:轨迹长度

轨迹长度测量对角线周围的轨迹浓度范围。位点长度的算法是对位点区域中的容器进行简单计数;已经发现关于该轨迹的 7 个像素的阈值带是有用的。

y=length=0;
while (y < 256) {
   x=count=0;
   while (x < 256) {
      n = |y-x|;
      if (p[i,j] == 0) && (n < 7) count++;
      x++;
   }
   if (!count) length++;
   y++;
}

指标 9:容器平均密度

这只是非空箱的平均箱数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标 10:遏制

包容度用于衡量 SDM 的宁滨在 SDM 的边界或边内的包容程度,有四个边或边界,例如,假设数据范围[0…255],沿着行 0 和 255 以及沿着列 0 和 255 有包含边界。典型地,容器计数 m 是 256 个容器,或者可能更少,例如 64 个。为了测量包容度,基本上检查 SDM 箱的周边以查看是否发生了任何宁滨,其中 SDM 的周边区域箱表示与某个其他值相邻的极值。图 3-7 中的左图比右图的包含度低,尤其是低值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果经常遇到极值,这可能表示某种溢出情况,如数值溢出、传感器饱和或噪声。宁滨未被加权处理。高包含数表示所有宁滨都发生在 SDM 的边界内。较低的数字表示有一些出血。这一特征在 SDM 图中看起来非常好。

公制 11。线性度

线性特性可能仅在 SDM 的单个方向上可见,或者通过比较 SDM 可见。例如,图 3-8 中的图像揭示了 SDM 组中的一些线性变化。这与使用的图像传感器(旧的管式摄像机)一致。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-8 。旧管式摄像机的 SDMs 显示传感器的线性变化,包括全套 0、45、90 和 135 度 SDM。(公共领域图片来自国家档案馆)

指标 12:线性强度

线性强度的算法如指标 11 所示。如果在给定的 SDM 角存在任何线性,则该角度的线性强度和线性将比其他 SDM 角相对更高(表 3-1 )。

表 3-1 。来自的扩展 SDM 指标图 3-8

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

定律纹理度量

Laws metrics【52】为纹理分析提供了一种结构方法,使用一组掩蔽核来测量固定大小的局部区域内的纹理能量或变化,类似于 2x2 区域 SDM 方法,但使用更大的像素区域来实现不同的度量。

基本法则算法包括使用几个基本步骤,根据局部能量将图像中的每个像素分类到纹理中:

  1. 从每个像素中减去来自每个核邻域的平均强度,以补偿光照变化。
  2. 使用一组核在每个像素处对图像进行卷积,每个核求和为零,然后对结果求和以获得每个核窗口上的绝对平均值。
  3. 测量卷积图像和原始图像之间的差异,揭示能量度量的规律。

Laws 定义了一组九个可分离的核来产生一组纹理区域能量度量,并且在实践中一些核比其他核工作得更好。内核是通过矩阵乘法由一组四个矢量掩码 L5、E5、S5 和 R5 组成的,如下所述。内核最初被定义为 5x5 掩码,但也使用了 3x3 近似值,如下所示。

5x5 form
L5      Level Detector          [ 1      4      6        4      1 ]
E5      Edge Detector           [-1     -2      0        2      1 ]
S5      Spot Detector           [-1      0      2        0      1 ]
R5      Ripple Detector         [ 1     -4      6       -4      1 ]

3x3 approximations of 5x5 form
L3      Level Detector          [ 1     2        1 ]
E3      Edge Detector           [-1     0        1 ]
S3      Spot Detector           [-1     2       -1 ]
R3      Ripple Detector         [*NOTE: cannot be reproduced in 3x3 form]

为了创建 2D 掩码,向量 Ln、En、Sn 和 Rn (如上所示)作为可分离的对被卷积在一起成为核;几个例子显示在图 3-9 中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-9 。L3E3 内核组成示例

请注意,Laws 纹理度量已扩展到 3D,用于体积纹理分析。[51][52]

LBP 局部二元模式

与纹理分析的各种结构和统计方法相比,LBP 算子[18,58]将每个区域周围的局部纹理计算为 LBP 二进制代码,或微纹理,允许简单的微纹理比较,以基于相似的微纹理分割区域。(详见第六章中关于 LBP 的详细论述和参考文献,尤其是图 6-6 。)LBP 操作符[173]用途广泛,易于计算,占用内存量低,可用于纹理分析、兴趣点和特征描述。因此,LBP 算子在本书的几个地方都有讨论。

如图 3-10 所示,由本身旋转不变的可能 LBP 的子集组成的 LBP 算子的统一集合可以被分箱到直方图中,并且相应的分箱值作为 1D 阵列通过 FFT 以创建 FFT 谱,这产生了具有强旋转不变性的稳健度量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-10 。(左)纹理图像。(中间)LBP 直方图。(右)直方图的 FFT 频谱图揭示了 LBP 直方图的旋转不变性。注意,虽然旋转图像的直方图宁滨看起来不同,但是 FFT 频谱看起来几乎相同。(图像来自使用局部二进制模式的计算机视觉的斯普林格出版社伦敦有限公司)

动态纹理

动态纹理是一个概念,用于描述和跟踪纹理区域,因为它们在帧与帧之间动态变化和变形[53,13,15,14]。例如,动态纹理可以是运动中的纹理,如海浪、烟雾、风中的树叶、火、面部表情、手势和姿势。通常在图像帧的时空集合中跟踪这些变化,其中连续的帧被堆叠到体积中作为一组进行分析。这三个维度是 XY 帧尺寸,Z 维度是从连续帧 n-2,n-1,n. 的堆叠中导出的

与动态纹理研究密切相关的领域是活动识别(在第六章中讨论),其中特征是组成活动的移动对象的一部分——例如,对手臂和腿部的特征进行逐帧跟踪,以确定运动或活动的类型,如行走或跑步。活动识别和动态纹理之间的一个相似之处是特征或纹理随着时间逐帧改变,因此对于活动识别和动态纹理分析,跟踪特征和纹理通常需要时空方法,该方法涉及具有过去和当前帧的历史缓冲区的数据结构,其提供数据的体积表示。

例如,VLBP 和 LBP-TOP(在第六章的中讨论)提供了动态纹理分析的方法,通过使用构造成在体积结构中的三维上操作的 LBP,其中体积包含堆叠到体积中的图像帧 n-2、n-1 和 n

统计区域度量

根据像素的统计度量来描述纹理是一种常见且直观的方法。通常,一个简单的区域直方图就足以很好地描述许多应用的纹理。直方图也有许多变化,这有助于广泛的纹理分析。因此,这是检验直方图方法的好时机。由于统计数学是一个广阔的领域,这里只能介绍题目,把讨论分为图像矩特征和点度量特征。

图像瞬间特征

图像矩 [518,4]是标量,类似于常见的统计测量,如均值、方差、偏斜和峰度。矩非常适合于描述多边形形状特征和一般的特征度量信息,例如梯度分布。图像矩可以基于标量点值或基函数,如傅立叶或 Zernike 方法,稍后在基空间部分讨论。

矩可以描述函数在基空间上的投影——例如,傅立叶变换将函数投影到调和函数的基上。注意,在形状描述的上下文中,1D 矩和 2D 矩之间存在概念上的关系。例如,1D 平均值对应于 2D 质心,1D 最小值和最大值对应于 2D 长轴和短轴。1D 最小值和最大值也对应于 2D 多边形形状周围的 2D 边界框(参见图 6-29 )。

在这项工作中,我们将图像矩分类在分类法中的术语多边形形状描述符下(参见第五章)。关于用于 2D 形状描述的几个图像矩的细节将在第六章的“斑点和物体的物体形状度量中介绍。

1D 分布和 2D 图像背景下的矩的共同属性包括:

  • 第 0 阶矩是平均值或 2D 质心。
  • 中心矩描述了平均值或 2D 质心附近的变化。
  • 1 st 阶中心矩包含关于 2D 面积、质心和大小的信息。
  • 2 阶中心矩与方差相关并测量 2D 椭圆形状。
  • 3 rd 阶中心矩提供了关于 2D 形状或偏斜度的对称信息。
  • 4 中心矩测量 2D 分布为高、矮、瘦、矮或胖。
  • 可以设计更高级别的矩,并由矩比组成,例如协方差。

矩可用于创建对若干鲁棒性标准不变的特征描述符,例如比例、旋转和仿射变化。稳健性和不变性标准的分类在第五章中提供。对于形状描述,在 1961 年,胡开发了用于字符识别工作的七个平面矩的理论集,其使用不变代数导出,在缩放、平移和旋转下是不变的[7]。一些研究者扩展了胡的工作。关于这个主题的一个很好的资源是 Jan Flusser 等人的【模式识别中的矩和不变矩

点度量特征

点度量可用于以下目的:(1)特征描述,(2)分析和可视化,(3)阈值和分割,以及(4)通过可编程 LUT 函数进行图像处理(在第二章中讨论)。点度量经常被忽略。使用点度量来理解图像数据的结构是设计图像预处理流水线以准备用于特征分析的图像的第一个必要步骤。同样,从直方图分析开始,如图图 3-1 和图 3-11 所示。基本点度量可以直观地确定,例如最小值、最大值、峰值和谷值。使用颜色查找表对图像中的直方图区域进行着色,很容易对数据可视化的直方图区域进行假着色。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-11 。并排的两个图像直方图,用于分析

以下是统计点数指标的汇总:

  • 分位数、中值、重新标度:通过将像素值分类到有序列表中,如在直方图过程中,可以找到各种四分位数,包括中值。同样,可以从列表中重新调整像素,并用于像素重映射功能(如第二章所述)。
  • Mix,max,mode :最小值和最大值,以及直方图分析,可用于指导图像预处理,以设计阈值方法,从数据中去除异常值。众数是像素排序列表中最常见的像素值。
  • 平均值、调和平均值和几何平均值:平均值的各种公式有助于了解主要的光照水平(暗或亮),以指导图像预处理,从而增强图像以供进一步分析。
  • 标准差、偏斜度和峰度:这些矩可以通过查看 SDM 图来可视化。
  • 相关:这个主题在本章前面的互相关和自相关中已经讨论过了。
  • 方差,协方差:方差度量提供了像素分布的信息,协方差可以用来比较两幅图像之间的方差。方差在一定程度上可以在 SDM 中被可视化,也如本章所示。
  • 比率和多元指标:点指标本身可能是有用的,但是使用简单点指标的多元组合或比率也可能非常有用。根据应用的不同,比率本身形成了特征描述符的关键属性(如第六章所述)。例如,平均值:最小值,平均值:最大值,中值:平均值,面积:周长。

全局直方图

全局直方图处理整个图像。在许多情况下,通过全局直方图的图像匹配是简单有效的,使用距离函数,如 SSD。如图图 3-12 所示,直方图揭示了像素强度的定量信息,但不是结构信息。该区域中的所有像素都对直方图有贡献,与任何特定点或特征的距离无关。正如在第二章中所讨论的,直方图本身是直方图修改方法的基础,允许根据需要拉伸、压缩或剪裁直方图的形状,然后用作反向查找表来重新排列图像像素强度级别。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-12 。不同图像的 2D 直方图形状

局部区域直方图

直方图也可以在像素的局部区域上计算,例如矩形或多边形,以及在特征属性集合上计算,例如梯度方向和幅度或其他光谱。为了创建多边形区域直方图特征描述符,首先可以使用形态学分割一个区域,以在感兴趣的区域周围创建屏蔽形状,然后只有被屏蔽的像素被用于直方图。

像素强度值的局部直方图可用作特征描述符的属性,也可用作将像素值从一个直方图形状重新映射到另一个直方图形状的基础,如第二章中的所述,通过重新整形直方图并相应地重新处理图像。第六章讨论了一系列特征描述符,如 SIFT、SURF 和 LBP,它们利用特征直方图来绑定梯度大小和方向等属性。

散点图、三维直方图

散点图 可用于可视化两个图像数据集之间的关系或相似性,用于图像分析、模式识别和特征描述。可以在散点图中比较两个图像或图像区域的像素强度,以显示这些值的对应程度。散点图可以在有限的平移不变性下用于特征和模式匹配,但是它们对于仿射、缩放或旋转不变性不太有用。图 3-13 显示了一个使用散点图在图像中寻找图案的例子,目标图案在不同的偏移量下进行比较,偏移量越小,对应性越好。一般来说,更紧密的峰特征组表明强的结构或模式对应性;数据越分散,对应性越弱。模式偏移移动得越远,对应性就越低。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-13 。图像和目标图案在不同位移下的散点图,呈现为 3D 直方图。顶行:(左)图像,(中)图像中的目标图案,(右)图案本身的 SDM。中间一行:(左)目标和图像偏移 1,1(右)目标和图像偏移 8,8,底行:(左)目标和图像偏移 16,16,(右)目标和图像偏移 32,32

注意,通过分析峰值特征与低频特征的比较,可以将对应关系可视化。图 3-14 显示了两幅独立图像的散点图。沿着轴的峰的缺乏和数据中扩散的存在显示了低的结构或模式对应性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-14 。两个不同图像的散点图显示沿对角线的低对应关系

可以从两幅图像逐个像素地制作散点图,其中像素对形成用于散点图的笛卡尔坐标,使用图像 1 的像素强度作为 x 坐标,图像 2 的像素强度作为 y 坐标,然后像素对对应的计数被装入散点图中。为了可视化,每个坐标的面元计数可以是假彩色的。图 3-15 提供了一些示例代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-15 。代码说明宁滨 8 位数据的散点图比较两个图像的像素和宁滨的结果绘图

对于特征检测,如图 3-12 所示,散点图可以在粗平移步骤揭示足够的对应关系,以减少某些特征检测和模式匹配应用中对图像金字塔的需求。例如,模式搜索和比较的步长可以通过跨越或跳过像素来优化,以 8 或 16 个像素的间隔搜索图像,而不是在每个像素搜索,从而减少特征检测时间。此外,散点图数据可以首先被阈值化为二进制图像,被屏蔽以仅显示峰值,被转换为位向量,并使用汉明距离测量对应性以提高性能。

多分辨率、多尺度直方图

多分辨率直方图【10】已用于纹理分析【54】,也用于特征识别【55】。第六章的中描述的 PHOG 描述符利用了特征光谱的多尺度直方图——在这种情况下,是梯度信息。注意,多分辨率直方图为特征描述提供了尺度不变性。对于纹理分析[54],使用图像金字塔构建多分辨率直方图,然后为每个金字塔等级创建直方图并连接在一起[10],这被称为*多分辨率直方图。*该直方图具有算法简单、快速计算、低存储需求、噪声容限以及跨空间和旋转变化的高可靠性的期望属性。参见图 3-16 。在 Zhao 和 Pietikainen [15]的方法中使用了金字塔的变体,采用了来自体积的多维金字塔图像集。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-16 。多分辨率直方图图像序列。注意,在试图创建更不变的特征描述符时,在各种高斯模糊水平上获取多个直方图

创建和使用多分辨率直方图的步骤如下:

  1. 对图像应用高斯滤波器。
  2. 创建一个图像金字塔。
  3. 在每个级别创建直方图。
  4. 使用 L1 范数归一化直方图。
  5. 创建累积直方图。
  6. 创建差异直方图或狗图像(金字塔等级之间的差异)。
  7. 使用差异直方图重新归一化直方图。
  8. 从该组差异直方图创建特征向量。
  9. 使用 L1 范数作为直方图之间比较的距离函数。

径向直方图

对于某些应用,使用源自形状质心的径向样本计算直方图可能很有价值[136][137]。为了做到这一点,从形心到形状的周边投射一条线,沿着每条线记录像素值,然后将其装入直方图。参见图 3-17 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-17 。径向直方图插图[136][137]

轮廓或边缘直方图

对象的周界或形状可以是形状直方图的基础,形状直方图包括被装入直方图的对象周界上的每个点的像素值。除了记录沿周界的实际像素值,将在第六章中讨论的链码直方图(CCH)显示了连接边缘点坐标处的周界方向。总之,CCH 和轮廓直方图提供了有用的形状信息。

基础空间度量

可以在基空间中描述特征,该基空间涉及将像素转换到备选基中,并在所选基中描述特征,例如频域。什么是基空间,什么是变换?考虑以 10 为基数的十进制系统和以 2 为基数的二进制系统。我们可以通过变换在两种数字系统之间转换数字。傅立叶变换使用正弦和余弦作为频率空间中的基函数,使得傅立叶变换可以在时域像素空间和频率空间之间移动像素。基空间矩描述了函数在基空间上的投影[518]—例如,傅立叶变换将函数投影到调和函数的基上。

基空间和变换对于广泛的应用是有用的,包括图像编码和重建、图像处理、特征描述和特征匹配。如图图 3-18 所示,图像表示和图像编码与特征描述密切相关。可以使用编码方法特征描述符 来描述图像,也可以从编码或特征描述符中重构图像。存在许多方法来从可选的基础空间编码重建图像,范围从无损 RLE 方法到有损 JPEG 方法;在第四章的中,我们提供了仅从局部特征描述符重建的图像的插图(参见图 4-16 和图 4-17 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-18 。基础空间选项的过度简化范围,显示特征集大小以及描述和重构的复杂性

如图 3-18 所示,可以想象一系列基空间,从具有无限复杂性的连续实函数或现场场景,到完整的光栅图像、JPEG 压缩图像、频域或其他基表示,下至局部特征描述符集。注意,从基础空间表示中提供和使用的细节越多,真实场景可以被识别或重建得越好。因此,折衷是在最佳基空间中找到最佳表示或描述,以使用最少量的计算和内存达到不变性和准确性目标。

变换和基空间是数学和信号处理中的一个广阔领域,在其他著作中有很好的介绍,因此这里我们只介绍对图像编码和特征描述有用的常见变换。我们描述了它们的主要优点和应用,并让读者在阅读过程中参考文献。参见图 3-19 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-19 。图像处理和计算机视觉中使用的各种基变换

由于我们在处理计算机视觉中的离散像素,我们主要对离散变换感兴趣,尤其是那些可以用优化软件或固定功能硬件加速的变换。然而,我们也讨论了一些积分变换方法,它们可能计算速度较慢,使用较少。以下是一个概述:

  • 全局或局部特征描述。可以使用图像的变换和基础空间表示作为全局特征描述符,允许场景和较大的对象被识别和比较。2D FFT 频谱只是一个例子,使用 SAD 或 SSD 距离度量来比较 FFT 频谱特征是很简单的。
  • 图像编码和压缩。许多变换已被证明对图像编码和图像压缩是有价值的。基本方法包括将图像或图像的块区域变换到另一个基空间。例如,将图像的块变换到傅立叶域允许图像区域被表示为正弦波和余弦波。然后,基于该区域中的能量数量,可以存储或编码数量减少的频率空间分量来表示图像。能量大部分包含在低频成分中,这可以在傅立叶功率谱中观察到,如图图 2-16 所示;高频分量可以被丢弃,而重要的低频分量可以被编码,因此在细节损失很小的情况下实现了一些图像压缩。存在许多新颖的图像编码方法,例如在图像金字塔上使用缩放拉普拉斯特征的基础。[318]

傅立叶描述

在第二章的中,在图像预处理和滤波的背景下,详细介绍了傅立叶变换族。然而,傅立叶频率分量也可以用于特征描述。使用前向傅立叶变换,图像被变换成频率分量,其可被选择性地用于描述变换的像素区域,通常用于图像编码和压缩,以及用于特征描述。

傅立叶描述符提供了几个不变性属性,如旋转和缩放。任何值数组都可以输入 FFT,以生成描述符,例如直方图。图 3-20 显示了一个常见的应用,描述了一个形状的圆度,并找到了长轴和短轴,作为正弦波的极值频率偏差。一个相关的应用是通过将谐波级数的 FFT 幅值拟合为笛卡尔空间中直线的极坐标来找到周长上的平坦线段的端点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-20 。围绕左侧圆的奇数形状多边形的傅立叶描述符

在图 3-20 中,一个复杂的波被绘制成一个深灰色的圆,围绕着一个正弦波函数或一个正圆展开。注意,围绕复函数的每个点的长度的傅立叶变换产生周期波的近似,并且复波的形状的傅立叶描述符是可见的。在图 6-29 中显示了另一个说明傅立叶描述符的例子。

沃尔什-哈达玛变换

哈达玛变换[4,9]使用一系列值为+1 或-1 的方波,非常适合数字信号处理。它易于优化,因为只需要有符号加法来对基向量求和,使得这种变换比正弦基变换快得多。谐波哈达玛级数和相应变换的基向量可以通过对沃尔什函数进行采样来生成,这构成了正交基集;因此,这种组合方法通常被称为沃尔什-哈达玛变换;参见图 3-21 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-21 。(左)沃尔什哈拉玛基集。(中心)哈尔基集。(右)倾斜基集

哈尔变换

哈尔变换[4,9]类似于傅立叶变换,除了基向量是类似于方波的哈尔特征,并且类似于小波。哈尔特征,由于它们的正交矩形形状,适合于检测具有接近恒定灰度级的垂直和水平图像特征。HAAR 特征不能很好地解决数据中的任何结构不连续,例如边缘和局部纹理;参见图 3-21 和 6-22 。

倾斜变换

倾斜变换[284],如图 3-21 所示,最初是为电视信号编码开发的,后来应用于一般图像编码[283,4]。除了基函数是一系列斜波、锯齿波或三角波之外,斜波变换类似于傅立叶变换。倾斜基向量适用于图像亮度随函数长度线性变化的应用。倾斜变换适用于数字系统中的离散优化。虽然主要的应用是图像编码和图像压缩,但是倾斜变换适合于特征描述。它与 Karhunen-Loeve 变换和 Slant-Hadamaard 变换密切相关[512]。

泽尼克多项式

1953 年诺贝尔奖获得者 Fritz Zernike 在研究衍射光栅的光学性质和光谱时,在寻求发展相衬显微镜的过程中设计了 Zernike 多项式。Zernike 多项式[272–274]已广泛用于人类视觉系统的光学分析和建模,以及激光手术等医疗程序的辅助。它们提供了一个精确的光波像差模型,表示为一组基多项式,如图 3-22 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-22 。前 18 个泽尼克模式。注意完美滤光器的各种像差;左上角的图像是完美的过滤器。(图片由东北州立大学的托马斯·萨尔蒙博士提供,经许可使用)

Zernike 多项式类似于可转向滤波器[388],也包含滤波器形状的定向基集,用于识别定向特征,并利用矩来创建描述符。Zernike 模型使用径向坐标和圆形区域,而不是许多其他特征描述方法中使用的矩形面片。

Zernike 方法广泛用于验光以模拟人眼像差。Zernike 矩也用于图像水印[278]和图像编码和重建[279,281]。Zernike 特征提供了比例和旋转不变性,这部分是由于径向坐标对称性和更高阶多项式内可能增加的细节级别。通过将 Zernike 基特征与目标图像中的圆形斑块进行比较,Zernike 矩可用于计算机视觉应用[276,277]。

存在计算泽尼克多项式和矩的快速方法[275,280,282],其利用基函数围绕 xy 轴的对称性来减少计算,并且还利用递归。

可控滤波器

可控滤波器在这里被松散地认为是基函数,可以用于滤波或特征描述。概念上类似于 Zernike 多项式,方向可调滤波器[388,400]通过在简单变换中合成所选基函数的方向可调或定向线性组合而构成,例如高斯滤波器的正交对和每个函数的定向版本。

许多类型的滤波函数可用作可控滤波器的基础[389,390]。滤波器变换是通过将滤波器组中的基函数组合在一起创建的,如图图 3-23 所示。为每个函数选择增益,对滤波器组中的所有滤波器求和,然后自适应地应用于图像。可以创建金字塔基函数集来进行规模运算。应用包括将定向可控滤波器与目标图像区域进行卷积,以确定滤波器响应强度、方向和相位。其他应用包括基于特征方向过滤图像、轮廓检测和特征描述。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-23 。(左)方向可调滤波器基本集显示了一阶高斯滤波器的八个方向。(右图)如何组合方向可调滤波器进行方向滤波。使用 ImageJ Fiji SteerableJ 插件生成的过滤图像,来自使用 Canny-Like 标准进行特征检测的可操纵过滤器的设计,M. Jacob,M. Unser,PAMI,2004 年

对于特征描述,有几种可行的方法,例如,将每个可控基函数与图像面片进行卷积。然后,来自所有方向可调滤波器的最高的一个或两个滤波器响应或矩可以被选择作为集序特征描述符,或者所有的滤波器响应可以被用作特征描述符。作为优化,可以首先在小块中确定兴趣点,并且可以使用兴趣点的方向来选择最接近兴趣点方向的一个或两个方向可调滤波器;然后,最近的可操纵文件被用作计算描述符的基础。

Karhunen-Loeve 变换和 Hotelling 变换和

Karhunen-Loeve 变换(KLT)【4,9】旨在将连续随机过程描述为级数展开,这与描述周期信号的傅立叶方法相反。霍特林后来利用主成分设计了 KLT 的离散等价物。“KLT”是指这两种方法的最常见的名称。

基函数依赖于底层图像的特征向量,并且计算特征向量是一个计算密集型过程,没有已知的已建立的快速变换。KLT 不可分离以优化图像块,因此 KLT 通常用于小数据集的 PCA,例如用于模式分类、聚类和匹配的特征向量。

小波变换和 Gabor 滤波器

小波,顾名思义,是短波或小波[334]。可以把子波想象成一个短持续时间的脉冲,比如地震,开始和结束于零,而不是一个连续的或共振的波。小波与给定信号(如图像)进行卷积,以找到相似性和统计矩。因此,小波可以像空间域中的卷积核一样实现。参见图 3-24 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-24 。使用“墨西哥礼帽”小波基的小波概念。(上)几顶按比例缩小的墨西哥礼帽源自母小波。(下)几个平移的小波

小波分析是一个广阔的领域[291,292],有许多应用和有用的资源,包括小波族和分析软件包库[289]。快速小波变换(fwt)存在于常见的信号和图像处理库中。小波变换的几种变体包括:

  • 离散小波变换
  • 平稳小波变换(SWT)
  • 连续小波变换
  • 提升小波变换(LWT)
  • 平稳小波包变换(SWPT)
  • 离散小波包变换(DWPT)
  • 分数傅里叶变换(FRFT)
  • 分数小波变换

小波是为满足各种目标而设计的,是为特定的应用而制作的;没有单一的小波函数或基。例如,可以设计一组小波来表示音阶,其中每个音符(例如中音 C)被定义为具有八分之一音符小波脉冲的持续时间,然后将该组中的每个小波在信号上进行卷积,以定位音阶中的相应音符。

当设计小波时,母小波是小波族的基础,然后使用母小波的平移、缩放或压缩来导出子小波。理想情况下,一组小波是重叠和互补的,以便无间隙地分解数据,并且在数学上是可逆的。

小波在变换中用作一组非线性基函数,其中每个基函数可以根据需要进行设计,以最佳匹配输入函数中的期望特征。因此,与使用一组统一基函数的变换(如傅立叶变换使用正弦和余弦函数)不同,小波使用一组动态基函数,这些基函数在本质上是复杂且不均匀的。参见图 3-25 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-25 。各种 2D 小波形状:(从左到右)礼帽,香农,Dabechies,Smylet,Coiflett

小波已经被用作尺度和旋转不变特征描述[288]、图像分割[285,286]、形状描述[287]以及显然所有预期种类的图像和信号滤波、去噪、图像压缩和图像编码的基础。可以为特征描述设计一组应用特定的小波。

Gabor 函数

小波可以被认为是早期 Gabor 函数概念的扩展[333,293],它可以作为一组面向 2D 的带通滤波器用于成像应用。Gabor 的工作集中在声音的物理传输和傅立叶方法的问题上,这些方法涉及时变信号,如不能完美地表示为周期性频率信息的警报声。Gabor 提出了一种比傅立叶分析更紧凑的表示方法,使用了一种叫做原子的概念,记录了可以更紧凑地传输的声音系数。

霍夫变换和拉冬变换

许多人认为,霍夫变换[228–230]和拉冬变换[299]是相关的,结果是相同的;[295][300]参见图 3-26 。Radon 变换是一种积分变换,而 Hough 变换是一种离散方法,因此速度更快。霍夫方法广泛用于图像处理,并可通过数据并行方法使用 GPU [298]加速。Radon 算法稍微精确一些,可能在数学上更合理,并且通常与应用于从 x 射线投影重建的 x 射线断层摄影相关联。我们主要关注霍夫变换,因为它在图像处理库中广泛可用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-26 。线检测:(左)原图。(中间)拉冬变换。(右)霍夫变换。变换图像的亮度揭示了累加器的相对强度,正弦曲线交点表示特征的角度方向

霍夫变换和拉冬变换的主要应用是形状检测以及直线、圆和参数曲线的形状描述。主要优势包括:

  • 对噪声和部分遮挡具有鲁棒性
  • 填充明显的线条、边缘和曲线中的间隙
  • 可以参数化以处理各种边缘和曲线形状

缺点包括:

  • 一次查找一种类型或参数化的特征,例如线
  • 共线线段没有被区分和聚集在一起
  • 可能会错误地填充未连接的间隙和链接边
  • 线的长度和位置是不确定的,但是这可以在图像空间中完成

霍夫变换主要是全局或区域描述符,并且在更大的区域上操作。它最初被设计用于检测直线,随后被推广用于检测参数形状[301],例如曲线和圆。但是,向特征添加更多的参数化需要更多的内存和计算。霍夫特征可用于标记由常规参数曲线和直线描述的区域边界。霍夫变换对于一些应用是有吸引力的,因为它可以容忍直线或曲线中的间隙,并且不受噪声或一些遮挡的强烈影响,但是通过其他方法的形态学和边缘检测通常是足够的,所以霍夫变换的应用有限。

霍夫变换的输入是已经被阈值化的梯度幅值图像,留下主要的梯度信息。渐变幅度用于构建显示图像中所有参数化要素的地图,例如,给定方向的线或给定直径的圆。例如,为了检测线,我们将像素空间中的每个梯度点映射到霍夫参数空间中,参数化为对应于与原点相距距离 d 处具有方向角 θ 的所有线的单个点( d,θ )。曲线和圆参数化使用不同的变量[301]。参数空间被量化成单元或累加器箱,并且每个累加器通过对经过相同霍夫点的梯度线的数量求和来更新。累加器方法被修改用于检测参数曲线和圆。设定累加器空间的阈值并仅将最高的累加器值重新投影回图像上对于突出显示特征是有用的。

摘要

本章提供了全局和区域指标的部分历史,对局部特征指标的处理推迟到第四章和第六章的章节。提供了一些关于结构和统计纹理度量的发展的历史背景,以及用于特征描述的基础空间,和几个常见的区域和全局度量。纹理分析和统计分析的广泛主题已经被应用到计算机视觉中。

由于很难清晰地划分图像处理和计算机视觉中的所有相关主题,因此在此处和第二章、第四章、第五章和第六章中有一些主题重叠。


1 见 NIST 工程统计在线资源:http://www.itl.nist.gov/div898/handbook/***

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值