精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
基于深度學習的計算機視覺在制造中的質量檢驗

工業制造業的自動化:

當今制造自動化水平的提高,也要求材料質量檢驗自動化,幾乎不需要人為干預。質量檢測自動化的發展趨勢是達到人的水平或更高的精度。為了保持競爭力,現代工業公司努力通過自動化實現數量和質量,而不會相互影響。

深度學習質量檢驗:

為了達到行業標準,制造企業的質量檢驗員通常在產品制造完成后對產品質量進行檢驗,這是一項耗費時間的體力勞動,而不合格的產品會造成上游工廠產能、耗材、勞動力和成本的浪費。隨著人工智能的現代發展趨勢,工業企業希望在生產周期中利用基于深度學習的計算機視覺技術實現材料質量檢測的自動化。目的是盡量減少人為干預,同時達到人的水平精度或更高的精度,以及優化工廠生產能力、勞動成本等。深度學習的使用是多種多樣的,從自動駕駛汽車中的物體檢測到醫學成像的疾病檢測,深度學習已經證明可以達到人類水平的準確性和更好。

什么是深度學習?

深度學習是研究數據的深度結構化和非結構化表示的領域。當數據量大且復雜時,深度學習是人工智能中提取更好結果的發展趨勢。深度學習體系結構由輸入層、隱藏層和輸出層等神經網絡的深層組成。隱藏層用于理解數據的復雜結構。神經網絡不需要編程來執行復雜的任務。從GB到數TB的數據被饋送到神經網絡架構,以便自己學習。以下示例深度神經網絡:

卷積神經網絡:

卷積神經網絡是一類通常在圖像分析中應用的深神經網絡。卷積層運用卷積運算將結果傳遞給下一層。例如,1000×1000像素的圖像有100萬個特征。如果第一個隱藏層有1000個神經元,那么它在第一個隱藏層之后就會有10億個特征。訓練一個具有十億個特征的神經網絡所需要的計算和記憶是令人望而卻步的。卷積運算解決了這一問題,因為它減少了自由特征的數量,使網絡更深入,特征更少。與完全連接的層相比,使用卷積層有兩個主要優點——參數共享和連接的稀疏性。

卷積神經網絡在圖像中尋找模式。圖像與一個較小的矩陣卷積,這個卷積在圖像中尋找模式。前幾層可以識別線/角/邊等,這些模式被傳遞到更深的神經網絡層來識別更復雜的特征。CNN的這一特性非常擅長于識別圖像中的對象。

卷積神經網絡(又名ConvNet)就是一系列的層。構建ConvNet架構主要使用三種類型的層:卷積層、池化層和全連接層。這些層是堆疊層,形成一個完整的ConvNet架構:

下圖澄清了卷積層的概念:

下圖闡明了池化層的概念(Average or Max pooling):

以下是最初的CNN架構之一:

可視化卷積神經網絡(CNN):

以下是平面上裂縫的圖像:

將兩個Conv(一個3X3 filter),ReLU和Max Pooling(2X2)類似于LENET-5架構的層應用于上面的裂縫圖像。從下面可以看出,CNN架構專注于裂縫區域的塊及其在整個表面的擴散:

案例分析:

問題陳述:

在硬件制造中檢測質量差的材料是一種容易出錯且耗時的手動過程,并導致誤報(將壞的一個檢測為好的)。如果在生產線末端檢測到有缺陷的部件,則上游人工,消耗品,工廠產能和收入都會減少。另一方面,如果未檢測到的不良部件進入最終產品,則會產生客戶影響以及市場反應。這可能會對組織的聲譽造成無法修復的損害。

摘要:

我們利用深度學習技術對硬件產品進行缺陷自動檢測。在我們的硬件制造過程中,可能會出現劃痕/裂紋等損壞,使我們的產品不能用于生產線上的下一道工序。我們的深度學習應用程序可以在毫秒內檢測到裂紋/劃傷等缺陷,具有人類水平的精度,并且可以更好地利用熱圖解釋圖像中的缺陷區域

深度學習架構的詳細信息:

為了更好地描述事物,我們正在使用下面帶有集成芯片的電路板的示例圖像:

第一種方法:

我們采用純計算機視覺方法(非機器學習方法)的組合從原始圖像中提取感興趣區域(ROI)和純粹的深度學習方法來檢測ROI中的缺陷。

為什么在深度學習(DL)之前提取ROI?

在拍攝圖像時,相機組件、燈光等都聚焦在電路的整個區域(下面的例子圖像)。我們只檢查芯片區域是否有缺陷,電路中沒有其他區域。我們通過一些實驗發現,當神經網絡只關注感興趣的區域而不是整個區域時,深度學習(DL)的準確性會顯著提高。

