Dans ce projet, nous nous proposons de recommander des images analogues à une image source. Définir l'analogie est un exercice difficile. Nous utilisons pour cela un réseau de neurones convolutif pré-entrainé. Nous assumons que le corpus ImageNet contient suffisament d'images de paysages pour capturer la sémantique des différents types de paysages. Plus les couches d'un réseau de neurones convolutif sont situées en profondeur, plus la sémantique des objets capturés est générale. Puisque l'on cherche à comparer des objets globaux (arbres,bateaux,montagnes,lacs,feuilles), nous utilisons la dernière couche d'un Xception. L'activation de cet étage contient plus de 2000 valeurs correspondant aux 2048 neurones de la dernière couche. Nous calculons l'activation pour chacune des images du dataset. Des images sont dites dimilaires si la distance euclidienne dans cet espace de large dimension est suffisament faible. Pour faciliter le calcul, nous réduisons la dimension en utilisant une ACP et calibrons la dimensions de telle sorte à expliquer plus de 95% de la variance. Nous recommandons ensuite les images par distance euclidienne croissante. (une demonstration est disponible : http://tannerr.pythonanywhere.com/index_recommand/?ind_page=1
tannerversety / similarity_xception Goto Github PK
View Code? Open in Web Editor NEWDans ce projet, nous nous proposons de recommander des images analogues à une image source. Définir l'analogie est un exercice difficile. Nous utilisons pour cela un réseau de neurones convolutif pré-entrainé. Nous assumons que le corpus ImageNet contient suffisament d'images de paysages pour capturer la sémantique des différents types de paysages. Plus les couches d'un réseau de neurones convolutif sont situées en profondeur, plus la sémantique des objets capturés est générale. Puisque l'on cherche à comparer des objets globaux (arbres,bateaux,montagnes,lacs,feuilles), nous utilisons la dernière couche d'un Xception. L'activation de cet étage contient plus de 2000 valeurs correspondant aux 2048 neurones de la dernière couche. Nous calculons l'activation pour chacune des images du dataset. Des images sont dites dimilaires si la distance euclidienne dans cet espace de large dimension est suffisament faible. Pour faciliter le calcul, nous réduisons la dimension en utilisant une ACP et calibrons la dimensions de telle sorte à expliquer plus de 95% de la variance. Nous recommandons ensuite les images par distance euclidienne croissante.