pterhoer/FaceImageQuality

The value is not distinguishable

zhongfanghong opened this issue · 5 comments

hi! Thank you for this method, but I have a problem. The results of all images are almost the same, and there is no good discrimination.
Looking forward to your answer!

Hi zhongfanghong,

thanks for your interest in this work :)

Depending on the network you are using for SER-FIQ, the quality values might have a very small range.
However, the quality ranges have no effect on face quality assessment in general. A face image with a lower quality value is still less suitable for face recognition than a face with a higher quality score. Also for filtering low-quality face images it is still usable in such a scenario.

If you need the score in a more convenient range, you can simply scale (e.g. with minmax normalization). However, for most applications, this is not needed.

Best
Philipp

well ! Your help was very much appreciated.
I have another question, how to extract the weight file(pre_fc1_bias.npy and pre_fc1_weights.npy) used in the code? Because I might need to use another face recognition model.

Best
zhongfanghong

@pterhoer
Hi
Thank you for your contribution,it's great !
I have a question maybe to ask for your help, the "ser_fiq.predict" is "drop + dense(linear) + bn + l2norm" in the code, if we use your method, we need to replace this place with insightface model (have dropout=p,p!=0,for example p=0.5) , use the new insightface model (drop +fc + bn + l2norm) to replace your ser_fiq?
Is my understanding correct ?

Best
Elain

@pterhoer
Hi
Thank you for your contribution,it's great !
I have a question maybe to ask for your help, the "ser_fiq.predict" is "drop + dense(linear) + bn + l2norm" in the code, if we use your method, we need to replace this place with insightface model (have dropout=p,p!=0,for example p=0.5) , use the new insightface model (drop +fc + bn + l2norm) to replace your ser_fiq?
Is my understanding correct ?

Best
Elain

Hi @sky186
yes, this is correct. Our model just re-implements the last Insightface layers with the extracted weights from the original Insightface model we have used.
If you want a different architecture, just reimplement the layers and set the weights from the model to your implemented layers.
Also, you could pass through the image T times, e.g. T=100, through the network with Dropout active and apply the distance calculation after the forward passes. In my tests this was faster.

Best,
Jan