1. 程式人生 > >影象語義分割 DeepLab v3+ 訓練自己的資料集

影象語義分割 DeepLab v3+ 訓練自己的資料集

環境:ubuntu 16.04 + TensorFlow 1.6.1 + cuda 9.0 + cudnn 7.0 +python2.7 

tensorflow 專案連結 https://github.com/tensorflow/models.git下載後解壓,所需要的工程在//deeplab/ 目錄下

1. 測試本地環境

首先新增slim路徑,每次開啟terminal都要載入路徑
# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

Quick test by running model_test.py:

# From tensorflow/models/research/
python deeplab/model_test.py

Quick running the whole code on the PASCAL VOC 2012 dataset:

# From tensorflow/models/research/deeplab
sh local_test.sh
如果都執行成功,說明本地環境已經可以了,接下來訓練自己的資料集。

2. 準備資料

資料包括兩部分 images 和labels ,image 為[n*m*3],jpeg 格式,label為[n*m*1],png格式。還需要一個train.txt檔案,其中是所有訓練資料的檔名。接下來執行/models/research/deeplab/dataset 下的build_voc2012_data.py
python build_voc2012_data.py \
  --image_folder="儲存images的路徑" \
  --semantic_segmentation_folder="儲存labels的路徑" \
  --list_folder="儲存train.txt檔案的路徑" \
  --image_format="jpeg(image格式)" \
  --output_dir="生成tfrecord格式的資料所要儲存的位置"

3. 開始訓練

修改/models/research/deeplab/dataset 下 segmentation_dataset.py
PASCAL_VOC_SEG_INFORMATION = DatasetDescriptor(
    splits_to_sizes={
        'train': 1464,
        'trainval': 2913,
        'val': 1449,
    },
    num_classes=21,
    ignore_label=255,
)
我是在Pascal_voc上修改的,改成自己的資料集大小以及輸出label的類別數,num_classes已經包含了背景修改 /models/research/deeplab/下train.py
# Set to False if one does not want to re-use the trained classifier weights.
flags.DEFINE_boolean('initialize_last_layer', True,
                     'Initialize the last layer.')
把 True 改成 False ,重新訓練最後一層。開始訓練:
python train.py \
  --logtostderr \
  --train_split="trainval" \  可以選擇train/val/trainval 不同的資料集 
  --model_variant="xception_65" \
  --atrous_rates=6 \
  --atrous_rates=12 \
  --atrous_rates=18 \
  --output_stride=16 \
  --decoder_output_stride=4 \
  --train_crop_size=512 \
  --train_crop_size=512 \
  --train_batch_size=12 \
  --training_number_of_steps=30000 \
  --fine_tune_batch_norm=True \
  --tf_initial_checkpoint="載入與訓練模型/model.ckpt" \
  --train_logdir="儲存訓練的中間結果" \
  --dataset_dir="生成的tfrecord的路徑"
引數設定注意事項:1.
# When fine_tune_batch_norm=True, use at least batch size larger than 12
# (batch size more than 16 is better). Otherwise, one could use smaller batch
# size and set fine_tune_batch_norm=False.
2.
# For `xception_65`, use atrous_rates = [12, 24, 36] if output_stride = 8, or
# rates = [6, 12, 18] if output_stride = 16. Note one could use different
# atrous_rates/output_stride during training/evaluation.

4. eval

python "${WORK_DIR}"/eval.py \
  --logtostderr \
  --eval_split="val" \
  --model_variant="xception_65" \
  --atrous_rates=6 \
  --atrous_rates=12 \
  --atrous_rates=18 \
  --output_stride=16 \
  --decoder_output_stride=4 \
  --eval_crop_size=512 \
  --eval_crop_size=512 \
  --checkpoint_dir="${TRAIN_LOGDIR}" \
  --eval_logdir="${EVAL_LOGDIR}" \
  --dataset_dir="${DATASET}" 
輸出mean iou 

5. 輸出預測結果

python vis.py \
  --logtostderr \
  --vis_split="val" \
  --model_variant="xception_65" \
  --atrous_rates=6 \
  --atrous_rates=12 \
  --atrous_rates=18 \
  --output_stride=16 \
  --decoder_output_stride=4 \
  --vis_crop_size=513 \
  --vis_crop_size=513 \
  --checkpoint_dir="${TRAIN_LOGDIR}" \
  --vis_logdir="${VIS_LOGDIR}" \
  --dataset_dir="${DATASET}"
輸出圖片的預測結果到vis_logdir

相關推薦

影象語義分割 DeepLab v3+ 訓練自己資料

環境:ubuntu 16.04 + TensorFlow 1.6.1 + cuda 9.0 + cudnn 7.0 +python2.7 tensorflow 專案連結 https://github.com/tensorflow/models.git下載後解壓,所需要的工程在

DeepLab V3+ 訓練ade20k資料

仿造local_test.sh寫個local_ade20k_test.sh 將line45: download_and_convert_voc2012.sh => download_and_convert_ade20k.sh 將line51: PASCAL

deeplab v3+訓練自己資料

資料集的製作及相關程式碼修改 原始碼連結:deeplab v3+ 筆者使用的是類似voc2012的資料集,最終的目的是進行語義分割。要想獲得這樣的資料集可以使用labelme進行標註,也可以使用PS進行處理。筆者使用了PS進行標註,生成了灰度圖。 為了方便,使用的資料集形式與官方資料

DeepLab V3+ 訓練自己資料

一、前提 官網程式碼:https://github.com/tensorflow/models/tree/master/research/deeplab  1. 依賴 DeepLab依賴於以下庫: Numpy Pillow 1.0 tf Slim (whi

使用pytorch版faster-rcnn訓練自己資料

