数字图像处理笔记

时间:2024-02-20 15:31:02

初识数字图像处理与机器视觉

数字图像

什么是数字图像

简单地说,数字图像就是能够在计算机上显示和处理的图像,可根据其特性分为两大类——位图和矢量图。位图通常使用数字阵列来表示,常见格式有BMP、JPG、GIF等;矢量图由矢量数据库表示,接触最多的就是PNG图形。

本书只涉及数字图像中位图图像的处理与识别,如无特别说明,后文提到的“图像”和“数字图像”都仅仅是指位图图像。一般而言,使用数字摄像机或数字照相机得到的图像都是位图图像。

将一幅图像视为一个二维函数f (x , y ),其中x 和y 是空间坐标,而在x – y 平面中的任意一对空间坐标(x , y )上的幅值 f 称为该点图像的灰度 、亮度 或强度 。此时,如果f 、x 、y 均为非负有限离散,则称该图像为数字图像 (位图 )。

一个大小为M ×N 数字图像是由M 行N 列的有限元素组成的,每个元素都有特定的位置和幅值,代表了其所在行列位置上的图像物理信息,如灰度和色彩等。这些元素称为图像元素 或像素 。

数字图像的显示

不论是CRT显示器还是LCD显示器,都是由许多点构成的,显示图像时这些点对应着图像的像素,称显示器为位映像设备。所谓位映像,就是一个二维的像素矩阵,而位图也就是采用位映像方法显示和存储的图像。当一幅数字图像被放大后就可以明显地看出图像是由很多方格形状的像素构成的。

数字图像的分类

根据每个像素所代表信息的不同,可将图像分为二值图像、灰度图像、RGB图像以及索引图像等。

1.二值图像
每个像素只有黑、白两种颜色的图像称为二值图像 。在二值图像中,像素只有0和1两种取值,一般用0来表示黑色,用1表示白色。

2.灰度图像
在二值图像中进一步加入许多介于黑色与白色之间的颜色深度,就构成了灰度图像 。这类图像通常显示为从最暗黑色到最亮的白色的灰度,每种灰度(颜色深度)称为一个灰度级 ,通常用L 表示。在灰度图像中,像素可以取0~L -1之间的整数值,根据保存灰度数值所使用的数据类型不同,可能有256种取值或者说2 k 种取值,当k =1时即退化为二值图像。

3.RGB图像
众所周知,自然界中几乎所有颜色都可以由红(Red, R)、绿(Green, G)、蓝(Blue, B)3种颜色组合而成,通常称它们为RGB三原色。计算机显示彩色图像时采用最多的就是RGB模型,对于每个像素,通过控制R、G、B三原色的合成比例决定该像素的最终显示颜色。

对于三原色RGB中的每一种颜色,可以像灰度图那样使用L 个等级来表示含有这种颜色成分的多少。例如对于含有256个等级的红色,0表示不含红色成分,255表示含有100%的红色成分。同样,绿色和蓝色也可以划分为256个等级。这样每种原色可以用8位二进制据表示,于是3原色总共需要24位二进制数,这样能够表示出的颜色种类数目为256×256××256=224 ,大约有1600万种,已经远远超过普通人所能分辨出的颜色数目。

RGB颜色代码可以使用十六进制数减少书写长度,按照两位一组的方式依次书写R、G、B三种颜色的级别。例如:0xFF0000代表纯红色,0x00FF00代表纯绿色,而0x00FFFF是青色(这是绿色和蓝色的加和)。当RGB三种颜色的浓度一致时,所表示的颜色就退化为灰度,比如0 x808080就是50%的灰色,0x000000为黑色,而0xFFFFFF为白色。

未经压缩的原始BMP文件就是使用RGB标准给出的3个数值来存储图像数据的,称为RGB图像 。在RGB图像中每个像素都是用24位二进制数表示,故也称为24位真彩色图像。

4.索引图像
如果对每个像素都直接使用24位二进制数表示,图像文件的体积将变得十分庞大。来看一个例子,对一个长、宽各为200像素,颜色数为16的彩色图像,每个像素都用RGB三个分量表示。这样每个像素由3个字节表示,整个图像就是200×200×3=120kB。这种完全未经压缩的表示方式,浪费了大量的存储空间,下面简单介绍另一种更节省空间的存储方式:索引图像

同样还是对200×200像素的16色图像,由于这张图片中最多只有16种颜色,那么可以用一张颜色表(16×3的二维数组)保存这16种颜色对应的RGB值,在表示图像的矩阵中使用那16种颜色在颜色表中的索引(偏移量)作为数据写入相应的行列位置。例如,颜色表中第3个元素为0xAA1111,那么在图像中所有颜色为0xAA1111的像素均可以由3-1=2表示(颜色表索引下标从0开始)。这样一来,每一个像素所需要使用的二进制数就仅仅为4位(0.5字节),从而整个图像只需要200×200×0.5=20kB就可以存储,而不会影响显示质量。

上文所指的颜色表就是常说的调色板(Palette) ,另一种说法叫作颜色查找表(Look Up Table,LUT) 。Windows位图中应用到了调色板技术。其实不仅是Windows位图,许多其他的图像文件格式比如PCX、TIF、GIF都应用了这种技术。

在实际应用中,调色板中通常只有少于256种的颜色。在使用许多图像编辑工具生成或者编辑GIF文件的时候,常常会提示用户选择文件包含的颜色数目。当选择较低的颜色数目时,将会有效地降低图像文件的体积,但也会一定程度上降低图像的质量。

使用调色板技术可以减小图像文件体积的条件是图像的像素数目相对较多,而颜色种类相对较少。如果一个图像中用到了全部的24位真彩色,对其使用颜色查找表技术是完全没有意义的,单纯从颜色角度对其进行压缩是不可能的。

数字图像的实质

对于数字图像f (x , y )的定义仅适用于最为一般的情况,即静态的灰度图像。更严格地说,数字图像可以是2个变量(对于静止图像,Static Image)或3个变量(对于动态画面,Video Sequence)的离散函数。在静态图像的情况下是f (x , y ),而如果是动态画面,则还需要时间参数t ,即f (x , y , t )。函数值可能是一个数值(对于灰度图像),也可能是一个向量(对于彩色图像)。

图像处理是一个涉及诸多研究领域的交叉学科,下面就从不同的角度来审视数字图像。

  1. 从线性代数和矩阵论的角度,数字图像就是一个由图像信息组成的二维矩阵,矩阵的每个元素代表对应位置上的图像亮度和/或色彩信息。当然,这个二维矩阵在数据表示和存储上可能不是二维的,这是因为每个单位位置的图像信息可能需要不只一个数值来表示,这样可能需要一个三维矩阵来对其进行表示。
  2. 由于随机变化和噪声的原因,图像在本质上是统计性的。因而有时将图像函数作为随机过程的实现来观察其存在的优越性。这时有关图像信息量和冗余的问题可以用概率分布和相关函数来描述和考虑。例如,如果知道概率分布,可以用熵(Entropy) H ① 来度量图像的信息量,这是信息论中一个重要的思想。
  3. 从线性系统的角度考虑,图像及其处理也可以表示为用狄拉克冲激公式表达的点展开函数的叠加,在使用这种方式对图像进行表示时,可以采用成熟的线性系统理论研究。在大多数时候,都考虑使用线性系统近似的方式对图像进行近似处理以简化算法。虽然实际的图像并不是线性的,但是图像坐标和图像函数的取值都是有限的和非连续的。

数字图像的表示

为了表述像素之间的相对和绝对位置,通常还需要对像素的位置进行坐标约定。本书中所使用的坐标约定如图所示。但在MATLAB中坐标的约定会有变化。

在这之后,一幅物理图像就被转化成了数字矩阵,从而成为计算机能够处理的对象了。数字图像f 的矩阵表示如下所示。

有时也可以使用传统矩阵表示法来表示数字图像和像素,如下式所示。

其中行列(M 行N 列)必须为正整数,而离散灰度级数目L 一般为2的k 次幂,k 为整数(因为使用二进制整数值表示灰度值),图像的动态范围为[0, L -1],那么图像存储所需的比特数为b = M ×N ×k 。注意到在矩阵f (y , x )中,一般习惯于先行下标,后列下标的表示方法,因此这里先是纵坐标y (对应行),然后才是横坐标x (对应列)。

而有些图像矩阵中,很多像素的值都是相同的。例如在一个纯黑背景上使用不同灰度勾勒的图像,大多数像素的值都会是0。这种矩阵称为稀疏矩阵(Sparse Matrix),可以通过简单描述非零元素的值和位置来代替,大量地写入0元素。这时存储图像需要的比特数可能会大大减少。

图像的空间和灰度级分辨率

1.图像的空间分辨率(Spatial Resolution)
图像的空间分辨率是指图像中每单位长度所包含的像素或点的数目,常以像素/英寸(pixels per inch, ppi)为单位来表示。如72ppi表示图像中每英寸包含72个像素或点。分辨率越高,图像将越清晰,图像文件所需的磁盘空间也越大,编辑和处理所需的时间也越长。

像素越小,单位长度所包含的像素数据就越多,分辨率也就越高,但同样物理大小范围内所对应图像的尺寸也会越大,存储图像所需要的字节数也越多。因而,在图像的放大缩小算法中,放大就是对图像的过采样,缩小是对图像的欠采样。

一般在没有必要对涉及像素的物理分辨率进行实际度量时,通常会称一幅大小为 M × N 的数字图像的空间分辨率为 M × N 像素。

2.图像的灰度级/辐射计量分辨率(Radiometric Resolution)
在数字图像处理中,灰度级分辨率 又叫色阶 ,是指图像中可分辨的灰度级数目,即前文提到的灰度级数目L ,它与存储灰度级别所使用的数据类型有关。由于灰度级度量的是投射到传感器上光辐射值的强度,所以灰度级分辨率也叫辐射计量分辨率 。

随着图像的灰度级分辨率逐渐降低,图像中包含的颜色数目变少,从而在颜色的角度造成图像信息受损,同样使图像细节表达受到了一定的影响。

图像的灰度级分辨率——分别具有256、32、16、8、4和2个灰度级的一幅图像

数字图像处理与机器视觉

从图像处理到图像识别

图像处理、图像分析和图像识别是认知科学与计算机科学中的一个令人兴奋的活跃分支。从1970年这个领域经历了人们对其兴趣的爆炸性增长以来,到20世纪末逐渐步入成熟。其中遥感、技术诊断、智能车自主导航、医学平面和立体成像以及自动监视领域是发展最快的一些方向。这种进展最集中地体现在市场上多种应用这类技术的产品的纷纷涌现。事实上,从数字图像处理到数字图像分析,再发展到最前沿的图像识别技术,其核心都是对数字图像中所含有的信息的提取及与其相关的各种辅助过程。

1.数字图像处理
数字图像处理 (Digital Image Processing)就是指使用电子计算机对量化的数字图像进行处理,具体地说就是通过对图像进行各种加工来改善图像的外观,是对图像的修改和增强。

图像处理的输入是从传感器或其他来源获取的原始的数字图像,输出是经过处理后的输出图像。处理的目的可能是使输出图像具有更好的效果,以便于人的观察;也可能是为图像分析和识别做准备,此时的图像处理是作为一种预处理 步骤,输出图像将进一步供其他图像进行分析、识别算法。

2.数字图像分析
数字图像分析 (Digital Image Analyzing)是指对图像中感兴趣的目标进行检测和测量,以获得客观的信息 。数字图像分析通常是指将一幅图像转化为另一种非图像的抽象形式,例如图像中某物体与测量者的距离、目标对象的计数或其尺寸等。这一概念的外延包括边缘检测和图像分割、特征提取以及几何测量与计数等。

图像分析的输入是经过处理的数字图像,其输出通常不再是数字图像,而是一系列与目标相关的图像特征(目标的描述),如目标的长度、颜色、曲率和个数等。

3.数字图像识别
数字图像识别(Digital Image Recognition)主要是研究图像中各目标的性质和相互关系,识别出目标对象的类别,从而理解图像的含义。这往往囊括了使用数字图像处理技术的很多应用项目,例如光学字符识别(OCR)、产品质量检验、人脸识别、自动驾驶、医学图像和地貌图像的自动判读理解等。

图像识别是图像分析的延伸,它根据从图像分析中得到的相关描述(特征)对目标进行归类,输出使用者感兴趣的目标类别标号信息(符号)。

总而言之,从图像处理到图像分析再到图像识别这个过程,是一个将所含信息抽象化,尝试降低信息熵,提炼有效数据的过程。

从信息论的角度上说,图像应当是物体所含信息的一个概括,而数字图像处理侧重于将这些概括的信息进行变换,例如升高或降低熵值,数字图像分析则是将这些信息抽取出来以供其他过程调用。当然,在不太严格时,数字图像处理也可以兼指图像处理和分析。

读者或许也听过另一个概念,计算机图形学(Computer Graphics) 。此概念与数字图像分析大致相反,它是一个对由概念或数学表述的物体图像进行处理和显示的过程。

什么是机器视觉

机器视觉 (Machine Vision),又称计算机视觉 (Computer Vision)。它是将数字图像处理和数字图像分析、图像识别结合起来,试图开发出一种能与人脑的部分机能比拟,能够理解自然景物和环境的系统,在机器人领域中为机器人提供类似人类视觉的功能。计算机视觉是数字成像领域的尖端方向,具有最综合的内容和最广泛的涵盖面。

