當(dāng)今制造自動化水平的提高,也要求材料質(zhì)量檢驗(yàn)自動化,幾乎不需要人為干預(yù)。質(zhì)量檢測自動化的發(fā)展趨勢是達(dá)到人的水平或更高的精度。為了保持競爭力,現(xiàn)代工業(yè)公司努力通過自動化實(shí)現(xiàn)數(shù)量和質(zhì)量,而不會相互影響。
為了達(dá)到行業(yè)標(biāo)準(zhǔn),制造企業(yè)的質(zhì)量檢驗(yàn)員通常在產(chǎn)品制造完成后對產(chǎn)品質(zhì)量進(jìn)行檢驗(yàn),這是一項(xiàng)耗費(fèi)時間的體力勞動,而不合格的產(chǎn)品會造成上游工廠產(chǎn)能、耗材、勞動力和成本的浪費(fèi)。隨著人工智能的現(xiàn)代發(fā)展趨勢,工業(yè)企業(yè)希望在生產(chǎn)周期中利用基于深度學(xué)習(xí)的計算機(jī)視覺技術(shù)實(shí)現(xiàn)材料質(zhì)量檢測的自動化。目的是盡量減少人為干預(yù),同時達(dá)到人的水平精度或更高的精度,以及優(yōu)化工廠生產(chǎn)能力、勞動成本等。深度學(xué)習(xí)的使用是多種多樣的,從自動駕駛汽車中的物體檢測到醫(yī)學(xué)成像的疾病檢測,深度學(xué)習(xí)已經(jīng)證明可以達(dá)到人類水平的準(zhǔn)確性和更好。
深度學(xué)習(xí)是研究數(shù)據(jù)的深度結(jié)構(gòu)化和非結(jié)構(gòu)化表示的領(lǐng)域。當(dāng)數(shù)據(jù)量大且復(fù)雜時,深度學(xué)習(xí)是人工智能中提取更好結(jié)果的發(fā)展趨勢。深度學(xué)習(xí)體系結(jié)構(gòu)由輸入層、隱藏層和輸出層等神經(jīng)網(wǎng)絡(luò)的深層組成。隱藏層用于理解數(shù)據(jù)的復(fù)雜結(jié)構(gòu)。神經(jīng)網(wǎng)絡(luò)不需要編程來執(zhí)行復(fù)雜的任務(wù)。從GB到數(shù)TB的數(shù)據(jù)被饋送到神經(jīng)網(wǎng)絡(luò)架構(gòu),以便自己學(xué)習(xí)。以下示例深度神經(jīng)網(wǎng)絡(luò):
卷積神經(jīng)網(wǎng)絡(luò)是一類通常在圖像分析中應(yīng)用的深神經(jīng)網(wǎng)絡(luò)。卷積層運(yùn)用卷積運(yùn)算將結(jié)果傳遞給下一層。例如,1000×1000像素的圖像有100萬個特征。如果第一個隱藏層有1000個神經(jīng)元,那么它在第一個隱藏層之后就會有10億個特征。訓(xùn)練一個具有十億個特征的神經(jīng)網(wǎng)絡(luò)所需要的計算和記憶是令人望而卻步的。卷積運(yùn)算解決了這一問題,因?yàn)樗鼫p少了自由特征的數(shù)量,使網(wǎng)絡(luò)更深入,特征更少。與完全連接的層相比,使用卷積層有兩個主要優(yōu)點(diǎn)——參數(shù)共享和連接的稀疏性。
卷積神經(jīng)網(wǎng)絡(luò)在圖像中尋找模式。圖像與一個較小的矩陣卷積,這個卷積在圖像中尋找模式。前幾層可以識別線/角/邊等,這些模式被傳遞到更深的神經(jīng)網(wǎng)絡(luò)層來識別更復(fù)雜的特征。CNN的這一特性非常擅長于識別圖像中的對象。
卷積神經(jīng)網(wǎng)絡(luò)(又名ConvNet)就是一系列的層。構(gòu)建ConvNet架構(gòu)主要使用三種類型的層:卷積層、池化層和全連接層。這些層是堆疊層,形成一個完整的ConvNet架構(gòu):
下圖澄清了卷積層的概念:
下圖闡明了池化層的概念(Average or Max pooling):
以下是最初的CNN架構(gòu)之一:
以下是平面上裂縫的圖像:
將兩個Conv(一個3X3 filter),ReLU和Max Pooling(2X2)類似于LENET-5架構(gòu)的層應(yīng)用于上面的裂縫圖像。從下面可以看出,CNN架構(gòu)專注于裂縫區(qū)域的塊及其在整個表面的擴(kuò)散:
問題陳述:
在硬件制造中檢測質(zhì)量差的材料是一種容易出錯且耗時的手動過程,并導(dǎo)致誤報(將壞的一個檢測為好的)。如果在生產(chǎn)線末端檢測到有缺陷的部件,則上游人工,消耗品,工廠產(chǎn)能和收入都會減少。另一方面,如果未檢測到的不良部件進(jìn)入最終產(chǎn)品,則會產(chǎn)生客戶影響以及市場反應(yīng)。這可能會對組織的聲譽(yù)造成無法修復(fù)的損害。
我們利用深度學(xué)習(xí)技術(shù)對硬件產(chǎn)品進(jìn)行缺陷自動檢測。在我們的硬件制造過程中,可能會出現(xiàn)劃痕/裂紋等損壞,使我們的產(chǎn)品不能用于生產(chǎn)線上的下一道工序。我們的深度學(xué)習(xí)應(yīng)用程序可以在毫秒內(nèi)檢測到裂紋/劃傷等缺陷,具有人類水平的精度,并且可以更好地利用熱圖解釋圖像中的缺陷區(qū)域
為了更好地描述事物,我們正在使用下面帶有集成芯片的電路板的示例圖像:
第一種方法:
我們采用純計算機(jī)視覺方法(非機(jī)器學(xué)習(xí)方法)的組合從原始圖像中提取感興趣區(qū)域(ROI)和純粹的深度學(xué)習(xí)方法來檢測ROI中的缺陷。
為什么在深度學(xué)習(xí)(DL)之前提取ROI?
在拍攝圖像時,相機(jī)組件、燈光等都聚焦在電路的整個區(qū)域(下面的例子圖像)。我們只檢查芯片區(qū)域是否有缺陷,電路中沒有其他區(qū)域。我們通過一些實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)神經(jīng)網(wǎng)絡(luò)只關(guān)注感興趣的區(qū)域而不是整個區(qū)域時,深度學(xué)習(xí)(DL)的準(zhǔn)確性會顯著提高。
?首先使用計算機(jī)視覺(非機(jī)器學(xué)習(xí)方法)提取“感興趣區(qū)域(ROI)”。在這里,我們經(jīng)歷了圖像上的多個過程,例如灰度縮放,諸如腐蝕,膨脹,閉運(yùn)算圖像等的變換,最終曲線的ROI圖像基于用例類型/產(chǎn)品類型等。腐蝕的基本思想就像土壤侵蝕一樣 - 它會侵蝕前景物體的邊界。膨脹恰好與腐蝕相反 - 它增加了前景物體的大小。通常情況下,在去除噪音等情況下,腐蝕之后是膨脹。開運(yùn)算只是腐蝕后膨脹的另一個名稱。它在消除噪音方面很有用。閉運(yùn)算與開運(yùn)算相反,膨脹之后是腐蝕。它具有填充物體內(nèi)細(xì)小空洞,連接鄰近物體和平滑邊界的作用。 梯度變換是圖像膨脹與腐蝕的區(qū)別。總的來說,這些步驟有助于在原始圖像中查看幾乎不可見的裂縫/劃痕。參見下圖:
?其次,使用深度神經(jīng)網(wǎng)絡(luò)(基于深度神經(jīng)網(wǎng)絡(luò)(CNN)的模型)檢測缺陷,使用經(jīng)過驗(yàn)證的CNN拓?fù)洌鏘nception Net(又名Google Net),Res Net,Dense Net:
其他一些需要實(shí)驗(yàn)才能找到最佳架構(gòu)的領(lǐng)域
? 數(shù)據(jù)增強(qiáng):我們有幾千個標(biāo)記為缺陷的獨(dú)特圖像,幾千個標(biāo)記為好的圖像。數(shù)據(jù)增強(qiáng)對于避免過度擬合訓(xùn)練集至關(guān)重要。我們做了X個隨機(jī)裁剪和Y個旋轉(zhuǎn)(1張原始圖像導(dǎo)致X * Y增強(qiáng)圖像)。增強(qiáng)后,我們有X * Y千個缺陷圖像和X * Y千個好圖像。在此背景下參考原始CNN論文之一https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
? 初始化策略對于CNN的拓?fù)浣Y(jié)構(gòu):
我們用自己的FC層和sigmoid層(二元分類)替換了最終的連接層,如下圖所示:
我們考慮每個CNN拓?fù)涞腎mageNet初始化,而不是每層中權(quán)重的隨機(jī)初始化,當(dāng)我們使用ImageNet初始化而不是隨機(jī)時,我們的深度學(xué)習(xí)(DL)精度大大提高。
? 損失函數(shù)和優(yōu)化器:
第二種方法:
對于第一種方法:在提取感興趣的區(qū)域時,只要產(chǎn)品類型,電路板類型/芯片類型(在我們的抽象示例的情況下),相機(jī)設(shè)置/方向等發(fā)生變化,它就需要重寫代碼。這是不可擴(kuò)展的。
解決方案:我們構(gòu)建了一個端到端的two step DL架構(gòu)。在第一步中,我們使用DL方法來預(yù)測ROI本身,而不是CV方法。我們使用邊界框工具手動創(chuàng)建了帶標(biāo)簽的數(shù)據(jù)集,我們訓(xùn)練DL架構(gòu)來預(yù)測ROI。這種技術(shù)的一個缺點(diǎn)是標(biāo)記的數(shù)據(jù)集必須明確且足夠廣泛,以包括所有產(chǎn)品類型等(在我們的抽象示例的情況下的電路板類型/芯片類型),以便深度神經(jīng)網(wǎng)絡(luò)很好地概括看不見的圖像。請參考下圖:
?CNNROI generator損耗函數(shù):
在驗(yàn)證集上訓(xùn)練了20個epochs的Resnet50模型后,我們在平均遺漏區(qū)域和IOU上實(shí)現(xiàn)了以下驗(yàn)證度量:
Ave. missed area = 8.52 * 10–3
Ave. IOU (intersection over union) = 0.7817
我們希望至少在IOU上有所改進(jìn)
上面的損失函數(shù)是可微分的,因此我們可以對損失函數(shù)進(jìn)行梯度下降優(yōu)化
?CNNROI generator增強(qiáng):我們只是在訓(xùn)練時間和測試時間內(nèi)為我們預(yù)測的ROI增加了5%(左右)邊距:
? CNN ROI generator的結(jié)果:我們使用Resnet50 (ImageNet初始化)拓?fù)浜蚐GD + Nesterov momentum optimizer with =2,=1在面積為基礎(chǔ)的損失如上所述。為多個時代訓(xùn)練Resnet50模型,我們希望盡量減少我們的平均值。錯過了區(qū)域并最大化我們的平均值。IOU(最好的IOU是'1')。經(jīng)過20個epochs的訓(xùn)練后,我們在驗(yàn)證集上實(shí)現(xiàn)了以下目標(biāo),基于區(qū)域的損失和增加我們改進(jìn)了(如上所述)我們關(guān)于遺漏區(qū)域和IOU的驗(yàn)證度量:
Ave. missed area = 3.65 * 10–3
Ave. IOU (intersection over union) = 0.8577
實(shí)驗(yàn):
基準(zhǔn):
我們使用這兩種方法的基準(zhǔn)測試具有相當(dāng)?shù)目杀刃?,使用CV + DL(第一)方法的結(jié)果比DL + DL(第二)方法稍好一些。我們相信,如果我們能夠創(chuàng)建一個大量而明確的帶標(biāo)簽的bounding box數(shù)據(jù)集,我們的DL+DL可能會更好。
在成功完成訓(xùn)練之后,必須找到一個推理解決方案來完成整個端到端解決方案。我們使用Intel OpenVino軟件對除CPU外的各種硬件進(jìn)行優(yōu)化推理,如FPGA、Intel Movidius等。
推論:
英特爾Open Vino:基于卷積神經(jīng)網(wǎng)絡(luò)(CNN),英特爾Open Vino工具包可擴(kuò)展英特爾硬件的工作負(fù)載并最大限度地提高性能:
請參閱Open Vino架構(gòu)的以下圖表:
- 第一步是使用模型優(yōu)化器將預(yù)訓(xùn)練的模型轉(zhuǎn)換為IR :
§ 生成有效的中間表示:如果此主轉(zhuǎn)換工件無效,則推理引擎無法運(yùn)行。模型優(yōu)化器的主要職責(zé)是生成兩個文件以形成中間表示。
§ 生成優(yōu)化的中間表示:預(yù)訓(xùn)練模型包含對訓(xùn)練很重要的層,例如dropout層。這些層在推理期間是無用的,并且可能增加推理時間。在許多情況下,可以從生成的中間表示中自動刪除這些層。然而,如果一組層可以作為一種數(shù)學(xué)運(yùn)算來表示,因此作為一層,模型優(yōu)化器會識別出這樣的模式然后用一個層替換這些層。結(jié)果是一個中間表示,其層數(shù)比原始模型少。這減少了推理時間。
IR是描述整個模型的一對文件:
- 第二步是使用推理引擎讀取,加載和推斷IR文件,使用CPU,GPU或VPU硬件上的通用API
Vino文檔:https://software.intel.com/en-us/inference-trained-models-with-intel-dl-deployment-toolkit-beta-2017r3
樣本圖像的推理基準(zhǔn):
很明顯,使用軟件堆棧進(jìn)行優(yōu)化對于縮短推理時間至關(guān)重要。使用OpenVino軟件優(yōu)化,我們看到延遲時間縮短了30到100倍。此外,除英特爾CPU外,我們還推出了其他英特爾硬件加速器,如英特爾Movidius和FPGA。以下是樣本圖像的一些推理基準(zhǔn):
通常深度神經(jīng)網(wǎng)絡(luò)被批評為解釋性低,大多數(shù)深度學(xué)習(xí)解決方案在標(biāo)簽分類完成時停止。我們想要解釋我們的結(jié)果,為什么CNN架構(gòu)將圖像標(biāo)記為好或壞(我們的案例研究是二元分類),CNN最關(guān)注圖像中的哪個區(qū)域。
基于MIT https://arxiv.org/pdf/1512.04150.pdf的研究,提出了結(jié)合全局max池化層的類激活映射來定位類特定的圖像區(qū)域。
全局平均池化通常起著調(diào)節(jié)作用,防止訓(xùn)練過程中過度擬合。本研究認(rèn)為,全局平均池化層的優(yōu)點(diǎn)不僅僅是簡單的作為一個正則化器——稍作調(diào)整,網(wǎng)絡(luò)可以保持其顯著的定位能力,直到最后一層。這一調(diào)整可以輕易地識別出不同的圖像區(qū)域的不同類型的任務(wù),甚至是那些網(wǎng)絡(luò)最初沒有被訓(xùn)練的任務(wù)。
以下是使用此技術(shù)對使用在ImageNet上訓(xùn)練的Resnet-50架構(gòu)的“平面上的裂縫”圖像進(jìn)行熱圖解釋。正如我們所看到的,熱圖集中在下面的裂縫區(qū)域,盡管架構(gòu)沒有經(jīng)過這樣的圖像訓(xùn)練 -
通過基于深度學(xué)習(xí)的計算機(jī)視覺,我們使用我們的兩種方法 - CV + DL和DL + DL,實(shí)現(xiàn)了人類水平的準(zhǔn)確性。我們不僅使用深度學(xué)習(xí)進(jìn)行分類,而且還使用圖像本身的熱圖來解釋缺陷區(qū)域。
最優(yōu)模型總是在FPR(假陽性率)和FNR(假陰性率)或精確度與召回率之間進(jìn)行微調(diào)。對于我們的用例,我們成功地使用了針對低FNR(高召回率)優(yōu)化的模型來自動檢測缺陷。我們大幅降低了人工審核率。通過我們的案例研究,我們證明了我們可以通過深度學(xué)習(xí)實(shí)現(xiàn)材料檢查的自動化,并降低人的審查率。
聯(lián)系客服