Detectron結(jié)構(gòu)解析

Detectron是Facebook AI Research 的開源項(xiàng)目泽论。主要是faster RCNN系列的大神們韩脏,將Mask RCNN脉让,RetinaNet,F(xiàn)aster RCNN跷睦,RPN等算法集合到了一個(gè)框架下筷弦,方便研究人員使用。

科研人員除了科研能力抑诸,如果能具備優(yōu)秀的工程能力烂琴,將是非常棒的爹殊。本文記錄了detectron pytorch版本的代碼結(jié)構(gòu)筆記,一起來學(xué)習(xí)一下大神優(yōu)美的工程架構(gòu)监右。
detection pytorch link: https://github.com/roytseng-tw/Detectron.pytorch

Detectron:

主要包含以下五個(gè)文件夾边灭。

1、configs:
2健盒、data
3、lib
4称簿、tools
5扣癣、Outputs
——————————————————————————————————————————————
下邊繼續(xù)介紹這些文件夾

configs

這個(gè)文件夾目錄下全部存放的是模型訓(xùn)練的各種yaml配置文件,你想要選什么樣的模型組合憨降,可在這里挑選父虑,并且可以修改其中的一些參數(shù)。
包含三個(gè)文件夾:baselines授药、getting_started士嚎、gn_baselines
一般選baselines里邊的模型就行了。

tools

這個(gè)文件夾放一些自己添加的常用的工具腳本文件悔叽,比較重要的兩個(gè)文件有train_net.py 和 test_net.py莱衩,這兩個(gè)文件分別是訓(xùn)練和測(cè)試的初始加載文件。

Outputs

這個(gè)文件夾中保存的是訓(xùn)練的模型已經(jīng)測(cè)試的結(jié)果
模型保存在 ckpt
測(cè)試結(jié)果在 test中娇澎,可視化結(jié)果在test中的vis里笨蚁。

data

這是存放數(shù)據(jù)集的地方,可以按照VOC的形式存放趟庄。


VOC形式 [2]

——————————————————————————————————————————————

注意括细,最最最關(guān)鍵的核心代碼都在這里!

lib

lib 包含 datasets、core戚啥、model奋单、modeling、nn猫十、roi_data

下邊繼續(xù)逐個(gè)介紹這些文件夾以及里邊的文件

1览濒、datasets

dataset_catalog.py:跟所讀取的數(shù)據(jù)相關(guān)的路徑參數(shù)的配置代碼。
roidb.py炫彩、json_dataset.py:讀取數(shù)據(jù)構(gòu)建數(shù)據(jù)結(jié)構(gòu)roidb的代碼匾七。
voc_dataset_evaluator.py和voc_eval.py:測(cè)試與結(jié)果評(píng)估涉及的代碼。

在目標(biāo)檢測(cè)類任務(wù)中, 有一個(gè)很重要的數(shù)據(jù)結(jié)構(gòu)roidb, 它將作為基本的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)隊(duì)列中存在, Detection 的數(shù)據(jù)載入類 RoIDdataLoader 也是將該數(shù)據(jù)結(jié)構(gòu)作為成員變量使用的江兢。

roidb [1]

2昨忆、core

這個(gè)文件夾中主要包含一下幾個(gè)文件:
config.py: 配置一些超參數(shù)的地方。
test_engine.py:調(diào)用tools/test_net.py后就會(huì)調(diào)用到這個(gè)文件杉允,然后去調(diào)用datasets 里邊的 roidb.py邑贴、json_dataset.py讀取數(shù)據(jù)構(gòu)建roidb席里,然后再通過模型推斷出預(yù)測(cè)的結(jié)果,最后進(jìn)行結(jié)果的評(píng)估拢驾。
test.py: 測(cè)試的過程需要用到的一些函數(shù)封裝好在這個(gè)文件中奖磁。

3、model

