49
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

M2Detでデモ・評価・学習までやってみる

Last updated at Posted at 2019-04-02

噂のM2Detのチュートリアルを一通りやってみました。
M2Detについては以下の記事がわかりやすいです。
最新最強の物体検出技術M2Det

##実行環境

OS Ubuntu16.04
GPU Nvidia GeForce GTX 1080
CPU intel Core i7 8700

デモ

※Anacondaは使いません。

####1. Pytorch他、必要なパッケージをインストール

pip install torch torchvision
pip install opencv-python, tqdm

####2. M2Detのリポジトリをクローン

git clone https://github.com/qijiezhao/M2Det

####3. シェルを実行
※M2Detディレクトリに移動して以下を実行します。

sh make sh

####4. Demoを実行
https://drive.google.com/file/d/1NM1UDdZnwHwiNDxhcP-nndaWj24m-90L/view
 よりm2det512_vgg.pthをダウンロードし、M2Det/weightsに置きます。(weightsディレクトリは自分で作ってください)
②以下を実行します。

 python demo.py -c=configs/m2det512_vgg.py -m=weights/m2det512_vgg.pth --show

※Webカメラを使う場合

 python demo.py -c=configs/m2det512_vgg.py -m=weights/m2det512_vgg.pth --show --cam=0

これだけ!簡単ですね。

#評価
####1. ssd.pytorchのリポジトリをクローン

git clone https://github.com/amdegroot/ssd.pytorch

####2. COCOデータセットをダウンロード
※ssd.pytorchディレクトリに移動して以下を実行します。

sh data/scripts/COCO2014.sh

何も指定しなければ~/dataに保存されます。

~/data/coco/annotationsinstances_minival2014.jsonが存在しない場合は
~/data/coco/annotations/annotations/instances_val2014.json
~/data/coco/annotationsにコピーし、ファイル名をinstances_minival2014.jsonに変更してください。

####3. 評価を実行
M2Detディレクトリで以下を実行します。
※事前に~/data/coco_cache ディレクトリを作成します。

python test.py -c=configs/m2det512_vgg.py -m=weights/m2det512_vgg.pth

eval.png

↑のような表示が出れば成功です。

#トレーニング
M2Detディレクトリで以下を実行します。
CUDA_VISIBLE_DEVICESは使用するGPU番号、ngpuは使用するGPUの数を指定してください。

CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py -c=configs/m2det512_vgg.py --ngpu 4 -t True

GPUが1台の場合は

CUDA_VISIBLE_DEVICES=0 python train.py -c=configs/m2det512_vgg.py --ngpu 1 -t True

となります。

M2Det/weightsvgg16_reducedfc.pthが存在しない場合は
https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
よりvgg16_reducedfc.pthをDLし、M2Det/weights に配置してください。

~/data/coco/annotationsinstances_train2014.jsonが存在しない場合は
~/data/coco/annotations/annotations/instances_train2014.json
~/data/coco/annotationsに配置してください。

~/data/coco/annotationsinstances_valminusminival2014.jsonが存在しない場合は
https://drive.google.com/drive/folders/0B1_fAEgxdnvJSmF3YUlZcHFqWTQ
よりinstances_valminusminival2014.jsonをDLし、~/data/coco/annotations に配置してください。

※メモリが足りない場合
入力サイズの小さいconfigファイルを使用する(m2det320_vgg.pyなど)、
またはM2Det/config/m2det512_vgg.py
per_batch_sizeの値を小さくしてください。

train.png

学習が開始すれば成功です。
(こちらはかなり重いです…)

#まとめ
事前情報通り、小さなオブジェクトの検出精度がかなりいいです。
ただ本格的に使うとなるとそれなりのマシンスペックも必要になりそうですね。

次回は自前のデータセットを使用してモデルを作成したいと思います。

#おまけ
動画ファイルでデモを実行してみました。(YouTubeにジャンプします。)
https://youtu.be/LNrjiZrklKA

#参考
M2Detを試してみた
最新最強の物体検出技術M2Detを動かしてみた

49
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?