[PYTHON] Téléchargement d'image avec l'API Flickr

introduction

Afin de créer un programme de reconnaissance d'image, nous avons d'abord besoin d'une grande quantité de données d'image pour nous entraîner. Pour cela, créez un programme qui collecte automatiquement les données d'image.

Documents de référence: [Développement d'applications IA de jugement d'image, partie 1] Introduction au développement d'applications IA de jugement d'image réalisé avec TensorFlow, Python, Flask

Flickr Site de collecte d'images https://www.flickr.com/

API https://www.flickr.com/services/api/

Préparation

https://qiita.com/Saayaman/items/a3066697a108a7e7fc39 Voir "1. enregistrement api" dans. Il est nécessaire d'obtenir la clé et la clé privée (?).

Comment installer

https://stuvel.eu/flickrapi

pip install flickrapi

Code source

Enregistrez l'image recherchée dans le dossier spécifié. Créez un programme appelé download.py. Par exemple

python download.py monkey

Si vous entrez, les images recherchées par monkey seront stockées dans un dossier appelé monkey.

importer

from flickrapi import FlickrAPI
from urllib.request import urlretrieve
from pprint import pprint
import os, time, sys

Informations sur la clé API

#Informations sur la clé API
key = "<<Chaîne>>"
secret = "<<Chaîne>>"
wait_time = 1

Stockez la clé et la clé privée acquises. Comme son nom l'indique, wait_time est le temps d'attente. Si vous accédez fréquemment à Flickr, l'accès sera refusé, alors attendez 1 seconde pour chaque image que vous obtenez.

Acquisition d'informations d'image

#Spécifiez le dossier de sauvegarde
animalname = sys.argv[1]
savedir = "./" + animalname

flickr = FlickrAPI(key, secret, format='parsed-json')
result = flickr.photos.search(
    text = animalname,
    per_page = 400,
    media = 'photos',
    sort = 'relative',
    safe_search = 1,
    extras = 'url_q, licence'
)

Créez une instance flickr en spécifiant la clé, la clé privée et le format obtenus dans" Préparation "dans FlickrAPI (cette fois au format json), et appelez la méthode flickr.photos.search. Le «résultat» contient les données suivantes.

{'photos': {'page': 1,
            'pages': 541,
            'perpage': 400,
            'photo': [{'farm': 66,
                       'height_q': 150,
                       'id': '49823614651',
                       'isfamily': 0,
                       'isfriend': 0,
                       'ispublic': 1,
                       'owner': '14136614@N03',
                       'secret': '888c8a381a',
                       'server': '65535',
                       'title': 'LEGO Minifigures Series 19 Rainbow Bear',
                       'url_q': 'https://live.staticflickr.com/65535/49823614651_888c8a381a_q.jpg',
                       'width_q': 150},
...

Téléchargement d'image

Téléchargez l'image en utilisant les informations contenues dans result. Obtenez l'URL de l'image avec photo ['url_q']. Exécutez le téléchargement avec ʻurl retrieve`.

photos = result['photos']

for i, photo in enumerate(photos['photo']):
    print(i)
    url_q = photo['url_q']
    filepath = savedir + '/' + photo['id'] + '.jpg'
    if os.path.exists(filepath): continue
    urlretrieve(url_q, filepath)
    time.sleep(wait_time)

Vérification

python download.py monkey

Lorsque vous exécutez, il est enregistré dans le dossier monkey comme indiqué ci-dessous. Cependant, il inclut également des images qui ne sont pas des singes (comme des images de singes ou celles qui n'ont rien à voir avec des singes), il est donc nécessaire de les supprimer manuellement. monkey.png

Recommended Posts

Téléchargement d'image avec l'API Flickr
Importation et téléchargement d'images sur le stockage Azure. Avec Python + requêtes + API REST
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Traitement d'image avec MyHDL
Reconnaissance d'image avec keras
Extruder avec l'API Fusion360
Traitement d'image avec Python
Traitement d'image avec PIL
Comment récupérer des données d'image de Flickr avec Python
Traitement d'image avec Python (partie 2)
Télécharger automatiquement des images avec grattage
Utiliser l'API Trello avec python
Lire les coordonnées de l'image avec Python-matplotlib
Traitement d'image avec PIL (Pillow)
Créer une API avec Django
Utiliser l'API Twitter avec Python
Édition d'image avec python OpenCV
API avec Flask + uWSGI + Nginx
Reconnaissance d'image avec API à partir de zéro connaissance avec AutoML Vision
Téléchargement d'images et personnalisation avec django-ckeditor
Tri des fichiers image avec Python (2)
Obtenir des informations avec l'API Zabbix
Tri des fichiers image avec Python (3)
Créer une visionneuse d'images avec Tkinter
Traitement d'image avec Python (partie 1)
API Web avec Python + Falcon
Tweet avec image en Python
Tri des fichiers image avec Python
Traitement d'image avec Python (3)
Génération de légende d'image avec Chainer
Soutenez-vous avec l'API Twitter
Obtenez des fonctionnalités d'image avec OpenCV
Appelez l'API avec python3.
Utiliser l'API subsonique avec python3
Analyse d'image avec l'API Object Detection à essayer en 1 heure
Comment gérer UnicodeDecodeError lors de l'exécution du téléchargement d'image Google
Update_with_media réussi avec l'API Twitter
Télécharger le fichier csv avec python
Reconnaissance d'image avec Keras + OpenCV
Qiita API Oauth avec Django
[Python] Traitement d'image avec scicit-image
Obtenez un classement avec l'API Rakuten
Découpez une image avec python
Principes de base du traitement d'image en temps réel avec opencv
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
Créer Awaitable avec l'API Python / C
[AWS] Créer une API avec API Gateway + Lambda
Obtenez des avis avec l'API googlemap de python
Téléchargement de fichiers implémenté avec Python + Bottle
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Segmentation d'image avec scikit-image et scikit-learn
Exécutez Rotrics DexArm avec l'API Python
Persistez le serveur d'API Flask avec Forever
Quine Post avec l'API Qiita (Python)
Impossible de télécharger des images avec Google_images_download
Traitement d'image avec la binarisation Python 100 knocks # 3
Accédez à l'API Etherpad-lite avec Python