【CNN】曠視研究院解讀Light-Head R-CNN:平衡精準度和速度,light-headr-cnn

來源:互聯網
上載者:User

【CNN】曠視研究院解讀Light-Head R-CNN:平衡精準度和速度,light-headr-cnn
主講人:黎澤明 | 曠視研究院研究員
屈鑫 編輯整理
量子位 出品 | 公眾號 QbitAI

12月20日晚,量子位·吃瓜社聯合Face++論文解讀系列第三期開講,本期中曠視(Megvii)研究院解讀了近期發表的Light-Head R-CNN論文。

本篇論文所提出的Light-Head R-CNN,構造了輕量頭部R-CNN網路,在COCO資料集上超越當前最好水準,同時還保持了很高的時間效率。

本期主講人為曠視研究院研究員黎澤明,同時也是COCO 2017 Detection競賽隊主力隊員、Light-Head R-CNN論文一作。

量子位應讀者要求,將精彩內容整理如下:


 分享視頻回放

Light-Head R-CNN這篇論文主要是探討了R-CNN如何在物體檢測中平衡精確度和速度。論文中提出了一種更好的two-stage detector設計結構,不僅提升精度,同時使除去base model的那部分模型(head)的複雜度變得更加的靈活和可控。

基於resnet101我們達到了新的state-of-the-art的結果40.6,超過了mask rcnn和retinanet。同時如果是用一個更小的網路,比如類似xception145M的小模型,light-head 達到了100+ FPS,30.7mmap,效率上超過了ssd和yolo。

我們首先嘗試著去找出two-stage檢測方法在速度上不夠好的原因。其實two-stage和single-stage都能達到非常高的精度。但在速度方面,single-stage往往更具有優勢,比如ssd和yolo。在這篇論文中,我們想表明通過精心的設計,兩階段的物體檢測器也能做到特別快,而且精度可以做到更高。

回顧paper結果

相比state-of-the-art 演算法擁有更高的精度和效率。

紅色的三角形曲線對應論文跑出來的結果。橫軸是inference time,就是你的物體檢測器在testing時候的速度,單位是毫秒;縱軸是COCO的MMAP,從0.5到0.95,這個範圍內取一個平均的Map。最左邊這個紅色的三角形是用一個小模型跑出來的結果,中間的這個三角形是用ResNet-50跑出來的結果,最上面的紅色三角形是用ResNet-101跑出來的結果。可以看到不管是從精度還是效率,論文中所做出來效果達到了state-of-the-art。 

關於文章的標題:有網友熱心的取了光頭r-cnn的綽號,我們的方法其實沒有“琦玉老師”那麼強,所以內部給它取了一個綽號叫做子彈頭。如果從這條結果曲線上來看的話,其實 Light-Head R-CNN它的速度和精度都是特別高的。總結起來這個方法應該是一個快准狠的一個方法。

light-head r-cnn非常靈活和通用,這個在後面講我那個方法的結構的時候會有所體現。而且架構也非常統一,在light-head rcnn 的角度下,faster 和rfcn結構其實很類似。

另外需要注意的是,我們是在titan xp上測試的,相比老系列的titan x,我們的結果會慢一些,但依然是在藍色和綠色曲線的上方。 然後測試階段使用1卡一batch。

物體檢測的兩大類

現在的物體檢測比較通用的大概能分為兩類:single stage的物體檢測;two stage的物體檢測方法。

two stage物體檢測是基於proposal的,經典的就是R-CNN這一個系列的檢測方法;而single stage不依賴於proposal,例如基於anchor的 SSD方法。所以single stage在結構上會少一個proposal的predictor。Two stage往往會引入額外的計算量來對proposal,也就是所謂的ROI進行迴歸和分類。

也就是說Two-stage的detector比one stage多了一步,對proposal的迴歸和分類器(R-CNN)。如果單純說速度,two-stage 肯定是慢於one-stage的.但是諸如retinanet和ssd的single-stage detector也存在一些問題,就是需要對每個anchor進行分類,想比two-stage的rpn而言,anchor預測的channel數會增加。

而在two stage中,第一個stage只是做一個二分類,它的channel就不會很多。 同時如果我們降低第二個stage,也就是ROI預測的部分的複雜度,直到相比於前面的base model計算量達到可以忽略不計的程度,那是不是我們也能說第二個stage對網路的速度沒有太大的影響。 這樣在總體的複雜度上就能和single stage的檢測效率差不太多了。

所以這篇論文要探討一個問題,就是怎麼樣設計第二個stage?就目前情況而言,第二個stage 太厚重了。

