走近CTPN 1 解讀README

2021-09-24 01:21:23 字數 1701 閱讀 1474

我參考的**是來自於

首先來說明如何按readme.md執行原始碼,補充一些注意點。好讓需要用的人能盡快使用。

因為作者的**和模型都提供了,我們可以直接拿來執行。接下來分析readme.md.

1.git clone不必多解釋

2.setup編譯cpython實現的nms和bbox

為什麼要使用cpython來實現nms和bbox呢?因為python實現速度太慢。

cd utils/bbox

chmod +x make.sh

./make.sh

make.sh檔案

執行結果是產生bbox.cpython-35m-x86_64-linux-gnu.sonms.cpython-35m-x86_64-linux-gnu.so兩個檔案,這樣就可以直接像呼叫庫一樣呼叫了。

python setup.py install // 對nms和bbox建立動態鏈結庫

mv build/*/*.so ./ // 移動到主目錄

rm -rf build/ // 刪除build資料夾

具體更多配置細節和問題,可以參考我的部落格文章ctpn/faster-rcnn中使用cpython對overlap計算加速

3. demo

python ./main/demo.py
1. prepare dataset 準備資料集

關於預訓練模型在tensorflow中的使用,參考我的部落格文章tensorflow如何直接使用預訓練模型(vgg16為例)

注意:這個作者要求的ground truth(標籤),和常用的不太一樣。如果你看過**,就會知道它的anchor(候選框)的寬度都是16。所以,gt(標籤)——由4個點圍成的矩形,寬度也是16。(對原資料集做切分)

這裡清楚地描述:比如(0,

0),(

60,32)

(0,0),(60,32)

(0,0),

(60,

32)四個點圍成乙個矩形。

做了切分之後,變成了32/16

=2

32/16=2

32/16=

2個anchors. 每個anchor的寬度都為16

作者提供的上面的mlt資料集,已經切分好的。如果沒有切分,或者說你想用自己的資料集,怎麼修改標籤呢?

2. other datasets 其他的資料集

作者提供了split_label.py函式來讓我們切分資料集。

data_folder =

"/media/d/dataset/mlt_selected/"

output =

"data/dataset/mlt/"

python ./utils/prepare/split_label.py
在影象中顯示gt

3. train

run train.py即可

python ./main/train.py

例題1 整數解

hdu2092 problem description 有二個整數,它們加起來等於某個整數,乘起來又等於另乙個整數,它們到底是真還是假,也就是這種整數到底存不存在,實在有點吃不準,你能快速回答嗎?看來只能通過程式設計。例如 x y 9,x y 15 找不到這樣的整數x和y 1 4 5,14 4,所以...

程式設計解習題Demo1

習題公布 如果可以手算出來得朋友我佩服,但小弟我是真算不出來。引言 今天朋友在群裡發了乙個。看過之後不假思索得給出答案 都是0 但是還是得經過計算之後才能驗證 0 是否是正確答案。過程 哈哈,正經得計算一下 擼起來 首先有三個變數 x y z 邏輯應該是 100x 10x y 100x 10z z ...

演算法精解 快速排序 方式1

前言 快速排序工作原理就是先在序列中找到乙個基準值,我稱為k值。然後小於k的放在k的前面,大於k的放在k的後面。其實我們每操作k一次,就相當於把序列分為兩個部分,一部分大於k,一部分小於k,就這樣周而復始。我們可以推測出平均的時間複雜度為lgn,為啥這樣說呢。但是書本上說的為nlgn,其實他是每次都...