[PYTHON] Bis Sie die Google Cloud Vision-API ausprobieren (Erkennung schädlicher Bilder)

Hallo.

Ich möchte keine erwachsenen Dinge sehen, wenn ich Bilder und Videos mit Crawler sammle. (Eh? Bist du glücklich?) Die Google Cloud Vision-API, über die vor einiger Zeit gesprochen wurde, scheint in der Lage zu sein, solche schädlichen Bilder zu erkennen.

Hier fasse ich zusammen, was ich getan habe, bevor ich in der kostenlosen Testversion der Google Cloud Vison API versucht habe, schädliche Bilder zu erkennen. Andere Funktionen der Cloud Vison-API, wie z. B. Bilderkennung, Texterkennung, Gesichtserkennung usw., sind auf die gleiche Weise wie unten gezeigt verfügbar.

Schritte zum Ausprobieren

Die Google Cloud Vison-API wird wie eine allgemeine API verwendet, indem Sie die folgenden Schritte ausführen.

  1. Registrieren Sie persönliche Informationen und erhalten Sie den API-Schlüssel
  2. Stellen Sie eine Anfrage und senden Sie sie an die API
  3. Erhalten Sie die Antwort und überprüfen Sie deren Inhalt

Die obigen Inhalte werden der Reihe nach kurz zusammengefasst.

API-Schlüssel abrufen

Beziehen Sie den API-Schlüssel, indem Sie auf die folgende Site verweisen.

Zusammenfassung der Verwendung der Cloud Vision-API (mit Beispielcode)

Folgende Punkte sind besonders zu beachten.

Anfrage erstellen / senden

Diesmal habe ich es mit Python versucht. Vielmehr konnte ich nur Python verwenden. Das Anforderungsmodul wird zum Senden von Anforderungen verwendet. Wenn es nicht enthalten ist, installieren Sie es mit pip.

python


$ pip install requests

Verwenden Sie zum Erstellen einer Anforderung generatejson.py, das im offiziellen Cloud Vision API-Lernprogramm veröffentlicht wurde. Es ist bequem zu bedienen. Dies ist ein Text, der die Informationen der Anforderung, die Sie senden möchten, zusammenfasst und eine JSON-Datei ausgibt, in der diese Informationen zusammengefasst sind. Das Format der Eingabedatei ist wie folgt.

input_file.txt


#Bildpfad-Funktionsnummer:Anzahl der erhaltenen Ergebnisse
filepath_to_image1.jpg 4:10
filepath_to_image2.png 1:10 6:10

Geben Sie durch Leerzeichen halber Breite zuerst den Pfad des Bildes, dann die Nummer der Funktion, die Sie verwenden möchten, und die Anzahl der zu erfassenden Ergebnisse an, getrennt durch einen Doppelpunkt. (Bitte schreiben Sie den Kommentar im obigen Beispiel nicht.) Die Funktionsnummern (Stand 19. Mai 2016) entsprechen der folgenden Tabelle.

Funktionsname Erläuterung Nummer
FACE_DETECTION Erkennung des Gesichtsteils 1
LANDMARK_DETECTION Landmark-Erkennung 2
LOGO_DETECTION Logoerkennung 3
LABEL_DETECTION Objekterkennung / -erkennung 4
TEXT_DETECTION Texterkennung in Bildern 5
SAFE_SEARCH_DETECTION Erkennung gefährlicher Bilder 6

Wenn Sie beispielsweise "4:10" angeben, wird die Objekterkennung durchgeführt und die Top 10 der geschätzten Beschriftungen werden zurückgegeben. Auch wenn Sie keine "Zahl" wie die Erkennung schädlicher Bilder benötigen, habe ich es mit X und einem numerischen Wert versucht. Das Ergebnis änderte nichts daran, ob X auf 1 oder 10 gesetzt war.

Erstellen Sie eine JSON-Datei mit generatejson.py wie folgt.

python


python generatejson.py -i <inputfile> -o <outputfile>
# ex.) python generatejson.py -i input_file.txt -o vision.json

Geben Sie den Namen der Textdatei an, die zuvor nach der Option -i erstellt wurde, und die JSON-Datei, die nach der Option -o erstellt wurde. Sobald Sie eine JSON-Datei haben, senden Sie sie. So senden Sie.

$ python
...
>>> import requests
>>> data = open('/path/to/json', 'rb').read()
>>> response = requests.post(url='https://vision.googleapis.com/v1/images:annotate?key=<API-key>',
    data=data,
    headers={'Content-Type': 'application/json'})
>>> print response.text
>>> '''Unten finden Sie ein Beispiel für die Antwort
{
  "responses": [
    {
      "safeSearchAnnotation": {
        "adult": "VERY_UNLIKELY",
        "spoof": "VERY_UNLIKELY",
        "medical": "VERY_UNLIKELY",
        "violence": "VERY_UNLIKELY"
      }
    }
  ]
}
'''

