2021年2月24日記事を更新しました。
初めに
今回はデモのみ実行してみた
環境
Windows10 Pro NVIDIA GeForce GTX1080 CUDA 10.2 Python 3.6.8
バージョン確認
インストールが必要なのは「mxnet」と「gluoncv」のみです。
autocfg==0.0.6 autogluon.core==0.1.0b20210222 autograd==1.3 bcrypt==3.2.0 boto3==1.17.12 botocore==1.20.12 certifi==2020.12.5 cffi==1.14.5 chardet==3.0.4 click==7.1.2 cloudpickle==1.6.0 ConfigSpace==0.4.18 contextvars==2.4 cryptography==3.4.6 cycler==0.10.0 Cython==0.29.22 dask==2021.2.0 dataclasses==0.8 decord==0.5.2 dill==0.3.3 distributed==2021.2.0 future==0.18.2 gluoncv==0.9.4.post1 graphviz==0.8.4 HeapDict==1.0.1 idna==2.6 immutables==0.15 jmespath==0.10.0 joblib==1.0.1 kiwisolver==1.3.1 matplotlib==3.3.4 msgpack==1.0.2 mxnet-cu102==1.7.0 numpy==1.19.5 opencv-python==4.5.1.48 pandas==1.1.5 paramiko==2.7.2 Pillow==8.1.0 portalocker==2.2.1 protobuf==3.15.1 psutil==5.8.0 pycparser==2.20 PyNaCl==1.4.0 pyparsing==2.4.7 python-dateutil==2.8.1 pytz==2021.1 pywin32==300 PyYAML==5.4.1 requests==2.25.1 s3transfer==0.3.4 scikit-learn==0.24.1 scipy==1.5.4 six==1.15.0 sortedcontainers==2.3.0 tblib==1.7.0 tensorboardX==2.1 threadpoolctl==2.1.0 toolz==0.11.1 tornado==6.1 tqdm==4.57.0 urllib3==1.26.3 yacs==0.1.8 zict==2.0.0
実行ファイル
import numpy as np from PIL import Image import mxnet as mx from mxnet.gluon.data.vision import transforms import gluoncv ctx = mx.gpu() filename = gluoncv.utils.download('https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/segmentation/voc_examples/1.jpg') #画像をPILで読み込む img = Image.open(filename) #データの正規化 transform_fn = transforms.Compose([ transforms.ToTensor(), transforms.Normalize([.485, .456, .406], [.229, .224, .225]) ]) mx_img = transform_fn(mx.nd.array(img)) mx_img = mx_img.expand_dims(0).as_in_context(ctx) #モデルを読み込む(初回は自動でダウンロード) model = gluoncv.model_zoo.get_model('fcn_resnet101_voc', pretrained=True) model.collect_params().reset_ctx(ctx) #モデルの適応 #人だけを抽出する(class:15) output = model.predict(mx_img) predict = mx.nd.squeeze(mx.nd.argmax(output, 1)).asnumpy() a = np.where(predict ==15, 255, 0) b = Image.fromarray(a).convert('L') #元画像と結果を重ね合わせる img.putalpha(b) img.show()
結果
メモ1
1: aeroplane 2: bicycle 3: bird 4: boat 5: bottle 6: bus 7: car 8: cat 9: chair 10: cow 11: diningtable 12: dog 13: horse 14: motorbike 15: person 16: pottedplant 17: sheep 18: sofa 19: train 20: tvmonitor
メモ2
使用できるモデルは以下で表示できる。
gluoncv.model_zoo.get_model_list()