Script Python qui collecte automatiquement des images typiques à l'aide de la recherche d'images Bing

Objectif

Dans ce script, une image typique pour une certaine requête est automatiquement collectée. Par exemple, ces dernières années, le Deep Learning est devenu populaire dans le domaine de l'imagerie (à l'origine dans le domaine de l'audio ...), et il a été vu dans diverses sociétés académiques et établi comme une tâche partagée. Cependant, les données de formation nécessitent une quantité énorme et le temps nécessaire de la collecte à l'annotation nécessite un coût considérable.

Par conséquent, nous collectons les données d'image taguées nécessaires à l'apprentissage automatique tel que le Deep Learning! J'ai créé ce script dans un tel but.

Collection d'images typiques

Cette fois, nous allons essayer d'automatiser la collecte d'images en utilisant la recherche d'images de Bing. Le code ci-dessous fait quelque chose comme l'exploration et le scraping, mais cette fois je l'ai implémenté sans utiliser de modules utiles (BeautifulSoup, urllib, etc.) pour étudier.

Bien qu'il soit étiqueté comme une collection d'images typique, il s'agit en fait d'un processus qui ne récupère que les N premières recherches.

collect_img.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import re
import commands as cmd


#Recherche par requête Obtenir du code HTML
def get_HTML(query):

    html = cmd.getstatusoutput("wget -O - https://www.bing.com/images/search?q=" + query)

    return html

#Extraire l'URL de l'image jpg
def extract_URL(html):

    url = []
    sentences = html[1].split('\n')
    ptn = re.compile('<a href="(.+\.jpg)" class="thumb"')

    for sent in sentences:
        if sent.find('<div class="item">') >= 0:
            element = sent.split('<div class="item">')

            for j in range(len(element)):
                mtch = re.match(ptn,element[j])
                if  mtch >= 0:
                    url.append(mtch.group(1))

    return url

#Enregistrer l'image localement
def get_IMG(dir,url):

    for u in url:
        try:
            os.system("wget -P " + dir + " " + u)
        except:
            continue


if __name__ == "__main__":

    argvs = sys.argv # argvs[1]:Requête de recherche d'image, argvs[2]:Répertoire de destination(Seulement lorsque vous souhaitez enregistrer)
    query = argvs[1] # some images  e.g. leopard

    html = get_HTML(query)

    url = extract_URL(html)

    for u in url:
        print u

    #Activer lorsque vous souhaitez enregistrer l'image localement
    #get_IMG(argvs[2],url)

Courir

Méthode d'exécution

Exécutez comme suit à partir de la ligne de commande. Cependant, l'argument dir n'est pas spécifié lorsque get_IMG n'est pas utilisé (l'image n'est pas enregistrée).

collect_img.py


$ python collect_img.py query dir

--query: recherchez le mot pour l'image que vous voulez (par exemple, leopard) --dir: répertoire de destination de sauvegarde de l'image (./img/*)

Résultat d'exécution

Cette fois, nous présenterons quelques-uns des résultats collectés par la requête "leopard". Tout d'abord, la liste des URL des images acquises est la suivante. (Cependant, une partie seulement)

http://images.china.cn/attachement/jpg/site1007/20120720/00016c8b5de01172f9e82e.jpg http://farm2.static.flickr.com/1254/1174179702_fe9c9a5d2c_b.jpg http://www.katzen-und-kater.de/Grosskatzen/Leopard/Leopard5.jpg ...

Voici une partie de l'image acquise. leopard leopard leopard

D'après ce qui précède, il a été constaté qu'il avait été acquis correctement. Cependant, il ne supprime pas le bruit en calculant la similitude des images, mais récupère simplement les N premiers cas. (C'est aussi un problème car il n'a pas été mis en œuvre pour collecter une grande quantité à l'infini)

Résumé

Cette fois, j'ai écrit un script pour collecter des images typiques de la recherche d'images Bing dans le but de collecter automatiquement des données d'image annotées de l'apprentissage automatique. Pour les annotations, je pense que la requête peut être utilisée telle quelle. De plus, les deux questions suivantes peuvent être envisagées à l'avenir.

--Recueillir n'importe quel nombre (ou une infinité) d'images

Ce script dépend des caractéristiques du moteur de recherche d'images que le haut de la recherche d'images est souvent une image typique, il vaut donc mieux réfléchir sérieusement au deuxième problème ci-dessus. pense. Implémentons-le à nouveau la prochaine fois.

Recommended Posts

Script Python qui collecte automatiquement des images typiques à l'aide de la recherche d'images Bing
Publier et utiliser un programme qui collecte automatiquement les images du visage de personnes spécifiées
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
Un programme qui utilise Python pour lire des fichiers indésirables
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Enregistrez automatiquement les images de vos personnages préférés à partir de la recherche d'images Google avec Python
Nogizaka46 Un programme qui enregistre automatiquement les images de blog
"Kit Python" qui appelle des scripts Python depuis Swift
Plug-in Vim qui formate automatiquement les styles Python
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
Que contient cette variable (lorsque le script Python est en cours d'exécution)
[Python] Masquez l'image dans un cercle à l'aide de Pillow
Rechercher sur Twitter avec Python
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
Un programme qui redimensionne automatiquement la taille d'image requise pour les icônes d'application iOS en Python
Script Python qui va de la recherche Google à l'enregistrement de la page de résultats de recherche à la fois
Publication d'une bibliothèque qui masque les données de caractères dans les images Python
Collectez un grand nombre d'images à l'aide de l'API de recherche d'images de Bing
Créons un script qui s'enregistre avec Ideone.com en Python.
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Appelez l'API Bing Image Search v5 depuis Python pour collecter des images
Un ensemble de fichiers de script qui font wordcloud avec Python3
Un script python qui convertit les données Oracle Database en csv
Script Python qui compare le contenu de deux répertoires
J'ai écrit un script qui divise l'image en deux
Algorithme de recherche utilisant word2vec [python]
Recherche par image de la pellicule en utilisant Pythonista3
Créez un lot planifié simple à l'aide de l'image Python de Docker et de parse-crontab
[Ev3dev] Créez un programme qui capture LCD (écran) en utilisant python
[Algorithme Python] Un programme qui génère des réponses en allemand et en allemand à partir de la recherche de priorité en profondeur
Un script qui renvoie 0, 1 attaché au premier Python prime
Un script python qui supprime les fichiers ._DS_Store et ._ * créés sur Mac
Un programme qui détermine automatiquement s'il s'agit d'une animation ou d'une photo lorsque vous entrez l'image d'une personne [python]