[PYTHON] Mémo de reconnaissance du genre

Aidemy 2020/10/4

introduction

Bonjour, c'est Yope! Bien que ce soit un système littéraire croustillant, j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Merci! Cette fois, nous publierons un mémo pour la reconnaissance du genre. Ravi de vous rencontrer.

Reconnaissance du genre 1

Que faire

・ Collectez des données et nettoyez les données. -La collecte de données n'est pas intégrée par Keras, mais télécharge et collecte des images en ligne. -Pour le nettoyage des données, utilisez OpenCV qui gère les images.

À propos du nettoyage des données

-Le canal des données d'image des hommes et des femmes manipulés cette fois est de l'ordre de "b, g, r", mais dans OpenCV qui gère les images, les données doivent être de l'ordre de "r, g, b", donc cv2.split Il est nécessaire de diviser les données en trois avec cv2.merge et d'organiser l'ordre du tableau de données avec cv2.merge.

img = cv2.imread('./6100_gender_recognition_data/male/Aaron_Eckhart_0001.jpg')
b,g,r=cv2.split(img) 
img=cv2.merge([r,g,b])

Réduction d'image

-Utiliser __cv2.resize (image, (vertical, horizontal)) __. Après avoir sauvegardé avec cv2.imwrite (), obtenez l'image réduite avec plt.imread comme figure et sortie avec plt.imshow ().

import cv2
import matplotlib.pyplot as plt
import numpy as np

img=cv2.imread("./6100_gender_recognition_data/male/Aaron_Eckhart_0001.jpg ")
my_img=cv2.resize(img, (50, 50))
cv2.imwrite("resize.img",my_img)
img=plt.imread("resize.img")
plt.imshow(img)
plt.show()

Conversion d'espace colorimétrique

-Lors du passage de la couleur (rouge, vert, bleu) au monochrome (blanc, noir), définissez cv2.COLOR_RGB2GRAY dans le deuxième argument de __cv2.cvtColor (image) __. Ceci est souvent fait lorsqu'il s'agit d'images. -Lors de la sortie de l'image convertie avec plt.show (), le premier argument sera reconnu comme "vert" s'il est laissé tel quel, il est donc nécessaire de le décrire comme __plt.gray () __.

Reconnaissance du genre 2

Que faire

・ Créez un modèle en utilisant CNN (+ Keras + TensorFlow). De plus, l'apprentissage par transfert est effectué à l'aide de VGG16.

Création d'un modèle (ajout de couches)

Fonctionnement du modèle (compilation, entraînement, prédiction)

・ (Review) Compilez avec compile, apprenez avec fit, prédisez avec np.argmax (model.predict ()). ・ __Model.compile (optimiseur, perte, métriques) __ ・ __Model.fit (données de formation, étiquette de l'enseignant, batch_size, époques) __

Apprentissage par transfert

・ (Review) Transfert de l'apprentissage en utilisant VGG16

#Paramètre de forme d'entrée
input_tensor = Input(shape=(32, 32, 3))
#Paramètres du modèle VGG
vgg16 = VGG16(include_top=False,weights='imagenet',input_tensor=input_tensor)
#Combinaison du modèle VGG avec une nouvelle couche
model = Model(inputs=vgg16.input, outputs=top_model(vgg16.output))
#Nombre fixe de couches et de poids pour le modèle VGG
for layer in model.layers[:15]:
    layer.trainable = False

Recommended Posts

Mémo de reconnaissance du genre
mémo gzip
Mémo Raspberry-pi
Mémo Pandas
Mémo HackerRank
Mémo Python
mémo python
mémo graphène
Mémo du flacon
mémo pyenv
Mémo Matplotlib
mémo pytest
mémo sed
Mémo Python
Mémo BeautifulSoup4
mémo networkx
mémo python
mémo Tomcat
mémo de commande
Mémo du générateur.
mémo psycopg2
Mémo Python
Mémo SSH
Reconnaissance d'image
Mémo: rtl8812
mémo pandas
Mémo Shell
Mémo d'étude Python & Machine Learning ⑥: Reconnaissance des nombres
Mémo Python
Mémo Pycharm