NCNN部署例程 mxnet-gluoncv之simple_pose

NCNN在官方源码中有一个例程,simple pose,今天试了一下效果。

整体来说,优化得太过,效果不行。

过程如下。

首先,在gluoncv中转换生成模型pose.param, pose.bin,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 pose-symbol.json pose-0000.params

第三步

此时,你就可以用ncnn中的simplepose来进行测试了,例如

simplepose COCO_val2014_000000324595.jpg


 

我直接用gluoncv测试的效果是这样的,

由于目前对NCNN的源码还不熟悉,所以也不清楚到底哪里出了问题。

对于NCNN的其他模型,作者介绍得最详细的我只找到这个,按照作者介绍的步骤,也成功部署了。

《详细记录YOLACT实例分割ncnn实现》
https://zhuanlan.zhihu.com/p/128974102

 

 

 

posted @ 2020-07-20 22:43  SpaceVision  阅读(126)  评论(0编辑  收藏  举报