Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementação da track 3 do RFIW com FaCoRNet #75

Closed
vitalwarley opened this issue Apr 28, 2024 · 4 comments
Closed

Implementação da track 3 do RFIW com FaCoRNet #75

vitalwarley opened this issue Apr 28, 2024 · 4 comments
Assignees

Comments

@vitalwarley
Copy link
Owner

#38 (comment)

@vitalwarley vitalwarley self-assigned this Apr 28, 2024
@vitalwarley
Copy link
Owner Author

Usei o último modelo treinado para track 1 do #26 na track 3, como especificado no próprio repositório. Ao fim, obtive um .csv de dimensões 190x3897. Cada linha i representa uma ordenação das imagens da galeria após computação e agregação das embeddings relativas à sonda i e todas as imagens da galeria. A agregação utilizada foi a média. Abaixo os resultados reportado pelos autores, bem como os obtidos com ajuda do ChatGPT

image


The calculations for the metrics using the corrected data and functions are now complete:

  • Rank@1 Accuracy: 48.42%
  • Rank@5 Accuracy: 64.21%
  • Mean Average Precision (mAP): 20.67%

"Average" é simplesmente a média das métricas mAP e Rank@5.

A fusão Max está em curso.

@vitalwarley
Copy link
Owner Author

vitalwarley commented Apr 28, 2024

  • Rank@1: 50.53%
  • Rank@5: 68.42%
  • mAP: 19.88%
  • Average: 44.15%

São resultados melhores que os reportados. Por que, não sei. Um dado que me confunde é que em The 5th Recognizing Families in the Wild Data Challenge: Predicting Kinship from Faces temos

The protocol of T-3 could be used to find parents and other relatives of unknown, missing children. The gallery has 31,787 facial images from 190 families in the test set. The inputs are media for a subject (i.e., probes), and outputs are ranked lists of all faces in the gallery. The number of relatives varies for each subject, ranging anywhere from 1 to 20+. Furthermore, probes have one-to-many samples– the means of fusing feature sets (i.e., a probe’s media) is an open research question [52]. This many-to-many task is currently set up in closed form (i.e., every probe has relative(s) in the gallery).

Só que no repositório do #26 há apenas 3897 amostras, que é o mesmo número de amostras da galeria no gallery_list.csv. Talvez esse texto do paper esteja errado? Enfim, pelo menos os resultados são próximos, muito embora aqui max seja melhor que mean.

vitalwarley added a commit that referenced this issue May 2, 2024
@vitalwarley
Copy link
Owner Author

vitalwarley commented May 2, 2024

Implementação aparentemente finalizada, no entanto não consigo executar a op na RIG2. Não descobri o porquê. Estou rodando no meu notebook. O problema é que vai demorar cerca de +~9h (já se passaram ~3h), mas não por falta de VRAM, e sim pela necessidade de limitar o tamanho do batch. Os autores da FaCoRNet não explicaram como fizeram a Track 3, nem disponibilizaram código. Estou mantendo o uso do mecanismo de atenção, pois no paper disseram que usaram o modelo completo

We apply our proposed FaCoRNet model from the kinship verification task (i.e., the pre-trained model from AdaFace and train from the verification task). Table 3 demonstrates that the search and retrieval performance from our FaCoRNet significantly outperforms current SOTA methods Vuvko, Ustcnelslip, and Contrastive by 16.2 percent (0.390 → 0.542), 31.2 percent (0.230 → 0.542), and 14.2 percent (0.400 → 0.542), respectively. These results show that the extracted face componential relation information by our proposed FaCoRNet substantially benefits the challenging many-to-many task.

A ênfase foi minha. O mecanismo de atenção requer pares pré-definidos. A forma que os construí foi por sonda. Cada sonda $s_i$ tem $s_{i_j}$ imagens. Em seguida, eu as pareio com $s_{i_j}$ imagens da galeria. Realizo a inferência para todas as imagens da galeria, e então repito o processo para todas as sondas. Isso é bem demorado porque é ineficiente em termos de GPU. Minha 3070 fica nos 25% de VRAM. Tentei buscar formas de melhorar isso (via ModuleList ou CUDA Streams), mas não consegui.

@vitalwarley
Copy link
Owner Author

vitalwarley commented May 3, 2024

Após 12h14min55s segundos, deu RuntimeError. Eu havia testado o código em menos dados, mas pelo jeito não foi suficiente.

RuntimeError: shape '[190, -1]' is invalid for input of size 5763671

Acredito que a razão é que o último batch de imagens da galaria para cada sonda pode ter mais amostras do que deveria, dado que sempre retorno $s_{i_j}$ imagens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant