高解析度網絡,重新定義新一代視覺識別通用網絡結構。
2020 年 8 月 7 日,第五屆全球人工智慧與機器人峰會(CCF-GAIR 2020)在深圳正式開幕。
CCF-GAIR 2020 峰會由中國計算機學會(CCF)主辦,香港中文大學(深圳)、雷鋒網聯合承辦,鵬城實驗室、深圳市人工智慧與機器人研究院協辦。
作為中國最具影響力和前瞻性的前沿科技活動之一,CCF-GAIR 大會已經度過了四次精彩而又輝煌的歷程。
在大會第二天的「視覺智能城市物聯」專場上,微軟亞洲研究院首席研究員王井東分享了其在新一代視覺識別網絡結構上的研究成果。
王井東介紹,目前學界的網絡結構都是圍繞分類任務而發明,除了分類以外,在計算機視覺裡面還有其它的重要任務,比如圖像分割、人臉關鍵點的檢測、人體姿態估計、目標檢測等等。
王井東首先分享了分類網絡結構學習高解析度表徵的方式,是通過上採樣的方法。包括兩個步驟,第一個步驟是分類的網絡架構,表徵空間尺度開始比較大,然後慢慢變小;第二個步驟,通過上採樣的方法逐步從低解析度恢復高解析度。這樣的方法獲得的特徵空間精度較弱。
而王井東團隊研發的高解析度網絡架構(HRNet)沒有沿用以前的分類架構,也不是從低解析度恢復到高解析度,自始至終維持高解析度。
他們讓高中低解析度不停地交互,使得高解析度可以拿到低解析度語義性比較強的表徵,低解析度可以拿到高解析度的空間精度比較強的表徵,不停地融合,最終取得更強的高解析度表徵。
在人體姿態、分割、人臉關鍵點檢測、目標檢測等任務中,HRNet從參數量、計算量以及最終結果看,高解析度結構都非常有優勢。HRNet在人體姿態估計的任務上,已經成為標準的方法;在分割任務上,由於其更好的性能,也被大家廣泛使用。
以下是王井東大會現場全部演講內容,雷鋒網AI掘金志作了不改變原意的整理及編輯:
非常榮幸能夠在這裡跟大家分享我們的工作,今天我報告的題目是「高解析度網絡,一種面向視覺識別的通用網絡結構」。
在計算機視覺裡面,視覺識別是一個非常重要的領域,這裡面我列舉了幾種代表性的研究課題:圖像分類、目標檢測、圖像分割、人臉關鍵點的檢測和人體關鍵點的檢測。
從2012年以來,隨著AlexNet橫空出世,深度神經網絡在計算機視覺領域成為主流的方法。2014年,谷歌發明出了GoogleNet,牛津大學發明了VGGNet,2015年微軟發明了ResNet,2016年康奈爾大學和清華大學發明了DenseNet,以上都是圍繞分類任務而發明的網絡結構。
除了分類以外,在計算機視覺裡面還有其它的任務,比如說圖像分割、人臉關鍵點的檢測、人體姿態估計等等。
下一代的網絡結構是什麼樣的?是否適用於更為廣泛的視覺識別問題?
在解答這些問題之前,我們先了解分類網絡、我們為什麼提出這樣的問題,以及現在的分類網絡存在的問題。
LeNet-5分類網絡是1998年發明的一種網絡結構(如上圖),包括一系列減小空間大小的過程,具體來講就是把空間從大的特徵變成小的特徵,然後通過變換的向量,最後進行分類。
前面提到的幾個結構,包括GoogleNex、VGGNet、ResNet等等,都是通過這種方式,逐步減小空間的大小,最終得到一個低解析度的表徵。低解析度的表徵在圖像分類任務中是足夠的,因為在圖像分類裡面,只需要給一個全局的標籤,而不需要詳細的空間信息,我們稱之為空間粗粒表徵的學習。
但是在其它任務中,比如檢測,我們需要知道檢測框的空間位置,比如分割,我們需要每個像素的標籤,在人臉和人體的關鍵點的檢測中,我們需要關鍵點的空間位置,這樣一系列的任務實際上需要空間精度比較高的表徵,我們稱之為高解析度表徵。
目前業內學習高解析度表徵有幾個原則,一般是以分類的網絡架構作為主幹網絡,在此基礎上學習一些高解析度的表徵。
學習高解析度表徵,有一種叫上採樣的方法。包括兩個步驟,第一個步驟是分類的網絡架構,表徵開始比較大,然後慢慢變小;第二個步驟,通過上採樣的方法逐步從低解析度恢復高解析度。
常見的網絡架構,比如U-Net,主要應用在醫學圖像,SegNet主要是用於計算機視覺領域,這幾個結構看起來很不同,其實本質都一樣。
如此一來,解析度開始高,然後降低了,然後升高。在這個過程中,先失去了空間精度,然後慢慢恢復,最終學到的特徵空間精度較弱。
為了解決這個問題,我們提出了一種新型的高解析度表徵學習方法,簡稱為HRNet。HRNet可以解決前面提到的從AlexNet到DenseNet都存在的問題,我們認為下一個網絡結構是HRNet。
HRNet與以前的網絡結構不同,它不是從分類任務出發,它可以解決更廣泛的計算機視覺問題。
我們的目的是學習一個空間精度強的表徵,我們設計的HRNet不是沿用以前的分類結構,也不是從低解析度恢復到高解析度,而是從零開始,自始至終都維持高解析度,可以學到空間解析度較強的表徵。
這個結構是如何設計?作為對比,我們先分析分類的網絡結構原理。
在下圖的例子裡,有高解析度的卷積(箭頭代表卷積等的計算操作,這些框是表徵),有中等解析度的卷積,最終得到低解析度的表徵。
分類網絡中,這三路是串聯的,現在我們把這三路並聯,最終拿到一個高解析度的表徵。
大家也許會有疑問,三路是獨立的,除了輸入的相關聯之外,其它的都不產生關係,這樣會損失什麼?在低解析度方面,它可以學習到很好的語義信息,在高解析度裡,它的空間精度非常強,這三路之間的信息沒有形成互補。
我們採用的方法,是讓三路不停地交互,使得高解析度可以獲得低解析度語義信息較強的表徵,低解析度可以獲得高解析度的空間精度較強的表徵,不停地融合,最終取得更強的高解析度表徵。
簡單來講,以前的高解析度是通過升高、降低再升高獲得,我們通過將不同解析度的卷積由串聯變成並聯,自始至終保持高解析度,並且還加入不同解析度之間的交互,使得高解析度表徵和低解析度表徵的變強,獲得對方的優勢特徵,最終獲得非常強的高解析度表徵。
以上是設計方法,下面看看我們設計的網絡例子。
HRNet實際上固定了它的深度,把這個結構分成若干個模塊,每個模塊是由若干個可重複的組織設計出來的。比如第三個部分,它由4個模塊形成。
如何變化這個網絡結構適應不同的需求?
我們採用變化寬度的方式。與ResNet比,這個結構中的寬度小很多,比如之前ResNet的寬度是256,HRNet的寬度是32-48。正因為這樣的設計,我們最終得到的參數和計算複雜度與ResNet的結果是可比的。
下面了解下HRNet在不同任務中的實驗性能。
人體姿態估計中,每個圖片中人數很多,我們的任務是要找出每個人的關鍵點,並區分不同人的關鍵點。
做法有兩種,一種是自上而下(Top-Down),首先使用一種檢測器,把人檢測出來,然後每個人單獨做關鍵點的檢測。另外一種是自下而上(Bottom-Up),直接檢測關鍵點,然後進行一些聚類的操作,把不同人再分開來。
我們看看自上而下的方法的結果,下圖左邊是基於ResNet的方法,右邊是HRNet的方法,比較的指標是關鍵點位置尋找準確與否。我們的結果是74.9%,結果要好於ResNet,同時參數量上,ResNet是68.5,我們是28.5。通過進一步加寬HRNet網絡結構後,可以進一步提高結果。
這個方法自從2019年在CVPR發表以來,已經成為在人體姿態構建裡一個標準的網絡,一些文章或者比賽都會採用HRNet架構。
在分割任務中。採用街景分割的例子,街景分割在自動駕駛、無人駕駛、輔助駕駛中都非常重要。
以一個非常重要的數據集Cityscapes validation比較,其中,mIoU是衡量分割好壞的一個非常重要的指標,從下圖看到,HRNet-W40的結果優於其他方法,而體現計算量的GFLOPS指標中,HRNet是三位數,其他方法大多為四位數,HRNet計算量更小。在參數量、計算量上,HRNet的過程和最終結果都具有優勢,將網絡結構規模變大後,優勢進一步提高。
Cityscapes Test數據集的結果看,HRNet的表現也是最好的。
在今年4月份之前,我們在Cityscapes分割的榜單中排名第一。5月份,英偉達的一個新方法排名第一,了解過他們的方法後,發現它最終的結果是基於HRNet,再加上它的模塊,從這個角度看,說明HRNet的影響力在分割任務上逐步變大。
人臉的關鍵點檢測應用非常多,娛樂、短視頻中的美顏功能,都需要人臉關鍵點的檢測,定位出眼睛、鼻子等位置。
下圖展示的是在一個最新數據集上的結果,人臉關鍵點上有98個點,在測試數據集上,指標衡量的是預測的點與人工標註的點之間的差距,HRNet的數值比之前的都小,差距最小。除此之外還列出了6種不同複雜條件,比如人臉姿態的變化、表情的變化、光照、是否化妝、是否遮擋,圖片清晰程度,一系列的情況下,我們的結果都比以前的方法好。
下面再看我們的方法用在目標檢測任務上。我們需要把物體框出來,同時要預測框中的物體種類。
在最流行的Faster R-CNN框架裡,我們用HRNet和ResNet的方法進行對比,為保證公平,分成4組,在每組參數量和計算量可比的情況下進行對比。
前三組在Faster R-CNN上比較,最後一個在Cascade R-CNN上比較,藍色數值表示預測的整體好壞情況,從結果看,HRNet都遠優於ResNet。除此以外,HRNet有非常好的高解析度表徵,在大量存在的小物體上更有優勢。
實體分割中Instance Segmentation,需要表徵出物體的輪廓,而不僅僅是一個框,我們在Mask R-CNN中和ResNet對比,我們的表現有提高,尤其在小物體上體現更加明顯。當然,僅僅在Mask框架裡做不能說明問題,所以我們也在發表的研究論文裡列舉其他的方法,結果都比ResNet的表現好,這裡不一一列舉。
HRNet出來時,有人懷疑是否其參數量、計算量變大,事實上,我們並沒有增加參數量和計算量,或者說增加網絡結構的複雜度來提升性能,比如上圖中,各項參數中兩者計算量差不多,但是結果是HRNet更好。
下面我們看看分類。在視覺領域,預訓練非常重要,它需要幫網絡進行初始化,通過遷移學習應用到其他領域,或者給網絡結構做更好的初始化以幫助優化。
當初我們做這個網絡結構的目的是為了提出一個高解析度表徵,以幫助分類以外的任務。後來發現,在同等參數量和計算量基礎上,HRNet的結果比ResNet好。
2012年以來AlexNet、GoogleNet、VGGNet、ResNet、DenseNet等是為了做分類任務,HRNet除了可以做分類任務,且性能很好,還可以做分割、檢測、識別等等各種任務,面部檢測、行人的檢測、高空圖像識別,衛星圖象識別,也都有很好的效果。
HRNet去年10月推出後,被很多比賽的參賽者使用。比如去年ICCV keypoint and densepose比賽中,幾乎所有參賽選手都使用了HRNet,谷歌、商湯糰隊用HRNet做panoptic segmentation 和 openimage instance segmentation比賽,也取得了最好的效果。
最近大家對網絡結構搜索了解較多,既然有了搜索,為什麼還要有網絡結構設計?網絡結構設計實際上是為搜索提供了一個空間,這也是非常重要的。今年CVPR上的一篇來自谷歌的文章,它的出發點與HRNet非常相似,認為以前的網絡都是通過空間變大然後變小再恢復,這樣對一些識別和檢測任務非常不友好,他設計一個NAS的算法,來解決這個問題。
網絡結構除了以上所述HRNet一系列東西之外,還有很多非常重要的研究,比如怎麼利用人的常識幫助網絡設計,怎麼設計輕量化網絡,怎麼與計算機硬體聯繫一起。
計算機視覺中,怎麼為具體的任務設計網絡結構的研究也非常多。我給大家簡單介紹一下我們在ECCV 2020和CVPR 2020的關於Head Architecture Design的工作,主要研究如何把人的常識加進設計中。
這裡給大家講一下語義分割,語義分割要預測每個像素點的標籤。深度學習在該領域內的應用非常廣泛,FCN是一個標準方法,一個圖像經過一個網絡結構,最後預測像素點的標籤。由於每個像素點本身沒有標籤,它的標籤來自對周圍信息的判斷,所以通常會加上上下文的信息。
在介紹我們的方式之前,大家可以了解下以前的方法。
以前的方法主要是Spatial context(空間上下文)比如有PPM、ASPP,它是在像素點周圍有規律地選出一些像素點,以求得當前像素點表徵,進而進行標註,我們把它稱為空間式。
我們的方法是Object context(對象上下文),它的出發點非常簡單,正如前面提到,像素點本身沒有標籤,標籤來自於這個像素點所在的物體,比如下圖紅色的點,這個位置很難有標籤,它的標籤來自於這個車。運用這個出發點,我們思考路徑是:能不能拿到這個紅色像素點所在的物體特徵,來幫助表達這個紅色的像素點。基於這個出發點,我們提出了OCR方法。
OCR的方法涉及雞生蛋還是蛋生雞的問題。我們事先並不知道分割,是先估計一個粗略的分割,有一個當前的表達,比如下圖,取紅色像素點的特徵,把它輸入到模塊裡,得到紅色像素點當前的特徵和其它的若干特徵(K object regions),然後把這些特徵經過變換,算出它們之間的相似度,根據相似度,經過加權池化(weighted pooling),然後得到像素點的表徵,根據這個表徵以及以前的表徵一起進行預測。
從數據看,HRNet+OCR的方法的結果為82.5,這是發表文章時業界最好的結果。
另外簡短介紹一下自下而上姿態預測(Bottom-Up Pose Estimation)中的工作。
它不需要人體的檢測就可以直接預測人體的關鍵點。
其中有個關於人體大小不一的問題,以前的方法沒有確切的解決方式,我們提出「高解析度特徵金字塔」的方法。把圖形輸入到HRNet中做一個表徵,從小的特徵中分辨大的,從大的特徵裡面分辨小的,這個方法的結果表現也是非常好。
最後簡單總結一下,我講的主要是HRNet,作為一個通用的網絡結構,給大家展示了在視覺分割、檢測、人體關鍵點、人臉關鍵點的預測等任務,一系列的結果都比ResNet好,目前已經成為一個標準的方法之一。除此以外,我們基於具體任務的網絡結構設計,比如加上OCR的方法、高解析度特徵金字塔(Higher-Resolution FeaturePyramid)的方法取得的效果都非常好。
我們也提供了代碼。
第三屆「中國人工智慧安防峰會」9月5日正式啟幕