7
6

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-07-13

#はじめに

本記事では物体検出技術の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 cloudgoogle 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してみようと思います。

7
6
2

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
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?