cascade rcnn論文總結

1.bouding box regression總結:

  rcnn使用l2-loss

  首先明確l2-loss的計算規則:

               L?=(f?(P)?G?)2,?代表x,y,w,h

              ? ?整個loss :?L=Lx+Ly+Lw+Lh

               也就是說,按照l2-loss的公式分別計算x,y,w,h的loss,然后把4個loss相加就得到總的bouding box regression的loss。這樣的loss是直接預測bbox的

               絕對坐標與絕對長寬。

  改進1:

    ? 問題:如果直接使用上面的l2-loss,loss的大小會收到圖片的大小影響。

    ? 解決方案:loss上進行規范化(normalization)處理。

         ??Lx=(fx(P)?Gx)W)2,Ly=(fy(P)?Gy)H)2Lw=(fw(P)?Gw)W)2,Lh=(fh(P)?Gh)H)2,其中,?W,H分別為輸入圖片的寬與高

    ? 這種改進沒有被采納

  改進2:

    ??rcnn直接使用的是下面這個公式,也使用了規范化,但除以的是proposal的wh,并且wh的loss用的log函數

    ?

    ? cascade論文說這個改進的目的是:“To encourage a regression invariant to scale and location”,也就是增加scale和location的不變性  ?

    ? 位置不變性:delta_x = [(g_x + a) - (b_x + a)] / b_w。不管平移量a是多少,delta_x都是一樣的

?     尺寸不變性:delta_w = log((g_w * b) / (b_w * b))。不管圖片縮放b是多少,delta_w都是一樣的

 ??   至于為什么用log,有個博客說是:是為了降低w,hw,h產生的loss的數量級, 讓它在loss里占的比重小些。? 這個解釋還有待觀察

  改進3:

    ? 問題:當預測值與目標值相差很大時, 梯度容易爆炸, 因為梯度里包含了x?t

    ? 解決方案:smoothl1代替l2-loss,當差值太大時, 原先L2梯度里的x?t被替換成了±1, 這樣就避免了梯度爆炸

  改進4:

    ? 問題:由于bouding box regression經常只在proposal上做微小的改變,導致bouding box regression的loss比較小,所以bouding box regression的loss一般比classification

       ? 的loss小很多。(整個loss是一個multi-task learning,也就是分類和回歸)

    ? 解決方案:標準化

         ??

?

延伸問題:iou-loss與l2-loss,smoothl1的優缺點

https://blog.csdn.net/weixin_35653315/article/details/54571681

?

2.性能上iou0.6大于iou0.5,但iou0.7卻小于0.5,為什么?

0.7的iou生成的正樣本的框的質量更高,應該性能更好,但ap值卻在下降。原因在于,iou在0.5時,正樣本大多集中在0.5到0.6之間,如果你閾值選在0.7,正樣本數量大大減少,造成了過擬合。

3.iterative bbox多次做bouding box的回歸,但每次回歸都使用的iou0.5,沒有考慮樣本分布改變;integral loss是根據不同iou分別算loss,沒有解決不同iou 正樣本的數量不一樣。cascade-rcnn與iterative bbox區別:1.每個stage進行了重采樣? ?2.訓練和測試的分布是一樣的

因此cascade的好處是:1.不會出現過擬合。每一個stage都有足夠的正樣本

          ? 2.每個stage用了更高的iou進行優化,proposal質量更高了

          ? 3.高iou過濾了一些outliers

4.對比實驗中的stat:就是為了解決分類loss大,bouding box regression loss小,將delta標準化的操作。

         ? cascade rcnn中的stat是每一次回歸都要做一次標準化,應該是因為每一次回歸生成的新分布的均值和方差發生變化

5.對比實驗1:

     

  越高iou,cascade-rcnn提升越明顯,最常用的ap50的提升最小且提升性能有限

  延伸問題1: 為什么iou越低的檢測性能會越低?

  延伸問題2:? ?怎么去解決?

      

