【MXNet】物体検出(detect only one class)

初めに

物体検出の学習済みモデルを使用する時に一つのクラスのみ検出するにはどうすればよいか?
1行追加するだけでした。

net.reset_class(["person"], reuse_weights=['person'])

環境

Windows10 Pro
GPUなし
Python 3.8.2

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

certifi==2020.4.5.1
chardet==3.0.4
cycler==0.10.0
gluoncv==0.7.0
graphviz==0.8.4
idna==2.6
kiwisolver==1.2.0
matplotlib==3.2.1
mxnet==1.6.0
numpy==1.16.6
Pillow==7.1.2
portalocker==1.7.0
pyparsing==2.4.7
python-dateutil==2.8.1
pywin32==227
requests==2.18.4
scipy==1.4.1
six==1.14.0
tqdm==4.46.0
urllib3==1.22

実行ファイル

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

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

net.reset_class(["person"], reuse_weights=['person'])

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

x, img = data.transforms.presets.ssd.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], thresh=0.8, class_names=net.classes)
plt.axis('off')
plt.show()

結果

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