Tencent / ncnn

ncnn is a high-performance neural network inference framework optimized for the mobile platform
Other
20.35k stars 4.16k forks source link

NCNN性能 #74

Closed westpilgrim closed 7 years ago

westpilgrim commented 7 years ago

编译成功了,人脸识别,小米2手机,比CAFFE版本快三分之一。有点失望。

westpilgrim commented 7 years ago

速度有点不稳定,快的时候快两倍,慢的时候和CAFFE差不多

zsffq999 commented 7 years ago

你用的是什么网络?速度是多少?

westpilgrim commented 7 years ago

MTCNN+LIGHT CNN 平均两三百毫秒,最快一百多毫秒,最慢五百多毫秒。 CAFFE平均是三四百毫秒

panda-lab commented 7 years ago

@westpilgrim mtcnn 图像多大分辨率?

guozhongluo commented 7 years ago

@westpilgrim 你的MTCNN部分在手机上的速度是多少?

westpilgrim commented 7 years ago

@lsy17096535 320*240 @guozhongluo 没测,就测了个整体速度。比对一对图片,在CAFFE版本中MTCNN占一半时间,所以估计是50-80毫秒了。

kismde commented 7 years ago

@westpilgrim ,我是新手,学习了教程之后,可以用opencv读取一张rgb图片(2维),然后用ncnn::Mat::from_pixels_resize转换到ncnn::Mat(变成3维),即可将其feed给ncnn模型。但是如何将读取的多张rgb图片,转成ncnn::Mat,并feed给ncnn模型?

echofeng commented 7 years ago

mtcnn耗时是不固定的,除了Pnet是全卷积,Rnet和Onet的耗时和候选框数量有关。用整体耗时来评估ncnn性能不太客观。

westpilgrim commented 7 years ago

@wangkgege 只能循环,NCNN不支持BATCHSIZE>1 @echofeng 每次循环都是相同的图,循环了一百次,打印每次比对时间

kismde commented 7 years ago

@westpilgrim 谢谢,这下我能确认了。

zsffq999 commented 7 years ago

@westpilgrim 我的实现也差不多,在小米2上light cnn C用时300ms,seetaface检测用200ms

kismde commented 7 years ago

@westpilgrim ,你的mtcnn的LNet是从caffe model转成ncnn model的吧?但是,我的prototxt文件中含有Slice层,能转成功,但调用ncnn版的LNet时,报错了。相关信息如下: layer { name: "slicer_data" type: "Slice" bottom: "data" top: "data241" top: "data242" top: "data243" top: "data244" top: "data245" slice_param { slice_point: 3 slice_point: 6 slice_point: 9 slice_point: 12 axis: 1 } } 错误信息: layer data241 not exists layer index -1 not exists custom layer data241 not exists custom layer index -1 not exists 这里也有相似的状况:https://github.com/Tencent/ncnn/issues/68。 但我觉得不能解决问题,向你请教一下。

wonderzy commented 7 years ago

@westpilgrim

MTCNN+LIGHT CNN 平均两三百毫秒,最快一百多毫秒,最慢五百多毫秒。 CAFFE平均是三四百毫秒

请问你有开线程吗

westpilgrim commented 7 years ago

@wonderzy 开的,用默认的线程数

kismde commented 7 years ago

@westpilgrim ,您好,我将caffe版的mtcnn的pnet模型使用ncnn转换了,然后对比了pnet模型的ncnn版与caffe版的输出,发现二者不同。我把实验过程和代码记录了下来。因为看到您成功运行了ncnn版mtcnn模型,能否请您指导一下?

westpilgrim commented 7 years ago

@wangkgege 把输入ncnn::Mat in也打印一下,看是不是一样

wonderzy commented 7 years ago

@westpilgrim ncnn::Extractor ex = net.create_extractor(); ex.set_light_mode(true); ex.set_num_threads(4);

hi, 你有没有试过把线程换成1对比一下性能

westpilgrim commented 7 years ago

@wonderzy 没,现在这个速度可以用了

kismde commented 7 years ago

@westpilgrim 谢谢,现在没问题了。

guozhongluo commented 7 years ago

@wangkgege 你做了什么调整,现在没问题了

kismde commented 7 years ago

@guozhongluo 没做调整,只是按照另一大神的写法来做的。代码在这里https://github.com/ElegantGod/ncnn

jjjjohnson commented 6 years ago

@westpilgrim 我想测试一下MTCNN 在安卓端的性能 不知可否指导一下怎么把MTCNN移植到安卓的?谢谢

iChiaGuo commented 6 years ago

@westpilgrim NCNN 运行在iPhone手机上一段时间烫手,有什么好的优化方案吗?