APP下载

基于DSP的字轮式水表号码识别系统设计

2015-01-13苑玮琦

化工自动化及仪表 2015年11期
关键词:水表字符解码

苑玮琦 高 泽

(沈阳工业大学视觉检测技术研究所,沈阳 110870)

近年来,机器视觉技术在我国工业、军事、航天、交通及安全等各个方面得到广泛应用。其理论基础为利用视觉检测装置代替人工,对目标进行识别、判断与测量。随着自动抄表技术的发展,机器视觉技术也在该方面得到广泛应用。由于我国城乡居民传统的人工抄表方式存在诸多缺点,例如劳动强度大、抄表周期长、监控考核难、费财费力。随着信息科技的发展,自动抄表系统以准确性高、应用范围广、具有实时性及信息存储量大等优点势必取代传统的人工抄表方式[1]。

目前市场上使用的自动抄表方式主要有两种:IC卡智能水表和脉冲式抄表系统。但是这两种远传抄表方式存在很多缺陷,IC卡智能水表插卡触点暴露在空气中会导致其触点氧化生锈,非常容易造成IC卡无法插入或失灵,内部结构中的电控阀门也容易损坏,造成计数失灵[2]。而脉冲式抄表系统的精确度不高,且常因为停电发生漏记现象,需要工作人员定期对水表数据进行校准。针对以上信息,设计采用视觉检测技术对水表号码进行非接触式采集,直接对水表号码的图像进行分析,能够精准地得到水表号码,完成抄表工作。南京理工大学提出的使用CMOS图像传感器OV7602采集水表号码,经过模/数转换后送入主处理器进行图像处理。该系统选择的主处理器为S3C44B0X芯片,最高运行频率仅为66MHz[3],与现在数字图像处理广泛应用的6000系列DSP的工作频率600MHz相差甚远,无法满足抄表系统实时性的要求[4]。根据以上情况和自动抄表系统的特点,笔者设计了一套以CMOS图像传感器和高速DSP芯片DM6437为核心处理器的抄表系统。

抄表系统系统硬件平台主要用于水表图像的采集、存储与显示。其中图像采集单元主要用来对水表图像数据进行采集、解码和存储;图像信号处理单元主要用来对水表号码进行识别与显示。

1.1 总体结构

抄表系统硬件平台总体结构如图1所示。

图1 抄表系统硬件结构框图

整个抄表系统硬件平台以DSP为控制核心,包括CMOS图像传感器单元、多路转换芯片CD4051、视频解码芯片TVP5146、DDR2图像数据存储单元及显示单元等组成。其中CMOS图像传感器的分辨率为720×576,输出PAL制式视频;TVP5146视频解码器用于将视频解码成数字信号;DDR2存储器用于存储采集到的4路水表图像;LCD液晶屏用来显示水表图像与水表号码。抄表系统总体工作流程如图2所示。

图2 抄表系统工作流程

系统上电后首先将运行程序下载到DM6437的片内RAM中运行,对DSP和视频解码芯片进行初始化。通过多路转换芯片将4路水表信号分时送入DDR2中进行存储,全部数据存储完成后结束采集操作。

1.2 图像传感器单元

在该系统中,图像传感器的选择至关重要,采集的图像质量越高,对号码识别的正确率越高,占用的存储空间越大,而采集图像的质量过低将导致号码识别的正确率降低。对比CMOS与CCD两种常用的图像传感器,考虑CMOS图像传感器采集图像的速度更快、占用内存少、质量虽然低于CCD图像传感器采集的图像,但是可以满足对水表号码的识别要求,CMOS图像传感器的价格优势明显[5],所以系统采用CMOS图像传感器来实现水表号码图像采集的功能。在实际设计中,需要对CMOS图像传感器进行准确定位,安装在水表上方需采集到全部5个水表号码,CMOS图像传感器与水表表盘位置关系如图3所示。

图3 图像传感器定位图

图中α为传感器最小视场角,H为传感器与水表表盘的间距,L为5个字符的整体宽度。设计H的值为35mm,L为固定值50mm,计算得出α为70°。设计选择的CMOS图像传感器视场角为80°,满足设计要求,经实验证明可以采集到清晰稳定的水表号码图像。

1.3 模拟信号处理单元

