[PYTHON] Jusqu'à ce que vous essayiez l'API Google Cloud Vision (détection d'images dangereuses)

Bonjour.

Je ne veux pas voir des choses pour adultes lors de la collecte d'images et de vidéos avec Crawler. (Hein? Es-tu heureux?) L'API Google Cloud Vision, dont on parlait il y a quelque temps, semble avoir la capacité de détecter de telles images nuisibles.

Ici, je vais résumer ce que j'ai fait avant d'essayer la détection d'images nuisibles dans l'essai gratuit de l'API Google Cloud Vison. D'autres fonctionnalités de l'API Cloud Vison, telles que la reconnaissance d'image, la détection de texte, la détection de visage, etc., sont également disponibles de la même manière que celle illustrée ci-dessous.

Les étapes à essayer

L'API Google Cloud Vison est utilisée de la même manière qu'une API générale en suivant les étapes ci-dessous.

  1. Enregistrez les informations personnelles et obtenez la clé API
  2. Faites une demande et publiez-la sur l'API
  3. Recevez la réponse et vérifiez son contenu

Le contenu ci-dessus est brièvement résumé dans l'ordre.

Obtenir la clé API

Obtenez la clé API en vous référant au site suivant.

Résumé de l'utilisation de l'API Cloud Vision (avec exemple de code)

Les points auxquels une attention particulière doit être apportée sont les suivants.

Créer / envoyer une demande

Cette fois, je l'ai essayé avec python. Au contraire, je ne pouvais utiliser que python. Le module de requêtes est utilisé pour envoyer des requêtes, donc s'il n'est pas inclus, installez-le avec pip.

python


$ pip install requests

Pour créer une requête, utilisez generatejson.py publié dans le didacticiel officiel de l'API Cloud Vision. Il est pratique à utiliser. Il s'agit d'un texte qui rassemble les informations de la demande que vous souhaitez envoyer et qui génère un fichier json qui résume ces informations. Le format du fichier d'entrée est le suivant.

input_file.txt


#Numéro de fonction du chemin de l'image:Nombre de résultats obtenus
filepath_to_image1.jpg 4:10
filepath_to_image2.png 1:10 6:10

Séparé par des espaces de demi-largeur, spécifiez d'abord le Chemin de l'image, puis le numéro de la fonction que vous souhaitez utiliser et le nombre de résultats à acquérir, séparés par deux-points. (Veuillez ne pas écrire le commentaire dans l'exemple ci-dessus.) Les numéros de fonction (au 19 mai 2016) correspondent au tableau ci-dessous.

Nom de la fonction La description nombre
FACE_DETECTION Détection d'une partie du visage 1
LANDMARK_DETECTION Détection de points de repère 2
LOGO_DETECTION Détection de logo 3
LABEL_DETECTION Détection / reconnaissance d'objets 4
TEXT_DETECTION Détection de texte dans les images 5
SAFE_SEARCH_DETECTION Détection d'images dangereuses 6

Par exemple, si vous spécifiez "4:10", la reconnaissance d'objet sera effectuée et les 10 premières étiquettes estimées seront renvoyées. Même si vous n'avez pas besoin de "nombre" comme la détection d'images nuisibles, je l'ai essayé avec: X et une valeur numérique. Le résultat n'a pas changé si X était défini sur 1 ou 10.

Créez un fichier json à l'aide de generatejson.py comme suit.

python


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

Spécifiez le nom du fichier texte créé précédemment après l'option -i et le fichier json créé après l'option -o. Une fois que vous avez un fichier json, envoyez-le. Comment envoyer est comme ça.

$ 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
>>> '''Ci-dessous un exemple de réponse
{
  "responses": [
    {
      "safeSearchAnnotation": {
        "adult": "VERY_UNLIKELY",
        "spoof": "VERY_UNLIKELY",
        "medical": "VERY_UNLIKELY",
        "violence": "VERY_UNLIKELY"
      }
    }
  ]
}
'''

Dans la partie "", saisissez la clé API obtenue dans "Get API Key". Vous pouvez envoyer une demande et obtenir une réponse en 1 seconde environ. Vous pouvez vérifier le contenu avec la propriété text.

Comment lire la réponse

Ici, seul le cas de détection d'images nuisibles est résumé. Je pense qu'il est facile d'obtenir le contenu de la réponse avec le module json comme indiqué ci-dessous.

$ python
...
>>> #Supposons que la réponse variable a une réponse
>>> import json
>>> response_json = json.loads(response.text)
>>> #De la première image"Diplôme adulte(?)"Avoir
>>> print response["responses"][0]["safeSearchAnnotation"]["adult"]
>>> # -> "VERY_UNLIKELY"
...

Il existe quatre points de vue pour juger des images nuisibles: «adulte», «médical», «parodie» et «violence». La signification de chacun est indiquée dans le tableau ci-dessous.

Perspective La description
adult Est-ce une image adulte?
spoof S'agit-il d'une sorte d'image traitée?(Image de Pakuri?)
medical Est-ce une image médicale?(Les organes internes)
violence Est-ce l'image d'une représentation violente?(Image Glo?)

La nocivité est jugée en 5 étapes, du plus fort à "TRÈS PROBABLE", "PROBABLE", "POSSIBLE", "INCROYABLE", "TRÈS PROBABLE". Il semble également y avoir une valeur appelée "INCONNU". Est-ce le label quand on ne peut pas bien le juger? ?? (Cette valeur n'a pas été renvoyée pendant cet essai.)

Cette page est également utile pour afficher les résultats d'autres fonctions. Résumé de l'utilisation de l'API Cloud Vision (avec exemple de code)

précision

Si vous mettez le résultat ici, il sera définitivement supprimé, donc si vous donnez simplement votre impression, j'ai senti que la précision était assez élevée.

Si vous êtes intéressé, essayez-le dans votre précieuse collection.

Résumé

Nous avons brièvement résumé les étapes pour essayer la détection d'images dangereuses avec un essai gratuit de l'API Google Cloud Vision.

Je pense que ce service est très bon pour les personnes qui n'ont pas beaucoup de connaissances en apprentissage automatique ou qui ont des connaissances mais qui n'ont pas de ressources telles que des données d'apprentissage et des machines pour découvrir facilement les dernières technologies. .. Si vous êtes intéressé, veuillez essayer l'essai gratuit.

C'est très amusant!

La page à laquelle j'ai fait référence cette fois

Google Cloud Vision API Cloud Vision API Requests and Responses Résumé de l'utilisation de l'API Cloud Vision (avec exemple de code) L'apprentissage automatique des images nuisibles? Essayez d'utiliser l'API Cloud Vision

Recommended Posts

Jusqu'à ce que vous essayiez l'API Google Cloud Vision (détection d'images dangereuses)
J'ai essayé d'utiliser l'API Google Cloud Vision
Jusqu'à ce que vous puissiez utiliser l'API Google Speech
Essayez de juger des photos de plats à l'aide de l'API Google Cloud Vision
J'ai essayé l'API Google Cloud Vision pour la première fois
Exemple d'API Google Cloud Vision pour python
Utiliser l'API Google Cloud Vision de Python
Lors de l'introduction de l'API Google Cloud Vision sur les rails, j'ai suivi la documentation.
Jusqu'à ce que vous utilisiez l'API Kaggle avec Colab
Comment utiliser l'API Google Cloud Translation
Jusqu'à ce que vous essayiez de laisser DNN apprendre la vérité de l'image en utilisant Colab
Analyse d'image avec l'API Object Detection à essayer en 1 heure
Publions l'API de super résolution à l'aide de Google Cloud Platform
Essayez et apprenez iptables, jusqu'à ce que vous puissiez naviguer sur le Web
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API Twitter
Essayez d'utiliser l'API PeeringDB 2.0
Essayez de gratter autant que vous le pouvez le programme d'exemple de démarrage rapide de l'API Google Spreadsheet (v4)
[Python] Accédez à l'API Google Translation
Jusqu'à ce que vous utilisiez Google Colaboratory
Essayez de brouiller l'image avec opencv2
Python appelant l'API Google Cloud Vision depuis LINE BOT via AWS Lambda