文/董輝
(勞雷工業(yè) 上海市 201306)
機器視覺及人工智能技術(shù)雖然在近些年迎來了蓬勃發(fā)展,但其理論早在數(shù)十年前就已經(jīng)非常成熟,只是卻決于當(dāng)時的硬件速度,CPU滿足高強度算法的及時處理。近些年來各類專有芯片和傳統(tǒng)芯片的大幅躍進,使機器視覺的市場化迎來了蓬勃發(fā)展。
玻璃鏡片的檢測一直以來都以人工為主,主要由于鏡片的透光性和反射性給機器視覺方案帶來了極大的困擾。本方案通過大量的前期理論及后期實驗研究,研發(fā)出了石英玻璃的劃痕解決方案,完全滿足流水線的玻璃劃痕檢測需求。
本文設(shè)計的檢測設(shè)備主要分為軟件部分和硬件部分。軟件部分包括視覺算法、操作系統(tǒng)平臺等。硬件部分包括PCB主板、CCD相機、光源、顯示設(shè)備、拓展接口、機械結(jié)構(gòu)等。如圖1所示。
流水線上的鏡片傳送至檢測區(qū),檢測區(qū)自動觸發(fā)CCD相機獲取待檢鏡片圖像,圖像經(jīng)過主板的算法處理后反饋檢測信息,產(chǎn)線獲取到檢測結(jié)果后采取剔除或者通過的動作。
在任何過程中都可以通過觸摸屏進行人工干預(yù),設(shè)置精度等參數(shù)或者停止、啟動產(chǎn)線等。
1.2.1 相機選擇
如圖2,以直徑為28.3的鏡片來計算像素大小。相較于缺口,劃痕的寬度更小,更不容易識別。相機的像素確定將基于劃痕。由圖可以看出,一個方格的大小基本跟劃痕寬度大小相匹配。一個方框即可以作為一個像素點。像素大小為
Rsmall=94*94=8836 Pixels
實際應(yīng)用過程中,鏡片直徑會超出以上兩個樣本。所以,設(shè)計時應(yīng)留有余量,以50MM*50MM的視野進行計算。在此視野下如果想達到以上所計算的清晰度,像素應(yīng)為:
50*50/Rbasic=28.03*28.03/(94*94)*Rbasic=28115 Pixel
為了獲得更清晰的圖像,便于后期進行圖像處理,用四個像素點來描述一個劃痕寬度,得到更為合適的分辨率:
R=Rbasic*16=449851≈45 萬像素
至此,像素參數(shù)確定,應(yīng)選擇至少45萬像素相機。相機視野應(yīng)能調(diào)整到50MM*50MM。
最終選取了大恒水星MER-132-30GM CCD相機,MER-132-30GM具有高分辨率、高清晰度、高精度、低噪聲等特點,適用于工業(yè)檢測、醫(yī)療、科研、教育以及安防等領(lǐng)域。
1.2.2 光源
如圖3,為防止光線干擾,適配了條形光源,經(jīng)試驗最終選取科麥視覺的HF-TX20020型號的四條光源組成的閉合光源組。如圖4所示。
1.2.3 處理器平臺
如圖5,根據(jù)軟件的算法強度,選用了I5-7500作為核心處理器。基于Intel I5 處理器的核心,選用了ASUS PRIME B250M主板,同時支持獨立顯卡,后期可方便拓展。
圖1
圖2
圖3
系統(tǒng)平臺采用Window 10系統(tǒng),兼容型強,員工操作容易上手。
1.2.4 觸摸交互屏
車間工人需要與機器進行交互操作,傳統(tǒng)的方式是鍵鼠套裝。本設(shè)計考慮到了灰塵等影響,以及操作體驗,采用了萬如15寸工業(yè)觸控屏,將顯示和輸入完美集成在了一起。
圖4
圖5
圖6
圖7
圖8
如圖6,從算法上講,C/C++最容易實現(xiàn),靈活方便,包括opencv等的編程庫都是基于此語言,還有眾多的經(jīng)典算法,都是基于此。但是如果用C/C++,界面的實現(xiàn)就相對繁瑣。而像Labview這樣的語言又太過于死板。在此設(shè)計中,選用了折中的C#語言。
相對而言,C#語言集成度相對較高,也沒有高集成度帶來的語言生硬等問題。眾所周知,Win10操作系統(tǒng)全部由C#編寫,C#在win10平臺上具有極高的集成度和靈活性。
本產(chǎn)品采用了Visual Studio為開發(fā)環(huán)境,采用C#作為軟件語言,在算法上大量采用了opencv的庫函數(shù)。由于opencv是基于C++開發(fā)的,本設(shè)計引用的opencv庫實際上是以opencv為藍本進行了包裝的C#庫-Emgu CV。
對于相機部分,所選的大恒圖像的CCD相機有基于C#的SDK開發(fā)包,可以十分方便的進行整合。
軟件流程及圖像處理流程如圖7所示。
設(shè)備開機后自動啟動軟件監(jiān)聽產(chǎn)線平臺指令,產(chǎn)線平臺給出待檢鏡片就緒指令后,軟件觸發(fā)CCD相機拍照獲取原始圖片,原始圖片經(jīng)過降噪等預(yù)處理之后,先進行鏡片識別,然后進行鏡片內(nèi)幾何劃痕檢測,一旦檢測到劃痕后將劃痕標(biāo)記并顯示的觸摸屏上,同時發(fā)送指令給產(chǎn)線,產(chǎn)線采取剔除動作。如果未檢測到劃痕,則發(fā)送合格指令給產(chǎn)線。圖8展示了具有多條劃痕的玻璃檢測結(jié)果。
此產(chǎn)品已經(jīng)面向市場,并獲得了良好的使用反饋。人工智能時代來臨后,大量簡單重復(fù)性的工作完全可以使用機器來解決,釋放人類繁瑣的工作。當(dāng)然對產(chǎn)品的定制性、靈活性、智能性提出了更高的要求。從流水線反饋來看,本設(shè)計能滿足大多數(shù)產(chǎn)線的要求,一些小的功能還需要微調(diào)以獲得更高的可靠性和免維護性。