? 對比實驗2:

     ?

    前提:這個實驗是都用訓練的時候用cascade rcnn,測試的時候在不同層測試和聯合測試做對比。

    a.單獨在stage1上測試,性能比baseline要好,這是cascade的方式帶來的提升;單獨在stage2上測試性能提升最大,單獨stage3在ap70以下有略微下降,以上有略微上升

    b.在stage1、stage2上聯合測試,ap70以下都獲得了最好的結果,ap70以上會比stage3低一點;在stage1、stage2、stage3上聯合測試,整體ap更高,ap70以上都有很大提升

    

    延伸問題1: 為什么出現這樣的現象?

    延伸問題2: cascade-rcnn如何做聯合測試的?     ?

?

對比實驗3:

     

      使用了iou,性能在提升;使用了stat性能也提升。同時使用iou和stat,總ap在上升,但是ap70以下的略微下降,ap80以上的提升,特別是ap90提升明顯

      延伸問題:為什么在用iou的基礎上加stat,70以下反而下降?

對比實驗4:

     ?

      聯合預測的時候,1-2聯合提升最明顯;1-3比1-2也有提升,主要在高質量框上,整體ap提升了;但是再多回歸一次,整體ap有略微下降,ap90以下的都下降了,

      但是ap90上升了

      延伸問題:為什么多一個stage,性能還下降了?

?

?cascade如何訓練?

第一個stage選512個roi,訓練之后把這些roi全給第二個stage的proposal_info_2nd(這個里面調用decodebbox層,也就是對當前的框進一步精修給下一個stage),proposal_info_2nd中batchsize為-1,proposaltarget源碼增加了batchsize為-1的情況,就是把所有的正負樣本都考慮進來(實際上數量應該是小于512的),而不是原來默認的128.這個時候再跟gt進行assign,重新分配roi和gt給下一個stage.

?

在decodebox層里面,還會把精修后錯誤的roi去掉,比如x1大于x2;同時,也會把和gt iou超過0.95的去掉,就是覺得這個已經夠精確,不用再精修了

  // screen out mal-boxesif (this->phase_ == TRAIN) {for (int i = 0; i < num; i++) {const int base_index = i*bbox_dim+4;if (bbox_pred_data[base_index] > bbox_pred_data[base_index+2] || bbox_pred_data[base_index+1] > bbox_pred_data[base_index+3]) {valid_bbox_flags[i] = false;}}} // screen out high IoU boxes, to remove redundant gt boxesif (bottom.size()==3 && this->phase_ == TRAIN) {const Dtype* match_gt_boxes = bottom[2]->cpu_data();const int gt_dim = bottom[2]->channels();const float gt_iou_thr = this->layer_param_.decode_bbox_param().gt_iou_thr();for (int i = 0; i < num; i++) {const float overlap = match_gt_boxes[i*gt_dim+gt_dim-1];if (overlap >= gt_iou_thr) {valid_bbox_flags[i] = false;}}}

cascade如何測試 ?

bouding box regression是直接從最后一個stage得到的結果,即bbox_pre_3rd。

?

score的預測是把當前stage的score和之前層的score平均。stage2是把stage1的score*0.5 + stage2的score*0.5,stage3是把stage1的score*0.333 + stage2的score*0.333 + stage3的score*0.333。具體做法是:比如stage2的預測,roi-pooling出來的特征分別用兩個分支得到兩個score,這兩個分支就是兩層fc,一個用stage1的fc的參數,一個用stage2的fc的參數,這樣就分別得到了兩個stage的score再求平均。

注意:test.prototxt里面有cls_prob、cls_prob_2nd_avg、cls_prob_3rd_avg 3個輸出,cls_prob是1的結果,cls_prob_2nd_avg是1+2的結果,cls_prob_3rd_avg是1+2+3的結果,他這3個輸出應該是為了考慮最終的實驗比較,最終的實際輸出應該還是cls_prob_3rd_avg。

總的來說,cls是3個stage求平均,bouding box regression是直接從stage3獲得

?

?為什么從3個stage到4個stage,性能還下降了?

可能是overfitting造成的:1.如果以faster來說的話,每個stage會增加兩個大的fc和兩個小的fc,這個參數量很大;? 2.cascade代碼中,每次回歸之前,會把前一個stage的roi與gt的iou大于0.9的消除掉,stage越往高走,roi的個數是越會下降的。? ?3.并且也會把一些負樣本去掉,因為cascade中每個stage會把roi不正常的框去掉,回歸可能導致負樣本這樣

還有一點,就是可能模型本身做regression,多次regression后,好多框其實已經修正的比較好了,再去修正可能就是擾動,不能讓性能很好提升,甚至有可能反而下降。

主要是往后特征沒辦法更好了吧,加更多也沒有收益,只要Inference設計好,下降倒不太會

Cascade rcnn 3 4 也沒下降,只是輕微影響一點,是飽和了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談優化SQLServer數據庫服務器內存配置的策略

引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 農業銀行總行1998年以來正式推廣了新版網絡版綜合業務統計信息系統&#xff0c;該系統是基于WindowsNT4.0平臺&#xff0c;采用客戶&#xff0f;服務器模式&#xff0c;以Microsoft SQL Server為基礎建立起來的大…

知道第一章計算機基礎知識作業答案,大學計算機基礎作業答案

大學計算機基礎作業答案第一章 現代社會與計算機1. 什么事信息&#xff0c;其主要特征是什么&#xff1f;答&#xff1a;信息是可傳遞和共享的&#xff0c;可消除人們認知上的不確定因素&#xff0c;對人們的決策具有現實或潛在價值的知識。特征&#xff1a;普遍性、依附性、共…

Netflix推薦系統(Part two)-系統架構

Netflix在2013年公布了自己推薦系統的架構&#xff0c;本文主要總結和翻譯自System Architectures for Personalization and Recommendation&#xff0c;但這并不是一篇完整的翻譯文章。 Overview 首先&#xff0c;我們在下圖中提供推薦系統的整體系統圖。 該體系結構的主要組件…

母版頁可以動態切換嗎?

通過設置“MasterPageFile”屬性可以做到&#xff0c;然而這個屬性只能在“Page_PreInit”事件之中或之前設置。在Page_PreInit事件或之前&#xff0c;當前頁面包含的對象還沒有被生成&#xff0c;不能訪問&#xff0c;所以&#xff0c;如果想根據當前頁面上某個控件的值動態切…

httpclient 多附件上傳

多附件上傳實例&#xff1a; /*** 多附件上傳* param host* param uri* param attachment 附件* param param body參數* return*/public String upload(String host, String uri, Map<String,String> attachment, Map<String, String> param) {logger.info("…

加拿大大學 計算機專業排名2015,加拿大大學計算機專業排名top15

加拿大大學計算機專業排名。加拿大開設計算機專業的很多高校還提供帶薪實習機會&#xff0c;吸引了眾多國際學子前往留學。在加拿大計算機專業優秀的大學很多。同時&#xff0c;加拿大計算機專業排名在世界上也非常的靠前&#xff0c;在加拿大有很多大學值得廣大計算機熱愛者選…

如何讀懂并寫出裝逼的函數式代碼

今天在微博上看到了 有人分享了下面的這段函數式代碼&#xff0c;我把代碼貼到下面&#xff0c;不過我對原來的代碼略有改動&#xff0c;對于函數式的版本&#xff0c;咋一看&#xff0c;的確令人非常費解&#xff0c;仔細看一下&#xff0c;你可能就暈掉了&#xff0c;似乎完全…

如何打通高薪的黃金通道 成為職場金領

身在職場的你&#xff0c;是否想過有朝一日能獲得百萬年薪&#xff1f;最近&#xff0c;央視二套絕對挑戰特別節目巔峰營銷的熱播&#xff0c;引發各方人士對東風日產百萬年薪招兵營銷總監的關注。身價百萬的營銷總監人人想當&#xff0c;如何才能成為這樣的職場金領&#xff0…

iView 實戰系列教程(21課時)_2.iView 實戰教程之導航、路由、鑒權篇

在c盤創建一個iview-router的項目、然后使用默認的配置跳過添加vue-router的插件編譯我們的文件。編譯好之后&#xff0c;我們啟動App默認的頁面就打開了。默認兩個路由一個是about界面一個是home我們使用編輯器打開代碼&#xff0c;用我們的iview的menu組件替換掉這兩個路由在…