我們的結論是:在一般的情況下,兩階段的檢測方法會在精度更具優勢,但是因為它引入了比較厚重的第二個階段,所以對速度會有一點影響。但相比one-stage物體檢測,如果兩階段檢測對精度有所提高,我們就能犧牲更多的精度去換取速度的提升。

為什麼這麼說?因為比速度都是固定的精確度的情況下,如果能達到同樣的精確度,速度比另一種方法快,這個就是比較合理情況。在論文的後半部分提到會用一個小模型來替換前面的base model,就是因為小模型它會犧牲一定的精確度來提升效能。

也就是說在同樣的精確度的情況下,速度如果能和single stage相匹敵,那麼two stage依然是有它的優勢。

所以如果能把第二個stage的計算量給減下去,而且相比single stage而言,性價比足夠高,那麼就可以考慮引入第二個stage。

如何提高速度

我們回顧一下Fast和R-CNN,其實它兩個大體上結構都差不太多,一個是把計算量放在了ROI操作的後面,一個是把計算量放在了ROI操作的前面。也就是在Head那部分,其實他們兩個都引入了一些比較大的計算量。

先具體分析下導致Faster R-CNN 和R-FCN在小模型上不夠快的原因。Faster R-CNN 用兩個厚重的fc(或者resnet 的第5個stage)做proposal的預測,而R-FCN則通過製造了一個 (類別數x7x7)channel的大score map。 除去basemodel的那部分,兩個方法都引入了比較大的計算量。

基於前面的觀察,我們設計了更靈活通用的架構。裡面最重要的點,就是把pooling的feature map變得特別薄。為什麼要把它變薄呢?因為Head那一部分,複雜度有兩個因素決定:pool的feature map的厚度;以及對pool出來的feature進行分類和迴歸的那一部分,如果這部分邏輯比較多,它依然會對於整體的網路效率有所影響。

然後涉及到一個問題:pooling的feature map能不能變得很薄?

我們做過一些驗證的實驗。最早的時候在原本的R-FCN上做了一次實驗。我們試過把它壓到10×P×P,相當於把原來3900多個channel,壓到了490個channel。然後發現掉的點幾乎沒有。我們在VOC上做過一系列的實驗,壓成10×P×P是根本不會掉點的。在COCO上面只會掉零點幾,再把它壓得更多一點,壓成5×P×P也只是掉零點幾。

這個地方補充一句,feature map被壓薄了之後,是沒辦法直接Average voting出來最後的結果的。但是可以通過在後面加一個到81類的全串連層來出最後的結果。

Table 中的B1是原來的 R-FC baseline 32.1,然後直接加10×P×P的feature map,實現出來有31.4,只會低零點幾個點。

B2是reproduce的RFCN baseline,是用FPN paper中的setting,另外講R-CNN中regression的loss 乘了兩倍。 基於B2即便是減到10×P×P,MMAP也是掉了零點幾。 其實如果把它減到5×P×P的channel的話,結果和減到10×P×P也差不太多,和10×P×P相比不到0.2的損失。

本來也想做一組基於faster R-CNN的把feature map變薄的實驗。但是這個實驗其實不能直接這麼比。 這是為什麼呢?因為第二個stage的兩個全串連層計算量挺大的,不能直接把pooling的feature map給減小;即便是要減小,也要把第二個stage的計算量給砍下來。本來pool的feature就比較薄,如果再引入一個比較厚重的第二個stage,這個網路就會變得很突兀。 然後和faster的比較可以和後面加入了cheap R-CNN的結果上得到。

Head的第二個部分,也就是在第二個stage的預測部分,我們引入了一個額外的全連結層,大概是2048個channel。兩個組合起來,就是文章裡面所謂的Light-Head的那部分了,其實這個時候Head已經變得更加的靈活和可控。因為pooling的feature map很薄了,所以可以上一個比較大一點的卷積層,這個也會帶來一點點效能的提升。

這個表對比了下現在市面上的baseline,我們的結果在單尺度訓練下是39.5,multiscale-train是40.8,超過了以往的所有state-of-the-art,比如retinanet和mask rcnn。 我們也嘗試了加入feature pyramid,大概是41.5。

講講得到這個結果的過程。前面的baseline已經達到了37.7,然後把pooling做一個alignment,大概能漲1.3個點;我們在訓練的時候用的是0.3的NMS,換成0.5之後,能漲0.5左右;然後加multiscale train也能漲一個點。也就是最後的40.8的結果。

我們設計的初衷,就是要讓第二個stage變得更加靈活和可控。所以又試了另外一種方法:把前面的base model部分替換成一個比較小的模型。然後設計了一個145兆的一個類似xception的網路。

大模型和小模型基本上沒什麼太大的區別,比較大的區別是在第五個stage:大模型是用了atrous algorithm,小模型沒有用。小模型把RPN convolution數砍到了只有256。小模型的結果如下表,可以看到Light-head r-cnn在效率上超過了所有的速度模型包括ssd和yolo。

其實Light-Head R-CNN還可以繼續砍,我們就又補了一些新的實驗,把pooling的feature map channel砍到5×P×P,結果沒什麼變化。然後kernel也沒有必要用15那麼大,減到7結果也不會掉點。即便是把出feature map那個大kernel扔掉,直接用1×1,精確度也不會掉太多,也就一個點以內。

所以如果使用Light-Head,它的第二個stage(除去base model那部分Head)複雜度就會更加的可控,以及更加的靈活。這是我們最後跑的大模型以及小模型的結果對比的範例圖。

最後放一段大模型和小模型的檢測對比的視頻。

 xception145 res101

一則招人硬廣:
希望加入曠視科技一起登上CV巔峰的同學可以投簡曆至俞剛:yugang@megvii.com,長期招聘演算法實習生。實習優秀者,更有直接跳過面試階段,入職megvii研究院的機會。Q&A

速度上來說,是簡化Head提升更多還是簡化base model的提升更多?

如果你是resnet 101這樣大網路,即使把後端減得特別小,也不會對你的網路速度提升特別多,因為有很大的計算量是在base model的那部分。在這樣的前提下,你就需要先把你的base model給砍得特別小,比如把它做到145M這樣的一個很高效的Xception的網路。如果是在小模型情況下,就需要簡化Head。需要根據不同的情況下,具體來比較兩種方法。

這個會開源嗎?

肯定是會開源的,我們這次的實驗結果中所有的大模型結果都出來了,但是還有一小模型細節需要調試一下,因為TensorFlow和曠視自己的平台有一些差異的地方。

為什麼Light-Head可以比two-stage要好?

Light-Head的結果比R-FCN和Faster R-CNN這樣的two-stage結果要高。這個是怎麼樣達到比別人高的呢?相比R-FCN,我們其實是在第二個stage上加了一個廉價的只有一個全聯結層的子網路,這個子網路能提1.8個點。在前面我們還加了一個比較大的kernel,因為我們pooling的feature map比較薄,所以可以上一個比較大的kernel size,然後這個也會對你的結果提0.6個點左右(對faster也同樣會漲點)。

ROI的數量設多少?

我們用的是一千個ROI做測試。Light-Head R-CNN對ROI的數量的敏感度是介於R-FCN和Faster R-CNN之間的。因為R-FCN是一個在第二個stage沒有計算量的架構,而faster它是在第二個stage上堆了很多計算量。而我們的第二個stage很輕量,但也並不是沒有計算量。

如果用的是ROI pooling的話,跟RFCN網路所說的位置敏感性的初衷有所衝突嗎?

如果用ROI pooling 後面直接voting出最後結果確實不太好,沒有位置敏感性,但是Light-Head裡面有一個輕量的fc來處理全域的位置資訊。

相關學習資源

以上就是此次曠視研究院黎澤明帶來分享的全部內容,在量子位公眾號(QbitAI)介面回複“171226”可獲得完整版PPT以及視頻回放連結

第一期物體檢測回顧:曠視研究院解讀COCO2017物體檢測演算法奪冠論文

第二期人體姿態估計回顧:曠視研究院詳解COCO2017人體姿態估計冠軍論文

 



人工智慧賽博物理作業系統

AI-CPS OS

“人工智慧賽博物理作業系統”(新一代技術+商業作業系統“AI-CPS OS”:雲端運算+大資料+物聯網+區塊鏈+人工智慧)分支用來的今天,企業領導者必須瞭解如何將“技術”全面滲入整個公司、產品等“商業”情境中,利用AI-CPS OS形成數字化+智能化力量,實現行業的重新布局、企業的重新構建和自我的煥然新生。


AI-CPS OS的真正價值並不來自構成技術或功能,而是要以一種傳遞獨特競爭優勢的方式將自動化+資訊化、智造+產品+服務和資料+分析一體化,這種整合方式能夠釋放新的業務和運營模式。如果不能實現跨功能的更大規模融合,沒有顛覆現狀的意願,這些將不可能實現。


