本申請要求2015年6月26日提交的序列號為62/185,444、名稱為“利用3D視覺進行自動化工業(yè)檢查”的美國臨時性專利申請的優(yōu)先權(quán)和利益,特此通過引用并入。
本申請還要求了2016年1月19日提交的序列號為62/280,625、名稱為“利用3D視覺進行自動化工業(yè)檢查”的美國臨時性專利申請的優(yōu)先權(quán)和利益,特此通過引用并入。
聯(lián)邦贊助的研究或開發(fā)的聲明
不適用。
技術(shù)領(lǐng)域
工業(yè)計算機視覺正在越來越多地采用3D圖像作為用于檢查的附加數(shù)據(jù)源。本申請?zhí)剿魇褂?D圖像數(shù)據(jù)在工業(yè)計算機視覺系統(tǒng)中進行自動化視覺檢查。下述公開內(nèi)容提供了用于自動化視覺工業(yè)檢查的系統(tǒng)和方法,跨越了3D工業(yè)檢查和2D工業(yè)檢查之間的差異,以及給出了自動化3D工業(yè)檢查方法背后的技術(shù)細節(jié),包括示例。
背景技術(shù):
當工業(yè)計算機視覺使用多個同樣的算法和方法作為計算機視覺的學術(shù)/教育以及政府/軍事的應用時,約束是不同的。與學術(shù)/教育計算機視覺系統(tǒng)相比,工業(yè)計算機視覺系統(tǒng)可以意味著更強的穩(wěn)健性、可靠性以及穩(wěn)定性。與政府/軍事應用相比,它還可以意味著更低的成本。與計算機視覺的其它應用領(lǐng)域相比,自動化工業(yè)檢查系統(tǒng)可以意味著低成本、可接受的精確度、高穩(wěn)健性、高可靠性以及高機械和溫度穩(wěn)定性,這與下面或附隨的受檢制造過程相稱。
為了使工業(yè)計算機視覺系統(tǒng)可靠,它的每一個部件,硬件和軟件,均需可靠。攝像機是關(guān)鍵的硬件部件之一。用戶級3D攝像機出現(xiàn)在用戶應用中。這些攝像機的實例為例如微軟的Kinect V2的飛行時間攝像機、例如英特爾的實感3D的立體攝像機以及例如Lytro的ILLUM的光場測量攝像機。這些攝像機都不足以可靠地用于工業(yè)應用,但是同樣的成像原理以及基于結(jié)構(gòu)化照明的那些可以用于工業(yè)3D攝像機。
使用2D圖像自動化可視地檢查對象的技術(shù)是本領(lǐng)域公知的。例如,參見美國專利5,640,200,“利用高效圖像配準的黃金模板比較”,1997年6月17日,David J.Michael,本文通過引用將其完整并入。在使用2D圖像進行檢查時,3D圖像能夠轉(zhuǎn)變成2D圖像,并隨后作為2D圖像進行檢查。然而,這么做導致丟失關(guān)于3D形狀或體積的信息。檢查從3D圖像轉(zhuǎn)化來的2D圖像還可能使檢查結(jié)果偏向在轉(zhuǎn)化的2D圖像中最可見的特征。通過或者片分3D數(shù)據(jù)或者數(shù)學上將3D數(shù)據(jù)投影至2D圖像將3D圖像轉(zhuǎn)化為2D圖像的技術(shù)在計算機圖形渲染領(lǐng)域中是公知的。
與上面討論的2D檢查相比,直接檢查3D點云在本領(lǐng)域中不是公知的。本說明書描述了用于直接檢查的3D圖像的3D檢查技術(shù),因而將這些技術(shù)直接應用于處理小塊3D數(shù)據(jù)。
技術(shù)實現(xiàn)要素:
本實施方式通過提供利用3D視覺系統(tǒng)進行3維(3D)視覺檢查的系統(tǒng)和方法,克服了現(xiàn)有技術(shù)的缺點。所述系統(tǒng)和方法包括:利用3D視覺系統(tǒng)獲取3D對象的至少一個3D圖像;利用3D視覺系統(tǒng)提取3D圖像的3D可視運行時間掩模(mask);利用3D視覺系統(tǒng)比較3D運行時間可視掩模與3D參考可視掩模;以及利用3D視覺系統(tǒng)確定3D運行時間可視掩模和3D參考可視掩模之間是否存在像素差別。
根據(jù)本發(fā)明的另一個實施方式,公開了利用3D視覺系統(tǒng)進行3維(3D)視覺檢查的方法。所述方法包括:利用3D視覺系統(tǒng)獲取3D對象的至少一個3D圖像;利用3D視覺系統(tǒng)將所述至少一個3D圖像配準至(register to)3D參考圖像;利用3D視覺系統(tǒng)比較配準的至少一個3D圖像與3D參考圖像;以及利用3D視覺系統(tǒng)檢測配準的至少一個3D圖像與3D參考圖像之間的3D差別,其中該3D差別超過3D方差模型(variance model)。
在一些實施方式中,該方法進一步包括:過濾所述至少一個3D圖像;以及其中將至少一個3D圖像配準至3D參考圖像包括將至少一個過濾的3D圖像配準至3D參考圖像。
在一些實施方式中,該方法進一步包括:過濾配準的至少一個過濾的3D圖像;以及其中比較配準的至少一個過濾的3D圖像與3D參考圖像包括比較過濾的配準的至少一個過濾的3D圖像與3D參考圖像。
在一些實施方式中,檢測配準的至少一個3D圖像與3D參考圖像之間的3D差別包括檢測配準的至少一個過濾的3D圖像與3D參考圖像之間的3D差別。
在一些實施方式中,該方法進一步包括訓練該3D視覺系統(tǒng),該訓練包括:利用3D視覺系統(tǒng)獲取3D對象的至少一個3D訓練圖像;利用3D視覺系統(tǒng),基于所述至少一個3D訓練圖像估計3D參考圖像;以及利用3D視覺系統(tǒng),基于3D參考圖像估計3D方差模型。
在一些實施方式中,該方法進一步包括:過濾所述至少一個3D訓練圖像;以及其中基于所述至少一個3D訓練圖像估計3D參考圖像包括基于至少一個過濾的3D訓練圖像估計3D參考圖像。
在一些實施方式中,該方法進一步包括:過濾所述3D參考圖像,以及其中基于3D參考圖像估計3D方差模型包括基于過濾的3D參考圖像估計3D方差模型。
根據(jù)本發(fā)明的另一個實施方式,公開了利用3D視覺系統(tǒng)進行3維(3D)視覺檢查的方法。該方法包括:利用3D視覺系統(tǒng)獲取3D對象的至少一個3D圖像;利用3D視覺系統(tǒng)提取3D圖像的3D可視運行時間掩模;利用3D視覺系統(tǒng)比較3D運行時間可視掩模與3D參考可視掩模;以及利用3D視覺系統(tǒng)確定3D運行時間可視掩模和3D參考可視掩模之間是否存在像素差別。
在一些實施方式中,該方法進一步包括確定像素差別是否超過3D方差模型。
在一些實施方式中,該方法進一步包括創(chuàng)建護理掩模(care mask)。
在一些實施方式中,該方法進一步包括將護理掩模施加至上述至少一個3D圖像。
在一些實施方式中,通過結(jié)合3D視覺系統(tǒng)和用戶輸入來創(chuàng)建護理掩模。
在一些實施方式中,該方法進一步包括利用護理掩模限制3D參考可視掩模和3D運行時間可視掩模之間的比較區(qū)域。
在一些實施方式中,該方法進一步包括:將護理掩模用作該比較中的二進制掩模,以及消除不包含在所述護理掩模中的那些像素。
在一些實施方式中,該方法進一步包括:將護理掩模用作加權(quán)掩模(weighted mask),以及給護理掩模的一部分中的像素較大權(quán)重并且給護理掩模的其它區(qū)域中的像素較小權(quán)重。
根據(jù)本發(fā)明的另一實施方式,公開了利用3D視覺系統(tǒng)進行3維(3D)視覺檢查的方法。該方法包括:利用3D視覺系統(tǒng)獲取3D對象的至少一個3D圖像;利用3D視覺系統(tǒng)將所述至少一個3D圖像配準至3D參考圖像;利用3D視覺系統(tǒng)比較所述至少一個3D圖像與3D參考圖像;以及利用3D視覺系統(tǒng)檢測所述至少一個3D圖像與3D參考圖像之間的3D差別。
在一些實施方式中,3D差別超過3D方差模型。
在一些實施方式中,該方法進一步包括:過濾所述至少一個3D圖像;以及其中將所述至少一個3D圖像配準至3D參考圖像包括將至少一個過濾的3D圖像配準至3D參考圖像。
在一些實施方式中,該方法進一步包括:過濾至少一個過濾的3D圖像;以及其中比較至少一個過濾的3D圖像與3D參考圖像包括比較過濾的至少一個過濾的3D圖像與3D參考圖像。
在一些實施方式中,檢測所述至少一個3D圖像與3D參考圖像之間的3D差別包括檢測至少一個過濾的3D圖像與3D參考圖像之間的3D差別。
在一些實施方式中,該方法進一步包括訓練該3D視覺系統(tǒng),該訓練包括:利用3D視覺系統(tǒng)獲取3D對象的至少一個3D訓練圖像;利用3D視覺系統(tǒng),基于所述至少一個3D訓練圖像估計3D參考圖像;以及利用3D視覺系統(tǒng),基于3D參考圖像估計3D方差模型。
在一些實施方式中,該方法進一步包括:過濾所述至少一個3D訓練圖像;以及其中基于所述至少一個3D訓練圖像估計3D參考圖像包括基于至少一個過濾的3D訓練圖像估計3D參考圖像。
在一些實施方式中,該方法進一步包括過濾3D參考圖像,以及其中基于3D參考圖像估計3D方差模型包括基于過濾的3D參考圖像估計3D方差模型。
在一些實施方式中,比較所述至少一個3D圖像與3D參考圖像,以及檢測所述至少一個3D圖像與3D參考圖像之間的3D差別進一步包括:利用3D視覺系統(tǒng)將所述至少一個3D圖像配準至3D參考圖像;利用3D視覺系統(tǒng)比較配準的至少一個3D圖像與3D參考圖像;以及利用3D視覺系統(tǒng)檢測所述配準的至少一個3D圖像與3D參考圖像之間的3D差別。
附圖說明
圖1是示出了激光輪廓傳感器的操作原理的說明圖。
圖2是2D印刷電路板的頂視圖和利用區(qū)域圖像表示的印刷電路板的3D圖像。
圖3是印刷電路板的2d圖像的透視圖和同一印刷電路板的3D圖像。
圖4是示出了用于3D檢查過程的訓練階段和運行時間階段的流程圖。
圖5是列出了多個3D攝像機規(guī)格的圖表。
圖6是故障的印制電路板的2D透視圖。
圖7是圖6的故障的印制電路板的區(qū)域圖像視圖和印制云表示。
圖8是示出了用于包括可視掩模的3D檢查過程的訓練階段和運行時間階段的流程圖。
圖9是示出了用于使用可選護理掩模的3D檢查過程的訓練階段和運行時間階段的流程圖。
具體實施方式
在詳細解釋本發(fā)明的任意實施方式之前,要理解本發(fā)明并不限于應用至下面的描述所記載或下面的附圖所示出的構(gòu)造細節(jié)和組件布置。本發(fā)明能夠是其它實施方式,以及可以按不同方式實現(xiàn)或?qū)嵤6?,要理解本文所使用的用語和術(shù)語是出于描述的目的,不應當視為限制。本文使用“包括”、“包含”或“具有”以及其它變體意指包含其后所列的項及其等同體,還有額外項。除非另外規(guī)定或限制,術(shù)語“安裝”、“連接”、“支撐”、“耦接”及其變體廣泛使用,并包含直接和間接的安裝、連接、支撐以及耦接。進一步地,“連接”和“耦接”并不限于物理或機械連接或耦接。
下面給出的討論使得本領(lǐng)域技術(shù)人員能夠制造和使用本發(fā)明的實施方式。對所示實施方式的各種修改對本領(lǐng)域技術(shù)人員來說是顯而易見的,以及本文的通用原理可以應用于其它實施方式和應用,而不背離本發(fā)明的實施方式。這樣,本發(fā)明的實施方式并不旨在受限于所示的實施方式,而是給予與本文所公開的原理和特征一致的最寬范圍。下面的詳細描述要參照附圖閱讀,其中不同圖中的類似元件具有類似的引用編號。所述附圖不必按規(guī)定比例,描述了所選的實施方式,以及并不旨在限制本發(fā)明的實施方式的范圍。本領(lǐng)域技術(shù)人員會認識到本文所提供的實例具有許多有用的替代方式,落入本發(fā)明實施方式的范圍內(nèi)。
數(shù)十年來,自動化檢查已經(jīng)成為工業(yè)計算機視覺中的一個重要任務。它是主應用以及指導(例如用于組裝的指導機器人)、標識/識別(例如讀取條形碼、字符、或顏色、形狀或紋理的匹配)以及測量(尺寸測量)。
為了本申請的目的,檢查能夠定義為或者發(fā)現(xiàn)缺陷或著確定制造過程是否維持在公差內(nèi)。作為一個非受限實例,缺陷能夠定義為在可接受范圍之外變化的測量的特征。
有許多個用2D工業(yè)計算機視覺質(zhì)量檢查的實例。這些質(zhì)量檢查可以被分成四組:表面檢查、維度檢查、結(jié)構(gòu)檢查以及操作檢查。分類2D工業(yè)計算機視覺任務的另一個方式是通過利用系統(tǒng)測量的自由度:姿態(tài)、大小、形狀、顏色、紋理或照度。
為工業(yè)檢查考慮3D視覺而不是2D視覺的一個原因是當2D檢查不夠時。如果檢查特征的特征為從3D圖像提取的物理大小、面積或體積比2D圖像更精確,以及如果3D圖像的成本不太高,則這可能發(fā)生。如果這為真,可能使用3D圖像。
當比較使用3D攝像機及3D數(shù)據(jù)集的3D計算機視覺和2D計算機視覺及2D圖像時,許多元件是熟悉的。這包括攝像機和攝像機校正、多維圖像數(shù)據(jù)及其關(guān)聯(lián)的表示問題、用于噪聲消除和信號增強的圖像過濾以及圖像配準或姿態(tài)估計。即便比較2D圖像和同一部件的3D圖像,各元件的細節(jié)都十分不同。
可以成像以搜索缺陷的3D對象的非限制性實例包括支架、渦輪葉片、牙刷或瓦。這些以及其它對象可以由許多不同類型的材料制成;例如,金屬、塑料、木頭和/或陶瓷。這些3D對象可以具有從粗糙到光滑變化的表面光潔度以及可以具有任意的顏色或圖案。
圖1示出了激光輪廓傳感器100的操作原理?;谌瞧史?,攝影頭和激光可以從基線分離距離查看對象。因為查看的激光線的位置直接對應所述對象的高度,所以這些位置可以以區(qū)域圖像或點云的形式轉(zhuǎn)換成3D高度數(shù)據(jù)。注意這僅僅是創(chuàng)建了單行3D高度數(shù)據(jù)。為了覆蓋整個對象,必須移動攝像機或?qū)ο蟆5湫偷?,在運動階段,對象在攝像機之下移動,或者通過機器人移動傳送帶或攝像機。圖2示出了2D印刷電路板200的頂視圖,以及使用區(qū)域圖像表示202的印刷電路板的3D圖像。
圖3示出了印刷電路板200的2D圖像和同一印刷電路板的3D圖像302之間的某些差異。2D圖像是電路板表面的透視映射。它包括關(guān)于板表面上圖案-成像光學系統(tǒng)所扭曲的電路板表面的反射率-以及入射照明的信息。3D圖像包括關(guān)于印刷電路板自身的3D形狀、大小以及尺寸的信息。反射率值可能輕微影響外觀的3D形狀,引起假象或可能不可見。
圖3還示出了印刷電路板的2D圖像和同一印制電路板的3D圖像之間的差別,但有透視圖。注意到2D圖像可以具有非常不同的強透視的外觀。前景寬得多,背景比較窄。另一方面,兩幅圖中的基礎3D數(shù)據(jù)是相同的。只是從不同的視點顯示3D圖像以及沒有在圖像數(shù)據(jù)中編碼透視。
攝像機硬件也可能非常不同,3D工業(yè)攝像機一般更加復雜,成本可能比2D工業(yè)攝像機更高(正在變得商品化)。
2D和3D攝像機之間的校正過程也非常不同。關(guān)于2D視覺,除了諸如如果對象是平面的之類的特殊情況下,一個完全校正的攝像機(估計的內(nèi)在和外在)并不隱含對象空間中的校正。關(guān)于3D視覺,攝像機校正常常可以導致對象空間校正。也就是說,在3D視覺中,校正的對象維度-物理維度-能夠可用。
在2D工業(yè)計算機視覺系統(tǒng)中,攝像光學器件經(jīng)常是靈活和可互換的。結(jié)果,選擇2D攝像機透鏡是由必須執(zhí)行任何所需的透鏡校正的系統(tǒng)集成商來完成的。3D攝像機很少有這種靈活性,因為制造商通常固定了透鏡或光學配置。但是,這可能有好處,因為3D攝像機制造商在制造時能夠完成校正(或部分校正)。但是它確實給系統(tǒng)集成商更多職責以在交換透鏡不是選項的情況下選擇正確的3D攝影機規(guī)格。
圖像表示在3D中也可能是不同的。在2D視覺中,圖像幾乎總是表示為單色或顏色亮度的2D陣列。在3D視覺中,圖像可以是3D點的集合-點云-或深度/高度值的2D陣列-可視表面的區(qū)域圖像表示-或者標量或量測量的3D陣列-密集體積表示。任何處理都需要適應圖像表示。
此外,3D圖像數(shù)據(jù)中噪音可能是不同的。由于遮斷或信號返回糟糕,攝像機不能獲取密集3D數(shù)據(jù)。以及攝像機能夠知道它在哪里丟失圖像數(shù)據(jù)。噪音可能采取虛反射或孤立點的形式,取決于3D攝像機的細節(jié)。用于噪音去除的3D中圖像過濾的選擇應當取決于3D攝像機的具體特性。
因此,3D視覺系統(tǒng)可以用于工業(yè)檢查,下面將更加詳細地描述。本申請中所描述的用于工業(yè)檢查的方法在某些實施方式中可以用于檢測正常變形之外的制作部件的3D變形。某些缺陷實例可以是3D對象丟失的材料或當3D對象與3D參考對象比較時不包括在那個3D對象內(nèi)的材料。然而,還能夠利用3D視覺系統(tǒng)檢測其它缺陷,例如組件的位置、組件的高度以及組件的方位等。
圖4概述了3D檢查方法。該方法被分解成訓練階段400,其能夠在設置檢查以及估計參考校正模板和正常變形時進行。此外,還有運行時間階段450,其中測試部件成像、配準到“黃金部件”(為了校正,此為參考校正模板)以及與其比較,且其中如果缺陷超出測試部件上的正常變形,則可以檢測到它們。
在設置過程期間能夠進行訓練階段400。它與收集具有可接受變形(“訓練圖像”)的被檢對象的3D圖像以及理解這些變形關(guān)聯(lián)。進一步地,收集代表性數(shù)據(jù)是成功檢查的關(guān)鍵部分。該代表性數(shù)據(jù)集可用于創(chuàng)建和驗證參考校正模型。該代表性數(shù)據(jù)集還可用于創(chuàng)建和驗證方差模型。如下更詳細描述的,所述訓練步驟包括:收集“好”樣本的多個實例以及獲取好樣本(“訓練圖像”)的3D圖像;2)利用點云校正或其它合適的3D校正技術(shù)與另一個(或第一個)“好”樣本進行校正;3)根據(jù)所有校準的樣本,遞增地或者以批處理模式(例如,創(chuàng)建統(tǒng)計部件——均值+各表面小塊的標準偏差)學習好部件的可接受變形。
在框402處,可以選擇3D攝像機。有許多利用不同的成像原理、商業(yè)上可從不同的賣家獲得的工業(yè)化3D攝像機。涉及的成像原理的實例為“Shape-from”技術(shù)、立體攝影、結(jié)構(gòu)化光線、飛行時間以及光場生成??色@取的3D成像設備的實例可以包括諸如康耐視(Cognex)公司的DS1000系列的激光輪廓攝像機,諸如微軟的Kinect V2的飛行時間攝像機,以及諸如英特爾的實感3D攝像機的立體攝影攝像機。
因周圍光線的限制、受限的動作捕獲能力、表面屬性、噪音特性或分辨率,涉及的成像原理可以限定能夠檢查什么。然而,即便是成像原理允許進行檢查,3D攝像機一般具有固定的光學器件。因此,不像選擇僅僅限制像素分辨率、大小、格式和接口的2D攝像機,3D攝像機一般也具有固定的工作距離、視場、照明以及x,y和z的分辨率。圖5為3D攝像機規(guī)格500的實例,結(jié)果是必須謹慎選擇3D攝像機。
此外,3D圖像數(shù)據(jù)不像2D圖像,因為3D圖像數(shù)據(jù)可以具有不同的表示,諸如點云(來自成像設備的具有x,y,z坐標的3D點集合)或者區(qū)域圖像(z深度或z高度數(shù)據(jù)的2D陣列)。
訓練階段期間,在處理框404,能夠獲取多個3D圖像以收集3D訓練數(shù)據(jù)集。然后選擇具有可接受變形的3D圖像以創(chuàng)建3D校準模型,其能用于將訓練模型與另一個進行校正,以及允許估計均方差數(shù)據(jù)。還可以收集額外的圖像以用于進一步的驗證和測試。
在處理框406,能夠過濾獲取的圖像。在一個實施方式中,能夠過濾所述圖像以消除假象,從而改進校正。目標是消除降低校正準確度的假象。此類假象可能是部件上的反射高光所產(chǎn)生的虛尖峰。尖峰能夠定義為遠離所述部件表面的孤立點。移除這些假象需要檢測它們。分離或獨立的過濾能夠用于為校準消除假象,為檢查驗消除假象。該檢查過濾可能發(fā)生在后續(xù)階段??赡艿?,過濾器的非受限實例可以包括:從檢測到的遮斷跨丟失的數(shù)據(jù)內(nèi)插,消除諸如孤立的像素(尖峰或洞)的成像假象以及密度歸一化。該過濾還可以用于為校準選擇圖像分辨率以及確保訓練圖像具有同樣的圖像分辨率。該過濾還可以用于消除檢查期間不應當考慮的外露層或小區(qū)域。此外,利用像康耐視(Cognex)的VisionPro的商業(yè)軟件或使用開源工具進行該過濾。
在處理框408處,能夠估計3D參考圖像。能夠利用具有過濾步驟406期間所確定的可接受變形的3D圖像生成3D校正模型。該3D校準模型可用于估計訓練圖像與那個校正模型的相對校準-平移和旋轉(zhuǎn),或者一次一個、遞增或者立刻全部,以批處理模式。能夠利用本領(lǐng)域公知的3D校正技術(shù)進行這一相對校正的評估,以相互校正3D圖像。例如,利用例如Cognex VisionPro工具包中存在的商業(yè)圖像配準工具,或使用諸如可從http://www.pointcloud.org或3DTK獲取的PCL庫的開源配準工具;或者可從http://sourceforge.net/projects/slam6d/獲得的3D工具包。接下來,利用通過3D配準工具獲取的相對校正的估計,3D圖像可以選擇性地相互校正,并重新渲染成盡可能接近的校正。通過常規(guī)的3D計算機圖形技術(shù)進行重新渲染,盡管該重新渲染步驟是可選的,但是由于它簡化了后續(xù)步驟所以是值得的。
在處理框410處,能夠再次過濾圖像。處理框410處的過濾步驟可用于為方差估計調(diào)整模型的分辨率以設置合適的比例來發(fā)現(xiàn)缺陷。不像用于校正的過濾,尖峰和洞可能留在圖像中。能夠直接在區(qū)域圖像數(shù)據(jù)上或通過重網(wǎng)格化點云數(shù)據(jù)來調(diào)整模型的分辨率。
最后,在處理框412,能夠估計3D方差模型。在一個實施方式中,可以估計用于重渲染或校正的3D圖像的內(nèi)的各表面位置或表面小塊的統(tǒng)計數(shù)據(jù)。這些統(tǒng)計數(shù)據(jù)可以包括平均位置、平均表面方位、位置的標準偏差以及表面方位的標準偏差等等??蛇x地,在每個維度中,可以按不同的分辨率收集這些3D統(tǒng)計數(shù)據(jù)。收集這些統(tǒng)計數(shù)據(jù)可以考慮丟失的像素(例如因收集圖像的視點,某些小塊在某些訓練圖像中不可見)。一般來說,對于任何表面位置或小塊,丟失的像素不應當對圖像統(tǒng)計數(shù)據(jù)起作用。收集統(tǒng)計數(shù)據(jù)還能夠考慮根據(jù)3D數(shù)據(jù)(例如,反射和部分透明部件可能使得難以估計平均表面小塊)估計表面小塊的困難性。
現(xiàn)在轉(zhuǎn)到運行時間過程450,能夠看到一個用于獲取單個測試部件的3D圖像、將所述圖像校正到參考部件并確定存在的缺陷的過程。如下更詳細描述的,運行時間過程450一般可以包括:1)獲取“測試”樣本;2)利用點云校正或其它合適的3D校正技術(shù)校正所述“測試”樣本;3)將訓練過程400期間確定的“好”統(tǒng)計部件與校準的“測試”樣本進行比較;4)以每個可用的圖像分辨率標識潛在缺陷。所述潛在缺陷對應于超過與統(tǒng)計部件的差別的閾值(閾值X標準偏差)的“測試”樣本的候選表面小塊,或者超過與所述“測試”樣本的閾值差別閾值的平均“好”樣本的候選表面小塊。第一組缺陷能夠?qū)谒觥皽y試”樣本中未匹配的特征。第二組缺陷可以對應所述“好”樣本中未匹配的特征。
在過程框452,用戶可以選擇3D攝像機。訓練時使用與設置過程期間所用的相同的攝像機和相同的成像條件是很關(guān)鍵的。否則,攝像機變化或成像變化可能顯示為缺陷,在過程框454,能夠獲取3D測試圖像以查找缺陷。
在處理框456中,能夠過濾獲取的圖像。第一過濾步驟可以是為校正或姿勢估計過濾圖像。目標可以是消除可能降低校正算法的準確性或穩(wěn)健性的假象。此類假象可以是部件上的鏡面高光產(chǎn)生的虛尖峰。尖峰能夠定義為遠離所述部件表面的孤立點。消除這些尖峰或孤立點需要檢測它們,消除它們,用數(shù)據(jù)中的洞或正確內(nèi)插的數(shù)據(jù)來代替它們。
在處理框458中,3D測試圖像可以配準至3D參考圖像。接著,能夠使用合適的3D校正技術(shù)找到測試部件相對所述參考圖像的平移和旋轉(zhuǎn)。這可以通過利用諸如Cognex VisionPro工具包中存在的那些商業(yè)圖像配準工具、或者使用來自可從http://www.pointcloud.org或3DTK獲得的PCL庫的開源配準工具或者可從http://sourceforge.net/projects/slam6d/獲得的3D工具包來完成。
在處理框460,可以重新渲染和過濾圖像。此處,可以重新渲染該3D圖像數(shù)據(jù)以使用參考圖像進行校正。然后,可以過濾3D圖像,以典型地匹配表面密度。其它的3D圖像數(shù)據(jù)歸一化過濾也能夠在該步驟進行。
在處理框462,能夠?qū)?D測試圖像與3D參考圖像進行比較,一旦3D測試圖像被校正、過濾和重新渲染,它就可以直接與參考3D數(shù)據(jù)進行比較。例如,可以直接比較表面小塊或個體像素。如下討論的,如果差異滿足數(shù)個統(tǒng)計測試至少之一,它們能夠記為潛在缺陷。
在處理框464,可以檢測超過3D方差模型的圖像數(shù)據(jù)差別。為了被認作是缺陷,所標識的潛在缺陷必須滿足數(shù)個統(tǒng)計測試至少之一。統(tǒng)計測試的實例可以包括:1)對于“好”樣本上最近的平均表面小塊,與校正的“測試”樣本表面小塊的距離太大;2)校正“測試”樣本表面小塊的方位與“好”樣本上最近的平均表面小塊的方位的差別太大;3)對于所述“測試”樣本上最近的平均表面小塊,與校正的“好”樣本表面小塊的距離太大;4)校正的“好”樣本表面小塊的方位與所述“測試”樣本上最近的平均表面小塊的方位的差別太大。通過設置固定的閾值或與所述均值的多個標準偏差,上述每一個統(tǒng)計測試可以通過系統(tǒng)自動選擇??梢詫⒔y(tǒng)計測試的結(jié)果指定為缺陷。
圖6示出了有缺陷的印刷電路板600的2D圖像。板500示出了對應于丟失或錯放的組件的四個板上的可能缺陷。圖7示出了作為區(qū)域圖像的有缺陷的印刷電路板600的3D區(qū)域圖像700。所述統(tǒng)計測試標識的四個缺陷對應于參考編號702a-d。3D區(qū)域圖像710示出了有缺陷的印刷電路板600的3D圖像,其被視作具有四個缺陷702a-d的點云。
如上所討論的,3D校正(校正物體的3D圖像)本質(zhì)上不同于2D校正。例如,為了3D校對和3D檢查,必須處理由于自遮斷而丟失的像素、攝像機和發(fā)光體的視覺幾何以及由于自遮斷而丟失的部分3D圖像。此外,3D圖像和2D圖像之間,標識圖像差別在本質(zhì)上是不同的。例如,由于3D點位置的噪音,點對點減法(如利用2D圖像進行的)一般在3D中并不有效。相反,給定分辨率的平面到平面或面到面的比較通常能提供更好的數(shù)據(jù)。
本申請涵蓋了3D工業(yè)計算機視覺檢查。工業(yè)計算機視覺日益采納3D圖像作為用于檢查的附加數(shù)據(jù)源。本申請描述了使用3D圖像數(shù)據(jù)進行工業(yè)計算機視覺中的自動化視覺檢查。定義了自動化視覺工業(yè)檢查,以及提供了3D工業(yè)檢查和2D工業(yè)檢查之間的差別。最后,提供了實例以給出自動化3D工業(yè)檢查方法后面的技術(shù)細節(jié)。
現(xiàn)在轉(zhuǎn)到圖8,可以看到用于為丟失的像素邏輯地評估3D圖像的過程。為丟失的像素邏輯地評估3D圖像可以允許評估圖像,這樣能夠評估丟失的像素以確定丟失的像素是否是由于成像對象中材料的缺失,或者丟失的像素是否是諸如遮斷、自遮斷和/或圖像捕獲噪音的成像錯誤的結(jié)果。圖8的邏輯評估過程可以提供分析,以提供缺失的材料和成像錯誤之間的差別。圖8概述了類似于關(guān)于圖4討論的3D檢查方法。例如,該方法被分成訓練階段80,其能在設置所述檢查且估計參考校正模板和正常變形時發(fā)生。此外,有運行時間階段820,其中測試部件能夠成像、配準到“黃金部件”并與之比較(對于校正,這是參考校正模板),且其中如果缺陷超過測試部件上的正常變形,可以檢測到缺陷。
訓練過程800可以在處理框802執(zhí)行選擇3D攝像機的步驟,在處理框804執(zhí)行收集3D訓練數(shù)據(jù)集(多個3D圖像獲得)的步驟,以及在處理框806執(zhí)行過濾圖像的步驟。這些過程的操作可以與如關(guān)于上面描述的訓練過程400所討論的相同。在處理框808,可以提取3D可視訓練掩模。在一個實施方式中,通過3D攝像機可以自動提取3D可視訓練掩模?;蛘?,用戶可以選擇所獲取圖像的區(qū)域作為3D訓練可視掩碼。進一步地,通過結(jié)合3D攝像機的自動生成和用戶規(guī)定來提取3D訓練可視掩模。在其它實施方式中,3D訓練可視掩模可以由外部設備提取,諸如控制器、計算機或其它可應用設備。3D訓練可視掩模可以評估過濾的圖像以檢測處理框806中過濾的圖像中存在或缺失像素。
一旦在處理塊308處提取3D訓練可視掩模,則可以在處理框810估計3D參考圖像。能夠如上面訓練過程400中所描述的估計該3D參考圖像。一旦在處理框810估計了3D參考圖像,則可以在處理框812估計3D參考可視掩模。類似于上述描述的用于估計3D參考圖像的方法,可以使用在處理框808提取的3D訓練可視掩模來估計3D參考可視掩模。3D校正模型可以用于估計3D訓練可視掩模與校正模型的相對校正-平移和旋轉(zhuǎn),或者一次一個、遞增地,或者全部立刻,以批處理模式??梢允褂帽绢I(lǐng)域公知的3D校正技術(shù)估計該相對校正,以互相校正3D圖像。例如,使用諸如Cognex VisionPro工具包中存在的那些商業(yè)圖像配準工具,或者諸如可從http://www.pointcloud.org或3DTK獲得的PCL庫的使用開源配準工具,或者可從http://sourceforge.net/projects/slam6d/獲得的3D工具包。接下來,3D圖像可以彼此校正,以及使用通過3D配準工具獲取的相對校正的估計被重新渲染成盡可能接近的校正。能夠通過常規(guī)的3D計算機圖形技術(shù)進行重新渲染。盡管該重新渲染步驟是可選的,但是由于它簡化了后續(xù)步驟所以是值得的。
一旦在處理框812估計3D參考可視掩模,則可以在處理框814過濾所估計的3D參考圖像,以及在處理框816處估計3D方差模型??梢允褂萌缟嫌懻摰挠柧氝^程400中所描述的過程估計該3D方差模型816。
一旦訓練過程800完成,然后可以執(zhí)行運行時間過程820。運行時間過程820可以在處理框822使用在處理框802所選擇的3D攝像機來在處理框824獲取至少一個或多個3D測試圖像。在一個實施方式中,在處理框824可以獲取測試圖像。然后能夠在處理框826過濾測試圖像??梢岳蒙厦婷枋龅倪\行時間過程450中所描述的方法分別在處理框822、824以及826中執(zhí)行利用選擇的攝像機獲取測試圖像、隨后過濾獲取的圖像。在處理框828,可以提取3D運行時間可視掩模。在一個實施方式中,3D運行時間可視掩??梢酝ㄟ^3D攝像機自動提取。進一步地,可以通過結(jié)合3D攝像機的自動生成以及用戶規(guī)定來提取3D運行時間可視掩模。在其它實施方式中,3D運行時間可視掩??梢酝ㄟ^外部設備提取,諸如控制器、計算機或其它可應用設備。3D運行時間可視掩模可以評估過濾的圖像以檢測處理框826中過濾的圖像內(nèi)存在或缺失像素。
在處理框830,類似于上面描述的運行時間過程450中所描述的,可以將3D測試圖像配準至3D參考圖像。在處理框832,可以重新渲染和過濾圖像。此處,3D圖像數(shù)據(jù)可以被重新渲染,以利用參考圖像進行校正。然后,可以過濾所述3D圖像數(shù)據(jù)以一般匹配表面密度。在此步驟,也可能發(fā)生其它3D圖像數(shù)據(jù)歸一化過濾。
如上面描述的運行時間過程450中所描述的,在處理框834,比較3D測試圖像和3D參考圖像。在處理框836,能夠比較3D參考可視掩模和3D運行時間可視掩模。與處理框834中3D圖像的比較相反,在處理框836執(zhí)行的比較可以使用邏輯比較過程以驗證精確地引起混合像素。實例比較方法可以包括使用邏輯運算符(“AND(與)”,“OR(或)”,“XOR(異或)”等)。例如,可以使用AND運算符來比較3D參考可視掩模和3D運行時間可視掩模。在使用AND運算符的情況下,如果3D參考可視掩模和3D運行時間可視掩模中均存在像素,則將僅輸出邏輯“1”值。相比之下,如果3D參考可視掩模和3D運行時間掩模至少之一中存在像素,將數(shù)次會邏輯“1”?;蛘?,可以使用其它比較方法,包括求平均值、中值分析、表決系統(tǒng)和/或諸如上面討論的校正方法學。
通過比較估計的3D參考可視掩模和3D運行時間可視掩模,可能驗證缺少任意像素是由于缺少對象上的材料,不是諸如遮斷、成像噪音等所引起的那些成像錯誤。進一步地,為了捕獲的圖像中存在或缺少像素,上述方法學允許有效地評估訓練圖像和運行時間圖像。例如,上述分析可以確定給定的像素是否存在于訓練過程800中且不在運行時間過程820中;不在訓練過程800中且存在于運行時間過程820;或者,不在訓練過程800和運行時間過程820中??梢允褂迷撔畔⒁赃M一步評估獲取的3D圖像。此外,所述比較數(shù)據(jù)可以用于獲取的3D圖像的統(tǒng)計分析,諸如上面所描述的統(tǒng)計分析。
轉(zhuǎn)到圖9,可以看到用于邏輯評估3D圖像的過程900。過程900包括上述所描述的與圖4和8中所示的類似的步驟。過程900包括訓練過程902。訓練過程包括上面關(guān)于圖8中所描述的處理框802、804、806、808、810、812、814和816。在處理框904,可以創(chuàng)建可選的護理掩模。該護理掩模用于選擇3D對象的興趣域。在一個實施方式中,由護理掩模選擇的興趣域可以是3D對象的2D區(qū)域?;蛘撸勺o理掩模選擇的興趣域可以是3D對象的3D區(qū)域。此外,由護理掩模選擇的興趣域可以是獲取的3D對象的圖像的一個或多個特定像素。例如,由護理掩模選擇的興趣域可以是獲取的3D對象的圖像的一組特定像素??梢杂捎脩魟?chuàng)建所述護理掩模。例如,用戶可以選擇應當包含在護理掩模中的3D圖像區(qū)域?;蛘撸梢杂沙上裣到y(tǒng)自動創(chuàng)建所述護理掩模。進一步地,可以結(jié)合成像系統(tǒng)和用戶輸入來創(chuàng)建所述護理掩模。
在處理框920,可以看到運行時間過程。運行時間過程920可以包括如關(guān)于圖8中所描述的處理框822、824、826、828、830、832以及838。在處理框922,將3D測試圖像與3D參考圖像和護理掩模進行比較。該護理掩模可以限制3D測試圖像與3D參考圖像之間的比較區(qū)域。在一個實施方式中,護理掩??梢杂米魉霰容^中的二進制掩模,從而消除那些不包含在所述護理掩模內(nèi)的像素?;蛘?,所述護理掩??梢杂米骷訖?quán)掩模,從而給一部分護理掩模內(nèi)的像素更大權(quán)重,給所述護理掩模的其它區(qū)域中的像素更小權(quán)重。如上所述,可以由用戶創(chuàng)建所述護理掩模,因此所述用戶可以指定處理框904中部分護理掩模所提供的權(quán)重。
在處理框904,利用護理掩碼可以比較估計3D參考可視掩模和3D運行時間可視掩模。該護理掩??梢韵拗?D參考可視掩模和3D運行時間可視掩模之間的比較區(qū)域。在一個實施方式中,護理掩模可以用作所述比較中的二進制掩模,從而消除不包含在護理掩模內(nèi)的那些像素。或者,所述護理掩??梢杂米骷訖?quán)掩模,從而給一部分護理掩模內(nèi)的像素更大權(quán)重,給所述護理掩模的其它區(qū)域中的像素更小權(quán)重。