Introduction
2019年最新のObject DetectionであるM2Detを使ってみます。
目標は自作のデータセットを使うこと。
まずはサンプルを実行してみます。
How to
公式ページはこちら。
なお
- 推奨はAnacondaのようですが、ピュアなPythonで試します。
- Python 3.6.7
- CUDA 9.2
という前提です。
仮想環境構築
仮想環境を作成しアクティベートします。
1 | sudo apt-get install python3-venvpython3-tk |
環境変数設定
CUDAの環境変数を設定します。
設定済みならスキップ。
1 | VERSION=9.2 |
設定後、下記のコマンドで確認を行います。
1 | nvcc: NVIDIA (R) Cuda compiler driver |
パッケージのインストール
M2DetはPyTorchの0.4.1をサポートと明言していますので従います。
古いバージョンは下記のページから入手します。
自分の環境のCUDAと合わせて適切なファイルをダウンロードします。
今回はtorch-0.4.1-cp36-cp36m-linux_x86_64.whlになります。
なお、途中の –cache-dir は、自環境でディスク容量不足のエラーが出たための対策です。
1 | python -m pip install torch-0.4.1-cp36-cp36m-linux_x86_64.whl |
1 | wget https://download.pytorch.org/whl/cu92/torch-0.4.1-cp36-cp36m-linux_x86_64.whl |
インストール後、下記のようにしてPyTorchがCUDAを認識しているかどうかを確認します。
1 | python |
ソースの入手
1 | git clone https://github.com/qijiezhao/M2Det.git |
pycocotoolsとnms
ソースに付属のスクリプトを使ってpycocotoolsとnmsをインストールします。
1 | cd M2Det |
デモ
まず、pretrainedファイルをダウンロードします。
ダウンロードしたファイルはどこでもいいので移動します。
そして、下記のコマンドを実行します。
ダウンロードしたファイルの移動先をどこでもよいといったのは、**-m** 引数にダウンロードしたファイルのパスを指定するからです。
1 | python demo.py -c=configs/m2det512_vgg.py -m=m2det512_vgg.pth --show |
実行時はGUI画面が必要です。SSHからだと、
1 | pos:(15.4,175.9,34.7,213.7), ids:handbag, score:0.009 |
とエラーが出るためです。
ただし、**–showを外せば画面には表示されません。
出力結果がimgs**ディレクトリに書き出されます。
GUI上で実行すると下記のように画像が一定間隔で切り割って結果が表示されます。
(クリックして拡大するとアニメーションします)
ちなみに、実行時のGPUの使用メモリは約3600MBでした。