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