崔一峰
(北京信息科技大學,北京 100192)
基于機器視覺滿箱檢測方法
崔一峰
(北京信息科技大學,北京 100192)
滿箱檢測是飲料包裝檢測的重要環節。傳統的基于PLC的檢測方法的準確性和快速性已經滿足不了實際生產需求。本文提出的基于機器視覺的滿箱檢測方法利用OpenCV開源視覺庫,通過對圖片的處理和分析,利用Hough變換的找圓函數確定是否滿箱。通過對處理時間和準確率的對比,基于機器視覺滿箱檢測方法在處理時間,準確率和適應性等方面均有明顯優勢。
滿箱檢測;機器視覺;OpenCV;Hough 變換
10.16621/j.cnki.issn1001-0599.2017.12.26
近年,飲料行業以前所未有的速度迅速發展。與之伴隨而生的飲料包裝行業異軍崛起。許多包裝設備像裝箱機、紙箱包裝機、熱塑膜包裝機等自動化的生產設備在飲料行業中得到廣泛應用。隨著自動化設備的應用,生產線上也出現了許多問題。其中最為嚴重和最為普遍的就是在裝箱過程中常常出現缺瓶、少瓶現象。隨著國家對飲品行業管控力度的加大,對不合格產品處罰措施的加重,一旦這類缺瓶的不合格產品流通到市場中,會對廠家帶來極其消極的影響。因此在產品封箱前對產品進行滿箱檢測顯得尤為重要。
目前在生產現場中,判斷是否滿箱一般采用的方法是安排專職人員用肉眼觀察。由于人眼長時間專注容易導致視覺疲勞,所以一般是2個人輪流觀察,每隔0.5 h換一次崗。這種方法存在很大缺陷。首先,這種方法增加了額外的人員投入,增加了生產成本;其次在高速的生產線上,人工檢測不能準確的檢測出是否滿箱。最為重要的是,現在生產線的速度越來越快,由原來的每小時幾千箱增加到每小時幾萬箱,人眼根本無法檢測是否滿箱,更別說剔除不合格產品。開發一套自動的滿箱檢測設備迫在眉睫。
目前國內飲料行業的大型生產廠家主要是應用國外公司的檢測設備,比如德國HEUFT公司的LOGIC系列滿箱檢測機。國外設備的價格比較高而且操作和維修有一定困難,因此滿箱檢測設備在中小企業內的應用并不廣泛。為此開發一套簡單經濟準確的滿箱檢測系統已經刻不容緩。
基于PLC的滿箱檢測系統主要由PLC、操作面板、觸發器部分和檢測傳感器等4個部分組成。程序通過從操作面板接受的信息判斷當前的箱型,利用觸發器和光電傳感器讀取的信息判斷當前是否滿箱。這種方法雖然在理論上是可以實現的,但是受生產現場條件的制約,很多情況下基于PLC的滿箱檢測系統并不能很好的完成滿箱檢測。在實際應用中,可供安裝設備的直線段生產線非常短,而基于PLC的滿箱檢測系統從觸發到檢測動作的時間比較長,剔除設備需要安裝在離檢測設備比較遠的地方,不適合高速生產線的滿箱檢測。而且基于PLC的檢測設備只能適用于一種或幾種型號的滿箱檢測,無法滿足實際生產產品包裝多樣化的需求。
近幾年,機器視覺作為人工智能的一個分支取得了巨大的成就。基于機器視覺技術的各類公司如雨后春筍般應運而生。機器視覺是一項集合了多種技術的綜合技術,其中包括圖像處理技術、機械工程技術、控制技術、電光源照明技術、光學成像技術、傳感器技術、模擬與數字視頻技術和計算機軟硬件技術等。一個典型的視覺應用系統一般包括成像系統,圖像處理系統,控制執行系統等。對于成像系統而言,最重要的就是光源。好的光源是機器視覺系統成敗的關鍵。選擇合適的光源,可凸顯良好的圖像效果,可以提高檢測精度、簡化算法、保證檢測系統的穩定性。常見的光源顏色有白色、藍色、紅色、綠色、紅外、紫外等。動作執行系統一般由執行動作機構,旋轉編碼器組成。在視覺系統中,最為重要的就是圖像處理系統。一個視覺系統的優劣取決于圖像處理結果的準確性。圖像處理結果越準確,產生的誤剔越少,視覺系統也就越優質。可見圖像處理算法對視覺系統的重要性,研究出一個既高效又準確的圖像處理算法是目前最重要的技術難題。在滿箱檢測系統中,機器視覺技術不但可以解決傳統設備不適合高速生產線的缺陷,而且可以很容易的實現對多種型號飲品的滿箱檢測。
現在比較流行的視覺開發軟件有Halcon,VisionPro和OpenCV等3種。Halcon在歐美國家中應用比較廣泛,在國內并沒有太大市場。VisionPro雖然在國內占據了一定的地位,但是它的源碼是不開放的,用戶只能根據他提供的工具來實現自己的視覺應用。這就給實際應用現場帶來很大的局限性。因為實際應用的狀況千變萬化,VisionPro不可能適用于全部的應用場合。雖然VisionPro提供了腳本編程,但是其腳本編程也是基于自身工具的,靈活性并不強。OpenCV一般采用C或者C++語言編寫的,由于它的源碼是完全開放的,用戶可以根據實際應用,利用OpenCV提供的源碼編寫自己的視覺應用程序,以適應千變萬化的應用現場,所以它在國內的應用比較廣泛。OpenCV提供了一個比較簡單的視覺框架。在這個框架下,用戶可以根據千變萬化的現場環境去構建更符合實際應用的計算機應用視覺程序。最新版本的OpenCV提供了500多個源函數,覆蓋了計算機視覺的絕大多數應用領域,已經基本滿足實際工程中的需求。
在后續圖像處理之前,需要判斷圖像是否獲取正確。如果圖像沒有獲取正確,那么后續的處理也就沒有任何意義了。OpenCV提供的Mat類對象從圖像源獲取圖片后,利用Mat類的成員函數empty()可以實現這一功能。在條件語句下,判斷圖像是否為空,如果圖像獲取錯誤,則empty()函數返回真,不然empty()函數則返回假。如果載入圖像錯誤,則返回-1。這樣通過函數的返回值就可以判斷圖像獲取正確。
為了簡化運算,在判斷圖像獲取正確后,需要對獲取到的圖像進行灰度化。以RGB彩色圖像為例,圖像中每個像素點的顏色是由紅色分量、綠色分量和藍色分量組成。每個分量都可以取0~255中的任何整數值,全為0時,圖像為純黑色,全為255時,圖像為純白色。如果不對圖像進行灰度化,而是直接進行后續的圖像處理,就需要對3個通道一一進行運算,這樣必然增加圖像處理時間。在高速生產線上,如果圖像處理過長,即使檢測到不合格品,執行動作機構也沒有時間執行動作。所以對采集到的圖像進行灰度化顯得尤為重要。灰度圖是R,G和B等3個分量的值相同的一種特殊圖像。所以在圖像處理中,將彩色圖像轉換成灰度圖像后會使后續的圖像處理的計算量相對較少。而且灰度圖和彩色圖在反映圖像的特征方面沒有什么區別,完全可以通過處理灰度圖獲得想要的信息。
OpenCV通過cvtColor()函數完成圖像從一個顏色空間到另一個顏色空間的轉換,并且在轉換的過程中能夠保證數據的類型不變。灰度化后的圖像如圖1所示。
灰度化后的圖像里摻雜了許多噪聲,如果不加以濾除,會直接影響后續對飲料瓶的計數檢測。OpenCV提供了多種濾波函數可供選擇,比如中值濾波,高速濾波,均值濾波等。每一種濾波函數都有各自的特點和使用范圍。中值濾波是對一定區域的像素點按照像素的大小從小到大排列,取出中值代替這一區域的所有像素值。從中值濾波的定義可以了解到,中值濾波可以濾除一定區域的極值像素點。由此可見,中值濾波對濾除椒鹽噪聲會有顯著的功效。因為椒鹽噪聲是最大值或者是最小值點,而求中值的方法一定會把這些像素點濾除掉。對于滿箱檢測而言,局部最大值和最小值點有利于識別,因此不選擇中值濾波方法。高斯濾波是將高斯函數進行離散化,以離散點上的高斯函數值作為權值,對采集到的灰度矩陣的每個像素點做一定范圍鄰域內的加權平均,有效的消除高速噪聲。而需要的感興趣區域的灰度值較高,所以高斯濾波不合適。均值濾波是用某個區域的均值來代替這一區域的所有像素值,在滿箱檢測實驗中,用工業相機采集到的圖片在采用同樣大小的內核情況下,使用均值濾波后的圖像相比使用高斯濾波和方框濾波兩種濾波方法而言,有效的保留了瓶蓋的邊緣信息,這對于后續通過找圓確定數量非常有幫助,而且還濾除了很多細小的雜質。圖2是使用孔徑尺寸為5像素的中值濾波函數濾波后的效果圖,圖3是使用內核大小為5像素的高斯濾波函數濾波后的效果圖,圖4是使用內核大小為5像素的均值濾波函數濾波后的效果圖。

圖1 灰度化后的圖像
如圖1所示,瓶蓋可以作為瓶子計數的重要特征。可以通過查找圖像中圓的個數的方法計算瓶蓋的個數,如果能查到20個圓說明滿箱。由于點和線具有對偶性,Hough變換就是根據這一性質將被測圖像空間的線條轉變為參數空間的點,從而判斷圖像中是否具有特定的圖像。OpenCV中的Hough圓變換函數HoughCircles可以幫助查找圖中圓的個數。Hough-Circles中包含9個參數,如何選擇好后面6個參數將是準確找出瓶蓋外圓的關鍵。
第一個決定參數是累加器圖像的分辨率。這個參數允許創建一個比輸入圖像分辨率低的累加器。OpenCV允許在1~2為累加器圖像的分辨率賦值,這個值越高,越容易產生錯檢,多檢。例如將累加器圖像的分辨率設置為1.5,滿箱仍可以正確檢測正確,但是缺瓶的情況卻出現多的多檢的情況,如圖5所示。通過實驗測試,當累計器的分辨率設置為1.1時,無論是滿箱的情況還是缺瓶的情況都能正確檢測。

圖2 孔徑尺寸5像素、中值濾波函數

圖3 內核大小5像素、高斯濾波函數

圖4 內核大小5像素、均值濾波函數

