都是基於point檢測,但是思路不同,都叫CenterNet,差異在哪裡?

(1)CenterNet: Keypoint Triplets for Object Detection https://arxiv.org/abs/1904.08189v3

(2)Objects as Points https://arxiv.org/abs/1904.07850


雖然根本上都是收到cornetnet的啟發,但是一篇是corner-centernet,一篇是真centernet。

centernet那篇最牛逼的(我認為的)就是在於不需要voting,也不需要nms。直接predict centers,然後(再)predict長寬。簡單到可以直接用到3d detection上(雖然沒有概念效果有多好)

論文也是寫的真的簡單清晰直觀明了,吹爆!

(另外一篇瞄了一眼,主要是覺得跟我這麼喜歡的paper居然搶了一個名字。。。所以我就沒怎麼看,所以我就不評價了。。。。)


瀉藥。這個類型的檢測基本都是根據conernet改進,或者說受到它的啟發而來的。

簡單說一下個人理解,我覺得objects as points是更符合anchor-free這個概念,或者說檢測的本質的。首先objects as points個人覺得是真的比centernet強很多,作者通過一個obj的中心點(每個目標只有一個錨點,所以不存在nms,中間有很多trick,如何選取中心錨點,如何解決下採樣過程中,ground truth的中心點偏移等,有興趣的可以看看paper)來回歸出一些屬性,比如bbox的size,dimension,pose等等多種信息。所以第一速度,第二精度ok,第三可以做二維,三維,姿態等多種信息,可以說絕對是值得認真閱讀好幾遍的文章。

至於centernet,作者核心的思想是解決根據top-left和tottom-right兩個coner產生目標框不能有效利用內部信息,從而帶來誤檢的問題,出發點還是很highlight的。最後用多尺度達到了47+的map,單尺度和objects as points差不多,但是由於backbone和pooling的因素,速度可能還是沒法工業應用。


謝邀,援引我在這篇文章里寫的內容,這裡所指的是as point centernet。

https://zhuanlan.zhihu.com/p/162833607?

zhuanlan.zhihu.com圖標

筆者很喜歡CenterNet極簡的網路結構,CenterNet只通過FCN(全卷積)的方法實現了對於目標的檢測與分類,無需anchor與nms等複雜的操作高效的同時精度也不差。同時也可以很將此結構簡單的修改就可以應用到人體姿態估計與三維目標檢測之中。

後面一些針對CenterNet結構應用於其他任務,也取得不錯的效果,比如人臉檢測CenterFace以及目標追蹤CenterTrack與FairMot。這些內容後面等筆者研習過後再補充,後面應該會做一個類CenterNet結構總結對比,感興趣的讀者可以持續關注一下。

後面也對centernet和yolov3做了速度對比。

結論如下:

關於筆者的質疑部分「筆者對CenterNet針對YoloV3速度的提升還是有些懷疑的」,實驗結果部分證明筆者懷疑的正確性。

單純看模型推理速度方面,CenterNet-DLA-34 在不同尺度下均比YoloV3-spp版本耗時增加一些(1%-3%)與論文略有不符。但是如果將處理時間也考慮進去,CenterNet-DLA-34 在不同尺度下均比YoloV3-spp版本耗時減少還是很明顯的,約有5%-10%的提速。

在模型大小與內存佔用方面,CenterNet-DLA-34 效果較與YoloV3-spp版本提升還是比較明顯,體積下降為YoloV3-spp版本的25%左右,推理GPU內存佔用也下降為70%左右,考慮這是Anchor Free方法帶來的優勢。

從表格 CenterNet vs YoloV3x coco精度 中可以看出在相同尺度下,CenterNet相較於YoloV3原版提升比較明顯5個百分點,相較於YoloV3-spp也有2個百分點提升 ,但是相較於YoloV3-spp-ultralytics(U版YoloV3-spp),還是有5個百分點的不足。當然這個前提是這些數據準確可靠的,我傾向於相信這個結果,但無法對此結果負責。總結一下:CenterNet相較於YoloV3原版提升比較明顯,但是針對改進YoloV3-spp 提升不明顯,也低於U版 YoloV3-spp。