3.1繁疤、nms:非極大抑制算法咖为,應(yīng)用相當(dāng)廣泛,其主要目的是消除多余的框稠腊,找到最佳的物體檢測(cè)位置躁染。
3.2、roi_align: ROI Align 是在Mask-RCNN這篇論文里提出的一種區(qū)域特征聚集方式, 很好地解決了ROI Pooling操作中兩次量化造成的區(qū)域不匹配(mis-alignment)的問題架忌。實(shí)驗(yàn)顯示吞彤,在檢測(cè)測(cè)任務(wù)中將 ROI Pooling 替換為 ROI Align 可以提升檢測(cè)模型的準(zhǔn)確性 [3]。
3.3 roi_crop:傳統(tǒng)的CNN限制了輸入必須固定大刑痉拧(比如AlexNet是224x224)饰恕,所以需要進(jìn)行裁剪,在實(shí)際使用中往往需要對(duì)原圖片進(jìn)行crop或者warp的操作 [4]井仰。

crop:截取原圖片的一個(gè)固定大小的patch
warp:將原圖片的ROI縮放到一個(gè)固定大小的patch

crop和warp都無法保證在不失真的情況下將圖片傳入到CNN當(dāng)中:

crop:物體可能會(huì)產(chǎn)生截?cái)嗦袂叮绕涫情L(zhǎng)寬比大的圖片.
warp:物體被拉伸,失去“原形”糕档,尤其是長(zhǎng)寬比大的圖片

3.4 roi_pooling:為了解決 crop和warp帶來的問題(截?cái)嗬蚰铡⑹ァ霸巍保┒岢龅摹?br> 3.5 utils: 里邊就包含一個(gè)文件net_utils.py, 該文件中封裝了一些跟網(wǎng)絡(luò)本身有關(guān)的函數(shù),比如權(quán)重初始化速那。

4俐银、modeling

這個(gè)文件夾中存放的是一些網(wǎng)絡(luò)結(jié)構(gòu)的文件,比如resnet端仰、fpn捶惜、fast_rcnn_heads等等,接下來我將一一介紹荔烧。

5吱七、nn

5.1 modules: 包含(normalization.py 和 upsample.py)
5.2 parallel:用于并行計(jì)算的文件

6、roi_data

包含生成roi相關(guān)的文件鹤竭。

7踊餐、utils

工具文件存放的文件夾

參考文獻(xiàn)

1、https://hellozhaozheng.github.io/z_post/Caffe2-Detectron1-roidb%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/
2臀稚、https://blog.csdn.net/mr_health/article/details/80676799
3吝岭、https://blog.csdn.net/wfei101/article/details/79618567
4、https://blog.csdn.net/weixin_43872578/article/details/87897857

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市窜管,隨后出現(xiàn)的幾起案子散劫,更是在濱河造成了極大的恐慌,老刑警劉巖幕帆,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获搏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡失乾,警方通過查閱死者的電腦和手機(jī)常熙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碱茁,“玉大人症概,你說我怎么就攤上這事≡绨牛” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵诅蝶,是天一觀的道長(zhǎng)退个。 經(jīng)常有香客問我,道長(zhǎng)调炬,這世上最難降的妖魔是什么语盈? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮缰泡,結(jié)果婚禮上刀荒,老公的妹妹穿的比我還像新娘。我一直安慰自己棘钞,他們只是感情好缠借,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宜猜,像睡著了一般泼返。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姨拥,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天绅喉,我揣著相機(jī)與錄音,去河邊找鬼叫乌。 笑死柴罐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的憨奸。 我是一名探鬼主播革屠,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了屠阻?” 一聲冷哼從身側(cè)響起红省,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎国觉,沒想到半個(gè)月后吧恃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麻诀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年痕寓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝇闭。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呻率,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呻引,到底是詐尸還是另有隱情礼仗,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布逻悠,位于F島的核電站元践,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏童谒。R本人自食惡果不足惜单旁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饥伊。 院中可真熱鬧象浑,春花似錦、人聲如沸琅豆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)趋距。三九已至粒氧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間节腐,已是汗流浹背外盯。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留翼雀,地道東北人饱苟。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像狼渊,于是被迫代替她去往敵國(guó)和親箱熬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子类垦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容