10行で物体検出(gluoncv)

初めに

3. Predict with pre-trained YOLO models — gluoncv 0.3.0 documentation
今回はデモのみ実行してみた

環境

Windows 10 Pro
GPUなし
Python 3.6.6(venv使用)

仮想環境の作成

  • venvで仮想環境を作成してアクティベートする
python -m venv mxnet
mxnet\Scripts\activate
  • pipのアップデート
python -m pip install --upgrade pip
  • mxnet, gluoncvのインストール(VS codeを使用するならpylintも)
pip install mxnet==1.3.1b20181003
pip install gluoncv --pre
pip install pylint
  • バージョンの確認(pip freeze)
astroid==2.0.4
certifi==2018.8.24
chardet==3.0.4
colorama==0.3.9
cycler==0.10.0
gluoncv==0.3.0b20181005
graphviz==0.8.4
idna==2.6
isort==4.3.4
kiwisolver==1.0.1
lazy-object-proxy==1.3.1
matplotlib==3.0.0
mccabe==0.6.1
mxnet==1.3.1b20181003
numpy==1.14.6
Pillow==5.3.0
pylint==2.1.1
pyparsing==2.2.2
python-dateutil==2.7.3
requests==2.18.4
scipy==1.1.0
six==1.11.0
tqdm==4.26.0
typed-ast==1.1.0
urllib3==1.22
wrapt==1.10.11

実行ファイル

from gluoncv import model_zoo, data, utils
from matplotlib import pyplot as plt

net = model_zoo.get_model('yolo3_darknet53_voc', pretrained=True)

im_fname ='street_small.jpg'

x, img = data.transforms.presets.yolo.load_test(im_fname, short=512)

class_IDs, scores, bounding_boxs = net(x)

ax = utils.viz.plot_bbox(img, bounding_boxs[0], scores[0],
                         class_IDs[0], class_names=net.classes)

plt.axis('off')
plt.show()

結果

f:id:touch-sp:20181006130520p:plain

感想

OpenCV不要
gluoncv最高!!

2018年10月15日追記

  • Python3.7.0でも問題なく動いた
astroid==2.0.4
certifi==2018.8.24
chardet==3.0.4
colorama==0.4.0
cycler==0.10.0
gluoncv==0.3.0b20181014
graphviz==0.8.4
idna==2.6
isort==4.3.4
kiwisolver==1.0.1
lazy-object-proxy==1.3.1
matplotlib==3.0.0
mccabe==0.6.1
mxnet==1.3.1b20181015
numpy==1.14.6
Pillow==5.3.0
pylint==2.1.1
pyparsing==2.2.2
python-dateutil==2.7.3
requests==2.18.4
scipy==1.1.0
six==1.11.0
tqdm==4.26.0
urllib3==1.22
wrapt==1.10.11