NCNN展開ルーチンmxnet-gluoncvのSimple_pose

NCNNには公式ソースコードのルーチン、シンプルなポーズがあり、今日はその効果を試しました。

全体的に、最適化が多すぎて、効果が良くありません。

プロセスは次のとおりです。

まず、生成されたモデルpose.param、pose.binをgluoncvに変換します。Pythonのソースコードは次のとおりです。

その中で、
export_block( 'simple_pose_resnet18_v1b'、net、preprocess = True、layout = 'HWC')で変換されものはNCNN
に正常にデプロイできないため、Pythonソースコードでコメントアウトしました。

# this one works OK for TestFcn_method2-symbol
import mxnet as mx
import gluoncv as gcv
from gluoncv.utils import export_block

net = gcv.model_zoo.get_model('simple_pose_resnet18_v1b', pretrained=True)
#pose_net = model_zoo.get_model('simple_pose_resnet18_v1b', pretrained=True)
net.hybridize()

#try & uncomment the below code to generate:
#it seems the below export method is NOT OK for NCNN
#export_block('simple_pose_resnet18_v1b', net, preprocess=True, layout='HWC')

#the below method is OK for NCNN
data_shape = (1, 3, 512, 512)
input_data = mx.nd.random.uniform(-1, 1, data_shape)
_ = net(input_data)
net.export('pose')

# uncomment the below code to display
print(net)

print('Done.')

# have a view of what has been done!
import glob
print(glob.glob('*.json') + glob.glob('*.params'))
print('All Done.')

第二段階

次に、次のコマンドを使用してncnn.paramとncnn.binを生成し、生成後に名前をpose.param、pose.binに変更します。
mxnet2ncnnポーズ-symbol.jsonポーズ-0000.params

3番目のステップ

この時点で、たとえばncnnでsimpleposeを使用してテストできます。

simplepose COCO_val2014_000000324595.jpg


 

私は直接gluoncvを使用して、このような効果をテストします。

私は現在NCNNのソースコードに精通していないので、何が悪かったのかは明らかではありません。

NCNNの他のモデルについては、著者が最も詳細に紹介したモデルのみを見つけました。著者が紹介した手順に従って、これも正常に展開されました。

「YOLACTインスタンスセグメンテーションncnn実現の詳細な記録」
https://zhuanlan.zhihu.com/p/128974102

 

 

 

おすすめ

転載: blog.csdn.net/tanmx219/article/details/107476132