#はじめに
本記事では物体検出技術のM2Detの環境構築について紹介をします。
筆者の公式リポジトリにも丁寧な説明がありますが、
pip環境のみでも構築できたので、紹介します。
前提条件
以下の条件で環境構築を行いました。
- Ubuntu 18.04
- CUDA 10.0
- cuDNN 7.5.0
手順
1. リポジトリのクローン
筆者が公開しているリポジトリをクローンします。
$ git clone https://github.com/qijiezhao/M2Det.git
2. 関連するパッケージをインストール
次に関連するパッケージをインストールします。
$ pip install Cython
$ pip install tqdm
$ pip install opencv-python
$ pip install addict
$ pip install matplotlib
$ pip install termcolor
3. PyTorchとTorchvisonのインストール
公式リポジトリでは、Pytorchのサポートverは0.4.1とありましたが、
デモプログラムの実行は、1.1.0でも動作しました。torchvisionも合わせてインストールしておきます。
最新情報はPyTorchのHPを参照してほしいですが、
2019年7月13日時点の手順を以下に記述します。
pip install https://download.pytorch.org/whl/cu100/torch-1.1.0-cp36-cp36m-linux_x86_64.whl
pip install https://download.pytorch.org/whl/cu100/torchvision-0.3.0-cp36-cp36m-linux_x86_64.whl
ちなみに、手順2,3を実行し、pip freeezeした結果は以下です。
うまく動作しないときは、以下を見てverを揃えて見てください。
addict==2.2.1
cycler==0.10.0
Cython==0.29.12
kiwisolver==1.1.0
matplotlib==3.1.1
numpy==1.16.4
opencv-python==4.1.0.25
Pillow==6.1.0
pyparsing==2.4.0
python-dateutil==2.8.0
six==1.12.0
termcolor==1.1.0
torch==1.1.0
torchvision==0.3.0
tqdm==4.32.2
4. nms と coco toolsのコンパイル
公式リポジトリの説明にあるように
nmsとcoco toolsのコンパイルをするために、以下のコマンドを実行してください。
$ cd M2Det
$ sh make.sh
5. 動作確認(デモの実行)
-
重みファイル(m2det512_vgg)をbaidu cloud や google driveからダウンロードします。
-
次にcloneしたフォルダ直下にweightsというフォルダを作成しダウンロードした重みファイルを配置します。
-
推論したいファイルをimgsフォルダに置きます。
(現状のコードでは、拡張子が.jpgとなっている画像ファイルのみ推論します。) -
次に以下のコマンドを実行し、推論を行います。
$ python demo.py -c=configs/m2det512_vgg.py -m=weights/m2det512_vgg.pth --show
実行すると、推論結果はimgフォルダに
「(入力ファイル名)_m2det.jpg」というファイル名で作成されます。
6. 参考(推論対象の拡張子を変更する)
推論した画像ファイルの拡張子が.JPGを大文字だったので、
demo.pyの101行目を以下に書き換えました。
#im_fnames = sorted((fname for fname in os.listdir(im_path) if os.path.splitext(fname)[-1] == '.jpg'))
im_fnames = sorted((fname for fname in os.listdir(im_path) if os.path.splitext(fname)[-1] == '.JPG'))
E. 今後
Macでも同様の手順で試したのですが、nsmのコンパイルでエラーが起こってしました。
多少時間がかかってもCPUで推論を行いたいので、
解決方法がないか、今度Tryしてみようと思います。