2020 年 8 月 7 日,第五屆全球人工智能與機器人峯會(CCF-GAIR 2020)在深圳正式開幕。
CCF-GAIR 2020 峯會由中國計算機學會(CCF)主辦,香港中文大學(深圳)、雷鋒網聯合承辦,鵬城實驗室、深圳市人工智能與機器人研究院協辦。
作為中國最具影響力和前瞻性的前沿科技活動之一,CCF-GAIR 大會已經度過了四次精彩而又輝煌的歷程。
在大會第二天的「視覺智能?城市物聯」專場上,微軟亞洲研究院首席研究員王井東分享了其在新一代視覺識別網絡結構上的研究成果。
王井東介紹,目前學界的網絡結構都是圍繞分類任務而發明,除了分類以外,在計算機視覺裏面還有其它的重要任務,比如圖像分割、人臉關鍵點的檢測、人體姿態估計、目標檢測等等。
下一代的網絡結構是什麼樣的呢?是否適用於更為廣泛的視覺識別問題?
王井東首先介紹了分類網絡結構學習高分辨率表徵的方式,是通過上採樣的方法,包括兩個步驟,第一個步驟是分類的網絡架構,表徵空間尺度開始比較大,然後慢慢變小。第二個步驟,通過上採樣的方法逐步從低分辨率恢復高分辨率。這樣的方法獲得的特徵空間精度較弱。
而王井東團隊研發的高分辨率網絡架構(HRNet)沒有沿用以前的分類架構,也不是從低分辨率恢復到高分辨率,自始至終維持高分辨率。
他們讓高中低分辨率不停地交互,使得高分辨率可以拿到低分辨率語義性比較強的表徵,低分辨率可以拿到高分辨率的空間精度比較強的表徵,不停地融合,最終取得更強的高分辨率表徵。
在人體姿態、分割、人臉關鍵點檢測、目標檢測等任務中,HRNet從參數量、計算量以及最終結果看,高分辨率結構都非常有優勢。HRNet在人體姿態估計的任務上,已經成為標準的方法;在分割任務上,由於其更好的性能,也被大家廣泛使用。
以下是王井東大會現場全部演講內容,雷鋒網作了不改變原意的整理及編輯:
注:完整版演講PPT可關注公眾號「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網絡結構後,可以進一步提高結果。??
這個方法自從去年在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 Estimatiom)中的工作。
它不需要人體的檢測就可以直接預測人體的關鍵點。
其中有個關於人體大小不一的問題,以前的方法沒有確切的解決方式,我們提出“高分辨率特徵金字塔”的方法。把圖形輸入到HRNet中做一個表徵,從小的特徵中分辨大的,從大的特徵裏面分辨小的,這個方法的結果表現也是非常好。
最後簡單總結一下,我講的主要是HRNet,作為一個通用的網絡結構,給大家展示了在視覺分割、檢測、人體關鍵點、人臉關鍵點的預測等的原理,一系列的結果都比ResNet好,目前已經成為一個標準的方法。除此以外,我們藉助基於具體任務的網絡結構設計,比如加上OCR的方法、高分辨率特徵金字塔(Higher-Resolution Feature Pyramid)的方法取得的效果都非常好。
我們也提供了代碼。
雷鋒網雷鋒網雷鋒網