后文中,如无特别说明,文章通常使用广义的图像处理概念,即用数字图像处理这个词涵盖上文所提到的图像处理和数字图像分析;而对于图像识别和机器视觉的概念常常不加区分,尽管严格地说识别只对应于高级视觉的范畴。

数字图像处理和识别的应用实例

如今,数字图像处理与机器视觉的应用越来越广泛,已经渗透到国家安全、航空航天、工业控制、医疗保健等各个领域乃至人们的日常生活和娱乐当中,在国民经济中发挥着举足轻重的作用。

相关领域 典型应用
安全监控 指纹验证、基于人脸识别的门禁系统
工业控制 产品无损检测、商品自动分类
医疗保健 X光照片增强、CT、核磁共振、病灶自动检测
生活娱乐 基于表情识别的笑脸自动检测、汽车自动驾驶、手写字符识别

数字图像处理的预备知识

数字图像是由一组具有一定的空间位置关系的像素组成的,因而具有一些度量和拓扑性质。理解像素间的关系是学习图像处理的必要准备,这主要包括相邻像素,邻接性、连通性,区域、边界的概念,以及今后要用到的一些常见距离度量方法。

邻接性、连通性、区域和边界

P 的各种邻域

1.邻接性(Adjacency)
定义V 是用于决定邻接性的灰度值集合,它是一种相似性的度量,用于确定所需判断邻接性的像素之间的相似程度。比如在二值图像中,如果认为只有灰度值为1的像素是相似的,则即V ={1},当然相似性的规定具有主观标准,因此也可以认为V ={0,1},此时邻接性完全由位置决定;而对于灰度图像,这个集合中则很可能包含更多的元素。此外,定义对角邻域ND (P )为8-邻域中不属于4-邻域的部分(见图0.8(c)),那么有如下的规定。

(1)4邻接(4-Neighbor):如果 Q ∈N 4 (P ),则称具有V 中数值的两个像素P 和Q 是4邻接的。
(2)8邻接(8-Neighbor):如果 Q ∈N 8 (P ),则称具有V 中数值的两个像素P 和Q 是8邻接的。

如下图所示,q和p是4邻接的:

如下图所示,q和p是对角邻接的:

如下图所示,p和周围的八个数都是邻接的:

显然,若p和q是8邻接,则他们不一定是4邻接。若p和q是4邻接,他们一定是8邻接。

m邻接:
说到m邻接,不得不引入灰度值集合V。灰度值集合V指的是0-255的任意一个子集。
对于m邻接,书上的概念是这么说的:
下列两个条件满足其中一个即为m邻接

(i)q在N4( p )中
(ii)在ND( q )中,且集合N4( p )∩N4( q )中没有来自V中数值的元素

看起来一脸懵逼,举个最简单的例子,设灰度值只有1。即p和q的灰度值都为1,V={1}。
然后让我们来翻译一下书上的概念:
直接看条件2,q在p的对角邻域中,即q和p是对角邻接,且p的4邻域和q的4邻域的交集的灰度值不在灰度值集合V中(由于V只有1这个元素,则交集元素的灰度非1),则p和q为m邻接。

是不是还是觉得很难理解,那我们可以通过图片来了解:

其中,红色区域的灰度值不在V中,即非1。

其中,黄色区域为p的4邻域和q的4邻域的交集,这个交集的元素的灰度值都不在V中,故p和q是m邻接。

接下来再举个例子,

其中,黄色区域为p的4邻域和q的4邻域的交集,交集中的一个像素的灰度值在V中,即为1,故p和q不是m邻接。

m邻接实质:当像素间同时存在4-邻接和8-邻接时,优先采用4-邻接,屏蔽两个和同一像素间存在4-邻接的像素之间的8-邻接。

为什么要引入m临接呢?我们再看下面的例子。
设下图ABCD像素灰度值为1。

将他们的8邻域中灰度值为1的值相连,得下图:

可以发现在这个8通路中,A到C的方式有两种,①是A——》B——》C,②是A——》C。而这被称为二义性,这就是为什么要引入M邻接的方式,因为采用m邻接的方式让像素相连能够消除二义性。

那么如何消除二义性呢?我们可以看到,A和C的四邻域交集中,B为1(属于集合V),故A和C不是m邻接,则说明A和C无法连通,如下图所示,各个像素的连通情况,A无法直接连通C。

如图所示,A到C只有一条路,即A——》B——》C,这样就使用了m邻接消除了二义性。

2.连通性

为了定义像素的连通性,首先需要定义像素P 到像素Q 的通路(Path)。这也是建立在邻接性的基础上的。
像素P 到像素Q 的通路(Path) 指的是一个特定的像素序列(x 0 , y0 ), (x 1 , y 1 ), …, (xn , yn ),其中(x 0 , y 0 ) = (xp , yp ),(x n , yn ) = (x q , yq )。并且像素(xi , yi ) 和(xi-1 , yi-1 ) 在满足1≤i ≤n 时是邻接的。在上面的定义中,n 是通路的长度,若(x 0 , y 0 ) = (xn , yn ),则这条通路是闭合通路。相对应于邻接的概念,在这里有4通路和8通路。这个定义和图论中的通路定义是基本相同的,只是由于邻接概念的加入而变得更加复杂。
像素的连通性(Contiguous) :令S 代表一幅图像中的像素子集,如果在S 中全部像素之间存在一个通路,则可以称2个像素P 和Q 在S 中是连通的。此外,对于S 中的任何像素P ,S 中连通到该像素的像素集叫作S 的连通分量 。如果S 中仅有一个连通分量,则集合S 叫做连通集 。

卧槽,天书啊!


如果要从像素s到像素t:
在4连通的条件下:s不能到t,因为中心像素和右下角像素不满足4邻接关系。
在8连通的条件下:s可以到t
在m连通的条件下:s可以到t

3.区域和边界
区域的定义是建立在连通集的基础上的。令R 是图像中的一个像素子集,如果R 同时是连通集,则称R 为一个区域(Region)。

边界(Boundary) 的概念是相对于区域而言的。一个区域的边界(或边缘、轮廓)是区域中所有有一个或多个不在区域R 中的邻接像素的像素所组成的集合。显然,如果区域R 是整幅图像,那么边界就由图像的首行、首列、末行和末列定义。因而,通常情况下,区域指一幅图像的子集,并包括区域的边缘。而区域的边缘(Edge) 由具有某些导数值的像素组成,是一个像素及其直接邻域的局部性质,是一个有大小和方向属性的矢量。

边界和边缘是不同的。边界是和区域有关的全局概念,而边缘表示图像函数的局部性质。

距离度量的几种方法

假设对于像素P (xp , yp )、Q (xq , yq )、R (xr , yr )而言,有函数D 满足如下3个条件,则函数D 可被称为距离函数或度量。

  • D(P,Q) ≥0,当且仅当P = Q 时,有D(P,Q) = 0
  • D(P,Q) = D(Q,P)
  • D(P,Q) ≤D(P,R) + D(R,Q)

常见的几种距离函数如下所示。
① 欧氏距离

即两点之间的直线距离。

② D4距离(街区距离)

即距离等于r 的像素形成的以P 为中心的菱形。

比较难理解,可参考:https://www.cnblogs.com/soyo/p/6893551.html

③ D8距离(棋盘距离)

即距离等于r 的像素形成的以P 为中心的方形。

比较难理解,可参考:https://www.cnblogs.com/soyo/p/6893551.html

距离度量参数可以用于对图像特征进行比较和分类或者进行某些像素级操作。最常用的距离度量是欧氏距离,然而在形态学中,也可能使用街区距离和棋盘距离。

基本的图像操作

1.点运算和邻域运算
点运算指的是对图像中的每一个像素逐个进行同样的灰度变换运算。设r 和s 分别是输入图像f (x , y )和输出图像g (x , y )在任一点(x , y )的灰度值,则点运算可以使用下式定义。
s = T (r)
而如果将点运算扩展,对图像中每一个小范围(邻域)内的像素进行灰度变换运算,即称为邻域运算或邻域滤波。这可以使用下式定义。
g (x , y ) = T [f (x , y )]

2.线性和非线性操作
令H 是一种算子,其输入输出都是图像。若对于任意两幅(或两组)图像F 1和F 2及任意两个标量a 和b 都有如下关系成立,
H (aF 1 +bF 1 )=aH (F 1 )+bH (F 2 )

则称H 为线性算子。也即对两幅图像的线性组合应用该算子与分别应用该算子后的图像在进行同样的线性组合所得到的结果相同,也即算子H 满足线性性质。同样的,不符合上述定义的算子即为非线性算子,对应的是非线性图像操作。举例来说,滤波中的平均平滑、高斯平滑、梯度锐化等都是线性运算,而中值滤波则是非线性的。

线性操作由于其稳定性的特点而在图像处理中占有非常重要的地位。 尽管非线性算子常常也能够提供较好的性能,但它的不可预测性使其在一些如军事图像处理和医学图像处理等严格的应用领域中难以获得广泛的应用。

图像的点运算

对于一个数字图像处理系统来说,一般可以将处理流程分为3个阶段。在获取原始图像后,首先是图像预处理阶段,第二是特征抽取阶段,最后才是识别分析阶段。预处理阶段尤为重要,这个阶段处理不好则后面的工作根本无法展开。

点运算指的是对图像中的每个像素依次进行同样的灰度变换运算。设r 和s 分别是输入图像f (x,y )和输出图像g (x,y )在任一点(x,y )的灰度值,则点运算可以使用下式定义。

s = T(r) 

其中,T 为采用的点运算算子,表示了在原始图像和输出图像之间的某种灰度级映射关系。

灰度直方图

灰度直方图描述了一幅图像的灰度级统计信息,主要应用于图像分割和图像灰度变换等处理过程中。

从数学上来说,图像直方图描述的是图像的各个灰度级的统计特性,它是图像灰度值的函数,统计一幅图像中各个灰度级出现的次数或概率。有一种特殊的直方图叫作归一化直方图,可以直接反映不同灰度级出现的比率。

从图形上来说,灰度直方图是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。

灰度直方图的计算是根据其统计定义进行的。图像的灰度直方图是一个离散函数,它表示图像每一灰度级与该灰度级出现频率的对应关系。假设一幅图像的像素总数为N , 灰度级总数为L ,其中灰度级为g 的像素总数为Ng ,则这幅数字图像的灰度直方图横坐标即为灰度g (0≤g ≤L -1),纵坐标则为灰度值出现的次数Ng 。实际上,用像素总数N 去除以各个灰度值出现的次数Ng 即得到各个灰度级出现的概率Pg = Ng /N =Ng /ΣNg ,从而得到归一化的灰度直方图,其纵坐标为概率Pg 。

灰度的线性变换

线性灰度变换函数f (x )是一个一维线性函数。

TODO.

灰度对数变换

对数变换主要用于将图像的低灰度值部分扩展,将其高灰度值部分压缩,以达到强调图像低灰度部分的目的。
TODO.

伽玛变换

伽玛变换又名指数变换或幂次变换,是另一种常用的灰度非线性变换。
伽马变换主要用于图像的校正,将漂白的图片或者是过黑的图片,进行修正。伽马变换也常常用于显示屏的校正,这是一个非常常用的变换。
TODO.

灰度阈值变换

灰度阈值变换可以将一幅灰度图像转换成黑白的二值图像。用户指定一个起到分界线作用的灰度值,如果图像中某像素的灰度值小于该灰度值,则将该像素的灰度值设置为0,否则设置为255,这个起到分界线作用的灰度值称为阈值 ,灰度的阈值变换也常被称为阈值化或二值化。
TODO.

分段线性变换

分段线性变换有很多种,包括灰度拉伸、灰度窗口变换等。
TODO.

直方图均衡化

直方图均衡化又称为灰度均衡化,是指通过某种灰度映射使输入图像转换为在每一灰度级上都有近似相同的像素点数的输出图像(即输出的直方图是均匀的)。在经过均衡化处理后的图像中,像素将占有尽可能多的灰度级并且分布均匀。因此,这样的图像将具有较高的对比度和较大的动态范围。
TODO.

直方图规定化(匹配)

直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像(待匹配直方图的图像)之间的关系,使原始图像的直方图匹配特定的形状,从而弥补了直方图均衡化不具备交互作用的特性。
TODO.

图像的几何变换

包含相同内容的两幅图像可能由于成像角度、透视关系乃至镜头自身原因所造成的几何失真而呈现截然不同的外观,这就给观测者或是图像识别程序带来了困扰。通过适当的几何变换可以最大程度地消除这些几何失真所产生的负面影响,有利于读者在后续的处理和识别工作中将注意力集中于图像的内容本身,更确切地说是图像中的对象,而不是该对象的角度和位置等。因此,几何变换常常作为其他图像处理应用的预处理步骤,是图像归一化的核心工作之一。

图像归一化

图像归一化是计算机视觉、模式识别等领域广泛使用的一种技术。所谓图像归一化, 就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。 近年来, 基于矩的图像归一化技术受到了人们的普遍关注, 其基本工作原理为: 首先利用图像中对仿射变换具有不变性的矩来确定变换函数的参数, 然后利用此参数确定的变换函数把原始图像变换为一个标准形式的图像(该图像与仿射变换无关)。 一般说来, 基于矩的图像归一化过程包括 4 个步骤 即坐标中心化、x-shearing 归一化、缩放归一化和旋转归一化。

旋转前后的两幅图像

参考链接:https://www.cnblogs.com/curo0119/p/8421811.html

解决几何变换的一般思路

