使用AIstudio訓練YOLOv3模型


背景

本文原先基於百度的AIstudio訓練,但是五月份的時候百度停止了對tensorflow框架的支持,所以以下僅作為參考。

百度AiStudio訓練yolov3模型

AiStudio分為work和data兩個文件夾,work保留永久文件,data每次重啟都不會保存
因此將我們需要的代碼、數據集和安裝包都先打包成數據集上傳,啟動項目前添加數據集。
以下是我的使用步驟:

本教程前置工作

需要安裝好Anaconda、tensorflow-gpu、keras、keras-yolo3目錄和keras-yolo3目錄下的VOCdevkit目錄和logs/000目錄。

安裝Anaconda

這里選用miniconda,因為每次重啟系統都要解壓文件,原版太大了不好。在官網上下載Linux64位的版本。啟動系統后,從/data/dataXXX目錄中復制到/work/conda3目錄,用bash miniconda.sh安裝。路徑不要選擇默認路徑,選擇~/work下的目錄。

bash ~/work/Miniconda3.sh
source ~/work/conda3/bin/activate

安裝tensorflow-gpu

注意這里不要換用清華源,清華的cuda最高版本為8.0,而我們需要10.0

conda install python=3.6
conda insntall tensorflow-gpu==1.14.0
pip install keras==2.1.5

pip install Pillow
pip install matplotlib
conda install ffmpeg
pip install opencv-contrib-python

建立VOC格式目錄

VOCdevkit
└── VOC2007
    ├── Annotations
    ├── ImageSets
    │   ├── Layout
    │   ├── Main
    │   └── Segmentation
    ├── JPEGImages
    └── labels

上傳數據集

這里把kears-yolo3代碼和自己處理好的jpeg圖片以及xml上傳為數據集,並在自己的項目中選擇這個數據集。

PS.可以提前將jpeg圖片文件夾名字改為JPEGImages,xml文件夾名稱改為Annotations,使用時直接復制過去就好。

  • /data/dataXXX目錄中解壓到/data目錄
cp ~/data/dataxxx/data.zip ~/data
ls
unzip data.zip
  • 移動到keras-yolo3/VOCdevkit對應子目錄下
cd ~/data
mv JPEGImage ~/work/keras-yolo3/VOCdevkit/VOC2007/
mv Annotations ~/work/keras-yolo3/VOCdevkit/VOC2007/

數據集划分

在VOC2007目錄內新建python腳本,將數據集划分為訓練集和測試集。
代碼見從零開始配置yolov3(keras)訓練測試自己的數據中的第三節。

cd ~/work/keras-yolo3/VOCdevkit/VOC2007
python create_ImageSets.py

生成2017train等文件

運行keras-yolo3下的voc_annotation.py文件,這時主目錄下會出現2007為前綴的幾個文件。

cd ~/work/keras-yolo3
python voc_annotation.py

修改anchors

運行kmeans.py文件,將model_data中的yolo_anchors.txt文件修改成剛才輸出的數據。

修改bacth

修改train.py中的batch_size。總共有兩處,最好改成2,過大可能會報錯。epoch按需修改,大概loss可以降至17到30。

運行代碼

python train.py

使用訓練后的模型

將/logs/000下的trained_weights_final.h5移動到model_data下,修改名字成yolo.h5

文件畫圖導出

修改yolo.py和yolo_vedio.py文件,改成下面github倉庫里對應的文件。代碼見下:keras-yolo3
運行下面的代碼可以生成圖片對應的txt預測結果,去掉--txt則生成識別的圖片。

python yolo_video.py --imgdir ~/work/keras-yolo3/imagetest --txt

最后從指定的文件夾中,使用左邊的可視界面下載到本機即可。

查看訓練過程

本機安裝Anaconda和tensorflow,使用命令tensorboard --logdir=C:\Users\XXX\Desktop\logs
在瀏覽器上運行http://localhost:6006/即可查看


免責聲明!

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



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