初めに
物体検出の学習済みモデルを使用する時に一つのクラスのみ検出するにはどうすればよいか?
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()