图像几何变换又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。学习几何变换的关键就是要确定这种空间映射关系,以及映射过程中的变换参数。

几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。一个几何变换需要两部分运算:首先是空间变换所需的运算,如平移、旋转和镜像等,需要用它来表示输出图像与输入图像之间的(像素)映射关系;此外,还需要使用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。

图像平移

图像平移就是将图像中所有的点按照指定的平移量水平或者垂直移动。

图像镜像

镜像变换又分为水平镜像和竖直镜像。水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中心轴进行对换。

图像转置

图像转置是将图像像素的x 坐标和y 坐标互换。

图像缩放

图像缩放是指图像大小按照指定的比率放大或者缩小

图像旋转

图像旋转一般是指将图像围绕某一指定点旋转一定的角度。

插值算法

实现几何运算时,有两种方法。第一种称为向前映射法,其原理是将输入图像的灰度一个像素一个像素地转移到输出图像中,即从原图像坐标计算出目标图像坐标:g (x 1, y 1 ) = f ( a (x 0, y 0 ), b (x 0, y 0 ) )。前面的平移、镜像等操作就可以采用这种方法。

另外一种称为向后映射法,它是向前映射变换的逆,即输出像素一个一个地映射回输入图像中。如果一个输出像素映射到的不是输入图像的采样栅格的整数坐标处的像素点,则其灰度值就需要基于整数坐标的灰度值进行推断,这就是插值。由于向后映射法是逐个像素产生输出图像,不会产生计算浪费问题,所以在缩放、旋转等操作中多采用这种方法。

最近邻插值

这是一种最简单的插值算法,输出像素的值为输入图像中与其最邻近的采样点的像素值。例如,图4.13中的点P 0 在几何变换中被映射至点P 1 \',但由于点P 1 \'处于非整数的坐标位置,无法提取其像素灰度值。所以可以用与P 1 \'最邻近的采样点P 1 的灰度值近似作为P 1 \'的灰度值。

最近邻插值示意图

双线性插值

双线性插值又称为一阶插值,是线性插值扩展到二维的一种应用。它可以通过一系列的一阶线性插值得到。

线性(linear),指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数;线性插值则是指根据两个点的值线性地确定位于这两个点连线上的某一点的值。

输出像素的值为输入图像中距离它最近的2×2邻域内采样点像素灰度值的加权平均。

高阶插值

在几何运算的一些情况中,双线性插值的平滑作用会使图像的细节退化,而其斜率的不连续性则会导致变换产生不希望的结果。这些都可以通过高阶插值得到弥补,高阶插值常用卷积来实现。输出像素的值为输入图像中距离它最近的4×4领域内采样点像素值的加权平均值。

图像配准简介

所谓图像配准就是将同一场景的两幅或多幅图像进行对准。如航空照片的配准,以及在很多人脸自动分析系统中的人脸归一化,即要使各张照片中的人脸具有近似的大小,尽量处于相同的位置。

一般来说,使用者以基准图像为参照,并通过一些基准点(Fiducial Points)找到适当的空间变换关系s 和t ,对输入图像进行相应的几何变换,从而实现它与基准图像在这些基准点位置上的对齐。

空间域图像增强

图像增强是数字图像处理相对简单却最具艺术性的领域之一,增强的目的是消除噪声,显现那些被模糊了的细节或简单地突出一幅图像中读者感兴趣的特征。一个简单的例子是增强图像的对比度,使其看起来更加一目了然。应记住,增强是图像处理中非常主观的领域,它以怎样构成好的增强效果这种人的主观偏好为基础,也正是这一点为其赋予了艺术性。这与图像复原技术刚好相反,图像复原也是改进图像外貌的一个处理领域,但它是客观的。

图像增强基础

为什么要进行图像增强

图像增强是指根据特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。因此,这类处理是为了某种应用目的而去改善图像质量的。处理的结果是使图像更适合于人的观察或机器的识别系统。

应该明确的是增强处理并不能增强原始图像的信息,其结果只能增强对某种信息的辨别能力,而同时这种处理有可能损失一些其他信息。正因如此很难找到一个评价图像增强效果优劣的客观标准,也就没有特别通用模式化的图像增强方法,总是要读者根据具体期望的处理效果做出取舍。

图像增强的分类

图像增强技术基本上可分成两大类:一类是空间域增强,另一类是频率域增强。

空间域图像增强与频率域图像增强不是两种截然不同的图像增强技术,实际上在相当程度上说它们是在不同的领域做同样的事情,是殊途同归的,只是有些滤波更适合在空间域完成,而有些则更适合在频率域中完成。

空间域图像增强技术主要包括直方图修正、灰度变换增强、图像平滑化以及图像锐化等。在增强过程中可以采用单一方法处理,但更多实际情况是需要采用几种方法联合处理,才能达到预期的增强效果(永远不要指望某个单一的图像处理方法可以解决全部问题)。

空间域滤波

滤波是信号处理中的一个概念,是将信号中特定波段频率滤除的操作,在数字信号处理中通常通过傅里叶变换及其逆变换实现。由于下面要学习的内容实际上和通过傅里叶变换实现的频域下的滤波是等效的,故而也称为滤波。空间域滤波主要直接基于邻域(空间域)对图像中像素执行计算,本章使用空间域滤波这一术语区别于第7章中将要讨论的频率域滤波。

批注:空间域的概念是相对于时域和频域来说的。

空间域滤波和邻域处理

对图像中的每一点(x ,y ),重复下面的操作。

  • 对预先定义的以(x ,y )为中心的邻域内的像素进行运算。
  • 将(1)中运算的结果作为(x ,y )点新的响应。

上述过程就称为邻域处理或空间域滤波。一幅数字图像可以看成一个二维函数f (x , y ),而x-y 平面表明了空间位置信息,称为空间域,基于x -y 空间邻域的滤波操作叫作空间域滤波。如果对于邻域中的像素计算为线性运算,则又称为线性空间域滤波,否则称为非线性空间域滤波。

图5.1直观地展示了用一个3×3的模板(又称为滤波器、模板、掩模、核或者窗口)进行空间滤波的过程,模板为w ,用黑笔圈出的是其中心。
5.1
滤波过程就是在图像f (x ,y )中逐点地移动模板,使模板中心和点(x ,y )重合。在每一点(x ,y )处,滤波器在该点的响应是根据模板的具体内容并通过预先定义的关系来计算。一般来说模板中的非0元素指出了邻域处理的范围,只有那些当模板中心与点(x ,y )重合时,图像f 中和模板中非0像素重合的像素参与了决定点(x ,y )像素值的操作。在线性空间滤波中模板的系数则给出了一种加权模式,即(x ,y )处的响应由模板系数与模板下面区域的相应f 的像素值的乘积之和给出。

边界处理

执行滤波操作要注意的一点是当模板位于图像边缘时,会产生模板的某些元素很可能会位于图像之外的情况,这时,对于在边缘附近执行滤波操作需要单独处理,以避免引用到本不属于图像的无意义的值。

以下3种策略都可以用来解决边界问题。

  • 收缩处理范围
  • 使用常数填充图像
  • 使用复制像素的方法填充图像

相关和卷积

卷积时模板是相对其中心点做镜像后再对f 位于模板下的子图像做加权和的,或者说在做加权和之前模板先要以其中心点为原点旋转180°。如果忽略了这一细微差别将导致完全错误的结果,只有当模板本身是关于中心点对称时,相关和卷积的结果才会相同。

图像平滑

图像平滑是一种可以减少和抑制图像噪声的实用数字图像处理技术。在空间域中一般可以采用邻域平均来达到平滑的目的。

平均模板及其实现

一般来说,图像具有局部连续性质,即相邻像素的数值相近,而噪声的存在使得在噪声点处产生灰度跳跃,但一般可以合理地假设偶尔出现的噪声影响并没有改变图像局部连续的性质,例如下面的局部图像f_sub,灰色底纹标识的为噪声点,在图像中表现为亮区中的2个暗点。

f _sub=

  200  215  212  208  196

  198   5  202  199  221

  199  207  202  201  211

  203  218  210  210  198

  203  218  210   0  198

  200  215  212  208  205

对f 用3×3的平均模板进行平滑滤波后,得到的平滑后图像为g_sub。

g_sub =

 181 184 186 206 205

 180 182 183 206 207

 181 183 184 206 208

 206 208 186 182 181

 207 210 189 183 180

 206 209 189 184 181

显然,通过平滑滤波,原局部图像f_sub中噪声点的灰度值得到了有效修正,像这样将每一个点用周围点的平均替代,从而达到减少噪声影响的过程就称为平滑或模糊。

高斯平滑及其实现

平均平滑对于邻域内的像素一视同仁,为了减少平滑处理中的模糊,得到更自然的平滑效果,很自然地想到适当加大模板中心点的权重,随着距离中心点的距离增大,权重迅速减小,从而可以确保中心点看起来更接近于与它距离更近的点,基于这样的考虑得到的模板即为高斯模板。

高斯平滑滤波器被使用去模糊图像,和均值滤波器差不多,但是和均值滤波器不一样的地方就是核不同。均值滤波器的核每一个值都是相等,而高斯平滑滤波器的核内的数却是呈现高斯分布的。

上面介绍的平均平滑滤波器和高斯平滑滤波器都是线性平滑滤波器,在学习频率域滤波之后,还可以为它们赋予另外一个名字——低通滤波器。

自适应平滑滤波

利用平均模板的平滑在消除噪声的同时也使图像变得模糊,高斯平滑在一定程度上缓解了这些现象,但由平滑滤波机理可知这种模糊是不可避免的。这当然是使用者所不希望的,于是想到选择性的进行平滑,即只在噪声局部区域进行平滑,而在无噪声局部区域不进行平滑,将模糊的影响降到最少,这就是自适应滤波的思想。

那么怎样判断该局部区域是包含噪声的需要平滑的区域还是无明显噪声的不需平滑的区域呢?这要基于噪声的性质来考虑,噪声的存在会使得在噪声点处产生灰度跳跃,从而使噪声点局部区域灰度跨度较大。因此可以选择如下两个标准中的1个作为局部区域存在噪声的判据。

  • 局部区域最大值与最小值之差大于某一阈值 T ,即:max( R ) – min( R ) > T ,其中 R 代表该局部区域。
  • 局部区域方差大于某一阈值 T ,即:D( R ) > T ,D( R )表示区域 R 中像素的方差。

对于那些噪声位置具有随机性和局部性的图像,自适应的滤波具有非常好的效果。

中值滤波

中值滤波本质上是一种统计排序滤波器。对于原图像中某点(i , j ),中值滤波以该点为中心的邻域内的所有像素的统计排序中值作为(i ,j )点的响应。

中值不同于均值,是指排序队列中位于中间位置的元素的值,例如:采用3×3中值滤波器,某点(i ,j )的8个邻域的一系列像素值为:12、18、18、11、23、22、13、25、118。统计排序结果为:11、12、13、18、18、22、23、25、118。排在中间位置(第5位)的18即作为(i ,j )点中值滤波的响应g (i ,j )。显然,中值滤波并非线性滤波器。

性能比较

中值滤波对于某些类型的随机噪声具有非常理想的降噪能力,对于线性平滑滤波而言,在处理的像素邻域之内包含噪声点时,噪声的存在总会或多或少的影响该点的像素值的计算,(对于高斯平滑,影响程度同噪声点到中心点的距离成正比),但在中值滤波中,噪声点则常常是直接被忽略掉的;而且同线性平滑滤波器相比,中值滤波在降噪的同时引起的模糊效应较低。中值滤波的一种典型应用是消除椒盐噪声。

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。

一种改进的中值滤波策略

中值滤波效果依赖于滤波窗口的大小,太大会使边缘模糊,太小则去噪效果不好。因为噪声点和边缘点同样是灰度变化较为剧烈的像素,普通中值滤波在改变噪声点灰度值的时候,会一定程度地改变边缘像素的灰度值。但是噪声点几乎都是邻域像素的极值,而边缘往往不是,因此可以利用这个特性来限制中值滤波。

具体的改进方法如下:逐行扫描图像,当处理每一个像素时,判断该像素是否是滤波窗口所覆盖下邻域像素的极大或者极小值,如果是,则采用正常的中值滤波处理该像素,如果不是,则不予处理。在实践中这种方法能够非常有效地去除突发噪声点,尤其是椒盐噪声,而几乎不影响边缘。

由于算法可以根据局部邻域的具体情况而自行选择执行不同的操作,因此改进的中值滤波也称为自适应中值滤波。

图像锐化

图像锐化的目的是使模糊的图像变得更加清晰起来。其应用广泛,从医学成像到工业检测和军事系统的指导等。

理论基础

图像锐化主要用于增强图像的灰度跳变部分,这一点与图像平滑对灰度跳变的抑制正好相反。事实上从平滑与锐化的两种运算算子上也能说明这一点,线性平滑都是基于对图像邻域的加权求和或者说积分运算的,而锐化则通过其逆运算导数(梯度)或者说有限差分来实现。

在讨论平滑的时候本章提到了噪声和边缘都会使图像产生灰度跳变,为了在平滑时能够将噪声和边缘区别对待还在5.3.5小节中给出了一种自适应滤波的解决方案。同样地,在锐化处理中如何区分开噪声和边缘仍然是读者要面临的一个课题,只是在平滑中要平滑的是噪声,希望处理不要涉及边缘,而在锐化中要锐化的对象是边缘,希望处理不要涉及噪声。

基于一阶导数的图像增强——梯度算子

1.Robert交叉梯度
2.Sobel梯度

