1. 程式人生 > >淺入淺出TensorFlow 8

淺入淺出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 了,請自行發揮。