[PYTHON] Exécutez le modèle Caffe sur Google Colaboratory pour prédire l'âge et le sexe des mannequins du monde

J'ai essayé d'exécuter la bibliothèque d'apprentissage en profondeur open source Caffe sur Google Colaboratory.

Installez Caffe

Il ne semble pas y avoir de Caffe sur Google Colab, alors installez-le comme suit:

!apt install caffe-cpu

Clone de git modèle Caffe

En choisissant le modèle Caffe précalculé, j'ai choisi AgeGenderDeepLearning, qui a été bien expliqué. Clone de Git sur Google Colaboratory.

!git clone https://github.com/GilLevi/AgeGenderDeepLearning

Il s'agit d'un modèle qui prédit l'âge et le sexe de la personne sur la photo. J'aimerais utiliser ce modèle pour prédire l'âge et le sexe des mannequins du monde.

Paramètres initiaux autour de Caffe

# https://github.com/GilLevi/Code AgeGenderDeepLearning tel quel
import os
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline


caffe_root = './caffe/' 
import sys
sys.path.insert(0, caffe_root + 'python')
import caffe

plt.rcParams['figure.figsize'] = (10, 10)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'
mean_filename='./AgeGenderDeepLearning/models/mean.binaryproto' #changements
proto_data = open(mean_filename, "rb").read()
a = caffe.io.caffe_pb2.BlobProto.FromString(proto_data)
mean  = caffe.io.blobproto_to_array(a)[0]
age_net_pretrained='./AgeGenderDeepLearning/models/age_net.caffemodel' #changements
age_net_model_file='./AgeGenderDeepLearning/age_net_definitions/deploy.prototxt' #changements
age_net = caffe.Classifier(age_net_model_file, age_net_pretrained,
                       mean=mean,
                       channel_swap=(2,1,0),
                       raw_scale=255,
                       image_dims=(256, 256))
gender_net_pretrained='./AgeGenderDeepLearning/models/gender_net.caffemodel' #changements
gender_net_model_file='./AgeGenderDeepLearning/gender_net_definitions/deploy.prototxt' #changements
gender_net = caffe.Classifier(gender_net_model_file, gender_net_pretrained,
                       mean=mean,
                       channel_swap=(2,1,0),
                       raw_scale=255,
                       image_dims=(256, 256))
# https://github.com/GilLevi/Code AgeGenderDeepLearning tel quel
age_list=['(0, 2)','(4, 6)','(8, 12)','(15, 20)','(25, 32)','(38, 43)','(48, 53)','(60, 100)']
gender_list=['Male','Female']

Photos de super modèles dans le monde

J'ai eu la photo du super modèle d'ici.

#Importez une bibliothèque qui permet d'accéder aux ressources par URL.
import urllib.request 
#Spécifier les ressources sur le Web
url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Gisele_B_edit.jpg/300px-Gisele_B_edit.jpg'
#Téléchargez la ressource à partir de l'URL spécifiée et donnez-lui un nom.
urllib.request.urlretrieve(url, 'model1.jpg') 
('model1.jpg', <http.client.HTTPMessage at 0x7f7d928eea58>)
example_image = 'model1.jpg'
input_image = caffe.io.load_image(example_image)
_ = plt.imshow(input_image)
/usr/local/lib/python3.6/dist-packages/skimage/io/_io.py:48: UserWarning: `as_grey` has been deprecated in favor of `as_gray`
  warn('`as_grey` has been deprecated in favor of `as_gray`')

png

(Je ne montre pas cette photo car elle semble être un problème de droit d'auteur.)

Prédiction de l'âge et du sexe

# https://github.com/GilLevi/Code AgeGenderDeepLearning tel quel
prediction = age_net.predict([input_image]) 

print ('predicted age:', age_list[prediction[0].argmax()]) 
predicted age: (15, 20)

Je vois.

# https://github.com/GilLevi/Code AgeGenderDeepLearning tel quel
prediction = gender_net.predict([input_image]) 

print ('predicted gender:', gender_list[prediction[0].argmax()])
predicted gender: Female

Je vois.

Réessayer

#Importez une bibliothèque qui permet d'accéder aux ressources par URL.
import urllib.request 
#Spécifier les ressources sur le Web
url = 'https://upload.wikimedia.org/wikipedia/commons/f/f3/LindaEvangelista.jpg'
#Téléchargez la ressource à partir de l'URL spécifiée et donnez-lui un nom.
urllib.request.urlretrieve(url, 'model2.jpg') 
('model2.jpg', <http.client.HTTPMessage at 0x7f7d925944a8>)
example_image = 'model2.jpg'
input_image = caffe.io.load_image(example_image)
_ = plt.imshow(input_image)
/usr/local/lib/python3.6/dist-packages/skimage/io/_io.py:48: UserWarning: `as_grey` has been deprecated in favor of `as_gray`
  warn('`as_grey` has been deprecated in favor of `as_gray`')

png

(Je ne montre pas cette photo car elle semble être un problème de droit d'auteur.)

# https://github.com/GilLevi/Code AgeGenderDeepLearning tel quel
prediction = age_net.predict([input_image]) 

print ('predicted age:', age_list[prediction[0].argmax()]) 
predicted age: (60, 100)

Je vois?

# https://github.com/GilLevi/Code AgeGenderDeepLearning tel quel
prediction = gender_net.predict([input_image]) 

print ('predicted gender:', gender_list[prediction[0].argmax()])
predicted gender: Male

Hmm?

Recommended Posts

Exécutez le modèle Caffe sur Google Colaboratory pour prédire l'âge et le sexe des mannequins du monde
Comment exécuter le code pratique du livre "Making Profitable AI with Python" sur Google Colaboratory
Caffe Model Zoo pour les débutants [Classification selon l'âge et le sexe]
Comment dessiner facilement la structure d'un réseau de neurones sur Google Colaboratory à l'aide de "convnet-tiroir"
Exécutez Keras sur Google Colaboratory TPU
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
EC2 Comment exécuter Google Chrome sans tête sur Ubuntu et prendre une capture d'écran
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.
Utilisez le désassembleur métabolique sur Google Colaboratory
Paramètres qui permettent de voir plus facilement l'échelle et l'étiquette de la figure même avec un thème sombre avec google Colaboratory
Assurez-vous que le prétraitement au moment de la création du modèle de prédiction et de la prédiction est aligné
Jusqu'à ce que vous installiez Caffe et exécutiez l'exemple
[Explication de la mise en œuvre] Comment utiliser la version japonaise de BERT dans Google Colaboratory (PyTorch)
[Python] Enregistrez le résultat du scraping Web de la page produit Mercari sur Google Colab dans une feuille de calcul Google et affichez également l'image du produit.