Geben Sie im Teil "" den unter "API-Schlüssel abrufen" erhaltenen API-Schlüssel ein. Sie können eine Anfrage senden und in ca. 1 Sekunde eine Antwort erhalten. Sie können den Inhalt mit der Texteigenschaft überprüfen.

Wie lese ich die Antwort?

Hier wird nur der Fall einer schädlichen Bilderkennung zusammengefasst. Ich denke, es ist einfach, den Inhalt der Antwort mit dem json-Modul zu erhalten, wie unten gezeigt.

$ python
...
>>> #Angenommen, die variable Antwort hat eine Antwort
>>> import json
>>> response_json = json.loads(response.text)
>>> #Vom ersten Bild"Erwachsener Abschluss(?)"Erhalten
>>> print response["responses"][0]["safeSearchAnnotation"]["adult"]
>>> # -> "VERY_UNLIKELY"
...

Es gibt vier Gesichtspunkte für die Beurteilung schädlicher Bilder: "Erwachsener", "Medizin", "Parodie" und "Gewalt". Die Bedeutung von jedem ist wie in der folgenden Tabelle gezeigt.

Perspektive Erläuterung
adult Ist es ein Erwachsenenbild?
spoof Ist es eine Art verarbeitetes Bild?(Pakuri Bild?)
medical Ist es ein medizinisches Bild?(Innere Organe)
violence Ist es ein Bild einer gewalttätigen Darstellung?(Glo Bild?)

Die Schädlichkeit wird in 5 Stufen beurteilt, und die stärkste ist "SEHR_MÖGLICH", "WAHRSCHEINLICH", "MÖGLICH", "UNMÖGLICH", "SEHR_MÖGLICH". Es scheint auch einen Wert namens "UNBEKANNT" zu geben. Ist dies das Label, wenn es nicht gut beurteilt werden konnte? ?? (Dieser Wert wurde während dieses Versuchs nicht zurückgegeben.)

Diese Seite ist auch hilfreich, um die Ergebnisse anderer Funktionen anzuzeigen. Zusammenfassung der Verwendung der Cloud Vision-API (mit Beispielcode)

Richtigkeit

Wenn Sie das Ergebnis hier einfügen, wird es definitiv gelöscht. Wenn Sie also nur Ihren Eindruck erwecken, war die Genauigkeit meiner Meinung nach recht hoch.

Wenn Sie interessiert sind, versuchen Sie es bitte in Ihrer eigenen Sammlung.

Zusammenfassung

Wir haben die Schritte zum Testen der Erkennung schädlicher Bilder mit einer kostenlosen Testversion der Google Cloud Vision-API kurz zusammengefasst.

Ich denke, dieser Service ist sehr gut für Leute, die nicht viel Wissen über maschinelles Lernen haben oder über Kenntnisse verfügen, aber nicht über Ressourcen wie Lerndaten und Maschinen verfügen, um die neueste Technologie einfach zu erleben. .. Wenn Sie interessiert sind, probieren Sie bitte die kostenlose Testversion aus.

Es macht viel Spass!

Die Seite, auf die ich mich diesmal bezog

Google Cloud Vision API Cloud Vision API Requests and Responses Zusammenfassung der Verwendung der Cloud Vision-API (mit Beispielcode) Maschinelles Lernen für schädliche Bilder? Versuchen Sie es mit der Cloud Vision API](http://design-lab.tuqulore.com/safety_image_upload_form_design/)

Recommended Posts

Bis Sie die Google Cloud Vision-API ausprobieren (Erkennung schädlicher Bilder)
Ich habe versucht, die Google Cloud Vision-API zu verwenden
Bis Sie die Google Speech API verwenden können
Versuchen Sie, Lebensmittelfotos mithilfe der Google Cloud Vision-API zu beurteilen
Ich habe die Google Cloud Vision-API zum ersten Mal ausprobiert
Google Cloud Vision API-Beispiel für Python
Verwenden Sie die Google Cloud Vision-API von Python
Bei der Einführung der Google Cloud Vision-API in Schienen habe ich die Dokumentation befolgt.
Bis Sie die Kaggle-API mit Colab verwenden
Verwendung der Google Cloud Translation API
Bis Sie versuchen, DNN mithilfe von Colab die Wahrheit des Bildes mitteilen zu lassen
Bildanalyse mit Objekterkennungs-API zum Ausprobieren in 1 Stunde
Lassen Sie uns die Super Resolution API mithilfe der Google Cloud Platform veröffentlichen
Versuchen Sie, iptables zu lernen, bis Sie im Internet surfen können
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie, so viel wie möglich mit dem Beispielprogramm des Schnellstarts der Google Spreadsheet API (v4) zu kratzen
[Python] Klicken Sie auf die Google Übersetzungs-API
Bis Sie Google Colaboratory verwenden
Versuchen Sie, das Bild mit opencv2 zu verwischen
Python ruft die Google Cloud Vision API von LINE BOT über AWS Lambda auf