
發布
注冊
/
登錄CNN的案例
使用 Mask R-CNN、GrabCut 和 OpenCV 進行圖像分割 ¥5
在本文中,我們探討了三種流行的圖像分割技術:Mask R-CNN、GrabCut 和 OpenCV。
讓我們了解一下,什么是 Mask R-CNN 和 GrabCut 的圖像分割?
1 什么是 R-CNN?
R-CNN代表基于區域的卷積神經網絡。它是一個開創性的對象檢測系統,將對象定位和識別結合到一個端到端的深度學習框架中。
?
R-CNN
RNN 可以概括為以下幾種方式。
· 區域建議:最初,區域建議算法(如選擇性搜索)會在圖像中生成一組可能包含感興趣對象的潛在邊界框區域。這些區域用作候選對象位置。
· 特征提?。喝缓?,每個區域提案都會被單獨裁剪并調整為固定大小,并通過預先訓練的 CNN(例如 AlexNet 或 VGGNet)傳遞。CNN 從區域中提取高級特征,將其轉換為固定長度的特征向量。
· 分類和定位:從 CNN 獲得的特征向量被饋送到單獨的全連接層中。分類層預測區域中存在不同對象類別的概率,而回歸層細化邊界框的坐標,從而提高定位精度。
· 非極大值抑制 (NMS):為了消除冗余檢測,將應用非極大值抑制。它刪除了重疊的邊界框,只為每個對象實例保留最可信的檢測。
2 掩碼 R-CNN
掩碼 R-CNN(基于掩碼區域的卷積神經網絡)是更快的 R-CNN 對象識別框架升級,增加了執行實例分割的功能。該研究由 Kaiming He、Georgia Gkioxari、Piotr Dollár 和 Ross Girshick 在 2017 年出版的著作《Mask R-CNN》中提出。
實例分割的任務不僅包括檢測圖像中的對象,還包括在像素級別分割每個對象實例,從而為每個檢測到的對象提供二進制掩碼。掩碼 R-CNN 在 Faster R-CNN 的兩階段架構上開發,第三個分支用于像素級分割掩碼。
展開 卷積神經網絡(CNN)簡介-1 ¥2
卷積神經網絡 (CNN) 的優缺點
2. CNN 的優點:
3. 擅長檢測圖像、視頻和音頻信號中的模式和特征。
1. 對平移、旋轉和縮放不變性具有魯棒性。
1. 端到端訓練,無需手動提取特征。
1. 可以處理大量數據并實現高準確性。
4. CNN 的缺點:
1. 訓練的計算成本很高,并且需要大量內存。
1. 如果沒有足夠的數據或使用適當的正則化,則容易出現過擬合。
1. 需要大量標記數據。
1. 可解釋性有限,很難理解網絡學到了什么。
5. 卷積神經網絡 – 常見問題解答
6. 什么是卷積神經網絡 (CNN)?
卷積神經網絡 (CNN) 是一種非常適合圖像和視頻分析的深度學習神經網絡。CNN 使用一系列卷積和池化層從圖像和視頻中提取特征,然后使用這些特征對對象或場景進行分類或檢測。
7. CNN 的工作原理是什么?
CNN 的工作原理是將一系列卷積層和池化層應用于輸入圖像或視頻。卷積層通過在圖像或視頻上滑動一個小濾波器或內核,并計算濾波器和輸入之間的點積,從輸入中提取特征。然后,池化層對卷積層的輸出進行下采樣,以降低數據的維度并提高其計算效率。
8. CNN 和卷積有什么區別?
? CNN(卷積神經網絡)是一種深度學習神經網絡,旨在通過使用卷積層提取特征來處理網格狀數據,例如圖像。
? 另一方面,卷積是 CNN 中的特定數學運算,它將過濾器(內核)應用于輸入數據(如圖像)以檢測邊緣或紋理等模式。
9. CNN 的基本原理是什么?
卷積神經網絡 (CNN) 的基本原理是通過使用卷積層從輸入數據(通常是圖像)中自動學習和提取分層特征。
10. 什么是卷積及其類型?
卷積是卷積神經網絡 (CNN) 中應用的一種數學運算,用于從輸入數據(例如圖像)中提取特征。
展開 CNN是靠什么線索學習到深度信息的?
從這個小小的實驗中,我們可以管窺CNN究竟是通過什么樣的信息來識別物體,以及CNN是多么喜歡去找數據中的“捷徑”來fit數據的。
說了這么多,這個文章也有幾點我覺得可以繼續深挖下去,包括:
1.在室內場景,如NYU Depth這樣的數據集中,沒有這樣大面積的ground plane,CNN是如何估計出深度的?
2.在第一個分析實驗中,既然CNN是通過車輪地面接觸點的縱坐標來測距的,那么這個信息又是從哪里來的?網絡結構基本是一個FCN,具有translation invariant的特點,那么理應不包括坐標信息。那是padding泄露了位置信息?還是通過車道線或者是其他的一些cue泄露了這個信息,這也是很有意思的一點。直觀上來講,物體的scale是CNN更容易捕捉的信息,但實際上并沒有,這也就說明其實有一些CNN更直接可以利用的cue我們沒有發現到。
3.既然CNN對于crop和rotation很敏感,那如果我們訓練的時候使用了random crop和random rotation這樣的data augmentation,那么CNN依賴的深度線索是否會有變化?
總結一下,現有基于CNN做深度估計的算法本質上還都是通過overfit場景中的某種信息來進行深度估計,整體來說這些方法其實并沒有考慮到任何幾何的限制,所以在不同場景下的泛化能力也比較弱。
如何能結合geometry方法和learning方法的優勢是一個老生常談的話題。
一方面這個問題可以被拆分成兩部分,一部分通過幾何的辦法來完成不同位置相對深度的估計,另一部分通過一些場景先驗或者數據驅動的辦法來預測出絕對尺度,然后再融合這兩者得到一個可靠魯棒的深度估計。
展開 教你在Excel中搭建一個人臉識別CNN網絡
CNN 擅長識別圖像任何部分的模式,然后將這些模式疊加在一起,以構建更復雜的模式,就像人類一樣。
在普通神經網絡中,我們將每個單獨的像素視為我們模型的輸入(而不是3個矩陣),但這忽略了相鄰像素是具有特殊的意義和結構。對于 CNN,我們關注彼此相鄰的像素組,這允許模型學習像形狀,線條等的局部模式。例如,如果 CNN 在黑色圓圈周圍看到許多白色像素,它會將此模式識別為眼睛。
為了讓 CNN 實現 translation variance,他們必須依靠特征檢測,也就是Sherlock Convolution Holmes 。
第二步
▌特征檢測:遇見 Sherlock Convolution Holmes
Sherlock 使用放大鏡,仔仔細細地檢查每一張圖像,找到該圖像的重要特征或“線索”。然后將這些簡單的線條和形狀特征堆疊在一起,就可以開始看到像眼睛或鼻子這樣的面部特征。
每個卷積層都會包含一堆特征圖或相互構建的“線索”。在所有卷積完成過后,他將所有這些線索放在一起,就破解了案件并正確識別出目標。
每個特征圖都像是另一個“線索”
網絡的每個卷積層都有一組特征圖,這些特征圖使用分層方式來識別越來越復雜的圖案/形狀。CNN 使用數字模式識別來確定圖像最重要的特征。它使用更多的層將這些模式堆疊在一起,因此可以構建非常復雜的特征圖。
卷積神經網絡檢測特征
讓人吃驚的是,CNN 他們可以自己學習到這些特征,而不需要工程師編寫代碼教他學習什么是2只眼睛,1個鼻子,嘴巴等等。
在這種方式下,工程師更像是建筑師。
展開 
Tensorflow 中的卷積神經網絡 (CNN)
卷積神經網絡 (CNN) 通過從圖像中自動學習特征的空間層次結構,徹底改變了計算機視覺領域。在本文中,我們將探討 CNN 的基本構建塊,并向您展示如何使用 TensorFlow 實現 CNN 模型。
CNN 的構建塊
CNN 由各層組成,每個層在處理和提取輸入圖像中的特征時執行特定任務。主要構建塊是:
卷積神經網絡架構
1. 卷積層
它接收一個輸入特征圖(可以是圖像)并應用一組過濾器(或內核)來創建新的特征圖。這些濾鏡從圖像中捕獲不同的特征,例如邊緣、角落和紋理。卷積作由濾波器大小、步幅和填充等參數控制。
import tensorflow as tf
conv_layer = tf.keras.layers.Conv2D(
filters=32, kernel_size=(3, 3), strides=(1, 1), padding='valid',
activation='relu', kernel_initializer='glorot_uniform',
)
2. 池化層
它用于對特征圖進行下采樣,即在保留最重要的信息的同時減小它們的大小。
展開 (圖解)神經網絡之CNN與RNN的關系
來源 | pytorch之計算機視覺
編者薦語
文章主要是對CNN和RNN的理解,通過對比總結各自的優勢,同時加深自己對這方面知識的理解,其中代碼引用采用的是VQA模型中對圖像和文本的處理。
1、CNN介紹
CNN是一種利用卷積計算的神經網絡。它可以通過卷積計算將原像素很大的圖片保留主要特征變成很小的像素圖片。本文以李宏毅老師ppt內容展開具體介紹。
1.1 Why CNN for Image
①為什么引入CNN ?
圖片示意:給定一個圖片放入全連接神經網絡,第一個hidden layer識別這張圖片有沒有綠色出現?有沒有黃色出現?有沒有斜的條紋?第二個hidden layer結合第一個hidden layer的輸出實現更復雜的功能,例如:如圖如果看到直線+橫線就是框框一部分,如果看到棕色+條紋就是木紋,如果看到斜條紋+綠色就是灰色類條紋一部分。再根據第二個hidden layer輸出結果,如果某個神經元看到蜂巢就會activate,某個神經元如果看到人就會activate。
但是我們如果一般地用fully network(全連接)神經網絡處理的話,我們會需要很多的參數,例如如果input的vector是個30000維,第一個hidden layer假設是1000個神經元,那么第一個hidden layer就會30000*1000個,數據量非常大,導致計算效率和準確率效果低,而引入CNN,主要就是解決我們這些問題,簡化我們神經網絡架構。
展開 41基于matlab的CNN的圖像邊緣提取,程序已調通,可直接運行。 ¥8.9
基于matlab的CNN的圖像邊緣提取,程序已調通,可直接運行。
分類預測 | MATLAB實現WOA-CNN-LSTM-Attention數據分類預測
預測效果
使用教程
1 基本介紹
1.MATLAB實現WOA-CNN-LSTM-Attention數據分類預測,運行環境Matlab2021b及以上;
2.基于鯨魚優化算法(WOA)、卷積神經網絡(CNN)和長短期記憶網絡(LSTM)的數據分類預測程序;
3.多特征輸入單輸出的二分類及多分類模型。程序內注釋詳細,直接替換數據就可以用;過WOA優化算法優化學習率、卷積核大小、神經元個數,這3個關鍵參數,以測試集精度最高為目標函數
程序語言為matlab,程序可出分類效果圖,迭代優化圖,混淆矩陣圖;
4.data為數據集,輸入12個特征,分四類;main為主程序,其余為函數文件,無需運行,可在下載區獲取數據和程序內容。
5.適用領域:適用于各種數據分類場景,如滾動軸承故障、變壓器油氣故障、電力系統輸電線路故障區域、絕緣子、配網、電能質量擾動,等領域的識別、診斷和分類。
使用便捷:直接使用EXCEL表格導入數據,無需大幅修改程序。內部有詳細注釋,易于理解。
2 研究內容
注意力機制模塊:
SEBlock(Squeeze-and-Excitation Block)是一種聚焦于通道維度而提出一種新的結構單元,為模型添加了通道注意力機制,該機制通過添加各個特征通道的重要程度的權重,針對不同的任務增強或者抑制對應的通道,以此來提取有用的特征。該模塊的內部操作流程如圖,總體分為三步:首先是Squeeze 壓縮操作,對空間維度的特征進行壓縮,保持特征通道數量不變。融合全局信息即全局池化,并將每個二維特征通道轉換為實數。實數計算公式如公式所示。該實數由k個通道得到的特征之和除以空間維度的值而得,空間維數為H*W。其次是Excitation激勵操作,它由兩層全連接層和Sigmoid函數組成。
展開 卷積神經網絡表征可視化研究綜述
即使是模型設計者也難以回答CNN到底學習到了哪些特征、特征的具體組織形式以及不同特征的重要性度量等問題, 導致CNN模型的診斷與優化成為經驗性、甚至盲目性的反復試探, 這不僅影響了模型性能, 還可能遺留潛在的漏洞; 另一方面, 基于CNN模型的現實應用在日常中已經大量部署, 如人臉識別、行人檢測和場景分割等, 但對于一些風險承受能力較低的特殊行業, 如醫療、金融、交通、軍事等領域, 可解釋性和透明性問題成為其拓展和深入的重大阻礙. 這些領域對CNN等深度學習模型有著強烈的現實需求, 但受限于模型安全性與可解釋性問題, 目前仍無法大規模使用. 模型在實際中可能犯一些常識性錯誤, 且無法提供錯誤原因, 導致人們難以信任其決策.
因此, 對CNN的理解和解釋逐漸受到人們關注, 研究者們嘗試從不同角度出發, 解釋CNN的特征編碼和決策機制. 表征可視化作為其中一種解釋方法, 采用基于特征重要性的解釋思路, 尋找輸入變量、特征編碼及輸出結果之間的相關性, 并以視覺展示的方式直觀呈現, 是一種較為直接的理解CNN的途徑. 本文對該領域的現有研究進行了系統性整理和回顧, 對其中涉及的相關概念及內容、典型方法、效果評估、應用等方面作了歸納總結, 著重介紹了可視化方法的分類及算法的具體過程. 最后, 分析了該領域仍存在的難點并展望了未來研究趨勢.
相關概念與研究內容
1.1.1
CNN
目前, CNN已成為基于深度學習的圖像識別領域應用最廣泛、效果最佳的網絡結構. 最早的CNN由LeCun等[9]于1998年提出, 用于手寫體數字識別. CNN的基本結構中含有輸入層、卷積層、全連接層及輸出層. 其中輸入層、全連接層、輸出層與其他網絡大致相同, 僅卷積層是CNN特有的結構.
展開 卷積神經網絡簡介 ¥5
卷積神經網絡 (CNN) 的優缺點
CNN 的優點:
擅長檢測圖像、視頻和音頻信號中的模式和特征。
對平移、旋轉和縮放不變性具有魯棒性。
端到端訓練,無需手動提取特征。
可以處理大量數據并實現高準確性。
CNN 的缺點:
訓練的計算成本很高,并且需要大量內存。
如果沒有足夠的數據或使用適當的正則化,則容易出現過擬合。
需要大量標記數據。
可解釋性有限,很難理解網絡學到了什么。
卷積神經網絡 – 常見問題解答
什么是卷積神經網絡 (CNN)?
卷積神經網絡 (CNN) 是一種非常適合圖像和視頻分析的深度學習神經網絡。CNN 使用一系列卷積和池化層從圖像和視頻中提取特征,然后使用這些特征對對象或場景進行分類或檢測。
CNN 的工作原理是什么?
CNN 的工作原理是將一系列卷積層和池化層應用于輸入圖像或視頻。卷積層通過在圖像或視頻上滑動一個小濾波器或內核,并計算濾波器和輸入之間的點積,從輸入中提取特征。然后,池化層對卷積層的輸出進行下采樣,以降低數據的維度并提高其計算效率。
CNN 和卷積有什么區別?
CNN(卷積神經網絡)是一種深度學習神經網絡,旨在通過使用卷積層提取特征來處理網格狀數據,例如圖像。
另一方面,卷積是 CNN 中的特定數學運算,它將過濾器(內核)應用于輸入數據(如圖像)以檢測邊緣或紋理等模式。
CNN 的基本原理是什么?
卷積神經網絡 (CNN) 的基本原理是通過使用卷積層從輸入數據(通常是圖像)中自動學習和提取分層特征。
展開 北航蔡國飆教授團隊:真空羽流智能化計算 | 航空學報
圖5 遠場(h = 18 m)時,軸線處的DSMC數值模擬結果和CNN-DSMC預測結果對比
近場(h ≤ 10 m)結果對比
圖 6(a)和(b)分別近場情況下月球探測器x方向速度和密度的變化曲線,范圍為-9 m到-1 m;其中,-9 m對應于月面位置,-1 m對應于月球探測器正下方與足墊同一高度的位置。結果表明,和遠場情況類似,CNN-DSMC計算得到的速度和密度與DSMC數值模擬結果基本一致;其平均相對誤差分別為6.0%和8.8%。
圖6 近場(h = 8.2 m)時,軸線處的DSMC數值模擬結果和CNN-DSMC預測結果對比
計算時間對比
表 1是遠場和近場情況下的DSMC和CNN-DSMC計算時間對比。DSMC數值模擬的計算總時間取的是訓練集算例運行的平均時間,使用的CPU型號為Intel Xeon E5-2670 v3 (2.3 GHz),使用240核并行計算。CNN-DSMC的計算基于GPU,型號為Nvidia Quadro RTX-A6000。GPU的架構使得CNN-DSMC計算可以同時處理多個算例,表格中分別展示了單個算例和多個算例的計算時間。結果顯示,遠場情況下,CNN-DSMC相比傳統DSMC的加速比從1.62×
10
5
到4.11×106之間變化;近場情況下,CNN-DSMC相比于DSMC數值模擬的加速比從6.06×
106
到9.03×
105
之間變化,都極大地提高了真空羽流的計算效率。
展開 
12篇論文看盡深度學習目標檢測史
2017: Cascade R-CNN
Cascade R-CNN: 探索高質量的目標檢測
當 FPN 探索如何設計一個更好的 R-CNN 頸部來使用主干特征時,Cascade R-CNN 研究并重新設計了 R-CNN 分類和回歸頭。底層的假設是簡單而深刻的: 我們在準備正的目標時使用的IOU值越高,網絡學會做出的false positive的預測就越少。然而,我們不能簡單地將IOU閾值從常用的0.5提高到更具侵略性的0.7,因為這也可能導致過多的負樣本出現在訓練中。Cascade R-CNN的解決方案是將多個檢測頭鏈接在一起,每個檢測頭都將依賴于前一個檢測頭的邊界框proposals。只有第一個檢測頭使用原來的 RPN proposals。這樣后面的頭便有效的模擬了 IOU 閾值的增加。
2017: Mask R-CNN
Mask R-CNN
Mask R-CNN并不是一個典型的目標檢測網絡。它被設計來解決一個具有挑戰性的實例分割任務,即為場景中的每個對象創建一個掩碼。然而,Mask R-CNN 展示了對 Faster R-CNN 框架的一個很好的擴展,反過來也激發了目標檢測的研究。其主要思想是在已有的邊界框和分類分支的基礎上,在 ROI pooling之后增加一個二進制掩碼預測分支。此外,為了解決原始的 ROI Pooling 層的圖像量化誤差問題,Mask R-CNN 還提出了一個新的 ROI Align 層,該層實際上使用了雙線性圖像重采樣。如你所料,多任務訓練(分割 + 檢測)和新的 ROI Align 層都有助于改進邊界框benchmark。
2018: PANet
用于實例分割的路徑聚合網絡
實例分割與目標檢測有著密切的關系,因此一個新的實例分割網絡通常也可以間接地為目標檢測分析研究帶來好處。
展開 基于深度學習的可解釋特征準確預測混凝土抗壓強度
為了進一步證明 CNN 的優越性,將其與三種流行的機器學習模型(包括支持向量機(SVM)、人工神經網絡(ANN) 和自適應提升 (Adaboost))進行了比較,所有這些模型都是使用相同的訓練開發的和測試集。圖 6顯示了三種機器學習模型和 CNN 在測試集上的性能。顯然,CNN 生成的預測大多接近于觀察到的抗壓強度,并且 CNN 的決定系數(R 2)在四個模型中最高。這四個模型的誤差指標(圖 7)也證實了 CNN 的性能最好。
圖6:(a) SVM、(b) ANN、(c) Adaboost 和 (d) CNN預測的實際抗壓強度和抗壓強度之間的關系。
圖7:四個模型的指標比較。
為了證明采用可解釋特征的優越性,使用不同的數據集開發了一個具有相同架構的額外 CNN 模型,其中僅包含無法解釋的特征。如圖8所示,具有無法解釋特征的 CNN 模型具有R20.881,低于具有可解釋特征的對應物(圖 5)。表 10比較了具有可解釋和不可解釋特征的 CNN 模型的誤差指標。在所有誤差指標中,具有可解釋特征的 CNN 模型的值低于具有無法解釋特征的模型,這表明可解釋特征更適合預測混凝土抗壓強度。
圖8:CNN使用 (a) 訓練集和 (b) 測試集的無法解釋的特征,計算實際抗壓強度和預測抗壓強度之間的關系。
Q5
文章有什么可取和不足之處?
邏輯結構:本文的outline呈現在下文:
1. Introduction
深度學習能夠開發良好的預測模型,將深度學習應用到混凝乳強度預測當中是可行的。
2.
展開 深入了解目標檢測深度學習算法的技術細節
綜上所述,R-CNN遵循以下步驟:
· 根據選擇性搜索創建區域建議(即,對圖像中可能包含對象的部分進行預測)。
· 將這些地區帶入到pre-trained模型,然后運用支持向量機分類子圖像。通過預先訓練的模型運行這些區域,然后通過SVM(支持向量機)對子圖像進行分類。
· 通過邊界框預測來運行正向預測,從而獲得更好的邊界框精度。
· 在預測過程中使用NMS去除重疊的建議。
R-CNN 網絡
不過,R-CNN也有一些問題:
· 該方法仍然需要分類所有地區建議,可能導致達到計算瓶頸——不可能將其用于實時用例。
· 在選擇性搜索階段不會學習,可能導致針對某些類型的數據集會提出糟糕的區域建議。
小小的改進:Fast R-CNN(快速R-CNN)
Fast R-CNN,顧名思義,比R-CNN快。它基于R-CNN,但有兩點不同:
· 不再向CNN提供對每個地區的提議,通過對CNN提供整幅圖像來生成一個卷積特性映射(使用一個過濾器將矢量的像素轉換成另一個矢量,能得到一個卷積特性映射)。接下來,建議區域被識別與選擇性搜索,然后利用區域興趣池(RoI pooling)層將它們重塑成固定大小,從而能夠作為全連接層的輸入。
展開 支持7塊RTX3090靜音級深度學習工作站硬件配置方案2021v2
+RNN
2
RTX3090
7塊
73472
249
1995
936
168
CNN+RNN
3
A6000
6塊
64512
240
1872
768
288
CNN+RNN
4
RTX3080
8塊
69632
238
1904
760
80
CNN
5
Tesla V100
16塊
81920
238
1760
653
192
CNN+RNN
6
RTX3090
6塊
62976
213
1710
936
144
CNN+RNN
7
RTX3080
6塊
52224
179
1428
760
60
CNN
8
RTX3090
5塊
52480
178
1425
936
120
CNN+RNN
展開