英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
移动手机设备在二维码解码方面的研究
索斯法拉斯港领主塞浦路斯大学
侯赛因 · 卡沙尼
摘要
移动手机的数据输入始终受限于数字键盘。克服这一问题的一种方法是通过手机摄像头读取二维码获得其中存贮的信息。本文介绍了如何使用配置了摄像头的手机进行二维条码读取。二维码的识别主要通过使用手机的相机来捕获二维条码,然后再使用手机的处理器解码。他们大多是在有限的手机平台上进行本地代码开发实现的。与此相反的是,Java代码开发的手机却可以跨平台进行使用。当软件需要精细设计的时候,java通常是一个切实可行的选择。用手机作为二维码的阅读解码器是一次科技的创新和尝试,下面将进行展示。
1、 简介
现代手机均配备高分辨率的彩色显示器,他们支持不同标准的无线网络,并且拥有合理的进程处理能力和记忆能力。虽然仍然主要用于语音通信,但是他们已经和数码相机一样在图像处理例如二维码识别方面展现出了巨大的潜力。
一个有趣的方法是用摄像头捕获二维码并用手机上安装的软件进行解码。根据解码的结果,解码之后可能会获得如下信息︰ 电话号码、 文本消息、 web网页或者后端应用程序。
本文组织如下 ︰ 第二节概述了标准化二维 (2D) 条码;第三节将回顾在这一领域的一些创新探索和案例;第四节具体描述了如何使用一动手进行二维码识别;第五节展示了一些该研究的初步结果;最后在第六部分,我们将规划我们下一步的研究工作方向。
2. 标准化的二维条码
一维 (1d)条码,尤其是 UPC [5],被打印在数十亿的产品上。每个产品都被赋予了唯一的识别条码。他们经常和免费的商业数据库一起被用于收银台。虽然他们具有极为出色的产品识别能力,但是受限于较低的数据存储能力,它们仍然需要后台系统的支持。
在人们迫切想要提高条码存储容量的需求中,二维条码应运而生。这一节我们将描述两个最为普遍的标准码 ︰Data Matrix(矩阵式二维码)和 QR码。当然还有其他 类型二维条码存在,但他们的使用频率很低。其中一些是开源标准,而另一些则是私有专利。这些包括 Semacode (特殊的数据矩阵码用于编写URL)、 Spotcode、 CyberCode 和 VisualCode。
2.1、 数据矩阵
数据矩阵是一个最知名的二维条码标准码[ 6 ]。它被广泛应用于汽车、航空航天和计算机制造行业等大数据行业的容量标签,如直接标记和包装标记。在公共领域,无需任何许可或特许权使用费。如图1所示,它由一个实线定位器(两实线),图案线定位器(交替的深色和浅色纹),内部为编码的二进制数据区,和一个被标签包围的空白区。
它的容量是2334个字母数字字符或1556个8位ASCII字符,能够编码任何数据。它所采用里德所罗门误差修正,即使在大量的代码部分被扭曲的情况下也能准确进行读取。
2.2、QR 码
最初在1994年起源于日本,后来被确认为国际标准[ 7 ],QR码是二维条码中使用较为普遍的一种。
其设计的主要目的是高效日语汉字符号编码,区别于任何其他数据。从图1可以看出,它有一个明确的搜索模版由左上、右下和左下角三个模块组成。它也采用了里德所罗门误差修正的方法。
2.3、数据矩阵的优势
QR 码的唯一优势是其对日语汉字字符进行高效编码的能力。考虑到所有其他比较标准,数据矩阵是首选 [8]。在相同的存储容量的前提下,它能够存储更多的数据。(见图1)。在所有的二维码中具有最大存储容量利用率。数据矩阵代码使用 30%至 60%更少的空间在和QR 代码包含相同的数据的情况下。QR 码的最小模版是 21 times; 21 ,而数据矩阵的最小模版大小为 10 times; 10,却能存储更多的数据。
数据矩阵在实际生活中被普遍使用,大量的客户用它提供产品和服务。总的来说,整个商业系统都在其周围形成了一个巨大的、多样性的产业应用圈。
3、二维码产业现状
一些常见的问题是在扫描和解码条形码的过程中遇到的,如各种各类噪声、模糊、不均匀的照明,和图像周围存在的外来信息干扰。此外,当使用手持设备来捕捉图像时,镜头轴是很少垂直于图像平面,所以图像处理的结果中总是有一定程度的倾斜,偏斜和旋转。根据日常在收银台的经验,条码解码看起来简单快捷,但同样的任务对于数码照相设备来说却是阻碍重重。 [ 20 ]。
3.1、 数码相机设备读取器的发展趋势
在工业领域一直存在一个发展趋势,用价格便宜得多的通用数码相机设备取代昂贵、笨重的专用激光扫描仪。随着越来越多的消费者使用配有摄像头的手机,这一趋势也被印证。同时,在图像处理方面也引发了另一个趋势,尝试使用图像处理技术对不完善的图像进行读取解码。
关于摄像机用于解码 2二维条码的最早尝试之一是索尼的关于CyberCode的研究。 [16] 在当时,能够进行进程处理的相机手机相当异乎寻常。在大多数的符号没有标准化的时候,特殊的视觉标记符号'CyberCode'诞生了。与 RFID 标签相比,创建 CyberCodes 任何便宜的打印机都可以使用,而创造 RFID则需要专用昂贵的特殊设备。CyberCodes标签的打印非常便宜使用,打印到任何媒体设备上,都可以被移动手机设别识别。但是CyberCodes 在数据处理方面有所缺陷,需要后端服务器提供已经解码的信息。解码算法是用java和机器码开发完成的。
使用拍照手机作为条码阅读器已在日本发展成熟,大部分手机都支持符号识别EAN和QR码。他们通过阅读网址访问手机网络提供的网页。一项研究[ 12 ]已经采用了专门的电话硬件本地软件。一个基于标签拐角的算法已经用于开发QR码。一旦成功推广,便可以通过更小的图像快速的处理问题。一个显着的成就是使用的逆透视变换,解决了旋转和一次倾斜的问题。
另一项研究在澳大利亚 [11] 集中在 1 D EAN 13 条码,但大多数的想法是适用于 2D。所用的模型用于解码条形码、访问有关产品种鉴定:包括产品说明、 价格、 产品审查、 价格比较、零售商位置信息等。该算法如通常算法一样包括预处理、条形码定位,和解码的步骤。
在瑞士的一项研究[ 18 ],[ 17 ],主攻图像处理并将处理结果作为输入和数据库的来源。该轻量化识别算法由于已经进行预处理,从而解决了相机读取所带来的旋转和倾斜问题。这一研究解决了相当多的图像质量问题(如桶形畸变,图像对比度低、亮度不均,和边缘模糊)。这些预处理步骤,包括灰度图像阈值的自适应 [ 19 ],大大提高了解码能力。
更多的研究 [ 10 ]目前集中在一维条码,由于其广泛使用和易于连接的信息提供在线。他们提出用配备摄像头的手机来读取识别,而不是专门的扫描仪,以展示手机作为条码解码器连接物理世界和虚拟(数字)世界的能力的吸引力。他们的条码识别组件完全是在J2ME的手机上运行而且检测产品的代码是通过GPRS发送到服务器。作为案例的应用程序是检查可能含有会引发过敏性反应成分营养产品,基于消费者者的过敏反应资料,及时对消费者发出警告。
3.2. 焦点待解决问题
尤其是后者的研究,证实了主要的问题不是相机的分辨率(甚至低端640x480像素的分辨率是足够的)而是在如何通过镜头捕捉的条码的焦点。长期的解决方案是自动对焦,这一功能在一些先进的设备上可以实现,在不久的将来也会成为一个标准。但不幸的是,这不是目前的情况,所以仍然需要一个廉价的宏观镜头连接到手机。
另一个主要关注的问题是移动电话的计算能力是否足以取代基于硬件的激光扫描仪,并允许用户体验到通讯的速度和便捷度。由于在将解码结果传送给后端服务器时耗费较大的传输成本和延迟的缺点,使得它仅适合解码部分的工作。
4. 图像处理与 J2ME
对于编程平台,由于java的跨平台性质使得它成为一种趋势。最初的java手机在性能方面仍然有很多需要改进的地方,但在过去几年情况已明显显著提高改善。虽然机器码应用程序 (在 Symbian 的环境,例如 c ) 总是比相应的的 Java 应用程序执行的更快,但对于消费者来说,可移植性显然是更应该考虑的问题。
该方法是基于java的移动版(J2ME)[ 1 ],最现代的照相手机的也能够支持。J2ME的设计使得他能够适应低端设备的处理能力和存储能力。它可以支持Symbian、Linux、支持Windows Mobile、Palm OS和特定手机供应商的操作系统。
有限连接设备配置(CLDC)多用于配置低端到中档的手机[ 4 ]。CLDC目前最新的版本为1.1版本,但是很多设备仍在广泛使用1.0版本,因此该方法针对CLDC 1。在CLDC的顶部,J2ME对特殊类型的器件进行了定义。这一定义称作手机设备信息定(MIDP),当前版本为2.2。虽然MIDP 1的设备仍在使用,但是它们基本不用于相机,所以该方法针对MIDP 2。设备和定义两者都仅仅是最通用平台的最低配置。许多其他的功能都可以通过连接制造商提供的标准化接口来实现。其中一个这样的接口被称为手机媒体接口(MMAPI)【3】,该应用程序用于连接摄像机进行图片获取。
4.1、 系统流程:
大多数手机获取图像都是 JPEG 格式,一旦捕捉到条形码,随后的步骤如下 ︰
1、灰色缩放 ︰使用标准亮度方程将捕获的彩色图像转换为灰度级 [13].
2、局部灰度直方图拉伸 ︰ 图像分成四个区域 (一个分区与十六分区计划已经被研究过,结果都不太理想)。计算每个区域的亮度直方图,并将灰度值进行调整,以便将直方图拉伸到覆盖整个亮度范围。顶部和底部的1%的原始值问题分别映射到的最大值和最小值,以避免影响结果,出现异常。
3、局部自适应阈值 ︰ 对比度增强之后,通过评估的自适应的方式为每个区域的最佳阈值转换为二进制位图
4、噪声滤波 ︰ 标准的开启和关闭技术主要应用于位图来去除噪声。
5、 裁剪 ︰ 裁剪不必要的背景,以减少图像和处理时间的大小。。
6、旋转修正 ︰ 虽然旋转的图像可以直接进行解码,但是在解码之前进行解码是更快的一种方式。
7、 倾斜校正 ︰ 预处理是必需的,以使图像在其预期的正方形形状前解码。
上面的步骤可能过去密集。但是每一个都是为了减少在进程中的问题处理量,即使一些步骤可能违反了一些好的编程原理,也仍然是不可或缺的。
4.2、 解码
开放源码库被用于解码,以来研究试图开发的图像处理算法--独立-全程解码,允许读者从预处理后的图像中解码出多个符号。
经过预处理,软件首先定位条码的角落和边缘,然后解码标记的数据区域中的黑色和白色的模块。人们提出了一个非常有趣的方法进行解码【15】。基本思想是在一个合适的参数空间寻找一个直线条,这将有利于将图像中最有价值的部分进行霍夫曼变换。这个转换运行时得性能需要进行仔细的评估。
5、实验结果
大量的实验已经开展,最初在手机模拟器上运行,后来实际手机上运行。初步尝试已经表明,整个想法是完全可行的,而后来的进一步研究表明,在代码优化方面仍然后很大的改善空间。
初步结果表明,每个方法的预处理有双重作用:解码能力的提高的同时也增加了解码时间。每一个步骤都需要尽可能地进行优化,并且每一步都必须努力结合起来,减少这整个进程中图像的传输次数。
6. 结论
本文提出了使用手机作为二维条码解码器的提议。该软件是用java实现的,用独立的支持手机的J2ME作为平台。实验结果表明该方法是有效的,具有广泛的应用范围,从手机上的普通数据录入、产品识别和跟踪,到物理世界和虚拟的数字世界的连接。
结果显示早期的提高分辨率的方法并不能彻底的解决问题。对焦仍然是一个亟待解决的问题。目前自动对焦设备尚未成为一个普遍的技术,临时解决方案是使用一个宏镜头配件连接在手机上,能够通过特写获取条码进而解码条形码。值得一提的是,较大的条形码与较低的数据内容可以很容易地被解码,而无需使用一个宏镜头。
解析,解码能力,解码耗时这三者之间的关系仍然需要研究,以寻求最佳组合从而提高整体应用程序的可用性。此外,迄今为止,从来没有研究对优化的J2ME平台和机器码编写的二维条码阅读器的性能进行较为科学详细的比较。机器码编写的阅读器虽然会更快,但是java的可移植性同样是不可或缺,如何在两者之间做出合理的调衡亦是一个重要的议题。
7. 参考文献
[1] Java 2 Mobile Edition. http://java.sun.com/j2me/ - Oct 16,
2006.
[2] JSR 118: Mobile Information Device Profile 2.0.
http://jcp.org/en/jsr/detail?id=118 - Oct 16, 2006.
[3] JSR 135: Mobile Media API.
http://jcp.org/en/jsr/detail?id=135 - Oct 16, 2006.
[4] JS
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[29046],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。