?首先使用計算機視覺(非機器學習方法)提取“感興趣區域(ROI)”。在這里,我們經歷了圖像上的多個過程,例如灰度縮放,諸如腐蝕,膨脹,閉運算圖像等的變換,最終曲線的ROI圖像基于用例類型/產品類型等。腐蝕的基本思想就像土壤侵蝕一樣 - 它會侵蝕前景物體的邊界。膨脹恰好與腐蝕相反 - 它增加了前景物體的大小。通常情況下,在去除噪音等情況下,腐蝕之后是膨脹。開運算只是腐蝕后膨脹的另一個名稱。它在消除噪音方面很有用。閉運算與開運算相反,膨脹之后是腐蝕。它具有填充物體內細小空洞,連接鄰近物體和平滑邊界的作用。 梯度變換是圖像膨脹與腐蝕的區別。總的來說,這些步驟有助于在原始圖像中查看幾乎不可見的裂縫/劃痕。參見下圖:

?其次,使用深度神經網絡(基于深度神經網絡(CNN)的模型)檢測缺陷,使用經過驗證的CNN拓撲,如Inception Net(又名Google Net),Res Net,Dense Net:

其他一些需要實驗才能找到最佳架構的領域

? 數據增強:我們有幾千個標記為缺陷的獨特圖像,幾千個標記為好的圖像。數據增強對于避免過度擬合訓練集至關重要。我們做了X個隨機裁剪和Y個旋轉(1張原始圖像導致X * Y增強圖像)。增強后,我們有X * Y千個缺陷圖像和X * Y千個好圖像。在此背景下參考原始CNN論文之一https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

? 初始化策略對于CNN的拓撲結構:

我們用自己的FC層和sigmoid層(二元分類)替換了最終的連接層,如下圖所示:

我們考慮每個CNN拓撲的ImageNet初始化,而不是每層中權重的隨機初始化,當我們使用ImageNet初始化而不是隨機時,我們的深度學習(DL)精度大大提高。

? 損失函數和優化器:

  • 交叉熵損失:交叉熵損失或對數損失測量分類模型的性能,該分類模型的輸出是0到1之間的概率值。交叉熵損失隨著預測概率偏離實際標簽而增加。因此,當實際觀察標簽為1時,預測0.01的概率將是不好的并且導致高損失值。完美模型的對數損失為0

  • SGD和Nesterov momentum:SGD或隨機梯度下降是一種優化可微分目標函數(損失函數)的迭代方法,它是隨機的,因為它從數據中隨機抽取樣本進行梯度下降更新。momentum是梯度的移動平均值,用來更新網絡的權值,幫助梯度向正確的方向加速。Nesterov是最近流行的一種趨勢。

第二種方法:

對于第一種方法:在提取感興趣的區域時,只要產品類型,電路板類型/芯片類型(在我們的抽象示例的情況下),相機設置/方向等發生變化,它就需要重寫代碼。這是不可擴展的。

解決方案:我們構建了一個端到端的two step DL架構。在第一步中,我們使用DL方法來預測ROI本身,而不是CV方法。我們使用邊界框工具手動創建了帶標簽的數據集,我們訓練DL架構來預測ROI。這種技術的一個缺點是標記的數據集必須明確且足夠廣泛,以包括所有產品類型等(在我們的抽象示例的情況下的電路板類型/芯片類型),以便深度神經網絡很好地概括看不見的圖像。請參考下圖:

?CNNROI generator損耗函數:

  • 我們最初使用基于平方距離的損失函數如下:

在驗證集上訓練了20個epochs的Resnet50模型后,我們在平均遺漏區域和IOU上實現了以下驗證度量:

Ave. missed area = 8.52 * 10–3

Ave. IOU (intersection over union) = 0.7817

我們希望至少在IOU上有所改進

  • 我們想出了一個基于區域的損失,請參考下圖來了解我們如何使用基本數學來計算 ground truth和預測標簽之間的交叉區域。在損失函數中,我們想要懲罰遺漏(missed area)和超出區域(excess area)。理想情況下,我們希望懲罰遺漏區域而不是超出區域:

上面的損失函數是可微分的,因此我們可以對損失函數進行梯度下降優化

?CNNROI generator增強:我們只是在訓練時間和測試時間內為我們預測的ROI增加了5%(左右)邊距:

? CNN ROI generator的結果:我們使用Resnet50 (ImageNet初始化)拓撲和SGD + Nesterov momentum optimizer with =2,=1在面積為基礎的損失如上所述。為多個時代訓練Resnet50模型,我們希望盡量減少我們的平均值。錯過了區域并最大化我們的平均值。IOU(最好的IOU是'1')。經過20個epochs的訓練后,我們在驗證集上實現了以下目標,基于區域的損失和增加我們改進了(如上所述)我們關于遺漏區域和IOU的驗證度量:

Ave. missed area = 3.65 * 10–3

Ave. IOU (intersection over union) = 0.8577

實驗與基準:

實驗:

  • 總圖像數:幾千張圖片
  • 數據拆分:80- 10- 10拆,只使用唯一圖像
  • 使用的框架:PyTorch和Tensorflow / Keras
  • 權重初始化:在ImageNet上進行預訓練
  • 優化器:SGD,學習率= 0.001,Nesterov with momentum = 0.9
  • 損失:交叉熵
  • Batch size:12
  • epochs總數:24
  • 圖像形狀:224x224x3(除了Inception V3,需要299x299x3)
  • 標準:最低驗證損失

基準:

