Python-Skript, das mithilfe der Bing-Image-Suche automatisch typische Bilder sammelt

Zweck

In diesem Skript wird automatisch ein typisches Bild für eine bestimmte Abfrage erfasst. Zum Beispiel ist Deep Learning in den letzten Jahren im Bereich der Bildgebung (ursprünglich im Bereich Audio ...) populär geworden, und es wurde in verschiedenen akademischen Gesellschaften gesehen und als gemeinsame Aufgabe etabliert. Die Trainingsdaten erfordern jedoch eine große Menge, und die Zeit, die von der Erfassung bis zur Annotation benötigt wird, erfordert erhebliche Kosten.

Daher sammeln wir getaggte Bilddaten, die für maschinelles Lernen erforderlich sind, wie z. B. Deep Learning! Ich habe dieses Skript für einen solchen Zweck erstellt.

Sammlung typischer Bilder

Dieses Mal werden wir versuchen, die Bildersammlung mithilfe der Bildsuche von bing zu automatisieren. Der folgende Code macht so etwas wie Crawlen und Scraping, aber dieses Mal habe ich ihn implementiert, ohne nützliche Module (BeautifulSoup, urllib usw.) zum Lernen zu verwenden.

Obwohl es als typische Bildersammlung bezeichnet wird, ist es tatsächlich ein Prozess, der nur die Top-N-Suchen abruft.

collect_img.py


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

import sys
import os
import re
import commands as cmd


#Abfragesuche HTML abrufen
def get_HTML(query):

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

    return html

#URL des JPG-Bildes extrahieren
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

#Bild lokal speichern
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]:Bildsuchabfrage, argvs[2]:Zielverzeichnis(Nur wenn Sie speichern möchten)
    query = argvs[1] # some images  e.g. leopard

    html = get_HTML(query)

    url = extract_URL(html)

    for u in url:
        print u

    #Aktivieren Sie diese Option, wenn Sie das Bild lokal speichern möchten
    #get_IMG(argvs[2],url)

Lauf

Ausführungsmethode

Führen Sie dies wie folgt über die Befehlszeile aus. Das Argument dir wird jedoch nicht angegeben, wenn get_IMG nicht verwendet wird (das Bild wird nicht gespeichert).

collect_img.py


$ python collect_img.py query dir

--query: Suchwort für das gewünschte Bild (z. B. Leopard) --dir: Zielverzeichnis zum Speichern von Bildern (./img/*)

Ausführungsergebnis

Dieses Mal werden wir einige der Ergebnisse vorstellen, die von der Abfrage "Leopard" gesammelt wurden. Zunächst lautet die URL-Liste der erfassten Bilder wie folgt. (Allerdings nur ein Teil)

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 ...

Hier ist ein Teil des aufgenommenen Bildes. leopard leopard leopard

Aus dem Obigen wurde festgestellt, dass es richtig erworben wurde. Es entfernt jedoch kein Rauschen durch Berechnen der Ähnlichkeit von Bildern, sondern ruft einfach die oberen N Fälle ab. (Dies ist auch ein Problem, da es nicht implementiert wurde, um eine große Menge endlos zu sammeln.)

Zusammenfassung

Dieses Mal habe ich ein Skript geschrieben, um typische Bilder aus der Bing-Bildsuche zu sammeln, um automatisch kommentierte Bilddaten des maschinellen Lernens zu erfassen. Für Anmerkungen kann die Abfrage meiner Meinung nach unverändert verwendet werden. Darüber hinaus können die folgenden beiden Punkte in Zukunft berücksichtigt werden.

Dieses Skript hängt von den Eigenschaften der Bildsuchmaschine ab, dass der obere Rand der Bildsuche häufig ein typisches Bild ist. Daher ist es besser, ernsthaft über das zweite Problem oben nachzudenken. Überlegen. Lassen Sie es uns das nächste Mal erneut implementieren.

Recommended Posts

Python-Skript, das mithilfe der Bing-Image-Suche automatisch typische Bilder sammelt
Veröffentlichen und Verwenden eines Programms, das automatisch Gesichtsbilder bestimmter Personen sammelt
Ein Python-Skript, das ein GTK-Bild (Clipboard) in einer Datei speichert.
Probieren Sie die ähnliche Suche von Image Search mit Python SDK [Search] aus.
Ein Programm, das Python zum Abspielen von Junk verwendet
[Python] Laden Sie das Originalbild von der Google Bildsuche herunter
Speichern Sie automatisch Bilder Ihrer Lieblingsfiguren aus der Google Bildsuche mit Python
Nogizaka46 Ein Programm, das Blog-Bilder automatisch speichert
"Python Kit", das Python-Skripte von Swift aufruft
Vim-Plug-In, das automatisch Python-Stile formatiert
Führen Sie Python-Skripte in Excel aus (mit xlwings).
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
[Python] Maskiere das Bild mit Pillow zu einem Kreis
Suchen Sie Twitter mit Python
Ich habe ein Python-Skript geschrieben, das alle meine Beiträge mit der Qiita API v2 exportiert
Ein Programm, das die für iOS-App-Symbole in Python erforderliche Bildgröße automatisch ändert
Python-Skript, das von der Google-Suche zum sofortigen Speichern der Suchergebnisseite führt
Veröffentlichung einer Bibliothek, die Zeichendaten in Python-Bildern verbirgt
Sammeln Sie eine große Anzahl von Bildern mit der Bildsuch-API von Bing
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Rufen Sie die Bing Image Search API v5 von Python auf, um Bilder zu sammeln
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Suchalgorithmus mit word2vec [Python]
Suchen Sie mit Pythonista3 nach einem Bild von der Kamerarolle
Erstellen Sie einen einfachen geplanten Stapel mit Dockers Python Image und parse-crontab
[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst
[Python-Algorithmus] Ein Programm, das einige deutsche Antworten aus einer Suche mit Tiefenpriorität ausgibt
Ein Skript, das 0, 1 an die erste Python-Primzahl zurückgibt
Ein Python-Skript, das auf dem Mac erstellte ._DS_Store- und ._ * -Dateien löscht
Ein Programm, das automatisch feststellt, ob es sich um eine Animation oder ein Foto handelt, wenn Sie das Bild einer Person eingeben [Python]