Rumah >pembangunan bahagian belakang >Tutorial Python >Ini seronok! Gunakan Python untuk mengenal pasti jenis bunga dan menyusun dan mengelaskannya secara automatik!
"Infinite Little Light's Popular Science Daily" sering mengeluarkan video yang mengenal pasti organisma dalam talian yang popular, yang bukan sahaja mempopularkan pengetahuan biologi, tetapi juga memenuhi rasa ingin tahu penonton. Hari ini kami juga akan mengenal pasti tumbuhan popular di Internet! Banyak bunga telah mekar pada musim bunga baru-baru ini Saya kebetulan mengambil kesempatan daripada percutian Qingming untuk keluar dan mengambil banyak gambar bunga.
Memandangkan kami tidak begitu biasa dengan banyak bunga, kami perlu menggunakan perisian untuk mengenal pasti jenis bunga itu. Terdapat banyak perisian pengecaman bunga di pasaran, seperti Huamate, Xingse, Baidu, dll. Selepas ujian, saya mendapati Baidu mempunyai kesan pengecaman terbaik. Jadi saya mempunyai idea Bolehkah saya memanggil antara muka Baidu untuk mengenal pasti dan mengklasifikasikan foto bunga? (Lihat penghujung artikel untuk kod lengkap)
Antara muka pengecaman imej Baidu boleh mengenal pasti lebih daripada 100,000 objek dan pemandangan dengan tepat, termasuk lebih daripada 10 Ia mempunyai keupayaan pengecaman imej berketepatan tinggi dan menyediakan perkhidmatan API yang sepadan.
https://www.php.cn/link/17d187eaf6157b4e219552d6a187290a
Kami mengikuti langkah-langkah untuk membuat aplikasi baharu dan dapatkan Kunci API dan Kunci Rahsia anda sendiri, seperti yang ditunjukkan dalam rajah di bawah.
Pengecaman imej menyediakan gabungan antara muka API yang menyokong panggilan gabungan fleksibel bagi perkhidmatan pengenalan menegak berbilang Di sini, hanya pengenalan tumbuhan perlu dipanggil untuk memenuhi keperluan.
Bagaimana untuk memanggil antara muka API pengecaman imej Baidu dalam Python?
Langkah pertama ialah memanggil antara muka pengesahan untuk mendapatkan token.
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)
Langkah kedua ialah mengenal pasti jenis imej
Masukkan arahan berikut dalam persekitaran interaktif:
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'])
Output :
Sakura
Parameter pulangan untuk memanggil antara muka pengecaman imej Baidu ditunjukkan dalam rajah di bawah, bagi kami, kami hanya memerlukan parameter nama (nama tumbuhan).
Saya menyimpan foto yang saya ambil dalam laluan D: muat turun koleksi bunga, jadi saya perlu menggunakan modul os untuk membaca senarai fail , untuk memudahkan operasi kelompok berikutnya.
Masukkan arahan berikut dalam persekitaran interaktif:
import os path = "D:下载花卉合集" filenames = os.listdir(path) filenames
Output:
['QQ截图20220405223301.png', 'QQ截图20220405223320.png', ...... '微信图片_20220405225020.jpg', '微信图片_20220405225023.jpg']
kaedah listdir() dalam modul os , menerima laluan parameter laluan, dan mengembalikan senarai nama fail semua fail di bawah laluan. Dengan cara ini, kami telah memperoleh nama fail semua gambar bunga di bawah laluan ini, seperti yang ditunjukkan dalam rajah di bawah.
Kemudian, kita boleh menggunakan pernyataan gelung for untuk melakukan pengecaman imej pada foto bunga mengikut urutan dan mengelaskannya mengikut nama yang dikenal pasti ke dalam folder yang sepadan.
Masukkan arahan berikut dalam persekitaran interaktif:
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)
Fungsi get_fname() ialah tempat kami merangkumkan kod pengecaman imej Baidu dalam artikel sebelumnya ke dalam fungsi tersuai, yang dipanggil di sini Nama_bunga yang sepadan dengan foto boleh dikembalikan.
Kod berikutnya hampir sama dengan fail klasifikasi automatik yang dikongsi sebelum ini, iaitu, jika menentukan sama ada folder yang sepadan dengan nama bunga sudah wujud, dan jika ia tidak wujud, ciptakannya. Akhir sekali, panggil modul shutil untuk mengalihkan foto bunga ke folder yang sepadan.
Kesan pelaksanaan khusus ditunjukkan dalam animasi di bawah.
Atas ialah kandungan terperinci Ini seronok! Gunakan Python untuk mengenal pasti jenis bunga dan menyusun dan mengelaskannya secara automatik!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!