人工智慧・圖像分割(2)

2021-03-02 白草紅葉黃鴨

全卷積神經網絡的英語名字是Fully Convolutional Networks,簡稱FCN。不過,本黃鴨強烈建議寶寶們不要使用這個簡稱,因為它很可能會被誤解成Fully Connected Networks,也就是全連接神經網絡。在《人工智慧・循環神經網絡》一文中,本黃鴨曾經說過,之所以全連接神經網絡不適合處理一維、二維連續數據,是因為它沒辦法提取到足夠的、與順序相關的特徵。所以,以二維連續數據作為輸入的圖像分割問題絕不可能只用全連接層就取得比較高的平均準確度。

所謂「全卷積神經網絡」,顧名思義,就是只含卷積層、不含全連接層的神經網絡。寶寶們應該對這種網絡並不陌生,因為在《人工智慧・Multi-task CNN》一文中出現過的Proposal Net(P-Net)就是一種只含有卷積層(和池化層)的神經網絡,它能從圖像中有效地提取特徵,推斷出多個人臉檢測的候選框。

然而,P-Net與圖像分割問題的輸出肯定是不同的。前者的輸出是face classification、bounding box regression,以及facial landmark localization;而後者的輸出是一張與原圖大小相等的分類圖。在一般情況下,卷積運算後得到的feature map的尺寸都比運算前的feature map或者原圖小,除非把參數padding的值設置為「same」,才能得到與原圖大小相同的output feature map。這是因為當padding = 「same」的時候,會先在圖像的外面補上幾圈零,再做卷積運算。

那麼,全卷積神經網絡中的、參數padding的值是不是都必須設置為「same」呢?答案是否定的,因為論文《Fully Convolutional Networks for Semantic Segmentation》的作者在文中寫道:「our approach draws on recent successes of deep nets for image classification and transfer learning」。這句話的中文意思是:全卷積神經網絡將以遷移學習的方式,充分地借鑑在圖像分類問題中準確度比較高的深度神經網絡。

所謂「圖像分類問題」,就是推斷圖像中物體的類別,例如是鴨還是鵝、是三種鳶尾花中的哪一種、是笑臉還是哭臉、是新冠肺炎還是其他疾病,等等。也就是說,本黃鴨以前用VGG16、ResNet、Google Net解決的問題基本都是圖像分類問題。這些神經網絡的輸出會比輸入的圖像小很多,要麼是一維的,要麼與one-hot encoding之後的、標籤的維數相等。

所謂「遷移學習」,就是先找一個用公開數據集訓練好的深度學習模型,再把模型的data argumentation/ CNN and pooling/ 特徵提取的部分直接拿過來用,得到一個或多個比輸入圖像小很多的feature map(s)。然後,把這些feature map(s)輸入到自己設計的深度學習網絡中。最後,用新數據集來訓練自己設計的網絡。

雖然基本概念全搞清楚了,但現在距離代碼的編寫仍然還有幾萬光年。

One problem is我們應該選用圖像分類問題的哪個預訓練模型來做遷移學習呢?Theoretically speaking,應該先充分地了解儘可能多的預訓練模型,知道它們是用怎樣的公開數據集訓練出來的,然後選用數據集與圖像分割問題的數據集最為相似的。Practically speaking,我們可以建立並訓練多個模型,看它們在訓練集、測試集、驗證集上的平均準確度或者平均交並比,分割效果最好的就是我們應該選用的。

圖1:evaluation of fully convolutional networks | 圖片來源:論文

從上圖中,我們可以看出,論文的作者做了一些實驗,分割效果最好的是VGG16,其次是GoogleLeNet和AlexNet。

這裡還有一點需要補充,那就是VGG16的分類全連接層不是被刪掉了,而是被改成了1* 1卷積。在前文中,本黃鴨曾經說過,1* 1卷積的作用是升降維,即在保持長度和寬度不變的情況下,改變feature map的通道數;也就是說,輸入B* W* H* C,輸出B* W* H* C』。

圖2:transforming fully connected layers into convolution

layers | 圖片來源:論文

And the other problem is我們應該如何設計深度學習網絡,才能放大feature map(s),使得輸出與原圖的大小相同呢?答案是up sampling

