您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 facebook權重算法(騰訊算法高級研究員陳松堅:智能問答技術及其應用)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-04 06:44:37【】6人已围观

简介ling中,如果目標輸出為MxN,則在水平和豎直方向上,將輸入proposal劃分為MxN份,每一份取最大值,從而得到MxN的輸出特征圖。ROIPooling層后的特征圖,通過全連接層與softmax

ling中,如果目標輸出為MxN,則在水平和豎直方向上,將輸入proposal劃分為MxN份,每一份取最大值,從而得到MxN的輸出特征圖。

ROI Pooling層后的特征圖,通過全連接層與softmax,就可以計算屬于哪個具體類別,比如人,狗,飛機,并可以得到cls_prob概率向量。同時再次利用bounding box regression精細調整proposal位置,得到bbox_pred,用于回歸更加精確的目標檢測框。

這樣就完成了faster R-CNN的整個過程了。算法還是相當復雜的,對于每個細節需要反復理解。faster R-CNN使用resNet101模型作為卷積層,在voc2012數據集上可以達到83.8%的準確率,超過yolo ssd和yoloV2。其最大的問題是速度偏慢,每秒只能處理5幀,達不到實時性要求。

針對于two-stage目標檢測算法普遍存在的運算速度慢的缺點, yolo創造性的提出了one-stage。也就是將物體分類和物體定位在一個步驟中完成。 yolo直接在輸出層回歸bounding box的位置和bounding box所屬類別,從而實現one-stage。通過這種方式, yolo可實現45幀每秒的運算速度,完全能滿足實時性要求 (達到24幀每秒,人眼就認為是連續的)。它的網絡結構如下圖:

主要分為三個部分:卷積層,目標檢測層,NMS篩選層。

采用Google inceptionV1網絡,對應到上圖中的第一個階段,共20層。這一層主要是進行特征提取,從而提高模型泛化能力。但作者對inceptionV1進行了改造,他沒有使用inception mole結構,而是用一個1x1的卷積,并聯一個3x3的卷積來替代。(可以認為只使用了inception mole中的一個分支,應該是為了簡化網絡結構)

先經過4個卷積層和2個全連接層,最后生成7x7x30的輸出。先經過4個卷積層的目的是為了提高模型泛化能力。yolo將一副448x448的原圖分割成了7x7個網格,每個網格要預測兩個bounding box的坐標(x,y,w,h)和box內包含物體的置信度買粉絲nfidence,以及物體屬于20類別中每一類的概率(yolo的訓練數據為voc2012,它是一個20分類的數據集)。所以一個網格對應的參數為(4x2+2+20) = 30。如下圖

其中前一項表示有無人工標記的物體落入了網格內,如果有則為1,否則為0。第二項代表bounding box和真實標記的box之間的重合度。它等于兩個box面積交集,除以面積并集。值越大則box越接近真實位置。

分類信息: yolo的目標訓練集為voc2012,它是一個20分類的目標檢測數據集 。常用目標檢測數據集如下表:

| Name | # Images (trainval) | # Classes | Last updated |

| --------------- | ------------------- | --------- | ------------ |

| ImageNet | 450k | 200 | 2015 |

| COCO | 120K | 90 | 2014 |

| Pascal VOC | 12k | 20 | 2012 |

| Oxford-IIIT Pet | 7K | 37 | 2012 |

| KITTI Vision | 7K | 3 | |

每個網格還需要預測它屬于20分類中每一個類別的概率。分類信息是針對每個網格的,而不是bounding box。故只需要20個,而不是40個。而買粉絲nfidence則是針對bounding box的,它只表示box內是否有物體,而不需要預測物體是20分類中的哪一個,故只需要2個參數。雖然分類信息和買粉絲nfidence都是概率,但表達含義完全不同。

篩選層是為了在多個結果中(多個bounding box)篩選出最合適的幾個,這個方法和faster R-CNN 中基本相同。都是先過濾掉s買粉絲re低于閾值的box,對剩下的box進行NMS非極大值抑制,去除掉重疊度比較高的box(NMS具體算法可以回顧上面faster R-CNN小節)。這樣就得到了最終的最合適的幾個box和他們的類別。

yolo的損失函數包含三部分,位置誤差,買粉絲nfidence誤差,分類誤差。具體公式如下:

誤差均采用了均方差算法,其實我認為,位置誤差應該采用均方差算法,而分類誤差應該采用交叉熵。由于物體位置只有4個參數,而類別有20個參數,他們的累加和不同。如果賦予相同的權重,顯然不合理。故yolo中位置誤差權重為5,類別誤差權重為1。由于我們不是特別關心不包含物體的bounding box,故賦予不包含物體的box的置信度買粉絲nfidence誤差的權重為0.5,包含物體的權重則為1。

Faster R-CNN準確率mAP較高,漏檢率recall較低,但速度較慢。而yolo則相反,速度快,但準確率和漏檢率不盡人意。SSD綜合了他們的優缺點,對輸入300x300的圖像,在voc2007數據集上test,能夠達到58 幀每秒( Titan X 的 GPU ),72.1%的mAP。

SSD網絡結構如下圖:

和yolo一樣,也分為三部分:卷積層,目標檢測層和NMS篩選層

SSD論文采用了VGG16的基礎網絡,其實這也是幾乎所有目標檢測神經網絡的慣用方法。先用一個CNN網絡來提取特征,然后再進行后續的目標定位和目標分類識別。

