La première chose que vous devez faire pour créer un modèle d'apprentissage automatique pour la reconnaissance d'objets dans une image est de collecter une grande quantité d'images d'entraînement. Les éléments généraux tels que les chiens et les voitures peuvent être téléchargés à partir de services tels que ImageNet, mais il n'y a pas d'images de célébrités japonaises, par exemple. Cette fois, je vais vous présenter comment collecter des données d'image pour l'apprentissage automatique à l'aide de l'API Tumblr.
Cliquez ici pour l'API de recherche personnalisée Google Pikachu
Cliquez sur Enregistrer l'application
Ensuite, entrez les informations sur l'application. Une entrée URL (site Web de l'application, URL de l'App Store, URL de Google Play Store) est requise, mais comme nous ne créons pas réellement une application Oauth, nous l'esquiverons avec brio avec une URL appropriée. (Cette fois, j'ai utilisé l'URL de l'application que j'ai créée il y a longtemps)
Ensuite, un écran comme celui-ci sera affiché, alors cliquez sur l'API Explorer.
Cliquez sur permission
Ensuite, l'écran ressemblera à ceci Cliquez sur Afficher les clés en haut à droite
La clé API est affichée ici. C'est ce que je voulais cette fois, alors prenez-en note.
Maintenant, obtenons l'image en utilisant la clé API obtenue. Tumblr a beaucoup de photos publiées, il semble donc qu'il ne soit pas adapté à l'acquisition de personnages tels que Pikachu. Donc, cette fois, je vais avoir une photo de M. Riho Yoshioka, qui est populaire récemment. Les images acquises sont enregistrées en séquence dans un répertoire appelé images. (Référence: http://taka-say.hateblo.jp/entry/2016/12/19/235554)
import requests
import time
import shutil
LOOP = 10
URL = 'https://api.tumblr.com/v2/tagged'
payload = {
'api_key': 'YOUR API KEY HERE',
'tag': 'Riho Yoshioka'
}
image_idx = 0
photo_urls = []
for i in range(LOOP):
response_json = requests.get(URL, params=payload).json()
for data in response_json['response']:
if data['type'] != 'photo':
continue
for photo in data['photos']:
photo_urls.append(photo['original_size']['url'])
if(len(response_json['response']) == 0):
continue
payload['before'] = response_json['response'][(len(response_json['response']) - 1)]['timestamp']
for photo_url in photo_urls:
path = "images/" + str(image_idx) + ".png "
r = requests.get(photo_url, stream=True)
if r.status_code == 200:
with open(path, 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
image_idx+=1
Oui, j'ai beaucoup d'images comme ça. tellement mignon!
Recommended Posts