行動認識のデモ(gluoncv)3

初めに

「inceptionv3_kinetics400」の静止画のデモのみ行った。

環境

Windows 10 Pro 
GPUなし
Python 3.8.2

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

「mxnet」「gluoncv」だけをpip経由でインストールすればOK。
他のものは勝手についてきた。

certifi==2020.4.5.1
chardet==3.0.4
cycler==0.10.0
gluoncv==0.6.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.1
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.45.0
urllib3==1.22

コード

from mxnet import nd, image
from mxnet.gluon.data.vision import transforms
from gluoncv import utils
from gluoncv.model_zoo import get_model

im_fname = utils.download('https://farm8.staticflickr.com/7068/6932931159_14236c1dab_z.jpg',
                          path='sample.jpg')

transform_fn = transforms.Compose([
    transforms.Resize((400,300)),
    transforms.CenterCrop(size=299),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])

img = transform_fn(image.imread(im_fname))
net = get_model('inceptionv3_kinetics400', pretrained=True)
pred = net(img.expand_dims(axis=0))
classes = net.classes
id = nd.argmax(pred, axis=1).astype('int').asscalar()
prob = nd.softmax(pred)[0][id].asscalar()
print('[%s]  probability=%f'%(classes[id], prob))

結果

f:id:touch-sp:20200421230148j:plain

[snowboarding]  probability=0.996021