第1章 数字图像处理基础
1.1 数字图像处理概述
数字图像处理(Digital Image Processing)是指通过计算机对图像进行分析、加工和处理,使之满足视觉、心理、工业生产等要求的技术。作为信号处理(Signal Processing)的一个子领域,相较于模拟图像处理(Analog Image Processing)技术,数字图像处理技术有很多优势。首先,数字图像处理的过程中不会引入新的噪声和失真,可以更好地保持图像原有的信息;其次,数字图像处理技术比模拟图像处理技术更加灵活,可以方便地引入多种多样的计算机算法。因此,数字图像处理逐渐取代了模拟图像处理技术,被广泛地应用于生活和生产中。
巴特兰有线图像传输系统(简称巴特兰系统)是数字图像处理技术的早期应用之一。该系统由哈里 巴塞洛缪和梅纳德 麦克法兰发明,利用电缆传输数字图像。在1921年,他们首次应用这一系统,通过大西洋的海底电缆将数字图像从伦敦传递到纽约。在该系统发明前,跨大西洋传输一幅图像需要数天,而巴特兰系统一次传输只需要花费几个小时,因而该系统的发明对新闻业产生了巨大的影响。
1957年,罗素 基尔希和他的团队发明了世界上第一台数字图像扫描仪。基尔希曾选择自己刚刚出生不久的儿子的照片来测试扫描仪,这使得这张照片成为世界上*早通过扫描仪扫描并存储在计算机的图片之一。在将图片扫描后,他们还利用这些数字图像测试了边缘增强滤波器(Filter)等一系列图像处理算法。可以说,他们的发明显著地促进了数字图像处理技术和计算机视觉技术的进步。2003年,这张照片入选了时代杂志评选的“改变世界的100张图片”。
数字图像处理作为一门学科形成于20世纪60年代初期。在1964年,徘徊者7号探测器成功地将上千张月球的图像传输回地球。受到电磁辐射等因素的干扰,这些图像的质量很差。为了改善图像的质量,加州理工学院的喷气推进实验室(Jet Propulsion Laboratory)率先将去噪、几何修正、灰度变换等数字图像处理技术应用于这些图像,并取得了巨大的成功。可以说,这是数字图像处理技术首次真正意义上的应用。图1.1是经过处理后徘徊者7号探测器从月球发回的照片。
1989年,法国计算机科学家 LeCun 等率先将卷积神经网络(Convolutional Neural Network,CNN)应用于手写数字识别[1]。随后在1998年,他们提出了 LeNet[2]模型,这是人类首次使用卷积–池化(Pooling)–全连接(Fully Connected,FC)层结构的神经网络结构。可以说,他们的一系列工作开启了在数字图像处理领域应用卷积神经网络的先河。然而由于计算能力的瓶颈以及神经网络本身的可解释性问题,在随后的几十年里,卷积神经网络的发展走向了暂时的低谷。
图1.1 徘徊者7号探测器发回的照片之一
图形处理单元(Graphics Processing Unit,GPU)是用于在计算机上运行绘图运算工作的微处理器,它拥有数百甚至数千个核心,具有进行并行计算的潜力。2011年,Ciresan 等在 NVIDIA 公司推出的图形处理器上训练卷积神经网络,其训练速度是使用同时代中央处理器(Central Processing Unit,CPU)训练速度的10~60倍[3]。随着计算能力的提升,基于卷积神经网络的一系列数字图像处理方法重新引起人们的关注。2012年,由 Krizhevsky 等设计的 AlexNet[4]在同年的 ImageNet 大规模视觉识别挑战赛上取得了15.3%的错误率,比第二名低10.8%,掀起了卷积神经网络应用于数字图像处理领域的热潮。此后,在图像复原、图像增强、目标检测、图像分割等领域,基于卷积神经网络的一系列方法取得了出色的效果。目前,卷积神经网络已经成为数字图像处理领域的研究重点。
1.1.1 图像的概念
图像(Image)是人类对视觉感知的物质再现。图像可以通过光学设备获取,如显微镜成像;也可以通过自然事物人为地创作得到,如绘画、雕塑;也可以通过电子元件捕获,如数码相机通过其感光元件将图像转化为电信号,并存储在存储器中。
图像可以被定义为一个二维函数 f(x, y)∈ Rn,其中 x 和 y 都是空间坐标(这里我们不考虑动态图像,如视频,也不考虑三维图像,如全息图),而 f 在任意坐标(x, y)处的取值代表该点处图像的亮度情况。当 x、y、f(x, y)的取值都是有限的离散值时,这个图像就是数字图像,反之则为模拟图像。可以说,数字图像是由有限个位置上的亮度信息组成的,这些位置上的亮度信息是数字图像不可再分的基本元素,称为像素(Pixel)。
在实践中,人们往往需要将模拟图像转换成数字图像。为此,首先需要取一些点(x, y)处的亮度值,称为取样(Sampling),保证了 x、y 都是有限的离散值。为了使 f(x, y)的取值也是有限的离散值,还需要将源图像(Source Image)中 f(x, y)的取值按一定规则近似成某一范围的整数,这个过程称为量化(Quantization)。对模拟图像进行取样与量化并使其*终转化为数字图像的过程就称为数字化(Digitize)。
用来表示图像颜色的方法称为色彩模式。常见的色彩模式有很多:RGB 色彩模式通过红(Red)、绿(Green)、蓝(Blue)三原色光的强度来表示色彩;HSV 色彩模式通过色相(Hue)、饱和度(Saturation)、明度(Value)来表示色彩;而广泛应用于印刷领域的 CMYK 色彩模式则是利用青色、洋红色、黄色和黑色四种颜色的强度来表示图像。这些色彩模式都需要多个分量来表示颜色,每一个分量对应的灰度图像就称为通道(Channel)。
1.1.2图像的分类
按照在计算机中存储的方式,数字图像可以分为二值图像(Binary Image)、灰度图像(Grayscale Image)、彩色图像、索引图像(Indexed Images)。
(1)二值图像:二值图像就是每个像素只有0,1两种取值的数字图像。由于每个像素只有0和1两种取值,二值图像经常作为图像分割、图像二值化的处理结果。
(2)灰度图像:灰度图像是每个像素只有一个采样值的数字图像。如果采样值只有0,1两种取值,灰度图像就退化为二值图像了。
(3)彩色图像:彩色图像的每个像素都需要用多个分量的强度值来表示。表示彩色图像的这些方式也就是色彩模式。
(4)索引图像:索引图像用颜色索引表存储图片中出现的所有颜色在色彩空间中的取值。而在图片矩阵中存储对应颜色在索引表中的索引值。在读取索引图像时,对每个像素,都要先查找颜色索引表,然后读取对应的色彩值。
从图像是否随时间变化,我们可以把数字图像分为静止图像和动态图像。如果一幅图像各像素的亮度值不随时间变化而变化,就称其为静止图像。在动态图像中,像素的位置不能用二维的(x, y)表示,而是变成了三维的(x, y, t),其中 t 是时间变量。动态图像*常见的一个例子就是视频。利用人眼成像的视觉暂留(Persistence of Vision)效应,动态图像通过把多张静态图像以较快的速度进行切换,使得人能够看到不断变化的图像。
1.1.3 图像的语义
语义,即语言所蕴含的意义。语言由符号组成,符号本身并没有含义,而由符号组成的语言却蕴含着丰富的信息,这些信息就是语义。同样地,图像是由一系列亮度值组成的,一个像素处的亮度值本身并不蕴含信息,而图像中却蕴含有丰富的信息。通过类比,我们可以定义图像的语义:图像的语义就是图像中蕴含的意义。
按照抽象程度的高低,图像语义可以分成低层语义(Low-level Semantics)与高层语义(High-level Semantics)两类。低层语义主要是图像的特征,如图像中的色彩、形状、纹理等。与低层语义相关的数字图像处理技术主要包括如下内容。
(1)图像边缘检测(Edge Detection):图像边缘检测的目标是检测和标识数字图像中亮度或色彩变化明显的点。图像的边缘蕴含着丰富的图像结构信息,可以进一步用于改善图像增强、目标检测、图像分割等的效果。
(2)图像增强(Image Enhancement):在图片增强问题中,人们希望能有选择地突出图像中一些感兴趣的区域,或者抑制一些不重要的特征,来改善图像的质量。例如,在较差的光照条件下拍摄的图像往往存在亮度低、对比度差等问题。这不仅影响观感,也影响目标检测、图像分割等下游任务的效果。低光照图像增强方法就可以用来改善这些图像的质量。
(3)图像融合(Image Fusion):图像融合是通过两幅或多幅图像的信息综合生成一幅图像的技术。通过综合利用这些图像在时空上的相关性、信息上的互补性,图像融合技术可以生成高质量的图像,从而方便人或计算机的进一步使用。
(4)图像复原(Image Restoration):数字图像在成像、数字化和传输过程中常受到成像设备与外部环境噪声干扰,这一过程就是图像的退化(Degenerate)。图像复原的目标是通过先验知识去恢复被退化的图像。由于退化的原因是多种多样的,图像复原有很多分支,如图像去噪(Image Denoising)、图像去雨、图像去雾、图像去模糊等。
高层语义侧重于图像中蕴含的物体与概念,如图像中物体的相对位置,图像通过场景、行为、情感表达的意义等。高层语义更接近于人类对图像的理解,抽象程度更高。与高层语义相关的数字图像处理技术主要包括如下内容。
(1)图像分类(Image Classification):图像分类任务的目标是给图像一个或者多个标签,以指示图像中的主要内容或所属类别。常见的图像分类的应用有相册图片归类、以图搜图、场景识别、医疗病理图像分类等。
(2)目标检测(Object Detection):目标检测技术是用于从图像中识别和定位预定义类别的物体实例的技术,一般包含目标定位和目标分类两个子任务,涉及了回归和分类两个课题。目标检测的应用方向包括:人脸识别、车辆检测、安保系统、医疗领域等。
(3)图像分割(Image Segmentation):图像分割指的是根据图像的灰度、色彩、纹理、几何形状等特征,将图像划分成若干个互不相交的区域,使得同一区域内的像素有某种共同的视觉特性。图像分割算法在医学图像处理、无人驾驶、安防监控等领域都得到了广泛的应用。
1.2 数字图像处理基本运算
1.2.1 基本运算类型
在图像处理中,我们经常要采用各种各样的算法来对图像进行处理。根据输入图像得到输出图像运算的数学特征则可以将图像处理运算方式分为以下三种:①点运算;②代数运算;③几何运算。本节将对这三种类型分别进行详细的介绍,值得注意的是,上面几种类型的算法均属于在空间域上的操作,与之相对应的变换域操作则不在此进行介绍。
1.2.2 点运算
图像的点运算指将单张输入图像映射为单张输出图像,在此过程中输出图像每个像素点的灰度值只由对应输入图像像素点的值决定。而此类点运算常常用于改变图像的灰度范围及其分布,所以也是图像数字化及图像显示的重要工具。由于其作用性质,点运算也常被称为对比度增强、对比度拉伸或是灰度变换。点运算实质上是一种由灰度到灰度的映射过程,设输入图像为 A(x),输出图像为 B(x),则点运算可以表示为
(1.1)
换言之,点运算完全由灰度映射函数 f 决定。由于仅为灰度间的映射,点运算不会改变图像像素之间的空间关系。接下来我们介绍一些常见的点运算方法。
1.线性点运算
对于线性点运算,其灰度变换函数可以描述为以下形式:
(1.2)
展开