zuoqing1988 / ZQCNN-MTCNN-vs-libfacedetection

对比ZQCNN-MTCNN与libfacedetection
149 stars 44 forks source link

准确率 #4

Open zhly0 opened 5 years ago

zhly0 commented 5 years ago

你好, 看了你的对比,确实感觉速度比较快,但是你对比的两个模型,都没有给出在相应测试集上的准确率和召回率,这个有进行过对比吗?谢谢

zuoqing1988 commented 5 years ago

没有,但是目测就能看出来libfacedetection的ssd模型准确度极差,很多脸的prob才0.3-0.4。

zuoqing1988 commented 5 years ago

从实际使用来看,ZQCNN-MTCNN的fast模型 1.比老版的libfacedetection要准得多, 2.检出率可能比原版MTCNN略低,但是速度快几倍 3.大大减少了人脸识别期望去掉的脸(如半遮挡,大角度,模糊等)

pxlong commented 5 years ago

没有,但是目测就能看出来libfacedetection的ssd模型准确度极差,很多脸的prob才0.3-0.4。

准确度上是这样的,我们测试结果也是这样,ZQCNN-MTCNN比libfacedetection好很多。

但是在我们的嵌入式平台(Arm-A9 (v7-a架构), 32bit)上,对于大小为160x90的图像, libfacedetection仍然能跑得很快(~ 60ms),但是ZQCNN-MTCNN不知道怎么就变得比较慢了(~ 400ms)。根据readme,160x90的图像,Arm-A72大概只需要13ms,难道Arm-A9和Arm-A72(64bit)差了这么多吗?

zuoqing1988 commented 5 years ago

@pxlong 根据我的经验,同主频下64位的大概有32位的4倍快。 我用一个hi6620oem(据传是麒麟910,四核A9主频1.6GHz)测试4_320x240.jpg找最小40,单线程69.6ms

pxlong commented 5 years ago

@pxlong 根据我的经验,同主频下64位的大概有32位的4倍快。 我用一个hi6620oem(据传是麒麟910,四核A9主频1.6GHz)测试4_320x240.jpg找最小40,单线程69.6ms

我们的是双核arm,也是设置为单线程,图像中只有一个脸且足够大(> 40),一般都要400 - 500ms。与您的结果差别很大,我现在在找原因,您有没有什么建议?

zuoqing1988 commented 5 years ago

@pxlong 我觉得你这速度有可能根本没有启动neon指令。你需要按照ZQCNN的里面的编译过程来编译。先要编译出openblas,然后 mkdir cmake-build-release cd cmake-build-release cmake .. -DSIMD_ARCH_TYPE=arm -DBLAS_TYPE=openblas make SampleMTCNN 上面过程都是在arm机器上编译。 千万别自己瞎找一个toolchain之类的就编译。

pxlong commented 5 years ago

@zuoqing1988 谢谢哈,不过我确实是按照这个步骤编译的,不过是用toolchain,我会试试直接在arm机器上编译。 另外,刚刚确认了一下,我们arm cpu的主频只有667Mhz。