Aidemy 2020/10/4
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.
・ 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.
-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])
-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()
-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 () __.
・ Créez un modèle en utilisant CNN (+ Keras + TensorFlow). De plus, l'apprentissage par transfert est effectué à l'aide de VGG16.
・ (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) __
・ (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