趙 華,黃 靖,張俊周,曾 俊
(江蘇智聯(lián)天地科技有限公司,江蘇無錫 214181)
目前市場上智能移動信息終端都使用專業(yè)的掃描頭進行掃描,專業(yè)掃描頭不僅體積大,導致行業(yè)用智能移動信息終端體積巨大,且成本遠遠高于普通攝像頭,其優(yōu)點是掃描效率和精度遠高于手機攝像頭;而普通攝像頭體積小,價格相對便宜,但其掃描出錯率高,掃描效率低下。
本文介紹了一種用于智能終端的基于定焦掃描和軟解碼算法的微型高速一維、二維碼掃描模組,并研發(fā)了采用該掃描模組實現(xiàn)高速掃描及高精度掃描的智能移動信息終端,從而可以利用普通攝像頭取代價格昂貴的專業(yè)掃描頭,大幅降低移動信息終端的成本,并減小了移動信息終端的體積。
本掃描模組主要包含以下幾個組成部分。
2.1.1 瞄準模塊
此模塊由軟件控制瞄準裝置發(fā)出瞄準光束(線條或者塊區(qū)域),幫助使用者準確瞄準待掃描條碼。
2.1.2 照明模塊
此模塊是當感光模塊檢測到環(huán)境照明度不足、會影響獲取條碼清晰度的時候,打開此模塊,使用手機自帶的攝像頭補光模塊進行環(huán)境補光,保證抓取到的條碼圖像清晰,便于解碼。
2.1.3 手機掃描設置模塊
此模塊主要設置掃描模式、掃描方式和掃描參數(shù)。
2.1.4 圖像數(shù)據(jù)獲取和處理模塊
此模塊通過手機攝像頭對瞄準的條碼進行數(shù)據(jù)抓取,根據(jù)條碼特征鎖定條碼圖像區(qū)域,對該區(qū)域進行放大抓取,最終輸出清晰、有效的條碼圖形數(shù)據(jù)信息,將此信息傳送到解碼模塊進行解碼操作。
在圖像數(shù)據(jù)獲取時對圖像進行整形,運用圖像校正、二值化、去噪、邊緣檢測、Hough變換、圖像旋轉(zhuǎn)等多種圖像處理方法實現(xiàn)條碼圖像的預處理、條碼定位、條碼分割和數(shù)據(jù)提取。具體見圖1。
圖1 圖像數(shù)據(jù)獲取、處理流程圖
首先,對采集的彩色圖像進行灰度化,以提高后繼的運行速度;其次,去除噪聲,采用中值濾波去除噪音對二碼圖像的干擾,主要是鹽粒噪聲;再次,利用灰度直方圖工具,通過迭代法選取適當?shù)拈撝?,對二維碼進行二值化處理,使其變?yōu)榘椎缀谏珬l碼;最后,確定二維碼的位置探測圖形,對條碼進行定位,旋轉(zhuǎn)至水平后,獲得條碼數(shù)據(jù),以便下一步進行解碼。
2.1.5 解碼模塊
此模塊接收圖像數(shù)據(jù)獲取和處理模塊傳送過來的條碼信息,通過解碼庫進行解碼,將解碼后的結(jié)果輸出給使用者。
二維碼軟解碼算法支持矩陣式二維碼Quick Response(QR)和Data Matrix(DM)等主流的二維碼。下面以QR碼為例闡述軟解碼的工作流程。QR碼的構(gòu)成如圖2所示。
圖2 QR碼的構(gòu)成示意圖
(1)位置探測圖形及分隔符:對于矩陣式二維碼,位置都是固定存在的,只是大小規(guī)格會有所差異,這些黑白間隔的矩形塊很容易進行圖像處理的檢測。
(2)校正圖形:根據(jù)尺寸的不同,矯正圖形的個數(shù)也不同。矯正圖形主要用于碼形狀的矯正。
(3)定位圖形:這些小的黑白相間的格子就好像坐標軸,在二維碼上定義了網(wǎng)格。
(4)格式信息:表示該二維碼的糾錯級別。
(5)數(shù)據(jù)區(qū)域:黑白的二進制網(wǎng)格編碼內(nèi)容,8個格子可以編碼一個字節(jié)。
(6)版本信息:即二維碼的規(guī)格。
(7)糾錯碼字:用于修正二維碼損壞帶來的錯誤。
在譯碼之前通常需要對二維碼進行分割,邊緣檢測后條碼區(qū)域的邊界不是很完整,所以需要進一步修正邊界,然后分割出一個完整的條碼區(qū)域。首先采用區(qū)域增長的方法對符號進行分割,以此修正條碼邊界。其基本思想是從符號內(nèi)的一個小區(qū)域(種子)開始,首先通過區(qū)域增長來修正條碼邊界,把符號內(nèi)的所有點都包括在這個邊界內(nèi),其次通過凸殼計算準確分割出整個符號,最后區(qū)域增長和凸殼計算交替進行。通常對那些密度比較大的條碼重復兩次就足夠了,而對于那些模塊組合比較稀疏的條碼至少要重復四次。
掃描流程如圖3所示。
圖3 掃描流程圖
流程圖說明如下:
(1)如果是掃描模式,對攝像頭進行掃描模式初始化、設置,否則軟件進入默認攝像頭流程;
(2)軟件打開瞄準裝置,幫助使用者瞄準待掃描的條碼;
(3)軟件打開感光裝置,實時檢測環(huán)境照明度情況;
(4)根據(jù)感光裝置反饋回來的照明度,判斷是否需要打開攝像頭補光裝置;
(5)此時攝像頭已經(jīng)處于抓數(shù)據(jù)狀態(tài),根據(jù)抓到的數(shù)據(jù)分析提取條碼特征信息,如果發(fā)現(xiàn)有條碼信息,對該區(qū)域進行放大、降噪、去污處理,保存處理后的條碼圖像信息數(shù)據(jù);
(6)將上訴步驟的條碼圖像信息數(shù)據(jù)直接傳送給解碼庫進行解碼,輸出解碼結(jié)果。
把定焦攝像頭及瞄準裝置裝載進智能終端中,利用智能終端自身感光裝置進行光線感應,并用自身的閃光燈進行實時補光,同時利用智能終端的CPU、GPU等進行圖像采集、圖像處理和解碼,在減小智能終端體積的同時也降低了掃描頭成本,提升了解碼速度,降低了誤碼率。
圖4 模組結(jié)構(gòu)示意圖
此技術實現(xiàn)后,用于條碼掃描的掃描模組與專業(yè)掃描頭相比價格下降2/3,體積減小50%。新技術實現(xiàn)前后智能終端的變化如圖5所示。
圖5 智能終端演變示意圖
裝載基于定焦掃描和軟解碼算法的微型高速一維、二維碼掃描模組的智能終端,實測解碼速度≥4次/s,誤碼率≤0.00005%;在黑暗環(huán)境下可實時調(diào)整補光,滿足掃描要求;同時對褶皺、污損、破損、形變等情景下的條碼解碼成功率較高,誤碼率較小,完全滿足行業(yè)客戶的應用需求。同時利用了智能終端的CPU、GPU、感光裝置、補光燈等部件,大大降低了成本,同時使得智能終端的結(jié)構(gòu)設計更具多元化及小型化。隨著定焦攝像頭的性能不斷提高及軟解碼算法解碼能力的不斷提升,其在未來會有更好的應用前景。
參考文獻:
[1]唐冠群.幾種激光光斑中心定位算法的比較[J].北京機械工業(yè)學院院報,2009,24(1)∶61-64.
[2]王雅靜,竇震海.基于圖像式條碼識讀器的研究[J].電視技術,2007.
[3]李了了,鄧善熙,丁興號.基于大津法的圖像分塊二值化算法[J].微計算機信息,2005,(24).
[4]楊淑瑩.VC++圖像處理程序設計[M].北京:清華大學出版社,2005.
[5]Lin JM,Xing ML,Sha DG,et al.Distortion Measurement of CCD Imaging System with Short Focal Length and Large-Field Objective[J].Optics and lasers in Engineering,2005,43.
[6]Kehtarnavaz N.Development and real-time implementation of a rule based auto-focus algorithm[J].Real-Time Imaging 2003,9(3)∶197-203.