<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      目標(biāo)檢測(cè)算法(1)目標(biāo)檢測(cè)中的問(wèn)題描述和R-CNN算法

      目標(biāo)檢測(cè)(object detection)是計(jì)算機(jī)視覺(jué)中非常具有挑戰(zhàn)性的一項(xiàng)工作,一方面它是其他很多后續(xù)視覺(jué)任務(wù)的基礎(chǔ),另一方面目標(biāo)檢測(cè)不僅需要預(yù)測(cè)區(qū)域,還要進(jìn)行分類(lèi),因此問(wèn)題更加復(fù)雜。最近的5年使用深度學(xué)習(xí)方法進(jìn)行目標(biāo)檢測(cè)取得了很大的突破,因此想寫(xiě)一個(gè)系列來(lái)介紹這些方法。這些比較重要的方法可以分成兩條主線,一條是基于區(qū)域候選(region proposal)的方法,即通過(guò)某種策略選出一部分候選框再進(jìn)行后續(xù)處理,比如RCNN-SPP-Fast RCNN-Faster RCNN-RFCN等;另一條是直接使用卷積神經(jīng)網(wǎng)絡(luò)將圖像變換到一個(gè)小的尺度,在新的尺度上使用anchor box來(lái)預(yù)測(cè)目標(biāo)區(qū)域,這一類(lèi)方法包括SSD以及Yolo的各個(gè)版本等;另外這個(gè)系列中也會(huì)穿插一些其他的算法如OverFeat、DPM等。本文是目標(biāo)檢測(cè)系列的第一篇,主要提及目標(biāo)檢測(cè)中的基本問(wèn)題,并詳細(xì)地介紹了RCNN算法。

      一 目標(biāo)識(shí)別問(wèn)題的基本描述

      目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)中非常具有挑戰(zhàn)性的一項(xiàng)工作,它是其他很多后續(xù)視覺(jué)任務(wù)的基礎(chǔ),比如我們通常所說(shuō)的識(shí)別(分類(lèi))問(wèn)題,以人臉識(shí)別為例,通常其不是一個(gè)完全的端到端(end to end)的過(guò)程,如果想要獲得很好的識(shí)別精度,一般情況下需要首先進(jìn)行人臉檢測(cè),然后對(duì)檢測(cè)得到的區(qū)域進(jìn)行人臉定位(face landmark),然后再進(jìn)行人臉對(duì)齊(face alignment),最后才進(jìn)行分類(lèi)或者驗(yàn)證,好的人臉檢測(cè)算法對(duì)最后的識(shí)別精度提升很大,而有的算法會(huì)把檢測(cè)和定位一步做出來(lái);另一方面,目標(biāo)檢測(cè)是一項(xiàng)相對(duì)比較有難度的工作,其考慮的問(wèn)題比較多,比如我們?cè)鯓雍侠磉x擇定位區(qū)域?怎樣對(duì)定位區(qū)域的圖像內(nèi)容進(jìn)行分類(lèi)?如果框柱的區(qū)域有誤差我們?cè)趺葱拚?/span>

      1. 目標(biāo)檢測(cè)中的一些基本概念

      在回答上面幾個(gè)問(wèn)題之前,這里首先介紹目標(biāo)識(shí)別過(guò)程中經(jīng)常提及的一些概念。我們可以把分類(lèi)任務(wù)和檢測(cè)任務(wù)做一個(gè)比較(這幾張圖片都來(lái)源于\(RBG\)大神RCNN的ppt,戳這里):

      圖1 classification vs detection

      左邊一張是分類(lèi),右邊一張是檢測(cè)??梢钥闯龇诸?lèi)只需要判斷給定的圖像屬于哪一類(lèi),但很明顯由于其他物體或者背景的干擾,直接這么做肯定效果不好。相比較而言,檢測(cè)則是判斷某個(gè)固定的區(qū)域中是否包含物體,并且判斷其中的物體屬于哪一類(lèi),我們把框住這個(gè)區(qū)域的矩形框叫做bounding box,那么目標(biāo)檢測(cè)的問(wèn)題可以看成是:給定目標(biāo)類(lèi)別集合比如\(\left \{ airplane, bird, motorbike, person, sofa \right \}\),判斷這些bounding box中是否包含目標(biāo),如圖2所示:

      圖2 目標(biāo)檢測(cè)示例:左圖是輸入,右圖是輸出

      另外,對(duì)于這些預(yù)測(cè)的bounding box是否真實(shí)包含物體,通常會(huì)有預(yù)測(cè)的置信度,也就是這個(gè)框出來(lái)的區(qū)域有多大概率屬于某類(lèi)的物體,所以目標(biāo)檢測(cè)實(shí)際的輸出會(huì)包含三個(gè)內(nèi)容:預(yù)測(cè)的bounding box,bounding box中物體的類(lèi)別,以及屬于這個(gè)類(lèi)別的置信度。

      圖3 'person' detector predictions 和 ground truth 'person' boxes

      圖3中橙色的區(qū)域是我們預(yù)測(cè)時(shí)的bounding box,而紫色的是真實(shí)物體包含的區(qū)域,通常叫做ground truth(GT),訓(xùn)練的目的是讓我們預(yù)測(cè)到的bounding box和GT的交并比(即兩個(gè)區(qū)域的重疊部分除以相并的部分, Intersection over Union,簡(jiǎn)稱(chēng)IoU)的值比較高。那在測(cè)試階段我們到底應(yīng)該怎樣衡量預(yù)測(cè)的好壞呢?這里用到一個(gè)非常重要的概念mAP,即平mean Average Precision(平均AP)的值,注意這里的AP是針對(duì)每個(gè)類(lèi)別求出的,那每個(gè)類(lèi)的AP值到底是怎樣計(jì)算的呢?

      首先在進(jìn)行預(yù)測(cè)后,我們可以按照置信度大小排序并且選擇一個(gè)閾值作為預(yù)測(cè)的正負(fù)類(lèi)的評(píng)判標(biāo)準(zhǔn),大于閾值預(yù)測(cè)為正類(lèi)否則為負(fù)類(lèi),如下圖所示:

      圖4 置信度排序及precision和recall的計(jì)算方式

      假如我們選擇置信度\(t=0.5\)為正負(fù)類(lèi)的閾值,那么小于\(t\)的全部預(yù)測(cè)為負(fù)類(lèi),這里引出兩個(gè)機(jī)器學(xué)習(xí)中非常常見(jiàn)的概念,也就是查準(zhǔn)率(precision)值和查全率(recall)值,二者的計(jì)算方式如下

      \(precision=\frac{true positive}{true positive+false positive}\)

      \(recall=\frac{true positive}{ground truth}\)

      (1) true positive表示正確的預(yù)測(cè)為正類(lèi),在目標(biāo)檢測(cè)中就是指預(yù)測(cè)的bounding box和ground truth的IoU超過(guò)0.5的box的個(gè)數(shù);

      (2) false positive表示錯(cuò)誤的預(yù)測(cè)為正類(lèi),對(duì)應(yīng)于bounding box和ground truth的IoU小于等于0.5的box的個(gè)數(shù),還有那些重復(fù)預(yù)測(cè)同一個(gè)ground truth的box的個(gè)數(shù)。

      還有兩種預(yù)測(cè)行為true negative和false negative也很容易根據(jù)(1)、(2)推斷出來(lái),這里的AP值重點(diǎn)考察(1)和(2)所以沒(méi)列出來(lái)。從precision和recall值的定義來(lái)看,它們衡量分類(lèi)性能的角度不一樣,precision側(cè)重于考察預(yù)測(cè)的結(jié)果為正類(lèi)樣本中的準(zhǔn)確程度,而recall側(cè)重于考察真實(shí)的正類(lèi)樣本是被預(yù)測(cè)正確的全面程度。現(xiàn)在我們知道怎樣計(jì)算precision和recall的值,那么對(duì)于每一類(lèi)樣本我們可以依照某個(gè)采樣規(guī)則畫(huà)出precision和recall關(guān)系的序列圖,如下圖所示,橫坐標(biāo)為recall值,縱坐標(biāo)為precision值,根據(jù)采樣的recall值的不同來(lái)得到不同的precision值,然后畫(huà)出相應(yīng)的點(diǎn)連成曲線,這里的曲線下方面積就是這個(gè)類(lèi)的AP值,AP值越高表明在給定recall的情況下precision的值也比較高。注意到我們選取不同的閾值\(t\)可以得到不同的曲線,此時(shí)的AP值也不同。

       圖5 mAP計(jì)算示意圖

      以上是關(guān)于目標(biāo)檢測(cè)的基本概念,在實(shí)際應(yīng)用中到底怎樣進(jìn)行檢測(cè),又有哪些難點(diǎn)呢?我們接下來(lái)要講的RCNN主要會(huì)解決一下三個(gè)問(wèn)題:

      (1) 怎樣找出這些預(yù)測(cè)的bounding box?

      容易想到的很笨的方法是選擇大小、比例不同的滑窗,讓這個(gè)滑窗遍歷整個(gè)圖像,對(duì)每個(gè)滑過(guò)的位置都進(jìn)行預(yù)測(cè)分類(lèi),判斷是否有物體存在,像下圖一樣:

       

      圖6 使用大小比例不同的bounding box滑窗經(jīng)過(guò)每個(gè)圖像的位置進(jìn)行預(yù)測(cè),導(dǎo)致需要檢測(cè)很多個(gè)窗口

      這樣操作的缺點(diǎn)十分明顯:選區(qū)的滑窗的大小和比例不同以及需要滑過(guò)圖像中每一個(gè)位置,導(dǎo)致需要檢測(cè)的窗口數(shù)量巨大。那么我們是否能想出一個(gè)間接的方法,即并不是一步處理所有的窗口,而是首先通過(guò)相對(duì)比較“粗糙”的方法過(guò)濾那些肯定不包含物體的區(qū)域?

      (2) 假如我們已經(jīng)找到了一個(gè)bounding box,怎樣判斷屬于哪一個(gè)類(lèi)?

      這個(gè)問(wèn)題可以看成是一個(gè)分類(lèi)的問(wèn)題,對(duì)于指定區(qū)域的圖像,我們可以用傳統(tǒng)的手工特征提取方法,比如LBP、HOG、Haar特征等等,更好的方法是通過(guò)卷積神經(jīng)網(wǎng)絡(luò)可以自動(dòng)選擇特征,并且效果非常好,提取到特征之后再進(jìn)行分類(lèi)。

      (3) 是否需要對(duì)找到的包含物體的box進(jìn)行修正?

      由于選擇的bounding box的位置通常會(huì)有一定程度的偏差,那么需要對(duì)這個(gè)位置進(jìn)行修正,此問(wèn)題可以看成是一個(gè)回歸的問(wèn)題,回歸預(yù)測(cè)的值通常是這個(gè)box左上角的坐標(biāo),區(qū)域的寬和高。

       帶著這三個(gè)問(wèn)題,這篇文章主要介紹目標(biāo)檢測(cè)領(lǐng)域一個(gè)里程碑的算法RCNN,即基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)方法。

      二 R-CNN算法

      R-CNN(region with CNN feature)于13年被Ross Girshick(江湖人稱(chēng)RBG大神)提出,是使用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)的里程碑式的工作,RBG主頁(yè):http://www.rossgirshick.info,主頁(yè)中列出的關(guān)于目標(biāo)檢測(cè)及相關(guān)領(lǐng)域的工作都非常經(jīng)典,可以說(shuō)這些工作很大程度推動(dòng)了深度學(xué)習(xí)在目標(biāo)檢測(cè)中的應(yīng)用。廢話不多說(shuō),首先我們看看RCNN算法的動(dòng)機(jī)。

      1. 動(dòng)機(jī)及解決的問(wèn)題

      (1) 與分類(lèi)任務(wù)不同,目標(biāo)檢測(cè)需要框出指定的區(qū)域,有相關(guān)paper直接使用回歸的方法得到區(qū)域的位置,但實(shí)際應(yīng)用起來(lái)效果并不好;另外,有方法直接使用滑窗加深度學(xué)習(xí)的方法,不過(guò)這一類(lèi)方法通常網(wǎng)絡(luò)層次并不深,主要考慮到的是一旦網(wǎng)絡(luò)層次加深,最后輸出的特征圖對(duì)應(yīng)的原始圖像的感受野太大,造成檢測(cè)精度不高;

      (2) 一個(gè)更好地解決方案是是使用所謂“區(qū)域建議(region proposal)”的方法給出一堆候選區(qū)域,這些候選區(qū)域能夠先過(guò)濾掉那些大概率不包含物體的區(qū)域,然后選擇一個(gè)深度神經(jīng)網(wǎng)絡(luò)抽取特征;

      (3) 一旦抽取特征之后可以設(shè)計(jì)一個(gè)SVM分類(lèi)器,即對(duì)每一個(gè)類(lèi)別的物體都看成是一個(gè)單獨(dú)的二元分類(lèi)問(wèn)題;

      (4) 最后使用回歸的方法對(duì)包含物體的bounding box進(jìn)行回歸,回歸的目的是修正bounding box的偏差。

      值得一提的是,RCNN論文中的細(xì)節(jié)很多,怎樣得到region proposal,怎樣把候選得到的區(qū)域縮放到統(tǒng)一尺寸以使其適配CNN網(wǎng)絡(luò)的輸入大小,怎樣進(jìn)行多階段的訓(xùn)練(CNN網(wǎng)絡(luò)的“pre-training”和“fine-training”,SVM分類(lèi)器的訓(xùn)練以及回歸器的訓(xùn)練)等等,CNN網(wǎng)絡(luò)為什么不直接接入一個(gè)softmax層轉(zhuǎn)而使用SVM進(jìn)行分類(lèi),等等這些會(huì)在下文中介紹。

      2. 算法架構(gòu)

      圖7 RCNN算法框架

      RCNN的算法框架如圖7所示,算法過(guò)程描述如下:

      (1) 第一步,即圖7中的1~2,對(duì)于給定的輸入圖像,使用選擇性搜索(selective search)的區(qū)域建議方法提取出大約2000個(gè)候選區(qū)域,即首先過(guò)濾掉那些大概率不包含物體的區(qū)域,通過(guò)這一階段將原始圖像中需要處理的區(qū)域大大減少;

      (2) 第二步,分為兩個(gè)小步:

      • 第一小步,需要對(duì)第一階段中抽取得到的候選區(qū)域,經(jīng)過(guò)一個(gè)叫做"warp"的過(guò)程,這個(gè)warp實(shí)際就是一個(gè)縮放的過(guò)程,因?yàn)榈谝徊轿覀兲崛〕龅暮蜻x區(qū)域大小不一,但是后續(xù)接入的深度網(wǎng)絡(luò)的輸入是固定的,因此這些區(qū)域的大小需要適配CNN網(wǎng)絡(luò)固定大小的輸入;
      • 第二小步,把第一小步中warp之后的候選區(qū)域接入到卷積神經(jīng)網(wǎng)絡(luò),抽取一個(gè)相對(duì)低維的特征;

      (3) 第三步,對(duì)應(yīng)圖中的3~4,對(duì)每個(gè)類(lèi)都訓(xùn)練一個(gè)二元的線性SVM,然后判斷上一步抽取的特征是否包含物體。

      (4) 第四步,這一步圖上并沒(méi)有畫(huà)出,這一步用于對(duì)包含物體的候選區(qū)域位置進(jìn)行回歸,以修正偏差。

      3. 算法具體流程

      通過(guò)算法框架我們能夠大致了解RCNN運(yùn)作的流程,但真正實(shí)施起來(lái)會(huì)包含很多問(wèn)題,我們一一來(lái)看。

      (1) 怎樣使用selective search方法提取候選區(qū)域

      RCNN一大創(chuàng)新點(diǎn)是對(duì)原始圖像抽取一些候選區(qū)域,再使用深度學(xué)習(xí)進(jìn)行特征抽取,文中列舉了一些區(qū)域建議的方法,最后使用的是selective search的方法:“Selective Search for Object Recognition”。selective search是一種“hierarchical bottom-up grouping”的方法,即層次、自底向上的分組方法,簡(jiǎn)單來(lái)說(shuō)就是先找出圖像中的相鄰區(qū)域,然后定義一個(gè)領(lǐng)域相識(shí)度的計(jì)算規(guī)則,使用這些規(guī)則一直合并相似度較高的區(qū)域并且更新,最后知道覆蓋至整張圖像,完成處理的圖像中不同的區(qū)域就是這些“region proposal”。以下是示意圖:

      圖8 selective search算法示意圖

      了解一個(gè)算法最好的方法就是看原始的paper,原始的paper對(duì)算法的描述步驟如下:

      輸入:一張圖像(彩色) 輸出:候選的box區(qū)域

      算法開(kāi)始需要初始化一些區(qū)域的集合:\(R=\left \{ r_{1},r_{2},...r_n{} \right \}\),文章中使用paper:“Efficient graph-based image segmentation”來(lái)做這件事;同時(shí)還初始化一個(gè)空的相似度區(qū)域的集合\(S=\varnothing \)

      a. 對(duì)于所有的相鄰區(qū)域\((r_{i},r_{j})\),按照相似度規(guī)則計(jì)算相似度\(s(r_{i},r_{j})\),并且計(jì)算\(S=S\cup s(r_{i},r_{j})\),即計(jì)算所有領(lǐng)域的相似度集合;

      b. 假如\(S\neq \varnothing \):

      • 獲取\(S\)中相似度最高的一對(duì)區(qū)域\(s(r_{i},s_{j})=max(S)\);
      • 對(duì)最相似的兩個(gè)區(qū)域進(jìn)行合并\(r_{t}=r_{i}\cup r_{j}\);
      • 從\(S\)集合中去除和\(r_{i}\)及\(r_{j}\)相鄰的相似區(qū)域;
      • 計(jì)算合并后的區(qū)域和其鄰域的相似度集合\(S=S\cup S_{t}\)及\(R=R\cup R_{t}\)
      • 重復(fù)以上步驟直至\(S= \varnothing \)

      c. 從集合\(R\)中提取出所有的boxes,即定位的矩形區(qū)域

      對(duì)于相似度的計(jì)算方法selective search的原始論文中定義為顏色、紋理、尺寸等幾種不同度量方式的疊加之和:

      \(s(r_{i},r_{j})=a_{1}s_{colour}(r_{i},r_{j})+a_{2}s_{texture}(r_{i},r_{j})+a_{3}s_{size}(r_{i},r_{j})+a_{4}s_{fill}(r_{i},r_{j})\)    \(a\in \left \{ 0,1 \right \}\)   

      對(duì)每種具體的計(jì)算方式這里就不多提了。

      (2) CNN網(wǎng)絡(luò)輸入

      使用選擇性搜索提取出大小不一的候選區(qū)域之后,然后經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征,文中提到的是使用12年的AlexNet,此網(wǎng)絡(luò)的輸入是固定大小的\(227\times 227\),輸出是\(4096\)維的特征向量,由于輸出的尺寸固定,而RCNN第一步抽取的候選區(qū)域大小不一,因此給出了幾種方法對(duì)候選區(qū)域的大小進(jìn)行變換以適配網(wǎng)絡(luò)輸入:

      a. 各向異性(anisotropically)縮放,即對(duì)候選區(qū)域縮放的高和寬的倍數(shù)不同,直接拉成CNN中輸入大小的形式,這種變換在文中稱(chēng)為“warp”;

      b. 各向同性(isotropically)縮放,即縮放的高和寬的比例倍數(shù)相同,這里又分為兩種:一種對(duì)原始的圖像按等比例縮放后的灰色區(qū)域進(jìn)行填充,另一種不進(jìn)行填充。

      如下圖所示,其中(A)為原始圖像;(B)、(C)分別對(duì)應(yīng)各向同性的兩種方法;(D)對(duì)應(yīng)的是各向異性的方法。另外每種方法在下圖中有兩行,上面的一行表示縮放之后如果候選區(qū)域超出了邊界不進(jìn)行padding,即不使用周?chē)南袼剡M(jìn)行填充,下一行是進(jìn)行16像素的padding。文中進(jìn)行的實(shí)驗(yàn)表明使用padding為16像素的“warp”方法效果最好。

       圖9 幾種候選區(qū)域縮放的方法對(duì)比

      (3) CNN網(wǎng)絡(luò)訓(xùn)練

      訓(xùn)練分成“pre-training”+“fine-tuning”:首先選用caffe中已經(jīng)訓(xùn)練好的模型在大的數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練(ILSVRC2012圖像分類(lèi)的數(shù)據(jù)集 )得到一個(gè)初始的網(wǎng)絡(luò),然后在此網(wǎng)絡(luò)的基礎(chǔ)上細(xì)調(diào):替換網(wǎng)絡(luò)最后的輸出層,因?yàn)镮mageNet分類(lèi)數(shù)據(jù)集的輸出層包含1000個(gè)類(lèi),這里進(jìn)行目標(biāo)檢測(cè)的類(lèi)別不一致,比如VOC使用的是20個(gè)類(lèi),而ILSVRC2013 的目標(biāo)檢測(cè)使用的是200個(gè)類(lèi),把背景也當(dāng)成一類(lèi)的話,實(shí)際的網(wǎng)絡(luò)輸出層的個(gè)數(shù)應(yīng)該是\(N+1\),\(N\)為目標(biāo)的類(lèi)別。在細(xì)調(diào)的時(shí)候考慮與ground truth(也就是真實(shí)的包含物體的區(qū)域)的IoU超過(guò)0.5的為正類(lèi),其余的均為負(fù)類(lèi),迭代的時(shí)候使用SGD方法,選取0.001的學(xué)習(xí)率,使用包含32個(gè)正類(lèi)樣本和96個(gè)負(fù)類(lèi)樣本組成mini-bacth。

      (4) SVM分類(lèi)器的訓(xùn)練

      一旦CNN網(wǎng)絡(luò)訓(xùn)練完成,去除網(wǎng)絡(luò)中的最后的輸出層,以全連接層的輸出得到新的特征向量,以供訓(xùn)練SVM。這里文中提到了SVM訓(xùn)練階段正負(fù)樣本的劃分,注意的是這里的正負(fù)類(lèi)的選擇和CNN網(wǎng)絡(luò)訓(xùn)練時(shí)的不同,訓(xùn)練SVM時(shí)正類(lèi)定義為ground truth,候選區(qū)域中與ground truth的IoU小于0.3的定義為負(fù)類(lèi),其余的候選區(qū)域忽略;文中附錄探討了為什么這樣做的兩個(gè)問(wèn)題:一個(gè)是為什么不直接在CNN網(wǎng)絡(luò)后面用softmax進(jìn)行分類(lèi),而使用SVM;一個(gè)是正負(fù)類(lèi)樣本的定義方式,我們放在第(8)點(diǎn)專(zhuān)門(mén)介紹。

      (5) 非極大值抑制過(guò)濾重疊的bounding box

      在test階段,候選區(qū)域經(jīng)過(guò)CNN提取特征之后最后使用SVM進(jìn)行分類(lèi)評(píng)分,得到很多的bounding box,由于這些bounding box包含很多重疊的部分,如下:

      圖8 左圖是預(yù)期的bounding box,右圖是實(shí)際得到的bounding box

      文中使用非極大值抑制(non-maximum suppression,NMS)方法去除那些輸出的重疊程度比較高的bounding box,NMS是目標(biāo)檢測(cè)中用的非常頻繁的一種算法,大致的步驟是:

      首先對(duì)輸出的bounding box進(jìn)行打分,找出評(píng)分最高的bounding box,計(jì)算其他的bounding box和它的IoU值,選取一個(gè)閾值,從輸出的bounding box中移除那些IoU小于這個(gè)閾值的box,然后重復(fù)這個(gè)步驟,直至僅存在保留的bounding box。文中使用NMS基于每個(gè)單獨(dú)的類(lèi)。

      (6) 檢測(cè)時(shí)間分析

      整個(gè)檢測(cè)階段的時(shí)間包含:選擇性搜索得到一系列region proposal,然后通過(guò)CNN抽取這些region proposal的特征,使用SVM分類(lèi)打分,最后使用NMS去除重疊部分;作者認(rèn)為有兩個(gè)特性讓檢測(cè)比較有效,其一是網(wǎng)絡(luò)共享,其二是使用CNN進(jìn)行了降維;主要的時(shí)間開(kāi)銷(xiāo)時(shí)間在計(jì)算候選區(qū)域和特征(GPU上13s一張,CPU上53秒一張,現(xiàn)在看來(lái)真的是非常慢。。。);作者也提到了和DPM算法的比較,精度和速度都有大幅度提升??上攵?,別看現(xiàn)在我們能做到實(shí)時(shí)高精度的檢測(cè),前幾年這些深度學(xué)習(xí)方法在目標(biāo)檢測(cè)中的突破真的是巨大。

      (7) 回歸器修正box偏差

      候選區(qū)域經(jīng)過(guò)SVM打分之后,需要經(jīng)過(guò)回歸器進(jìn)行修正,修正的目的是得到一個(gè)新的bounding box,新的bounding box預(yù)測(cè)的偏差減小,文中使用的回歸器修正啟發(fā)于deformable part models(DPM,深度學(xué)習(xí)火熱之前比較重要的一種目標(biāo)檢測(cè)方法,在以后的blog中有時(shí)間會(huì)詳細(xì)解釋這種方法),而且回歸是基于每個(gè)特定類(lèi)的。具體來(lái)說(shuō)給定預(yù)測(cè)的bounding box和ground truth的集合\({(P^{i},G^{i})}_{i=1,...,N}\),其中\(zhòng)(P^{i}=(p_{x}^{i},p_{y}^{i},p_{w}^{i},p_{h}^{i})\),\(G^{i}=(g_{x}^{i},g_{y}^{i},g_{w}^{i},g_{h}^{i})\),\(x,y,w,h\)分別表示左上角的坐標(biāo)以及box的寬和高,修正的目的是把\(P\)變換到預(yù)測(cè)的ground truth\(\hat{G}\),變換的的函數(shù)有四個(gè)分別是\(d_{x}(P),d_{y}(P),d_{w}(P),d_{h}(P)\),變換的具體公式如下:

      \(\hat{G}_{x}=P_{w}d_{x}(P)+P_{x}\)

       \(\hat{G}_{y}=P_{h}d_{y}(P)+P_{y}\)

      \(\hat{G}_{w}=P_{w}exp(d_{w}(P))\)

      \(\hat{G}_{h}=P_{h}exp(d_{h}(P))\)

      這里的四個(gè)\(d_{x}(P)\),\(d_{y}(P)\),\(d_{w}(P)\),\(d_{h}(P)\)由CNN最后一層的pooling層的特征經(jīng)過(guò)線性變換得到:\(d_{*}(P)=w_{*}^{T}\varnothing (P)\),因此這里我們需要學(xué)習(xí)的參數(shù)變成\(w_{*}\),此問(wèn)題可以看成是一個(gè)標(biāo)準(zhǔn)的嶺回歸問(wèn)題:

       \(w_{*}=\underset{\hat{w}_{*}}{argmin}\sum_{i}^{N}(t_{*}^{i}-\hat{w}_{*}\varnothing(P^{i}) )+\lambda \left \| \hat{w}_{*} \right \|^{2}\)

      而上式中回歸的目標(biāo)\(t\)可以由給定的\(P\)和\(G\)及公式(1)~(4)反推得到:

       \( t_{x}=(G_{x}-P_{x})/P_{w}\)

      \( t_{y}=(G_{y}-P_{y})/P_{h}\)

      \(t_{w}=log(G_{w}/P_{w})\)

      \(t_{h}=log(G_{h}/P_{h})\)

      這里帶正則項(xiàng)的標(biāo)準(zhǔn)回歸問(wèn)題很容易得到封閉解。

      (8) 為什么RCNN使用SVM替代softmax層進(jìn)行分類(lèi)?

      對(duì)于這個(gè)問(wèn)題作者分兩點(diǎn)進(jìn)行了解釋?zhuān)?/span>

      其一,作者做過(guò)實(shí)驗(yàn)表明,在微調(diào)階段嘗試使用和SVM相同定義的正負(fù)類(lèi)樣本數(shù),效果比較差,對(duì)此作出假設(shè):怎樣定義正負(fù)類(lèi)樣本數(shù)并不重要,重要的是造成這種結(jié)果的差異源于微調(diào)中數(shù)據(jù)的有限,當(dāng)使用IoU0大于0.5的樣本作為正類(lèi)時(shí)(文中用“jittered”形容這些數(shù)據(jù)),樣本增加了接近30倍,避免了過(guò)擬合;并且,這些jittered的數(shù)據(jù)導(dǎo)致了fine-tuning階段的結(jié)果并不是最優(yōu)的,因?yàn)楝F(xiàn)在選的正類(lèi)樣本并不是“精準(zhǔn)定位”的(顯然這是由于IoU閾值變高導(dǎo)致正類(lèi)樣本的門(mén)檻變“低”了);

      其二,根據(jù)第一點(diǎn)解釋恰好引出了第二個(gè)點(diǎn),即為什么使用SVM而不是直接使用softmax層進(jìn)行分類(lèi),作者認(rèn)為按照剛才的解釋?zhuān)⒄{(diào)階段CNN并不能進(jìn)行“精準(zhǔn)定位”,并且softmax訓(xùn)練的時(shí)候只是隨機(jī)采樣負(fù)類(lèi)樣本,而SVM訓(xùn)練階段可以考慮那些“hard negative”的樣本。這里使用了“hard negative mining”的思想,以目標(biāo)檢測(cè)為例,第一輪訓(xùn)練的時(shí)候先按照預(yù)先定義好的正負(fù)類(lèi)樣本進(jìn)行分類(lèi);第二輪對(duì)于那些本身是負(fù)類(lèi)卻被誤判為正類(lèi)的樣本,即通常我們所說(shuō)的“false positive”樣本,計(jì)入負(fù)類(lèi)樣本重新進(jìn)行訓(xùn)練,這個(gè)過(guò)程重復(fù)幾次最終得到的效果會(huì)比較好。

      基于以上兩點(diǎn)考慮,作者認(rèn)為有必要在CNN后面接上SVM進(jìn)行分類(lèi)。

      三 RCNN中的對(duì)比實(shí)驗(yàn)分析、特征可視化、“Ablation studies”、誤差分析等工作

      除了這篇博客第二節(jié)中分析的模型架構(gòu)流程外,作者在實(shí)驗(yàn)分析、數(shù)據(jù)可視化以及“Ablation studies”、誤差分析等多個(gè)方面都進(jìn)行了很詳盡的分析,這里的內(nèi)容太多不細(xì)說(shuō),而是稍微提及。

      1. 在Pascal VOC10-12以及ILSVRC2013 detection 的實(shí)驗(yàn)結(jié)果
      在VOC10上作者主要和DPM類(lèi)方法(DPM以及SegDPM)以及UVA系統(tǒng)(主要是selective search方法,使用四層空間金字塔的sift方法+核SVM)進(jìn)行了對(duì)比,RCNN在實(shí)驗(yàn)精度上從35.1mAP提升到了53.7mAP,并且速度上也有一定程度提高,而在VOC12上也獲得了53.3的mAP;在ILSVRC2013數(shù)據(jù)集上和OverFeat方法進(jìn)行對(duì)比(實(shí)際列舉的對(duì)比方法比較多)從24.3mAP提升到31.4mAP。

      2. 特征學(xué)習(xí)可視化

      作者使用了一種非參數(shù)的方法來(lái)顯示網(wǎng)絡(luò)到底學(xué)習(xí)到了什么,重點(diǎn)分析了最后一個(gè)pooling層的激活值的可視化。

      3. Ablation studies
      Ablation studies 可以看成是去除算法中的某些結(jié)構(gòu),然后進(jìn)行實(shí)驗(yàn)并比較分析實(shí)驗(yàn)的對(duì)比效果,比較了沒(méi)有fine-tuning和有fine-tuning的效果對(duì)比;同時(shí)還分析了RCNN和兩種不同的DPM方法(HOG+DPM和稀疏編碼直方圖+DPM,簡(jiǎn)稱(chēng)HSC+DPM),得出的結(jié)論是RCNN的性能也要好于二者。

      4. 關(guān)于網(wǎng)絡(luò)結(jié)構(gòu)

      作者除了使用AlexNet以外,還使用了VGG代替進(jìn)行實(shí)驗(yàn),結(jié)果從58.5%mAP提升到66.0%mAP,代價(jià)是由于網(wǎng)絡(luò)變深不少導(dǎo)致計(jì)算時(shí)間提升。

      5. 關(guān)于誤差分析

      這里的誤差分析使用了paper“Diagnosing error in object detector”的方法,而減小誤差的方法就是之前提到的DPM中使用的回歸修正偏差。

      除以上外作者還詳細(xì)地討論了在ILSVRC2013上從訓(xùn)練、驗(yàn)證、Ablation studies等等非常詳細(xì)的實(shí)驗(yàn)對(duì)比和討論,工作量非常的豐富,有興趣的同學(xué)可以直接看原始paper。

      四 RCNN算法總結(jié)及其缺點(diǎn)

      RCNN是使用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)中非常有意義的一項(xiàng)工作,它首先利用選擇性搜索選取一些區(qū)域候選框,然后通過(guò)CNN抽取特征并使用SVM進(jìn)行分類(lèi),然后使用NMS排除重疊的bounding box,最后使用回歸器對(duì)box的位置進(jìn)行修正。一方面,RCNN在精度上和速度上相比較傳統(tǒng)方法均有很大的提升,是一個(gè)有里程碑意義的研究;另一方面我們應(yīng)該也可以看到,RCNN這篇論文中的工作量非常大,了解其中的細(xì)節(jié)便于我們理解目標(biāo)識(shí)別領(lǐng)域的關(guān)鍵問(wèn)題,同時(shí)RCNN也結(jié)合或借鑒了之前的算法,比如選擇性搜索進(jìn)行區(qū)域候選、使用NMS篩選窗口、DPM中的回歸修正的思想等等,可以說(shuō)是“站在前人的肩膀上”。通過(guò)分析我們可以得出RCNN的一些缺點(diǎn):

      (1) RCNN的耗時(shí)體現(xiàn)在兩個(gè)階段,一個(gè)是區(qū)域候選需要一定時(shí)間,另一個(gè)是對(duì)于每一個(gè)區(qū)域候選框都需要重新丟進(jìn)網(wǎng)絡(luò)里才能抽取特征,特別是后者導(dǎo)致RCNN非常的慢;

      (2) RCNN在網(wǎng)絡(luò)的輸入是使用的warp方法,這種縮放會(huì)不會(huì)對(duì)最終的精度有影響?

      (3) RCNN顯然并不是一個(gè)端到端的工作,通常情況下我們認(rèn)為端到端的工作可以達(dá)到更好的效果,因?yàn)椴煌K之間的銜接可能會(huì)存在一定的信息損失。

      本文是目標(biāo)檢測(cè)系列的第一篇,主要介紹目標(biāo)檢測(cè)中的基本問(wèn)題以及RCNN算法,下篇將介紹SPP算法。

      posted @ 2018-08-24 10:26  supersayajin  閱讀(10971)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 人妻少妇久久中文字幕| 97久久久亚洲综合久久| 国产欧美亚洲精品a| 综合色一色综合久久网| 亚洲 欧美 唯美 国产 伦 综合| 天堂网亚洲综合在线| 色悠悠国产精品免费观看| 国产精品三级中文字幕| 亚洲精品专区永久免费区| 无码囯产精品一区二区免费| 久青草国产在视频在线观看 | 精品久久人人做爽综合| 欧美精欧美乱码一二三四区| 国产精品一区在线免费看| 精品国产一区av天美传媒| 日韩精品 在线一区二区| 国产激情一区二区三区成人| 欧美人禽zozo动人物杂交| 欧美在线人视频在线观看| 玉田县| 国产精品乱码久久久久久小说| 18禁黄无遮挡网站免费| 国产黄色看三级三级三级| 亚洲精品日韩在线丰满| 狠狠躁夜夜躁人人爽天天5| 国产日韩精品欧美一区灰| 在线免费不卡视频| 国产成人精品18| 国产人妻久久精品一区二区三区| 久久亚洲综合精品成人网| 欧美高清狂热视频60一70| 狠狠噜天天噜日日噜| 日本丰满人妻xxxxxhd| 国产乱理伦片在线观看| 自拍视频一区二区三区四区 | 欧美人成精品网站播放| 嫩草成人AV影院在线观看| 成年午夜无码av片在线观看| 欧美日韩免费专区在线观看| 欧美成人h精品网站| 国产jjizz女人多水喷水|