场景图像有着截然不同的成像特性如分辨率低、大小不一、光照不均等。这些特性影响着文本定位、词图像分割到字符识别等各个过程。在将场景条件下的文本图像输入到各个模块前,对图像进行必要的预处理,对定位和识别正确率的提高有一定的帮助。本章从以下几个方面对文本图像进行预处理:一是在图像进行聚类和显著性检测前,对场景文本图像进行颜色空间变换;二是得到文本词图像后,文本行可能不是以水平直线方式存在的,将词图像校正到水平位置有利于后续的词图像分割;三是对单个字符进行提取特征前,需要去噪来消除噪声对有效特征提取的影响;四是二值化,这一过程则贯穿在文本定位和识别的过程,较好的二值化能够提高识别结果的正确性。
颜色空间一般用来对颜色进行表示。不同的颜色空间有不同的目的:如用来减少颜色的数量、适应人眼对颜色的感知等。下面对两种类型的颜色空间进行阐述并对颜色空间进行转换。
设备相关的颜色空间最常使用的是RGB(Red,Green and Blue)和CMYK(Cyan,Magenta,Yellow and Black)。RGB应用于显示器中,采用的是加色模型,RGB空间中的所有颜色都可以看作是三个基本颜色红、绿、蓝的组合。其他颜色空间大部分都是从RGB空间转换而来的。CMYK应用在打印机设备上,采用的是减色模型。CMYK中的CMY分量是从白光中减去青、品红和黄而产生的,而K是为了打印出黑色分量而加入的。和设备相关的颜色空间与人类的感知系统有一定的差距,在面对那些需要人类的主观认识的应用中,就需要提出新的颜色空间
这类颜色空间又可以分为两种:一种为国际照明委员会(International Commission on Illumination,CIE)制定的标准颜色空间如CIE XYZ,CIE Lab等。另一类为常用的HIS(Hue,Saturation and Intensity),HSV(Hue,Saturation and Value)等。在1931年,CIE通过研究人类颜色感知而提出的一种标准即为CIE XYZ[24]。这个标准定义了具有三重刺激值的三维空间来表示颜色。随后,经过几十年的发展,CIE提出了几种比XYZ更加适合于某些目的的颜色空间。这其中包括经常用到的是Lab颜色空间,这一感知均匀的颜色空间能够和颜色的视觉外观相关联。HSV相比RGB更能体现出人类感知颜色的方式。H的值从小到大对应的是颜色从红到黄、绿、再回到红。S代表的是颜色的纯度,S的值从小到大对应颜色的饱和度的变化。V值代表的是颜色的亮度,从小到大对应的颜色就越来越亮。
在场景文本的定位和识别中,最经常用到的颜色空间变换是将RGB空间转换到CIE Lab空间,例如在计算视觉显著性和进行颜色聚类的时候。Lab空间最接近于人类的视觉,它使用L部分来调整亮度对比度并用a、b部分来进行精确的颜色平衡更正。RGB空间无法直接转换到Lab空间,需要通过CIE XYZ来进行中间转换,RGB到XYZ空间的转换如下式:
XYZ空间转换到Lab空间:
其中 f(t) 可以表示为下式:
从rgb空间转换到CIE lab空间的matlab,主要是两个函数配合使用一个是
主要是创建有type类型定义的颜色空间转换的颜色空间变换结构。
生成的结构作为一个参数用在applycform中。
对A进行颜色空间变换,其中变换的方式有C决定。最后返回的是B
%---------------------------------------------------------
% Perform sRGB to CIE Lab color space conversion (using D65)
%---------------------------------------------------------
%cform = makecform('srgb2lab', 'AdaptedWhitePoint', whitepoint('d65'));
cform = makecform('srgb2lab');
lab = applycform(gfrgb,cform);
噪声存在场景文本图像的各个部分,其有可能是拍摄时引入,也有可能是在对图像进行处理的过程中引入的。这里的去噪一般对单个字符图像进行处理。对单个字符的去噪是为了在特征提取阶段不生成无效的表征。下面从噪声分类和去噪方法两个方面来对文本图像中的噪声进行说明。
这里只研究简单加性噪声模型.其中图像中典型的噪声模型是高斯噪声模型和脉冲噪声模型。高斯噪声模型的噪声独立于每个像素和像素亮度,符合的是零均值高斯分布.另一个比较常见的噪声模型是脉冲噪声模型,这一噪声模型仅有两个可能的值,并且噪声在图像中出现的概率不能超过0.1。脉冲噪声一般是由相机的传感器单元异常、存储单元失败或者是图像数字化和传输错误等问题引起的。
每类噪声都有相对应于各个噪声的去噪方法,在场景文本图像中,比较常见的噪声是高斯噪声和脉冲噪声。
统计排序滤波器比较适用于处理脉冲噪声,它的原理是在一个窗口中对所有的像素按照灰度值大小进行排序,然后把窗口中间的像素替换为排序序列的某一顺序值。根据要替代窗口中像素值的像素所处的顺序可以分为中值滤波器,最大值滤波器和最小值滤波器,其中中值滤波器能够有效地去除椒盐噪声。
对于高斯噪声而言,一般是采用线性滤波器进行滤除。这些滤波器首先定义一个窗口大小的模板,模板上设定好掩模系数,然后将模板不断的滑过图像进行卷积运算得到滤波后的图像。
在实验中,文本图像的去噪主要是对裁剪后的单个字符进行的,主要采用是中值滤波器和时域高斯低通滤波器,其中中值滤波器的窗口大小设置为5,同样高斯滤波器的窗口也设置为 5。文本图像的去噪效果如图2. 6
close all;
clear all;
clc;
%%
[fn pn fi]=uigetfile('*.*','choose a picture');
colorImage=imread([pn fn]);
%%中值滤波
grayImage = rgb2gray(colorImage);
K=medfilt2(grayImage,[5 5]);
% %K = filter2(fspecial('average',3),grayImage)/255;
subplot(121),imshow(grayImage);
subplot(122),imshow( K);
% figure, imshow(K)
%%
%时域高斯低通去噪
[fn pn fi]=uigetfile('*.*','choose a picture');
x=imread([pn fn]);
y2 = fspecial('gaussian',5,2);
z2 = imfilter(x,y2,'symmetric');
subplot(121),imshow(x);
subplot(122),imshow(z2)
去噪效果图一
去噪效果图二