J'ai examiné les traits du visage de Yuki Kashiwagi pour comprendre TensorFlow et CNN (réseau de neurones convolutifs). Je ne suis pas fan de Yuki Kashiwagi, mais je ne connais pas les idoles et les actrices, donc la raison pour laquelle j'ai choisi cette personne est que j'ai trouvé le visage d'une personne qui semble avoir des caractéristiques. Il se concentre sur la partie apprentissage utilisant TensorFlow Partie 2 et explique la partie jugement [Partie 2](http: // qiita) Continuez vers .com / FukuharaYohei / items / 3f26bfe71fdb5720ce7e).
La fonctionnalité ** de Yuki Kashiwagi pour TensorFlow n'était pas le nez **. Pour être honnête, je n'étais pas sûr des caractéristiques de TensorFlow. Afin de restreindre les fonctionnalités, j'ai essayé de créer un modèle d'apprentissage pour rendre la méthode de jugement quelque peu facile à comprendre sans essayer d'améliorer la précision du jugement. Je regarde un modèle avec une précision de 68% par rapport aux données de test (la faible précision est également problématique avec le modèle que j'ai assemblé et les données d'entraînement). L'image du résultat du processus de mise en commun de la deuxième couche est prédictive et fait une telle différence. Cependant, comme il est le résultat d'une exécution par un débutant, si une excellente personne l'assemble, il peut être possible de faire quelque chose comme un "juge de nez" très précis.
Nous avons mené cette enquête sur les traits du visage selon le flux suivant.
Nous utilisons l'API Bing Image Search pour rechercher et collecter des images. Le nombre total d'images collectées est de 2471, et la répartition est indiquée dans la figure ci-dessous. J'ai recherché des actrices et des idoles qui semblent avoir beaucoup d'images. Voir l'article "Appel de l'API Bing Image Search v5 depuis Python pour collecter des images" pour le code d'exécution et les instructions.
"Détection de visage + coupure" a été réalisée en utilisant OpenCV, et "suppression des faux positifs" a été réalisée manuellement. En plus de "1. Recherche d'image", le nombre de feuilles suivant est traité. Le taux de détection de visage est d'environ 60% à 70%. J'ai écrit les leçons apprises dans cette partie dans l'article "Astuces pour détecter efficacement un grand nombre d'images avec openCV". Veuillez noter que la suppression manuelle des faux positifs prend beaucoup de temps.
J'apprends à utiliser TensorFlow. C'est presque le même modèle que le didacticiel TensorFlow Expert Deep MNIST for Experts. Pour obtenir des explications, consultez l'article ["[Explication pour les débutants] Tutoriel TensorFlow Deep MNIST"] Veuillez vous référer à (http://qiita.com/FukuharaYohei/items/0aef74a0411273705512). Pour l'image de la partie "Conclusion", l'image du résultat du processus de mise en commun de la deuxième couche est extraite à l'aide de TensorBoard (article ["[Introduction à TensorBoard: image] Le traitement d'image TensorFlow est visualisé pour approfondir la compréhension"](http: //qiita.com/FukuharaYohei/items/fae6896e041235033454)).
J'aurais aimé faire de mon mieux pour créer des données sur les enseignants, mais chaque donnée ressemble à ceci. Pour être honnête, c'est terrible, même si la précision n'est pas le but. Si vous ajustez les hyper paramètres etc. à droite du tableau comme "Pour la précision", ce sera un peu mieux.
article | Contenu | Remarques | À des fins de précision |
---|---|---|---|
Données des enseignants | Environ 1600 feuilles(Environ 600 d'entre eux sont corrects(Yuki Kashiwagi)image) | il n'y a qu'un peu ··· | Environ 2500 feuilles |
Données d'entraînement | Environ 1350 au hasard | Ramassé au hasard avec la fonction EXCEL | Environ 2250 feuilles |
données de test | Environ 250 au hasard | Ramassé au hasard avec la fonction EXCEL | Environ 250 feuilles |
Taux de réponse correct pour les données d'entraînement | 74% | Faible··· | 85% |
Taux de réponse correct pour les données de test | 70% | Aussi faible ... | 84% |
La figure ci-dessous montre la transition du taux de réponse correct et des erreurs d'apprentissage. Pour la sortie vers TensorBoard, reportez-vous à l'article "[Introduction à TensorBoard] Visualisez le traitement TensorFlow pour approfondir la compréhension".
L'apprentissage sera expliqué en détail dans la deuxième partie, y compris le code.
Pour le jugement d'image, la détection de visage + le recadrage à l'aide d'OpenCV et le jugement d'image à l'aide de TensorFlow se poursuivent sous la forme illustrée dans la figure ci-dessous. Les paramètres appris enregistrés dans le processus de "3. Apprentissage" sont utilisés lors du jugement de l'image.
L'environnement d'exécution est le suivant.
type | version |
---|---|
OS | Windows 10 64bit Pro |
Anaconda | Anaconda 4.4.0 |
Python | Python3.5 |
TensorFlow | TensorFlow 1.3 |
OpenCV | OpenCV 3.3 |
Recommended Posts