Ich habe versucht, die Open-Source-Deep-Learning-Bibliothek Caffe in Google Colaboratory auszuführen.
In Google Colab scheint es kein Caffe zu geben. Installieren Sie es daher wie folgt:
!apt install caffe-cpu
Bei der Auswahl des vorberechneten Caffe-Modells habe ich AgeGenderDeepLearning gewählt, was gut erklärt wurde. Git-Klon auf Google Colaboratory.
!git clone https://github.com/GilLevi/AgeGenderDeepLearning
Dies ist ein Modell, das das Alter und Geschlecht der Person auf dem Bild vorhersagt. Ich möchte dieses Modell verwenden, um das Alter und Geschlecht der Supermodels der Welt vorherzusagen.
# https://github.com/GilLevi/AgeGenderDeepLearning-Code wie er ist
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' #Änderungen
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' #Änderungen
age_net_model_file='./AgeGenderDeepLearning/age_net_definitions/deploy.prototxt' #Änderungen
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' #Änderungen
gender_net_model_file='./AgeGenderDeepLearning/gender_net_definitions/deploy.prototxt' #Änderungen
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/AgeGenderDeepLearning-Code wie er ist
age_list=['(0, 2)','(4, 6)','(8, 12)','(15, 20)','(25, 32)','(38, 43)','(48, 53)','(60, 100)']
gender_list=['Male','Female']
Ich habe das Bild des Supermodels von hier bekommen.
#Importieren Sie eine Bibliothek, die den Zugriff auf Ressourcen per URL ermöglicht.
import urllib.request
#Geben Sie Ressourcen im Web an
url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Gisele_B_edit.jpg/300px-Gisele_B_edit.jpg'
#Laden Sie die Ressource von der angegebenen URL herunter und geben Sie ihr einen Namen.
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`')
(Ich zeige dieses Foto nicht, da es sich anscheinend um ein Urheberrechtsproblem handelt.)
# https://github.com/GilLevi/AgeGenderDeepLearning-Code wie er ist
prediction = age_net.predict([input_image])
print ('predicted age:', age_list[prediction[0].argmax()])
predicted age: (15, 20)
Das war's.
# https://github.com/GilLevi/AgeGenderDeepLearning-Code wie er ist
prediction = gender_net.predict([input_image])
print ('predicted gender:', gender_list[prediction[0].argmax()])
predicted gender: Female
Das war's.
#Importieren Sie eine Bibliothek, die den Zugriff auf Ressourcen per URL ermöglicht.
import urllib.request
#Geben Sie Ressourcen im Web an
url = 'https://upload.wikimedia.org/wikipedia/commons/f/f3/LindaEvangelista.jpg'
#Laden Sie die Ressource von der angegebenen URL herunter und geben Sie ihr einen Namen.
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`')
(Ich zeige dieses Foto nicht, da es sich anscheinend um ein Urheberrechtsproblem handelt.)
# https://github.com/GilLevi/AgeGenderDeepLearning-Code wie er ist
prediction = age_net.predict([input_image])
print ('predicted age:', age_list[prediction[0].argmax()])
predicted age: (60, 100)
Das war's?
# https://github.com/GilLevi/AgeGenderDeepLearning-Code wie er ist
prediction = gender_net.predict([input_image])
print ('predicted gender:', gender_list[prediction[0].argmax()])
predicted gender: Male
Hmm?
Recommended Posts