淺入淺出TensorFlow 8
一. 環境準備
本文介紹如何通過 Mask-RCNN 來實現行人檢測,假設你已經對 SSD、YOLO、Faster RCNN 等框架有所瞭解。
1. 準備 TensorFlow 環境
Tensorflow (>= 1.0.0)
Numpy
2. Gtihub 程式碼
3. 下載CoCo資料
Web下載比較慢,可以從我的網盤下載:【百度網盤】
4. 下載 ReNet50
wget http://download.tensorflow.org/models/resnet_v1_50_2016_08_28.tar.gz
解壓得到 resnet_v1_50.ckpt
二. 程式碼編譯執行
程式碼編譯可以參考 Github 說明,這裡也給出如下流程:
1. make coco工具
cd ./libs/datasets/pycocotools make
2. 將下載的 COCO 資料放到 ./data 目錄下,將資料轉換成 tf 所需格式;
按照說明檔案:
a)在 data下建一個 coco 資料夾,將指定的5個檔案 copy到該目錄;
b)將zip檔案解壓縮;
c)在根目錄下建立 output/mask_rcnn 資料夾,用於存放 log;
d)執行格式轉換指令碼(大概會花一小時);
python download_and_convert_data.py
sudo pip install pil # or python -m pip install Pillow sudo pip install scikit-image sudo apt-get install python3-tk
3. 提前訓練好的 Resnet模型
在data下新建 pretrained_models 目錄,將 resnet_v1_50.ckpt 放到目錄下。
4. Make編譯
cd ./libs make
5. 訓練資料
python ../train/train.py
當你觀察到Loss的時候,說明訓練過程已經成功開始了,不要著急,等著Loss慢慢減少吧,原作者訓練 8-GPU 花了32個小時。
三. 訓練效果
根據訓練生成的 Log檔案,存放在 output裡面:
設定 TensorBoard 的logdir,來看一下訓練效果:
可以看到整個的 loss 的變化情況,還是很有成就感的,需要說明一下,在訓練過程中可能 loss 會有震盪的情況,沒有關係,等到逐漸下降就好了。
看一下生成的 Graphs:
四. Demo 執行
Github 上未給出 Demo 執行方法,需要我們自己找指令碼來實現。
可以參考上一篇 demo.py 自己來寫,這裡作者就不給出具體 code 了,請自行發揮。