我們使用這兩種方法的基準測試具有相當的可比性,使用CV + DL(第一)方法的結果比DL + DL(第二)方法稍好一些。我們相信,如果我們能夠創建一個大量而明確的帶標簽的bounding box數據集,我們的DL+DL可能會更好。

在成功完成訓練之后,必須找到一個推理解決方案來完成整個端到端解決方案。我們使用Intel OpenVino軟件對除CPU外的各種硬件進行優化推理,如FPGA、Intel Movidius等。

推論:

英特爾Open Vino:基于卷積神經網絡(CNN),英特爾Open Vino工具包可擴展英特爾硬件的工作負載并最大限度地提高性能:

  • - 在邊緣啟用基于CNN的深度學習推理
  • - 支持跨計算機視覺加速器的異構執行 - CPU,GPU,英特爾?Movidius?神經計算棒和FPGA - 使用通用API
  • - 通過函數庫和預優化內核加快產品上市速度
  • - 包括對OpenCV和OpenVX *的優化調用

請參閱Open Vino架構的以下圖表:

兩步部署:

- 第一步是使用模型優化器將預訓練的模型轉換為IR :

§ 生成有效的中間表示:如果此主轉換工件無效,則推理引擎無法運行。模型優化器的主要職責是生成兩個文件以形成中間表示。

§ 生成優化的中間表示:預訓練模型包含對訓練很重要的層,例如dropout層。這些層在推理期間是無用的,并且可能增加推理時間。在許多情況下,可以從生成的中間表示中自動刪除這些層。然而,如果一組層可以作為一種數學運算來表示,因此作為一層,模型優化器會識別出這樣的模式然后用一個層替換這些層。結果是一個中間表示,其層數比原始模型少。這減少了推理時間。

IR是描述整個模型的一對文件:

  • .xml:描述網絡拓撲
  • .bin:包含權重和偏差二進制數據

- 第二步是使用推理引擎讀取,加載和推斷IR文件,使用CPU,GPU或VPU硬件上的通用API

Vino文檔:https://software.intel.com/en-us/inference-trained-models-with-intel-dl-deployment-toolkit-beta-2017r3

樣本圖像的推理基準:

很明顯,使用軟件堆棧進行優化對于縮短推理時間至關重要。使用OpenVino軟件優化,我們看到延遲時間縮短了30到100倍。此外,除英特爾CPU外,我們還推出了其他英特爾硬件加速器,如英特爾Movidius和FPGA。以下是樣本圖像的一些推理基準:

使用熱圖可視化我們的CNN:

通常深度神經網絡被批評為解釋性低,大多數深度學習解決方案在標簽分類完成時停止。我們想要解釋我們的結果,為什么CNN架構將圖像標記為好或壞(我們的案例研究是二元分類),CNN最關注圖像中的哪個區域。

基于MIT https://arxiv.org/pdf/1512.04150.pdf的研究,提出了結合全局max池化層的類激活映射來定位類特定的圖像區域。

全局平均池化通常起著調節作用,防止訓練過程中過度擬合。本研究認為,全局平均池化層的優點不僅僅是簡單的作為一個正則化器——稍作調整,網絡可以保持其顯著的定位能力,直到最后一層。這一調整可以輕易地識別出不同的圖像區域的不同類型的任務,甚至是那些網絡最初沒有被訓練的任務。

以下是使用此技術對使用在ImageNet上訓練的Resnet-50架構的“平面上的裂縫”圖像進行熱圖解釋。正如我們所看到的,熱圖集中在下面的裂縫區域,盡管架構沒有經過這樣的圖像訓練 -

總結與結論:

通過基于深度學習的計算機視覺,我們使用我們的兩種方法 - CV + DL和DL + DL,實現了人類水平的準確性。我們不僅使用深度學習進行分類,而且還使用圖像本身的熱圖來解釋缺陷區域。

最優模型總是在FPR(假陽性率)和FNR(假陰性率)或精確度與召回率之間進行微調。對于我們的用例,我們成功地使用了針對低FNR(高召回率)優化的模型來自動檢測缺陷。我們大幅降低了人工審核率。通過我們的案例研究,我們證明了我們可以通過深度學習實現材料檢查的自動化,并降低人的審查率。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
圖像分割2020總結:結構,損失函數,數據集和框架
腎小管末端磷酸鈣沉積栓的自動檢測。
基于轉移學習的圖像識別
給初學者的深度學習簡介
追根溯源!一圖看盡深度學習架構譜系
深度學習入門指南:初學者必看!
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 阜宁县| 醴陵市| 绵竹市| 普定县| 镇江市| 隆安县| 天镇县| 北碚区| 江口县| 什邡市| 钟山县| 尼木县| 景东| 东源县| 瑞丽市| 松桃| 涿州市| 泊头市| 肃北| 久治县| 五峰| 福海县| 邢台市| 苗栗市| 芮城县| 根河市| 互助| 米脂县| 福泉市| 三门县| 凌源市| 汽车| 呼图壁县| 安岳县| 湘乡市| 康平县| 迁西县| 曲水县| 岳阳县| 乌拉特中旗| 萨嘎县|