日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 目标检测 >内容正文

目标检测

Fast R-CNN论文原理+目标检测笔记(二)

發(fā)布時(shí)間:2023/12/20 目标检测 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fast R-CNN论文原理+目标检测笔记(二) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 文章目錄

    • Fast R-CNN
        • 1. SPPnets
        • 2. ROI池化層
          • 2.1 介紹
          • 2.2 ROI池化層原理
        • 3. Fast R-CNN的原理

Fast R-CNN

論文摘要:This paper proposes a Fast Region-based Convolutional Network method (Fast R-CNN) for object detection. Fast R-CNN builds on previous work to efficiently classify object proposals using deep convolutional networks. Compared to previous work, Fast R-CNN employs several innovations to improve training and testing speed while also increasing detection accuracy. Fast R-CNN trains the very deep VGG16network 9× faster thanR-CNN, is 213× faster at test-time, and achieves a higher mAP on PASCAL VOC 2012. Compared to SPPnet, Fast R-CNN trains VGG16 3×faster, tests 10× faster, and is more accurate. Fast R-CNN is implemented in Python and C++ (using Caffe) and is available under the open-source MIT License at
https://github.com/rbgirshick/fast-rcnn.

The Fast R-CNN method has several advantages:

  • Higher detection quality (mAP) than R-CNN, SPPnet
  • Training is single-stage, using a multi-task loss
  • Training can update all network layers
  • No disk storage is required for feature caching
  • Fast R-CNN 主要是對(duì)R-CNN進(jìn)行了一些方法上的改進(jìn)。首先我們分析一下R-CNN慢的主要原因有哪些:

  • 首先就是每個(gè)候選的區(qū)域都要用CNN提取特征,而事實(shí)上它們都是這張圖片的一部分,很多計(jì)算都是重復(fù)的。
  • 此外訓(xùn)練慢就在于有多個(gè)模型——卷積網(wǎng)絡(luò)、SVM和Bouding box回歸。
  • 下面我們來(lái)看看Fast R-CNN是如何進(jìn)行改進(jìn)的,其中Fast R-CNN架構(gòu)圖如下所示:

    它的輸入是一張圖片和一些候選區(qū)域,對(duì)于輸入的圖片,它會(huì)使用多層的卷積網(wǎng)絡(luò)得到一些特征映射(Feature Map),然后對(duì)于每一個(gè)候選區(qū)域,一個(gè)RoI(Region of Interest)的pooling層會(huì)從這些特征映射中選取與之對(duì)應(yīng)的區(qū)域,通過(guò)pooling得到固定大小的特征,再把這些特征輸入全連接層。然后再?gòu)娜B接層分出兩個(gè)分支,一個(gè)用softmax進(jìn)行分類,另一個(gè)分支直接輸出4個(gè)數(shù)值,分別表示Bounding box的位置。

    Fast R-CNN對(duì)于每個(gè)圖片只用CNN提取一次特征,然后不同的候選區(qū)域會(huì)”共享“這個(gè)特征,只是使用RoI來(lái)選擇空間位置上與之對(duì)應(yīng)的部分,這樣預(yù)測(cè)的時(shí)候速度會(huì)比R-CNN快很多。其次,Fast R-CNN完全拋棄了SVM和一個(gè)單獨(dú)的Bouding box回歸。而是使用統(tǒng)一的一個(gè)深度神經(jīng)網(wǎng)絡(luò)來(lái)同時(shí)輸出分類和Bouding box的位置,因此是一個(gè)統(tǒng)一的訓(xùn)練過(guò)程,從而避免復(fù)雜的Pipeline和提高訓(xùn)練速度。

    在正式介紹Fast R-CNN算法之前,我們有必要了解一下SPPnets(Spatial pyramid pooling networks) 和ROI池化層。

    1. SPPnets

    SSPnet were proposed to speed up R-CNN by sharing computation. The SPPnet method computes a convolutional feature map for the entire input image and then classifies each object proposal using a feature vector extracted from the shared feature map.

    SPPnet accelerates R-CNN by 10 to 100× at test time. Training time is also reduced by 3× due to faster proposal feature extraction.

    SPPNet的英文全稱是Spatial Pyramid Pooling Convolutional Networks,即:“空間金字塔池化卷積網(wǎng)絡(luò)。名字聽(tīng)起來(lái)是不是感覺(jué)挺復(fù)雜,挺高大上的。其實(shí),SPPNet主要就是做了一件事情:

    將CNN的輸入從固定尺寸改進(jìn)為任意尺寸。例如,在普通的CNN結(jié)構(gòu)中,輸入圖像的尺寸往往是固定的(如224x224像素),輸出可以看做是一個(gè)固定維數(shù)的向量。SIPPNet在普通的CNN結(jié)構(gòu)中加入了ROI池化層(ROI Pooling ),使得網(wǎng)絡(luò)的輸入圖像可以是任意尺寸的,輸出則不變,同樣是一個(gè)固定維數(shù)的向量。ROI池化層一般跟在卷積層后面,它的輸入是任意大小的卷積,輸出是固定維數(shù)的向量。

    2. ROI池化層

    2.1 介紹

    ROI池化層能夠把任意大小的卷積特征轉(zhuǎn)換成固定長(zhǎng)度的向量,為了詳細(xì)介紹ROI池化層,不妨我們就設(shè)卷積層輸出的寬度為w,高度為h,通道為c。不管輸入的圖像尺寸是多少,卷積層的通道數(shù)都不會(huì)變,也就是說(shuō)c是一個(gè)常數(shù)。而w、h會(huì)隨著輸入圖像尺寸的變化而變化,可以看作是兩個(gè)變量。以上圖中的ROI池化層為例,它首先把卷積層劃分為4x4的網(wǎng)格,每個(gè)網(wǎng)格的寬是w/4、高是h/4、通道數(shù)為c。當(dāng)不能整除時(shí),需要取整。接著,對(duì)每個(gè)網(wǎng)格中的每個(gè)通道,都取出其最大值,換句話說(shuō),就是對(duì)每個(gè)網(wǎng)格內(nèi)的特征做最大值池化(Max Pooling )。這個(gè)4x4的網(wǎng)格最終就形成了16c維的特征。接著,再把網(wǎng)絡(luò)劃分成2x2的網(wǎng)格,用同樣的方法提取特征,提取的特征的長(zhǎng)度為4c。再把網(wǎng)絡(luò)劃分為1x1的網(wǎng)格,提取的特征的長(zhǎng)度就是c,最后的1x1的劃分實(shí)際是取出卷積中每個(gè)通道的最大值。最后,將得到的特征拼接起來(lái),得到的特征是16c+4c+c = 21c維的特征。很顯然,這個(gè)輸出特征的長(zhǎng)度與w, h兩個(gè)值是無(wú)關(guān)的,因此ROI池化層可以把任意寬度、高度的卷積特征轉(zhuǎn)換為固定長(zhǎng)度的向量。

    那么應(yīng)該怎么把ROI池化層用到目標(biāo)檢測(cè)中來(lái)呢,其實(shí),可以這樣考慮該問(wèn)題:網(wǎng)絡(luò)的輸入是一張圖像,中間經(jīng)過(guò)若干卷積形成了卷積特征,這個(gè)卷積特征實(shí)際上和原始圖像在位置上是有一定對(duì)應(yīng)關(guān)系的。原始圖像的目標(biāo)會(huì)使得卷積特征在同樣位置產(chǎn)生激活。因此,原始圖像中的候選框,實(shí)際上也可以對(duì)應(yīng)到卷積特征中相同位置的框。由于候選框的大小千變?nèi)f化,對(duì)應(yīng)到卷積特征的區(qū)域形狀也各有不同,但是不用擔(dān)心利用ROI池化層可以把卷積特征中的不同形狀的區(qū)域?qū)?yīng)到同樣長(zhǎng)度的向量特征。綜合上述步驟,就可以將原始圖像中的不同長(zhǎng)寬的區(qū)域都對(duì)應(yīng)到一個(gè)固定長(zhǎng)度的向量特征,這就完成了各個(gè)區(qū)域的特征提取工作。

    而且我們知道,在R-CNN中,對(duì)于原始圖像的各種候選區(qū)域框,必須把框中的圖像縮放到統(tǒng)一大小,再對(duì)每一張縮放后的圖片提取特征。使用ROI池化層后,就可以先對(duì)圖像進(jìn)行一遍卷積計(jì)算,得到整個(gè)圖像的卷積特征;接著,對(duì)于原始圖像中的各種候選框,只需要在卷積特征中找到對(duì)應(yīng)的位置框,再使用ROI池化層對(duì)位置框中的卷積提取特征,就可以完成特征提取工作。

    • R-CNN和SPPNet的不同點(diǎn)在于,R-CNN要對(duì)每個(gè)區(qū)域計(jì)算卷積,而SPPNet只需要計(jì)算一次,因此SPPNet的效率比R-CNN高得多。
    • R-CNN和SPPNet的相同點(diǎn)在于,它們都遵循著提取候選框、提取特征、分類幾個(gè)步驟。在提取特征后,它們都使用了SVM進(jìn)行分類。

    2.2 ROI池化層原理

    如上所述,我們可以利用 ROI 池化將不同大小的 ROI 轉(zhuǎn)換為固定大小。

    為簡(jiǎn)潔起見(jiàn),我們以8×8 特征圖轉(zhuǎn)換為預(yù)定義的 2×2 大小為例。

    • 下圖左上角:特征圖。
    • 右上角:將 ROI(藍(lán)色區(qū)域)與特征圖重疊。
    • 左下角:將 ROI 拆分為目標(biāo)維度。例如,對(duì)于 2×2 目標(biāo),我們將 ROI 分割為 4 個(gè)大小相似或相等的部分。
    • 右下角:找到每個(gè)部分的最大值,得到變換后的特征圖

    輸入特征圖(左上),輸出特征圖(右下),ROI (右上,藍(lán)色框)

    按上述步驟,我們便可以得到一個(gè) 2×2 的特征圖塊,然后可以饋送至分類器和邊界框回歸器中。

    3. Fast R-CNN的原理

    在SPPNet中,實(shí)際上特征提取和區(qū)域分類兩個(gè)步掇還是分離的。只是使用ROI池化層提取了每個(gè)區(qū)域的特征,在對(duì)這些區(qū)域分類時(shí),還是使用傳統(tǒng)的SVM作為分類器。Fast R-CNN相比SPPNet更進(jìn)一步,不再使用SVM作為分類器,而是使用神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,這樣就可以同時(shí)訓(xùn)練特征提取網(wǎng)絡(luò)和分類網(wǎng)絡(luò),從而取得比SPPNet更高的準(zhǔn)確度。

    對(duì)于原始圖片中的候選框區(qū)域,和SPPNet中的做法一樣,都是將它映射到卷積特征的對(duì)應(yīng)區(qū)域,然后使用ROI池化層對(duì)該區(qū)域提取特征。在這之后,SPPNet是使用SVM對(duì)特征進(jìn)行分類,而Fast R-CNN則是直接使用全連接層。全連接層有兩個(gè)輸出,一個(gè)輸出負(fù)責(zé)分類,另一個(gè)輸出負(fù)責(zé)框回歸。

    先說(shuō)分類,假設(shè)要在圖像中檢測(cè)K類物體,那么最終的輸出應(yīng)該是K+l個(gè)數(shù),每個(gè)數(shù)都代表該區(qū)域?yàn)槟硞€(gè)類別的概率。之所以是K+1個(gè)輸出而不是K個(gè)輸出,是因?yàn)檫€需要一類“背景類”,針對(duì)該區(qū)域無(wú)目標(biāo)物體的情況。

    Fast R-CNN與SPPNet最大的區(qū)別就在于,Fast R-CNN不再使用SVM進(jìn)行分類,而是使用一個(gè)網(wǎng)絡(luò)同時(shí)完成了提取特征、判斷類別、框回歸三項(xiàng)工作。

    Fast R-CNN 的流程圖:

    Fast R-CNN 最重要的一點(diǎn)就是包含特征提取器、分類器和邊界框回歸器在內(nèi)的整個(gè)網(wǎng)絡(luò)能通過(guò)多任務(wù)損失函數(shù)進(jìn)行端到端的訓(xùn)練,這種多任務(wù)損失即結(jié)合了分類損失和定位損失的方法,大大提升了模型準(zhǔn)確度。

    總結(jié)

    以上是生活随笔為你收集整理的Fast R-CNN论文原理+目标检测笔记(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。