2017 基於學習的目標檢測及應用

2021-08-31 18:16:00 字數 3416 閱讀 8021

1.現有的各類目標檢測框架存在的共有侷限和瓶頸:

a,小目標的感知和檢測;b,精度和速度難以兼得;c,設計和開發適合資源受限平台的輕量化演算法和和研究深度模型的壓縮技術日益成為焦點。

2.目標檢測的發展值得關注:

a,檢測效能的優化,包括精度的提公升和效率的增長,尤其在小目標檢測這個子問題上需要突破瓶頸;b,模型規模的壓縮。

3.related works

2023年,w.liu等人提出了另乙個檢測框架ssd,ssd融合了yolo的回歸思想和rpn的錨點定位思想,在保持實時性的同時將檢測精度提高到了與faster rcnn相當的水平。

2023年,ty.lin等人提出了特徵金字塔網路(feature pyramid network,fpn),該網路使用不同解析度的特徵圖感知不同大小的物體,並通過連續上取樣和跨層融合機制使輸出特徵兼具底層視覺資訊和高層語義資訊,fpn在ms coco上的單模型map可以達到36.2%,具有空前的效能優勢。

2023年,fn.landola等人提出了參數量極少的「擠壓網路(squeezenet),該網路通過削減卷積通道數和廣泛使用小規模卷積核,在保持和alexnet效能相當的同時大幅縮減了引數規模。同年,s.han等人提出了深度壓縮(deep compression)演算法:使用權值剪枝、量化和哈夫曼編碼等方法將alexnet壓縮了35倍而模型的效能基本保持不變。

4.roi pooling層的過程就是為了將proposal摳出來的過程,然後resize到統一的大小。roi pooling層的操作如下:

1、根據輸入的image,將roi對映到feature map對應的位置;

2、將對映後的區域劃分為相同大小的sections(sections數量和輸出的維度相同);

3、對每個section進行max pooling操作。

5.r-fcn主要創新包括兩個方而:

一是提出了位置敏感的候選區域池化演算法,通過人工引入位置資訊給模型引數乙個強烈的先驗約束,從而提公升網路對目標位置的敏感度;

二是明顯減少了需要遍歷每個候選區域的末端檢測器參數量,使得網路的絕大部分都直接處理整幅影象,從而加快了檢測速度。

在現有的基於深度學習的物體檢測模型基礎上進行區域性改進和調整,在網路結構和演算法流程中提出並實現一些更適應小目標檢測的方法和手段。同時,初步**輕量級目標檢測模型的設計搭建和檢測模型的壓縮演算法。

實現(mask rcnn中的)候選區域匹配池化演算法,並推廣到r-fcn框架中,提出位置敏感的候選區域匹配池化演算法;

以squeezenet分類網路和faster rcnn檢測框架為基礎,搭建小規模檢測網路,並使用權值聚類等方法實現進一步的模型壓縮;

設計了一種包含反卷積上取樣和跨層特徵融合的faster rcnn檢測演算法,獲得了小物體檢測效能上的提公升;隨後嘗試復現fpn。

演算法實現細節

候選區域匹配池化演算法:用於解決roi pooling進行兩次量化而產生誤差這一問題,該演算法不對候選區域邊界以及單元邊界作量化,而是固定4個座標位置,用雙線性內插的方法計算這四個位置的值。

上取樣的實現:採用乙個額外編寫的專門實現雙線性插值的上取樣層;取消fpn原文中的head6,搭建了乙個四路的特徵金字塔網路;末端檢測器引數共享方式,並行使用4個共享引數的末端檢測器在網路訓練時很難有效收斂,因此本文搭建的特徵金字塔網路顯式的使用同乙個末端檢測結構。但是實驗結果不收斂,為什麼呢?

問題:

1.候選區域匹配池化演算法只適用於兩級網路優化?

2.如何搭建小規模檢測網路,如果我搭建了,如何使用權值聚類,奇異值分解,剪枝,蒸餾?

3.反卷積上取樣和跨層特徵融合的ssd就是ssd+fpn?

展望:

1.可以嘗試將本文提出的區域匹配思想進一步推廣到單級檢測網路;

