LoginSignup
14
20

More than 5 years have passed since last update.

最新の物体検出手法「M2Det」の筆者実装コード(Linux向け)をWindows上で動かす

Last updated at Posted at 2019-04-05

はじめに

MaskR-CNN, SSD, YOLO等を超える最新の物体検出手法としてM2Detが出てきました。
嬉しいことにその筆者実装コードが公開されているので、試したい方も多いはず。
ただ、たぶんWindows環境だとコンパイルの段階でつまづいてしまう。
とりあえずで動かすことはできたので、同じように困った方のために書いておきます。

確認した環境

OS : Windows 10 Pro
GPU : NVIDIA GeForce GTX 1080Ti
CPU : intel Core i7-8700K

前準備

  • Visual Studio
  • Anaconda(Python)
  • cuda, cudnn
  • PyTorch

あたりは入れておいてパスを通しておくといいです。

手順

1. M2Detとpy-faster-rcnn-windowsをとってくる

git clone https://github.com/qijiezhao/M2Det
git clone https://github.com/MrGF/py-faster-rcnn-windows

2. M2Detフォルダへpy-faster-rcnn-windowsから必要なファイルをコピー

copy py-faster-rcnn-windows\lib\setup.py M2Det\utils\
copy py-faster-rcnn-windows\lib\setup_cuda.py M2Det\utils\
copy py-faster-rcnn-windows\lib\nms\gpu_nms.cu M2Det\utils\nms\

3. ファイル編集

M2Det\utils\setup.py

  • (Python3の場合)61行目を以下に変更

    変更前:for k, v in cudaconfig.iteritems():
    変更後:for k, v in cudaconfig.items():

  • 128~136行目の以下の箇所をすべてコメントアウトする。


    Extension(

        "utils.cython_bbox",

        sources=["utils\\bbox.pyx"],

        #define_macros={'/LD'},

        #extra_compile_args={'gcc': ['/link', '/DLL', '/OUT:cython_bbox.dll']},

        #extra_compile_args={'gcc': ['/LD']},

        extra_compile_args={'gcc': []},

        include_dirs = [numpy_include]
    ),

M2Det\utils\setup_cuda.py

  • 61行目を以下に変更

変更前:nvcc_compile_args = ['-O', '--ptxas-options=-v', '-arch=sm_35', '-c', '--compiler-options=-fPIC']
変更後:nvcc_compile_args = ['-O2', '--ptxas-options=-v', '-arch=sm_35', '-c', '--compiler-options=-fPIC']
ここでGPUに合わせて-archは変更してもいいと思います。

  • 100行目と101行目の間に以下を追記
                #Remove ',ID=2'
                elif ',ID=2' in c: cmd[idx] = c[0:len(c)-5]

4. コンパイル実行

cd M2Det/utils
python setup.py build_ext --inplace
python setup_cuda.py build_ext --inplace

確認

m2det512_vgg.pthをダウンロードしてM2Det/weights/に置く。
python demo.py -c=configs/m2det512_vgg.py -m=weights/m2det512_vgg.pth --show
がうまく実行できればOK。

14
20
3

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
14
20