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