- 文献综述(或调研报告):
在信息化越来越发达的时代,人们对于信息的及时提取和处理速度需求越来越高。商品中常用的一维条码目前广泛应用于超市等零售行业,但由于其信息量容量的限制,不能够描述商品的详细信息,而二维码则很好地解决了容量不足的问题,它具有信息量大、可靠性高、纠错能力强等优点。与其他的自动识别技术相比,二维条码还具有抗干扰能力高、识别速度快、成本小等优势。
目前国内外常见的二维码[1]有PDF417、QR Code、Data Matrix、Maxicode、Code 49、Code 16K等,其中QR Code即快速响应码是目前二维码中最常见的,也是本文的研究重点。二维码的出现使得人类社会生活更为便利,被设备扫描后可以获取其中的信息,上到国家信息的存储传递,小到百姓日常生活,二维码随处可见,对二维码识别及检测的需求应运而生。
市面上常见的二维码识别系统大致分为三类:第一种是基于PC的识别系统,主要通过网络或USB将扫描到的二维码传输到PC中,由软件进行处理和解码。第二种是基于移动设备的识别系统[2],主要使用移动设备自带的摄像头进行图像采集,由手机上的软件进行解码。第三类是基于嵌入式系统的识别系统,通常以嵌入式芯片作为控制核心,比如ARM、ARM DSP、ARM FPGA。
如上所示的三种系统各有优势和应用场景,第一种比较适合应用于零售业终端等,对解码的速度没有较高的要求;第二种应用范围最为广泛,如今的手机软件如微信、支付宝等都已集成二维码识别的功能,并且能够识别比较模糊,甚至出现畸变的二维码,解码速度上也没有较高的要求。第三种系统主要面向设备小型化、集成化,一般使用功耗较低的处理器或DSP、FPGA等主控芯片实现二维码识别。
在工业自动化领域,市面上最为常见的是基于PC的二维码识别系统,使用的主机设备通常为工控机,成本昂贵、体积庞大,而且解码速度上并不能匹配喷码机的运行速度。通常而言,喷码机可以实现每秒钟至少60张二维码的速度,如果检测系统的速度可以与之相匹配,将会大大加快工厂流水线的运转速度,因此设计快速且精准地识别二维码的系统具有比较可观的潜在市场。
现场可编程门阵列(FPGA)[3]相较于专用集成芯片(ASIC)具有开发时间短,灵活应变的优势,在处理能力上可以实现多级流水线及高速并行的特性,通过牺牲大量的逻辑资源来获得相同或超越通用处理器(CPU)的速度。[4]Xilinx推出的片上嵌入式系统Zynq-7000系列器件将ARM与FPGA集成到了同一块芯片上,以ARM为核心,FPGA辅助进行算法加速的设计思想被广泛地应用在图像处理领域。
图像的采集上,[5]主要研究了基于GigE Vision协议实现的智能相机的图像采集,软硬件协同思想设计的软件架构,将摄像头实时采集的图像存入视频帧缓冲队列,实现图像的采集。[6]的研究中使用OV7725摄像头模组作为图像采集设备,受限于FPGA的种类,帧缓存设备使用的为外部的SRAM。
二维码的识别及检测的算法比较常规,[7,8,9]详细阐述了基于计算机视觉的二维码识别及检测详细算法。[10]针对二维码提出了一种基于FPGA的图像旋转系统,使用的是CORDIC算法,经研究证实此算法可有效快速的将经过旋转的二维码校正,并且在添加了双线性插值算法后,旋转图像变得清晰,有效地提高了二维码的识别率。
国内的论文[10,11,12,13]采用较为简化的方式实现,首先需要对图像进行预处理,其中算法包括:灰度图像的自适应二值化、图像滤波去除噪声。在预处理基础上,对二维码的定位标识符进行检测是系统算法的核心,目前的研究都是基于特征提取的方法进行检测。
对于图像畸变也有研究完成了在FPGA上的验证[14],使用相机拍摄出来的二维码通常都会出现一定程度的畸变,此研究可以将畸变的图像矫正回标准图像。除上述所需的算法外,二维码数据的纠错也是非常必要的,对于缺失部分信息的二维码可以通过Reed-Solomon算法进行数据纠错,[15]的研究提出了一种高纠错性能的实现方法。
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。