【目標檢測-框架測試】mmdetection的安裝與使用


 

1、安裝anaconda

2、更新gcc4.9以上

gcc -std=c++11 test.cpp

測試代碼test.cpp

#include<iostream>
#include<memory>
using namespace std;
int main(){
    shared_ptr<int> p = make_shared<int>(42);
    cout<<"p = "<<*p<<endl;
    return 0;
}

 

3、安裝mmdetection

1)創建conda虛擬環境並激活,然后安裝cpython

conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab
conda install cython

 

 

2)查看本機是否支持GPU

lspci | grep -i nvidia

安裝pytorch(>=1.0)  # 可以直接通過pytorch的官網查看安裝命令

 

3)克隆mmdetection倉庫

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection

 

 # 2019727更新后的mmdetection,將compileinstall放在一個腳本中

# 編譯cuda

# ./compile.sh

 

 

4)安裝mmdetection

# 之前使用的是

python setup.py install
# 或 pip install .

 

 出現問題,不能將.c文件成功轉譯成py文件,導致引用的很多由.c文件定義的convpool無法使用。出現ImportError的相關錯誤:

 

python setup.py develop
# or “pip install -e .”

# 在使用過程中遇到的問題可以在mmdetectiongithub中的issues中詢問或查找

 

4、mmdetection的使用

對於mmdetection框架的使用,可以直接參考github上給出的樣例,提取出需要使用的代碼即可,我是用的是demo文件夾下的圖片,同時

Test.py

 

測試結果

 

 

訓練:

python tools/train.py <config_filepath> [--gpus num]

在進行數據集的訓練時,可以看tools文件夾下的train.py代碼,一般需要自己配置的只有work_dirs,以及gpus:

--work_dirs:結果保存路徑。也可以在config文件中進行配置
--gpus:訓練時使用的gpu的數量。

使用config文件中包含使用的框架、數據集信息,以及訓練中的一些參數配置。

 

使用config文件中包含使用的框架、數據集信息,以及訓練中的一些參數配置。可以直接使用mmdetectionconfigs文件夾下的配置文件,需要針對性修改一些信息,如數據庫的類型dataset_type以及數據庫的路徑data_root,其次traintest數據信息中的標注文件的路徑ann_file,圖片路徑img_prefix

 

訓練完成后,在work_dirs定義的文件夾下會出現每次迭代輸出的信息,以及每次epoch完成后的參數結果:

 

 

此時在測試時,就可以直接使用自己訓練好的checkpoints(就是.pth文件)了。

 

我使用的是faster_rcnn_r50_fpn_1x的相應配置,使用coco2017的數據集,此次只使用了4epoch得到結果,下圖使用tools/analyze_logs.py文件對一些數據plot,其中包括loss_rpn_clsloss_rpn_bboxloss_clsloss_bbox以及loss

 

使用參考mmdetectiongithub中給出的方法:

python tools/analyze_logs.py plot_curve <json文件> --keys <parameters list> --legend <legends>

 

其中:

<json文件>:就是訓練過程中生成的json文件的路徑
<parameters list>:需要plot的數據名稱,需要時json文件中存在的
<legends>:對應parameters list的標簽

 

 

測試:

使用官方提供的測試命令:

python tools/test.py <config_filepath> <checkpoint> [...]

在測試過程中,使用tools/test.py文件,test.py文件必須要參數包括configcheckpoint,以及(--out, --show, --json_out)三個中的一個,其中:

--config:配置文件,使用訓練使用的配置文件
--checkpoint:參數數據,使用work_dirs下的任一.pth文件
--out:輸出路徑,使用.pkl結尾的文件名
--json_out:輸出為json類型的數據

 

 

使用show結果會被一張張的顯示出來,因為此次結果我僅使用了4epochs,所以對於小的區域的檢測結果可能不太准確。

 

最后使用當前訓練結果重新進行demo.jpg的測試

補充說明:

 

  我直接使用tools文件夾下的train.pytest.py文件,會出現之前的ImportError,無法找到deform_conv_cuda等一系列的文件,所以我直接將train.pytest.py文件復制到mmdetection項目文件夾下,之后運行就沒有問題了。

 

 

如果想要在本地上直接跑mmdetection的測試代碼,使用軟件為Pycharm,可以參見另一篇博客:Pycharm配置服務器中conda創建的虛擬python環境

完成Python環境的配置后,不過此時直接測試test.py仍然會出現問題,”cannot connect to X server.” 這是由於Linux的圖形顯示通過X server實現,在客戶端進行訪問時,需要server對其賦予權限。我將圖形結果不顯示,直接保存下來:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM