Skip to content
MultiTask DSSD
Branch: master
Clone or download
ryorsk update
- [Test_SSD.py] fix default output dir path.
- [Test_SSD_seg_fast.py] add arg 'type', extension of input image.
- [README.md] update due to above change and fix wrong explain.
Latest commit bc70c2b Nov 16, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
pretrained_model MT-DSSD Jul 19, 2018
.gitignore
README.md
SSD_Net.py
SSD_seg_Net.py
Test_SSD.py update Nov 16, 2018
Test_SSD_seg_fast.py
Train_SSD.py update and bug fix Sep 1, 2018
Train_SSD.sh add original SSD Jul 19, 2018
Train_SSD_seg.py update and bug fix Sep 1, 2018
Train_SSD_seg.sh update and bug fix Sep 1, 2018
VGG_Net.py
common_params.py
convertC2G_fast.py update and bug fix Sep 1, 2018
data_augmentation.py
data_augmentation_seg.py
dataloader.py
make_list.py
make_seglabel_aug_param.py Update make_seglabel_aug_param.py Nov 10, 2018
make_train_data.py
mkdirs.sh bug fix and add README Jul 19, 2018
my_func.py MT-DSSD Jul 19, 2018
seg_augmentation.py

README.md

MT-DSSD

Team MC^2 : ARC2017 RGB-D Dataset向けのサンプルコードです.

  • 2018/08/02 MIRU2018で発表するポスター(33.1MB)を公開中です.
  • 2018/08/08 ポスターに間違いが2件ありました.お詫びして訂正致します.
    • 提案手法/Loss function [L(y,c,g,s)] -> [L(y,c,l,s)]
    • 評価実験/評価サンプルの枚数 [20枚] -> [200枚]
  • 2018/08/27 学習モデルを公開しました.

Contents

  • SSD[1]
  • MultiTask DSSD(MT-DSSD)[2, 3]

Requirement

  • Python 2.x (Recommended version >= 2.7.11)
  • OpenCV 2.x
  • Chainer 1.x (Recommended version == 1.7.0)
  • numpy (Recommended version >= 1.10)

Usage

SSD / MT-DSSD共通の手順

1. データセットのダウンロード

下記のURLからデータセット(png版)をダウンロードしてください.

ダウンロード完了後,unzipして適当な場所に置いて下さい.

2. データセットのパス設定

common_params.pyの下記の部分をデータセットのパスに書き換えて下さい.

# 学習画像のディレクトリ
images_dir = '<Your dataset path>'

3. データセットのディレクトリ追加

データセットのディレクトリ内に,必要な空ディレクトリを作成します. mkdirs.shを実行することで作成できます.引数にデータセットのパスを与えてください.

sh mkdirs.sh <Your Dataset Path>

4. 教師データ一覧の取得

make_list.pyに,引数--mode 0を与えて実行します.

python make_list.py --mode 0

img_name_list.txtに教師データのファイル名一覧が保存されます.

5. Data augmentation

本コードは学習前に予めData augmentationを行い,変換パラメータを保存します. make_train_data.pyを実行して,Data augmentationを開始します.

python make_train_data.py

6. Data augmentation後の教師データ一覧の取得

make_list.pyに,引数--mode 1を与えて実行します.

python make_list.py --mode 1

augimg_name_list.txtにData augmentation後の教師データのファイル名一覧が保存されます.

SSDの手順

Train_SSD.shを実行することで,共通手順4, 5, 6と学習を連続して行うことができます.

7. 学習

Train_SSD.pyを実行して下さい.メモリサイズが足りない旨のエラーが出た場合は,batchsizeを小さくしてください.

python Train_SSD.py --batchsize 12 --epoch 150 --gpu 0 --loaderjob 8

下記の引数を与えることができます.

  • --batchsize (default = 8)
  • --epoch (default = 80)
  • --gpu (default = -1) : GPU ID.マイナス値にするとCPUを用いる.
  • --loaderjob (default = 4) : 並列実行数.

8. テスト

Test_SSD.pyの下記の部分を書き換えて下さい.

serializers.load_npz('<Your Trained Model Path>', ssd_model)

<Your Trained Model Path>に学習済みモデルのパスを入力します.

続いて,Test_SSD.pyを実行して下さい.指定されたパスにある指定された拡張子の画像すべてを用いてテストを行います.

python Test_SSD.py --dir '<Your Dataset Path>/test_known/rgb' --out './out' --type '.png' --gpu 0

下記の引数を与えることができます.

  • --dir (default='./') : テスト用画像のあるパス
  • --out (default='./out/') : 検出結果の出力先
  • --type (default='.jpg') : テスト用画像の拡張子
  • --gpu (default = -1) : GPU ID.マイナス値にするとCPUを用いる.

MT-DSSDの手順

Train_SSD_seg.shを実行することで,共通手順4, 5, 6とMT-DSSDの手順7, 8, 9, 10(学習)を連続して行うことができます.

7. セグメンテーション用画像の準備

セグメンテーション画像を学習用に変換する必要があります. convertC2G_fast.pyを実行してください.

python convertC2G_fast.py

8. セグメンテーション画像のファイル名取得

Data augmentation後の教師データとセグメンテーション教師データを紐付けるファイルを作成するために,make_seglabel_aug_param.pyを実行します.

python make_seglabel_aug_param.py

9. セグメンテーション画像ファイル名の一覧取得

make_list.pyに,引数--mode 3を与えて実行します.

python make_list.py --mode 3

seglabel_name_list.txtに手順8で作成したファイルの名前一覧が保存されます.

10. 学習

Train_SSD_seg.pyを実行して下さい.メモリサイズが足りない旨のエラーが出た場合は,batchsizeを小さくしてください.

python Train_SSD_seg.py --batchsize 8 --epoch 150 --gpu 0 --loaderjob 8

11. テスト

Test_SSD_seg_fast.pyの下記の部分を書き換えて下さい.

# 学習モデルのパス
MODEL_PATH = "`<Your Trained Model Path>"

<Your Trained Model Path>に学習済みモデルのパスを入力します.

続いて,Test_SSD_seg_fast.pyを実行して下さい.指定されたパスにある指定された拡張子の画像すべてを用いてテストを行います.

python Test_SSD_seg_fast.py --indir '<Your Dataset Path>/test_known/rgb' --outdir './out' --type '.png' --gpu 0

下記の引数を与えることができます.

  • --webcam (default = -1) : 1を指定するとWebCamから得られる画像を用いてリアルタイム検出を行います.
  • --indir : テスト用画像のあるパス
  • --outdir (default = './out/') : 検出結果の出力先
  • --type (default='.jpg') : テスト用画像の拡張子
  • --gpu (default = -1) : GPU ID.マイナス値にするとCPUを用いる.

Reference

  • [1] W. Liu, et al., “SSD: Single Shot MultiBox Detector”, ECCV, pp. 21–37, 2016.
  • [2] C. Fu, et al., “DSSD: Deconvolutional Single Shot Detector”, arXiv preprint arXiv:1701.06659, 2017.
  • [3] 荒木, et al., “マルチタスク学習を導入したDeconvolutional Single Shot Detectorによる物体検出とセグメンテーションの高精度化”, MIRU, 2018.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.