Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan Python untuk melakukan pengecaman muka pada gambar

Cara menggunakan Python untuk melakukan pengecaman muka pada gambar

WBOY
Lepaskan: 2023-08-25 20:46:42
asal
1444 orang telah melayarinya

Cara menggunakan Python untuk melakukan pengecaman muka pada gambar

Cara menggunakan Python untuk melakukan pengecaman muka pada gambar
Pengecaman muka ialah teknologi penting dalam bidang penglihatan komputer, yang boleh mengenal pasti wajah dalam imej atau video dan mengelaskan atau mengenal pasti mereka. Python ialah bahasa pengaturcaraan yang digunakan secara meluas yang, apabila digunakan dengan perpustakaan yang sepadan, boleh melaksanakan pengecaman muka yang mudah tetapi cekap. Artikel ini akan memperkenalkan cara menggunakan Python dan perpustakaan OpenCV untuk melaksanakan pengecaman muka pada gambar.

Pertama, kita perlu memasang perpustakaan OpenCV dalam Python. Ia boleh dipasang dengan menjalankan arahan berikut di terminal:

pip install opencv-python
Salin selepas log masuk

Setelah pemasangan selesai, kita boleh mula menulis kod Python. Pertama, import perpustakaan yang diperlukan:

import cv2
import matplotlib.pyplot as plt
Salin selepas log masuk

Seterusnya, kami akan memuatkan imej yang kami perlukan untuk pengecaman muka:

image = cv2.imread('image.jpg')
Salin selepas log masuk

Selepas memuatkan imej, kami perlu menukarnya kepada imej skala kelabu, kerana dalam pengecaman muka, kami Hanya fokus pada bentuk dan struktur muka, bukan warna:

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Salin selepas log masuk

Seterusnya, kita perlu menggunakan pengelas lata OpenCV, iaitu algoritma pengecaman muka berdasarkan ciri Haar. OpenCV sudah menyediakan beberapa model pengelas lata terlatih yang boleh kami gunakan secara langsung. Dalam contoh ini, kami akan menggunakan model "haarcascade_frontalface_default.xml":

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
Salin selepas log masuk

Seterusnya, kami akan menggunakan pengelas lata di atas untuk mengesan wajah dalam imej:

faces = face_cascade.detectMultiScale(gray, 1.1, 4)
Salin selepas log masuk

Fungsi detectMultiScale akan mengembalikan kotak sempadan yang terdiri daripada muka ( segi empat tepat) tatasusunan. Kami boleh mengendalikan kotak sempadan ini mengikut keperluan, seperti melukis segi empat tepat dalam imej untuk menandakan muka.

for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
Salin selepas log masuk

Akhir sekali, kami akan memaparkan imej dengan muka yang ditag:

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()
Salin selepas log masuk

Dengan meletakkan blok kod di atas bersama-sama, kami boleh melaksanakan program pengecaman wajah yang lengkap. Berikut ialah contoh kod lengkap:

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, 1.1, 4)

for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()
Salin selepas log masuk

Dengan menjalankan kod di atas, kita boleh melihat imej dengan wajah yang dikenali dan ditag. Ini hanyalah contoh asas pengecaman muka, dan algoritma serta model yang lebih kompleks mungkin diperlukan dalam aplikasi sebenar. Tetapi dengan bantuan OpenCV, Python telah menjadi salah satu alat yang berkuasa untuk tugas pengecaman muka.

Untuk meringkaskan, artikel ini memperkenalkan langkah asas dan contoh kod menggunakan perpustakaan OpenCV untuk pengecaman muka dalam Python. Saya harap artikel ini akan membantu anda memahami prinsip dan amalan pengecaman muka, dan juga merangsang minat anda untuk menerokai lagi bidang penglihatan komputer.

Atas ialah kandungan terperinci Cara menggunakan Python untuk melakukan pengecaman muka pada gambar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan