基于iPhone手机的数字码实时识别与应用*
通信地址:102249 北京市中国石油大学地球物理与信息工程学院Address:College of Geophysics and Information Engineering,China University of Petroleum,Beijing 102249,P.R.China
成一功1,2,李国和1,2,3,林仁杰1,2,何云1,2,吴卫江1,2,3,洪云峰3,周晓明3
(1.中国石油大学(北京)地球物理与信息工程学院,北京 102249;
2.中国石油大学(北京)油气数据挖掘北京市重点实验室,北京 102249;
3.石大兆信数字身份管理与物联网技术研究院,北京 100029)
摘要:根据苹果手机拍摄防伪标签数字实时识别的需要,针对防伪数字字号较小的因素和苹果手机因拍摄距离的原因造成的图像缩小、数字模糊、背景复杂等问题进行处理,提高识别精度。首先通过人工选取数字码区域,并进行背景数字分离,定位获取数字图像;其次采用灰度化和二值化得到黑白图像;然后通过投影对数字码图像进行分割,并对每个数字图像进行归一化、锐化和细化;基于统计学抽取数字码的特征,采用最近邻域判别函数进行数字码识别,取得很好的识别效果。
关键词:数字码标签;图像处理;数字码识别;iPhone手机
1引言
通过手机拍照识别条形码、二维码已广泛应用,而通过手机进行其他类型的识别并未普及。同时,由于数字码标签有着成本低、人易读取等优点,所以在产品溯源、真伪查询、有奖销售等领域还大量存在并使用。这些数字码标签形状各异,但数字码一般为七号字左右的黑体。数字码标签由图案区域和数字码区域构成。数字码有单排和多排排列形式。有别于面向机器识别的条形码和二维码,数字码标签是面向人识别的,因此研发手机拍照识别数字码标签系统,可方便消费者提交数字码验证。
常见的Android智能手机对数字码标签进行拍照时聚焦只需5 cm左右,而且图像较为清晰(如图1所示,在6.5 cm高度下的拍摄,参与对比实验的手机包括iPhone4、iPhone4s、iPhone5、iPhone5s、iTouch5和三星Note4、三星Note3、三星S3、华为P1、小米1、小米2),而iPhone手机则需要在7~8 cm才可聚焦,此外iPhone手机获取的标签图像有以下特点:(1)图像复杂,数字区域难以定位;(2)图像质量差,亮度不均匀;(3)图像分辨率低,数字太小等。而成熟的识别方法大部分侧重于提高识别率,降低算法复杂度,对图像质量要求高,难于直接应用于手机图像识别。针对这一问题,本文综合应用和改进多种图像处理方法,实现iPhone手机对数字码标签的快速识别[1]。
Figure 1 Pictures taken by iPhone and Android mobile phones图1 iPhone手机与Android手机拍摄
2图像预处理
手机数字码识别过程包括手机摄像、图像预处理和数字识别(如图2所示)。图像预处理还包括数字区域定位、图像二值化、数字分割、数字细化和特征提取[2,3]。
Figure 2 Digital recognition process图2 数字识别流程
局部阈值二值化Niblack算法根据区域灰度分布特性自适应调节阈值,有效抑制噪声和不均匀光照[4]。假设点p为(x,y),N为常数,那么在N×N大小的点p邻域范围内,由所有像素的灰度值确定每个点的灰度阈值T(x,y):
其中,m(x,y)和s(x,y)分别为点p的N×N邻域的灰度平均值和标准差。
对点p的二值化为:
其中,f(x,y)为点p的灰度值。
由于防伪标签的复杂性,通过采用定位并裁剪获取数字区域,以交互方式在手机上涂抹截取图像,定位到可能带有边界噪声的数字区域,因此需要去除边界噪声截取数字区域。方法如下:
设w、h分别为图像的宽W和高H的1/10,用w*h大小的矩形方框以较小的步长(不超过方框边长)移动并寻找坐标。
步骤1从左上角开始,w*h矩形方框从左向右移动,移动距离为w/10(过程如图3a所示)。
步骤2从左上角开始,w*h矩形方框从上向下移动,移动距离为h/10。
步骤3如果w*h矩形方框内的黑色像素小于ε,则得到数字区域的左上角坐标(x,y),如果不是,则返回步骤1。其中,ε为阈值,为了保证获得的数字区域没有边界噪声,尽可能使w*h矩形框内黑色像素最少,这里取ε=5。用相同方法获得右下角的坐标,就可以得到完整的数字区域(结果如图3b所示)。
Figure 3 Location and cut result图3 定位与裁剪
iPhone手机在近距离对焦和拍摄清晰度低,数字字号较小,使图像更加模糊。此外,在图像中数字所占像素少,而且灰度化和二值化不均匀,锐化后导致数字局部缺失和数字轮廓有粗有细。因此,图像预处理过程中加入图像锐化,可补偿图像轮廓、突出图像边缘,使图像更为清晰[5,6],尤其对于6、9、5等强化缺口边缘。f(x,y)在点p处梯度矢量为:
梯度方向的幅度G(x,y)为:
上式按差分运算近似的梯度幅度:
采用绝对差算法近似为:
(1)
设定一个阈值T∈[0,50],建立e(x,y)来包含图像的主要轮廓和边缘的梯度幅值:
得到e(x,y),结合公式(1),得到后图像的灰度值f(x,y)为:
对图像任一点p,若e(x,y)>0,则边缘较粗,对该像素进行锐化,其中常数C∈[0,1]使边缘变亮;若e(x,y)=0,则边缘较细,不需锐化,像素值不变。通过多次测试,对比图像结果和识别结果,可设置本文程序中锐化阈值T=30,常数C=0.5 (对比结果如图4所示) 。
Figure 4 Comparison before and after sharpening图4 锐化前后对比
为了加强容噪能力和提高分割准确性,数字图像分割采用像素统计和归一化处理。图像二值化后,设:
像素统计为:
像素统计归一化:
其中,vm=max{Px(x)|x∈[0,w]}。
根据像素统计归一化(如图5所示),数字图像分割点集为:
其中,〈x2i,x2i+1〉为第i个数字图像的起始坐标和终止坐标。
Figure 5 Digital projection areas图5 数字区域投影
通过数字细化,保持数字拓扑结构,并将线条宽度转换为单个像素(以数字3为例,结果如图6所示)。新图像由两遍扫描原图像得到[7]。第一遍按列扫描,自左向右,细化横线的宽度,其像素点为:
第二遍按行扫描,自上而下,细化纵线的宽度,其像素点为:
Figure 6 Feature extraction图6 特征提取
通过归一化处理,使不同尺寸的数字图像为相同尺寸。设(i,j)为规范化后图像的像素f′(i,j)(i=1,2,…,h′;j=1,2,…,w′),原始图像中点(x,y)在新图像中坐标(i,j)的关系式为:
i=x×h/h′
j=y×w/w′
其中,w′和h′分别为新图像的宽和高。
3特征提取与识别
根据特征向量的模板匹配法,结合统计学和字形拓扑结构,提取特征值a1a2…a9h1h2v1v2。数字字符图像均匀地分成九个区域(如图6所示),其中ai(i=1,2,…,9)为单位面积的黑色像素数,即面特征。h1、h2分别为上下水平线单位长度的黑色像素数,v1、v2分别为左右垂直线单位长度的黑色像素数,即线特征[8]。
根据数字图像特征提取方法,建立10个数字模式特征向量pi(其中i=0,1,…,9)。对于任一数字特征向量D进行相似性计算,采用最近邻域判别法:
其中,Sim为相似性函数,n为识别的数字[9]。
由于在识别中特征向量的各分量重要性不同,采用分量加权设计相似性函数Sim:
其中,γ、μ为面积特征和线性特征的权重,且γ+μ=1。api、adi、hpi、hdi、vpi、vdi分别为数字模式p和数字数据D的第i个面特征、水平线特征和垂直线特征。
不同于身份证数字,光照、噪声、数字小等导致灰度化、二值化、细化等处理后,提取数字特征向量很接近,如6、9、8和6、5等引起误判,为此采用二级识别,将数字进一步分割。例如,对于识别结果n∈[5,6],数字5左下方的缺口进行第二次划分来统计缺口大小,然后和数字6进行对比识别;对于识别结果n∈[6,9,8],对含n的数字图片进行“十”字线划分,并形成a1、a2、a3、a4依次为左上、右上、左下、右下单位面积黑色像素数,对n进行以下判断:
elsen=6;
4基于iOS的数字码识别实现
iOS是iPhone等产品的移动操作系统,其以Darwin为基础,属于类Unix的商业操作系统,支持C语言、C++、Objective-C。本文软件为C和OC两种语言的混编,可由企业或个人上传给苹果公司,审核通过后,即可在App Store上下载安装。
IOS图像处理主要涉及类:ImagePickerController(摄像头类)、UIImage(图片类)、UIImageView(图片加载控件)、UIView(窗口类)、UIBezierPath(线段类)、CGPoint(点类)等;还包括自定义MainActivity(界面绘制类)、GetRect(数字区域定位类)、RGBToGray(图像灰度化)、GrayToBW(图像二值化类)、Sharpening(图像锐化类)、NumberCut(数字图像分割类)、NumThining(数字细化类)、NumOne(数字归一化类)、DetectFeature(特征提取类)和CompFeature(对比特征类)[10](调用关系如图7所示)。
Figure 7 Digital recognition system图7 数字识别系统
(1)数字模式构建。
①编辑数字图像文件:用图像编辑软件建立0~9标准印刷体数字模板图片文件。
②建立数字模式特征矩阵:系统运行时,将以上提取的数字模板图片通过调用DetectFeature读取数字信息,并依次提取每个数字模板的特征向量,以矩阵形式存储为数字模式特征向量。
③插入数字模板特征矩阵:将得到的数字特征矩阵放到ComFeature中,作为以后识别对比的标准模板。
(2)数字码识别。
①拍照:图像数据通过手机摄像头自动对焦,通过ImagePickerController进行拍摄获取,获取的图像数据为以UIImage的形式存储并信息传递给UIImageView显示。
②数字区定位与分割:在UIImageView的UIImage上通过UIBezierPath方法分别在屏幕上画取路径,得到路径范围内的矩形区域,通过CGPoint定位出数字区域并截取该矩形区,然后定位结果以UIImage的形式返回UIImageView中显示。
③图像灰度化二值化:将UIImage图像传递给RGBToGray,通过CreatRGBBitmapContext方法获得UIImage中RGB信息,进行灰度化处理,传递给GrayToBW二值化处理,并将二值化结果以矩阵的形式传递给GetRect。
④数字区域分割:通过GetRect实现数字区域定位并进行数字区域分割,把得到的数字图像矩阵传递到Sharpening。
⑤数字图像锐化:Sharpening得到数字图像矩阵,对里面的每一个像素点进行黑白分析对比,重新对像素点进行黑白赋值,然后将新生成的数字图像矩阵传递给NumberCut。
⑥数字图像分割:NumberCut接收数字图像的矩阵,并先横向再纵向依次分割,并以数组ArrayList形式传递给NumThining。
⑦数字细化和归一化:将存储在数组ArrayList的单个数字图像传递给NumThining,依次对单个数字图像进行细化处理,然后在NumOne中将数字归一到统一大小,并以数组形式传递给DetectFeature。
⑧特征向量提取:DetectFeature从接收到细化后单字图像数组,依次对每个单字图像进行特征向量提取,并将特征向量以数组形式传递给CompFeature。
⑨数字识别:每一个数字的特征向量在CompFeature中与之前写入的模板矩阵对比,通过最邻近判别方法进行匹配,识别结果以NSString的形式传递给MainActivity,并通过UILabel控件显示在手机界面中。
5应用效果
测试环境为iPhone5S,处理器型号为Apple A7 64位(双核),CPU主频1.3 GHz,内存1 GB,系统为IOS7.0,摄像头为800万像素,支持自动对焦,主屏4.0英寸,分辨率为1136×640像素。
(1)打印数字码识别。
在标准打印纸上,随机打印四组不同字号的数字码样本进行识别测试。测试时,将手机摄像头置于正上方,无倾斜对准数字码,待摄像头自动对焦清楚后按下识别按钮,整个识别过程在2 s内完成。测试结果如表1所示(每张数字码样本中有10个数字,部分含有空格)。
Table 1 Test results of sample identification for
(2)数字码标签识别。
用于真实数字码标签识别时,将手机摄像头置于正上方,无倾斜对准数字码标签,使数字码标签放在扫描框内,待摄像头自动对焦清楚后按下识别按钮,整个识别过程在1 s左右完成(如图8所示,左图为拍照后在屏幕上人工划线定位,右图为定位后直接识别得到结果)。选取50张不同形状、大小、背景的数字码标签样本进行测试,测试结果如表2所示(每张标签中有16个数字)。
Figure 8 Screenshots of the application process 图8 程序过程截图
从表2看出数字码标签的识别正确率达到94.25%。实验结果表明,识别结果与数字码标签的形状大小、数字码排数、数字码颜色无关,而且图像预处理中加入图像锐化后,图像得到优化,提高了识别精度,正确率达到97%,很好地解决了手机拍摄数字码标签实时识别问题。
Table 2 Recognition test results of digital code labels
(3)应用分析说明。
在实际应用中,真实数字码标签较打印数字码标签存在背景复杂、噪声较多(涂层没刮干净)、标签表面反光等因素,而打印数字字符采用没有反光的打印纸,因此真实彩印标签数字字符识别正确率低于打印数字字符识别正确率。
6结束语
智能手机逐步成为功能强大的可移动终端设备。智能手机的实时拍摄与图像识别是其交互与识别的重要应用领域之一。数字防伪标签在商品流通和防伪领域得到广泛的应用,根据iPhone手机拍摄标签数字码实时识别的需要,针对拍摄图像分辨率低、亮度不均匀、图像模糊等特点,研发手机数字码标签识别系统。目前,条形码、二维码已相当流行,这些码是面向机器识别的,在应用上充分考虑到符号的特点,采用规范标准化几何特征的编码和定位图形,确保了识别的效率和精度。而市面上大量存在的数字码是面向人识别的,主要利用数字的拓扑特征,使得机器识别难度较大。此外,除了噪声(涂层没刮干净等)外,手机拍照识别还受到倾斜、旋转、变形等影响,而且数字字号的降低也会影响识别的精度,这些都是提高手机实时识别率要进一步研究的重要内容。
参考文献:附中文
[1]Zhou Ze-hua, Hu Xue-you, Tan Min, et al. A method based on BP neural network to realize printed numeric character diagnosis[J]. Automation & Instrumentation, 2009(5):110-112.(in Chinese)
[2]He Song,Qi Jian-yu. Handwritten digit recognition based on the improved BP neural network[J]. Computer Science,2011,38(10A):204-205.(in Chinese)
[3]Zhang Wei,Wang Ke-jian,Qin Zhen. Digital recognition research based on neural network [J]. Microelectronics & Computer,2006,23(8):206-208.(in Chinese)
[4]Tong Li-jing,Zhang Yan,Shu Wei,et al. The comparison and analysis of several kinds of binarization methods of the document image[J].Journal of North China University of Technology,2011,23(1):25-33. (in Chinese)
[5]Du Zhao-bin,Luo Xiao-hui. Image sharpening algorithm of adaptive template [J]. Engineering Geology Computer Application, 2007(3):21-24.(in Chinese)
[6]Zeng Jia-liang. Image sharpening algorithm based on edge detection[J].Modern Electronics Technique,2006,29(12):90-91.(in Chinese)
[7]Mei Yuan, Sun Huai-jiang, Xia De-shen. An image fast thinning algorithm based on improved template[J].Journal of Image and Graphics, 2006(9):1306-1311.(in Chinese)
[8]Chen Ai-bin,Lu Li-na. Printed digit recognition based on the characteristics[J]. Computing Technology and Automation,2011,30(3):105-108.(in Chinese)
[9]Chen Wei,Cao Zhi-guang,Li Jian-ping. Improved template matching method in the application of license plate recognition [J]. Computer Engineering and Design,2013,34(5):1808-1811.(in Chinese)
[10]Xu Ling,Jiang Xin-zhi,Zhang Jie. The design and implementation of QR code identification system on mobile [J]. Journal of Computer Applications,2012,32(5):1474-1476.(in Chinese)
[1]周泽华,胡学友,谭敏,等.基于神经网络的印刷体数字字符的识别[J].自动化与仪器仪表,2009(5):110-112.
[2]何松,戚建宇. 基于改进BP神经网络的手写体数字识别[J]. 计算机科学,2011,38(10A):204-205.
[3]张伟,王克俭,秦臻. 基于神经网络的数字识别的研究[J]. 微电子学与计算机,2006,23(8):206-208.
[4]童立靖,张艳,舒巍,等. 几种文本图像二值化方法的对比分析[J]. 北方工业大学学报,2011,23(1):25-33.
[5]杜召彬,罗晓晖.自适应模板的图像锐化算法[J]. 工程地质计算机应用,2007(3):21-24.
[6]曾嘉亮.基于边缘检测的图像锐化算法[J]. 现代电子技术, 2006,29(12):90-91.
[7]梅园,孙怀江,夏德深.一种基于改进后模板的图像快速细化算法[J]. 中国图象图形学报, 2006(9):1306-1311.
[8]陈爱斌,陆丽娜. 基于多特征的印刷体数字识别[J]. 计算技术与自动化,2011,30(3):105-108.
[9]陈玮,曹志广,李剑平. 改进的模板匹配方法在车牌识别中的应用[J]. 计算机工程与设计,2013,34(5):1808-1811.
[10]徐玲,蒋欣志,张杰.手机二维码识别系统的设计与实现[J]. 计算机应用,2012,32(5):1474-1476.
成一功(1989-),男,山东德州人,硕士生,研究方向为知识发现。E-mail:cygsam@126.com
CHENG Yi-gong,born in 1989,MS candidate,his research interest includes knowledge discovery.
Recognition of printed-numerical codes and its application based on iPhones
CHENG Yi-gong1,2,LI Guo-he1,2,3,LIN Ren-jie1,2,HE Yun1,2,
WU Wei-jiang1,2,3,HONG Yun-feng3,ZHOU Xiao-ming3
(1.College of Geophysics and Information Engineering,China University of Petroleum,Beijing 102249;
2.Beijing Key Lab of Data Mining for Petroleum Data,China University of Petroleum,Beijing 102249;
3.PanPass Institute of Digital Identification Management and Internet of Things,Beijing 100029,China)
Abstract:To meet the need of real-time shoot and identification of numerical codes printed on goods labels, due to the small size of numerical codes and the small, fuzzy, complex images taken by iPhones from long distance, we propose a series of image processing to improve the recognition accuracy. First, we choose numerical regions manually, and then separate numerical codes from the background, thus obtaining a numerical image. Then the numerical image is transformed to a white-black one by graying and binaryzation. Each numerical code image is segmented by projection method, and then they are normalized, sharpened, and thinned. We finally adopt the nearest neighbor method to recognize the numerical codes based on the extracted statistical features. Experimental results prove the high recognition accuracy.
Key words:numerical code label;image processing;numeral recognition;iPhone
作者简介:
doi:10.3969/j.issn.1007-130X.2015.12.031
中图分类号:TP391.4
文献标志码:A
基金项目:国家高新技术研究发展计划资助项目(2009AA062802);国家自然科学基金资助项目(60473125);中国石油(CNPC)石油科技中青年创新基金资助项目(05E7013);国家重大专项子课题资助项目(G5800-08-ZS-WX)
收稿日期:修回日期:2015-03-12
文章编号:1007-130X(2015)12-2399-06