J'ai essayé d'exécuter la bibliothèque d'apprentissage en profondeur open source Caffe sur Google Colaboratory.
Il ne semble pas y avoir de Caffe sur Google Colab, alors installez-le comme suit:
!apt install caffe-cpu
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.
# 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']
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`')
(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: (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.
#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`')
(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