冉鑫,彭将辉
(上海海事大学 商船学院,上海 201306)
船舶水尺是在船舶的首、尾及船舶中间两舷的位置上绘制的刻度,用于估量船舶吃水深度,是进行船舶计重和船舶积载安全评估的重要依据.
传统的水尺观测主要依靠人工目测,但此方法由于主观或客观因素(如工作量大、观测不便、观测者经验、天气条件、有无障碍物、危险性等),误差较大.针对该问题,相关专家学者提出多种船舶电子水尺检测方法.孙国元等[1]提出一种双压力传感器船舶吃水检测法,可自动监测船舶的6面水尺,但此方法对传感器的精度要求高,且因传感器放置环境潮湿,其电子线路不易布置.郑灼辉[2]提出无须在恶劣环境下布置电子线路的超声波水尺,利用传感器接收发射到水面后返回的超声波,根据当地声速计算船舶吃水值.但声速的误差直接影响结果精度,而声速又与介质密度有关,空气中的介质受温度影响较大,因此,超声波水尺的精度不高.
图1 船舶水尺标志
随着图像处理技术的蓬勃发展,涌现出很多利用图像处理方法进行字符图像自动识别的技术[3-4],同时航海行业对该技术的应用也越来越多,金雪丹等[5]提出一种基于静态照片对船舶进行分类的方法.船舶水尺刻度主要由1个英文大写字母“M”和10个阿拉伯数字字符组成,见图1中的米制标志图.该类字符的识别主要有模板匹配算法和神经网络算法2类.前者常采用轮廓、投影等特征,对相似字符的区分能力较弱;后者需要选择输入特征、设计网络结构以及优化系统参数,工作很复杂.
针对数字进行识别的具体算法有很多种.比如最小距离法是模式识别中最传统的方法,其算法简单,对小样本问题有一定的优势,但无法保证良好的识别率.在某些参数发生变化时,如特征值矩阵的分块选取变化,实验的识别效果差别就会比较大.[6]魏畅然[7]采用穿线法,但穿线条数必须大于一定的数值,才能使编码重复率较低,保证识别水平.
船舶的所有水尺刻度高度均为10 cm,笔划宽度基本一致,非常适合用细化算法提取字符的结构特征.因此,本文提出一种针对水尺数字刻度图像三叉点结构特征的提取方法,将其制成样本模板与特征模板进行匹配,实现船舶水尺刻度的自动识别.
图2 图像的预处理流程
水尺刻度图像的预处理主要包括水尺刻度区域分割、形状矫正、二值化、噪声处理和图像细化等,预处理流程见图2.
船舶水尺图像通过摄像机拍摄船体水尺获取.船舶水尺刻度通常用白色油漆涂写,可根据此特征提取水尺刻度区域.由于本文重点是图像特征的提取和模板匹配算法,图像分割方法在此不详细展开.
由于船体本身不完全竖直,并且受摄像机架设角度的影响,所拍摄的图像中水尺刻度会有一定的不成比例的压缩变形.如果不进行形状矫正,水尺刻度识别的准确性将受到较大影响.水尺图像的几何矫正可以用外接矩形和最小外接矩形进行仿射变换或投影变换,将歪斜的字符区域变换成方正的区域.[8]计算仿射矩阵,将原图中像素点{p=(x,y),x∈R,y∈R}对应到新坐标系中的像素点{p'=(x',y'),x'∈R,y'∈R},通过仿射变换
计算矩阵对坐标进行放缩、旋转、平移后取得的新坐标值.
水尺刻度特征提取需要进行图像二值化处理,将图像中的每个像素按一定阈值分类,将水尺图像转换成二值图像.文中水尺刻度图像二值化采用Kittler算法[9],通过计算整幅图像梯度灰度的平均值获取分割阈值.此方法效果好、速度快,可以应用在质量不错的图像上.水尺刻度图像二值化后,进行必要的数学形态学处理可以提高图像识别率.通过运用腐蚀和膨胀操作,消除图像中不大的噪声区域,填补水尺刻度图像中的孔洞,从而得到水尺刻度的平滑边缘.在连续进行几次腐蚀迭代后,再进行同等次数的膨胀操作,可以加强去噪和平滑的效果,达到较好的期望效果.
水尺刻度图像细化,就是寻找水尺数字的中轴线或骨架,以其骨架取代数字.细化之后,该数字的像素宽度为1,可以用数学语言严格地描述图形的轴线或骨架.本文采用Hilditch细化算法[10],通过一种串行处理方式最终得到8邻域连接线条.数字图像的特征提取是在细化的基础上进行的.
水尺刻度的三叉点特征表明字符笔画的连接关系,体现待检测字符的结构特征.因此,将水尺数字的三叉点作为特征点能够很好地保证不同数字之间的区分度.利用水尺刻度三叉点的位置特征,构造图像的特征模板,利用模板匹配实现水尺数字的机器自动识别.
二值化后,设水尺刻度图像的背景点像素值为0,前景点像素值为1,则图像各前景像素所对应的T值为
表1 当前像素点及其邻域像素
式中:ti(i=1,2,…,8)表示第i个像素点处的值.t0表示当前点.若 T=1,则 t0是端点;若 T=2,则 t0是一般的连点;若 T=3,则 t0是三叉点;若 T=4,则 t0是四叉点.像素点分布见表1.
水尺刻度的三叉点特征是从细化处理后的图像上提取的,由于提取出的三叉点信息是图像中多个彼此相邻的同类特征点的集合,需要在提取方向信息时将他们聚类成一个点.三叉点的方向特征按规定有向上、向下、向左、向右和其他共5类.[11]判别水尺刻度图像三叉点方向的方法如下:
(1)对三叉点所在的3×3邻域的每一行、列进行计数运算,并且只有在该行(列)存在前景点时才计数.若三叉点的邻域中,存在1个行的计数值等于3并且1个列的计数值等于2的点,则判定该点的方向为上或下;如果三叉点又处在行计数为3的行的上方,则判定该点的方向向上,反之向下.
(2)判断三叉点的左右方向的理论方法与判定上下方向的方法类同.
(3)方向为其他的三叉点标记为0.
针对水尺刻度图像的三叉点方向进行判别后,接着就可以进行相应的特征模板制作.基于水尺刻度三叉点特征的模板制作步骤:
(1)删除水尺刻度图像中数字区域以外的无效区域,并分别沿高度和宽度方向平均分成3份,得到9个区域,根据新得出的图像判断三叉点所在区域.
(2)另外构造零矩阵,高宽为3×3,代表水尺刻度的9个区域.经过本文上述部分的聚类处理,将得到的三叉点与步骤(1)中的9个区域进行比对,对零矩阵中三叉点所在区域的赋值为1,从而得到位置特征模板.
按上述模板制作方法将标准的水尺刻度也制作成3×3的标准模板,见表2.
运用上述方法对事先挑选的典型船舶水尺刻度图像提取三叉点特征制作模板,再对当前水尺刻度图像用同样的方法制作样本模板,就可以利用模板匹配方法进行水尺刻度粗分类.首先将待识别水尺刻度的图像模板与标准数字模板逐一进行比较,其中设待识别水尺刻度模板中各点的值分别为ti(i=1,2,…,9),标准数字模板中各点的值为 li(i=1,2,…,9).然后计算这两个模板中对应点的差值
表2 标准字符模板及其代表的数字
式中:T0反映两个模板之间的差别,差别越小说明两个模板越接近.最后,将待识别模板与所有标准模板逐一比较得出关于T0的数组结果,哪个模板与待匹配模板最接近则将其归入相应的数字子类.
将水尺刻度图像与特征模板进行匹配,大部分水尺刻度已能用模板直接加以识别,从而实现数字的粗分类.水尺刻度的数字被粗分成两大子类:一类是可以用三叉点特征模板直接识别的数字图像;另一类是不能直接识别的数字图像.从所有制作好的水尺字符的特征模板可以直接看出,除了“0”“1”和“3”“9”这两组还不能区分开外,其他的水尺数字及字母“M”都能用三叉点特征模板准确地区分,而不能区分的两组可以再进行细分类.细分类的方法很多,基于水尺数字本身的书写特征,这里对“0”“1”采用端点特征区分,而对“3”“9”采取三叉点的方向特征进行识别,其中字符“3”的三叉点方向为0,字符“9”的三叉点方向为3.
基于上述模板匹配和细分类方法,可解决模板匹配法中的样本模板与特征模板尺寸不符、字符长宽比例不统一等问题,有效提高识别准确率.
图3 船舶水尺刻度识别流程
船舶水尺刻度识别的实际处理步骤如下:(1)选取具有代表性的船舶水尺刻度图像样本,提取相应的数字特征并建立对应的特征模板;(2)利用摄像机或数码相机拍摄船舶水尺视频或图像,从中截取水尺刻度图像;(3)定位并提取船舶水尺刻度区域,预处理水尺刻度图像;(4)采用文中改进的特征提取方法提取实际水尺数字图像的特征,与水尺刻度特征模板进行匹配,匹配结果即为系统识别的数值.水尺图像数字刻度识别流程见图3.本文方法侧重于水尺刻度的识别,实验假定水尺刻度区域已从原始图像中准确提取.
图4 船舶水尺视频截图
图4为实际拍摄的船舶水尺视频截图,图5为水尺刻度检测过程中各阶段的处理结果.算法实现的硬件环境为 IntelPentium 1.73 GHz,1 GB 内存 PC机,软件平台为 Windows XP,Visual C++编程环境.按照上述实验流程,对多次获取的船舶水尺数字图像中共计1 200个刻度进行识别.为便于比较,同时还使用文献[12]中的算法进行对比实验,结果见表3.表3说明,本文方法比文献[12]算法的数字识别率高,因为该方法能有效解决模板匹配法中的字符图像与模板尺寸不符等问题,减少误识率,改善识别精度.
针对船舶水尺人工读取主观误差较大的问题,提出一种基于图像处理的船舶水尺刻度识别方法,对传统的水尺图像特征提取方法进行改进,在图像预处理基础上针对数字字符的结构特征提取三叉点特征.利用三叉点的位置和方向构造模板数组进行字符分类,然后与构造的模板匹配进行水尺字符识别.由于是基于结构特征分析选取特征,故本文方法能够有效区分相似字符.同时,使用的特征提取算法计算过程简单、计算量小,能够满足实时性要求.
图5 船舶水尺刻度识别各阶段处理结果
表3 本文方法与文献[12]方法识别率对比
[1]孙国元,徐扬.船舶电子水尺及其应用[C]//中国航海学会通信导航学术年会(1992)论文集.辽宁大连,1992:87-87.
[2]郑灼辉.一种新型智能化船舶水尺检测仪[J].工业计量,1999,9(6):38-39.
[3]COMELLI P,FERRAGINA P.Optical recognition of motor vehicle license plates[J].IEEE Trans Vehicular Technol,1995,44(4):790-799.
[4]罗辉武,唐远炎,王翊,等.基于结构特征和灰度特征的车牌字符识别方法[J].计算机科学,2011,38(11):267-302.
[5]金雪丹,施朝健.图像处理与神经网络识别技术在船舶分类中的应用[J].上海海事大学学报,2007,28(1):11-16.
[6]王朋,王刚,窦海妮.基于最小距离法的数字识别[J].广西轻工业,2011(3):74-75.
[7]魏畅然.基于穿线法的数字识别方法[J].科技情报开发与经济,2010,20(28):137-139.
[8]左丹丹,刘鑫,朱双东.仿射变换在交通标志检测中的应用[J].宁波大学学报:理工版,2011,24(2):42-45.
[9]杨硕,尚振宏.一种新的二维条码图像二值化算法[J].昆明理工大学学报:理工版,2008,33(1):43-46.
[10]YU Jia,LI Yaqin.Improving Hilditch thinning algorithms for text image[C]//2009 Int Conf on E-Learning,E-Business,Enterprise Infor Syst,and E-Government.Hong Kong:IEEE,2009(5/6):76-79.
[11]宋怀波,路长厚,李国平,等.基于三叉点特征的激光刻蚀标牌字符识别[J].光电子·激光,2007,18(12):1465-1468.
[12]路小波,凌小静,黄卫.一种基于模板匹配的汽车牌照识别方法[J].交通与计算机,2004,22(6):79-82.