微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的PDF417快速解码终端的设计与实现

基于DSP的PDF417快速解码终端的设计与实现

时间:09-10 来源:3721RD 点击:

PDF417条码具有信息容量大、编码范围广、检错纠错能力强等特点,已在许多领域得到应用。然而,由于对条码图像要求较高,国内现有的PDF417技术商用化程度不高。实际使用中,PDF417条码的识别率、解码的正确率和解码的实时性等方面都有很大的提升空间。

本文介绍的解码终端采用专用条码摄像头采集条码图像,在基于TMS320C6713的DSP平台上实现了PDF417条码的准确、快速读取。

1 PDF417条码概述

PDF417是一种堆叠式二维条形码。组成条码的每一个符号字符代表编码集中的一个码字,并且均由4条4空共17个单位模块构成。图1给出了PDF417条码结构图[1]。条码由多层一维条码从上至下堆叠而成,每一层都可分为静区、起始符、行指示符、信息码字、结束符几个部分。条码每层具有相同的起始符与结束符,对应的条空序列分别为81111113和711311121。

\

条码采用文本、字节和数字三种数据压缩模式将原始数据转换为0~928的码字。三种压缩模式分别对不用类型的数据具有较高的压缩率,三者之间用模式转换与模式锁存进行灵活的转换。

PDF417采用Reed-Solomon码对条码数据进行检错与纠错,最高级别含有512个纠错码字,可复原条码50%的码字。

2 硬件平台

系统的硬件架构如图2所示。系统硬件主要包含图像处理和图像采集两个模块。

\

2.1 图像处理模块

系统的图像处理模块采用DSP外配SDRAM的方式实现图像的快速处理。DSP芯片选取TI公司的高性能32位浮点处理芯片TMS320C6713B;SDRAM芯片为Micron公司的MT48LC32M8A2,其存储空间为256 MB。C6713芯片的高速浮点处理能力保证了条空宽度确定的速度与准确性。系统工作过程中,SDRAM的作用为:缓存图像数据;存放图像运算的中间变量;作为系统的堆栈空间和常量及表的存放空间。

2.2 图像采集模块

视频数据采集模块由条码采集摄像头、FPGA和乒乓RAM 3个部分组成。摄像头采用Microscan公司的条码图像采集专用激光摄像头QUADRUS MINI Imager。由于TMS320C6713B芯片无video port接口,不能直接和摄像头进行逻辑连接,因而采用ALTERA公司的EP1C6作为控制核心,将Camera采集的视频信号流以帧为单位保存到高速SRAM中,并在合适的时机将SRAM总线切换给DSP以供运算处理。乒乓RAM以FPGA和DSP之间的通信接口RAM而存在,解决了DSP和摄像头连接的问题。另外,该模块还为摄像头配备LED补光系统以改善采集图像的质量。

3 软件设计

解码终端软件的设计强调提升条码识别率、解码正确率和系统实时性3个指标,主要包含二值化、区域定位、精确定位、条码分层等模块。图3为系统软件架构。

\

3.1 不均匀光照条件下的图像二值化

条码图像二值化要考虑不均匀光照的影响以及系统实时性解码的要求。本文改进了Bernsen算法[3],成功地去除了不均匀光照的影响。该算法处理步骤如下:

(1)用大津法取得粗阈值为T。扫描整个f(x,y)灰度图像,如果f(x,y)>T+a,则b(x,y)=255;如果f(x,y)<T+a,则b(x,y)=0。其中a为Bernsen算法的处理区间宽度,取值范围15~30,b(x,y)为二值化后图像。

(2)对发生光照不均匀最严重的区域,即落在区间T-a<f(x,y)<T+a的点进行处理,取w为阈值计算窗口,计算方法如下:

\

如果T3>a,则取T2为阈值;否则,取T4为阈值,对区间内的点进行二值化。

Bernsen算法只用T2作为阈值对区间内点进行二值化,忽略了全局阈值的作用,而改进的算法采用双阈值对不均匀光照的区域进行二值化处理,减少了伪影现象。该算法是全局阈值算法和局部阈值算法的结合,同时兼顾了处理效果和时间复杂度。

3.2 条码的区域定位

条码的区域定位计算较为复杂,因此算法的选择需要兼顾处理速度和处理效果。本文采用了基于连通域的区域定位算法[2],算法包括条码方向提取、条码区域连接和连通域标记3个步骤。图4给出了区域定位算法框图。

\

条码方向的提取决定了膨胀运算所使用的结构体。由于对图像直接进行膨胀运算很容易受噪声的影响,算法首先将图像区域分为水平、垂直、45°和135° 4种大致方向,而后提取条码的方向并根据条码不同的方向使用4种不同的膨胀结构体。这样有效防止了与条码接近的其他文字等背景由于使用各向同性的结构体进行膨胀运算而连接到条码中。方向提取先得到图像横向和纵向的梯度信息,而后以适当的阈值对得到的梯度图二值化并进行比较。认为含有较多边界信息的图指示的方向为条码的走向。如果两图边界的差值在一定范围内,则用同样的方法检测45°和135°两个方向。

膨胀算法将条码连成一个紧密的连通

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top