總結如下,CenterNet不失為開創性的工作,統一了關鍵點與目標檢測的流程,結構簡單,使用便捷,筆者非常喜愛這個網路,把它應用到實際場景之中,速度精度較YoloV3乃至YoloV3-spp均有提升,除了部署難度會稍微大些(主要是DCN目前推理框架支持不友好,但是也是有解決方法的)。

CenterNet憑藉結構簡單,使用便捷,速度快精度高,佔用內存少等優點,是可以替換YoloV3,具備一定優勢。雖然YoloV4也出來了,筆者覺得,但是YoloV4在精度提升的同時,整體的複雜程度模型耗時也增加一些,YoloV4完全替換YoloV3,並不現實(讀者如果對YoloV4對比YoloV3效果感興趣,可以評論說出來,如果感興趣朋友多,筆者可以更新一篇)。

最後到了本文的結論,CenterNet相較於YoloV3優勢很明顯,推薦嘗試替換


Multi-label Whole Heart Segmentation Using CNNs and Anatomical Label Configurations STACOM 2017

可惜上面這一篇僅僅回歸中心點,沒有去預測框。

Keypoint Triplets,模仿痕迹太重,就加了中心點預測。跑過CornerNet,很自然發現很多錯框。改進方向十分明顯。

Objects as Points,真正地做中心點預測,以及預測圍繞中心點的長、寬。是把上面那篇文章Anatomical Label Configurations的人工設置的框預測出來。

另外,不看好keypoint-based這類方法,訓練太耗時。


過了一年再來評價,現在看起來Objects as Points這篇真CenterNet真是吊炸天。

網路結構簡單漂亮,好移植,方便嫁接。

不僅在學術界開枝散葉,設計思路引領了很多其他task,比如最近很火的幾篇MOT類,如FairMOT、CenterTrack。而且在工業界也非常好使,比什麼NAS搜出來的一堆純刷點的好用太多,比如EfficientDet。。。


牆裂推薦Objects as Points,這個文章,簡單粗暴,應用廣。另外推薦看看這篇文章後面的分析,挺有意思的。這個工作夠broad,夠deep,我個人很喜歡。

CenterNet看起來比較incremental,也稍微複雜一些。


Objects as Points 是又快有高,有著超過傳統的one stage的速度和two stage的精度。雖然object detection的SOTA現在能上50了,但沒他快。

anchor free,不需要nms,快,移動端,嵌入式最好的選擇。

很容易應用到3d detection, pose estimation等其他任務中去。

雖然開源了代碼,但自己實現起來也賊容易~~~


在跑object as points的代碼,記錄一下(內網只能在知乎留言........):

--debug 2和4都輸出了熱圖和過濾前的bbox,不知道有什麼區別

注意這裡:熱圖經過sigmoid,將原始的輸出限制在0-1之間

hm = output[hm].sigmoid_()

class PoseResNet(nn.Module)裡面self.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3

7x7卷積換成2個3x3,會怎樣?

self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)

為什麼是hstride=2而不是1

這裡是python的用法:把{reg: 2}這個字典合併到opt.heads這個字典

opt.heads.update({reg: 2})

/src/lib/datasets/dataset/coco.py", there are parameters "self.eig_val" and eig_vec:

They are from CornerNet code for color augmentation. I will suggest using the same values for your custom dataset.I have no idea. You can ask this in the CornerNet repo.

運行test.py時,本應用--exp_id指定保存的目錄,但我用--exp也沒報錯,並且能在指定目錄保存東西,奇怪了,opts.py裡面沒有--exp啊

opts.py的這一部分在運行main.py和test.py的時候都不涉及(沒有進入pudb),只在運行demo.py的時候調用

def init(self, args=):

#resolution要該?有resize? mean和std

pu.db

default_dataset_info = {

ctdet: {default_resolution: [512, 512], num_classes:4

dataset: coco},


今天一天看完了fcos和objects as points,建議centernet:objects as points,太強了,看完了有很多啟發


推薦閱讀:
相关文章