目錄
一、YOLOX安裝
1、下載GitHub上的代碼
2、安裝yolov5所需要的依賴環境
(1)、安裝代碼依賴的庫檔案
(2)、通過setup.py安裝一些庫檔案
(3)、安裝apex檔案
二、YOLOX訓練自己的資料集
1、資料集預處理
2、修改代碼
(1)、將yolox/data/datasets/voc_classes.py中的標簽資訊,進行修改,
(2)、修改類別數量
(3)、修改訓練集資訊
(4)、修改exps/example/yolox_voc/yolox_voc_s.py中的get_eval_loader函式,
(5)、修改不同的網路結構
(6)、修改其他相關引數
三、YOLOX訓練
1、終端訓練
2、Pycharm訓練
四、YOLOX訓練及常見問題
1、利用demo.py進行測驗
2、利用eval.py進行測驗
YOLOX是曠視提出來的,研究者將解耦頭、資料增強、無錨點以及標簽分類等目標檢測領域的優秀進展與 YOLO 進行了巧妙地集成組合,不僅實作了超越 YOLOv3、YOLOv4 和 YOLOv5 的 AP,而且取得了極具競爭力的推理速度,

一、YOLOX安裝
1、下載GitHub上的代碼
git clone https://github.com/Megvii-BaseDetection/YOLOX
2、安裝yolov5所需要的依賴環境
(1)、安裝代碼依賴的庫檔案
cd /home/xxx/xxx/xxxr/YOLOX-main
pip3 install -U pip && pip3 install -r requirements.txt

(2)、通過setup.py安裝一些庫檔案
通過setup.py安裝一些庫檔案
輸入命令:python3 setup.py develop

(3)、安裝apex檔案
輸入命令:git clone https://github.com/NVIDIA/apex
sudo pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

二、YOLOX訓練自己的資料集
1、資料集預處理
在這里選擇使用VOC格式對YOLOX進行訓練,處理的圖片主要包含三個檔案夾,其中Annotations存放的是xml標簽資料,JPEGImages存放的是圖片資料,ImageSets存放的是訓練、驗證、測驗的txt檔案,

2、修改代碼
(1)、將yolox/data/datasets/voc_classes.py中的標簽資訊,進行修改,

注意:類別后面都要加逗號,例如“car”后面加了一個逗號“,”,
(2)、修改類別數量
- 修改exps/example/yolox_voc/yolox_voc_s.py中的self.num_classes

- 修改yolox/exp/yolox_base.py中的self.num_classes

(3)、修改訓練集資訊
- 修改exps/example/yolox_voc/yolox_voc_s.py中的VOCDection,

data_dir是前面product_ak的絕對路徑,
images_sets修改為trainval
max_labels表示圖片最多的目標數量,設為50,
- 修改yolox/data/datasets/voc.py中,VOCDection函式中的讀取txt檔案,

(4)、修改exps/example/yolox_voc/yolox_voc_s.py中的get_eval_loader函式,

data_dir是前面product_ak的絕對路徑,
images_sets修改為test
(5)、修改不同的網路結構
以YOLOX_l網路為例,比如在exps/default/yolox_s.py中,self.depth=1.0,self.width=1.0,和Yolov5中的不同網路呼叫方式一樣,

為了統一不同的網路結構,繼續修改exps/example/yolox_voc/yolox_voc_s.py中的,self.depth和self.width,

再修改yolox/exp/yolox_base.py中的,self.depth和self.width,

(6)、修改其他相關引數
- 修改驗證epoch的數量
目前代碼中是訓練迭代10個epoch,再對驗證集做1次驗證,但大白想每迭代1個epoch,即做一個驗證,及時看到效果,

- 修改驗證時的相關資訊
主要對讀取驗證資訊的相關代碼進行調整,代碼在yolox/data/datasets/voc.py中_do_python_eval函式中,
- 因為自有資料集沒有year資訊,所以將其中的rootpath和name修改
- 因為沒有year資訊,所以將其中的cachedir修改;修改use_07_metric的資訊,

三、YOLOX訓練
1、終端訓練
將下載好的yolox_s.pth.tar放到YOLOX檔案夾中,打開終端,在終端中輸入:
python3 tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 0 -b 64 -c yolox_s.pth.tar

2、Pycharm訓練
代碼運行時,常常需要Debug的方式,進行除錯執行,所以可以修改train.py的幾個配置引數,采用Debug或者Run的方式進行執行,主要需要修改以下引數:
- batch-size
根據自己機器的配置,設定batch-size的引數,比如設定為64,

- devices引數
如果GPU服務器只有1張卡,將devices的default修改為0,

- exp_file引數
將exp_file的default修改為yolox_voc_s.py的路徑(如代碼版本更新,可重置路徑),

- ckpt引數
如果使用預訓練權重,將ckpt的default修改為模型權重的路徑,

然后就可以在pycharm里面進行訓練了,
四、YOLOX訓練及常見問題
在訓練完成后,可以對訓練的YOLOX演算法模型進行測驗,測驗檔案保存在tools/檔案夾下,測驗可以運行demo.py和eval.py這兩個檔案
1、利用demo.py進行測驗
- 首先是選擇測驗的模式是圖片還是視頻,然后輸入需要測驗圖片/視頻的路徑

- 修改yolox的組態檔,與訓練時的組態檔一致

- 修改訓練后模型的保存地址,以及是否使用GPU進行加速

- 到此就可以運行demo.py進行demo測驗了,測驗后輸出測驗結果,如下所示

2、利用eval.py進行測驗
-
修改eval.py檔案中的batch_size大小,可根據個人的顯卡大小修改

- 修改yolox的組態檔,與訓練時的組態檔一致

- 修改測驗時使用的模型,得分閾值、nms閾值等引數

- 修改上述引數就可以進行驗證了,會輸出模型在測驗集的mAP等指標
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302318.html
標籤:其他
上一篇:零基礎新人如何轉行做新媒體運營?