基于二阶微分的图像增强——拉普拉斯算子

TODO.

基于一阶与二阶导数的锐化算子的比较

  • 一阶导数通常会产生较宽的边缘。
  • 二阶导数对于阶跃性边缘中心产生零交叉,而对于屋顶状边缘(细线),二阶导数取极值。
  • 二阶导数对细节有较强的响应,如细线和孤立噪声点。

高提升滤波及其实现

无论是基于一阶微分的Robert、Sobel模板还是基于二阶微分的拉普拉斯模板,其中各系数和均为0。这说明算子在灰度恒定区域的响应为0,即在锐化处理后的图像中,原图像的平滑区域近乎于黑色,而原图中所有的边缘、细节和灰度跳变点都作为黑背景中的高灰度部分突出显示。在基于锐化的图像增强中常常希望在增强边缘和细节的同时仍然保留原图像中的信息,而不是将平滑区域的灰度信息丢失。因此可以把原图像加上锐化后的图像得到比较理想的结果。

高斯-拉普拉斯变换

锐化在增强边缘和细节的同时往往也“增强”了噪声,因此如何区分开噪声和边缘是锐化中要解决的一个核心问题。

基于二阶微分的拉普拉斯算子对于细节(细线和孤立点)能产生更强的响应,并且各向同性,因此在图像增强中较一阶的梯度算子更受到读者的青睐。然而,它对于噪声点的响应也更强。

为了在取得更好的锐化效果的同时把噪声的干扰降到最低,可以先对带有噪声的原始图像进行平滑滤波,再进行锐化增强边缘和细节。本着“强强联合”的原则,将在平滑领域工作的更好的高斯平滑算子同锐化界表现突出的拉普拉斯锐化结合起来,得到高斯—拉普拉斯算子(由Marr和Hildreth提出)。

频率域图像增强

空间域和频率域为使用者提供了不同的视角。在空间域中,函数的自变量(x ,y )被视为二维空间中的一点,数字图像f (x ,y )即为一个定义在二维空间中的矩形区域上的离散函数;换一个角度,如果将f (x,y )视为幅值变化的二维信号,则可以通过某些变换手段(如傅里叶变换、离散余弦变换、沃尔什变换和小波变换等)在频率域下对它进行分析。

频率域滤波——与空间域滤波殊途同归

在很多情况下,频率域滤波和空间域滤波可以视为对于同一个图像增强问题的殊途同归的两种解决方式。而在另外一些情况下,有些增强问题更适合在频率域中完成,有些则更适合在空间域中完成。使用者常常根据需要选择是工作在空间域还是频率域,并在必要时在空间域和频率域之间相互转换。

傅里叶变换提供了一种变换到频率域的手段,由于用傅里叶变换表示的函数特征可以完全通过傅里叶反变换进行重建,不丢失任何信息,因此它可以使读者工作在频率域而在转换回空间域时不丢失任何信息。

傅里叶变换基础知识

傅里叶变换的实质——基的转换。对于给定函数f (x ),关键是选择合适的基,使得f (x )在这组基下,表现出使用者需要的特性,当某一组基不满足要求时,就需要通过变换将函数转换到另一组基下表示,方可得到使用者需要的函数表示。常用的变换有傅里叶变换(以正弦和余弦函数为基函数)、小波变换(以各种小波函数为基函数)、离散余弦变换以及Walsh变换等。
在数学术语中,傅里叶变换是一种将信号转换成频率的技术,即从时域到频域的变换方法。
时域是信号随时间变化的振幅图。
频域是在一个频率范围内每个给定频带内的信号量。

参考链接:
https://baijiahao.baidu.com/s?id=1636833728798493906&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1670378568618585600&wfr=spider&for=pc

快速傅里叶变换及实现

离散傅里叶变换的直接实现效率较低,因此在工程实践中,迫切地需要一种能够快速计算离散傅里叶变换的高效算法,快速傅里叶变换(Fast Fourier Transform, FFT)便应运而生。

常见的FFT算法

目前流行的大多数成熟的FFT算法的基本思路大致可以分为两大类,一类是按时间抽取的快速傅里叶算法(Decimation In Time, DIT-FFT),另一类是按频率抽取的快速傅里叶算法(Decimation In Freqency, DIF-FFT)。这两种算法思路的基本区别如下。

按时间抽取的FFT算法是基于将输入序列f (x )分解(抽取)成较短的序列,然后从这些序列的DFT中求得输入序列的F (u )的方法。由于抽取后的较短序列仍然可分,所以最终仅仅需要计算一个很短的序列的DFT。在这种算法中,主要关注的是当序列的长度是2的整数次幂时,如何能够高效地进行抽取和运算的方法。

而按频率抽取的FFT算法是基于将输出序列F (u )分解(抽取)成较短的序列,并且从f (x )计算这些分解后的序列的DFT。同样,这些序列可以继续分解下去,继续得到更短的序列,从而可以更简便地进行运算。这种算法同样是主要针对2的整数次幂长度的序列的。

按时间抽取的基-2 FFT算法

离散反傅里叶变换的快速算法

N维快速傅里叶变换

频域滤波基础

频域滤波与空域滤波的关系

傅里叶变换可以将图像从空域变换到频域,而傅里叶反变换则可以将图像的频谱逆变换为空域图像,也即人可以直接识别的图像。这样一来,可以利用空域图像与频谱之间的对应关系,尝试将空域卷积滤波变换为频域滤波,而后再将频域滤波处理后的图像反变换回空间域,从而达到图像增强的目的。这样做的一个最主要的吸引力在于频域滤波的直观性特点。

根据著名的卷积定理:两个二维连续函数在空间域中的卷积可由其相应的两个傅里叶变换乘积的反变换而得;反之,在频域中的卷积可由在空间域中乘积的傅里叶变换而得。

频域滤波的基本步骤

  • 计算原始图像f (x , y )的DFT,得到F (u , v )
  • 将频谱F (u , v )的零频点移动到频谱图的中心位置。
  • 计算滤波器函数H (u , v )与F (u , v )的乘积G (u , v ) 。
  • 将频谱G (u , v )的零频点移回到频谱图的左上角位置。
  • 计算第(4)步计算结果的傅里叶反变换g (x , y ) 。
  • 取g (x , y )的实部作为最终滤波后的结果图像。

由上面的叙述易知,滤波能否取得理想结果的关键取决于频域滤波函数H (u , v ),常常称之为滤波器,或滤波器传递函数,因为它在滤波中抑制或滤除了频谱中某些频率的分量,而保留其他的一些频率不受影响。本书中只关心其值为实数的滤波器,这样滤波过程中H 的每一个实数元素分别乘以F 中对于位置的复数元素,从而使F 中元素的实部和虚部等比例的变化,不会改变F 的相位谱,这种滤波器也因此被称为“零相移”滤波器。这样,最终反变换回空域得到的滤波结果图像g (x , y )理论上也应当为实函数,然而由于计算舍入误差等原因,可能会带有非常小的虚部,通常将虚部直接忽略。

频率域低通滤波器

在频谱中,低频主要对应图像在平滑区域的总体灰度级分布,而高频对应图像的细节部分,如边缘和噪声。因此,图像平滑可以通过衰减图像频谱中的高频部分来实现,这就建立了空间域图像平滑与频率域低通滤波之间的对应关系。

图像的频率:灰度值变化剧烈程度的指标,是灰度在平面空间上的梯度。
(1)什么是低频?
低频就是颜色缓慢地变化,也就是灰度缓慢地变化,就代表着那是连续渐变的一块区域,这部分就是低频. 对于一幅图像来说,除去高频的就是低频了,也就是边缘以内的内容为低频,而边缘内的内容就是图像的大部分信息,即图像的大致概貌和轮廓,是图像的近似信息。
(2)什么是高频?
反过来, 高频就是频率变化快.图像中什么时候灰度变化快?就是相邻区域之间灰度相差很大,这就是变化得快.图像中,一个影像与背景的边缘部位,通常会有明显的差别,也就是说变化那条边线那里,灰度变化很快,也即是变化频率高的部位.因此,图像边缘的灰度值变化快,就对应着频率高,即高频显示图像边缘。图像的细节处也是属于灰度值急剧变化的区域,正是因为灰度值的急剧变化,才会出现细节。
另外噪声(即噪点)也是这样,在一个像素所在的位置,之所以是噪点,就是因为它与正常的点颜色不一样了,也就是说该像素点灰度值明显不一样了,,也就是灰度有快速地变化了,所以是高频部分,因此有噪声在高频这么一说。

理想低通滤波器及其实现

最容易想到的衰减高频成分的方法就是在一个称为“截止频率”的位置“截断”所有的高频成分,将图像频谱中所有高于这一截止频率的频谱成分设为0,低于截止频率的成分保持不变。能够达到这种效果的滤波器称之为理想低通滤波器。

理想低通滤波器可在一定程度上去除图像噪声,但由此带来的图像边缘和细节的模糊效应也较为明显。

高斯低通滤波器及其实现

高斯函数与其傅里叶变换的图像
当σ 增大时,H (u )的图像倾向于变宽,而h (x )的图像倾向于变窄和变高。这也体现了频率域和空间域的对应关系。频率域滤波器越窄,滤除的高频成分越多,图像就越平滑(模糊);而在空间域,对应的滤波器就越宽,相应的卷积模板越平坦,平滑(模糊)效果就越明显。

相比于理想低通滤波器而言,处理效果上的改进是显而易见的。高斯低通滤波器在有效抑制噪声的同时,图像的模糊程度更低,对边缘带来的混叠程度更小,从而使高斯低通滤波器在通常情况下获得了比理想低通滤波器更为广泛的应用。

频率域高通滤波器

图像锐化可以通过衰减图像频谱中的低频成分来实现,这就建立了空间域图像锐化与频域高通滤波之间对应关系。

高斯高通滤波器及其实现

TODO.

频域拉普拉斯滤波器及其实现

TODO.

频域滤波器与空域滤波器之间的内在联系

频域滤波较空域而言更为直观,频域下滤波器表达了一系列空域处理(平滑、锐化等)的本质,即对高于/低于某一特定频率的灰度变化信息予以滤除,而对其他的灰度变化信息基本保持不变。这种直观性增加了频域滤波器设计的合理性,使得读者更容易设计出针对特定问题的频域滤波器,就如在6.7节中利用了带阻滤波器实现了对图像中周期噪声的滤除,而想直接在空域中设计出一个能够完成如此滤波任务的滤波器(卷积模板)是相当困难的。
TODO.

小波变换

近年来,随着人们对图像压缩、边缘和特征检测以及纹理分析的需求的提高,一种新的变换(称为小波变换)悄然出现。傅立叶变换一直是变换域图像处理的基石,它能用正弦与余弦函数之和表示任何分析函数,而小波变换则基于一些有限宽度的基小波,这些小波不仅在频率上是变化的,而且具有有限的持续时间。比如对于一张乐谱,小波变换不仅能提供要演奏的音符,而且说明了何时演奏等细节信息,但是傅里叶变换只提供了音符,局部信息在变换中丢失。

多分辨率分析

多分辨率理论是一种全新而有效的信号处理与分析方法。正如其名字所表达的,多分辨率理论与多种分辨率下的信号(或图像)表示和分析有关。其优势很明显,某种分辨率下无法发现的特性在另一种分辨率下将很容易被发现。本节将从多分辨率的角度来审视小波变换,主要内容将集中在简单介绍多分辨率的相关概念和信号(或图像)的分解与重构算法。

多分辨率框架

多分辨率分析又称为多尺度分析,是小波分析中的重要部分,它将多种学科的技术有效地统一在一起,如信号处理的子带编码、数字语音识别的积分镜像过滤以及金字塔图像处理。多分辨率分析的作用是将信号分解成不同空间的部分,另外,它也提供了一种构造小波的统一框架。在观察图像时,对于不同大小的物体,往往采用不同的分辨率,若物体不仅尺寸有大有小,而且对比有强有弱,则采用多分辨率进行分析就凸显出一定的优势。

比如,地图通常以不同尺度描得,一幅地图的尺度是地域实际大小与它在地图上的表示的比值。在地球仪上,大陆和海洋等主要特征是可见的,而像城市街道这样的细节信息就很难辨识了;而在较小的尺度上,细节变得可见而较大特征却不见了。因此,为了能够从当地导引到一个较远距离处的地点,就需要一套用不同尺度绘制的地图。例如在中国地图上无法看到详细的北京的街道,而在分辨率较高的北京地图上,就能真切地看到北京的各个街道。这就是小波多分辨率的优越性的体现。

小波变换正是沿着多分辨率这条线发展起来的。与时域分析一样,一个信号用一个二维空间表示,不过这里的纵轴是尺度而不是频率。根据时频域分析,一个信号的每个瞬态分量映射到时间-频率平面上的位置对应于分量主要频率和发生的时间。

考虑如图7.3所示的乐谱,它可以看作一个描绘了二维的时频空间。频率(音高)从层次的底部向上增加,而时间(以节拍来测度)则向右发展。乐章中每一个音符对应于一个将出现在这首歌的演出记录中的小波分量(音调猝发)。每一个小波的持续宽度都由音符的类型来编码,而不是由它的水平延伸来编码。假设要分析一次音乐演出的记录,并写出相应的乐谱,这个过程可以说是小波变换。同样,音乐家一首歌的演奏录音可看作是一种小波逆变换,因为它是用时频来重构信号的。

图7.3 乐谱看出时频图

1988年,Mallat提出了多分辨率分析的概念,从空间的概念上形象地说明了小波的多分辨率特性。在介绍多分辨率分析之前,先来了解一下关于小波变换的一些基本概念,这对于理解多分辨率分析有重要作用。
TODO.

所谓基,就是由函数序列组成的空间。
批注:就是坐标系吧。

更多信息参考链接:
https://zhuanlan.zhihu.com/p/22450818

分解与重构的实现

在理解多分辨率分析时,需要把握一个要点:分解的最终目的是力求构造一个在频率上高度逼近的L2 (R )空间的正交小波基,这些频率分辨率不同的正交小波基相当于带宽各异的带通滤波器。另外,多分辨率分析只对低频空间做进一步分解,使频率的分辨率越来越高。

图像处理中分解与重构的实现

前面讲述了一维信号的多分辨率分解与合成算法,对于二维的图像信号,可以从滤波器的角度来理解多分辨率分析。首先对图像先“逐行”做一维小波变换,分解为低通滤波L 和高通滤波H 两个分量,再“逐列”做一维小波变换,分解为LL 、LH 、HL 、HH 四个分量。L 和H 分别表示低通和高通滤波输出。

Gabor多分辨率分析

前面讲到,傅立叶变换能将信号的时域特征和频域特征联系起来,能分别从信号的时域和频域进行分析,但却不能把二者有机地结合起来,这是因为信号的时域波形中不包含任何频域信息,而频域波形中又不包含任何时域信息。也就是说傅立叶变换是时域与频域完全分离的,对于傅立叶频谱中的某一频率,无法知道这个频率是什么时候产生的。傅立叶变换在时域和频域局部化的问题上就显示出了它的局限性。

早在1946年,Gabor注意到傅立叶变换在表示非平稳信号方面的不足,他通过与量子力学中的不确定性原理的类比,发现并证明了一维信号的不确定性原理,即一个同时用时间和频率来刻画的信号特征受它的带宽和持续时间乘积的下限所限制。提出了一种新的算法:Gabor变换。这种变换的基本思想是:把信号划分成许多小的时间间隔,用傅立叶变换分析每一个时间间隔,以便确定信号在该时间间隔存在的频率。

任意可以用高斯函数调制的复正弦形式表示的信号都可以达到时域和频域 联合不确定关系的下限,可以同时在时域和频域获得最佳的分辨率,这种表示是Gabor函数的最初形式。

最近二三十年,随着神经生理学和小波变换技术的发展,Gabor函数逐渐演变为二维小波的形式。二维Gabor小波变换是图像的多尺度表示和分析的有力工具,作为唯一能够取得时域和频域联合不确定关系下限的Gabor函数经常被用作小波基函数,对图像进行各种分析。

常见小波分析

小波变换的基本思想是用一组小波函数或者基函数表示一个函数或者信号。信号分析一般是为了获得时间域和频率域之间的相互关系,傅立叶变换提供了有关频率域的信息,但时间方面的局部化信息却基本丢失。与傅立叶变换不同,小波变换通过平移母小波或基本小波可获得信号的时间信息,而通过缩放小波的宽度或尺度可获得信号的频率特性。在小波变换中,近似值是大的缩放因子产生的系数,表示信号的低频分量。而细节值是小的缩放因子产生的系数,表示信号的高频分量。

与标准的傅立叶变换相比,小波分析中所用到的小波函数具有不唯一性,即小波函数具有多样性。小波分析在应用中的一个十分重要的问题就是最优小波基的选择问题,因为用不同的小波基分析,同一个问题会产生不同的结果。目前使用者主要是通过用小波分析方法处理信号的结果与理论结果的误差来判定小波基的好坏,由此决定小波基函数。

Haar小波

TODO.

Daubechies小波

TODO.

高维小波

TODO.

图像复原

图像复原是图像处理重要的研究领域。在成像过程中,由于成像系统各种因素的影响,可能使获得的图像不是真实景物的完善影像。图像在形成、传播和保存过程中使图像质量下降的过程,称为图像退化。图像复原就是重建退化的图像,使其最大限度恢复景物原貌的处理。

图像复原的概念与图像增强相似。但图像增强可以针对本来完善的图像,经过某一处理,使其适合于某种特定的应用,是一个主观的过程。图像复原的目的也是改善图像质量,但图像复原更偏向于利用退化过程的先验知识使已被退化的图像恢复本来面目,更多的是一个客观过程。引起图像退化的因素包括由光学系统、运动等造成的图像模糊,以及源自电路和光学因素的噪声等。图像复原是基于图像退化的数学模型,复原的方法也建立在比较严格的数学推导上。部分复原技术已经在空域公式化了,可以方便地套用;而另一些技术则适用于频域。

图像复原的理论模型

TODO.

彩色图像处理

彩色基础

什么是彩色

彩色是物体的一种属性,就像纹理、形状、重量一样。通常,它依赖于以下3个方面的因素。

  • 光源——照射光的谱性质或谱能量分布。
  • 物体——被照射物体的反射性质。
  • 成像接收器(眼睛或成像传感器)——光谱能量吸收性质。

其中,光特性是颜色科学的核心。假如光是没有颜色的(消色的,如观察者看到的黑白电视的光),那么它的属性仅仅是亮度或者数值。可以用灰度值来描述亮度,它的范围从黑到灰,最后到白。

而对于彩色光,通常用3个基本量来描述其光源的质量:辐射率、光强和亮度。

  • 辐射率是从光源流出能量的总量,通常用瓦特(W)度量。
  • 光强用流明度量,它给出了观察者从光源接收的能量总和的度量。
  • 亮度是彩色强度概念的具体化。它实际上是一个难以度量的主观描绘子。

同样作为能量的度量,辐射率与光强却往往没有必然的联系。例如,在进行X光检查时,光从X射线源中发出,它是具有实际意义上的能量的。但由于其处于可见光范围以外,作为观察者很难感觉到。因而对人们来说,它的光强几乎为0。

人们眼中的彩色

人类能够感受到的物体的颜色是由物体的反射光性质决定的。可见光是由电磁波谱中较窄的波段组成的。一个物体反射的光如果在所有可见光波长范围内是平衡的,则站在观察者的角度它就是白色的;如果物体仅对有限的可见光谱范围反射,则物体表现为某种特定颜色。例如,反射波长范围在450~500nm之间的物体呈现蓝色,它吸收了其他波长光的多数能量;而如果物体吸收了所有的入射光,则它将呈现为黑色。

三原色

据详细的实验结果,人眼中负责彩色感知的细胞中约有65%对红光敏感,33%对绿光敏感,而只有2%对蓝光敏感。正是人眼的这些吸收特性决定了被看到的彩色是通常所谓的原色红(R)、绿(G)、蓝(B)的各种组合。国际照明委员会(CIE)规定以蓝=435.8nm,绿=546.1nm,红=700nm作为主原色,红(R)、绿(G)、蓝(B)也因此被称为3原色。

在如图9.3所示的CIE色度图中,最外围的轮廓对应着所有的可见光谱色,在其边缘上标出了对应的波长值(以nm为单位),该轮廓之内的区域包含了所有的可见颜色。如果将色度图中的三色点两两连接成一个三角形,则该三角形内的任何颜色都可以由这3种原色的不同混合产生。
CIE色度图

可以看到,图9.3中由R、G、B三种标准原色所连成的三角形并不能涵盖整个可见颜色区域,这说明仅使用三原色并不能得到所有的可见颜色。事实上,图9.3中的三角形区域对应着典型的RGB监视器所能够产生的颜色范围,称为彩色全域;而在三角形内不规则的区域表示高质量的彩色打印设备的彩色域。

计算机中的颜色表示

在计算机中,显示器的任何颜色(色彩全域)都可以由3种颜色红、绿、蓝组成,称为三基色。每种基色的取值范围是0~255。任何颜色都可以用这3种颜色按不同的比例混合而成,这就是三原色原理。在计算机中,三原色的原理可以如下这样解释。

  • 计算机中的任何颜色都可以由3种颜色按不同的比例混合而成;而每种颜色都可以分解成三种基本颜色。
  • 三原色之间是相互独立的,任何一种颜色都不能由其余的两种颜色来组成。
  • 混合色的饱和度由3种颜色的比例来决定。混合色的亮度为3种颜色的亮度之和。

彩色模型

彩色模型也称彩色空间或彩色系统,是用来精确标定和生成各种颜色的一套规则和定义,它的用途是在某些标准下用通常可接受的方式简化彩色规范。彩色模型通常可以采用坐标系统来描述,而位于系统中的每种颜色都由坐标空间中的单个点来表示。

如今使用的大部分彩色模型都是面向应用的或是面向硬件的,比如众所周知的针对彩色监视器的RGB(红、绿、蓝)模型,以及面向彩色打印机的CMY(青、深红、黄)和CMYK(青、深红、黄、黑)模型。而HSI(色调、饱和度、亮度)模型非常符合人眼描述和解释颜色的方式。此外,目前广泛使用的彩色模型还有如:HSV模型、YUV模型、YIQ模型、Lab模型,等等。下面将分别介绍这些彩色模型,并给出它们与最为常用的RGB模型之间的转换方式。

RGB模型

RGB模型是工业界的一种颜色标准,是通过对红(Red)、绿(Green)、蓝(Blue)3个颜色亮度的变化以及它们相互之间的叠加来得到各种各样的颜色的。该标准几乎包括了人类视觉所能感知的所有颜色,是目前运用最广的颜色模型之一。

RGB彩色空间对应的坐标系统是如图9.4所示的立方体。红、绿和蓝位于立方体的3个顶点上;青、深红和黄位于另外3个顶点上;黑色在原点处,而白色位于距离原点最远的顶点处,而灰度等级就沿这两点连线分布;不同的颜色处在立方体上或其内部,因此可以用1个3维向量来表示。例如,在所有颜色均已归一化至[0,1]的情况下,蓝色可表示为(0,0,1),而灰色可由向量(0.5,0.5,0.5)来表示。
RGB彩色立方示意图

在RGB空间中,用以表示每一像素的比特数叫作像素深度。RGB图像的3个红、绿、蓝分量图像都是一幅8bit图像,则每一个彩色像素有24bit深度。因此,全彩色图像常用来定义24bit的彩色图像,颜色总数是(28 )3 =16777216。

RGB模型最常见的用途就是显示器系统,彩色阴极射线管和彩色光栅图形显示器都使用R、G、B数值来驱动R、G、B电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉发出不同亮度的光线,并通过相加混合产生各种颜色。扫描仪也是通过吸收原稿经反射或透射而发送出来的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB彩色空间是与设备相关的彩色空间,因此不同的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同的色彩显示结果。

显示器和扫描仪使用的RGB空间与CIE标准中RGB真实三原色彩色系统空间是不同的,后者是与设备无关的彩色空间。

CMY模型

CMY(Cyan、Magenta、Yellow)模型是采用青、品红、黄色3种基本原色按一定比例合成颜色的方法。由于色彩的显示不是直接来自于光线的色彩,而是光线被物体吸收掉一部分之后反射回来的剩余光线所产生的,因此CMY模型又称为减色法混色模型。当光线都被吸收时成为黑色,都被反射时成为白色。

像CMY模型这样的减色混合模型正好适用于彩色打印机和复印机这类需要在纸上沉积彩色颜料的设备,因为颜料不是像显示器那样发出颜色,而是反射颜色。例如,当青色颜料涂覆的表面用白光照射时,从该表面反射的不是红光,而是从反射的白光中减去红色而得到的青色(白光本身是等量的红、绿、蓝光的组合)。

批注:非光源配方。

CMYK模型

等量的颜料原色(青、品红和黄)可以混合产生黑色。然而在实际当中,通过这些颜色混合产生的黑色是不纯的。因此,为产生真正的黑色(黑色在打印中起主要作用),专门在CMY模型中加入了第4种颜色——黑色,从而得到了CMYK彩色模型。这样当出版商说到“四色打印”时,是指CMY彩色模型的3种原色再加上黑色。

HSI模型

HSI模型是从人的视觉系统出发,直接使用颜色三要素——色调(Hue)、饱和度(Saturation)和亮度(Intensity,有时也翻译作密度或灰度)来描述颜色。

  • 亮度是指人眼感觉光的明暗程度。光的能量越大,亮度越大。
  • 色调是彩色最重要的属性,决定颜色的本质,由物体反射光线中占优势的波长来决定,不同的波长产生不同的颜色感觉,叫某一种颜色为红、橙、黄,这就是说读者在规定一种色调。
  • 饱和度是指颜色的深浅和浓淡程度,饱和度越高,颜色越深。饱和度的深浅和白色的比例有关,白色比例越多,饱和度越低。

HSI彩色空间可以用一个圆锥空间模型来描述,如图9.8所示。通常把色调和饱和度统称为色度,用来表示颜色的类别与深浅程度。在图中圆锥中间的横截面圆就是色度圆,而圆锥向上或向下延伸的便是亮度分量的表示。

HSI模型示意图

由于人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,为了便于颜色处理和识别,人的视觉系统经常采用HSI彩色空间,它比RGB彩色空间更符合人的视觉特性。此外,由于HSI空间中亮度和色度具有可分离特性,使得图像处理和机器视觉中大量灰度处理算法都可在HSI彩色空间中方便地使用。

HSV模型

HSV模型是人们用来从调色板或颜色轮中挑选颜色(例如颜料、墨水等)所采用的彩色系统之一。HSV(Hue,Saturation,Value)表示色调(也称色相)、饱和度和数值。该系统比RGB更接近于人们的经验和对彩色的感知。在绘画术语中,色调、饱和度和数值用色泽、明暗和调色来表达。