圖5 累加器圖像的分辨率為1.5時滿箱、缺瓶檢測結果
第二個決定參數是2個圓之間的最小距離。這個值如果設置的太小就會在一個瓶蓋上出現多組同心圓,如果太大,就會出現圓心重疊的現象,出現少檢、錯檢的情況。經過試驗驗證,將2個圓之間的最小距離設為60像素時,檢測效果最好。第三個決定參數是圓的半徑的范圍,通過實驗驗證,將最小半徑設為22像素,最大半徑設為37像素時能夠準確檢測出滿瓶箱,但是在檢測缺瓶箱的時候會出現漏檢的情況。這是因為在缺瓶箱里,瓶子交錯排列,最小距離可能會<60像素,所以要將缺瓶和滿箱分開檢測。首先假設為滿箱,用第一種方法檢測,判斷檢測出來的瓶子的數量是否為20。如果不是20,則按缺瓶算法再檢測一次。通過實驗驗證,這種方法能夠準確的檢測出是否滿箱。提取圓心和半徑信息,將瓶蓋邊緣和圓心位置用紅色圓標記,檢測結果如圖6所示。

圖6 檢測結果
基于機器視覺的滿箱檢測方法與傳統方法相比檢測速度快,從檢測到剔除不到500 ms,適應高速生產線,而且檢測結果準確。通過實驗驗證,基于機器視覺的滿箱檢測方法準確率在90%以上。
[1]趙巨峰,高秀敏,崔光茫.結合生產線的視覺檢測實驗系統設計[J].實驗室研究與探索,2016,35(4):59-62.
[2]王耀東,朱力強,史紅梅,郭保青.高速機械系統運動特性的實時視覺檢測技術研究[J].機械工程學報,2016,52(2):82-90.
[3]葉樹亮,張玉德,張煒.齒輪視覺檢測中的尺度與方向相關性聯合降噪[J].光學精密工程,2014,22(6):1622-1630.
[4]李小昱,陶海龍,高海龍,李鵬,黃濤,孫金風.馬鈴薯缺陷透射和反射機器視覺檢測方法分析[J].農業機械學報,2014,45(5):191-196.
[5]周文舉.基于機器視覺的在線高速檢測與精確控制研究及應用[D].上海:上海大學,2014.
[6]楊占福.新型滿箱檢測系統[J].啤酒科技,2012(12):61-62.
[7]付偉.食品飲料生產過程在線檢測與管理綜合系統的研究[D].濟南:山東大學,2012.
[8]張輝.醫藥大輸液可見異物的視覺檢測機器人技術研究[D].長沙:湖南大學,2012.
[9]唐啟敬,田行斌,耿明超,周游,趙鐵石.CCD視覺檢測系統的整體標定[J].光學精密工程,2011,19(8):1903-1910.
[10]鄭鵬飛.S7-200和TD200在滿箱檢測系統中的應用[J].伺服控制,2010(6):94-96.
[11]趙明.啤酒滿箱檢測裝置[J].啤酒科技,2009(10):51,53.
[12]羅兵.SMT產品質量機器視覺檢測中的機器學習[J].電子質量,2009(1):39-41,44.
[13]張強.基于機器視覺的產品檢測技術研究[D].鄭州:中國人民解放軍信息工程大學,2005.
[14]楊海濤.機器視覺檢測算法研究及實現[D].長春:吉林大學,2004.
[15]段峰.基于機器視覺的智能空瓶檢測機器人研究[D].長沙:湖南大學,2002.
[16]金隼,洪海濤.機器視覺檢測在電子接插件制造工業中的應用[J].儀表技術與傳感器,2000(2):13-16.
TP29
B
〔編輯 凌 瑞〕