APP下载

移动终端信息识别的研究与分析

2014-01-15刘幺和

湖北工业大学学报 2014年5期
关键词:条形码云端远程

袁 海,刘幺和,花 奇

(湖北工业大学机械工程学院,湖北 武汉430068)

随着物联网[1]大规模普及,在零售、医疗卫生、物流、运输、公共事业、制造及公共安全等重点行业,及平安家庭、个人健康、电子支付等公共服务领域对企业级、家庭级或个人级的移动类物联网终端提出了更高要求。不同的移动终端采集自不同来源的数据,数据信息内容和信息格式各不相同,导致移动终端对数据的识别难度大大增加,识别的种类包括:光电一体化信息识别、图像处理与识别、声学信号的识别、射频信息识别等。因此,对物体的信息进行实时、有效的识别是物联网发展亟待解决的问题。利用物联网本身的智能处理能力,以及云计算、模式识别等各种智能技术能有效解决这一问题。

1 移动终端信息识别架构

1.1 移动终端本地识别整体设计

信息识别技术是计算机发展的产物,又是辅助计算机识别信息的一大类技术系统,可以将它看成是计算机的眼睛、耳朵、鼻子和感觉神经。就像人的大部分信息获取来自人的感官一样,自动信息识别技术是人们日常生活中运用较多,且较为成熟的一门技术。

目前信息的载体有一维条形码、二维条形码,而容量较大的芯片则通过射频技术识别。一维条形码[2]有信息承载成本低、识别方便等显著优势,但是信息容量太小。射频识别技术的发展相当成熟,对信息的保存也相对安全,不像一维条形码那样容易受到损坏,但是其成本相对较高。近几年逐步成长起来的二维条形码同一维条形码一样,几乎是零成本信息存储技术,但是二维条形码[3]的存储容量却大得多,十分适合移动终端本地识别。

移动终端对信息在本地识别的框架如图1所示,主要包括采集模块、处理模块、显示模块、系统控制模块、嵌入式数据库。

图1 移动终端识别框架图

采集模块负责对模拟信号进行采集,并且转换为数字信号,如对二维条形码进行扫描。处理模块所处理的可能是图像、视频等数据,而图像、视频数据处理的速度要求较高,因此可能会用到DSP等高速处理器。显示模块主要应用于对识别信息的显示。控制模块也称作主控制器,可进行系统移植。μC/OS-II是一个可移植性、可固化、可裁剪的、占先式多任务实时内核,它适用于多种微处理器[4]。嵌入式数据库的种类繁多,主要有Sybase SQL Anywhere、Oracle TimesTen、BerkleyDb和SQLite等,其中SQLite是一款开源的,不受许可证费用约束,并且是专门为嵌入式设计的[5]。其主要用途在于储存一定量的识别数据,例如在语音控制系统中,需要将语音指令保存在系统中。当有指令过来时,需要对语音信息进行识别,进而执行指令所对应的操作。

这种在本地识别的技术识别速率高,适合对信息量相对较小的、数据结构不复杂的信息进行识别,并且随着移动终端数目的增多,其成本也将不断提高。随着网络化的发展,面对需要海量存储和管理的数据,NSA/SAN(网络化存储)、云存储和虚拟信息中心在物流、运输、公共事业、安防监控行业有着巨大的应用前景。因此,对海量数据的识别也是大势所趋。

1.2 云端处理技术

1.2.1 远程识别的基本结构 远程识别技术[6]为不同程序域、不同进程和不同计算机中活动的对象提供了广泛的框架,使其相互之间能够进行畅通无阻的通信,真正实现了软件的分布式应用。云端服务是采用面向服务的体系结构(service-oriented architecture,SOA)[7],在 SOA 中,接口是关键的,接口定义了服务的类型,而不是实现服务的技术。

远程识别技术有移动终端和云端两部分(图2)。

移动终端分为信息采集器、识别代理、显示器三个部分。信息采集器主要用于采集待识别信息,并进行模数转换。采集器采集的信息传递给识别代理,由于采集的二进制代码不够规范,所以需要识别代理对二进制代码进行过滤处理。例如:利用DS18B20采集的十进制数信息为25.6,则其真实温度为25.6×0.0625=16℃(0.0625为温度常数),并且将过滤后的信息转发到Internet远程识别服务器。显示器用来显示经过云端识别的结果。

云端主要由云数据中心和云服务中心两部分组成[8]。云计算平台是一个集海量数据存储、分析于一体的服务平台。将海量待识别信息存放于云计算平台的数据中心,形成一个信息库。由于移动终端识别的信息结构复杂,类型繁多,所以对信息的存储有较为严格的要求,数据中心就是基于数据模型管理和操作数据的。云服务中心为云平台提供了一致的设计、开发、部署和运行服务器端程序的框架。类似插件的方式,对各种服务器端信息识别程序都可以在云平台上运行,无论是基于“.NET”的识别组件,还是基于java的识别组件,云平台提供了调用这些组件的接口,云平台管理员只需设置这些组件的位置和所开发的工具即可。云服务中心可以对大量实时数据和历史数据进行高性能计算和数据挖掘,并且集成了报表和数据分析、辅助决策等服务,能够对待识别信息进行有效识别。

图2 远程处理基本结构

1.2.2 远程识别的工作机制 远程识别与典型的客户端/服务器模式(C/S)应用程序的工作机制相似,服务器对象在网络上某个地方创建、部署它的位置,并且时刻监听要链接的客户端。当客户端向服务器发送请求时,携带了有关调用和参数的详细信息,服务器接受请求参数,调用相关方法处理,并将处理结果返回客户端。如图2所示的远程识别的工作机制,移动终端利用信息采集器采集信息,经过转换后,将信息发送到识别代理,识别代理对数据进行过滤,转换成利于传输的格式,并且携带服务器端IP地址,使用Createlnstanee或Getobjeet方法向云端发出识别请求。云服务中心接受请求,调用识别组件中的函数,并且将云数据中心的识别数据查询出来,提取特征进行识别,识别完成后将识别结果返回至移动终端。移动终端对组件的调用是基于租约机制的,租约到期,远程处理机制将释放引用。

2 基于移动终端的产品信息的识别开发实例

本案例所针对的是产品二维码识别文件信息。由于文件信息很大,故无法采用二维码直接存储;同样由于文件量大,且移动终端内存不够,过多的文件也不易于在移动终端存储。因此结合以上两种方案,只在移动终端存储文件信息的地址,而把文件存放在云端。这样就可以识别海量的文件,声音,视频信息。

2.1 产品信息EPC数据

EPC——产品电子代码,实际上是一种编码手段,其载体可以是二维条形码、电子标签等。这里采用 EPC-64编码格式(图3)[9]。

图3 基于EPC-64的车辆信息编码结构

产品信息EPC就是需要识别的信息,即产品的出厂日期、公司简介,以及在各大商场的出售价格等。EPC就像一把打开所有信息大门的钥匙。例如:11 0000000000 10111101 01001010 00000010 00000 00000000000000000000001。头字段11(十进制3)表示采用的是EPC-64,后面相应的部分表示:中国湖北省武汉市某某公司,桶装面,编号1。其二维码见图4。

图4 产品信息EPC二维码

2.2 移动终端程序设计

移动终端需要移植μC/OS-II系统,并且安装SQLite数据库[10],其创建数据库表以及存储数据如下sql语句所示:

sqlite> create table EPC2IP (id integer primary key,EPCcode text,IP text,Company text,Category text,Serial-Num text);

sqlite>insert into EPC2IP(id,EPCcode,IP,Company,Category,SerialNum)values(1,’1100 0000 0000 1011 1101 01001010000000100000000000000000000000000001’,’xxx.xxx.xxx.xxx:8080’,’中国湖北省武汉市某某公司’,’桶装面’,’1’);

移动终端的数据录入是通过触摸屏实现的,也可通过键盘实现,还可以借助上位机串口录入。数据录入完之后移动终端进入循环,等待扫描后的二维码。由识别代理进行处理,以下是识别代理的部分代码:

uchar checkrightflag;//验证标志位

uchar EPCcodebuffer[65];//EPCcode接受数组

uchar Querydata[6][64];//查询sqlite接受二维数组

