tensorflow訓練yolov3模型(檢測雪人爲例,自己的數據和標籤,windows環境)

慣例先放效果

所有代碼包含訓練、測試圖片視頻打包在: 地址

 

下載代碼:

git clone https://github.com/YunYang1994/tensorflow-yolov3

或者點此下載壓縮包

 

環境配置:

配置了conda自然很方便

conda create -n yolov3 python=3.6
y
conda activate yolov3
cd 下載路徑/tensorflow-yolov3
pip install -r ./docs/requirements.txt

沒有也沒關係(只要你不怕環境亂)

cd tensorflow-yolov3
pip install -r ./docs/requirements.txt

 

測試環境是否正常(可跳過)

下載預訓練結果(coco)

下載,並解壓到checkpoint目錄

https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz

如果你用的linux,那也可以命令的方式

cd checkpoint
wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
tar -xvf yolov3_coco.tar.gz
cd ..

轉化coco預訓練文件成pb文件

python convert_weight.py
python freeze_graph.py

 

運行看看(應該沒問題了)

python image_demo.py
python video_demo.py # if use camera, set video_path = 0

 

=======環境沒問題,下面正式開始訓練=====

數據準備:

一堆圖片(這裏只有五百張左右)

 

圖片對應的標籤:(可以考慮labelme之類的工具手動標註)

格式:圖片路徑(空格)矩形框左上和右下角座標(空格)標籤(空格)下一個矩形框位置+標籤

 

label.name裏存儲和標籤對應的名字,例如這裏就只有一個snowman,剛剛標籤裏也只有0

 

修改配置

修改./core/config.py裏的配置路徑

__C.YOLO.CLASSES = "./label.names" 
__C.TRAIN.ANNOT_PATH = "./yolo_snowman_train.txt" 
__C.TEST.ANNOT_PATH = "./yolo_snowman_test.txt"

 

顯存不夠的同學可以適當減少訓練batch大小(__C.TRAIN.BATCH_SIZE )

 

訓練

從coco數據集預訓練結果進行遷移學習:

python convert_weight.py --train_from_coco

python train.py

 

如果數據量夠,不想從頭訓練,直接

python train.py即可

 

 

開始訓練:

 

tensorboard看一下效果:

tensorboard --logdir=./data

瀏覽器打開 http://localhost:6006/#scalars

很穩妥

 

 

實測

挑選一個合適的訓練文件以及修改輸出pb文件名字運行freeze_graph.py

pb_file = "./snowman.pb"

ckpt_file = "./checkpoint/yolov3_test_loss=3.2343.ckpt-37"

 

python snowman_test.py

效果如圖:(沒錯,和一開始的不是同一段,哈哈哈)

提前祝大家聖誕節快樂,233

 

雪人數據來源:

https://www.learnopencv.com/training-yolov3-deep-learning-based-custom-object-detector/

代碼來源:

https://github.com/YunYang1994/tensorflow-yolov3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章