領導者無法依靠某種單一戰略方法來應對多維度數字化變革。面對新一代技術+商業作業系統AI-CPS OS顛覆性的數字化+智能化力量,領導者必須在行業、企業與個人這三個層面都保持領先地位:

  1. 重新行業布局:你的世界觀要怎樣改變才算足夠?你必須對行業典範進行怎樣的反思?

  2. 重新構建企業:你的企業需要做出什麼樣的變化?你準備如何重新定義你的公司?

  3. 重新打造自己:你需要成為怎樣的人?要重塑自己並在數字化+智能化時代保有領先地位,你必須如何去做?

AI-CPS OS是數字化智能化創新平台,設計思路是將大資料、物聯網、區塊鏈和人工智慧等無縫整合在雲端,可以協助企業將創新成果融入自身業務體系,實現各個前沿技術在雲端的優勢協同。AI-CPS OS形成的數字化+智能化力量與行業、企業及個人三個層面的交叉,形成了領導力模式,使數字化融入到領導者所在企業與領導方式的核心位置:

  1. 精細:這種力量能夠使人在更加真實、細緻的層面觀察與感知現實世界和數字化世界正在發生的一切,進而理解和更加精細地進行產品個人化控制、微觀業務情境事件和結果控制。

  2. 智能:模型隨著時間(資料)的變化而變化,整個系統就具備了智能(自學習)的能力。

  3. 高效:企業需要建立即時或者准即時的資料擷取傳輸、模型預測和響應決策能力,這樣智能就從批量性、階段性的行為變成一個可以即時觸達的行為。

  4. 不確定性:數字化變更顛覆和改變了領導者曾經仰仗的思維方式、結構和實踐經驗,其結果就是形成了複合不確定性這種顛覆性力量。主要的不確定性蘊含於三個領域:技術、文化、制度。

  5. 邊界模糊:數字世界與現實世界的不斷融合成CPS不僅讓人們所知行業的核心產品、經濟學定理和可能性都產生了變化,還模糊了不同行業間的界限。這種效應正在向生態系統、企業、客戶、產品快速蔓延。

AI-CPS OS形成的數字化+智能化力量通過三個方式激發經濟增長:

  1. 創造虛擬勞動力,承擔需要適應性和敏捷性的複雜任務,即“智能自動化”,以區別於傳統的自動化解決方案;

  2. 對現有勞動力和實物資產進行有利的補充和提升,提高資本效率;

  3. 人工智慧的普及,將推動多行業的相關創新,開闢嶄新的經濟增長空間。


給決策制定者和商業領袖的建議:

  1. 超越自動化,開啟新創新模式:利用具有自主學習和自我控制能力的動態機器智能,為企業創造新商機;

  2. 迎接新一代資訊技術,迎接人工智慧:無縫整合人類智慧與機器智能,重新

    評估未來的知識和技能類型;

  3. 制定道德規範:切實為人工智慧生態系統制定道德準則,並在智能機器的開

    發過程中確定更加明晰的標準和最佳實務;

  4. 重視再分配效應:對人工智慧可能帶來的衝擊做好準備,制定戰略協助面臨

    較高失業風險的人群;

  5. 開發數字化+智能化企業所需新能力:員工團隊需要積極掌握判斷、溝通及想象力和創造力等人類所特有的重要能力。對於中國企業來說,創造兼具包容性和多樣性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《論語·子路》雲端運算、大資料、物聯網、區塊鏈和 人工智慧,像君子一般融合,一起體現科技就是生產力。


如果說上一次哥倫布地理大發現,拓展的是人類的物理空間。那麼這一次地理大發現,拓展的就是人們的數字空間。在數學空間,建立新的商業文明,從而發現新的創富模式,為人類社會帶來新的財富空間。雲端運算,大資料、物聯網和區塊鏈,是進入這個數字空間的船,而人工智慧就是那船上的帆,哥倫布之帆!


新一代技術+商業的人工智慧賽博物理作業系統AI-CPS OS作為新一輪產業變革的核心驅動力,將進一步釋放曆次科技革命和產業變革積蓄的巨大能量,並創造新的強大引擎。重構生產、分配、交換、消費等經濟活動各環節,形成從宏觀到微觀各領域的智能化新需求,催生新技術、新產品、新產業、新業態、新模式。引發經濟結構重大變革,深刻改變人類生產生活和思維模式,實現社會生產力的整體躍升。




產業智能官  AI-CPS



用“人工智慧賽博物理作業系統”(新一代技術+商業作業系統“AI-CPS OS”:雲端運算+大資料+物聯網+區塊鏈+人工智慧),在情境中構建狀態感知-即時分析-自主決策-精準執行-學習提升的認知計算和機器智能;實現產業轉型升級、DT驅動業務、價值創新創造的產業互聯生態鏈






長按上方二維碼關注

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.