pterhoer / FaceImageQuality

Code and information for face image quality assessment with SER-FIQ
534 stars 90 forks source link

Release the SER-FIQ on FaceNet code #8

Closed RyanCV closed 4 years ago

RyanCV commented 4 years ago

Hi when will you release the SER-FIQ on FaceNet code? Thanks.

pterhoer commented 4 years ago

Hi RyanCV,

thanks for your interest in our work!

We did not plan to release our code for SER-FIQ on FaceNet. If there is interest in the FaceNet code, we will clean it and upload it here. However, this might take several weeks (due to several deadlines...)

Best Philipp

RyanCV commented 4 years ago

Hi, it will be appreciated if you release the FaceNet code @pterhoer. In my own implementation of FaceNet code, I extracted the output from layer AvgPool (dimension is 1792-D), and then followed the class SERFIQ, but the face quality value is in the range [0.8, 0.87], is this the layer (AvgPool) you also started from? Thanks.

pterhoer commented 4 years ago

Hi RyanCV,

the quality range is not important for the quality estimation performance since only the relative values are of interest for differentiate between high and low quality faces. As mentioned in the paper, we used a FaceNet model from davidsandberg that generates a 128-dimensional face embedding. In our experiments we simply used the last two layers (output and the previous layer (with dropout on true)) to apply our methodology.

When we find some time to prepare the FaceNet code, we will upload it here on GitHub :)

Best Philipp

RyanCV commented 4 years ago

For the results shown in Fig.5 in your CVPR paper, the quality value for the 3rd, and 4th columns is 0.08, and 0.03, is it because there are two faces? For my implementation using SER-FIQ on FaceNet, I got quality values for non-faces (cropped background) in [0.7, 0.82], and faces in [0.8, 0.87]. Have you checked the face quality values for non-faces, and should it be very close to 0?

pterhoer commented 4 years ago

Hi RyanCV,

the score values in Figure 5 (sample images) are all minmax normalized in a range of [0,1] to make the different FQA algorithms comparable to each other. Moreover, SER-FIQ in this figure refers to ArcFace. The values 0.08 and 0.03 refer to a very low quality. But the reason for this is not the appearance of two faces (the input of the NN is a cropped face). But instead it turns out that the face recognition network used is biased towards asians and young people (https://arxiv.org/abs/2004.01019). SER-FIQ estimates it future performance and thus, the performance as well as the quality will be low.

We also checked SER-FIQ on non-faces and the quality values are significantly lower than for faces. Thus, your results might make sense. Since the quality range is dependent on the used network, non-faces have a low quality value but no very close to 0.

Best Philipp

RyanCV commented 4 years ago

@pterhoer Thanks for your detailed answers. I implemented the SER-FIQ on Facenet, and calculated the face image quality values on the subset of MS1M, as shown in the following image. But I found the side faces (marked with red rectangle box) have similar quality value with frontal faces. But I found in Fig. 5 in your CVPR paper, the side face (2nd column) has much lower quality value than frontal face (1st column), could you please give me some comments? Thanks.

ms1m_serfiq_default_2
pterhoer commented 4 years ago

Hi RyanCV, the performance of SER-FIQ depends on the used face recognition network. If it can deal well with side or even profile faces than also the quality values are high. Generally, you are right, profile or side faces performance worse and lead to lower quality values as we show in our IJCB paper (https://arxiv.org/abs/2004.01019). But especially for SER-FIQ, it depends on the network.

If you are using the same FaceNet network than in our work, then try a different dataset, since this FaceNet model was trained on MS1M.

Best Philipp

RyanCV commented 4 years ago

Hi Philipp, will the keep_ratio of dropout layer have much effect on the quality value even on the same dataset? I found there is discussion on the effect of keep_ratio of dropout in your paper. Thanks.

pterhoer commented 4 years ago

Hi RyanCV,

we tried different dropout probabilities in a range of [0.2,0.8] and observed always a similar performance on Adience and LFW. The extreme cases will not work since 0 and 1 will always produce the same stochastic embeddings.

Best Philipp

XHQC commented 4 years ago

High accuracy recognition model, feature vector extraction does not show robust distribution, clear, fuzzy, occlusion, half face and other quality evaluation has no good difference

pterhoer commented 4 years ago

High accuracy recognition model, feature vector extraction does not show robust distribution, clear, fuzzy, occlusion, half face and other quality evaluation has no good difference

Hi cvlmm,

Can you please ellaborate on this? I don't understand your point.

Best Philipp

SURABHI-GUPTA commented 3 years ago

@RyanCV @RyanCV Can I train this from scratch on my own dataset?