計算機專業單元測試卷答案,銀保監會考試題庫:計算機類模擬試題練習(六)答案...

2020銀保監會招聘考試即將開始。根據往年經驗&#xff0c;銀保監會招聘考試科目包括行測、申論和專業科目共三科&#xff0c;專業科目是考試提分的關鍵&#xff0c;那么如何才能提升專業科目的做題速度并快速提分呢&#xff1f;別擔心&#xff0c;中公金融人小編根據歷年的考試…

Ubuntu安裝Nginx

在Ubuntu下安裝Nginx有以下方法&#xff0c;但是如果想要安裝最新版本的就必須下載源碼包編譯安裝。 一、基于APT源安裝 sudo apt-get install nginx 安裝好的文件位置&#xff1a; /usr/sbin/nginx&#xff1a;主程序 /etc/nginx&#xff1a;存放配置文件 /usr/share/nginx&am…

9.28PMP每日一題

控制質量過程的輸出是&#xff1a;A、變更請求B、批準的變更請求C、工作績效數據D、事業環境因素 答案將于明天和新題一起發布&#xff01;9.27試題答案&#xff1a;C轉載于:https://blog.51cto.com/13554215/2287292

將數組綁定到dropdownlist上

<% Page Language"C#" %><% Import Namespace"System.Data" %><Script Language"C#" Runat"Server">public void Page_Load(Object src,EventArgs e){ //首先建立一個數組 ArrayList arrnew ArrayList(); …

HTML標題h,HTML H標題標簽

可以將HTML標題或HTML h標簽定義為要在網頁上顯示的標題或副標題。當你將文本放在標題標簽……… h1>內時, 它在瀏覽器中以粗體顯示, 并且文本的大小取決于標題的數量。從到標簽定義了六個不同的HTML標題, 從最高級別h1(主標題)到最低級別h6(最重要的標題)。h1是最大的標題標…

湯姆大叔的6道javascript編程題題解

1、找出數字數組中最大的元素&#xff08;使用Math.max函數&#xff09; 123var a [1, 2, 3, 6, 5, 4];var ans Math.max.apply(null, a);console.log(ans); // 6這題很巧妙地用了apply&#xff0c;如果不是數組&#xff0c;是很多數字求最大值&#xff0c;我們知道可以這樣…

Android 多線程之幾個基本問題

Android中的進程和線程 Android中的一個應用程序一般就對應著一個進程&#xff0c;多進程的情況可以參考Android 多進程通信之幾個基本問題 Android中更常見的是多線程的情況&#xff0c;一個應用程序中一般都有包括UI線程等多個線程。Android中規定網絡訪問必須在子線程中進行…

Web下的整體測試

隨著Internet的日益普及&#xff0c;現在基于B/S結構的大型應用越來越多&#xff0c;可如何對這些應用進行測試成為日益迫切的問題。有許多測試人員來信問我B/S的測試如何做&#xff0c;由于工作較繁忙&#xff0c;對大家提出的問題也是頭痛醫頭腳痛醫腳&#xff0c;沒有對WEB的…

用計算機算算術平方根順序是ON然后是什么,第2課時用計算器求一個正數的算術平方根.ppt...

1.比較下列各組數的大小&#xff1a;(1) 與(2) 與 8依次按鍵顯示&#xff1a;1.732 050 808例3 小麗想用一塊面積為400 cm2的正方形紙片&#xff0c;沿著邊的方向剪出一塊面積為300 cm2的長方形紙片&#xff0c;使它的長寬之比為3:2&#xff0e;她不知能否裁得出來&#xff0c;…

MySQL 命令

版權聲明&#xff1a;本文首發 http://asing1elife.com &#xff0c;轉載請注明出處。 https://blog.csdn.net/asing1elife/article/details/82892834 MySQL 一些常見命令 更多精彩 更多技術博客&#xff0c;請移步 asing1elife’s blog 查看版本號 mysql -V重啟/啟動/停止 mys…

Bookshelf 2 簡單DFS

鏈接&#xff1a;https://ac.nowcoder.com/acm/contest/993/C來源&#xff1a;牛客網 題目描述 Farmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at the top.FJ…