李 展
?
裝箱捆百鈔快速檢測的算法
李 展
本文提出了一種基于機器視覺鈔票封包品質(zhì)好壞的快速檢測方法。經(jīng)實驗驗證,該方法有效地檢測出每個鈔票裝箱的把數(shù)和產(chǎn)品數(shù)量,可以為鈔劵封裝工藝改進給出進一步的信息數(shù)據(jù)分析。
檢封產(chǎn)品裝箱線是印鈔產(chǎn)品工序的最后一道環(huán)節(jié),產(chǎn)品的“數(shù)字安全”尤為重要,出廠產(chǎn)品以一箱為單位,每一箱必須有20個千尺包(產(chǎn)品包),每個千尺包已塑封過的10把產(chǎn)品,在實際生產(chǎn)過程中,由于前工序操作原因,存在某千尺包產(chǎn)品“少把”的情況,或者本工序某箱產(chǎn)品“少包”的情形。需要檢測千尺包產(chǎn)品是否有10把,箱內(nèi)產(chǎn)品是否有20個千尺?!扳n券檢封裝箱捆百檢測檢測系統(tǒng)”是對鈔券在檢封生產(chǎn)過程中封包信息、裝箱信息、小包捆百進行檢測的系統(tǒng)。通過本系統(tǒng)的實施,可實現(xiàn)在裝箱線每千尺包產(chǎn)品“把數(shù)”檢測和每箱產(chǎn)品數(shù)量的檢測。通過工業(yè)現(xiàn)場總線將各個信息點進行連接,最終實現(xiàn)通過信息系統(tǒng)能夠查詢該條生產(chǎn)線上每箱產(chǎn)品的實時數(shù)據(jù)或歷史數(shù)據(jù)。
系統(tǒng)全面推廣應用后,可以全面達到鈔券封裝工藝改革中總行提出的“保數(shù)量、保質(zhì)量、可追溯”的工藝要求,為打造智能化、信息化的一流鈔券生產(chǎn)線奠定基礎(chǔ)。
本文設(shè)計的系統(tǒng)實現(xiàn)了對鈔券封裝方式的改革,改變傳統(tǒng)的五小包捆大包后裝箱的方式,按照單尺裝箱的方式進行裝箱,同時對小包封簽方式的也進行了改進,改變了傳統(tǒng)封裝方式,使用小包透明塑膜捆百帶,捆百帶上在線噴印有唯一標識的條碼信息,同時在裝箱前,將每小包裝箱產(chǎn)品的首張冠號信息自動識別后再完成裝箱。系統(tǒng)實現(xiàn)了將條碼信息、裝箱識別首號信息、箱號信息的有效對應,從而實現(xiàn)對每箱內(nèi)所有產(chǎn)品號碼、封裝生產(chǎn)信息的追溯。
根據(jù)裝箱線的安裝條件和實際尺寸要求(物距900mm,成像區(qū)域大小500mm*600mm)選擇使用相機baumer(型號txg50,分辨率2448*2050),鏡頭kowl(12mm),900*900白色面光源。曝光時間不同情況成像如圖2所示。
區(qū)域邊界裁剪
如圖3所示,待測目標基本都在圖像中(200,200)和(800,800)構(gòu)成對角的矩形范圍內(nèi),可以根據(jù)該特征縮小處理的范圍。通過二值化后矩形的尋找將圖像中合理的優(yōu)化裁剪,得到分割后的目標圖像。
為了得到感興趣的目標物的信息,我們首先需要將準備檢測的圖像通過一定的數(shù)學處理變化為更加方便計算機處理的二值圖像(圖像二值化)。而通常的做法是,采用閾值計算的方法來達到圖像二值化的目的。得到閾值的方法很多,一般通過圖像的直方圖信息進行計算得到閾值?;叶葓D像I的直方圖h定義為:
上述公式中m是在整個灰度級值的范圍內(nèi)取值。
Otsu算法是一種基于直方圖的概率統(tǒng)計方法。這里假設(shè)圖像直方圖的概率密度函數(shù)為:
圖1 機械安裝示意圖
圖2 不同曝光時間成像效果(a) 1.5ms (b) 3ms (c) 4ms以及不同曝光時間成像效果對應的直方圖(d) 1.5ms (e) 3ms (f) 4ms
圖3 裝箱圖及其灰度分布
圖4 對裝箱圖照片二值化后的效果
其中,
其次,對二值化后的圖像采用Blob分析,并標記出圖像中的連通區(qū)域。這里我們先將一幅二值圖像定義為,同時,,?其中的取值有兩種可能(0或者1)。假設(shè)在圖像中存在一個像素序列
接下來我們需要標記二值圖像B,并最終獲得被標號的圖像Lable-B。像素所在連通成分的標號就等于標號圖像中每個像素的值。這里為了方便的考慮,采用正整數(shù)來標記像素連通成分,從而達到用符號命名一個實體的目的。
目前存在多種算法來達到標記連通成分的目的。一種算法是針對圖像較大的情況,考慮到計算機內(nèi)存大小的限制,無法使得整張圖片完全被載入。此時,算法被設(shè)計成單次處理圖像中的2行像素。第二種算法是假設(shè)計算機內(nèi)存大小足以載入全部圖像,此時只要采用傳統(tǒng)的遞歸法即可達到對全圖像掃描的目的。其他的例如在大型機上采用并行策略算法來實現(xiàn)連通成分標記等等。馬里蘭大學的A.Rosenfeld與J.L.Pfaltz于1966年發(fā)表了基于經(jīng)典的圖連通算法的連通成分標記算法,俗稱并查算法(unionfind)。該并查算法的實現(xiàn)依賴于對圖像的兩次掃描:第一次掃描首先是記錄圖像中的等價像素對,并為之臨時賦予一個標記號。與此同時,用二元關(guān)系對第一次掃描獲得的等價對集合進行存儲,緊接著處理這些等價集合并最終確定這些二元關(guān)系的等價類。第二次掃描則開始將每個臨時標記號替換成等價類的標號。上述這種隨著找到的等價對實時動態(tài)地構(gòu)建等價類的并查算法在后續(xù)的計算機科技發(fā)展當中被廣發(fā)的應用。通過上述并查數(shù)據(jù)結(jié)構(gòu)的引入,基于樹結(jié)構(gòu)表示的等價類能夠被高效的構(gòu)造以及操作,從而使得經(jīng)典算法的性能得到大幅度的改善。
把相互不相交的集合存儲在一起,從而可以使得合并運算和查找運算的效率大幅度提升,這是引入并查數(shù)據(jù)結(jié)構(gòu)的主要目的。具體來說,即用樹來存儲每一個集合,每個標號用樹的節(jié)點來代表,該標號同時指向它的父節(jié)點。為了實現(xiàn)并查數(shù)據(jù)結(jié)構(gòu),只需要構(gòu)建一個向量數(shù)組Parent,Parent向量數(shù)組的下標即為標號,父節(jié)點的標號就是元素的值。當父節(jié)點等于零時,意味該父節(jié)點是樹的根節(jié)點。圖5顯示的是兩組樹形結(jié)構(gòu)。第一組樹形結(jié)構(gòu)的標號為,第二組樹形結(jié)構(gòu)的標號為。其中標號3為第一組樹形結(jié)構(gòu)的父節(jié)點,同時也是第一組樹形結(jié)構(gòu)集合的標號;標號7是上述樹形結(jié)構(gòu)的父節(jié)點,同時也是該樹形結(jié)構(gòu)集合的標號。通過查找Parent向量數(shù)組,可以得知以下一些信息,諸如:節(jié)點3和節(jié)點7并不存在父節(jié)點,標號1的父節(jié)點是2,標號2、4、8的父節(jié)點是3,等。同時,值得注意的是,由于背景像素通常用零來表示,Parent向量數(shù)組中并不存在標號等于零的元素。同時數(shù)組中值為零的元素代表該節(jié)點不存在父節(jié)點。
圖5 兩組標號的并查數(shù)據(jù)結(jié)構(gòu)。第一組包括標號{1,2,3,4,8},第二組包括標號{5,6,7}。對每一個整數(shù)標號i,PARENT[i]的值是i的一個根節(jié)點,沒有父節(jié)點,則PARENT[i]的值是0.
圖6 輪廓信息特征提取步驟
并查數(shù)據(jù)結(jié)構(gòu)所要實現(xiàn)兩個具體的過程,第一是查找過程,第二是合并過程。其中查找過程中所涉及的參數(shù)為數(shù)組的標號X和父數(shù)組Parent。該查找過程沿著樹結(jié)構(gòu)向上對父指針進行跟蹤,從而達到查找標號X對應樹根節(jié)點標號的目的。而合并過程中所涉及的參數(shù)除了標號X和父數(shù)組Parent外,還包括Y。該合并過程主要是用于修改結(jié)構(gòu),即將包含X的集合和包含Y的集合進行合并操作。具體來說,即分別從標號X和標號Y開始,沿著樹結(jié)構(gòu)向上對父指針進行跟蹤,直到尋找到包含X和包含Y的兩個集合的根節(jié)點為終止點。若一個標號所對應根節(jié)點與另一個標號所對應的根節(jié)點有區(qū)別,則把其中一個較小集合標號的父節(jié)點用另一個較大集合的標號來替代。這樣可以起到將樹的深度向縱向擴展的目的。
對裁剪和檢測目標提取后的圖像進行近一步的輪廓信息特征提取,主要的步驟如下。
輪廓信息特征提取基本思路是:首先通過一些較為嚴格的“探測準則”將目標輪廓上的像素尋找到。再根據(jù)這些輪廓上的像素的某些特征,遵循一定的“跟蹤準則”將目標物體上的其他邊界像素尋找到。為了更好的理解上述思路,下面將詳細講解基于二值圖像的輪廓信息提取算法。
圖7?。╝)圖像輪廓效果圖 (b) 正常產(chǎn)品包面積大小圖(c) “少把"圖像
首先介紹“探測準則”。該準則是用來尋找第一個邊界像素。我們依照從左往右,自下而上的搜索順序?qū)ふ液邳c,最左下方的邊界點一定是依照該順序找到的第一個黑點,我們將其標記為A。A的四個鄰位點(左上,上,右上,右)中至少有一個是邊界點,將該邊界點標記為B,接下來從標記點B開始依照特定的順序(右、右上、上、左上、左、左下、下、右下)來搜索其相鄰點中的邊界點,將該邊界點標記為C。同時,將C點與A點進行比對,若C點即為A點,則表明搜索路徑已經(jīng)轉(zhuǎn)了一個圓圈,此時,搜索程序終止;否則,從C點按照上述方法和順序繼續(xù)搜索,直到找到的標記點等于A點為止。從上面的描述可以看。
其次,將介紹“跟蹤準則”。尋找和判斷一個點是不是邊界點相對來說較為容易,基本的判斷準則就是:若其上下左右四個鄰點都不是黑點,則可以確認該點為邊界點。
上述邊緣輪廓檢測只能用來獲得目標物體輪廓線附近的像素點,并不能用來獲得連接這些像素點之間的線。通常情況下,我們需要檢測的物體形狀事先可以確定并用代數(shù)方程來表示。此時,一種有效的方法就是采用霍夫變換,即將所檢測圖像上的特征像素點相應的映射到表示兩點所連接的線的形狀的參數(shù)空間上。為了方便描述,現(xiàn)采用下面的代數(shù)方程來表示直線:
上式中,和分別代表從坐標原點向直線引的垂線的長度以及垂線與x軸之間的夾角。當我們使用如(8)所示的代數(shù)方程時,可以方便的將直角坐標系圖像空間中的直線,表示成極坐標參數(shù)空間中的一個點。同時,任意直線,只要經(jīng)過圖像中的相應特征點(,),則可用下式(9)表示:
換個思路來看,就是用式(9)表示的參數(shù)空間中的軌跡來對應圖像空間中的點(,)?;谏鲜鰣D像空間與參數(shù)空間的變換關(guān)系,下面介紹下,在霍夫變換中進行直線檢測的具體方式:1)準備一個二維數(shù)組,該二維數(shù)組中所有元素值都被初始化為零用于表示參數(shù)空間;2)把上文通過相應算法搜索到的圖像中的各個特征點的坐標值,代入到公式(8)中; 3)將步驟2)中獲得的方程式所表示的軌跡在參數(shù)空間中描繪出來。描繪軌跡的方法是:一邊使按的大小間隔逐漸增加,一邊將帶入方程計算相對應的值;4)根據(jù)所計算的軌跡,及其相對應通過的數(shù)組元素,將該數(shù)組元素的值增加1。5)通過上述方法描繪出所有對應特征點的軌跡,并計算出大多數(shù)軌跡所集中的相對應的位置。該位置即為參數(shù)空間的數(shù)組中具有最大值的元素。6)將類似這樣的元素所表示的參數(shù)定義為(,)。則該參數(shù)代表圖像中的通過多數(shù)特征點的邊界直線。
上述方法的一個顯著的優(yōu)點是,霍夫變換能檢測出特征點非連續(xù)的圖像的邊緣直線?;舴蜃儞Q法相對邊緣追蹤等方法來說,具有較強的抗噪聲性。進一步的,基于優(yōu)化了的邊緣特征點,檢測目標的鈔捆輪廓及面積統(tǒng)計如圖7 (a)所示。
在獲取到圖像輪廓圖后,就可以根據(jù)輪廓線和位置參數(shù),計算出每個包的序號位置和面積大小,如圖7(b)所示。對于“少把”面積圖像做檢測后,如圖所示:序號12的產(chǎn)品包,面積大小為83798,與其他正常包的面積大小內(nèi)差在9%左右,此依據(jù)可以作為檢測“少把”的標準。
對裝箱流水線的生產(chǎn)箱“產(chǎn)品個數(shù)”進行圖像檢測,對每個產(chǎn)品包“把數(shù)”進行檢測,系統(tǒng)檢測信息以箱為單位,按箱號存儲,并關(guān)聯(lián)首包號識別系統(tǒng)。產(chǎn)品個數(shù)檢測誤報率:0.01%;產(chǎn)品“少把”誤報率:0.5%;裝箱自動線把數(shù)檢測誤報率≤4%,漏報率為0,識別后檢測準確率100%;箱內(nèi)報數(shù)檢測誤報率1%,漏報率為0,識別后檢測準確率100%。
李 展
成都印鈔有限公司
李展(1982-),四川省成都市人,碩士。研究方向:從事鈔券技術(shù)研究工作。
10.3969/j.issn.1001-8972.2016.11.031