10行で物体検出(gluoncv)

初めに

今回は「CenterNet」のデモのみ実行してみた

環境(GPUなし)

Windows10 Pro 64bit
GPUなし
Python 3.7.5

mxnet, gluoncvのインストール

pip install mxnet --pre
pip install gluoncv --pre

その他のパッケージはインストール不要

バージョンの確認(pip freeze)

certifi==2019.11.28
chardet==3.0.4
cycler==0.10.0
gluoncv==0.6.0b20200109
graphviz==0.8.4
idna==2.6
kiwisolver==1.1.0
matplotlib==3.2.0rc1
mxnet==1.6.0b20191125
numpy==1.16.6
Pillow==7.0.0
portalocker==1.5.2
pyparsing==2.4.6
python-dateutil==2.8.1
pywin32==227
requests==2.18.4
scipy==1.4.1
six==1.13.0
tqdm==4.41.1
urllib3==1.22

実行ファイル

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

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

im_fname = utils.download('https://raw.githubusercontent.com/zhreshold/mxnet-ssd/master/data/demo/dog.jpg',
                          path='dog.jpg')

x, img = data.transforms.presets.center_net.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:20200110164121p:plain

追記(GPUあり)

GPUありでも試してみた

certifi==2019.11.28
chardet==3.0.4
cycler==0.10.0
gluoncv==0.6.0b20200112
graphviz==0.8.4
idna==2.6
kiwisolver==1.1.0
matplotlib==3.2.0rc1
mxnet-cu101==1.6.0b20191125
numpy==1.16.6
Pillow==7.0.0
portalocker==1.5.2
pyparsing==2.4.6
python-dateutil==2.8.1
pywin32==227
requests==2.18.4
scipy==1.4.1
six==1.13.0
tqdm==4.41.1
urllib3==1.22

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

net = model_zoo.get_model('center_net_resnet101_v1b_dcnv2_voc', pretrained=True, ctx=mx.gpu())

im_fname = utils.download('https://raw.githubusercontent.com/zhreshold/mxnet-ssd/master/data/demo/dog.jpg',
                          path='dog.jpg')

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

class_IDs, scores, bounding_boxs = net(x.as_in_context(mx.gpu()))

ax = utils.viz.plot_bbox(img, bounding_boxs[0], scores[0],
                         class_IDs[0], class_names=net.classes)
plt.axis('off')
plt.show()