Rumah >pembangunan bahagian belakang >Tutorial Python >Menganalisis Emosi, Umur, dan Gender Menggunakan Library Serengil/DeepFace di Python
Dalam artikel ini, kita akan membincangkan cara menggunakan perpustakaan DeepFace Serengil untuk menganalisis emosi, umur dan jantina daripada imej muka. Artikel ini akan merangkumi empat bahagian utama: (1) perbincangan mengenai perpustakaan yang digunakan, (2) cara menggunakan perpustakaan, (3) penjelasan kod, dan (4) hasil analisis.
1. Perbincangan Perpustakaan DeepFace
DeepFace ialah perpustakaan sumber terbuka berasaskan Python yang menawarkan keupayaan analisis wajah. Perpustakaan ini dibangunkan oleh Serengil dan telah menjadi alat yang berkuasa untuk banyak pengecaman muka dan aplikasi analisis atribut muka. DeepFace dapat mengesan dan mengecam wajah, serta menganalisis atribut seperti emosi, umur dan jantina dengan ketepatan yang tinggi.
DeepFace menggunakan model pembelajaran mesin yang telah dilatih pada set data imej muka yang besar. Model ini menggunakan pembelajaran mendalam untuk mengekstrak ciri muka dan melaksanakan klasifikasi atribut dengan ketepatan. Beberapa model pembelajaran mendalam yang digunakan oleh DeepFace termasuk VGG-Face, Google FaceNet, OpenFace dan banyak lagi. Keupayaan untuk memilih dan menggabungkan model ini memberikan fleksibiliti dan kebolehpercayaan dalam pelbagai senario aplikasi.
2. Cara Menggunakan Perpustakaan
Untuk menggunakan DeepFace, kita perlu memasang beberapa kebergantungan terlebih dahulu. Berikut adalah langkah terperinci:
python --version pip --version
pip install deepface
pip install opencv-python numpy
Setelah semua kebergantungan dipasang, kami bersedia untuk mula menulis kod untuk menganalisis wajah.
3. Penerangan Kod
Berikut ialah kod untuk menganalisis emosi, umur dan jantina daripada imej muka. Kod ini terdiri daripada beberapa fungsi utama yang akan diterangkan secara terperinci.
python import json import numpy as np from deepface import DeepFace import cv2 # Fungsi untuk menampilkan gambar def show_image(img_path): img = cv2.imread(img_path) cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows() # Fungsi untuk konversi data agar bisa di-serialisasi def convert_to_serializable(obj): if isinstance(obj, np.float32): return float(obj) raise TypeError(f"Object of type {type(obj)} is not JSON serializable") # Fungsi untuk analisis wajah def analyze_face(img_path): result = DeepFace.analyze(img_path) print("Hasil Analisis:", result) return result # Fungsi utama def main(): # Path gambar img_path = "images/happy.jpg" # Analisis wajah analysis_result = analyze_face(img_path) # Simpan hasil analisis ke file JSON with open('result_analysis.json', 'w') as json_file: json.dump(analysis_result, json_file, default=convert_to_serializable) if __name__ == "__main__": main()
Penjelasan Kod
show_image(img_path): Fungsi ini digunakan untuk memaparkan imej menggunakan OpenCV. Imej akan dipaparkan dalam tetingkap berasingan dan tunggu input daripada pengguna sebelum menutup tetingkap.
convert_to_serializable(obj): Fungsi ini menukar objek numpy float32 kepada terapung supaya ia boleh disirikan kepada format JSON. Ini perlu kerana jenis data numpy tidak serasi secara langsung dengan JSON.
analyze_face(img_path): Fungsi utama untuk menganalisis muka. Fungsi ini menggunakan DeepFace untuk menganalisis imej muka yang diberikan dan mengembalikan hasil analisis.
main(): Fungsi ini ialah titik masuk utama skrip. Fungsi ini menentukan laluan imej, memanggil fungsi analisis wajah dan menyimpan hasil analisis ke fail JSON.
img_path: Mengandungi imej yang anda ingin analisis, contoh imej yang saya gunakan untuk menganalisis
4. Keputusan Analisis
Selepas menjalankan kod di atas menggunakan imej, anda akan mendapat keputusan analisis muka yang disimpan dalam fail result_analysis.json. Keputusan ini termasuk maklumat tentang emosi, umur dan jantina wajah yang dianalisis. Berikut ialah contoh hasil:
python --version pip --version
Dengan maklumat ini, anda boleh memahami lebih lanjut tentang atribut muka yang dianalisis menggunakan DeepFace. Perpustakaan ini sangat berguna dalam pelbagai aplikasi seperti keselamatan, pemasaran, dan penyelidikan. Contohnya, dalam bidang pemasaran, analisis emosi boleh membantu dalam memahami respons pengguna terhadap pengiklanan atau produk.
Selain itu, keupayaan untuk mengesan umur dan jantina boleh digunakan dalam memperibadikan perkhidmatan, seperti memberikan pengesyoran yang sepadan dengan profil pengguna. Artikel ini menunjukkan betapa hebat dan fleksibel perpustakaan DeepFace untuk tujuan analisis wajah.
Atas ialah kandungan terperinci Menganalisis Emosi, Umur, dan Gender Menggunakan Library Serengil/DeepFace di Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!