HSV模型空间可以用一个倒立的六棱锥来描述,如图9.12所示。顶面是一个正六边形,沿H 方向表示色相的变化,从0°~360°是可见光的全部色谱。六边形的六个角分别代表红、黄、绿、青、蓝、品红6个颜色的位置,每个颜色之间相隔60°。由中心向六边形边界(S方向)表示颜色的饱和度S 变化,S 的值由0~1变化,越接近六边形外框的颜色饱和度越高,处于六边形外框的颜色是饱和度最高的颜色,即S =1;处于六边形中心的颜色饱和度为0,即S =0。六棱锥的高(也即中心轴)用V 表示,它从下至上表示一条由黑到白的灰度,V 的底端是黑色,V =0;V 的顶端是白色,V =1。

YUV模型

YUV是被欧洲电视系统所采用的一种颜色编码方法,是PAL和SECAM模拟彩色电视制式采用的颜色空间。其中的Y、U、V几个字母不是英文单词的组合词,Y 代表亮度,U 、V 代表色差,是构成彩色的两个分量。

彩色图像信号经分色和分别放大校正得到RGB图像,再经过矩阵变换电路得到亮度信号Y 和两个色差信号R -Y 、B -Y ,最后发送端将亮度和色差3个信号分别进行编码,用同一信道发送出去。这就是常用的YUV模型。

YIQ模型

YIQ模型是北美NTSC彩色制式,主要用于美国的电视系统。这种形式和欧洲的YUV模型有相同的优势:灰度信息和彩色信息是分离的。YIQ模型中,Y 代表亮度、I 代表色调、Q 则代表饱和度。其中,亮度表示灰度,而色调和饱和度则存储彩色信息。

Lab模型简介

Lab模型是由CIE(国际照明委员会)制定的一种彩色模式。这种模型与设备无关,它弥补了RGB模型和CMYK模型必须依赖于设备颜色特性的不足;此外,自然界中任何色彩都可在Lab空间表达出来,这就意味着RGB以及CMYK所能描述的颜色信息在Lab中都能得以影射。

全彩色图像处理基础

通常,全彩色图像处理技术总的可以分为两大类。

  1. 对3个平面分量单独处理,然后将分别处理过的3个分量合成彩色图像。对每个分量的处理技术可以应用到对灰度图像处理的技术上。但是这种通道式的独立处理技术忽略了通道间的相互影响。
  2. 直接对彩色像素进行处理。因为全彩色图像至少有3个分量,彩色像素实际上是一个向量。直接处理就是同时对所有分量进行无差别的处理。这时彩色图像的3个分量用向量形式表示,即对彩色图像上任一点的像素c (x , y ),有:
    c (x , y ) = [R (x , y );G (x , y );B (x , y )]
    那么对像素点(x , y )处理的操作实际上是同时对R 、G 、B 这3个分量操作。不过通常大多数图像处理技术都是指对每个分量的单独处理。接下来将讲述全彩色图像处理的两个常用技术:彩色补偿和彩色平衡。

图像压缩

TODO.

形态学图像处理

形态学,即数学形态学(Mathematical Morphology),是图像处理中应用最为广泛的技术之一。其主要应用是从图像中提取对于表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质(最具区分能力——most discriminative)的形状特征,如边界和连通区域等;同时图像细化、像素化和修剪毛刺等技术也常常应用于图像的预处理和后处理中,成为图像增强技术的有力补充。

二值图像中的基本形态学运算

对于大多数图像,一般相对于背景而言物体的颜色(灰度)更深,二值化之后物体会成为黑色,而背景则成为白色,因此通常更习惯于将物体用黑色(灰度值0)表示,而背景用白色(灰度值255)表示。

腐蚀

腐蚀的作用:顾名思义,腐蚀能够消融物体的边界,而具体的腐蚀结果与图像本身和结构元素的形状有关。如果物体整体上大于结构元素,腐蚀的结构是使物体变“瘦”一圈,这一圈到底有多大是由结构元素决定的;如果物体本身小于结构元素,则在腐蚀后的图像中物体将完全消失;如物体仅有部分区域小于结构元素(如细小的连通),则腐蚀后物体会在细连通处断裂,分离为两部分。

更多参考:
https://blog.csdn.net/weixin_41269731/article/details/101195062

膨胀

膨胀的作用:和腐蚀相反,膨胀能使物体边界扩大,具体的膨胀结果与图像本身和结构元素的形状有关。膨胀常用于将图像中原本断裂开来的同一物体桥接起来,对图像进行二值化之后,很容易使得一个连通的物体断裂为两个部分,而这会给后续的图像分析(如要基于连通区域的分析统计物体的个数)造成困扰,此时就可借助膨胀桥接断裂的缝隙。

开运算

开运算是先腐蚀后膨胀。

闭运算

开运算是先膨胀后腐蚀。

二值图像中的形态学应用

击中与击不中变换

形态学击中击不中变换常用于图像中某种特定形状的精确定位,是一种形状检测的基本工具。

边界提取与跟踪

轮廓是对物体形状的有力描述,对于图像分析和识别十分有用。通过边界提取算法可以得到物体的边界轮廓;而边界跟踪算法在提取边界的同时还能依次记录下边界像素的位置信息,下面分别介绍。

1.边界提取
要在二值图像中提取物体的边界,容易想到的一个方法是将所有物体内部的点删除(置为背景色)。具体地说,可以逐行扫描原图像,如果发现一个黑点(图11.17中黑点为前景点)的8个邻域都是黑点,则该点为内部点,在目标图像中将它删除。实际上这相当于采用一个3×3的结构元素对原图像进行腐蚀,使得只有那些8个邻域都有黑点的内部点被保留,再用原图像减去腐蚀后的图像,恰好删除了这些内部点,留下了边界像素。

2.边界跟踪
为了依次记录下边界上的各个像素,边界跟踪首先按照某种扫描规则找到目标物体边界上的一个像素,而后就以该像素为起始点,根据某种顺序(如顺时针或逆时针)依次找出物体边界上的其余像素,直到又回到了起始点,完成整条边界的跟踪。

区域填充

区域填充可视为边界提取的反过程,它是在边界已知的情况下得到边界包围的整个区域的形态学技术。

连通分量提取

在二值图像中提取连通分量是许多自动图像分析应用中的核心任务。提取连通分量的过程实际上也是标注连通分量的过程,通常的做法是给原图像中的每个连通区分配一个唯一代表该区域的编号,在输出图像中该连通区内的所有像素的像素值就赋值为该区域的编号,将这样的输出图像称为标注图像。

细化算法

骨架”是指一副图像的骨骼部分,它描述物体的几何形状和拓扑结构,是重要的图像描绘子之一。计算骨架的过程一般称为“细化”或“骨架化”,在包括文字识别、工业零件形状识别以及印刷电路板自动检测在内的很多应用中,细化过程都发挥着关键作用。通常,对操作者感兴趣的目标物体进行细化有助于突出目标的形状特点和拓扑结构,并且减少冗余的信息量。

像素化算法

细化适用于和物体拓扑结构或形状有关的应用,如前述的手写字符识别。但有时操作者关心的是目标对象是否存在,它们的位置关系,或者是个数,这时在预处理中加入像素化步骤就会给后续的图像分析带来极大的方便。

凸壳

如果连接物体A 内任意两点的直线段都在 A 的内部,则称 A 是凸的。

灰度图像中的基本形态学运算

TODO.

图像分割

图像分割概述

图像分割的方法和种类有很多,有些分割算法可以直接运用于大多数图像,而另一些则只适用于特殊类别的图像,要视具体情况来决定。一般采用的方法有边缘检测(Edge Detection)、边界跟踪(Edge Tracing)、区域生长(Region Growing )、区域分离和聚合等。

图像分割算法一般基于图像灰度值的不连续性或其相似性。不连续性是基于图像灰度的不连续变化分割图像,例如图像的边缘,有边缘检测、边界跟踪等算法;相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。

图像分割在实际的科学研究和工程技术领域中有着广泛的应用。在工业上,应用于矿藏分析、无接触式检测、产品的精度和纯度分析等;生物医学上,应用于计算机断层图像CT、X光透视、核磁共振、病毒细胞的自动检测和识别等;交通上,应用于车辆检测、车种识别、车辆跟踪等;另外,在机器人视觉、神经网络、身份鉴定、图像传输等各个领域都有着广泛的应用。

边缘检测

图像的边缘是图像的最基本特征 ,边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。图像属性中的显著变化通常反映了属性的重要意义和特征。

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。

边缘检测概述

边缘检测可以大幅度地减少数据量,并且剔除那些被认为不相关的信息,保留图像重要的结构属性。

1.边缘检测的基本步骤

(1)平滑滤波:由于梯度计算易受噪声的影响,因此第一步是用滤波去除噪声。但是,降低噪声的平滑能力越强,边界强度的损失越大。

(2)锐化滤波:为了检测边界,必须确定某点邻域中灰度的变化。锐化操作加强了存在有意义的灰度局部变化位置的像素点。

(3)边缘判定:在图像中存在许多梯度不为零的点,但是对于特定应用,不是所有点都有意义。这就要求操作者根据具体情况选择和去除处理点,具体的方法包括二值化处理和过零检测等。

(4)边缘连接:将间断的边缘连接成为有意义的完整边缘,同时去除假边缘。主要方法是Hough变换。

2.边缘检测方法的分类

通常可将边缘检测的算法分为两类:基于查找的算法和基于零穿越的算法。除此之外,还有Canny边缘检测算法、统计判别方法等。

(1)基于查找的方法是通过寻找图像一阶导数中的最大值和最小值来检测边界,通常是将边界定位在梯度最大的方向,是基于一阶导数的边缘检测算法。

(2)基于零穿越的方法是通过寻找图像二阶导数零穿越来寻找边界,通常是拉普拉斯过零点或者非线性差分表示的过零点,是基于二阶导数的边缘检测算法。

基于一阶导数的边缘检测算子包括Roberts算子、Sobel算子、Prewitt算子等,它们都是梯度算子;基于二阶导数的边缘检测算子主要是高斯-拉普拉斯边缘检测算子。

常用的边缘检测算子

1.梯度算子
几个最常用的梯度算子的模板如图12.3所示。
图12.3 梯度算子模板
Roberts算子利用局部差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,同时由于图像没经过平滑处理,因此不具备抑制噪声的能力。该算子对具有陡峭边缘且含噪声少的图像效果较好。

Sobel算子和Prewitt算子都考虑了邻域信息,相当于对图像先做加权平滑处理,然后再做微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。

2.高斯-拉普拉斯算子
在5.5.3小节已经介绍了拉普拉斯算子,但是由于它是一个二阶导数,对噪声具有无法接受的敏感性,而且其幅值会产生双边缘,另外,边缘方向的不可检测性也是拉普拉斯算子的缺点之一,因此,一般不以其原始形式用于边缘检测。

为了弥补拉普拉斯算子与生俱来的缺陷,美国学者Marr提出了一种算法,在运用拉普拉斯算子之前一般先进行高斯低通滤波。

3.Canny边缘检测算子
在图像边缘检测中,抑制噪声和边缘精确定位是无法同时满足的,一些边缘检测算法通过平滑滤波去除噪声的同时,也增加了边缘定位的不确定性;而提高边缘检测算子对边缘的敏感性的同时,也提高了对噪声的敏感性。Canny算子力图在抗噪声干扰和精确定位之间寻求最佳折中方案。

霍夫变换

12.2节介绍了一些边缘检测的有效方法。但实际中由于噪声和光照不均等因素,使得在很多情况下所获得的边缘点是不连续的,必须通过边缘连接将它们转换为有意义的边缘。一般的做法是对经过边缘检测的图像进一步使用连接技术,从而将边缘像素组合成完整的边缘。

霍夫(Hough)变换是一个非常重要的检测间断点边界形状的方法。它通过将图像坐标空间变换到参数空间,来实现直线和曲线的拟合。

批注:霍夫坐标系即参数坐标系。

直线检测

霍夫变换,英文名称Hough Transform,作用是用来检测图像中的直线或者圆等几何图形的。

霍夫变换是相对于笛卡尔直角坐标系的参数坐标系,即笛卡尔中的线对应霍夫中的点,因此可以在霍夫坐标系中选择最多线相交的点,将该点作为直线参数,这样选出的直线就是有最多点经过的直线。而后由于无法表示无穷大,又发展为极坐标表示法。

参考链接:
https://www.cnblogs.com/fcfc940503/p/11303533.html

曲线检测

TODO.

任意形状的检测

TODO.

阈值分割

读者曾在3.5节学习过灰度阈值变换的相关知识,利用灰度阈值变换分割图像就称为阈值分割,它是一种基本的图像分割方法。

阈值分割的基本思想是确定一个阈值,然后把每个像素点的灰度值和阈值相比较,根据比较的结果把该像素划分为两类——前景或者背景。一般来说,阈值分割可以分成以下3步。

  • 确定阈值。
  • 将阈值和像素比较。
  • 把像素归类。

其中第1步阈值的确定是最重要的。阈值的选择将直接影响分割的准确性以及由此产生的图像描述、分析的正确性。

阈值分割方法

阈值分割常用的方法一般有以下几种。

