传统方式的住户水,电,气表抄表给物业管理和用户带来极大的不便,误差大、时效性差、统计计算工作量大,且带有人为随意性,尤其用户咨询时极不方便,不光是物业管理人员感到头痛的事,用户也感到不满意,甚至经常出现物业管理者和住户之间产生矛盾。远程抄表系统的推出可以很好的解决传统抄表方式带来的问题,该系统节省时间、节省人力物力提高工作效率。降低物业管理成本,也解决了用户想及时了解用水、电、气情况的烦恼,真正实现物业管理为用户着想的原则,准确、及时地将住户和物业管理部门所需三表数值反映在中央控制中心上。
本文实现的利用数字图像处理技术对水表号码进行无源自动抄写记录装置,一方面限度地保护用户住宅结构和原有装修,另一方面可以使抄表员不必逐一进入用户家中,而是集中在一个地点将用户水表号码自动抄写并保存到抄表员所携带的存储设备中。且几十户居民公用一个记录装置,因此成本非常低,不会因为安装该装置给用户带来大的负担。本装置以数字信号处理器(DSP)和视频解码器为,完成抄写等功能。目前已经实现的抄表装置采用的DSP是TI公司的TMS320VC5416.实验证明,准确抄写一个水表读数所用时间不超过0.5s,完够满足实际应用需要。
1 硬件结构
水表字轮号码自动记录装置的硬件主要由五部分组成:图像预处理模块,图像采集识别模块,系统程序数据存储模块,系统逻辑控制模块,号码显示模块。系统框图如图1所示。
1.1 图像预处理模块
由于摄像头输出的是模拟视频信号,因此在进行识别处理前必须进行预处理,并转换为数字视频信号.
图像预处理模块以视频解码器为,完成对模拟摄像头所采集的模拟图像信号的放大、滤波、A/D转换等预处理。同时,从全电视信号中分离出行同步信号和场同步信号。
视频解码器在正常工作之前首先需要初始化,视频解码器的初始化工作通过I2C总线完成。其中,I2C总线的SCL和SDA分别为时钟控制线和数据线,并分别连接到可编程逻辑器件的两个I/O引脚,在数字信号处理器(DSP)的控制下实现I2C总线协议,进而完成对视频解码器片上寄存器的初始化操作。
1.2 图像采集识别模块
DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是值得称道的两大特色。
由于目前TI的DSP系列产品占据了国际市场的大部分份额,从供货及性价比等方面考虑,本文采用的是价格相对较低且能满足系统要求的TMS320VC5416PGE160(以下简称VC5416),其丰富的片上资源,如128K×16bit的片上RAM和16K×16bit的片上ROM,可以大大缩小系统的体积、复杂性以及成本,为系统运行的稳定性提供了保证。
本系统将VC5416的HPI(主机接口)设置为GPIO(通用I/O口),分别用于检测图像预处理电路提供的行场同步信号、奇场标志信号和像素时钟信号,用以确保时序正确,从而保证所采集的号码图像的完整性,为后续工作提供可靠的数据源。另外利用GPIO(通用I/O口)编程控制CPLD实现I2C总线协议,在系统上电时对图像预处理电路进行必要的初始化,以控制所采集的号码图像的大小、位置、转换速度,同时保证号码图像的质量等。
1.3 系统程序数据存储模块
要实现系统脱机运行和保证系统掉电不丢失,将编译好的软件程序烧制到VC5416的片上ROM中,这样既可以减小系统体积和成本,也有利于提高系统性能。本系统在实验过程中,为调试方便采用外扩1片映射到数据空间的Flash ROM来进行脱机运行的调试工作。Flash ROM在数据空间的映射地址从0x8000~0xFFFF.系统上电时,利用VC5416的Bootloader将Flash中的程序导入VC5416的内RAM中,然后将其屏蔽。
1.4 系统逻辑控制模块
系统采用了1片复杂可编程逻辑器件(CPLD)。该器件在系统中起到全局逻辑控制作用,使整个系统可以在DSP的统一管理和控制下协调工作。
CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。
1.5 号码显示模块
当一幅号码图像的识别过程结束后,DSP TMS320VC5416还需通过驱动电路在数码管LED上显示识别结果。驱动电路采用的是常用的LED驱动器MAX7219[2][4].
2 软件设计
软件主要包括图像预处理电路的初始化程序、DSP的初始化程序、纸币号码图像采集与识别程序、号码显示译码程序以及上电引导程序等。本文简要介绍编写的几个主要程序。
2.1 图像预处理电路的初始化程序
图像预处理电路的初始化主要通过设置视频解码器相应的寄存器实现。视频解码器片上寄存器的读写通过I2C总线协议的形式完成。首先,由DSP输出控制信号,分别用于对应I2C总线的数据线(SDA)和时钟线(SCL)。然后,根据I2C总线协议,编程实现对视频解码器片上寄存器的访问。
系统对视频解码器的寄存器设置如表1所示。
由于DSP的I2C总线实现程序比较繁琐,所以本文没有列出程序清单。
2.2 DSP的初始化程序设计
该程序主要通过对必要的DSP存储器映射寄存器(MMR)赋值,使其工作在系统要求的状态,主要包括以下操作:
(1)将处理器模式状态寄存器(PMST)设置为0xAC,使中断向量表重定位到0x0080,并且允许访问片上ROM,同时将片上双寻址RAM0~3(DARAM0~3)映射到程序空间的0x0080~0x7FFF,将双寻址RAM4~7(DARAM4~7)映射到数据空间的0x8000~0xFFFF.
(2)时钟方式寄存器(CLKMD)设置为0x97F7,使程序正常运行在160MHz的工作频率下。
(3)软件等待状态寄存器(SWWSR)设置为0x0000,使数据、程序和I/O空间的访问都工作在零等待状态。
(4)状态寄存器1(ST1)设置为0x6980,以满足C程序运行的需要,同时禁止所有可屏蔽中断。
2.3 水表号码图像采集与识别程序
水表号码图像采集程序的设计思路为通过采用通用I/O口(GPIO)对图像预处理电路转换产生的行、场同步信号以及像素时钟等的查询,将图像数据准确地存储到指定的存储空间[3].
每个水表号码的大小约为50×70,即3500个像素,水表字符框的高度为88个像素,考虑到水表字轮经常出现上下两个字符各出现一部分的情况(图2右侧的数字6、7部分),因此每个字符需要采集保存的实际高度应为字符框的高度,即88个像素。而字符间距为60~70个像素,如图3所示。目前,仅对水表后四位数字进行采集便基本能满足需要,如果直接对图像进行采集和保存,则一幅水表号码图像需要400×88,即35200(35.2K)个像素。但是系统本身的存储空间非常有限,可用数据空间只有40KB左右,而识别算法在运行过程中还需要随时开辟相当数量的存储空间来存储临时变量和中间结果,因此不能直接对图像进行保存。
在设计采集程序时需要对读入的图像数据进行选择性的存储,尽量只保存水表字轮号码体部分,而号码体之间的冗余数据则尽量舍弃,以节省存储空间。根据水表字轮的特点,在数据采集过程中通过软件处理去除相邻数字间冗余信息后保存的图像如图2所示。
目前采用的识别程序是一种基于结构法的识别算法,是根据数字本身结构上所存在的特点编写的。本识别算法大体可分为定位、预处理、识别、结果输出四部分。
定位时,应用号码本身纹理特性,即水平和垂直投影均有较明显的峰谷峰性质。首先进行水平投影,定位上下边界,缩小图片面积;然后垂直投影,定位每个字符的左右边界。预处理时,采用适当滤波算法,滤除由污迹和采集芯片造成的噪声;区域分割过程中,为提高速度,在光照一定的情况下,采用固定阈值分割。
识别时,依据水平垂直穿线次数和航程面积,以及定位框的高宽比等多种特征的信息融合技术,利用分叉判定树对数字进行识别。例如,数字1水平穿线均为1次,垂直高度远大于水平宽度。
针对水表字轮号码随时都有上下两个号码各出现一部分的情况,可采用相邻两个号码间的结构特点进行区分。
3 装置设计过程中主要解决的技术问题
(1)图像采集部分采用的是将视频解码器数字数据输出直接与DSP的数据线相连,而不是通常采用的在两者之间增加一个FIFO(先入先出存储器)进行数据缓存的方法。对电路进行这样的处理不仅节省了一个FIFO成本,更主要的是降低了系统复杂度,提高了装置的工作效率。但这样就相应增加了图像数据采集软件的设计难度。因为数字数据的输出速度为13.5MHz,像素时钟为27MHz,而DSP工作频率为160MHz,DSP要实现对一个像素数据的读取首先要查询各种同步信号,然后才能读取一个数据,而且在读取数据时也要耗费多个时钟周期。此问题经过不断的软件优化和调试得到了解决。
(2)视频解码器初始化所需的I2C总线的实现问题,较常用的方式是利用现成的带I2C总线模块的单片机实现。所采用的DSP本身没有I2C总线模块,设计时也没有增加一个带I2C模块的单片机方式,而利用DSP的HPI(主机接口)口控制CPLD,模拟实现了I2C总线协议。
(3)针对水表字轮号码存在相邻号码各出现一部分的情况,编写了专门的处理软件。
(4)远程抄表,采用在每家住户水表内密封一个2cm×2cm×2cm的模拟摄像头,并利用一根电源线和一根信号线与主处理板相连。这样,主处理板可以对相连的所有用户水表逐一进行抄表记录。
所开发的基于图像处理和嵌入式技术的远程抄表装置样机已经完成,目前运行稳定,正确读取率99%以上。特别对于上下两个水表字轮号码各出现一部分的情况识别比较准确,识别结果可通过LED直观显示。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。