CenterNet(objects as points)算法總結:Mimic、DCNv1、DCNv2、DLA

DCNv1

參考文章:https://zhuanlan.zhihu.com/p/37578271
主要思路:卷積操作不是在規規矩矩的3x3的格子裏做了,而是有了種種偏移。
在這裏插入圖片描述
在這裏插入圖片描述
deformable convolution在特徵圖的每個位置都生成一組偏移量。以kernel=3x3爲例,圖中的N就是9,經過卷積後輸出HxWx18的feature map,每個location位置的18分別對應3x3卷積的9個位置的9組偏移量。
在這裏插入圖片描述
在這裏插入圖片描述
優勢:
1.對物體的形變和尺度建模的能力比較強
2.感受野比一般卷積大很多,因爲有偏移的原因,一般的空洞卷積空洞是固定的,對不同的數據集不同情況可能最適合的空洞大小是不同的,但是可形變卷積的偏移是可以根據具體數據的情況進行學習的
3.可形變卷積可以適應物體的尺度,背景類的尺度一般在medium和large尺寸的物體之間,作者認爲這說明large的目標可以更有效幫助我們識別干擾

Mimic

參考文章:https://blog.csdn.net/mengmengmiao/article/details/77884565
主要思路:
大多數的檢測算法,都會有個基於CNN的特徵提取器,然後使用不同的方法來對特徵進行解碼,得到用於檢測的數據。因此,大的模型和更加高效的模型的區別主要在於這個CNN特徵提取器,也就是backbone。我們擁有一個表現很好的檢測模型,我們可以用它來監督其他檢測網絡。那麼問題就是如何用一個好的檢測模型,監督訓練一個更加高效的網絡,同時保持它的準確率。
Mimicking的主要思想是通過大的模型的soft targets或者logits來訓練一個小的神經網絡。通常soft targets包含了大的模型學習得到的信息,是的小的模型能夠近似地擬合這種大模型的知識。
在這裏插入圖片描述
單純使小模型學習大模型的feature map並不能work,原因在於feature map的維度太高,包含太多全局的信息,而對於僅有少量object的feature map,通常只有微弱的響應。因此,該文中提出了一個新的卷積網絡mimic方法,即將學習整個feature map變爲學習proposal採樣之後的feature來簡化任務。
在這裏插入圖片描述
對於mimic loss進行normalization可以取得更爲穩定的mimic結果
在這裏插入圖片描述
對於小網絡與大網絡feature map大小不同的情況(譬如小網絡中輸入圖像減半),可以增加一個轉換層(deconvolution)使得大小網絡最終mimic的層保持一致。
在這裏插入圖片描述

DCNv2

參考文章:https://zhuanlan.zhihu.com/p/53127011
在DCNv1基礎上改進
1.使用更多的deformable convolutions
2.增加幅值,原有的2×k×k變爲3×k×k
3.採用mimicing loss思想,右面即爲新增加的分支,該分支與原來的分支共享權重。但是其輸入不同,是RPN階段得到的Roi直接crop and resize下來的。在經過2-fc層後,產生的特徵進行比較,計算mimic loss
在這裏插入圖片描述
在這裏插入圖片描述

DLA

https://blog.csdn.net/qq_27667937/article/details/81116314
主要思想來源:
在這裏插入圖片描述
IDA 融合不同的分辨率/尺度上的feature,HDA 合併所有的模塊和通道的feature
在這裏插入圖片描述

CenterNet算法

參考文章:https://zhuanlan.zhihu.com/p/66048276,寫的很好,可以直接看這個
主要思想:直接檢測目標的中心點和大小,是真anchor-free。
特點:
1.CenterNet的“anchor”僅僅會出現在當前目標的位置處而不是整張圖上撒,所以也沒有所謂的box overlap大於多少多少的算positive anchor這一說,也不需要區分這個anchor是物體還是背景 - 因爲每個目標只對應一個“anchor”,這個anchor是從heatmap中提取出來的,所以不需要NMS再進行來篩選
2.CenterNet的輸出分辨率的下采樣因子是4,比起其他的目標檢測框架算是比較小的(Mask-Rcnn最小爲16、SSD爲最小爲16)。
3.主要實現了三種任務:目標檢測、關鍵點檢測、3D目標檢測。

目標檢測

論文中CenterNet提到了三種用於目標檢測的網絡,這三種網絡都是編碼解碼(encoder-decoder)的結構:

Resnet-18 with up-convolutional layers : 28.1% coco and 142 FPS
DLA-34 : 37.4% COCOAP and 52 FPS
Hourglass-104 : 45.1% COCOAP and 1.4 FPS

每個網絡內部的結構不同,但是在模型的最後都是加了三個網絡構造來輸出預測值,默認是80個類、2個預測的中心點座標、2箇中心點的偏置。用官方的源碼(使用Pytorch)來表示一下最後三層,其中hm爲heatmap、wh爲對應中心點的width和height、reg爲偏置量。

檢測思路:
在這裏插入圖片描述
在這裏插入圖片描述
中心點損失
在這裏插入圖片描述
在這裏插入圖片描述
偏置損失
在這裏插入圖片描述
大小損失
在這裏插入圖片描述
推理過程
在預測階段,首先針對一張圖像進行下采樣,隨後對下采樣後的圖像進行預測,對於每個類在下采樣的特徵圖中預測中心點,然後將輸出圖中的每個類的熱點單獨地提取出來。具體怎麼提取呢?就是檢測當前熱點的值是否比周圍的八個近鄰點(八方位)都大(或者等於),然後取100個這樣的點,採用的方式是一個3x3的MaxPool,類似於anchor-based檢測中nms的效果。
最終根據當前中心點存在物體的概率值選擇,代碼中設置的閾值爲0.3,也就是從上面選出的100個結果中調出大於該閾值的中心點作爲最終的結果
在這裏插入圖片描述
CenterNet代碼地址:https://github.com/xingyizhou/CenterNet,簡單看了一下網絡、訓練和推理的部分代碼,提供的功能很全,贊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章