深度學習是解決所有計算機視覺問題的最佳方案嗎?
首先,視覺世界是無限變化的,系統設計者有無數種方法使用視覺數據。其中有一些應用案例,如目標識別和定位,都可以通過深度學習技術得到很好的解決。因此,如果你的應用需要一種算法來識別家具,那麼你很幸運:你可以選擇一種深度神經網絡算法,並使用自己的數據集對其進行重新編譯。
訓練數據對有效的深度學習算法至關重要。訓練一個DNN 通常需要數千個帶標記的訓練圖像(即用所需輸出標 記的圖像),以及數千個帶標記的圖像來評估候選訓練算法。當然,這些數據的性質非常重要:訓練和驗證數據,必須能夠代表算法要處理的情況的多樣性。如果很難或者不可能獲得足夠多樣化的訓練數據,那麼最好還是使用傳統技術。當我們深入研究客戶的需求時,我們經常發現,最初看起來像單一視覺問題的任務,往往可以分解為幾個子任務。通常,在這些子任務中,自然有一些子任務是適合使用DNN 解 決的,而另一些子任務則不適合用 DNN 來解決。對於這些項目,結合DNN和傳統技術的解決方案,通常是更好的選擇,而不是試圖將整個問題都強制轉向DNN解決方案。
鑑於DNN 在研究和技術方面的巨大投資,很明顯,DNN 作為首選解決方案的適用範圍,將會繼續迅速擴大。然而,在可預見的未來,許多應用將通過傳統技術(包括其他形式的機器學習)或通過深度學習和傳統算法的組合,來獲得最好的解決方案。
接下來,我們就一起了解一下,深度學習在機器視覺中的典型應用。
1、圖像處理中的深度學習應用
與傳統圖像處理相比,深度學習應用需要在訓練方面投入較多時間,但是相較其帶來的可靠性和處理速度,這些投入是值得的。圖像採集卡和(嵌入式)視覺設備上所使用的 FPGA 技術,令神經網絡應用於工業級應用成為可能,這需要強大的實時處理能力、低延遲(實時在線檢測)、高數據吞吐量、高帶寬和低功耗低發熱(嵌入式視覺應用),以及高解析度。
在通常的圖像處理應用中,只需要對少數幾個特性進行分類,因此選擇小型或中型網絡通常就足以應對,AlexNet、SqueezeNet 或MobileNet都是這類網絡的典型代表。這幾種網絡類型在機器視覺領域,預測精度、網絡大小和計算速度以及帶寬這幾方面有著良好的平衡。這裡可以很明顯地看到,通過選擇合適的網絡,可以在犧牲小部分檢測精度的同時,獲得數據吞吐量方面的極大提高,同時也為優化資源和提高分類質量提供了可能性。
完美滿足工業生產的高速處理需求的解決方案:通常使用高性能圖像採集卡或者嵌入式視覺設備,例如使用大型 FPGA 和高解析度傳感器的智能相機。利用多種多樣的 FPGA 資源,可以處理更複雜的架構以及應用。有了更高的數據帶寬,能夠在FPGA 上對整幅圖像進行處理,或進行額外的圖像預處理以及後期處理,例如對 GigEVision 相機的最大數據輸出帶寬的深度學習運算也完全能夠滿足。
圖:FPGA 的性能大約是 GPU 性能的7.3倍。
2、利用深度學習推理檢測相機外殼上的缺陷
通常,使用傳統的機器視覺檢測方法來確定缺陷並不是一件容易的事,例如發現工業相機外殼上可能存在的缺陷。然而,深度學習技術卻為此類缺陷檢測應用提供了一種有效的方法。
為了測試這一點,FLIR Systems公司的工程師們使用頗具成效益的組件建立了一套演示裝置,用於測試該 系統的可行性和有效性。該演示包括檢查相機的外殼是否有劃痕、油漆是否均勻以及是否存在印刷缺陷。為了避免上述缺陷,工業相機製造商必須檢查相機外殼,以確保產品外觀完美。
為了測試如何應用深度學習技術來解決這個問題,FLIR 的工程師使用了一臺 160 萬像素的 Blackfly S USB3 工業相機以及一臺 AAEON Up Squared 單板計算機,單板機配備 Celeron 處理器和 4GB 內存,採用 Ubuntu 16.04 作業系統 ;此外還配備了Intel Movidius 的神經計算棒(NCS)(見圖 1)。據 Intel 報導,神經計算棒於 2017 年發布,是基於 USB 的「深 度學習推理工具和獨立的人工智慧加 速器,為廣泛的邊緣主機設備提供專用深度神經網絡處理功能」。
神經計算棒採用英特爾 Movidius Myriad 2 視覺處理單元(VPU)。這是一個片上系統(SoC),配備兩個傳統的32 位RISC 處理器內核和 12 個獨特的 SHAVE 矢量處理內核。這些矢量處理內核可用於加速深度神經網絡使用的高分支邏輯。流行的深度學習框架(包括 Caffe、TensorFlow、 Torch 和Theano)可用於為神經計算 棒構建和訓練神經網絡。
圖1:為了對系統進行測試,FLIR的工程師使用 了一臺工業相機、一個AAEON單板計算機和Intel Movidius的神經計算棒。
3、藉助深度學習實現光隔元件的外觀缺陷檢測
在晶片製造業中絕大部分生產線已實現自動化,但晶片中的光隔離元件因本身體積小、精密度高,對其外觀檢測一直是行業痛點,仍需大量人工檢測。針對上述問題,慧眼自動化開發了基於深度學習的光隔離元件外觀檢測解決方案。
慧眼科技開發的檢測系統,硬體部署上分為上料、檢測和下料三個工位(見下圖)。上料工位分為四個料倉,操作員用上遊設備取出裝載產品的載具,放入產品,每個載具可放入40顆產品。這個裝載數量可以減少操作員上料的次數。在上料工位,有一個視覺定位系統,用於檢測產品的尺寸,並獲取產品坐標位置並發送給機械手。
圖:慧眼科技的檢測設備結構示意圖。
該高精度檢測系統,能夠實現對微觀產品進行自動定位、吸取、上下料、外觀檢測,可以防止人工操作帶來的二次損傷。使用偏振相機取像,獲得四個角度的圖像,能夠檢測產品表面不同角度的劃痕情況,提高檢測覆蓋率。這也是針對晶片行業中表面鏡面產品的外觀檢測的創新應用。
在機器視覺應用中,外觀檢測一直是行業痛點。外觀缺陷中的劃痕、髒汙、形態不一、大小不同、深淺和各種姿態都不同,很難用傳統的視覺檢測算法穩定檢測。但是隨著深度學習技術的發展,採用深度學習模式的外觀檢測程式,成為了外觀檢測的新方法。在A公司的這個案例中,我們也遇到了傳統視覺算法難以解決的外觀檢測問題,我們的解決方案是採用 深度學習搭配傳統定位算法。
4、深度學習軟體實現強大的 PCB 檢測系統
自動光學檢測(AOI)是一種自動化的視覺檢測技術, 在印刷電路板(PCB)檢測中,其涉及掃描 PCB 的表面以獲取清晰圖像。AOI系統可以檢測多種類型的PCB缺陷,包括短路、銅過多或不足、開路、劃痕、毛刺、銅渣、組件缺失和變形等。
由於存在許多表面缺陷,因此與常規的電子元件檢測相比,PCB的檢測可能更加困難,並且還經常需要第二次手動篩選,以在PCB返回產品線之前區分真實缺陷和誤報的缺陷。
該AI缺陷檢查系統由中國臺灣碁仕科技股份有限公司(G4 Technology)設計,它利用機器視覺相機和深度學習軟體,來準確地對PCB 缺陷進行檢查、探測、標記和分類。與傳統的機器視覺技術相比,該系統可以分析復 雜的圖像,提高圖像分析能力和自動視覺檢測的準確性,並對缺陷進行自動分類。該視覺系統包括一臺Allied Vision公司的相機、一個富士膠片公司的高解析度鏡頭和 SUALAB公司的 SuaKIT 深度學習軟體。系統中的相機型號是Manta G-032C,其基於30萬像素的Sony ICX424 彩色CCD傳感器,像素尺寸為7.4µm,全解析度下的幀率可達80.7fps。
在深度學習軟體中,基於範例的算法使用可接受和不可接受產品的圖像進行訓練,這與基於規則的算法要求手動設置缺陷標準不同。SuaKIT 通過分析產品上的各種缺陷(分割),對圖像分類並按缺陷類型分類(分類),然後 按類別探測圖像中的每個目標對象(探測),來檢查缺陷區域。
為了實現缺陷檢測,SuaKIT的算法被訓練了大約 100張正常和有缺陷產品的圖像,能在大約15分鐘的時間內 建立神經網絡。此後,由於相機的高幀率,每秒可以在生 產線上收集和處理80張圖像,從而使該軟體能夠自動學習和分析缺陷標準,並區分正常產品和缺陷產品的圖像。在深度學習算法的初始階段,所需的圖像數據會隨圖 像的複雜性而變化。通常需要 50~100張圖像,才能使系統可以處理客戶特定的缺陷標準。在這種情況下,使用深度學習軟體能夠替代人工視覺檢查的需求,可以將人員轉移或部署到工廠的其他製造流程或任務中,從而提高整體生產率。
圖:Allied Vision公司的Manta相機和SUALAB公司的SuaKIT深度學習軟體相結合,用於檢查印刷電路板。
5、深度學習和高光譜成像相結合識別馬鈴薯病害
改進的卷積神經網絡使用高光譜線掃圖像,用於馬鈴薯病害的檢測。在深度學習中使用高光譜數據尚有諸多挑戰,包括數據的大小和特定波段的噪聲。
來自荷蘭瓦格寧根大學的一個研究小組,試圖利用深度學習技術和高光譜圖像數據來檢測植物疾病。圖1 顯示了NAK在荷蘭一個種植實驗場用無人機拍攝的圖像。在試驗過程中,涉及到正常的栽培實踐和不同的天氣條件,田間的所有作物都被一個有經驗的NAK檢查員目視監測了多次。
表1顯示了田間不同隴之間所種植的作物品種和染病情況。第1-3 隴包含感染細 菌性疾病的作物,而第 4-7 隴包含感染馬鈴薯Y 病毒的四種不同品種的作物。第1-3 隴的作物圖片(主要是細菌感染、一些自 然偶發的 Y 病毒感染和一些健康的作物)為訓練卷積神經網絡(CNN)提供了數據。第5隴作物(LadyClaire)100%為病株, 第4隴作物(Rosa Gold)95% 以上為病株。此外,第4隴中出現的馬鈴薯 X 病毒(PVX)症狀妨礙了作物專家的人工判斷,並且PVX 病毒的出現已被實驗室檢測(ELISA)證實。因此第4隴和第5隴作物被排除在高光譜分析之外。
表1:第1、2、3隴作物主要是細菌感染,也有一些自然偶發的Y病毒感染。這些作物以及前三隴的健康作物,被用來訓練卷積神經網絡(CNN)。
圖:無人機拍攝到的位於荷蘭託勒貝克附近的實驗場地的RGB圖像。1-3隴的長度為110m,4-7隴的長度為66m。
雖然CNN通常對整個圖像進行分類(標記每幅圖像)或提供 2D 分段(標記 每個像素),但該團隊的方法使用了「弱」1D 標記序列與一個改進 的完全卷積神經網絡(FCN)相結合的架構,以減少通常需要的大 量訓練數據。「弱」1D 標籤序列的優點是增加訓練 集中可用標籤的有效 數量,以降低過擬合 風險。該方法還大大降低了標記數據集的 負擔。研究人員不需要提供像素級的注釋,而是使用患病個體的 GNSS 位 置,在線的層面上生成地面實況——這是一個更為簡單的過程。
使用的網絡是帶有非標準解碼器的FCN。雖然FCN 的輸出通常是 2D分割,但是研究人員輸出了 1D 分割, 目的是為每行圖像分配一個標籤。由於訓練數據的不平衡(健康的案例比 患病的案例多得多),所以對數據進 行了重新抽樣,以突出患病的案例。由於深度學習需要大量的訓練數據,利用隨機鏡像、旋轉、圖像亮度隨機變化等數據增強技術,使現有數據得以豐富。
資料來源於VSDC雜誌