Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NCNN性能 #74

Closed
westpilgrim opened this issue Aug 2, 2017 · 23 comments
Closed

NCNN性能 #74

westpilgrim opened this issue Aug 2, 2017 · 23 comments

Comments

@westpilgrim
Copy link

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

@westpilgrim
Copy link
Author

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

@zsffq999
Copy link

zsffq999 commented Aug 2, 2017

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

@westpilgrim
Copy link
Author

westpilgrim commented Aug 2, 2017

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

@panda-lab
Copy link

@westpilgrim mtcnn 图像多大分辨率?

@guozhongluo
Copy link

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

@westpilgrim
Copy link
Author

westpilgrim commented Aug 3, 2017

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

@kismde
Copy link

kismde commented Aug 3, 2017

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

@echofeng
Copy link

echofeng commented Aug 3, 2017

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

@westpilgrim
Copy link
Author

westpilgrim commented Aug 3, 2017

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

@kismde
Copy link

kismde commented Aug 3, 2017

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

@zsffq999
Copy link

zsffq999 commented Aug 3, 2017

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

@kismde
Copy link

kismde commented Aug 3, 2017

@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
Copy link

wonderzy commented Aug 4, 2017

@westpilgrim

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

请问你有开线程吗

@westpilgrim
Copy link
Author

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

@kismde
Copy link

kismde commented Aug 7, 2017

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

@westpilgrim
Copy link
Author

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

@wonderzy
Copy link

wonderzy commented Aug 7, 2017

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

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

@westpilgrim
Copy link
Author

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

@kismde
Copy link

kismde commented Aug 8, 2017

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

@guozhongluo
Copy link

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

@kismde
Copy link

kismde commented Aug 9, 2017

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

@jjjjohnson
Copy link

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

@iChiaGuo
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants