Ce sera un mémorandum de ce que vous avez fait.
Un grand nombre d'images peut être nécessaire lorsque vous essayez d'étudier l'apprentissage automatique. Bing semble être le plus approprié pour la collecte d'images, et Microsoft Azure ne l'a jamais fait, j'ai donc essayé cela à titre d'étude. Si vous trébuchez lors de la collecte d'images, c'est un simple post avec une URL de référence, mais je suis tout à fait d'accord avec vous.
[URL de référence] Résumé des circonstances de la collecte d'images chez Yahoo, Bing et Google https://qiita.com/ysdyt/items/565a0bf3228e12a2c503
Microsoft: Obtention de la clé API Bing Search (vérifiez la méthode d'acquisition à l'URL de référence) https://azure.microsoft.com/ja-jp/
Date d'expiration: 30 jours gratuits
・ Créez un programme de collecte d'images automatique avec l'API Bing Web Search https://blog.wackwack.net/entry/2017/12/27/223755
・ Collectez un grand nombre d'images à l'aide de l'API de recherche d'images de Bing https://qiita.com/ysdyt/items/49e99416079546b65dfc
· Officiel: Démarrage rapide: recherchez des images à l'aide de l'API REST Bing Image Search et de Python https://docs.microsoft.com/ja-jp/azure/cognitive-services/bing-image-search/quickstarts/python
** Je voulais avoir plusieurs mots de recherche, alors téléchargez localement ** (Téléchargez le nom du dossier à stocker avec les mots de recherche)
Endpoint URL https://bingsearchv7forimages.cognitiveservices.azure.com/bing/v7.0
--Seule la partie de téléchargement est ajoutée au code URL de référence.
import math
import requests
import time
import OpenSSL
import urllib
import hashlib
import sha3
import os
import csv
# Divisez l'argument f en nom de fichier et extension (non compris).
def split_filename(f):
split_name = os.path.splitext(f)
file_name =split_name[0]
extension = split_name[-1].replace(".","")
return file_name,extension
def download_img(path,url):
_,extension = split_filename(url)
if extension.lower() in ('jpg','jpeg','gif','png','bmp'):
encode_url = urllib.parse.unquote(url).encode('utf-8')
hashed_name = hashlib.sha3_256(encode_url).hexdigest()
full_path = os.path.join(path,hashed_name + '.' + extension.lower())
r = requests.get(url)
if r.status_code == requests.codes.ok:
with open(full_path,'wb') as f:
f.write(r.content)
print('saved image...{}'.format(url))
else:
print("HttpError:{0} at{1}".format(r.status_code,image_url))
Endpoint URL
url = "https://api.cognitive.microsoft.com/bing/v7.0/images/search"
Bing Search API Key
APIKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Parameter
headers = {'Ocp-Apim-Subscription-Key':APIKey}
count = 10 # Nombre maximum d'acquisitions par demande par défaut: 30 max: 150
mkt = "ja-JP" # Code du pays source
num_per = 2 # nombre de requêtes (count * num_per = nombre d'images acquises)
offset = math.floor (count / num_per) # nombre de boucles
with open("./list.txt", "r", encoding="utf-8_sig") as f:
reader = csv.reader(f, delimiter='\t')
for row in reader:
keyword = row[0]
pathname = row[1]
#Specify save destination
path = "./" + pathname
#Si la destination de sauvegarde n'existe pas
if not os.path.exists(path):
os.makedirs(path)
for offset_num in range(offset):
params = {'q':keyword, 'count':count, 'offset':offset_num*offset, 'mkt':mkt}
r = requests.get(url, headers=headers, params=params)
data = r.json()
for values in data['value']:
image_url = values['contentUrl']
try:
download_img(path, image_url)
except Exception as e:
print("failed to download image at {}".format(image_url))
print(e)
time.sleep(0.5)
--Télécharger l'image (fujisan)
--Installation: pip install pysha3
a échoué dans la version 3.7 de python. Puisque la version 3.6 a pu s'installer sans erreur, ce programme a été exécuté avec python3.6.
«J'ai pu éviter d'avoir à trébucher au début en étudiant l'apprentissage automatique basé sur l'image. (Merci)
―― Étant donné que les frais payés de MS Azure ne sont pas élevés, j'ai pensé qu'il serait possible de l'utiliser en fonction de la situation après la fin de l'offre gratuite. Prix: https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/search-api/
Recommended Posts