Das erste, was Sie tun müssen, um ein maschinelles Lernmodell für die Objekterkennung in einem Bild zu erstellen, ist das Sammeln einer großen Anzahl von Trainingsbildern. Allgemeine Elemente wie Hunde und Autos können von Diensten wie ImageNet heruntergeladen werden, aber auch Bilder von Charakteren wie Pikachu und Anpanman. es gibt kein. Dann habe ich eine Methode entwickelt, um Bilder mithilfe der Google-Suche zu sammeln. Dieses Mal werde ich vorstellen, wie Bilddaten für maschinelles Lernen mithilfe der benutzerdefinierten Such-API von Google erfasst werden.
Klicken Sie hier für die Tumblr-API
Erstellen Sie zunächst eine benutzerdefinierte Suchmaschine mit CSE.
Klicken Sie zuerst unter Suchmaschine bearbeiten auf Hinzufügen
Geben Sie als Nächstes die entsprechenden Werte in das Formular ein. Geben Sie hier als Einschränkung einen geeigneten Wert ein, z. B. "\ * .com" für "Site suchen". Nein, ich möchte alle Websites durchsuchen! Wenn Sie "\ *" denken, können Sie für den Rest Ihres Lebens nicht fortfahren. (Ich war hier ziemlich süchtig danach) Ich werde es ändern, damit später alles durchsucht wird. Nehmen Sie die folgenden Einstellungen vor und klicken Sie auf die Schaltfläche Erstellen.
Klicken Sie auf die Schaltfläche Erstellen, um die Erstellung abzuschließen. Wählen Sie dann das Bedienfeld aus.
Führen Sie in diesem Bedienfeld drei Schritte aus Aktivieren Sie zunächst die Bildsuche.
Löschen Sie als Nächstes das zuvor hinzugefügte "\ * .com" von der gesuchten Site.
Ändern Sie abschließend "Nur hinzugefügte Websites durchsuchen" in "Das gesamte Web mit Schwerpunkt auf hinzugefügten Websites durchsuchen".
Danke für deine harte Arbeit. Sie haben jetzt eine benutzerdefinierte Suchmaschine erstellt. *** Notieren Sie sich die ID, die angezeigt wird, wenn Sie auf "Suchmaschinen-ID" klicken. *** ***
Aktivieren Sie dann die benutzerdefinierte Such-API. Das ist sehr einfach https://console.developers.google.com Gehen Sie zu (Erstellen Sie ein Projekt, falls es nicht vorhanden ist), wählen Sie im linken Menü Bibliothek und anschließend CustomeSearch-API. Drücken Sie am Übergangsziel auf "Aktivieren", um die API zu aktivieren.
Holen Sie sich nun den API-Schlüssel aus den Anmeldeinformationen auf der linken Seite. Wählen Sie den API-Schlüssel auf der Registerkarte Anmeldeinformationen erstellen aus.
*** Notieren Sie sich dies, da bei Auswahl ein Schlüssel erstellt wird. *** ***
Es war lange her, aber jetzt bin ich bereit! !!
Sammeln Sie Bilder mit der oben erstellten benutzerdefinierten Suchmaschine und der CustomeSearch-API und dem API-Schlüssel.
Das Skript ist sehr einfach: Speichern Sie die Bilder in Form der Nummer .png in einem Verzeichnis namens images unter dem ausgeführten Verzeichnis. Geben Sie für die Suchmaschinen-ID und den API-Schlüssel die oben notierten ein. (Bitte installieren Sie die importierte Bibliothek entsprechend mit pip.)
correct_image.py
import requests
import shutil
API_PATH = "https://www.googleapis.com/customsearch/v1"
PARAMS = {
"cx" : "999999999999999999:abcdefghi", #Suchmaschinen-ID
"key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx", #API-Schlüssel
"q" : "Pikachu", #Suchbegriff
"searchType": "image", #Suchtyp
"start" : 1, #Startindex
"num" : 10 #Anzahl der Akquisitionen in einer Suche(10 standardmäßig)
}
LOOP = 100
image_idx = 0
for x in range(LOOP):
PARAMS.update({'start': PARAMS["num"] * x + 1})
items_json = requests.get(API_PATH, PARAMS).json()["items"]
for item_json in items_json:
path = "images/" + str(image_idx) + ".png "
r = requests.get(item_json['link'], 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
Als ich das tatsächlich ausführte, bekam ich das folgende Bild.
Ich bemerkte später, dass ich versuchte, mit dieser Methode viele Bilder zu bekommen
Traceback (most recent call last):
File "get_image.py", line 31, in <module>
items_json = requests.get(API_PATH, PARAMS).json()["items"]
KeyError: 'items'
Es stellte sich heraus, dass mehr als 100 Bilder nicht erfasst werden konnten. Anscheinend erlaubt die benutzerdefinierte Such-API von Google den Erwerb von Seiten 11 und darüber hinaus nicht. (Es gab einen Link, der erwähnt wurde, aber ich habe ihn verloren.)
Recommended Posts