First and foremost,請寶寶們千萬不要記錯,池化層的作用是下(降)採樣,在《人工智慧・提升訓練速度》一文中介紹過的反卷積才是上採樣。由此可見,全卷積神經網絡與U-Net在結(眉)構(眼)上(處)有幾分相似,因為它們都是先下採樣,再用反卷積做上採樣。

Furthermore,上採樣的方法包含但不僅限於反卷積。鑑於這個問題可能會在面試中被問到,所以還是要稍微了解一下的。

如下圖所示,只要使用初等數學的方法,就能計算出P點的坐標。

P點可以被視為插入到Q11、Q12、Q21、Q22中間的一個像素點。

之所以不是線性插值,而是雙線性插值,是因為圖像是二維連續數據,要在X和Y方向上分別差值。

這種上採樣方法不僅簡單快捷,而且還能取得不錯的效果。

圖3:在二維空間內,已知Q11、Q12、Q21、Q22的坐標,yy2 = 0.5* yy1,xx2 = 0.6* xx1,求P點坐標 | 圖片來源:網絡

圖4:反最大池化、反平均池化 | 圖片來源:網絡

儘管解決了兩個重要的問題,可以開始編寫代碼了,但是論文的作者會滿足於這樣的模型嗎?答案是否定的,因為在當年寫論文的時候,skip connection已經走紅了,所以與(趕)時(時)俱進(髦)的作者就把這種網絡結構加到了自己的模型中,形成了fully convolutional networks with multi-layer fusion。

圖5:fully convolutional networks with multi-layer fusion | 圖片來源:論文

圖6:evaluation of fully convolutional networks with multi-layer fusion | 圖片來源:論文

從上圖中,我們可以看出,有且僅有FCN-32s模型沒有用到skip connection architecture,直接把VGG16特徵提取部分輸出的feature map上採樣到了原圖的大小,與本黃鴨在前一段文字中描述的模型完全相同。然而,實驗證明,FCN-32s的分割效果遠遠比不上FCN-8s。

所謂「FCN-8s」,就是把VGG16特徵提取部分輸出的feature map做兩倍上採樣,然後和pool4層的輸出element-wise地加在一起;再做兩倍上採樣,接著和pool3層的輸出element-wise地加在一起;最後做八倍上採樣,使得輸出圖像的大小與原圖相等。

圖7:VGG16

值得注意的是,with multi-layer fusion,fully convolutional networks與U-Net在結(眉)構(眼)上(處)又多了幾分相似,只是在前者的skip connection是把兩個矩陣element-wise地加在一起,而後者是把兩個矩陣concatenate在一起。

於是,問題來了,除了具體的計算方法和步驟之外,矩陣的element-wise加法與concatenation之間有沒有區別呢?Theoretically speaking,我們應該關注的是實驗結果,誰的平均準確度或者平均交並比高就選誰。But in reality,在做element-wise加法之前,必須先裁減矩陣,因為二倍上採樣輸出的feature map的形狀與pool4輸出的形狀是不同的。

欲知為何不同,且聽下回分解。

往期回顧

點擊圖片,傳送到《人工智慧・圖像分割(1)》 | 圖片來源:網絡

點擊圖片,傳送到《人工智慧・CT影像診斷新冠肺炎》 | 圖片來源:網絡

點擊圖片,傳送到《人工智慧・醫療文本分類》 | 圖片來源:網絡

