【云駐共創】AI論文精讀會第四期 目標檢測之Dynamic RCNN:一種有效提升RCNN系列網絡表現的動態訓練方法

      網友投稿 731 2025-03-31

      目錄:


      一、概述

      二、論文解讀

      2.1基本信息

      2.2簡介

      2.3論文解讀----研究背景

      2.4論文解讀----基本思想

      2.5論文解讀----實驗數據與環境

      2.6論文解讀----實驗結果

      三、模型源代碼

      四、使用方法介紹

      一、概述

      此模型基于Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training中突出的模型結構實現,該算法可以載入預訓練好的,達到論文精度的模型作為特征提取網絡,可以在用戶的數據集上進行訓練,用于其他場景的預測。訓練后生成的模型可以直接在modelArts平臺部署成在線服務。

      圖像目標檢測的評估手段一般使用mAp,詳細說明請參考:coco數據集評價指標

      本算法的其他信息如下表所示:

      項目

      說明

      參考論文

      Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training

      使用框架

      Pytorch-1.0.0-python3.6

      訓練集

      COCO 2017 train

      訓練總iteration數

      270k

      訓練batch_size

      使用8卡訓練,每張卡IMS_PER_GPU = 2,相當于總batch_size為16

      訓練硬件及耗時

      8*v100,54.9小時

      測試集

      COCO 2017test-dev

      推理硬件及速度

      GPU,2.3s/pic(GPU型號v100NV32)

      輸入圖像尺寸

      multi-scale訓練,有400*400,600*600,800*800,1000*1000,1200*1200五種,可以支持多尺度

      原論文準確率

      mAP=49.2

      本算法準確率

      map=49.2

      詳細內容可見鏈接:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=6842fa7f-2b4c-4b73-8001-82070ac47f5c

      二、論文解讀

      2.1 基本信息

      2.2 簡介

      R-CNN 首次將 CNN 用于目標檢測。相比使用 HOG 等特征,使用 CNN 能夠大大提高物體檢測的性能。為了在目標檢測中使用 CNN,主要有兩個問題:

      (1):怎么使用 CNN 來定位目標;(2):怎么用少量的帶標記的檢測數據來訓練一個大容量的模型。(現在數據量的問題已經不是問題)

      2.3論文解讀----研究背景

      目標檢測是計算機視覺里很重要的一個分支,它是由圖像分類任務發展而來的,它跟圖像分類任務發展而來的區別:不僅僅只對一張圖像單一類型的目標進行分類,而是增加了一個任務:尋找圖像中的物體并進行定位。我們不單單要知道這張圖片是什么類別,我們更是要找出這張圖片里感興趣的目標、位置,然后再進行準確的分類。如果項目的需求是精確的定位出圖像中某一物體類別信息和所在位置,則應該選擇目標檢測算法。

      目標檢測有廣泛的應用場景,比如當前比較火的自動駕駛、人臉識別、路上行人的檢測、醫療檢測等,同時目標檢測也可以做圖像分割,圖像描述,目標跟蹤,識別等這些更為復雜更為高層的計算機視覺研究基礎。

      一般來說,目標檢測可以分為以下三個步驟:圖像特征的提取、候選區域的生成和候選區域的分類。

      候選區域的生成可以分為一階段的算法和兩階段的算法,如下:

      One-stage:(精度較低,速度較快,實用更強一些)

      直接回歸物體的類別概率和位置坐標值(無regionproposal)。

      YOLO系列,SSD等。

      Two-stage:(精度較高,速度較慢)

      先由算法生成一系列作為樣本的候選框,再通過卷積神經網絡進行樣本分類。

      R-CNN系列。

      我們要根據不同的應用場景來選擇一階段還是二階段的算法。比如使用手機端(沒有云服務器)的話,更傾向使用一階段的算法,因為框架比較小,需要的計算力比較弱,速度比較快就可以滿足人們日常的使用。

      Region Proposal:

      生成候選框(bounding box)。

      Selective search, category-independent object proposals,RPN等。

      region proposal是讓模型學會去看哪里有物體,GT box就是給它進行參考,告訴它是不是看錯了,該往哪些地方看才對。

      如何利用深度的神經網絡去做目標的定位?

      借鑒了滑動窗口思想,R-CNN 采用對區域進行識別的方案。

      具體是:

      1.給定一張輸入圖片,從圖片中提取 2000 個類別獨立的候選區域。

      2.對于每個區域利用 CNN 抽取一個固定長度的特征向量。

      3.再對每個區域利用 SVM 進行目標分類。

      下面的圖像來自論文本身。

      R-CNN算法分為4個步驟

      1.候選區域生成: 一張圖像生成1K~2K個候選區域 ,使用Selective search生成region proposal,每張圖片大概有2000個proposal,將其縮放至固定大小。

      2.特征提?。?對每個候選區域,使用深度卷積網絡提取特征(CNN),CNN從每個region proposal中提取出一個4096維的特征,輸出大致為2000x4096。類別分類:SVM對4096維特征進行分類,得到一個2000x20的矩陣(20種類別),然后對每一列進行NMS非極大值抑制。

      卷積神經網絡(CNN)是局部連接網絡。相對于全連接網絡其最大的特點就是:局部連接性和權值共享性。

      3.類別判斷: 特征送入每一類的SVM 分類器,判別是否屬于該類

      4.位置精修: 使用回歸器精細修正候選框位置,回歸器校正非極大值抑制后剩下的region proposal,輸入CNN網絡pool5層的特征,輸出為xy方向的縮放和平移。

      相對于傳統的算法來說,R-CNN最大的長處是不需要人工的去預設計特征算子,因為傳統的算法里面,很多時候都是基于常識或者是數學上的計算來得到這些圖像上的特征,R-CNN通過CNN網絡自己學習圖像上的特征,來進行目標的檢測,這是它最好的一個長處。

      CNN本身也存在一些缺陷:

      訓練分為多個階段且相對獨立,導致訓練過程比較繁瑣,沒有辦法實現端到端的訓練,不能得到全局的一個最優解。

      對于特征向量用的是CNN,在候選區域選擇的時候傳統啟發式的算法,基于底層視覺的特征得到的這些候選區,相對來說,沒有深度學習的質量那么高。

      訓練耗時,占用磁盤空間大;5000張圖像產生幾百G的特征文件;速度慢:使用GPU,VGG16模型處理一張圖像需要47s;測試速度慢:每個候選區域需要運行整個前向CNN計算;

      SVM和回歸是事后操作,在SVM和回歸過程中CNN特征沒有被學習更新。

      為了解決R-CNN本身的這些缺陷,Fast R-CNN?的結構如下:

      Faster R-CNN是一個two-stage目標檢測網絡,其整體包括特征提取、獲取候選框、目標精確定位與分類三個步驟。

      FRCNN針對RCNN在訓練時是multi-stage pipeline和訓練的過程中很耗費時間空間的問題進行改進。它主要是將深度網絡和后面的SVM分類兩個階段整合到一起,使用一個新的網絡直接做分類和回歸。主要做以下改進:

      最后一個卷積層后加了一個ROI pooling layer。ROI pooling layer首先可以將image中的ROI定位到feature map,然后是用一個單層的SPP layer將這個feature map patch池化為固定大小的feature之后再傳入全連接層。

      損失函數使用了多任務損失函數(multi-task loss),將邊框回歸直接加入到CNN網絡中訓練。

      detection有兩項task:定位和識別,RPN就是單獨用來location(定位)的網絡。由于RPN的輸入是接的卷積層后的feature maps,已經是被高度抽象的特征圖了,所以RPN并不需要花參數層在特征提取上,因此RPN可以是一個比較輕量級的網絡,這也是計算更fast的原因。

      第一步是在一個滑動窗口上生成不同大小和長寬比例的anchor box,取定IoU的閾值來標定這些anchor box的正負。于是,傳入RPN網絡的樣本數據被整理為anchor box(坐標)和每個anchor box是否有物體(二分類標簽)。RPN網絡將每個樣本映射為一個概率值和四個坐標值,概率值反應這個anchor box有物體的概率,四個坐標值用于回歸定義物體的位置。最后將二分類和坐標回歸的損失統一起來,作為RPN網絡的目標訓練。

      由RPN得到Region Proposal在根據概率值篩選后經過類似的標記過程,被傳入R-CNN子網絡,進行多分類和坐標回歸,同樣用多任務損失將二者的損失聯合。

      Faster RCNN其實可以分為4個主要內容:

      Conv layers。作為一種CNN網絡目標檢測方法,Faster RCNN首先使用一組基礎的conv+relu+pooling層提取image的feature maps。該feature maps被共享用于后續RPN層和全連接層。

      Region Proposal Networks。RPN網絡用于生成region proposals。該層通過softmax判斷anchors屬于positive或者negative,再利用bounding box regression修正anchors獲得精確的proposals。

      Roi Pooling。該層收集輸入的feature maps和proposals,綜合這些信息后提取proposal feature maps,送入后續全連接層判定目標類別。

      【云駐共創】AI論文精讀會第四期 目標檢測之Dynamic RCNN:一種有效提升RCNN系列網絡表現的動態訓練方法

      Classification。利用proposal feature maps計算proposal的類別,同時再次bounding box regression獲得檢測框最終的精確位置。

      Faster RCNN的IOU:

      預測的邊框 和 真實的邊框 的交集和并集的比例 稱為 IoU(Intersection over Union)。這個指標又名 “Jaccard Index”,由 Paul Jaccard 在 19 世紀早期提出。

      設置一定的IOU閾值來區分anchors是前景(Positive)還是背景(Negetive)。

      Positive類別的anchors用于接下來的進一步分類和回歸預測。

      1.對于R-CNN系列的網絡,隨著訓練迭代次數的增加,候選區域的IOU會逐漸增加,使用單一的IOU閾值來區分前景和背景,會影響模型的精度。

      2.損失函數中的超參數會影響反向傳播的梯度,從而對模型優化產生影響。

      3.采用一定的訓練策略可以提高模型的表現。

      2.4論文解讀----基本思想

      第一個針對訓練過程中的候選區域的選擇設置Dynamic LabelAssignment(DLA)用于動態調節IOU的閾值,然后來改善模型。

      第二個就是針對損失函數中的參數設置DynamicSmoothLlLoss(DSL),通過調節損失函數里面的參數,改變損失,從而改變梯度,改變模型的訓練。

      訓練過程中,不斷調整獲取候選區域時IOU閾值的大小。

      label = 1,if max IoU(b,G) ≥ Tnow

      label = 0,if max IoU(b,G) < Tnow

      根據RPN的proposals,不斷地自動調整1OU的大小,具體為:計算每個batch的第K,個最大的IOU,經過每C次迭代取其均值來對IOU進行更新。

      隨著proposals質量的不斷提高,IOU閾值也會不斷提高。

      目標檢測中最終目標框所在位置的損失時使用SmoothLl損失函數計算得到的。β是一個超參數,對于相同的error,其值越小,損失越大,優化器的梯度也越大。使用越小的β模型收斂速度越快,也會帶來越好的結果,但是要避免梯度爆炸問題。

      根據proposal的error動態調整β,具體為:計算每個batch的第Kβ個最小的crror,經過每C次迭代取其中值來對β進行更新。

      2.5論文解讀----實驗數據與環境

      實驗數據:MS CoCO2017。-:https://cocodataset.org/#download

      使用ResNet101作為ackbone,多尺度訓練270k個iteration得到最終的模型參數。

      環境:python3.6+pytorch1.0.1

      2.6論文解讀----實驗結果

      三、模型源代碼

      為了公平的比較,論文中所有的實驗都遵循MaskRCNN-benchmark的基本設置。https://github.com/facebookresearch/maskrcnn-benchmark

      模型代碼已經開源,可以在https://github.com/hkzhang95/DynamicRCNN進行下載。

      代碼核心:

      著重增強了動態調節訓練,代碼改動不大。

      記錄每個batch的第K,個最大的IOU,第Kβ個最大的error。

      每C(iteration_count)個iteration,更新一次IOU閾值和β。

      四、使用方法介紹

      模型源代碼講解----復現過程

      ModelArts是一個一站式的開發平臺,能夠支撐開發者從數據到AI應用的全流程開發過程。包含數據處理、模型訓練、模型管理、模型部署等操作,并且提供AI Gallery功能,能夠在市場內與其他開發者分享模型。

      復現過程主要有兩大步驟,一是根據模型源代碼的實際情況來適配ModelArts的環境,二是按照論文中的描述來設置超參,在ModelArts上跑訓練,驗證最終訓練得到的模型是否能達到論文中的精度。

      首先需要在OBS對象存儲服務中新建自己的數據桶,其結構如下:

      Annotation標記信息文件需要按照MS COCO數據的標準格式。

      華為AI Gallery官方網站: https:/marketplace.huaweicloud.com/markets/aihub/modelhub/list/

      搜索“DynamicRCNN”,進入選擇訂閱,之后在自己的ModelArts控制臺算法管理“我的訂閱”中便可以看到該算法。

      創建訓練作業,在OBS對象存儲服務中選擇待訓練的數據作為數據來源設置參數進行訓練。詳細的模型使用過程請參考:https://bbs.huaweicloud.com/forum/thread-92565-1-1.html

      注:本文整理自華為云社區內容共創活動之【線上直播】AI論文精讀會第四期:Dynamic RCNN:一種有效提升RCNN系列網絡表現的動態訓練方法,點此回看直播

      查看活動詳情:https://bbs.huaweicloud.com/forum/thread-139540-1-1.html

      AI 機器學習 神經網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:深圳制造業生產管理軟件(制造業生產管理免費軟件)
      下一篇:華為生態伙伴精英賽2018:共聚ICT人才,共創商業價值
      相關文章
      久久亚洲AV午夜福利精品一区| 午夜亚洲WWW湿好爽| 伊人久久亚洲综合影院| 婷婷久久久亚洲欧洲日产国码AV| 亚洲免费视频一区二区三区| 国产在亚洲线视频观看| 亚洲风情亚Aⅴ在线发布| 亚洲人成人无码.www石榴| 亚洲综合无码一区二区痴汉| 亚洲砖码砖专无区2023 | 亚洲精品视频在线观看你懂的| 青青青亚洲精品国产| 国产亚洲高清在线精品不卡| 苍井空亚洲精品AA片在线播放 | 亚洲AV无码国产精品色午友在线| 国产精品亚洲精品日韩已满| 亚洲国产一二三精品无码| 亚洲av永久无码精品漫画| 亚洲国产精品成人精品无码区 | 亚洲av永久无码一区二区三区| 久久亚洲精品无码av| 男人的天堂亚洲一区二区三区| 亚洲avav天堂av在线网毛片| 最新亚洲人成网站在线观看| 亚洲精品成人片在线观看| 国产亚洲AV手机在线观看| 亚洲成AV人片一区二区密柚| 亚洲天天做日日做天天看| 亚洲理论片在线中文字幕| 精品亚洲成在人线AV无码| 亚洲一区二区三区成人网站| 日韩亚洲人成在线综合| 亚洲一区视频在线播放| 亚洲成A人片在线观看无码不卡 | 亚洲精品高清久久| 亚洲人成影院午夜网站| 亚洲国产精品成人综合色在线| 亚洲国产成人精品女人久久久| 国产性爱在线观看亚洲黄色一级片| 亚洲人成网站在线观看播放| 亚洲国产成人私人影院|