penincillin / DREAM

This is the public repository for our accepted CVPR 2018 paper "Pose-Robust Face Recognition via Deep Residual Equivariant Mapping"
http://mmlab.ie.cuhk.edu.hk/projects/DREAM/
BSD 2-Clause "Simplified" License
388 stars 98 forks source link

the difference of cfp_res50_naive.pth.tar model and cfp_res50_end2end.pth.tar model #39

Closed jolinlinlin closed 5 years ago

jolinlinlin commented 5 years ago

I run sh eval_cfp.sh and get different result in CFP dataset as follows: `resnet50_naive ../../data/model/cfp_res50_naive.pth.tar ----- result for Frontal-Frontal ----- Average auc: 0.9972375510204083 Average eer: 0.018285714285714287 ----- result for Frontal-Profile ----- Average auc: 0.9738016326530612 Average eer: 0.08342857142857144

resnet50_end2end ../../data/model/cfp_res50_end2end.pth.tar

----- result for Frontal-Frontal ----- Average auc: 0.9980669387755103 Average eer: 0.012857142857142859 ----- result for Frontal-Profile ----- Average auc: 0.9792285714285714 Average eer: 0.06885714285714287 but i can't understand the reason of different result. I read the code and I find a flag named "end2end" and: if self.end2end: raw_feature = self.fc1(mid_feature)#残差块 raw_feature = self.relu(raw_feature) raw_feature = self.fc2(raw_feature) raw_feature = self.relu(raw_feature)

        yaw = yaw.view(yaw.size(0),1)
        yaw = yaw.expand_as(raw_feature)

        feature = yaw * raw_feature + mid_feature

    else:
        feature = mid_feature`

Does it mean that naive model don't have DREAM block? Can you tell me the difference of cfp_res50_naive.pth.tar model and cfp_res50_end2end.pth.tar model?Thank you very much!

penincillin commented 5 years ago

Sorry for the delayed reply. Yes, the naive model is the ResNet model with one more fully connected layer. You can refer to the readme.md for how to use the naive and end-to-end model.

jolinlinlin commented 5 years ago

@penincillin Thank you for your reply.The difference of result of naive model and end2end model is so close.Dose it mean DREAM block has poor effect?

penincillin commented 5 years ago

@jolinlinlin As you have said, the naive model itself has already achieves accuracy of 0.99 and 0.97 which are already a quite high performance. The difference of naive and end-to-end model is more prominent on challenging datasets such as IJB-A.

jolinlinlin commented 5 years ago

@penincillin Thank you very much. And I have another problem about pnp.txt in preprocess.I can't understand what does it mean and can I use the pnp.txt which you give to align another datasets such as MS-Celeb-1M?

penincillin commented 5 years ago

For face alignment, the source code belongs to sensetime so I cannot release them. So I release a executable file which you can use to align you own face images. pnp.txt is the expected face landmarks after alignment.