[PYTHON] Résumé super (concis) de la classification des images par ArcFace
introduction
Dans cet article, je résumerai brièvement les grandes lignes de la classification des images à l'aide d'ArcFace.
Veuillez consulter le site de référence pour le contexte théorique et le code le cas échéant.
Super résumé
- Une méthode d'apprentissage appelée apprentissage métrique est souvent utilisée pour classer les images.
- L'apprentissage à distance consiste à se renseigner sur les données intégrées dans l'espace afin que les mêmes classes soient regroupées et que différentes classes soient placées à l'écart les unes des autres.
- Dans un classificateur simple, le modèle doit être recyclé lorsqu'une nouvelle classe est ajoutée, mais en apprentissage à distance, le modèle existant peut être utilisé tel quel.
- La nouvelle classe est (idéalement) située loin de la classe existante, de sorte que la nouvelle classe se rassemble dans un endroit unique parmi les nouvelles classes.
- L'idée de base est de tracer des données inconnues par rapport aux données collectées spatialement et de renvoyer la classe la plus proche en tant que valeur prédite (décrite plus loin).
--ArcFace est l'un des algorithmes d'apprentissage à distance SOTA.
- Pour augmenter la distance entre les points dans l'espace, augmentez la distance depuis l'origine de chaque point ou augmentez l'angle.
--Arc Face est une approche axée sur l'angle.
En tant que caractéristique, la distance entre les points est la même que la distance entre les superplans, il semble donc facile à interpréter géométriquement.
- D'autres incluent la perte de centre traditionnelle, la perte de contraste, la perte de triplet et SphereFace et CosFace récemment introduits.
- Pour plus d'informations: Méthode d'apprentissage moderne des métriques profondes: SphereFace, CosFace, ArcFace
- Explication approfondie de l'apprentissage métrique profond à l'aide des angles - Pratique d'AdaCos par Pytorch-
--ArcFace fonctionne en l'ajoutant en tant que couche plus tard dans le classificateur
--Pour plus d'informations: [Keras] J'ai essayé de classer les bouteilles pour animaux de compagnie en utilisant MobileNetV2 + ArcFace!
- Implémentation d'ArcFace par Keras (github)
--Prédict utilise un modèle d'apprentissage avec ArcFace supprimé
--Pour plus d'informations: [Keras] J'ai essayé de classer les bouteilles pour animaux de compagnie en utilisant MobileNetV2 + ArcFace!
--La sortie est un vecteur (tableau unidimensionnel) pour chaque donnée
--Calculer la distance entre le vecteur de sortie des données de test et le vecteur de sortie des données de train (calculé à l'avance), et utiliser l'étiquette des données de train avec la distance la plus proche comme résultat de prédiction.