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.
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)
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/*)
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.
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.)
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