使用pytorch版faster-rcnn訓練自己資料集 引言 faster-rcnn pytorch程式碼下載 訓練自己資料集 接下來工作 參考文獻 引言 最近在復現目標檢測程式碼(師兄強烈推薦F

《錯誤手記-01》 facenet使用預訓練模型fine-tune重新訓練自己資料報錯

環境資訊:windows10+python3.5+tensorflow1.6.0 問題描述: 在自己的訓練集上跑train_softmax.py.  引數: --logs_base_dir F:/work/runspace/log/  --models_base_

Kaldi中thchs30訓練自己資料的步驟

一、資料準備過程 網上下載的thchs-openslr資料集需要換成自己的資料集,包含兩個資料夾:data_thchs30和resource。下面講解如何搞定這一部分。 資料集在data_thchs30檔案中,包含四個部分(data、train、dev、test)。 data資料夾中包

yolov3訓練自己資料可參考文章

參考部落格原址: https://blog.csdn.net/u012966194/article/details/80004647 這篇文章將介紹編譯darknet框架開始,到整理資料集,到用yolo網路實現一個內部資料集中號碼簿的定

Yolov3訓練自己資料+資料分析

訓練自己到資料集已經在上一篇文中說明過了,這一篇著重記錄一下資料分析過程 資料分析 1. mAP值計算 1)訓練完成後,執行darknet官方程式碼中到 detector valid 命令,生成對測試集到檢測結果,命令如下: ./darknet detector va

【YOLO初探】之 keras-yolov3訓練自己資料

寫在前面 如何使用官方資料集參看上一篇文章《【YOLO初探】之 使用官方資料集做目標分類》 傳送門:https://blog.csdn.net/plSong_CSDN/article/details/85108256 這裡,筆者使用了260張訓練資料,完成了人臉中“眼睛”、“鼻子”、“嘴

Fast RCNN 訓練自己資料 (1編譯配置)

FastRCNN 訓練自己資料集 (1編譯配置) FastRCNN是Ross Girshick在RCNN的基礎上增加了Multi task training整個的訓練過程和測試過程比RCNN快了許多。別的一些細節不展開,過幾天會上傳Fast RCNN的論文筆記。FastRCNN mAP效能上略有上升。Fa

YOLOv3在訓練自己資料時的速度慢問題

YOLOv3以速度快著稱,但是在訓練自己的資料集時發現儘管在命令中同時開啟了多塊gpu,但速度仍舊很慢。按照其他人的訓練日誌可以看出64batch的單gpu訓練,每次迭代大約需要不到1秒但是自己在訓練時卻需要好幾個小時,首先想到的是自己的資料集是否圖片解析度太高,比較之後發現

FCN訓練自己資料(person-segmentation)、SIFT-FLOW、SBD和VOC實驗總結

最近花了將近一週的時間,基於提供的原始碼,通過參考網上的部落格,跑通了FCN在三個資料集上的訓練以及測試。在這裡寫下總結,即是記錄,又希望能夠對其他剛剛接觸FCN的人有所幫助。 FCN的原始碼地址:https://github.com/shelhamer/fcn.berkeleyvision.o

windows10+GPU下caffe資料Lmdb格式製作+訓練自己資料

最近做人臉識別專案,想用到caffe訓練自己的資料,電腦作業系統為win10+GPU,這裡對caffe-windows配置、資料集製作、訓練資料都做一些介紹。(無GPU配置的看我這個部落格)。如果你用的是vs2015,那麼下面介紹的caffe不適合,要用BVLC wind

如何利用caffe訓練自己資料

這篇博文主要參考了另一位博主https://blog.csdn.net/hellohaibo,在此向他表示感謝 首先,博主今天的caffe崩了,毫無徵兆的崩了,具體表現為博主想做一個更大的資料集,但是在生成lmbd檔案時永遠生成的是一個沒有名字的資料夾,可是博主已經在指定的example目錄裡寫了

Faster-RCNN 訓練自己資料的坑記錄

主要照這篇部落格進行訓練配置,因為沒有GPU所以好多坑,CPU訓練可以參見這篇部落格 正所謂,跑通了的都一樣,錯誤千萬樣。按照教程來也是坑多 訓練: python train_faster_rcnn_alt_opt.py --net_name ZF --weights

FastRCNN 訓練自己資料(二)——修改讀寫介面

這裡樓主講解了如何修改Fast RCNN訓練自己的資料集,首先請確保你已經安裝好了Fast RCNN的環境,具體的編配編制操作請參考我的上一篇文章。首先可以看到fast rcnn的工程目錄下有個Lib目錄這裡下面存在3個目錄分別是:datasetsfast_rcnnroi_d

FastRCNN 訓練自己資料(一)——編譯配置

FastRCNN是Ross Girshick在RCNN的基礎上增加了Multi task training整個的訓練過程和測試過程比RCNN快了許多。別的一些細節不展開,過幾天會上傳Fast RCNN的論文筆記。FastRCNN mAP效能上略有上升。Fast RCNN中,提取OP的過程和訓練過程仍

py-faster-rcnn訓練自己資料需要修改的引數

faster rcnn預設有三種網路模型ZF(小)、VGG_CNN_M_1024(中)、VGG16 (大) 訓練圖片大小為500*500,類別數1。 修改VGG_CNN_M_1024模型配置

Fast RCNN 訓練自己資料 (2修改資料讀取介面)

Fast RCNN訓練自己的資料集 (2修改讀寫介面) 這裡樓主講解了如何修改Fast RCNN訓練自己的資料集,首先請確保你已經安裝好了Fast RCNN的環境,具體的編配編制操作請參考我的上一篇文章。首先可以看到fast rcnn的工程目錄下有個Lib目錄 這裡下面存在3個目錄分別是: datase