2.可以採用mobilenet,shufflenet等模型與單級檢測網路結合,並利用低秩分解、剪枝、編碼操作等壓縮手段,獲得更滿意的引數縮減效果;

3.特徵金字塔是一種思想,原**中發表的網路只是將這種思想應用到了faster rcnn檢測框架流程中。而每個階梯的檢測結構並不受限於文中所述的候選區域推薦加末端檢測器這一固定流程,許多其他的兩級檢測演算法甚至單級檢測演算法都可以被應用到特徵金字塔網路中。

=小網路設計摘抄=

如何將squeezenet網路遷移到faster r-cnn檢測框架中呢?

1.rpn的嵌入位置。 「如果rpn過於靠後,末端檢測器結構會過於簡單,不利於精確識別和擬合包圍框座標;反之如果過於靠前,基礎網路深度不夠,會影響rpn初定位的可靠性,同時增加末端檢測器的計算開銷。本實驗發現,將rpn放在fire9之前、pool8池化層之後,可以獲得較好且穩定的檢測效能。」

2.末端檢測器的設計。 「faster r-cnn末端檢測器包含兩個任務,因此採用共享引數的多工損失設計:分類採用softmax負對數交叉熵損失函式,要求輸入特徵為乙個c維向量,c表示類別數;包圍框回歸採用smoothl1損失函式,要求輸入特徵為乙個4xc維的向量。針對這兩種損失函式,需要在網路末端設計相應的特徵提取器。」

「由於squeezenet取消了全連線層,轉而採用卷積加全域性池化的方式進行末端特徵提取,這種設計的主要目的是控制引數量並且保持特徵的空間屬性。沿襲這一思路,我們首先想到保持分類分支的結構不變,同時採用類似的卷積+池化的方式新增包圍框回歸分支。然而實驗發現這種末端檢測器雖然引數規模小,但檢測效能很差。」

「基於這種情況,本文考慮在末端提取器的設計上採用全連線結構:保持網路其他部分不變,僅將分類和包圍框回歸末端提取器的卷積層和全連線池化層取消,代之以全連線層。實驗結果表明,改進後網路效能獲得明顯提公升,但與此同時,引數規模也隨之增長了五倍之多。」

「輸入到全連線層提取器的特徵(即fire9的擴張模組)通道數為512,是整個squeezenet網路中規模最大的卷積層,這是造成改進後網路引數急劇增長的首要原因。基於以上分析,本文嘗試在fire9之後加入額外的1x1卷積層對特徵進行降維、再將降維後的特徵輸入到分類和包圍框回歸的提取器中。實驗發現,在通道數從128-32過程中,通道數的減少反而使檢測效果更好,這說明原來的末端檢測器在結構上是存在較大冗餘的。實驗發現,在通道數為16的降維卷積層前面增加乙個通道數為32的卷積層,可以使檢測效能和方案4持平的同時將模型大小壓縮至9.1m;如果以通道數為16,大小為3x3的卷積核進行降維,可以讓map提高至0.533,引數規模為11m。」

基於深度學習的目標檢測綜述

目前主流的目標檢測演算法主要是基於深度學習模型,其可以分成兩大類 1 two stage檢測演算法,其將檢測問題劃分為兩個階段,首先產生候選區域 region proposals 然後對候選區域分類 一般還需要對位置精修 這類演算法的典型代表是基於region proposal的r cnn系演算法,...

基於深度學習的水下目標檢測

瀏覽到某博主關於參賽經歷的文章,原文請檢視 以下為個人思考 深度學習和目標檢測大家都了解,針對 水下 目標,從資料處理到訓練可以有各種各樣的方法來提高效果或效率。一 資料預處理 對影象資料進行預處理,能改善其特徵,影響目標檢測的效果。例如資料增強randombrightnesscontrast cl...

基於Transformer的目標檢測DETR

transformer之前在nlp領域大放異彩,但是在cv界平平無奇。自從eccv20這篇基於transformer的目標檢測模型detr發表以後,transformer在cv中應用的探索越來越廣泛,今天先粗淺的解讀一下這篇 剩下的慢慢學習。在目標檢測領域,faster rcnn無疑是最經典的模型之...