1.实验法
实验法是通过人眼的观察,对已知某些特征的图像,只要试验不同的阈值,然后看是否满足已知特征即可。这种方法的问题是适用范围窄,使用前必须事先知道图像的某些特征,譬如平均灰度等,而且分割后的图像质量的好坏受主观局限性的影响很大。

2.根据直方图谷底确定阈值
如果图像的前景物体内部和背景区域的灰度值分布都比较均匀,那么这个图像的灰度直方图将具有明显双峰,此时可以选择两峰之间的谷底作为阈值,如图12.15所示。
图12.15 根据直方图谷底确定阈值

此种单阈值分割方法简单易操作,但是当两个峰值相差很远时不适用,而且,此种方法比较容易受到噪声的影响,进而导致阈值选取的误差。

对于有多个峰值的直方图,可以选取多个阈值,这些阈值的选取一般没有统一的规则,要根据实际情况运用。

由于直方图是各灰度的像素统计,其峰值和谷底特性不一定代表目标和背景。因此,如果没有图像其他方面的知识,只靠直方图进行图像分割是不一定准确的。

3.迭代选择阈值法
迭代式阈值选择方法的基本思想是:开始选择一个阈值作为初始估计值,然后按照某种规则不断地更新这一估计值,直到满足给定的条件为止。这个过程关键得是选择怎么样的迭代规则。一个好的迭代规则必须既能够快速收敛,又能够在每一个迭代过程中产生的优于上次迭代的结果。

4.最小均方误差法
最小均方误差法也是常用的阈值分割法之一。这种方法通常以图像中的灰度为模式特征,假设各模式的灰度是独立分布的随机变量,并假设图像中待分割的模式服从一定的概率分布。一般来说,采用的是正态分布,即高斯概率分布。

一般来讲,确定能使均方误差最小的参数很复杂,而上述讨论也在图像的前景和背景都为正态分布的条件下成立。但是,图像的前景和背景是否都为正态分布,也是一个具有挑战性的问题。

5.最大类间方差法
在对图像进行阈值分割时,选定的分割阈值应使前景区域的平均灰度、背景区域的平均灰度与整幅图像的平均灰度之间差别最大,这种差异用区域的方差来表示。由此,Otsu在1978年提出了最大方差法。该算法在判决分析最小二乘法原理的基础上推导得出,计算简单,是一种稳定、常用的算法。

区域分割

前面所讲的图像分割方法都是基于像素的灰度来进行阈值分割,本节将讨论以区域为基础的图像分割技术。传统的区域分割方法有区域生长和区域分裂与合并,其中最基础的是区域生长法。

区域生长

区域生长是根据事先定义的准则将像素或者子区域聚合成更大区域的过程。其基本思想是从一组生长点开始(生长点可以是单个像素,也可以为某个小区域),将与该生长点性质相似的相邻像素或者区域与生长点合并,形成新的生长点,重复此过程直到不能生长为止。生长点和相邻区域的相似性判据可以是灰度值、纹理、颜色等多种图像信息。

1.区域生长算法
区域生长一般有以下3个步骤。

  • 选择合适的生长点。
  • 确定相似性准则即生长准则。
  • 确定生长停止条件。

一般来说,在无像素或者区域满足加入生长区域的条件时,区域生长就会停止。

图12.19给出一个区域生长的实例。图12.19(a)为原图像,数字表示像素的灰度。以灰度为8的像素为初始的生长点,记为f (i ,j )。在8邻域内,生长准则是待测点灰度值与生长点灰度值相差为1或者0。那么,如图12.19(b)所示,第1次区域生长后,f (i -1, j )、f (i , j -1)、f (i , j +1)与中心点灰度值相差都为1,因而被合并。第2次生长后,如图12.19(c)所示,f (i +1, j )被合并。第3次生长后,如图12.19(d)所示,f (i +1, j -1)、f (i +2, j )被合并,至此,已经不存在满足生长准则的像素点,生长停止。

图12.19 区域生长示意图

上面的方法是比较单个像素与其邻域的灰度特征以实现区域生长,也有一种混合型区域生长。把图像分割成若干小区域,比较相邻小区域的相似性,如果相似则合并。在实际中,区域生长时经常还要考虑到生长的“历史”,还要根据区域的尺寸、形状等图像的全局性质来决定区域的合并。

区域分裂与合并

区域生长是从一组生长点开始的,另一种方法是在开始时将图像分割为一系列任意不相交的区域,然后将它们合并或者拆分以满足限制条件,这就是区域分裂与合并。通过分裂,可以将不同特征的区域分离开,而通过合并,将相同特征的区域合并起来。

图像分割问题是一个十分困难的问题。因为分割后的图像是系统目标的一个函数,所以根本不存在理想的或正确的分割。

物体及其组成部件的二维表现形式受到光照条件、透视畸变、观察点变化、遮挡等的影响。此外,物体及其组成部件与背景之间在视觉上可能是无法区分的。因此,人们无法预测能够从图像中抽取出哪些与物体识别相关的初始信息。

唯一可以肯定的事情是,这一过程将在本质上具有不可靠性。某些有用的信息能够被抽取出,但同时也会出现许多错误。因此,在任何应用领域中都不存在最优解。分割结果的好坏或者正确与否,目前还没有一个统一的评价判断标准,大都从分割的视觉效果和实际的应用场景来判断。

特征提取

图像特征概述

什么是图像特征

特征是某一类对象区别于其他类对象的相应(本质)特点或特性,或这些特点和特性的集合。特征是通过测量或处理能够抽取的数据。对于图像而言,每一幅图像都具有能够区别于其他类图像的自身特征,有些是可以直观地感受到的自然特征,如亮度、边缘、纹理和色彩等;有些则是需要通过变换或处理才能得到的,如矩阵、直方图以及主成分等。

图像特征的分类

图像特征的分类有多种标准。如从特征自身的特点上可以将其分为两大类:描述物体外形的形状特征,以及描述物体表面灰度变化的纹理特征。而从特征提取所采用的方法上,又可以将特征分为统计特征和结构(句法)特征。

特征向量及其几何解释

常常将某一类对象的多个或多种特性组合在一起,形成一个特征向量来代表该类对象,如果只有单个数值特征,则特征向量为一个一维向量;如果是n 个特性的组合,则为一个n 维特征向量。该特征向量常常被作为识别系统的输入。实际上,一个n 维特征就是一个位于n 维空间中的点,而识别(分类)的任务就是找到对这个n 维空间的一种划分,如图13.1所示。在后面各章的讨论中,一般将待分类的对象称为样本 ,将其特征向量称为样本特征向量或样本向量 。

图13.1 特征向量的几何解释

比如说要区分3种不同的鸢尾属植物,可以选择其花瓣长度和花瓣宽度作为特征,这样就以1个2维特征代表1个植物对象,比如(5.1, 3.5)。如果再加上萼片长度和萼片宽度,则每个鸢尾属植物对象由一个4维特征向量表示,如(5.1, 3.5, 1.4, 0.2)。

特征提取的一般原则

要对某个图像进行分类,应如何提取该图像的特征呢?一个最容易想到的方法是提取图像中所有像素的灰度值作为特征,这样可以提供尽可能多的信息给识别程序(分类器),让分类器具有最大的工作*度。然而,高维度意味着高计算复杂度,这为后续的处理和识别带来了巨大的困难。
此外,很多时候由于操作者已经掌握了有关样本图像的某些先验知识,使得这种把全部像素信息都交给分类器的做法显得没有必要。如已经知道鼻子、肤色、面部轮廓等信息与表情关联不大,那么在表情识别中就不需要人脸照片中的全部信息。可以只拿出眉毛、眼睛和嘴这些表情区域作为特征提取的候选区,这时可以进一步在表情区中提取统计特征。

特征的评价标准

一般来说,特征提取应具体问题具体分析,其评价标准具有一定的主观性。然而,还是有一些可供遵循的普遍原则,能够作为操作者在特征提取实践中的指导。总结如下。

  • 特征应当容易提取。换句话说,为了得到这些特征,付出的代价不能太大。当然,这还要与特征的分类能力权衡考虑。
  • 选取的特征应对噪声和不相关转换不敏感。比如说要识别车牌号码,车牌照片可能是从各个角度拍摄的,而读者关心得是车牌上字母和数字的内容,因此就需要得到对几何失真变形等转换不敏感的描绘子,从而得到旋转不变,或是投影失真不变的特征。
  • 最重要的一点,总是应试图寻找最具区分能力的特征。

基本统计特征

简单的区域描绘子

在经过图像分割得到各种感兴趣的区域之后,可以利用下面将要介绍的一些简单区域描绘子作为代表该区域的特征。通常将这些区域特征组合成特征向量以供分类使用。

常用的简单区域描绘子如下。

  • 周长:区域边界的长度,即位于区域边界上的像素数目。
  • 面积:区域中的像素总数。
  • 致密性:(周长)2 /面积。
  • 区域的质心。
  • 灰度均值:区域中所有像素的平均值。
  • 灰度中值:区域中所有像素的排序中值。
  • 包含区域的最小矩形。
  • 最小或最大灰度级。
  • 大于或小于均值的像素数。
  • 欧拉数:区域中的对象数减去这些对象的孔洞数。

直方图及其统计特征

在第3章点运算中,已经学习过直方图的概念和计算方法,当时直方图更多的是作为一种辅助图像分析的工具。这里则要将直方图作为图像纹理描述的一种有力手段,以直方图及其统计特征作为描述图像的代表性特征。

首先来看纹理的概念。纹理 是图像固有的特征之一,是灰度(对彩色图像而言是颜色)在空间以一定的形式变换而产生的图案(模式),有时具有一定的周期性。图13.2(d)~图13.2(f)给出了3种不同特点的纹理:金属表面的平滑纹理、龟壳表面的粗糙无规则纹理,以及百叶门图像中具有一定周期性的纹理。既然纹理区域的像素灰度级分布具有一定的形式,而直方图正是描述图像中像素灰度级分布的有力工具,因此用直方图来描述纹理就顺理成章了。

毫无疑问,相似的纹理具有相似的直方图;而由图13.2可见,3种不同特点的纹理对应着3种不同的直方图。这说明直方图与纹理之间存在着一定的对应关系。因此,可以用直方图或其统计特征作为图像纹理特征。直方图本身就是一个向量,向量的维数是直方图统计的灰度级数,因此可以直接以此向量作为代表图像纹理的样本特征向量,从而交给分类器处理,对于LBP直方图就常常这样处理(见13.5节)。另一种思路是进一步从直方图中提取出能够很好地描述直方图的统计特征,将直方图的这些统计特征组合成为样本特征向量,这样做的好处是大大降低了特征向量的维数。

图13.2 3种不同特点的纹理

应认识到直方图及其统计特征是一种区分能力相对较弱的特征,主要是由于直方图属于一阶统计特征,而像直方图、均值这样的一阶统计特征是无法反映纹理结构的变化的。

直方图与纹理的对应关系并不是一对一的:首先,不同的纹理可能具有相同或相似的直方图;其次,即便是两个不同的直方图,也可能具有相同的统计特征,如均值、标准差等。因此,依靠直方图及其统计特征来作为分类特征需要特别注意。

灰度共现矩阵

灰度直方图是一种描述单个像素灰度分布的一阶统计量;而灰度共现矩阵描述的则是具有某种空间位置关系的两个像素的联合分布,可以看成是两个像素灰度对的联合直方图,是一种二阶统计量。

纹理是由灰度分布在空间位置上反复交替变化而形成的,因此在图像中具有某种空间位置关系的两个像素之间会存在一定的灰度关系,这种关系被称为图像灰度的空间相关特性。作为一种灰度的联合分布,灰度共现矩阵能够较好地反映这种灰度空间相关性。

特征降维

维度灾难

之前已经不止一次提到了特征向量的维数过高会增加计算的复杂度,给后续的分类问题带来负担。实际上维数过高的特征向量对于分类性能(识别率)也会造成负面的影响。直观上通常认为样本向量的维数越高,就了解了样本更多方面的属性,掌握了更多的情况,应该对提高识别率有利。然而,事实却并非如此。

对于已知的样本数目,存在着一个特征数目的最大值,当实际使用的特征数目超过这个最大值时,分类器的性能不是得到改善,而是退化。这种现象正是在模式识别中被称为“维度灾难”的问题的一种表现形式。例如,要区分西瓜和冬瓜,表皮的纹理和长宽比例都是很好的特征,还可以再加上瓜籽的颜色以辅助判断,然而继续加入重量,体积等特征可能是无益的,甚至还会对分类造成干扰。

基于以上所述的原因,降维就对操作者产生了巨大的吸引力。在低维空间中计算和分类都将变得简单很多,训练(教授分类器如何区分不同类样本的过程)所需的样本数目也会大大降低。通过选择好的特征,摒弃坏的特征,将有助于分类器性能的提升;在通过组合特征降维时,在绝大多数情况下,丢弃某些特征所损失的信息通过在低维空间中更加精确的映射可以得到补偿。

具体地说,降低维度又存在着两种方法:特征选择和特征抽取。特征选择是指选择全部特征的一个子集作为特征向量;特征抽取是指通过已有特征的组合建立一个新的特征子集,主成分分析方法(Principal Component Analysis, PCA)就是通过原特征的线性组合建立新的特征子集的一种特征抽取方法。

特征选择简介

批注:本节是通过部分特征组合来枚举测试效果的。

主成分分析

主元分析也就是PCA,主要用于数据降维。

批注:很复杂。

参考链接:
https://www.zhihu.com/question/41120789?sort=created

局部二进制模式