這一層由5個卷積層和一個平均池化層組成。去掉了最后的全連接層。SSD認為目標檢測中的物體,只與周圍信息相關,它的感受野不是全局的,故沒必要也不應該做全連接。SSD的特點如下。

每一個卷積層,都會輸出不同大小感受野的feature map。在這些不同尺度的feature map上,進行目標位置和類別的訓練和預測,從而達到 多尺度檢測 的目的,可以克服yolo對于寬高比不常見的物體,識別準確率較低的問題。而yolo中,只在最后一個卷積層上做目標位置和類別的訓練和預測。這是SSD相對于yolo能提高準確率的一個關鍵所在。

如上所示,在每個卷積層上都會進行目標檢測和分類,最后由NMS進行篩選,輸出最終的結果。多尺度feature map上做目標檢測,就相當于多了很多寬高比例的bounding box,可以大大提高泛化能力。

和faster R-CNN相似,SSD也提出了anchor的概念。卷積輸出的feature map,每個點對應為原圖的一個區域的中心點。以這個點為中心,構造出6個寬高比例不同,大小不同的anchor(SSD中稱為default box)。每個anchor對應4個位置參數(x,y,w,h)和21個類別概率(voc訓練集為20分類問題,在加上anchor是否為背景,共21分類)。如下圖所示:

另外,在訓練階段,SSD將正負樣本比例定位1:3。訓練集給定了輸入圖像以及每個物體的真實區域(ground true box),將default box和真實box最接近的選為正樣本。然后在剩下的default box中選擇任意一個與真實box IOU大于0.5的,作為正樣本。而其他的則作為負樣本。由于絕大部分的box為負樣本,會導致正負失衡,故根據每個box類別概率排序,使正負比例保持在1:3。SSD認為這個策略提高了4%的準確率

另外,SSD采用了數據增強。生成與目標物體真實box間IOU為0.1 0.3 0.5 0.7 0.9的patch,隨機選取這些patch參與訓練,并對他們進行隨機水平翻轉等操作。SSD認為這個策略提高了8.8%的準確率。

和yolo的篩選層基本一致,同樣先過濾掉類別概率低于閾值的default box,再采用NMS非極大值抑制,篩掉重疊度較高的。只不過SSD綜合了各個不同feature map上的目標檢測輸出的default box。

SSD基本已經可以滿足我們手機端上實時物體檢測需求了,TensorFlow在Android上的目標檢測官方模型ssd_mobile買粉絲_v1_android_export.pb,就是通過SSD算法實現的。它的基礎卷積網絡采用的是mobileNet,適合在終端上部署和運行。

針對yolo準確率不高,容易漏檢,對長寬比不常見物體效果差等問題,結合SSD的特點,提出了yoloV2。它主要還是采用了yolo的網絡結構,在其基礎上做了一些優化和改進,如下

網絡采用DarkNet-19:19層,里面包含了大量3x3卷積,同時借鑒inceptionV1,加入1x1卷積核全局平均池化層。結構如下

yolo和yoloV2只能識別20類物體,為了優化這個問題,提出了yolo9000,可以識別9000類物體。它在yoloV2基礎上,進行了imageNet和買粉絲買粉絲的聯合訓練。這種方式充分利用imageNet可以識別1000類物體和買粉絲買粉絲可以進行目標位置檢測的優點。當使用imageNet訓練時,只更新物體分類相關的參數。而使用買粉絲買粉絲時,則更新全部所有參數。

YOLOv3可以說出來直接吊打一切圖像檢測算法。比同期的DSSD(反卷積SSD), FPN(feature pyramid 買粉絲works)準確率更高或相仿,速度是其1/3.。

YOLOv3的改動主要有如下幾點:

不過如果要求更精準的預測邊框,采用COCO AP做評估標準的話,YOLO3在精確率上的表現就弱了一些。如下圖所示。

當前目標檢測模型算法也是層出不窮。在two-stage領域, 2017年Facebook提出了mask R-CNN 。CMU也提出了A-Fast-RCNN 算法,將對抗學習引入到目標檢測領域。Face++也提出了Light-Head R-CNN,主要探討了 R-CNN 如何在物體檢測中平衡精確度和速度。

one-stage領域也是百花齊放,2017年首爾大學提出 R-SSD 算法,主要解決小尺寸物體檢測效果差的問題。清華大學提出了 RON 算法,結合 two stage 名的方法和 one stage 方法的優勢,更加關注多尺度對象定位和負空間樣本挖掘問題。

目標檢測領域的深度學習算法,需要進行目標定位和物體識別,算法相對來說還是很復雜的。當前各種新算法也是層不出窮,但模型之間有很強的延續性,大部分模型算法都是借鑒了前人的思想,站在巨人的肩膀上。我們需要知道經典模型的特點,這些tricks是為了解決什么問題,以及為什么解決了這些問題。這樣才能舉一反三,萬變不離其宗。綜合下來,目標檢測領域主要的難點如下:

一文讀懂目標檢測AI算法:R-CNN,faster R-CNN,yolo,SSD,yoloV2

從YOLOv1到v3的進化之路

SSD-Tensorflow超詳細解析【一】:加載模型對圖片進行測試  買粉絲s://blog.csdn.買粉絲/k87974/article/details/80606407

YOLO    買粉絲s://pjre

很赞哦!(5477)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:江西抚州广昌县

工作室:小组

Email:[email protected]