GluonCVを使って物体検出(YOLO-v3) わずか11行でできた!

2020年12月22日記事を更新しました

はじめに

GluonCVの学習済みモデルを使って物体検出を行いました。
コードはたったの11行です。

実行ファイル

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

ctx = mx.gpu() if mx.context.num_gpus() >0 else mx.cpu()

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

net = model_zoo.get_model('yolo3_darknet53_voc', pretrained=True, ctx=ctx, root="./models")

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

class_IDs, scores, bounding_boxs = net(x.as_in_context(ctx))

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

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

環境

GPUあり/なしの二つの環境で動作確認しました。

インストールが必要なのは「mxnet」と「gluoncv」のみです。
(gluoncvのインストールは環境によって失敗することがあります。その時はこちらを参照して下さい。)

GPUあり

Windows 10
GTX 1080
CUDA Toolkit 10.1
Python 3.7.9

pip install mxnet-cu101==1.7.0 -f https://dist.mxnet.io/python/cu101
pip install gluoncv

gluoncv==0.9.0
mxnet-cu101==1.7.0

GPUなし

Windows10
GPUなし
Python 3.8.6

pip install mxnet
pip install gluoncv

gluoncv==0.9.0
mxnet==1.7.0.post1

その他

CenterNetに関しても記事を書いています。
touch-sp.hatenablog.com