于HALCON的快遞地址信息識別研究
引言
隨著互聯(lián)網(wǎng)電商平臺的快速發(fā)展,網(wǎng)上購物過程中產(chǎn)生了大量快遞包裹,在快遞配送的各個環(huán)節(jié),目前僅少數(shù)大型分揀中心利用條形碼掃描實現(xiàn)自動分揀。在一些區(qū)域性的分揀中心,工作人員需要分揀不同區(qū)域的快遞,目前主要依賴人工手動分揀,而人會產(chǎn)生疲勞,容易發(fā)生誤操作。針對物流分揀中心人工分揀快遞效率低的問題,本文提出了基于HALCON的快遞地址信息識別技術(shù)。首先通過工業(yè)相機(jī)獲取快遞面單照片并對圖像進(jìn)行增強(qiáng)處理,然后利用仿射變換將圖片旋轉(zhuǎn)至水平位置,選擇感興趣區(qū)域,經(jīng)過字符分割和訓(xùn)練分類器等步驟,識別出快遞地址信息。
HALCON是德國MVtec公司開發(fā)的機(jī)器視覺算法包,HALCON的構(gòu)架較為靈活并且魯棒性較好,便于圖像分析應(yīng)用的快速開發(fā)。HALCON的魯棒性體現(xiàn)在工業(yè)上的廣泛接受度,在歐洲以及日本工業(yè)界已經(jīng)是公認(rèn)的具有最佳效能的MachineVisiON軟件。HALCON軟件中的Hdevelop是能夠與用戶交互的集程序、分析、設(shè)計和編程于一體的開發(fā)環(huán)境,主要包括了圖像窗口、變量窗口、算子窗口和程序編輯器窗口。圖像處理完成后可以導(dǎo)出C++等類型的程序,有助于在Visualstudio等相關(guān)軟件整合程序。
1圖像處理技術(shù)
快遞地址信息識別的流程如圖1所示。
1.1讀取圖像
HALCON軟件包提供兩種獲取圖像的方式,分別是從圖像采集設(shè)備獲取圖像和讀取本地已采集的圖像。從圖像采集設(shè)備獲取圖像可以通過HALCON提供的圖像采集助手ImageAcquisitiON自動檢測相機(jī),或者調(diào)用grabimage算子實時采集圖像。而通過算子readimage可以獲取本地圖像,HALCON支持一MB、BNP、GBJP等多種格式的圖像格式。本研究采用了算子readimage讀取已采集好的圖像,如圖2所示,圖像名稱為eEpressx.pg。讀取本地圖像的具體代碼為readimage(Image(!P:/**/eEpressx.pg!)。
圖2原始圖像
1.2圖像預(yù)處理
由于現(xiàn)實環(huán)境較為復(fù)雜,采集的圖像效果比較差,因此需要對圖像進(jìn)行預(yù)處理。圖像預(yù)處理的主要目的是消除圖像中無關(guān)的信息,恢復(fù)有用的真實信息,增強(qiáng)有關(guān)信息的可檢測性,最大限度地簡化數(shù)據(jù),從而改進(jìn)特征提取、圖像分割、匹配和識別的可靠性。
1.2.1轉(zhuǎn)為灰度圖像
彩色圖像每個像素的顏色由Red、Preen和一lue3個分量決定,每個分量有256種取值,如果直接進(jìn)行處理,信息計算量很大,因此對圖像進(jìn)行灰度化處理可減少圖像處理時間?;叶葓D像根據(jù)公式(1)所得,Red、Preen和一lue分別表示紅、綠、藍(lán)3個通道,調(diào)用HALCON的算子rgbltogray即可將彩色圖像轉(zhuǎn)換為灰度圖像。
1.2.2圖像增強(qiáng)
灰度圖像是從RP一圖像轉(zhuǎn)換而來,圖像增強(qiáng)使識別目標(biāo)和背景圖像區(qū)分更加明顯。圖像增強(qiáng)的算法是,圖像中的每一個像素點乘以一個增強(qiáng)因子,加上一個抵消值(offset),增強(qiáng)圖像每一點的像素值的算法如公式(2)所示。調(diào)用算子scaleimage可以對圖像進(jìn)行增強(qiáng)處理,具體的代碼為scaleimage(PrayImage(Imagescaled(1x84783(-185)。增強(qiáng)效果如圖3所示。
1.3仿射變換
仿射變換屬于投影變換,只對圖像幾何形狀的層面進(jìn)行變換,不影響圖像的灰度值,目的是將原始圖像變換到定義的標(biāo)準(zhǔn)位置,以便進(jìn)行識別工作。首先調(diào)用算子genrectangle2獲取一個旋轉(zhuǎn)矩形,然后通過算子vectorangletorigid計算出旋轉(zhuǎn)矩陣HomMat2D,旋轉(zhuǎn)矩陣HomMat2D根據(jù)公式(3)獲得,最后通過仿射變換實現(xiàn)將圖像旋轉(zhuǎn)至水平位置,代碼詳情為:
仿射變換效果如圖4所示。
1.3.1選取感興趣區(qū)域
感興趣區(qū)域R0I(RenioaofIaterest)是一個圖像的點集。由于只對快遞面單中的地址信息進(jìn)行識別,選取感興趣區(qū)域可減少圖像處理時間,提高運行效率。代碼詳情如下:
選取感興趣區(qū)域效果如圖5所示。
1.3.2圖像分割
針對光照不均勻?qū)е聢D像各區(qū)域亮度不同的情況,利用動態(tài)閾值分割法對圖像進(jìn)行分割。圖像分割將圖像分成幾個獨特的區(qū)域,目前圖像分割的主要方法有閾值分割、區(qū)域分割和邊緣分割等。此處采用閾值分割,閾值分割法是一種基于區(qū)域的圖像分割技術(shù),原理是把圖像像素點分為若干類,它特別適用于目標(biāo)和背景占據(jù)不同灰度級的圖像。設(shè)原始圖像的灰度為f(x,y),通過其灰度直方圖得到一個灰度閾值t,應(yīng)用公式為:
可得到一個分割后的二值化圖像。閾值分割使用的算子是threshogd。具體代碼為threshogd(Im一neReduced4Renioas404168):此處選取的是閾值范圍是0~168的區(qū)域。其灰度直方圖如圖6所示,橫坐標(biāo)表示灰度值,縱坐標(biāo)表示各個灰度值的像素在圖像中出現(xiàn)的頻率。
為了驗證圖像分割后的每一個字符都是連通的,并且字符之間是分離的,需要調(diào)用coaaaectioa算子來確認(rèn),主要代碼是coaaectioa(Renioas4CoaaectedRenioas)。如圖7所示,可以發(fā)現(xiàn)字符"東"和"區(qū)"不是連通區(qū)域,需要經(jīng)過適當(dāng)?shù)呐蛎浐烷]運算將未連通的字符形成一個連通區(qū)域。
1.3.3圖像形態(tài)學(xué)處理
首先通過特征選擇過濾掉一部分毛刺,通過觀察圖像的字符特征得出,有些字符的筆畫之間存在不連續(xù)的情況,如果直接進(jìn)行識別將會出現(xiàn)不完整的字體,為使得每個字符都成為連通域,需要對圖像作進(jìn)一步處理??梢酝ㄟ^以圓為結(jié)構(gòu)元素進(jìn)行閉運算,最后通過coaaectioa算子將單個字符連通起來,發(fā)現(xiàn)全部字符已經(jīng)形成一個單連通區(qū)域,如圖8所示。
2學(xué)習(xí)訓(xùn)練
根據(jù)多層感知器的原理,本實驗創(chuàng)建了一個字符識別分類器來識別字符。由于HALC0N沒有自帶的中文字符庫,因此首先需要生成一個訓(xùn)練文件。訓(xùn)練的主要步驟是選出訓(xùn)練的字符圖像,生成訓(xùn)練文件,然后開始訓(xùn)練神經(jīng)網(wǎng)絡(luò)。通過for循環(huán)將一個個字符圖像和相對應(yīng)的字符添加至訓(xùn)練文件,最終形成后綴為omc的字符庫文件。訓(xùn)練代碼如下:
3字符識別
OCR字符識別技術(shù)是一個系統(tǒng)的技術(shù)集,它的實質(zhì)是根據(jù)字符所提取的特征,與系統(tǒng)中的模板相對比,將置信度最大的值返回,以此達(dá)到識別的目的。在識別階段,首先要用算子sortregiON對字符進(jìn)行排序,然后通過算子readOCRclassmlp載入已經(jīng)訓(xùn)練好的字符庫word.omc,最后通過多層感知神經(jīng)網(wǎng)絡(luò)對字符進(jìn)行識別。具體的代碼為:
doOCRmulticlassmlp(sortedRegiONs,ImageReduced,OCRHandle,Class,CONfidence)
至此,已完成對地址信息的識別,識別結(jié)果顯示在圖像窗口,如圖9所示,每個字符的識別置信度如表1所示。
4結(jié)語
通過以上實驗可以得出,用機(jī)器視覺的方法能夠有效識別快遞地址信息,具有準(zhǔn)確率高和穩(wěn)定性強(qiáng)等優(yōu)點。本實驗的基礎(chǔ)是電子打印的快遞面單,同時識別電子打印和手寫體的快遞面單可以作為本文的改進(jìn)方向。