當前位置:首頁 » 操作系統 » 計算機視覺的演算法

計算機視覺的演算法

發布時間: 2025-08-14 10:41:56

『壹』 計算機視覺——典型的目標檢測演算法(Fast R-CNN演算法)(五)

【嵌牛導讀】目標檢測在現實中的應用很廣泛,我們需要檢測數字圖像中的物體位置以及類別,它需要我們構建一個模型,模型的輸入一張圖片,模型的輸出需要圈出圖片中所有物體的位置以及物體所屬的類別。在深度學習浪潮到來之前,目標檢測精度的進步十分緩慢,靠傳統依靠手工特徵的方法來提高精度已是相當困難的事。而ImageNet分類大賽出現的卷積神經網路(CNN)——AlexNet所展現的強大性能,吸引著學者們將CNN遷移到了其他的任務,這也包括著目標檢測任務,近年來,出現了很多目標檢測演算法。

【嵌牛鼻子】計算機視覺

【嵌牛提問】如何理解目標檢測演算法——Fast R-CNN

【嵌牛正文】

        為克服SPP-Net 存衡基在的問題,2015 年Girshick 等提出基於邊界框和多任務損失分類的Fast R-CNN[31]演算法。該演算法將SPP 層簡化,設計出單尺度的ROI Pooling 池化層結構;將整張圖像的候選區域采樣成固定大小,生成特徵圖後作SVD分解,通過RoI Pooling層得到Softmax的分類得分和BoundingBox 外接矩形框的窗口回歸兩個向量;用Softmax 代替SVM 提出多任務損失函數思想,將深度網路和SVM分類兩個階段整合,即將分類問題和邊框回歸問題進行合並。

演算法詳解:

Fast R-CNN的流程圖如下,網路有兩個輸入: 圖像和對應的region proposal 。其中region proposal由selective search方法得到,沒有表示在流程圖中。對每個類別都訓練一個回歸器,且只有非背景的region proposal才需要進行回歸。

ROI pooling:ROI Pooling的作用是對不同大小的region proposal,從最後卷積層輸出的feature map提取大小固定的feature map。簡單講可以看做是SPPNet的簡化版本,因為全連接層的輸入需要尺寸大小一樣,所以不能直接將不同大小的region proposal映射到feature map作為輸出,需要做尺寸變換。在文章中,VGG16網路使用搭中H=W=7的參數,即將一個h*w的region proposal分割成H*W大小的網格,然後知攔山將這個region proposal映射到最後一個卷積層輸出的feature map,最後計算每個網格里的最大值作為該網格的輸出,所以不管ROI pooling之前的feature map大小是多少,ROI pooling後得到的feature map大小都是H*W。

因此可以看出Fast RCNN主要有3個改進:1、卷積不再是對每個region proposal進行,而是直接對整張圖像,這樣減少了很多重復計算。原來RCNN是對每個region proposal分別做卷積,因為一張圖像中有2000左右的region proposal,肯定相互之間的重疊率很高,因此產生重復計算。2、用ROI pooling進行特徵的尺寸變換,因為全連接層的輸入要求尺寸大小一樣,因此不能直接把region proposal作為輸入。3、將regressor放進網路一起訓練,每個類別對應一個regressor,同時用softmax代替原來的SVM分類器。

在實際訓練中,每個mini-batch包含2張圖像和128個region proposal(或者叫ROI),也就是每張圖像有64個ROI。然後從這些ROI中挑選約25%的ROI,這些ROI和ground truth的IOU值都大於0.5。另外只採用隨機水平翻轉的方式增加數據集。

測試的時候則每張圖像大約2000個ROI。

損失函數的定義是將分類的loss和回歸的loss整合在一起,其中分類採用log loss,即對真實分類(下圖中的pu)的概率取負log,而回歸的loss和R-CNN基本一樣。分類層輸出K+1維,表示K個類和1個背景類。

這是回歸的loss,其中t^u表示預測的結果,u表示類別。v表示真實的結果,即bounding box regression target。

採用SVD分解改進全連接層。如果是一個普通的分類網路,那麼全連接層的計算應該遠不及卷積層的計算,但是針對object detection,Fast RCNN在ROI pooling後每個region proposal都要經過幾個全連接層,這使得全連接層的計算占網路的計算將近一半,如下圖,所以作者採用SVD來簡化全連接層的計算。另一篇博客鏈接講的R-FCN網路則是對這個全連接層計算優化的新的演算法。

稍微總結下訓練和測試的結構,如下面兩個圖,對演算法的理解會更清晰。

test結構圖在ROI Pooling層是怎麼輸出的畫得比較容易理解。

熱點內容
互聯網文件夾 發布:2025-08-14 15:55:21 瀏覽:697
python編譯為dll 發布:2025-08-14 15:43:40 瀏覽:792
機變酷卡編程 發布:2025-08-14 15:25:54 瀏覽:884
ftp亂碼上傳 發布:2025-08-14 15:25:52 瀏覽:731
sqlserver2008數據類型 發布:2025-08-14 15:25:03 瀏覽:721
魂斗羅歸來解壓縮 發布:2025-08-14 15:17:00 瀏覽:865
農村存儲 發布:2025-08-14 15:16:49 瀏覽:303
windows之間使用ftp傳輸 發布:2025-08-14 15:16:01 瀏覽:373
c語言寫的俄羅斯方塊 發布:2025-08-14 15:13:01 瀏覽:889
安卓怎麼跟別人合拍唱歌有自己聲音 發布:2025-08-14 14:57:41 瀏覽:987