相關焦點

  • 人工智慧・圖像分割(5)
    在《人工智慧・物體識別模型(後篇)》一文中,寶寶們曾經看到過,U-Net所在的論文是《U-Net: Convolutional Networks for Biomedical Image Segmentation》,它和Mask RCNN一樣,都能解決圖像分割問題。
  • 經驗 | 圖像分割的實用技巧
    ,涵蓋數據增強、建模、損失函數、訓練技巧等多個方面,不失為一份可以參考的圖像分割技巧資料。圖像分割是圖像處理和計算機視覺的熱點之一,是根據圖像內容對指定區域進行標記的計算機視覺任務。它基於某些標準將輸入圖像劃分為多個相同的類別,簡言之就是「這張圖片裡有什麼,其在圖片中的位置是什麼?」以便提取人們感興趣的區域。圖像分割是圖像分析和圖像特徵提取及識別的基礎。
  • 圖像分割讀完這十篇論文就夠了!
    是圖像理解的基礎,也是圖像處理中最困難的問題之一。近些年來隨著深度學習技術的逐步深入,圖像分割技術有了突飛猛進的發展,與之相關的場景物體分割、人體前背景分割、人臉人體Parsing、三維重建等技術已經在無人駕駛、增強現實、安防監控等行業得到了廣泛的應用。
  • 圖像語義分割
    圖像語義分割是計算機視覺中十分重要的領域。上圖為語義分割的一個實例,其目標是預測出圖像中每一個像素的類標籤。圖像語義分割是圖像處理和計算機視覺技術中關於圖像理解的重要的一環。語義分割對圖像中的每一個像素點進行分類,確定每個點的類別(如屬於背景、邊緣或身體等)需要和實例分割區分開來。語義分割沒有分離同一類的實例;它關心的只是每個像素的類別,如果輸入對象中有兩個相同類別的對象,則分割本身不會將它們區分為單獨的對象。
  • 人工智慧方向—智能圖像識別技術(一)
    1.人工智慧的核心驅動力人工智慧的核心驅動力是機器學習。而深度學習是機器學習的一個特定分支。我們要想充分理解深度學習,必須對機器學習的基本原理有深刻的理解。機器學習算法是一種能夠從數據中學習的算法,然後我們所謂的「學習」是什麼意思呢?
  • 基於OpenCV的圖像分割處理!
    圖像閾值化分割是一種傳統的最常用的圖像分割方法,因其實現簡單、計算量小、性能較穩定而成為圖像分割中最基本和應用最廣泛的分割技術。通常情況下對於色彩均衡的圖像,直接將閾值設為127即可,但有時圖像灰度級的分布是不均衡的,如果此時還將閾值設為127,那麼閾值處理的結果就是失敗的。所以需要找出圖像的最佳的分割閾值。OTSU就是獲得最佳閾值的方法。OTSU(大津法)是一種確定圖像二值化分割閾值的算法,由日本學者大津於1979年提出。
  • 基於注意力機制改進U-Net的醫學圖像分割算法
    近年來,由於深度學習方法的迅速發展,基於深度學習的圖像分割算法在醫學圖像分割領域取得了顯著的成就。其中依賴於編碼器-解碼器體系結構的U-Net被研究人員廣泛使用。但是U-Net網絡在下採樣的過程中卷積、池化都是局部算子,要獲取全局信息就需要深度編碼器,這樣會引入大量的訓練參數,並且丟失更多圖像的空間信息。而在上採樣過程中使用反卷積、反池化很難進行空間信息的恢復。
  • 圖像分割方法介紹及應用
    從數學角度來看,圖像分割是將數字圖像劃分成互不相交的區域的過程。圖像分割的過程也是一個標記過程,即把屬於同一區域的像素賦予相同的編號。現有的圖像分割方法主要分以下幾類:基於閾值的分割方法、基於區域的分割方法、基於邊緣的分割方法、基於特定理論的分割方法、基於小波變換的分割方法以及基於神經網絡的分割方法。
  • 「專利解密」人工智慧如何進行圖像處理
    集微網消息,谷歌的定製張量處理單元(TPU)晶片是谷歌雲平臺客戶去年使用的最新一代晶片,專門用於AI的推斷和訓練任務,比如圖像處理、自然語言處理和強化學習。那AI圖像處理到底是如何實現的呢?今天小編選取了OPPO在2018年2月11日提交的一篇發明專利,該發明專利公開了一種圖像處理方法和裝置、電子設備、存儲介質,據此向大家介紹OPPO所研發的AI圖像處理技術。OPPO研發的AI圖像處理技術的原因是什麼呢?
  • Facebook 開源三款圖像識別人工智慧軟體
    Facebook今天開源了三款人工智慧圖像分割(Image Segmentation)軟體,分別是DeepMask、SharpMask和MultiPathNet,三款工具相互配合完成一個完整的圖像識別分割處理流程,DeepMask
  • 深度學習中的圖像分割:方法和應用
    基於人工智慧和深度學習方法的現代計算機視覺技術在過去10年裡取得了顯著進展。如今,它被用於圖像分類、人臉識別、圖像中物體的識別、視頻分析和分類以及機器人和自動駕駛車輛的圖像處理等應用上。許多計算機視覺任務需要對圖像進行智能分割,以理解圖像中的內容,並使每個部分的分析更加容易。
  • 圖像分割研究者的煩惱與未來
    這塊做的工作是不是很少,可能思考周期長且偏理論和偏應用的研究者交流不充分吧~2.知乎搜「圖像分割 組合優化」,只搜到叫獸一個比較系統的回答,其他都基本純DL,為致敬傳統算法,在講述圖像分割難點和未來前先貼下叫獸的回答~3.本渣心中較新較棒的融合傳統算法的seminar是Combinatorial Optimization in Machine Learning and Computer Vision
  • 使用PixelLib來實現圖像分割
    目前流行的計算機視覺技術如圖像分類、目標檢測等已被廣泛應用於解決許多計算機視覺問題。在圖像分類中,對整個圖像進行分類。在目標檢測中,則是通過檢測圖像中單個目標的位置來擴展圖像分類。圖像分割一些計算機視覺問題需要讓計算機對圖像內容有更深入的理解。分類和目標檢測可能不適合解決這些問題,我們非常需要一種有效的技術來解這類的計算機視覺問題,圖像分割技術應運而生。每個圖像都由一組像素值組成。
  • 數字圖像處理中常用圖像分割算法有哪些?
    1.多數的圖像分割算法2.圖像邊緣分割3.圖像閾值分割4.基於區域的分割5.形態學分水嶺算法多數的圖像分割算法 均是基於灰度值的不連續和相似的性質。在前者中,算法以灰度突變為基礎分割一幅圖像,如圖像邊緣分割。假設圖像不同區域的邊界彼此完全不同,且與背景不同,從而允許基於灰度的局部不連續性來進行邊界檢測。
  • 常用圖像閾值分割算法
    下面對各種方法進行混合展示:第一類:全局閾值處理圖像閾值化分割是一種傳統的最常用的圖像分割方法,因其實現簡單、計算量小、性能較穩定而成為圖像分割中最基本和應用最廣泛的分割技術。它特別適用於目標和背景佔據不同灰度級範圍的圖像。難點在於如何選擇一個合適的閾值實現較好的分割。
  • AI|圖像分割研究者的煩惱與未來
    圖像分割是CV領域的經典難題與熱點所在,了解圖像分割的發展、瓶頸與未來方向對CV研究有著重大意義。知乎搜「圖像分割 組合優化」,只搜到叫獸一個比較系統的回答,其他都基本純DL,為致敬傳統算法,在講述圖像分割難點和未來前先貼下叫獸的回答~當前主流的圖像分割研究方向都有哪些?
  • 快速圖像分割的SuperBPD方法
    利用這一特性將圖像分割成超像素點,這些超像素點是一種新的具有魯棒方向一致性的信息性超像素點,可以快速分組分割區域。在BSDS500和Pascal背景下的實驗結果證明了該算法在分割圖像時的準確性和效率。超級bpd在相鄰的超級bpd之間提供了魯棒的方向相似度,可以實現高效的圖像分割。本文提出了一種基於方向相似度的由粗分到精細的Super-BPD分割算法,在分割精度和分割效率之間取得了很好的平衡。
  • 3D CNN--三維醫學圖像分割新思路
    2.2 基於三維空間VB概率圖的VBs變形模型分割VBs的分割基於3D MR圖像中的變形網格M={V,F}(由頂點V和面F組成),方法是通過迭代最小化外部能量來驅動M移動到VB邊界,並且根據VBs的訓練集約束M的內部能量。
  • 【動手學計算機視覺】第三講:圖像預處理之圖像分割
    提到圖像分割,主要包含兩個方面:首先,介紹一下非語義分割。非語義分割在圖像分割中所佔比重更高,目前算法也非常多,研究時間較長,而且算法也比較成熟,此類圖像分割目前的算法主要有以下幾種:閾值分割是圖像分割中應用最多的一類,該算法思想比較簡單,給定輸入圖像一個特定閾值,如果這個閾值可以是灰度值,也可以是梯度值,如果大於這個閾值,則設定為前景像素值,如果小於這個閾值則設定為背景像素值。
  • 基於圖像的目標區域分割算法研究
    和Lantuejoul等人將其引入數字圖像處理,該算法是一種基於數學形態學的分割方法。  基於標記的分水嶺算法實現步驟:  ①對圖像進行去噪處理;  ②對圖像進行梯度處理,計算處理後圖像中各「積水盆地」位置;  ③使用imextendedmin函數獲得標記符;  ④使用watershed函數對標記好的圖像進行分割處理;  ⑤合併過分割區域。  傳統方法與改進方法處理效果如圖5所示。