薛江 王知衍 曹曉葉
(華南理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,廣東 廣州 510006)
簡(jiǎn)化二維條碼(簡(jiǎn)稱Tcode)是一種用于手機(jī)上的基于二維條碼思想的字符矩陣.傳統(tǒng)二維條碼在手機(jī)上只可以通過(guò)彩信傳輸,但與彩信相比短信有一定制約性,一是成本高(約10~20 倍以上),二是成功到達(dá)率低.而基于手機(jī)字符的Tcode 是一種很好的替代方案.Tcode 在電子票據(jù)、電子優(yōu)惠卷等電子憑證應(yīng)用中將成為關(guān)鍵技術(shù),在推動(dòng)無(wú)線城市建設(shè)中起著關(guān)鍵作用[1].
二維條碼主要由編解碼模塊與識(shí)別模塊組成[2],傳統(tǒng)的二維條碼編解碼模塊設(shè)計(jì)的主要思想是對(duì)原始數(shù)據(jù)進(jìn)行位流還原,再經(jīng)過(guò)糾錯(cuò)編碼后形成最終數(shù)據(jù)[3].文中基本架構(gòu)與之相似,但由于最終顯示的是手機(jī)支持的常規(guī)字符,考慮到很多字符相似度很高(如字母O 和數(shù)字0)及最大限度地利用編碼映射的特性,文中在編解碼方案上基于傳統(tǒng)二維條碼的思想重新定義了適應(yīng)于Tcode 的映射及編碼方案.
二維條碼識(shí)別的第一步就是基于定位算法的自動(dòng)檢測(cè),傳統(tǒng)二維條碼定位算法有基于圖像分塊的邊緣點(diǎn)檢測(cè)算法[4-5],基于邊緣檢測(cè)算子[6]的Hough變換找直線算法[7]及其改進(jìn)算法[8];另外,還有利用數(shù)學(xué)或形態(tài)學(xué)對(duì)圖像進(jìn)行版面分析、通過(guò)腐蝕或膨脹使條碼區(qū)域形成一個(gè)連通域的方法,這種方法因計(jì)算簡(jiǎn)單而被廣泛應(yīng)用.由于Tcode 并沒(méi)有明顯邊緣,而且算法需在嵌入式系統(tǒng)中使用,對(duì)實(shí)時(shí)響應(yīng)要求很高,所以在文中并不能采用上述傳統(tǒng)方法.文中字符矩陣設(shè)計(jì)時(shí)在矩陣三個(gè)角點(diǎn)加入了手機(jī)中唯一旋轉(zhuǎn)不變的字符“實(shí)心黑圓點(diǎn)”(三點(diǎn)才可以確定矩陣的方向).為解決光照不均及背景復(fù)雜的問(wèn)題,采用基于樣本的滑動(dòng)二值化算法來(lái)對(duì)輸入圖像二值化以保留定位點(diǎn),再結(jié)合圓點(diǎn)濾波器及連通區(qū)域形狀判定來(lái)確定定位點(diǎn),并在定位的基礎(chǔ)上將字符矩陣旋正.
字符切分是車牌識(shí)別和視頻字符提取中的關(guān)鍵算法[9-11].傳統(tǒng)車牌字符切分時(shí)首先進(jìn)行二值化處理,再利用一定的先驗(yàn)知識(shí)結(jié)合投影算法進(jìn)行切分[12].而從視頻中提取字符需要由視頻大小和經(jīng)驗(yàn)值估計(jì)出字符的高度后再對(duì)其進(jìn)行分割[13].Tcode字符切分時(shí),由于定位符不能與其他字符等寬,所以不能直接進(jìn)行整體切分,而需要將整體切分思想與單獨(dú)切分思想相結(jié)合來(lái)對(duì)整個(gè)字符矩陣進(jìn)行切分.
文中首先給出了Tcode 的編碼映射方案,然后詳細(xì)討論了識(shí)別過(guò)程中的關(guān)鍵算法,在定位算法中提出了基于采樣閾值的分塊滑動(dòng)二值化算法來(lái)保留定位點(diǎn),通過(guò)圓點(diǎn)濾波結(jié)合連通區(qū)域形狀判定來(lái)尋找定位點(diǎn),采用改進(jìn)的投影法來(lái)進(jìn)行字符切分.
Tcode 是一種基于二維條碼思想的字符矩陣.對(duì)原始信息經(jīng)過(guò)編碼后形成字符矩陣,在手機(jī)中以短信的方式傳播,在終端識(shí)讀器可以直接進(jìn)行識(shí)別解碼.
Tcode 在設(shè)計(jì)時(shí)主要考慮以下幾個(gè)方面的因素:
(1)原始信息類型,支持?jǐn)?shù)字、字母及其混合.
(2)支持最大信息長(zhǎng)度.最大信息長(zhǎng)度與矩陣大小、原始信息類型、顯示字符個(gè)數(shù)及糾錯(cuò)等級(jí)有關(guān).
常用原始信息有大寫字母A 至Z,小寫字母a至z,數(shù)字0 至9,共62 個(gè).對(duì)原始字符編碼時(shí)采用壓縮編碼方式:即用4 b 可編碼24=16 個(gè)字符,用5 b可編碼25=32 個(gè)字符,用6 b 可編碼26=64 個(gè)字符.顯然,如果選用字母數(shù)字混合模式,需要按6 b方案進(jìn)行編碼,如果只需用到數(shù)字(或16 個(gè)以內(nèi)的部分字母),則只需要按4 b 的方案進(jìn)行編碼.
對(duì)原始信息按上述方案進(jìn)行編碼后,形成一個(gè)二進(jìn)制的位流.使用Reed-Solomon 算法對(duì)其進(jìn)行加密后可形成加密位流.
經(jīng)過(guò)上面的編碼后,仍然不能在手機(jī)上直接顯示,還需將其按規(guī)則映射成手機(jī)可以顯示的字符.而用來(lái)映射的字符須從手機(jī)中可以顯示的128 個(gè)ASCII 碼字符中選取,且字符的個(gè)數(shù)必須為2N(這樣才能保證傳輸?shù)男畔⒘孔畲?,而N 的取值決定于按多少位進(jìn)行映射.即如果N=3,則選取8 個(gè)字符,對(duì)加密位流按3 位一次進(jìn)行映射.
設(shè)傳輸?shù)淖畲笮畔㈤L(zhǎng)度為O(單位為B),矩陣大小為W×H,選用的顯示字符為V,糾錯(cuò)所需字節(jié)數(shù)為ECC(可糾錯(cuò)數(shù)為ECC/2),定位符占用字節(jié)U,傳輸?shù)淖畲笮畔㈤L(zhǎng)度計(jì)算公式如下(其中需對(duì)計(jì)算結(jié)果向下取整):
如果選擇W=8,H=6,V=3,ECC=4,U=3,則O=12,如果只傳輸數(shù)字,按4 b 進(jìn)行編碼,則最多可傳輸12 ×(8/4)=24 個(gè)數(shù)字.
Tcode 定位識(shí)別算法流程圖見(jiàn)圖1.
圖1 Tcode 識(shí)別算法流程圖Fig.1 Flowchart of Tcode recognition algorithm
定位算法在圖像識(shí)別中起著關(guān)鍵作用.如在人耳識(shí)別中自動(dòng)定位輪廓點(diǎn),在人臉識(shí)別中自動(dòng)定位眼睛[14].定位算法是Tcode 識(shí)別的第一步,由于該算法需要連續(xù)運(yùn)行,在實(shí)際使用中用戶對(duì)該算法的等待時(shí)間往往是該算法運(yùn)行時(shí)間的2 倍.原因是攝像頭在捕捉到目標(biāo)圖像時(shí),程序仍在處理上一幀圖像,到處理完成當(dāng)前幀圖像時(shí),定位算法運(yùn)行了兩次.故定位算法對(duì)效率要求尤其高.定位算法由三部分組成,每部分單獨(dú)處理一個(gè)問(wèn)題.首先由輸入的原始圖像得到二值化圖像,要求二值化圖像不能丟失定位點(diǎn);然后是從圖像中確定定位點(diǎn)位置;最后找出3 個(gè)定位點(diǎn)的實(shí)際對(duì)應(yīng)關(guān)系,并根據(jù)旋轉(zhuǎn)角度將圖像旋正.在下文中未曾特別說(shuō)明的θ 或θi都是一個(gè)判定閾值,取值依賴程序具體環(huán)境.
2.2.1 二值化
描述:已知輸入RGB 彩色圖像,求輸入圖像的二值化結(jié)果.
要求:輸入圖像是包含如圖1 所示的圓點(diǎn)定位符的圖像,二值化結(jié)果要保留圓點(diǎn).
問(wèn)題難點(diǎn):由于光照不均,手機(jī)屏幕背景復(fù)雜,傳統(tǒng)的全局閾值二值化算法經(jīng)常會(huì)將圓點(diǎn)整體丟失或部分與背景融合.
文中采用基于中心采樣閾值的分塊滑動(dòng)閾值二值化算法,算法描述如下.
(1)首先對(duì)圖像取中心區(qū)域(大小為e×e)作為采樣區(qū)域,由于字符區(qū)一定過(guò)圖像中心區(qū)域,采用Otsu[15]法求得采樣區(qū)域的閾值t 作為參考閾值.
(2)將原始圖像進(jìn)行分塊(分成f ×f 塊),對(duì)每一塊單獨(dú)使用Otsu 法求得該區(qū)域的閾值ti.
(4)令t' =0.5(ti+t),ti=t',進(jìn)入步驟(3).
2.2.2 求定位點(diǎn)位置
描述:已知二值化圖像,求定位點(diǎn)位置.
要求:如果該二值化圖像包含Tcode 定義的定位點(diǎn),則求出其坐標(biāo)位置.
問(wèn)題難點(diǎn):首先要找候選定位點(diǎn),這一步中關(guān)鍵是將其他明顯非定位點(diǎn)的區(qū)域排除;然后是在所有的候選定位點(diǎn)中找出真實(shí)的定位點(diǎn).
文中采用連通區(qū)域標(biāo)記結(jié)合圓點(diǎn)濾波算法來(lái)排除雜質(zhì)區(qū)域,然后對(duì)候選點(diǎn)進(jìn)行判定,最終求得真實(shí)定位點(diǎn).算法描述如下.
(1)排除較大連通區(qū)域.對(duì)輸入的二值圖像進(jìn)行連通區(qū)域標(biāo)記,將明顯太大的連通區(qū)域首先排除.判定條件為
其中Q 為連通區(qū)域的像素個(gè)數(shù),R、L、T、J 分別為連通區(qū)域右、左、上、下邊界的坐標(biāo),μ 為連通區(qū)域的半徑,定義為Max(R-L,T-J).判定條件依次說(shuō)明:連通區(qū)域不能太大,即像素個(gè)數(shù)不能超過(guò)一定范圍;連通區(qū)域?qū)儆趫A點(diǎn),即上下長(zhǎng)度和左右長(zhǎng)度不能相差太大;連通區(qū)域不能是空心的,即其像素個(gè)數(shù)要和一個(gè)等半徑圓的像素個(gè)數(shù)相似.
(2)排除較小連通區(qū)域.采用圓點(diǎn)濾波算法,將較小的雜質(zhì)排除.定義一個(gè)圓點(diǎn)濾波模板,該模板和定位符相似,但較定位符稍小.用該模板對(duì)原圖像執(zhí)行濾波操作,只有符合模板形狀(或包含模板)的連通區(qū)域被保留,其余部分被過(guò)濾.
(3)執(zhí)行單點(diǎn)骨格化,即將每一個(gè)剩余的連通區(qū)域用其中心點(diǎn)代替,所得到點(diǎn)的坐標(biāo)即為候選定位點(diǎn)坐標(biāo).
(4)判定候選點(diǎn).將所有侯選點(diǎn)3 個(gè)一組進(jìn)行判定,設(shè)候選點(diǎn)為p、q、k,rpq、rpk、rqk分別表示各點(diǎn)之間的距離.判定算法如下:首先求得最大的r =Max(rpq,rpk,rqk),不失一般性,設(shè)r = rpq,再根據(jù)判定條件<θ(由Tcode 定義知,3 個(gè)定位點(diǎn)滿足等腰直角三角形)來(lái)判定候選點(diǎn).
2.2.3 最終確定定位點(diǎn)及旋轉(zhuǎn)角度
描述:已知3 個(gè)定位點(diǎn)A、B、C 坐標(biāo),求哪個(gè)是直角定位點(diǎn),哪個(gè)是左下定位點(diǎn),哪個(gè)是右上定位點(diǎn),并求旋轉(zhuǎn)角度.
文中定位點(diǎn)的選擇主要是基于以下理由:由于一個(gè)或兩個(gè)定位點(diǎn)都不能得到圖像的旋轉(zhuǎn)方向,所以要將圖像旋轉(zhuǎn)成正方向(即人類閱讀方向)至少需要3 個(gè)定位點(diǎn).定位點(diǎn)的安排一般是在4 個(gè)角點(diǎn),而定位點(diǎn)與其他字符不能選擇為等寬字符,原因是不同手機(jī)在接收短信后圓點(diǎn)都會(huì)被默認(rèn)的字體格式所代替,所以包含定位點(diǎn)行的字符與其他行的字符并不對(duì)齊.觀察發(fā)現(xiàn),如果定位點(diǎn)只出現(xiàn)在某一行字符的尾部,則不影響該行與其它行對(duì)齊.為保證定位點(diǎn)能盡量放在行尾,其中的兩個(gè)定位點(diǎn)可放在首行和尾行的行尾,而另一個(gè)定位點(diǎn)則只能放在行首,文中為了符合人類的觀察習(xí)慣,將第3 個(gè)定位點(diǎn)放于尾行行首,即左下角.
文中算法首先確定直角定位點(diǎn),然后再根據(jù)向量叉乘原則確定另外兩個(gè)定位點(diǎn),最后由另外兩個(gè)定位點(diǎn)計(jì)算旋轉(zhuǎn)角度θ(0≤θ <2 ),算法描述如下.
(1)計(jì)算3 條邊的長(zhǎng)度求得其最大值,假設(shè)A點(diǎn)所對(duì)邊長(zhǎng)度最大,則A 點(diǎn)為直角點(diǎn),即為字符矩陣的右下角點(diǎn).
(2)要確定B 點(diǎn)和C 點(diǎn),可利用平面向量叉乘公式.平面向量的叉乘公式如下.
設(shè)點(diǎn)A 到點(diǎn)B 向量X =(a,b),點(diǎn)A 到點(diǎn)C 向量Y=(c,d),則
(3)要求得順時(shí)針的旋轉(zhuǎn)角度θ(0≤θ <2 ),只需將由A 點(diǎn)(右下角點(diǎn),即直角點(diǎn))與C 點(diǎn)(左下角點(diǎn))確定的直線段旋轉(zhuǎn)到水平方向,且C 在左,A 在右即可.由A(a,b)、C(c,d)首先求得sqrt((a-c)2+(b-d)2),則銳角θ' = cos-1((a-,如果b >d,則θ=θ',否則θ=2-θ'.
找到字符圖像的定位點(diǎn)并將圖像旋正之后,問(wèn)題就轉(zhuǎn)化為如何將字符區(qū)域進(jìn)行切分,最終得到單個(gè)字符.字符切分主要解決三個(gè)問(wèn)題:一是二值化后粘連字符的切分,二是二值化后一個(gè)字符被分割成不同連通區(qū)域的問(wèn)題,三是二值化產(chǎn)生的噪聲的去除.整個(gè)算法流程如下.
(1)將所得到的字符區(qū)域二值化.由于預(yù)先知道字符區(qū)主要由M ×N 個(gè)字符組成,所以首先將圖像等分成M×N 份,對(duì)每份單獨(dú)二值化,以避免光照不均等影響.
(2)將圖像在水平方向進(jìn)行投影,求得字符的高度及每行字符的起始位置坐標(biāo).注意到短信在每行都是等高的,且在投影后行與行之間的噪聲點(diǎn)較少(相對(duì)于字符),所以在進(jìn)行投影判定時(shí),可以直接設(shè)定一個(gè)閾值I,投影點(diǎn)數(shù)量大于I 的才認(rèn)為是字符投影.求得M 行字符每行的起始與結(jié)束位置.
(3)由于圖像的前N-1 行字符是等寬字符,可以對(duì)其進(jìn)行統(tǒng)一切分,切分方法同步驟(2).并求得字符的平均寬度Z 和字符間的平均間距G.
(4)而對(duì)最后一行,由于它在兩端都含有定位符,與其他行不等寬,需要單獨(dú)切分.對(duì)一行字符進(jìn)行單獨(dú)切分時(shí),由于字符在投影時(shí)產(chǎn)生的投影點(diǎn)數(shù)量不足以區(qū)分字符與字符間噪聲,所以在設(shè)定閾值I 時(shí),一些圖像必然會(huì)在其投影后保留噪聲點(diǎn),而在另一些圖像上將一個(gè)字符切分成兩部分或更多部分.為解決此問(wèn)題,需要進(jìn)行步驟(5).
(5)設(shè)圖像最后一行的垂直投影矩陣為D[M],其中D[i](0≤i <M)表示坐標(biāo)i 處水平投影上點(diǎn)的個(gè)數(shù).首先標(biāo)記各段連通區(qū)域的起始點(diǎn)并計(jì)算其長(zhǎng)度,假設(shè)得到K 段連通區(qū)域,每段的起點(diǎn)為S[i](0≤i <K),終點(diǎn)為F[i](0≤i <K),長(zhǎng)度L[i]=F[i]-S[i]+1,首先確定長(zhǎng)度為L(zhǎng)[i]的線段是否為投影區(qū)域,L[i]約等于平均長(zhǎng)度的一定為字符投影區(qū)域.找到部分(可能是全部)字符區(qū)域后,如果字符個(gè)數(shù)小于N,則需要繼續(xù)查找字符.查找時(shí)以如下原則進(jìn)行.首先查找字符內(nèi)部的連通區(qū)域.即如果找到的E個(gè)字符從左開(kāi)始起始編號(hào)為E1,終止編號(hào)為E2,從E1開(kāi)始依次查找非字符的連通區(qū)域,每找到一塊非字符連通區(qū)域P 后,判定它與離它最近的字符區(qū)域(在其左邊)的間距是否約等于平均間距,如果是,則看它的下一塊相鄰區(qū)域P +1 是否同為非字符區(qū)域且與它最近的字符區(qū)域(在其右邊)間距約等于平均間距,如果同樣找到,則判定如果進(jìn)行合并后產(chǎn)生的新區(qū)域長(zhǎng)度F[P +1]-S[P]是否約等于平均長(zhǎng)度,如果是,則進(jìn)行合并并且認(rèn)定它們合并后是一個(gè)字符區(qū)域.在判定過(guò)程中有一步不符合,則跳過(guò)該連通區(qū)域后繼續(xù)往下查找.在將內(nèi)部連通區(qū)域查找完之后,一般就找到了所有的字符區(qū)域.原因是該行的兩端為兩個(gè)實(shí)心黑圓點(diǎn),二值化算法可以很好地保留該圓點(diǎn).在投影后該圓點(diǎn)同樣不會(huì)產(chǎn)生斷裂.
(6)進(jìn)行完整的切分之后,再對(duì)實(shí)際的每個(gè)字符單獨(dú)二值化,可以得到較好的二值化結(jié)果.進(jìn)行頂格裁剪(即將字符上下左右的空部分裁剪掉)后進(jìn)行歸一縮放.縮放到統(tǒng)一大小后即可進(jìn)行模板匹配得到識(shí)別結(jié)果.
為了驗(yàn)證文中提出的算法的有效性,進(jìn)行了實(shí)驗(yàn)測(cè)試.文中程序遠(yuǎn)行環(huán)境為RC550,運(yùn)行嵌入式wince6.0 系統(tǒng),帶一個(gè)攝像頭用來(lái)進(jìn)行光學(xué)字符識(shí)別(OCR),硬件條件為:內(nèi)存56 MB,處理器為基于ARM 的1176JZF-S-S3C6410,工作上頻率可達(dá)667 MHz.所涉及的手機(jī)均為常見(jiàn)機(jī)型,包括基于IOS5.0 的iphone4(iphone 4S),基于Andriod2.2 的Moto ME722,基于SybainS60 的Nokia5230 及非智能機(jī)Nokia5310XM 等各種機(jī)型.編程語(yǔ)言為VC++.
定位算法主要包括原始圖像閾值分割、二值圖像定位點(diǎn)位置的確定、以及最終定位點(diǎn)信息的還原,而圖像閾值分割又是其中的核心部分.本實(shí)驗(yàn)將改進(jìn)算法與圖像分割中最常用的兩種算法進(jìn)行了對(duì)比,一種是基于直方圖形狀分析的方法,選取的是文獻(xiàn)[16]的GVM 算法;另一種是基于測(cè)度空間聚焦度的方法,選取的是文獻(xiàn)[15]的Otsu 算法.GVM 算法是將圖像灰度直方圖各個(gè)谷的深度作為準(zhǔn)則函數(shù),通過(guò)使用遍歷方法求全局最大深度,從而得到閾值.而Otsu 算法同樣采用遍歷的方法,以類內(nèi)方差和類間方差作為準(zhǔn)則函數(shù),當(dāng)類內(nèi)方差最小且類間方差最大時(shí)求得閾值.本實(shí)驗(yàn)選擇了9 種不同情況的樣本進(jìn)行測(cè)試,如圖2 所示,每行從左到右依次為經(jīng)過(guò)處理的灰度圖像、使用F 準(zhǔn)則的GVM 算法測(cè)試結(jié)果、使用K 準(zhǔn)則的GVM 算法測(cè)試結(jié)果、大津法測(cè)試結(jié)果以及文中算法的測(cè)試結(jié)果.
圖2 二值化結(jié)果Fig.2 Binarization results
可以看出,當(dāng)圖像受光照不均影響時(shí)(見(jiàn)圖2(b)、(c)),GVM 算法表現(xiàn)較差,而大津法也會(huì)受到一定影響;當(dāng)圖像雜質(zhì)較多時(shí)(如圖2(e)),GVM算法效果同樣較差;當(dāng)圖像出現(xiàn)明顯的三峰分布時(shí)(如圖2(h)),GVM 算法和大津法都不能很好地獲取目標(biāo).而文中算法利用中心字符作為樣本區(qū)域,對(duì)圖像進(jìn)行分塊,并利用滑動(dòng)閾值法求取每塊的閾值,能較好地解決上述情況下存在的問(wèn)題.
3.2.1 原始圖像二值化
原始圖像二值化的過(guò)程主要包括提取識(shí)別區(qū)域、目標(biāo)圖像灰度化、二值化保留定位點(diǎn),如圖3所示.
圖3 原始圖像二值化過(guò)程Fig.3 Binarization of original image
3.2.2 確定定位點(diǎn)
確定定位點(diǎn)主要有兩個(gè)過(guò)程:一是去除較大連通區(qū)域以及模板濾波,二是單點(diǎn)骨格化后再對(duì)候選點(diǎn)進(jìn)行判定,并通過(guò)平面向量叉乘原理分別確定3 個(gè)定位點(diǎn).如圖4 所示,3 個(gè)從大到小的白方格標(biāo)示的點(diǎn)分別為右下角點(diǎn)、右上角點(diǎn)、左下角點(diǎn).最終可以通過(guò)將定位點(diǎn)旋轉(zhuǎn)至正方向而求出字符區(qū).
圖4 確定定位點(diǎn)過(guò)程Fig.4 Determination of anchor points
3.2.3 字符切分
字符切分主要是在二值化后將整體切分與單獨(dú)切分相結(jié)合,從而求得切分結(jié)果,如圖5 所示(右圖結(jié)果已經(jīng)過(guò)直方圖增強(qiáng)處理).
圖5 字符切分過(guò)程Fig.5 Character segmentation
Tcode 的要求是,平均響應(yīng)時(shí)間應(yīng)該在1 s 以內(nèi),應(yīng)該能對(duì)主流的手機(jī)短信進(jìn)行識(shí)別.識(shí)讀終端的應(yīng)用設(shè)計(jì)是一個(gè)連續(xù)循環(huán)的響應(yīng)設(shè)計(jì),若識(shí)讀正確則退出該循環(huán),一旦識(shí)讀過(guò)程中有一步識(shí)讀失敗都將返回循環(huán)開(kāi)始處重新執(zhí)行.其中,主要的幾個(gè)可能失敗點(diǎn)為:①原始圖像二值化后定位點(diǎn)丟失;②疑似定位點(diǎn)太多導(dǎo)致難以確定最終定位點(diǎn);③對(duì)圖像投影后切分失敗,包括行切分失敗和列切分失敗;④識(shí)讀字符錯(cuò)誤數(shù)量超過(guò)糾錯(cuò)等級(jí).
筆者對(duì)機(jī)型進(jìn)行分類,對(duì)基于IOS、Andrid 和Sybain 的手機(jī)分別進(jìn)行了連續(xù)100 次的識(shí)讀測(cè)試,得到兩個(gè)重要的參數(shù):0.5 s 內(nèi)的識(shí)別率和1 s 內(nèi)的識(shí)別率.3 種不同系統(tǒng)0.5 s 內(nèi)的識(shí)別率依次為93%、89%、95%,平均識(shí)別率為92.4%;而1 s 內(nèi)識(shí)別率依次為97%、93%、99%,平均識(shí)別率為96.2%.
文中開(kāi)發(fā)了一個(gè)嵌入式的簡(jiǎn)化二維條碼編解碼識(shí)別系統(tǒng).其中,定位部分主要解決了二值化保留定位點(diǎn)、確定定位點(diǎn)位置以及求最終旋轉(zhuǎn)角度的問(wèn)題;而切分部分主要克服了字符二值化不理想造成的粘連等問(wèn)題.實(shí)驗(yàn)部分將一些典型的二值化算法與文中改進(jìn)算法進(jìn)行了對(duì)比,驗(yàn)證了文中算法的可行性,并同時(shí)證明系統(tǒng)的響應(yīng)時(shí)間是符合要求的.
顯然,大規(guī)模地運(yùn)用本系統(tǒng),還需要在更復(fù)雜的環(huán)境中對(duì)更多的機(jī)型進(jìn)行測(cè)試,同時(shí)也要對(duì)定位過(guò)程及切分過(guò)程實(shí)行進(jìn)一步的優(yōu)化.其中,定位過(guò)程優(yōu)化包括傳輸信息量和信息種類的進(jìn)一步提升、定位點(diǎn)的取消或精簡(jiǎn)、以及二值化時(shí)定位點(diǎn)更為高效準(zhǔn)確的保留;而切分過(guò)程優(yōu)化則要進(jìn)一步提高切分的正確率和識(shí)別的正確率,并降低系統(tǒng)的影響時(shí)間.這些都是需要進(jìn)一步研究的內(nèi)容.
[1]許統(tǒng).手機(jī)二維碼在國(guó)內(nèi)的發(fā)展及應(yīng)用[J].電腦與信息技術(shù),2011,19(3):62-63,69.Xu Tong.Mobile two-dimensional bar code development and application in China[J].Computer and Information Technology,2011,19(3):62-63,69.
[2]Hee Il Hahn,Joung Koo Joung.Implementation of algorithm to decode two-dimensional barcode PDF-417[C]∥Proceedings of 2002 6th International Conference on Signal Processing.[S.l.]:IEEE,2002:1791-1794.
[3]劉悅,劉明業(yè).QR code 二維條碼數(shù)據(jù)編碼的研究[J].北京理工大學(xué)學(xué)報(bào),2005,25(4):352-355.Liu Yue,Liu Ming-ye.Research on data encoding of twodimensional QR code barcode[J].Transactions of Beijing Institute of Technology,2005,25(4):352-355.
[4]劉寧鐘.復(fù)雜背景中條碼檢測(cè)定位技術(shù)的研究[J].南京航空航天大學(xué)學(xué)報(bào),2005,37(1):65-69.Liu Ning-zhong.Detection and localization of bar code in complicated background[J].Journal of Nanjing University of Aeronautics & Astronautics,2005,37(1):65-69.
[5]Sun Ai-dong,Sun Yan,Liu Cai-xing.The QR-code reorganization in illegible snapshots taken by mobile phones[C]∥Proceeding of Fifth International Conference on Computational Science and Applications.Washington D C:IEEE,2007:532-536.
[6]胡東紅,譚輝,陳莘萌.Radon 變換在二維條碼圖像識(shí)別中的應(yīng)用[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2005,51(5):584-588.Hu Dong-hong,Tan Hui,Chen Xin-meng.The application of Radon transform in 2D barcode image recognition[J].Journal of Wuhan University:Natural Science Edition,2005,51(5):584-588.
[7]Ballard D H.Generalizing the Hough transform to detect arbitrary shapes[J].Pattern Recognition,1981,13(2):111-122.
[8]Heikki K?lvi?inen,Petri Hirvonen,Erkki Oja.Houghtool—a software package for the use of the Hough trans-form[J].Pattern Recognition Letters,1996,17(8):889-897.
[9]駱雪超,劉桂雄,馮云慶,等.一種基于車牌特征信息的車牌識(shí)別方法[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2003,31(4):70-73.Luo Xue-chao,Liu Gui-xiong,F(xiàn)eng Yun-qing,et al.A vehicle license plate recognition method based on the characteristics of vehicle license plate[J].Journal of South China University of Technology:Natural Science Edition,2003,31(4):70-73.
[10]秦鐘,徐建閩,史勝利,等.基于字符角點(diǎn)信息的車牌定位方法[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2006,34(4):19-23.Qin Zhong,Xu Jian-min,Shi Sheng-li,et al.Locating of license plate based on character corner information[J].Journal of South China University of Technology:Natural Science Edition,2006,34(4):19-23.
[11]陶澤明,裴玉龍.事故車輛圖像特征點(diǎn)的自動(dòng)匹配[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2009,37(3):138-143.Tao Ze-ming,Pei Yu-long.Automatic matching of image feature points of accident vehicle[J].Journal of South China University of Technology:Natural Science Edition,2009,37(3):138-143.
[12]任明亮,范勇,蔣欣榮,等.一種快速精確的汽車牌照字符切分算法[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2002,39(3):450-454.Ren Ming-liang,F(xiàn)an Yong,Jiang Xin-rong,et al.A fast algorithm for accurate char segmentation of license plate[J].Journal of Sichuan University:Natural Science Edition,2002,39(3):450-454.
[13]楊武夷,張樹(shù)武.一種視頻中字符的集成型切分與識(shí)別算法[J].自動(dòng)化學(xué)報(bào),2010,36(10):1468-1476.Yang Wu-yi,Zhang Shu-wu.An integrated segmentation and recognition algorithm for text in video[J].Acta Automatica Sinica,2010,36(10):1468-1476.
[14]Kyong Chang,Kevin W Bowyer,Sudeep Sarkar.Barnabas Victor,comparison and combination of ear and face images in appearance-based biometrics[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2003,25(9):1160-1165.
[15]Otsu.A threshold selection method from gray-level histograms[J].IEEE Transactions on Systems,Man and Cybernetics,1979,9(1):62-66.
[16]Davies E R.Stable bi-level and multi-level thresholding of images using a new global transformation [J].IET Computer Vision,2008,2(2):60-74.