uchar SendCode[64];//处理后的数组

...

while(1)

EPCcodebuffer= ScanQRcode();//二维码扫描

if(EPCodebuffer[0]!=OLDCODEFLG)//判断是否发生数据更新

checkrightflag=Check(EPCcodebuffer);//验证扫描的二维码

if(checkrightflag)//验证是否正确

{ Querydata=QuerybyEPCcode(EPCcodebuffer);//查询sqlite的函数

SendCode=QuerydateDispose(Querydata);//对查询出的数据进行转换为规范的格式

EPCodebuffer[0]=0;//更新位置位

....

2.3 云端设计

移动终端的代理组件将数据处理后将Send-Code转换为:“http://xxx.xxx.xxx.xxx:8080/中国湖北省武汉市某某公司.do?Category=桶装面&SerialNum=1”,移动终端利用这个IP到达云端服务的地址,在云端调用服务提供者提供的服务即可。远程识别组件会首先根据条件去查询云服务中心的数据,然后将识别成功的数据返回给移动终端。服务中心数据库采用SQL SERVER2008。云端的识别数据见图5。

图5 SQL SERVER2008云端产品数据表

从云端返回的数据可以是XML格式的,这里采用JSON的数据格式,因为在表达相同的信息时,JSON比XML形成的文件更小,更便于机器解析。以下是从云端返回的JSON数据:

识别数据:{产品:{编号:1,品种号:1,生产日期:’2014-1-20’,产地:’湖北省 xxxxxx’,消费者服务热线:’0278xxxxxx’},

品种:{品种号:1,品种名称:’桶装面’,产品配料:’面饼,调味包,火腿肠’,致敏原信息:’包含小麦制品,大豆制品,乳制品,蟹,贝类,鱼类制品,蛋类制品’,温馨提示:’如发现调味包膨胀,破损,请勿食用,保质期6个月’},

公司:{成立年限:1988,发展历程:’1988年创始人靠打工开始了艰苦的创业历程……’,公司简介:’xx企业中国控股有限公司([本公司])为中国领先饮料及方便面制造商之一……’}

移动终端接收到数据后,利用JSON解析器将识别内容解析,然后将结果显示在显示屏上。至此,整个识别过程结束。

3 结束语

移动终端在本地以及在云端对信息进行识别的技术各有其优势,本地识别识别速度明显高于在云端识别,适用于数据量较小的情况,但如果移动终端数量多,其成本会急剧上升。随着4G网络的发展,移动终端在云端的识别速度也会随之提高。这两种模型不仅适用于对文本信息的识别,而且还适用于语音、图像、视频等信息的识别。如何更好地利用这两种模型,需要具体问题具体分析。

[1] 杨正洪,周发武.云计算和物联网[M].北京:清华大学出版社,2011.

[2] 钟书成,陈晓红.一维条码识别系统的设计与实现[J].成都信息工程学院学报,2006,21(12)::73-77.

[3] 中国物品编码中心.条码技术与应用[M].北京:清华大学出版社,2003.

[4] DAI Qihua,DAI Shuguang,MU Pingan.The solution of real time response for uCOS[J].J.University of Shanghai for Science and Technology,2002,24(01):73-75.

[5] Allen G,Owens M.The Definitive Guide to SQLite[M].第二版.北京:电子工业出版社,2012.

[6] ZHANG Guohua,YUAN Zhongfan.Remote heart sound collection and identification system[J].China Measurement & Test,2012,38(06):49-52.

[7] 栾大为,刘伟君.基于云计算和SOA构架的信息化办公系统[J].通信管理与技术,2013(03):27-30.

[8] ZHANG Hongli.Distributed Digital Library Framework Based on Cloud Computing Platform[J].Information Science,2013,31(03):40-45.

[9] 张海成,张 铎.物联网与产品电子代码[M].武汉:大学出版社,2010.

[10]吴名星,李 彤.嵌入式数据库SQLite在UC/OS2上的移植[J].科学技术与工程,2009,9(04):1 023-1 027.

猜你喜欢

条形码云端远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
创意条形码
云端之城
从条形码到二维码
从条形码到二维码
远程诈骗
条形码大变身
行走在云端
云端创意