Apprentissage par fusion à plusieurs coups et à plusieurs coups pour la reconnaissance mobile des aliments (reconnaissance visuelle)

Apprentissage par fusion à plusieurs coups et à plusieurs coups dans la reconnaissance visuelle mobile des aliments

Compte officiel : EDPJ

Table des matières

0. Résumé

0.1 Explication des mots-clés et des termes

1. Introduction

2. Apprentissage par fusion à quelques coups et à plusieurs coups

2.1 Jeu de données NTU-IndianFood107

2.2 Apprentissage à plusieurs coups (perte softmax, perte KL) utilisant la distillation des connaissances en deux étapes (distillation des connaissances)

2.3 Apprentissage en quelques coups

2.4 Apprentissage par fusion (perte totale)

3. Résultats expérimentaux

3.1 Évaluation de la reconnaissance à plusieurs coups

3.2 Évaluation de la reconnaissance de quelques coups

3.3 Évaluation de la reconnaissance de fusion

4. Référence


0. Résumé

Ces dernières années, la reconnaissance visuelle mobile des aliments est devenue une application importante dans le domaine de l'enregistrement des aliments et de la surveillance alimentaire. Les méthodes de reconnaissance des aliments existantes utilisent l'apprentissage traditionnel à plusieurs coups pour former un vaste réseau dorsal, ce qui nécessite une grande quantité de données de formation. Cependant, certains échantillons de catégories d'aliments sont limités, ce qui rend inutilisable la méthode traditionnelle de formation à plusieurs doses. De plus, les solutions existantes utilisent de grands réseaux complets à la pointe de la technologie pour améliorer les performances de la reconnaissance des aliments sans accorder plus d'attention à la réduction de la taille et du calcul du réseau. Par conséquent, ils ne conviennent pas à une utilisation sur des appareils mobiles. Dans cet article, les méthodes d'apprentissage par fusion à quelques coups et à plusieurs coups sont utilisées pour résoudre ces problèmes rencontrés dans la reconnaissance alimentaire mobile. Cette méthode utilise un réseau compact qui peut apprendre des catégories d'ensembles de données existantes ainsi que de nouvelles catégories avec seulement quelques échantillons. Dans cet article, un nouveau jeu de données est construit pour évaluer les performances de notre méthode.