由于采用的CMOS图像传感器输出的视频信号为PAL制式的模拟信号,而DSP只能对数字信号进行处理,所以两者之间必须搭建一个连接的桥梁,设计采用TVP5146视频解码芯片对视频信号进行有效解码,转换为DSP可以接收的数字信号。同时设计中需要对4路水表信号进行有效的采集,而TVP5146不能同时处理多个视频模拟信号,所以需要4路水表信号分时地送入TVP5146,设计采用CD4051多路转换芯片提供完美的解决方案[6],模拟信号处理单元结构如图4所示。

图4 模拟信号处理单元结构

CD4051是单8通道数字控制模拟电子开关,通过3个二进制位控制端A、B、C控制选择8个通道中的一路模拟信号经输入端送达输出端。当C脚接地置低电平时,B、A引脚通过GPIO口控制4路模拟信号分时送入TVP5146进行解码,在多路转换开关与TVP5146之间加入一个电压跟随器解决了由于输出阻抗大引起的信号存在压降、图像偏暗的问题[7]。DM6437具有111个与其他功能复用的GPIO口,GPIO44与CCD8、EM_A[20]、EM_D[7]功能复用,GPIO45与CCD9、EM_A[19]、EM_D[6]功能复用,需要通过配置32位引脚功能复用寄存器PINMUX0 使能GPIO44与GPIO45。CI[1:0]功能选择位CI10SEL置0,释放CCD8与CCD9;EMIFA功能模式位AEM置000,释放EMIFA功能引脚;GPIO44与GPIO45即GPIO口功能引脚。TVP5146的工作方式需要通过DSP的I2C总线接口对视频解码器内部寄存器进行配置,DM6437的I2C接口时钟要设置为10MHz,对TVP5146配置的主要寄存器见表1。

表1 TVP5146寄存器配置

视频解码芯片利用内部的五线自适应梳状滤波器将PAL制式的视频信号进行YC(亮度分量、色度分量)分离,这样可以有效地降低亮度和色度的串扰,提供最佳亮色分离效果,YC分离后将视频信号编码成YCbCr 4:2:2格式的数字视频信号,DM6437的CCD[7:0]与TVP5146的Y[9:2]引脚对应连接,作为视频数据的传输通道,DM6437的PCLK信号由TVP5146的DATACLK输出提供14.318 18MHz像素时钟,作为视频输入时钟信号。TVP5146输出的视频HS和VS分别与DM6437的HD和VD引脚相连,作为视频采样的行同步、场同步信号。TVP5146与视频处理前端的视频接入口CCDC相连,在行、场同步信号和时钟信号的同步下,数据的传输行、场消隐信号只对有效的视频信号进行采集,经过8位并行数据总线将数据传入DSP中。

1.4 图像数据存储单元

为了使系统能将5个字符信息完整采集,设置水表图像的分辨率大小为720×480,所以每一张图像的大小为337KB左右(720×480×8bit),图像的格式为YCbCr 4:2:2,即每一个像素的排列方式为Y-Cb-Y-Cr,这里Y代表图像的灰度值,Cb、Cr分别代表图像蓝色和红色的色差分量,在存储图像时只提取图像的Y分量进行存储,只存储图像的灰度值不仅节省了一半的存储空间而且减少了图像预处理一半的工作量。共有4路水表原图像和预处理后的图像需要存储,约占用3MB存储空间,而DM6437的内存仅为240KB,无法满足需求,必须外扩存储空间,系统选用32M×16bit存储空间的DDR2与DSP存储器接口无缝连接,提供了充足的存储空间。图像存储首地址设置为0x81000000,再将该图像进行预处理,只提取Y分量重新存储到首地址0x82000000中。DDR2可以在时钟的上升沿和下降沿同时进行数据传输,并且拥有高速的预读取系统命令数据能力,在每个时钟能以4倍外部总线的速度读/写数据,能以4倍内部控制总线的速度运行,系统中DDR2的工作时钟为14.318 18MHz,其实际频率则高达57.272 72MHz,这样解决了外扩内存时存在的延时问题,在硬件上保证了系统的运行速度。

1.5 液晶显示单元

采集图像的质量和预处理后的效果直接影响到后续对号码识别的正确率,通过液晶屏可以实时观察图像的清晰度,也可以观察系统是否正常工作。DM6437的视频处理后端VPBE包括两部分:一个屏幕显示模块OSD,一个数字LCD接口和数/模转换接口的视频编码器VENC。VENC生成模拟视频输出[8],数字LCD控制器产生数字RGB/YCbCr输出数据和时间信号。OSD支持同时显示两个视频窗口和两个OSD窗口,每个窗口支持分别使能,窗口的高、宽、起始坐标、终止坐标都可通过编程进行控制,系统只使用OSD窗口0依次显示4路水表号码的实时图像,其他3个窗口禁止使用。

2 字符识别的实现

2.1 图像的预处理

图像传感器直接采集到的水表号码图像必须进行去噪、矫正、分割及二值化等预处理后,才能使用字符识别算法对单个字符进行识别。

首先,使用3×3窗口对水表图像进行中值滤波,再对图像进行旋转矫正,公式如下:

x1=co·(i-x)-si·(j-y)+0.5+x

y1=si·(i-x)+co·(j-y)+0.5+y

式中i、j——旋转前的位置;

si、co——旋转角度的正弦余弦值;

x、y——旋转中心;

x1、y1——旋转后的位置。

通过这两个变换公式可以得到旋转前位置和旋转后位置的关系,对这两个位置赋值即得到旋转后的图像(图5)。

图5 图像矫正效果

对5个字符占有的部分各自进行分割,当设定分割大小为31×90时,既可以保留全部字符信息,也避免了外部噪声区域较多的位置,识别效果达到最好。由于字轮式水表图像上、中、下各部分的灰度值分布不均匀,最后对图像使用三段阈值法进行二值化,二值化后的效果如图6所示。

图6 二值化效果

2.2 识别算法的设计

对字轮式水表字符的识别,主要是针对0~9这些数字的识别,字符组成结构简单,采用模板匹配法时需要的模板数量少,由于算法的运算速度快,可以满足实时性的要求。

首先判断字符图像是否为半字符,如果不是则使用已经存储在系统中的10个整字符模板进行匹配,与模板匹配程度最好的字符图像即识别出的实际水表字符;如果判断该字符图像为半字符图像,则要按照上、下两部分的半字符占整幅图像的比例使用相邻的原有模板合成新模板,再与新模板进行匹配,识别出相应字符。算法流程如图7所示。

3 实验结果

笔者所研制的字轮式水表号码图像采集装置的实物如图8所示。

因为图像传感器为CMOS摄像头,所以在自然光线及日光灯等光照下可能略有差别。识别成功率在95%以上。通过对实际采集的图像进行水表号码的识别测试,未成功识别的号码图像,主要错误来源于水表图像中有光斑等干扰。

图7 字符识别流程

图8 水表号码图像采集装置

4 结束语

分析了IC卡式水表与脉冲式水表的缺点,设计了基于DSP的字轮式水表号码识别系统,并对系统的硬件结构进行了详细介绍,给出了使用模板匹配法对水表字符进行识别的方法。实际运行结果表明:该装置能够实时对4路水表进行抄表,满足设计要求。

[1] 王志立.住宅小区智能抄表系统[J].电子工程师,2004,30(12):69~70.

[2] 李国祥.浅析IC卡智能水表[J].中国计量,2005,(2):51~52.

[3] 马婷.基于图像处理的远程抄表系统的设计[J].济南职业学院学报,2012,(6):91~93.

[4] 张德刚,陈文艺,陈瑞.基于DM6437的数字摄像机[J].电子设计工程,2011,19(8):130~132.

[5] 李文军,毛谦敏,梁国伟,等.远传水表抄表系统设计与实现[J].自动化仪表,2004,25(9):56~57.

[6] 苏永道.CMOS集成模拟开关的变通应用—脉宽编码器[J].国外电子元器件,2001,(2):49~51.

[7] 张友,周鹏,蒲东兵,等.基于DM6437的车辆检测与跟踪[J].信息技术,2013,(3):78~80.

[8] 刘阁.DM6437视觉非接触测量平台的设计与应用[J].工程与试验,2013,(z1):20~26.

猜你喜欢

水表字符解码
《解码万吨站》
水表普查与水表挂接子系统建设
字符代表几
解码eUCP2.0
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
水表检定装置不确定度分析计算的相关思考
HBM电子称与西门子S7-200系列PLC自由口通讯
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机