La première chose que vous devez faire pour créer un modèle d'apprentissage automatique pour la reconnaissance d'objets dans une image est de collecter une grande quantité d'images d'entraînement. Les éléments généraux tels que les chiens et les voitures peuvent être téléchargés à partir de services tels que ImageNet, mais des images de personnages tels que Pikachu et Anpanman, par exemple. il n'y a pas. Ensuite, j'ai trouvé une méthode pour collecter des images à l'aide de la recherche Google. Cette fois, je vais vous présenter comment collecter des données d'image pour l'apprentissage automatique à l'aide de l'API Google Custom Search.
Commencez par créer un moteur de recherche personnalisé avec CSE.
Cliquez d'abord sur Ajouter sous Modifier le moteur de recherche
Ensuite, remplissez les valeurs appropriées dans le formulaire. En guise d'avertissement ici, entrez une valeur appropriée telle que "\ * .com" pour "Rechercher sur le site". Non, je veux rechercher tous les sites! Si vous pensez "\ *", vous ne pourrez pas continuer pour le reste de votre vie. (J'étais assez accro ici) Je vais le changer pour que tout soit fouillé plus tard. Définissez les paramètres suivants comme il convient et appuyez sur le bouton Créer.
Cliquez sur le bouton Créer pour terminer la création. Sélectionnez ensuite le panneau de commande.
Faites trois choses dans ce panneau de configuration Tout d'abord, activez la recherche d'images.
Ensuite, supprimez le "\ * .com" que vous avez ajouté précédemment du site à rechercher.
Enfin, remplacez "Rechercher uniquement les sites ajoutés" par "Rechercher sur l'ensemble du Web en mettant l'accent sur les sites ajoutés".
Je vous remercie pour votre travail acharné. Vous venez de créer un moteur de recherche personnalisé. *** Notez l'ID qui apparaît lorsque vous appuyez sur "Search Engine ID". *** ***
Activez ensuite l'API de recherche personnalisée. C'est très simple https://console.developers.google.com Accédez à (Créer un projet s'il n'existe pas), sélectionnez Bibliothèque dans le menu de gauche, puis sélectionnez API CustomeSearch. Appuyez sur "Activer" à la destination de la transition pour activer l'API.
Maintenant, récupérez la clé API à partir des informations d'identification sur la gauche. Sélectionnez la clé API dans l'onglet Créer des informations d'identification.
*** Notez ceci car une clé sera créée lorsque vous la sélectionnez. *** ***
Cela faisait longtemps, mais maintenant je suis prêt! !!
Collectez des images à l'aide du moteur de recherche personnalisé créé ci-dessus et de l'API et de la clé API CustomeSearch.
Le script est très simple: Enregistrez les images sous forme de nombre .png dans un répertoire appelé images sous le répertoire exécuté. Pour l'ID du moteur de recherche et la clé API, saisissez ceux que vous avez notés ci-dessus. (Veuillez installer la bibliothèque importée avec pip le cas échéant.)
correct_image.py
import requests
import shutil
API_PATH = "https://www.googleapis.com/customsearch/v1"
PARAMS = {
"cx" : "999999999999999999:abcdefghi", #ID du moteur de recherche
"key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx", #Clé API
"q" : "Pikachu", #Rechercher un mot
"searchType": "image", #Type de recherche
"start" : 1, #Index de départ
"num" : 10 #Nombre d'acquisitions en une seule recherche(10 par défaut)
}
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
Quand j'ai réellement exécuté cela, j'ai eu l'image suivante.
J'ai remarqué plus tard que lorsque j'ai essayé d'obtenir beaucoup d'images avec cette méthode
Traceback (most recent call last):
File "get_image.py", line 31, in <module>
items_json = requests.get(API_PATH, PARAMS).json()["items"]
KeyError: 'items'
Il s'est avéré que plus de 100 images n'ont pas pu être acquises. Apparemment, l'API Google Custom Search ne permet pas l'acquisition des pages 11 et au-delà. (Il y avait un lien qui a été mentionné, mais je l'ai perdu.)
Recommended Posts