[PYTHON] Sammeln Sie Bilder für maschinelles Lernen (Bing Search API)

Einführung

Es wird ein Memorandum von dem sein, was Sie getan haben.

Dinge die zu tun sind

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

Annahme

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

Referenz-URL

・ 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

Code

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)

Andere

--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.

Zusammenfassung

――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

Sammeln Sie Bilder für maschinelles Lernen (Bing Search API)
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Verstärken Sie Bilder für maschinelles Lernen mit Python
Datensatz für maschinelles Lernen
Japanische Vorverarbeitung für maschinelles Lernen
Sammeln Sie selbst Bilddaten für maschinelles Lernen (Google Custom Search API Pikachu).
Sammeln Sie eine große Anzahl von Bildern mit der Bildsuch-API von Bing
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Informationen zum maschinell erlernten Meeting für HRTech
Wie benutzt man Bing Search API?
[Empfohlenes Tagging für maschinelles Lernen # 4] Skript für maschinelles Lernen ...?
Sammeln von Daten zum maschinellen Lernen
Erste Schritte für Anfänger des maschinellen Lernens (KI)
Warum Python für maschinelles Lernen ausgewählt wird
"Verwendbare" One-Hot-Codierungstechnik für maschinelles Lernen
Maschinelles Lernen
[Shakyo] Begegnung mit Python zum maschinellen Lernen
[Python] Webanwendungsdesign für maschinelles Lernen
Eine Einführung in Python für maschinelles Lernen
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
[Lernen stärken] Suche nach der besten Route
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 1
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 2
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Sammeln Sie selbst Bilddaten für maschinelles Lernen (Tumblr API Yoshioka Riho ed.)
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Beispiel für maschinelles Lernen
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Bildersammlung Python-Skript zum Erstellen von Datensätzen für maschinelles Lernen
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
[Empfohlenes Tagging beim maschinellen Lernen # 2] Erweiterung des Scraping-Skripts
[Empfohlenes Tagging beim maschinellen Lernen # 2.5] Änderung des Scraping-Skripts
Python-Lernnotiz für maschinelles Lernen von Chainer aus Kapitel 2
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 1 und 2
Sellerie
[Python] Webanwendungsdesign für maschinelles Lernen
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
Maschinelles Lernen mit Bildern der Kategorie Caffe -1 unter Verwendung eines Referenzmodells
Lernmethode zum Lernen von maschinellem Lernen von Grund auf neu (Version März 2020)
[Maschinelles Lernen] Versuchen Sie, Objekte mithilfe der selektiven Suche zu erkennen
14 E-Mail-Newsletter zum Sammeln von Informationen zum maschinellen Lernen
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten
Alles für Anfänger, um maschinelles Lernen zu können