1. 用CenterNet對(duì)旋轉(zhuǎn)目標(biāo)進(jìn)行檢測(cè)

        共 1981字,需瀏覽 4分鐘

         ·

        2020-10-04 15:58

        ↑ 點(diǎn)擊藍(lán)字?關(guān)注極市平臺(tái)

        作者丨不是大叔@知乎
        來源丨h(huán)ttps://zhuanlan.zhihu.com/p/163696749
        編輯丨極市平臺(tái)

        極市導(dǎo)讀

        ?

        作者對(duì)CenterNet進(jìn)行了部分修改,以此進(jìn)行旋轉(zhuǎn)目標(biāo)檢測(cè)。本文介紹了這種工作的代碼、數(shù)據(jù)處理和樣例,供讀者參考。>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿

        前言


        前段時(shí)間純粹為了論文湊字?jǐn)?shù)做的一個(gè)工作,本文不對(duì)CenterNet原理進(jìn)行詳細(xì)解讀,如果你對(duì)CenterNet原理不了解,建議簡(jiǎn)單讀一下原論文然后對(duì)照本文代碼理解(對(duì)原版CenterNet目標(biāo)檢測(cè)代碼進(jìn)行了極大程度精簡(jiǎn))。
        基本想法就是直接修改CenterNet的head部分,但是是直接在長(zhǎng)寬圖上加一層通道表示角度,還是多引出一 路feature-map呢?實(shí)測(cè)是多引出一張feature map比較好,直接在長(zhǎng)寬圖上加一層通道很難收斂。具體原因我也是猜測(cè),角度和尺度特征基本無共享特征,且會(huì)相互干擾(角度發(fā)生些許變化,目標(biāo)的長(zhǎng)寬可能就變了,如果角度是錯(cuò)的,長(zhǎng)寬本來是對(duì)的呢?反之亦然)引出的feature-map只經(jīng)歷了一層卷積層就開始計(jì)算loss,對(duì)于這種復(fù)雜的關(guān)系表征能力不夠,可能造成弄巧成拙。網(wǎng)絡(luò)結(jié)構(gòu)如下:

        代碼

        代碼主要分為五個(gè)部分:
        • train.py:模型的訓(xùn)練

        • predict.py:模型的前向推理

        • backbone:模型的主干網(wǎng),給了DLA和ResNet的DCN與普通版本,層數(shù)可以自定義

        • loss.py:模型的損失函數(shù)

        • dataset.py:模型的數(shù)據(jù)處理

        原版CenterNet代碼較多,我只需要做目標(biāo)檢測(cè),所以把各種3D檢測(cè)等都刪了,模型架構(gòu)也拆了只保留了有用部分,方便自己閱讀以及魔改。
        其次,因?yàn)橹皇羌恿艘粋€(gè)角度檢測(cè),所以主要是修改了一下數(shù)據(jù)處理部分,用的還是VOC格式,只是在.josn文件里面加了一個(gè)角度信息,打標(biāo)簽的時(shí)候用[0,Π]表示,后續(xù)在loss內(nèi)添加了角度的feature-map損失,用的Smooth-L1 loss,如果你不知道怎么打標(biāo)簽以及處理標(biāo)簽文件,可以在評(píng)論區(qū)留言或者私信我。
        后處理部分把畫標(biāo)準(zhǔn)檢測(cè)框換成了旋轉(zhuǎn)框,計(jì)算旋轉(zhuǎn)IOU指標(biāo)等代碼后續(xù)會(huì)傳上去。

        數(shù)據(jù)處理

        畫旋轉(zhuǎn)框,修改主干網(wǎng)與損失函數(shù),代碼里面都有。
        關(guān)于下面這些操作是我寫過的,如果有需要可以留言:
        • 如何對(duì)旋轉(zhuǎn)目標(biāo)打標(biāo)簽?
        • 如何將角度信息添加到VOC格式標(biāo)簽?
        • 如何計(jì)算旋轉(zhuǎn)IOU指標(biāo)?
        • 其它

        Demo



        代碼鏈接:
        https://github.com/ZeroE04/R-CenterNetgithub.com
        鑒于一些同學(xué)想知道模型訓(xùn)練完畢,怎么對(duì)比性能,比如旋轉(zhuǎn)框怎么計(jì)算mIOU等,所以更新一個(gè)evaluation.py以及對(duì)應(yīng)的案例圖片和文件夾imgs。注意,這個(gè).py和imgs文件夾不是必須的,只是模型訓(xùn)練結(jié)束計(jì)算性能用的。
        1、有人說缺少vis模塊,其實(shí)這一塊是我自己寫的可視化,其實(shí)是不需要的,所以直接注釋掉所有相關(guān)代碼就行(現(xiàn)在github已經(jīng)刪除)
        2、有人詢問旋轉(zhuǎn)打標(biāo)簽工具,其實(shí)有很多,這里推薦:
        chinakook/labelImg2github.com
        如果你想要訓(xùn)練自己的數(shù)據(jù),這個(gè)工具會(huì)把每張圖片都生成一張.xml文件,你需要把每個(gè).xml轉(zhuǎn)化為.josn文件,然后把所有圖片的.json文件合成一個(gè).json文件,就是此網(wǎng)絡(luò)訓(xùn)練格式文件了,也是CenterNet原版訓(xùn)練數(shù)據(jù),然后每個(gè)圖片里面的目標(biāo)五個(gè)數(shù)值:
        分別為目標(biāo)中心點(diǎn)(x,y),以及寬度,長(zhǎng)度,角度,角度是以12點(diǎn)鐘為0°,順時(shí)針旋轉(zhuǎn)的角度,最大為179.99999°(旋轉(zhuǎn)180°,相當(dāng)于沒轉(zhuǎn))。


        推薦閱讀


        ACCV 2020國際細(xì)粒度網(wǎng)絡(luò)圖像識(shí)別競(jìng)賽即將開賽!

        添加極市小助手微信(ID : cvmart2),備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測(cè)-深圳),即可申請(qǐng)加入極市目標(biāo)檢測(cè)/圖像分割/工業(yè)檢測(cè)/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群:月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動(dòng)交流~

        △長(zhǎng)按添加極市小助手

        △長(zhǎng)按關(guān)注極市平臺(tái),獲取最新CV干貨

        覺得有用麻煩給個(gè)在看啦~??
        瀏覽 63
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 啊灬啊灬啊灬快灬高潮了玉子 | 三级五月天 | 女女互慰视频 | 亚洲精品美女在线观看 | 99re8在线精品视频免费播放 |