Heim > Artikel > Backend-Entwicklung > Das macht Spaß! Verwenden Sie Python, um Blumenarten zu identifizieren und sie automatisch zu organisieren und zu klassifizieren!
„Fengxiaoliang's Popular Science Daily“ veröffentlicht häufig einige Videos, in denen beliebte Online-Organismen identifiziert werden, was nicht nur biologisches Wissen bekannt macht, sondern auch die Neugier des Publikums befriedigt. Heute identifizieren wir auch beliebte Pflanzen im Internet! Vor kurzem blühten im Frühling viele Blumen. Ich nutzte das Qingming-Fest, um ins Freie zu gehen und viele Blumenfotos zu machen.
Da wir mit vielen Blumen nicht besonders vertraut sind, müssen wir eine Software verwenden, um zu identifizieren, um welche Art von Blume es sich handelt. Es gibt viele Blumenerkennungssoftware auf dem Markt, wie Huamate, Xingse, Baidu usw. Nach dem Test habe ich festgestellt, dass Baidu den besten Erkennungseffekt hat. Also hatte ich eine Idee. Kann ich die Benutzeroberfläche von Baidu stapelweise aufrufen, um Blumenfotos zu identifizieren und zu klassifizieren? (Den vollständigen Code finden Sie am Ende des Artikels)
Die Bilderkennungsschnittstelle von Baidu kann genau identifizieren Mehr als 100.000 Bildtypen Objekte und Szenen umfassen mehr als 10 hochpräzise Bilderkennungsfunktionen und stellen entsprechende API-Dienste bereit.
https://www.php.cn/link/17d187eaf6157b4e219552d6a187290a
#🎜. 🎜## 🎜🎜#Wir befolgen die Schritte, um eine neue Anwendung zu erstellen und unseren eigenen API-Schlüssel und Geheimschlüssel zu erhalten, wie in der Abbildung unten gezeigt.
Die Bilderkennung bietet eine Kombinations-API-Schnittstelle, die flexible Kombinationsaufrufe mehrerer vertikaler Identifikationsdienste unterstützt. Hier kann nur die Anforderung erfüllt werden, die Anlagenidentifikation aufzurufen .
Wie rufe ich die Baidu-Bilderkennungs-API-Schnittstelle in Python auf?
Der erste Schritt besteht darin, die Authentifizierungsschnittstelle aufzurufen, um das Token zu erhalten.
API_Key = '**********' Secret_Key = '**********' def get_access_token(API_Key,Secret_Key): host = '**********' response = requests.get(host) return response.json()['access_token'] access_token = get_access_token(API_Key,Secret_Key)
Der zweite Schritt besteht darin, den Bildtyp zu identifizieren #
import requests import base64 request_url = '**********' # 二进制方式打开图片文件 f = open(r'D:下载QQ截图20220407203203.png', 'rb') img = base64.b64encode(f.read()) params = {"image":img} request_url = request_url + "?access_token=" + access_token headers = {'content-type': 'application/x-www-form-urlencoded'} response = requests.post(request_url, data=params, headers=headers) if response: print (response.json()['result'][0]['name'])Ausgabe: Kirschblüte
Der Rückgabeparameter des Aufrufs der Baidu-Bilderkennungsschnittstelle ist in der folgenden Abbildung dargestellt. Für uns ist nur der Name (Anlage Name) ist ein benötigter Parameter.
Fotodateien lesenIch speichere die aufgenommenen Fotos unter D: Blumensammlungspfad herunterladen, daher muss ich sie verwenden Das Betriebssystemmodul liest die Dateiliste, um nachfolgende Stapelvorgänge zu erleichtern. Geben Sie den folgenden Befehl in der interaktiven Umgebung ein:import os path = "D:下载花卉合集" filenames = os.listdir(path) filenamesAusgabe :
['QQ截图20220405223301.png', 'QQ截图20220405223320.png', ...... '微信图片_20220405225020.jpg', '微信图片_20220405225023.jpg']
listdir im Betriebssystemmodul ()-Methode, empfängt einen Pfadparameter path und gibt eine Liste der Dateinamen aller Dateien unter dem Pfad zurück. Auf diese Weise haben wir die Dateinamen aller Blumenbilder unter diesem Pfad erhalten, wie in der folgenden Abbildung dargestellt.
Fotos organisieren und klassifizieren
Dann können wir die for-Schleifenanweisung verwenden, um eine Bilderkennung für die Blumenfotos in durchzuführen Reihenfolge, und klassifizieren und organisieren Sie sie entsprechend den erkannten Namen in entsprechenden Ordnern. Geben Sie den folgenden Befehl in der interaktiven Umgebung ein:for i in filenames: flower_name = get_fname(i) file_path = os.path.join(path,i) folder_path = os.path.join(path,flower_name) if not os.path.exists(folder_path): os.mkdir(folder_path) shutil.move(file_path,folder_path)Mit der Funktion get_fname() kapseln wir hier den Baidu-Bilderkennungscode im vorherigen Artikel in eine benutzerdefinierte Funktion Der Aufruf gibt den Blumennamen zurück, der dem Foto entspricht.
Der spezifische Ausführungseffekt wird in der Animation unten gezeigt.
Das obige ist der detaillierte Inhalt vonDas macht Spaß! Verwenden Sie Python, um Blumenarten zu identifizieren und sie automatisch zu organisieren und zu klassifizieren!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!