0.1 Explication des mots-clés et des termes

  • Quelques prises de vue (peu d'échantillons) : pour les modèles qui ont été pré-entraînés (pré-apprentissage), seule une petite quantité de données étiquetées (ensemble de support) peut être vue pour terminer la tâche (ensemble de requêtes).
  • N-way K-shot : paramètres pour un apprentissage en quelques prises de vue. L'ensemble Support a un total de N catégories, et chaque catégorie a K données étiquetées.
  • many-shot : En fait, il s'agit d'un apprentissage supervisé qui utilise une grande quantité de données étiquetées.
  • Fusion : la fusion mentionnée ici fait référence à la combinaison des paramètres de classificateur formés à quelques coups et à plusieurs coups, de manière à obtenir l'effet de reconnaissance des données dans les deux ensembles de données. Au lieu de la fusion de fonctionnalités mentionnée dans l'article PersEmoN : A Deep Network for Analyzing Apparent Personality, Emotion and Their Relationships .
  • Distillation des connaissances : C'est la catégorie de la compression du réseau, afin de répondre aux exigences de faible stockage et de faible consommation d'énergie de certains appareils (tels que les terminaux mobiles). Opération spécifique : entraînez d'abord un grand réseau (réseau d'enseignants), puis entraînez un petit réseau (réseau d'étudiants), puis laissez-le imiter la sortie du grand réseau.
  • Paramètre Softmax T (température, Température): Lorsque l'amplitude de certaines valeurs dans un ensemble de données est beaucoup plus grande que d'autres valeurs, la sortie d'autres valeurs sera proche de 0 via softmax. L'utilisation d'un T qui est du même ordre de grandeur que cette grande valeur résout ce problème, comme le montre l'équation (1). Quant à l'obtention d'un soft label, c'est un plus.

1. Introduction

Certaines applications existantes (telles que MyFitnessPal et Noom Coach) peuvent aider les utilisateurs à maintenir une alimentation saine. Cependant, ils obligent l'utilisateur à enregistrer manuellement le régime alimentaire, ce qui prend du temps et est fastidieux. Au lieu de saisir les données manuellement, certaines études enregistrent les données en capturant des images d'erreurs avec l'appareil photo d'un smartphone. Par conséquent, avec la reconnaissance d'image, une rétroaction plus rapide peut être fournie à l'utilisateur.

Ces dernières années, un grand nombre d'architectures CNN ont été utilisées pour la reconnaissance des aliments.

  • Pouladzadeh a proposé un système de reconnaissance des aliments basé sur l'extraction de caractéristiques CNN, qui identifie plusieurs aliments dans les images grâce à l'exploration de régions.
  • Hassannejad a amélioré le module de démarrage de Google pour évaluer ses performances sur différents ensembles de données alimentaires.
  • Aguilar a développé un classificateur de fusion qui utilise deux CNN différents pour la reconnaissance des aliments.

Les systèmes de reconnaissance des aliments existants utilisent de grands réseaux complets (par exemple : VGGNet, ResNet, Inception) pour obtenir des performances satisfaisantes. Cependant, ces réseaux nécessitent une grande quantité de données d'entraînement. Cependant, pour certains groupes d'aliments, les données disponibles sont limitées. Par conséquent, ces catégories ne peuvent pas être utilisées pour la formation du réseau susmentionné. De plus, les réseaux existants nécessitent un stockage élevé, un calcul important et une consommation d'énergie élevée, de sorte qu'ils ne peuvent pas être utilisés sur des terminaux mobiles.

Apprentissage en quelques coups, utilisant une petite quantité de données d'entraînement pour entraîner le modèle. La génération ou la classification d'images peut être effectuée sur la base d'une petite quantité de données étiquetées. Il peut résoudre efficacement le problème de reconnaissance d'échantillons insuffisants. Ces dernières années, certains chercheurs ont commencé à travailler sur le développement de nouvelles architectures d'apprentissage en quelques coups. .

  • Sung a proposé un réseau de relations (réseau de relations, RN), qui extrait les caractéristiques des images de requête et d'entraînement via un module d'intégration, puis cette caractéristique sera comparée à la moyenne de chaque caractéristique de catégorie.
  • Gidaris a proposé un nouvel apprentissage à quelques coups basé sur l'attention et il a repensé un classificateur CNN.

2. Apprentissage par fusion à quelques coups et à plusieurs coups

2.1 Jeu de données NTU-IndianFood107

L'auteur a construit un ensemble de données sur la cuisine indienne (cuisine indienne), qui contient deux éléments :

  • Un ensemble de données de base à plusieurs prises de vue obtenu à partir de moteurs de recherche. Il contient 83 catégories d'aliments avec environ 600 images chacune.
  • Un ensemble de données de quelques clichés sous la forme d'un journal alimentaire. Le journal alimentaire est tiré d'un site Web de critique de cuisine indienne et les images sont des photos prises par les utilisateurs dans les restaurants. Un tel ensemble de données est construit pour simuler le scénario dans lequel les utilisateurs fournissent de nouvelles catégories avec seulement un petit nombre d'images, ce qui est utile pour un apprentissage en quelques prises de vue.

La méthode d'utilisation de la fusion de quelques plans et de plusieurs plans consiste non seulement à utiliser quelques plans pour compléter la reconnaissance de nouvelles catégories, mais également à reconnaître les catégories de données à plusieurs plans.

La figure ci-dessus est l'architecture utilisée dans cet article. il comprend:

  • Un module ResNet-18 distillé des connaissances comme modèle pour la reconnaissance à plusieurs coups. Après l'entraînement avec l'ensemble de données à plusieurs prises de vue, le poids du classifieur est extrait.
  • module à quelques prises utilisant ResNet-18 comme extracteur de fonctionnalités. Générez un vecteur prototype (prototypique) pour chaque catégorie de quelques clichés en fonction d'une petite quantité de données d'entraînement.

La fusion de quelques coups et de plusieurs coups est obtenue en concaténant les poids des deux classificateurs.

2.2 Apprentissage à plusieurs coups (perte softmax, perte KL) utilisant la distillation des connaissances en deux étapes (distillation des connaissances)

Comparé au CNN complet, le réseau compact utilisé dans cet article ne comporte qu'un petit nombre de couches et de paramètres. Le but de la distillation des connaissances est de transférer des informations à partir d'un réseau d'enseignants plus large \mathhop \Phi \nolimits_tpour améliorer \mathhop \Phi \nolimits_sles performances d'un réseau compact (en fait un réseau d'étudiants). Tout d'abord, entraînez-vous avec une perte softmax classique \mathhop \Phi \nolimits_tpour obtenir une grande précision de classification. Pour \mathhop \Phi \nolimits_sl'entraînement, faites en sorte qu'il soit proche de \mathhop \Phi \nolimits_tla sortie. Hinton propose de modifier les paramètres dans softmax (température, température, T), générant ainsi des étiquettes cibles souples (étiquettes cibles souples) \mathhop \Phi \nolimits_tà partir eux, qui sont utilisées pour la formation \mathhop \Phi \nolimits_safin de générer des sorties similaires. \mathhop x\nolimits_iSoftmax génère une distribution de probabilité pour chaque image d'entrée \mathhop p\nolimits_i, exprimée comme suit :

où T est la température. \mathhop a\nolimits_iReprésente \mathhop \Phi \nolimits_tla probabilité pré-softmax (pré-softmax) (logits) de l'image i générée par celui-ci, et sa dimension est le nombre de catégories dans l'ensemble de données. Pour les classificateurs softmax traditionnels, T=1. De même, \mathhop \Phi \nolimits_sla probabilité dérivée de est notée \mathhop b\nolimits_i. En augmentant la valeur de T, \mathhop \Phi \nolimits_tune distribution de probabilité douce peut être obtenue \top {a'}\nolimits_i. Ainsi, étant donné les étiquettes d'image \{ (\top x\nolimits_i ,\top l\nolimits_i )\}, \mathhop \Phi \nolimits_sun apprentissage supervisé peut être effectué. La perte est exprimée comme suit : la combinaison \mathhop \Phi \nolimits_tde la perte softmax et de la perte de divergence KL (divergence de Kullback Leibler). La perte de divergence KL est définie comme :\top {a'}\nolimits_i\mathhop \Phi \nolimits_s\mathhop b\nolimits_i

Parmi eux,  \mathhop N\nolimits_creprésente le nombre total d'images d'entraînement dans l'ensemble de données à plusieurs prises de vue. La perte softmax utilisant l'entropie croisée est exprimée comme suit :

La distillation des connaissances traditionnelles n'utilise que les logits de la dernière couche entièrement connectée (FC). Afin de capturer de meilleurs détails structurels de chaque image d'entrée, des logits sont également générés à partir des couches intermédiaires (conv4 et bloc dense3) des deux réseaux, ce qui peut produire des cartes d'entités plus grandes (cartes d'entités). Intégrez les nouvelles couches FC et ReLU dans les couches intermédiaires correspondantes des deux réseaux, et les logits de la couche intermédiaire peuvent être exprimés par : \mathhop \Phi \nolimits_tet \mathhop a\nolimits_i^mde . Au cours du processus de formation, les logits de niveau intermédiaire et les logits pré-softmax participent à la perte de connaissances en deux étapes (Two-Stage Knowledge Distillation, TSKD):\mathhop \Phi \nolimits_s\mathhop b\nolimits_i^m

La fonction de perte totale est la somme pondérée de la perte softmax et de la perte TSKD : 

Avant de calculer le softmax de la k-ième catégorie, pour chaque image d'entraînement à plusieurs plans \mathhop x\nolimits_i, \mathhop \Phi \nolimits_sdes caractéristiques de dimension D sont extraites \mathhop z\nolimits_ipour calculer un score de classification brut (scores de classification bruts).

Parmi eux, \mathhop w\nolimits_kreprésente le poids de classement de la kème catégorie. W = (\mathop w\nolimits_1 , \ldots ,\mathop w\nolimits_k )Les dimensions de la matrice de poids de classification complète sont D \ fois K. W est mis à jour avec la fonction de perte de l'équation (5).

2.3 Apprentissage en quelques coups

La reconnaissance de quelques clichés utilisée dans cette étude crée un prototype de centre de gravité pour chaque catégorie de quelques clichés en fonction des vecteurs caractéristiques des images d'entraînement. Les scores bruts de classification de l'image sont obtenus en calculant la similarité entre l'image et le vecteur prototype de chaque catégorie. Cependant, l'amplitude du vecteur prototype dépend du vecteur de caractéristiques de l'image d'entrée, et l'amplitude des scores de classification de plusieurs plans et de quelques plans est également différente. Par conséquent, il est difficile de construire une reconnaissance fiable et unifiée entre les frameworks à plusieurs plans et à quelques plans. Gidaris propose d'utiliser la similarité cosinus au lieu du produit scalaire standard pour calculer en normalisant l'amplitude du vecteur prototype \mathhop s\nolimits_k.

Parmi eux, \mathop {\bar z}\nolimits_i ,\mathop {\bar w}\nolimits_kreprésente le vecteur de normalisation L2 (normalisation L2). \alphaEst un coefficient apprenable qui ajuste la plage de similarité cosinus pour s'adapter à la fonction softmax. Par conséquent, les poids de classification de l'apprentissage à quelques prises de vue ne sont plus affectés par l'ampleur des caractéristiques de l'image. De plus, en supprimant la couche ReLU, le vecteur prototype peut prendre des valeurs positives ou négatives comme le vecteur poids de classification.

Le vecteur caractéristique de chaque image d'entraînement de la kème catégorie est exprimé par : \{ \top {\bar z}\nolimits_1, \ldots,\top {\bar z}\nolimits_n\}. Le vecteur prototype de la kème catégorie s'exprime comme suit :

Cependant, en raison du nombre limité d'images d'entraînement, ces vecteurs prototypes basés sur la moyenne des vecteurs de caractéristiques d'image d'entrée ne peuvent pas générer une représentation précise de cette classe. Pour résoudre ce problème, un réseau compact formé à plusieurs prises de vue est utilisé. \mathhop w\nolimits_kModifiez le vecteur prototype de la k-ième classe à quelques coups en fonction des pondérations de classification de chaque classe à plusieurs coups . La similarité visuelle est également incluse en raison des \mathhop w\nolimits_kvecteurs de caractéristiques normalisés représentant leurs catégories .\mathhop w\nolimits_k

Ma compréhension ici est qu'en raison de la normalisation, la somme de tous les poids de classification pour la kème catégorie est 1. Selon la formule (7), afin d'obtenir des scores de classification bruts plus importants, il est naturel d'attribuer de grands poids de classification à de grands composants vectoriels de caractéristiques, c'est-à-dire que les vecteurs de caractéristiques et les poids de classification ont des arrangements de taille similaires, de sorte que vous pouvez utiliser une caractéristique A \mathhop w\nolimits_knormalisée vecteur représentant sa catégorie.

Par conséquent, le vecteur prototype d'une catégorie à quelques coups peut être mis à jour en trouvant un vecteur de poids le plus similaire pour les catégories à plusieurs coups.

Parmi eux, F()représente la similarité cosinus. Elle est suivie d'une distribution de probabilité softmax qui tient compte du degré de similarité \mathhop {\bar z}\nolimit_iavec le vecteur des poids de classification \mathhop w\nolimits_k, dont la sortie est la somme pondérée des poids de classification les plus similaires. Enfin, le vecteur prototype de la k-ième catégorie de quelques coups est exprimé par :

Parmi eux, \circcela signifie le produit Hamadard ( produit Hamadard , les éléments correspondants du vecteur sont multipliés et le produit est placé à la position de l'élément). \source \theta \nolimits_{moyen} ,\source \theta \nolimits_{sim}est un vecteur de poids entraînable de dimension D. Sa valeur est mise à jour dans l'apprentissage par fusion.

2.4 Apprentissage par fusion (perte totale)

P = \{ \mathop p\nolimits_1 , \ldots ,\mathop {p'}\nolimits_k \}Vecteur prototype représentant toutes {K'}les catégories à quelques coups, qui peuvent être concaténées avec des poids de classification à plusieurs coups W = \mathop w\nolimits_1 , \ldots ,\mathop w\nolimits_k. Par conséquent, les poids de classification du classificateur de fusion pour la reconnaissance unifiée des aliments sont : \mathop W\nolimits_{fusion} = [W,P] = [\mathop w\nolimits_1 , \ldots ,\mathop w\nolimits_k ,\mathop p\nolimits_1 , \ldots ,\mathop {p'}\nolimits_k.

Dans la phase de formation, formez d'abord le modèle à plusieurs coups avec TSKD sur l'ensemble de données de base. À l'étape suivante, la dernière couche de classification est supprimée et les paramètres du réseau sont fixés en tant qu'extracteur de caractéristiques pour un apprentissage en quelques coups. Cette étape est également mise à jour lorsque la reconnaissance multi-coups est entraînée en continu \source \theta \nolimits_{moyen} ,\source \theta \nolimits_{sim}. {N'}À chaque époque d'entraînement (épisode), pour entraîner le réseau, N images d'entraînement sont sélectionnées au hasard dans l'ensemble de données de base, et N images d'entraînement sont sélectionnées au hasard dans chaque catégorie du journal alimentaire. Des vecteurs prototypes pour chaque catégorie de quelques clichés {N'}sont générés à partir d'images d'entraînement sélectionnées. La perte totale de l'apprentissage total par fusion est la perte d'entropie croisée :

Parmi eux, K, K'représentent le nombre de catégories dans les ensembles de données à plusieurs plans et à quelques plans, respectivement. \mathhop x\nolimits_{(i,k)}Désigne l'image i dans la catégorie k.

Une fois la formation terminée, elle est basée sur \mathhop W\nolimits_{fusion}le réglage fin du classificateur. Dans la phase de test, le vecteur de caractéristiques de l'image de requête est extrait et son score de classification brut est calculé. Les résultats de prédiction sont obtenus après le softmax final.

3. Résultats expérimentaux

3.1 Évaluation de la reconnaissance à plusieurs coups

TOP-1 et TOP-5 représentent les premier et cinquième modèles avec les meilleures performances en reconnaissance de plusieurs coups. Les données suivantes sont les performances des modèles de gauche par rapport à TOP. Les résultats expérimentaux montrent que cette étude a de meilleures performances que les données à plusieurs prises de vue de l'article Dynamique à quelques prises de vue. En effet, l'utilisation de TSKD permet une meilleure généralisation.

3.2 Évaluation de la reconnaissance de quelques coups

Les résultats expérimentaux montrent que cette étude a de meilleures performances que les données à quelques coups de l'article Quelques coups dynamiques. En effet, cette étude est capable d'extraire des vecteurs de caractéristiques précis à partir d'images à quelques prises de vue, ce qui se traduit par de meilleures performances de classification.

3.3 Évaluation de la reconnaissance de fusion

Les résultats expérimentaux montrent que cette étude a de meilleures performances que les données d'apprentissage par fusion dans Dynamic few-shot. Cela démontre l'efficacité de l'unification des procédures d'entraînement à quelques coups et à plusieurs coups à l'aide de l'apprentissage par fusion.

4. Référence

Zhao, H., Yap, KH, Kot, AC, Duan, L. et Cheung, NM (2019, mai). Apprentissage par fusion à quelques coups et à plusieurs coups dans la reconnaissance visuelle mobile des aliments. En  2019 IEEE International Symposium on Circuits and Systems (ISCAS)  (pp. 1-5). IEEE.

Gidaris, S., & Komodakis, N. (2018). Apprentissage visuel dynamique en quelques prises de vue sans oubli. Dans  Actes de la conférence IEEE sur la vision par ordinateur et la reconnaissance de formes  (pp. 4367-4375).

Wang, YX, Girshick, R., Hebert, M. et Hariharan, B. (2018). Apprentissage low-shot à partir de données imaginaires. Dans  Actes de la conférence IEEE sur la vision par ordinateur et la reconnaissance des formes  (pp. 7278-7286).

Je suppose que tu aimes

Origine blog.csdn.net/qq_44681809/article/details/128292203
conseillé
Classement