文/董輝
(勞雷工業 上海市 201306)
機器視覺及人工智能技術雖然在近些年迎來了蓬勃發展,但其理論早在數十年前就已經非常成熟,只是卻決于當時的硬件速度,CPU滿足高強度算法的及時處理。近些年來各類專有芯片和傳統芯片的大幅躍進,使機器視覺的市場化迎來了蓬勃發展。
玻璃鏡片的檢測一直以來都以人工為主,主要由于鏡片的透光性和反射性給機器視覺方案帶來了極大的困擾。本方案通過大量的前期理論及后期實驗研究,研發出了石英玻璃的劃痕解決方案,完全滿足流水線的玻璃劃痕檢測需求。
本文設計的檢測設備主要分為軟件部分和硬件部分。軟件部分包括視覺算法、操作系統平臺等。硬件部分包括PCB主板、CCD相機、光源、顯示設備、拓展接口、機械結構等。如圖1所示。
流水線上的鏡片傳送至檢測區,檢測區自動觸發CCD相機獲取待檢鏡片圖像,圖像經過主板的算法處理后反饋檢測信息,產線獲取到檢測結果后采取剔除或者通過的動作。
在任何過程中都可以通過觸摸屏進行人工干預,設置精度等參數或者停止、啟動產線等。
1.2.1 相機選擇
如圖2,以直徑為28.3的鏡片來計算像素大小。相較于缺口,劃痕的寬度更小,更不容易識別。相機的像素確定將基于劃痕。由圖可以看出,一個方格的大小基本跟劃痕寬度大小相匹配。一個方框即可以作為一個像素點。像素大小為
Rsmall=94*94=8836 Pixels
實際應用過程中,鏡片直徑會超出以上兩個樣本。所以,設計時應留有余量,以50MM*50MM的視野進行計算。在此視野下如果想達到以上所計算的清晰度,像素應為:
50*50/Rbasic=28.03*28.03/(94*94)*Rbasic=28115 Pixel
為了獲得更清晰的圖像,便于后期進行圖像處理,用四個像素點來描述一個劃痕寬度,得到更為合適的分辨率:
R=Rbasic*16=449851≈45 萬像素
至此,像素參數確定,應選擇至少45萬像素相機。相機視野應能調整到50MM*50MM。
最終選取了大恒水星MER-132-30GM CCD相機,MER-132-30GM具有高分辨率、高清晰度、高精度、低噪聲等特點,適用于工業檢測、醫療、科研、教育以及安防等領域。
1.2.2 光源
如圖3,為防止光線干擾,適配了條形光源,經試驗最終選取科麥視覺的HF-TX20020型號的四條光源組成的閉合光源組。如圖4所示。
1.2.3 處理器平臺
如圖5,根據軟件的算法強度,選用了I5-7500作為核心處理器。基于Intel I5 處理器的核心,選用了ASUS PRIME B250M主板,同時支持獨立顯卡,后期可方便拓展。

圖1

圖2

圖3
系統平臺采用Window 10系統,兼容型強,員工操作容易上手。
1.2.4 觸摸交互屏
車間工人需要與機器進行交互操作,傳統的方式是鍵鼠套裝。本設計考慮到了灰塵等影響,以及操作體驗,采用了萬如15寸工業觸控屏,將顯示和輸入完美集成在了一起。

圖4

圖5

圖6

圖7

圖8
如圖6,從算法上講,C/C++最容易實現,靈活方便,包括opencv等的編程庫都是基于此語言,還有眾多的經典算法,都是基于此。但是如果用C/C++,界面的實現就相對繁瑣。而像Labview這樣的語言又太過于死板。在此設計中,選用了折中的C#語言。
相對而言,C#語言集成度相對較高,也沒有高集成度帶來的語言生硬等問題。眾所周知,Win10操作系統全部由C#編寫,C#在win10平臺上具有極高的集成度和靈活性。
本產品采用了Visual Studio為開發環境,采用C#作為軟件語言,在算法上大量采用了opencv的庫函數。由于opencv是基于C++開發的,本設計引用的opencv庫實際上是以opencv為藍本進行了包裝的C#庫-Emgu CV。
對于相機部分,所選的大恒圖像的CCD相機有基于C#的SDK開發包,可以十分方便的進行整合。
軟件流程及圖像處理流程如圖7所示。
設備開機后自動啟動軟件監聽產線平臺指令,產線平臺給出待檢鏡片就緒指令后,軟件觸發CCD相機拍照獲取原始圖片,原始圖片經過降噪等預處理之后,先進行鏡片識別,然后進行鏡片內幾何劃痕檢測,一旦檢測到劃痕后將劃痕標記并顯示的觸摸屏上,同時發送指令給產線,產線采取剔除動作。如果未檢測到劃痕,則發送合格指令給產線。圖8展示了具有多條劃痕的玻璃檢測結果。
此產品已經面向市場,并獲得了良好的使用反饋。人工智能時代來臨后,大量簡單重復性的工作完全可以使用機器來解決,釋放人類繁瑣的工作。當然對產品的定制性、靈活性、智能性提出了更高的要求。從流水線反饋來看,本設計能滿足大多數產線的要求,一些小的功能還需要微調以獲得更高的可靠性和免維護性。