wy1iu / sphereface

Implementation for <SphereFace: Deep Hypersphere Embedding for Face Recognition> in CVPR'17.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SpherefaceNet-04, SpherefaceNet-06 Release

zuoqing1988 opened this issue · comments

I have tested SpherefaceNet-04 and SpherefaceNet-06 with and without BatchNorm.

Training on WebFace,
SpherefaceNet-04 WITHOUT BN can easily achieve ~98.00% (the paper reports 98.2%),
SpherefaceNet-04 WITH BN can easily achieve ~98.20% (fine-tuning 98.35%),
SpherefaceNet-06 WITHOUT BN can easily achieve ~98.50% (the paper doesnot give),
SpherefaceNet-06 WITH BN can easily achieve ~98.70% (fine-tuning 98.80%).

It should be noted that SpherefaceNet-04's forward only costs ~29ms (with BN ~33ms) and SpherefaceNet-06 costs ~49ms (with BN ~55ms), tested on E5-1650V4 3.6GHz, mini-caffe, openblas single thread.

The attachments are the nets with BN.

spherefacenet-04-06.zip

A modification from dimension 512 to 256.
dim256-SpherefaceNet-04 with BN achieves >97.90% (without fine tuning). Forward costs only 9ms~10ms, tested on E5-1650V4 3.6GHz, mini-caffe, openblas single thread.

An important comparsion:
I have implemented my own C++ version of MTCNN, and cropped images for SeetaFace and Sphereface.
The accuracy of SeetaFace is 97.83%, and single forward costs ~110ms.
The accuracy of dim256-SphereFaceNet04 is 97.78% (with flipping 97.93%), single forward costs ~9ms (twice ~19ms)

https://github.com/seetaface/SeetaFaceEngine

The attachments are the dim256-SpherefaceNet04

dim256-SpherefaceNet04.zip

Wonderful work. I've tried the SpherefaceNet-06 with BN yesterday. I modified the fc dimension to 128 and got 98.76% (with face mirror).

@happynear Thanks.
Currently I am tring to modify all conv and fc laryers to half. It can reduce the forward time to only 25%-30% of the original.

Are you training these model from scratch/random weights? or using some form of pretraining?

Thanks for the contribution!

@silcowitz without '-weights' or '-snapshot'

@zuoqing1988

Can you share the training log of SpherefaceNet-06?

commented

98% + on which database?

commented

I have trained sphereface06 , but loss no longer converges at 10%. I tried to change the lambda_min to 10, it still has no effect. i don't have a good graphics card (gtx1060), can you give me some advice about how to adjust parameters? Thank you very much! @wy1iu @zuoqing1988

@lwk98 You can find much better models (mxnet or caffe) here

Could those prototxt files be incompatible with the caffemodel shared in the readme file (https://drive.google.com/open?id=0B_geeR2lTMegb2F6dmlmOXhWaVk )?