Es wird ein Memorandum von dem sein, was Sie getan haben.
Beim Versuch, maschinelles Lernen zu studieren, kann eine große Anzahl von Bildern erforderlich sein. Bing scheint für die Bildersammlung am besten geeignet zu sein, und Microsoft Azure hat dies noch nie getan. Deshalb habe ich dies als Studie versucht. Wenn Sie beim Sammeln von Bildern stolpern, ist dies ein einfacher Beitrag mit einer Referenz-URL, aber ich stimme Ihnen voll und ganz zu.
[Referenz-URL] Zusammenfassung der Umstände der Bildersammlung bei Yahoo, Bing und Google https://qiita.com/ysdyt/items/565a0bf3228e12a2c503
Microsoft: Abrufen des Bing Search-API-Schlüssels (überprüfen Sie die Erfassungsmethode unter der Referenz-URL) https://azure.microsoft.com/ja-jp/
Ablaufdatum: 30 Tage kostenlos
・ Erstellen Sie ein automatisches Bilderfassungsprogramm mit der Bing Web Search-API https://blog.wackwack.net/entry/2017/12/27/223755
・ Sammeln Sie eine große Anzahl von Bildern mit der Bildsuch-API von Bing https://qiita.com/ysdyt/items/49e99416079546b65dfc
· Offiziell: Schnellstart: Suchen Sie mit der REST-API von Bing Image Search und Python nach Bildern https://docs.microsoft.com/ja-jp/azure/cognitive-services/bing-image-search/quickstarts/python
** Ich wollte mehrere Suchwörter haben, also lokal hochladen ** (Laden Sie den Namen des Ordners hoch, der mit den Suchwörtern gespeichert werden soll)
Endpoint URL https://bingsearchv7forimages.cognitiveservices.azure.com/bing/v7.0
Nur der Upload-Teil wird dem Referenz-URL-Code hinzugefügt.
import math
import requests
import time
import OpenSSL
import urllib
import hashlib
import sha3
import os
import csv
# Teilen Sie das Argument f in den Dateinamen und die Erweiterung (ohne.).
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 # Maximale Anzahl von Erfassungen pro Anforderungsstandard: 30 max: 150
mkt = "ja-JP" # Quelllandcode
num_per = 2 # Anzahl der Anfragen (Anzahl * num_per = Anzahl der erfassten Bilder)
offset = math.floor (count / num_per) # Schleifenzahl
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]
#Speicherziel angeben
path = "./" + pathname
#Wenn das Speicherziel nicht vorhanden ist
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)
Datei hochladen: Suchwort und Name des Speicherordners (list.txt)
Bild herunterladen (fujisan)
--Installation: pip install pysha3
ist in Python Version 3.7 fehlgeschlagen. Da es in Version 3.6 fehlerfrei installiert wurde, wird dieses Programm von python3.6 ausgeführt.
――Ich konnte vermeiden, am Anfang beim Studium des bildbasierten maschinellen Lernens stolpern zu müssen. (Vielen Dank)
――Da die bezahlte Gebühr von MS Azure nicht hoch ist, dachte ich, dass es je nach Situation nach dem Ende der kostenlosen Stufe möglich sein könnte, sie zu verwenden. Preis: https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/search-api/
Recommended Posts