局部二进制模式(Local Binary Patterns ,LBP)最早是作为一种有效的纹理描述算子提出的,由于其对图像局部纹理特征的卓越描绘能力而获得了十分广泛的应用。LBP特征具有很强的分类能力(Highly Discriminative)、较高的计算效率并且对于单调的灰度变化具有不变性。

TODO.

图像识别初步

模式识别概述

模式识别(Pattern Recognition )是人类 的一项基本智能,在日常生活中,人们经常在进行“模式 识别”。随着20世纪40年代计算机 的出现以及20世纪50年代人工智能 的兴起,人们当然也希望能用计算机来代替或扩展人类的部分脑力劳动。(计算机)模式识别在20世纪60年代初迅速发展并成为一门新学科。

模式与模式识别

模式是由确定的和随机的成分组成的物体、过程和事件。在一个模式识别问题中,它是本节识别的对象。

模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,简单地说就是应用计算机对一组事件或过程进行鉴别和分类。

本节所指的模式识别主要是对语音波形、地震波、心电图、脑电图、图片、照片、文字、符号、生物的传感器等对象 进行测量的具体模式进行分类和辨识。

模式识别与统计学、心理学、语言学、计算机科学、生物学、控制论等都有关系。它与人工智能、图像处理的研究有交叉关系。例如自适应或自组织的模式识别系统包含了人工智能的学习机制;人工智能研究的景物理解、自然语言理解也包含模式识别问题。又如模式识别中的预处理和特征提取环节需要应用图像处理的技术;而图像处理中的图像分析也常常应用模式识别的技术。

图像识别

将模式识别的方法和技术应用于图像领域,即当识别的对象是图像时就称为图像识别 。虽然对人类而言,理解和识别所看见的东西似乎是一件再平常不过的事情,但让计算机具有类似的智能却是一项极具挑战性的任务,然而两者在很多环节上是相似的,下面从熟悉的人类视觉过程开始,认识机器的图像识别机理。

将模式识别的方法和技术应用于图像领域,即当识别的对象是图像时就称为图像识别 。虽然对人类而言,理解和识别所看见的东西似乎是一件再平常不过的事情,但让计算机具有类似的智能却是一项极具挑战性的任务,然而两者在很多环节上是相似的,下面从熟悉的人类视觉过程开始,认识机器的图像识别机理。

图形刺激作用于感觉器官,人们辨认出它是经验过的某一图形的过程,也叫图像再认。所以说在图像识别中,既要有当时进入感官的信息,也要有记忆中存储的信息。只有通过存储的信息与当前的信息进行比较的加工过程,才能实现对图像的再认。这一点和计算机的识别中,需要先学习一些已经类别的样本(训练样本),才能识别那些类别未知的新样本(测试样本)是相似的。

人的图像识别能力是很强的。图像距离的改变或图像在感觉器官上作用位置的改变,都会造成图像在视网膜上的大小和形状的改变,即使在这种情况下,人们仍然可以认出他们过去知觉过的图像;此外,人类还具有非凡的3D重建能力,比如说可能只见过某人的正面照片,但可以认出此人的侧脸甚至是背脸。从这个意义上说,目前计算机的识别能力与人类就相差甚远了。

图像识别可能是以图像的主要特征为基础的。每个图像都有它的特征,如字母A有个尖,P有个圈、而Y的中心有个锐角等。相关研究表明,识别时视线总是集中在图像的主要特征上,也就是集中在图像轮廓曲度最大或轮廓方向突然改变的地方,这些地方的信息量最大。而且眼睛的扫描路线也总是依次从一个特征转到另一个特征上。由此可见,在图像识别过程中,知觉机制必须排除输入的多余信息,抽出关键的信息。同时,在大脑里必定有一个负责整合信息的机制,它能把分阶段获得的信息整理成一个完整的知觉映象。这一点正好说明了图像识别中特征提取的必要性。

图像识别中著名的的模板匹配模型认为,要识别某个图像,必须在过去的经验中有这个图像的记忆模式,又叫模板。当前的刺激如果能与大脑中的模板相匹配,这个图像就被识别了。例如有一个字母A,如果在脑中有个A模板,字母A的大小、方位、形状都与这个A模板完全一致,字母A就被识别了。但这种模型强调图像必须与脑中的模板完全匹配才能成功识别,而事实上人不仅能识别与脑中的模板完全一致的图像,也能识别与模板不完全一致的图像。例如,人们不仅能识别某一个具体的字母A,也能识别印刷体的、手写体的、方向不正、大小不同的各种字母A。这就提示操作者,匹配过程不应基于完全相同的比较而是应基于某种相似性的度量。

关键概念

  • 模式类(Pattern Class):是指共享一组共同属性(或特征)的模式集合,通常具有相同的来源。
  • 特征(Feature):是一种模式区别于另一种模式的相应(本质)特点或特性,是通过测量或处理能够抽取的数据。
  • 噪声(Noise):是指与模式处理(特征抽取中的误差)和(或)训练样本联合的失真,它对系统的分类能力(如识别)产生影响。
  • 分类/识别(Classification/Recognition):是指根据特征将模式分配给不同的模式类,识别出模式的类别的过程。
  • 分类器(Classifier):可理解为为了实现分类而建立起来的某种计算模型,它以模式特征为输入,输出该模式所属的类别信息。
  • 训练样本(Training Sample):是一些类别信息已知的样本,通常使用它们来训练分类器。
  • 训练集合(Training Set):训练样本所组成的集合。
  • 训练/学习(Training/Learning):是指根据训练样本集合,“教受”识别系统如何将输入矢量映射为输出矢量的过程。
  • 测试样本(Testing Sample):是一些类别信息对于分类器未知(不提供给分类器其类别信息)的样本,通常使用它们来测试分类器的性能。
  • 测试集合(Testing Set):测试样本所组成的集合。当测试集合与训练集合没有交集时,称为独立的测试集。
  • 测试(Testing):是将测试样本作为输入送入已训练好的分类器,得到分类结果并对分类正确率进行统计的过程。
  • 识别率(Accuracy):是指对于某一样本集合而言,经分类器识别正确的样本占总样本数的比例。
  • 泛化精度(Generalization Accuracy):分类器在独立于训练样本的测试集合上的识别率。

识别问题的一般描述

TODO.

过度拟合

一般来说,简单的模型具有计算复杂度上的优势,训练它们所需的样本数目通常也更少,但它们对空间的划分往往不够精确,导致识别精度受到一定的限制;而复杂的模型可以更好地拟合训练样本,产生非常适应训练数据的复杂决策边界,从而有理由期望它们在测试集上也会有好的表现。然而,这一美好的愿望并不总能实现,事实上,过度复杂的决策边界常常导致所谓“过度拟合”(Overfit)现象的发生。

模式识别系统结构

TODO.

训练/学习方法分类

教师指导的学习:又称为有监督学习。是指在训练样本集中的每个输入样本类别均已知的情况下进行学习,也就是使用训练模式和相应的类别标记一起来教授分类器。日常生活中有监督学习的一个例子是教孩子识字,教师将字本身(样本)和具体是什么字(类别)一起教给孩子。

无教师指导的学习又称为无监督学习。是指在样本中没有相应的类别信息的情况下,系统对输入样本自动形成“自然的”组织或簇(Cluster)。如“聚类算法”就是一种典型的无监督学习。

加强学习又称为基于评价的学习。在加强学习中,并不把类别信息直接提供给分类器,而是让分类器自己根据输入样本计算输出类别,将它与已知的类别标记进行比较,判断对已知训练模式的分类是否正确,从而辅助分类器的学习。日常生活中加强学习的一个例子是提供正确答案的考 试讲评,这里考生就相当于分类器,他们先是独立考试(分类),而后根据教师提供的标准答案来改善知识体系(分类器模型)。

模式识别方法分类

有两种基本的模式识别方法,即统计模式识别(Statistical Pattern Recognition)方法和句法(结构)模式识别(Syntactic Pattern Recognition)方法。统计模式识别是对模式的统计分类方法,即结合统计概率论的贝叶斯决策系统 进行模式识别的技术,又称为决策理论识别方法;而利用模式与子模式分层结构的树状信息所完成的模式识别工作,就是句法(结构)模式识别。

最小距离分类器和模板匹配

最小距离分类又称最近邻分类,是一种非常简单的分类思想。这种基于匹配的分类技术通过以一种原型模式向量代表每一个类别,识别时一个未知模式被赋予一个按照预先定义的相似性度量与其距离最近的类别,常用的距离度量有欧氏距离、马氏距离等。

人工神经网络

人工神经网络简介

人工神经网络(Artificial Neural Networks, ANN)也简称为神经网络(NN),是对人脑或生物神经网络(Natural Neural Network)若干基本特性的抽象和模拟。它为从样本中学习值为实数、离散值或向量的函数提供了一种健壮性很强的解决方案,已经在诸如汽车自动驾驶、光学字符识别(OCR)和人脸识别等很多实际问题中取得了惊人的成功。

对于一个分类问题,本书的目标就是学习决策函数h (x ),该函数的输出为离散值(类标签)或者向量(经过编码的类标签),ANN自然能够胜任这一任务;此外,由于可学习实值函数,ANN也是函数拟合的利器。

仿生学动机

1.生物神经网络
众所周知,生物大脑由大量的神经细胞(神经元 ,Neuron)组成,这些神经元相互连接成十分复杂的网络。每个神经元由3部分组成:树突、细胞体和轴突,如图15.1所示。树突是树状的神经纤维接受网络,它将输入的电信号传递给细胞体;轴突 是单根长纤维,它把细胞体的输出信号导向其他神经元。大量这样的神经元广泛地连接从而形成了网络。神经元的数目、排列拓扑结构以及突触的连接强度决定了生物神经网络的功能。

图15.1 生物神经元及其连接方式

神经元之间利用电化学过程传递信号。一个神经元的输入信号来自另一些神经元的输出,这些神经元的轴突末梢与该神经元树突相遇形成突触。大脑神经元有两种状态:兴奋和抑制。细胞体对这些输入信号进行整合并进行阈值处理。如果整合后的刺激值超过某一阈值,神经元被激活而进入兴奋状态,此时就会有一个电信号通过轴突传递给其他神经元;否则神经元就处于抑制状态。

生物大脑具有超强的学习能力。相关研究表明,如果一个神经元在一段时间内频繁受到激励,则它与连接至输入的神经元之间的连接强度就会相应地改变,从而使得该神经元细胞再次受到激励时更易兴奋;相反,一个某段时间内不被激励的神经元的连接有效性会慢慢地衰减。这一现象说明神经元之间的连接具有某种可塑性(可训练性)。

一个训练生物神经网络的例子如人类学习下棋。起初在没有接受过任何下棋训练时,可以理解为大脑神经元网络处于一个随机状态,对于某一个棋局(输入),产生一个随机的应对策略(网络的实际输出);接下来,这一应对策略会从指导教师(教下棋的人或者是一本棋谱)那里得到相应的反馈(这一步下得好还是不好,或者正确的走法是什么,相当于训练样本的目标输出),并以此反馈作为调整网络神经元之间连接(这些连接具有可训练性)的依据;随着这种训练和调整过程的进行,网络对于新的棋局(输入)的决策越来越接近于最优决策(实际输出更加接近于目标输出),网络处于一种善于对某个棋局做出正确反映的状态。这就是我们在学习下棋时从一个初学者到高手的过程。

2.人工神经网络
人工神经网络(ANN,以下简称网络或神经网络)的研究在相当程度上受到了生物大脑的仿生学启发,它由一系列简单的人工神经元相互密集连接构成,其中每个神经元同样由3部分组成:输入、人工神经细胞体和输出。每个神经元具有一定数量的实数值输入,并产生一个实数值的输出。

一个人工神经元的输入信号来自另一些神经元的输出,其输出又可以作为另一些神经元的输入。一种称为感知器的人工神经元同样具有2种状态:1和-1。人工神经细胞对这些输入信号进行整合并进行阈值处理。如果整合后的刺激值超过某一阈值神经元被激活而进入1状态;否则神经元就处于-1状态。

正如大脑可以通过不断调节神经元之间的连接而达到不断学习进步的目的。ANN也可以通过不断调整输入连接上的权值以使得网络更加适应训练集合。

在ANN的训练过程中,训练样本特征向量是ANN的输入,训练样本的目标输出(在分类问题中为类别信息)是网络的输出。初始情况下,网络权值被初始化为一种随机状态,当把某个训练样本输入网络时,由此产生的网络输出与训练样本目标输出之间的差异称为训练误差;接下来,ANN将根据某种机制调节权值w ,使得训练误差逐步减小;随着这种训练和调整过程的进行,网络对于训练样本的实际输出将越来越接近于目标输出。

人工神经网络(ANN) 生物神经网络
输入 树突
输出 轴突
人工神经细胞 生物神经细胞体
人工神经元的1、-1两种状态 生物神经元的兴奋和抑制状态
ANN的训练 大脑的学习
网络权值的调整 生物神经细胞之间连接的调节
ANN对于特定输入样本的输出 大脑对于特定输入情况的决策

人工神经网络的理论基础

训练线性单元的梯度下降算法

1.感知器(Perceptron)
TODO.

2.线性单元(Linear Unit)
TODO.

3.误差准则
TODO.

4.梯度下降法(Gradient Descent)的推导
TODO.

5.增量梯度下降(Incremental Gradient Descent)
TODO.

支持向量机

TODO.

参考链接:
https://book.douban.com/subject/26201921/
https://blog.csdn.net/Hanghang_/article/details/87064184