Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh Penglihatan Komputer dalam Python: Pengecaman Wajah

Contoh Penglihatan Komputer dalam Python: Pengecaman Wajah

WBOY
WBOYasal
2023-06-10 13:28:381574semak imbas

Python ialah bahasa pengaturcaraan peringkat tinggi, mudah dipelajari dan difahami serta sesuai untuk pemula dan pembangun profesional. Python digunakan secara meluas dalam bidang kecerdasan buatan, dan penglihatan komputer adalah salah satu aplikasi yang sangat penting. Pengecaman muka adalah salah satu aplikasi terpenting dalam bidang penglihatan komputer Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan pengecaman muka.

1. Pengenalan kepada pengecaman muka

Teknologi pengecaman muka merujuk kepada teknologi yang secara automatik mengesan, menjejak, mengenal pasti dan mengesahkan wajah dalam imej digital. Pengecaman muka boleh mendapatkan imej melalui pelbagai kaedah seperti peningkatan optik, inframerah dan buatan. Maklumat ciri imej muka diperolehi melalui algoritma penglihatan komputer dan dibandingkan dengan pangkalan data ciri wajah sedia ada untuk melaksanakan operasi pengesahan identiti atau pengecaman identiti.

Teknologi pengecaman muka telah digunakan secara meluas dan memainkan peranan yang semakin penting dalam kewangan, keselamatan, rumah pintar dan bidang lain. Terdapat banyak perpustakaan penglihatan komputer dalam Python yang boleh menyokong pelaksanaan teknologi pengecaman muka Kaedah pelaksanaan teknologi pengecaman muka akan diperkenalkan di bawah.

2. Pustaka pengecaman muka dalam Python

Python menyediakan pelbagai perpustakaan pengecaman muka, termasuk OpenCV, dlib, dsb. Perpustakaan ini menyokong teknologi penglihatan komputer seperti pengesanan muka, pengecaman muka, pengesanan muka dan pelabelan muka.

OpenCV ialah salah satu perpustakaan penglihatan komputer paling popular dalam Python Ia menyediakan pelbagai perpustakaan algoritma untuk melaksanakan teknologi pengecaman muka. Pemprosesan imej, pengesanan muka, pengekstrakan ciri, latihan pengelas, dll. semuanya mempunyai sokongan yang sangat lengkap. dlib ialah perpustakaan pengecaman muka yang sangat baik yang menggunakan teknologi pembelajaran mendalam dan mempunyai sokongan yang baik untuk pengesanan muka.

3. Melaksanakan pengecaman muka dalam Python

Di bawah kita akan menggunakan contoh mudah untuk melaksanakan pengecaman muka dalam Python.

Pertama, kita perlu memasang perpustakaan OpenCV dan dlib. Kita boleh memasang perpustakaan ini menggunakan pip seperti berikut:

pip install opencv-python
pip install dlib

Seterusnya, kita perlu menyediakan satu set imej muka sebagai templat, yang boleh digunakan untuk perbandingan dan pengecaman. Kita boleh menyimpan fail imej ini dalam sistem fail tempatan.

Dalam Python, kita perlu menggunakan perpustakaan penglihatan komputer untuk memproses imej, seperti yang ditunjukkan di bawah:

import cv2 
import dlib
import numpy as np 

detector = dlib.get_frontal_face_detector() 

predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')

face_path = './faces'

def get_face_list(face_path): 
    return os.listdir(face_path) 

faces_list = get_face_list(face_path)

face_descriptors = []

for face in faces_list: 
    img = cv2.imread(os.path.join(face_path, face)) 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    faces = detector(gray) 
    for rect in faces: 
        shape = predictor(gray, rect) 
        face_descriptor = np.array(face_rec_model.compute_face_descriptor(img, shape)) 
        face_descriptors.append(face_descriptor)

Kod di atas melaksanakan fungsi mengesan wajah dalam imej. Kami menggunakan pengesan muka dalam pustaka dlib untuk mengesan wajah dalam imej dan mendapatkan ciri muka dan merekodkan ciri ini.

Selepas mendapatkan ciri-ciri wajah, kita perlu menggunakan ciri-ciri ini untuk pengecaman wajah, seperti yang ditunjukkan di bawah:

def recognize_face(): 
    img = cv2.imread('test.jpg') 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    faces = detector(gray) 
    for rect in faces: 
        shape = predictor(gray, rect) 
        face_descriptor = np.array(face_rec_model.compute_face_descriptor(img, shape)) 
        for i, face in enumerate(face_descriptors): 
            dist = np.linalg.norm(face - face_descriptor) 
            if dist < 0.6: 
                return "This is " + faces_list[i][:-4] 
    return "Unknown face"

Kod di atas merealisasikan padanan wajah dalam imej dengan Wajah yang sedia ada fungsi perbandingan pangkalan data. Kami menggunakan numpy untuk mengira jarak Euclidean antara nilai ciri muka dalam imej dan nilai ciri dalam perpustakaan templat Jika jarak kurang daripada ambang tertentu (biasanya 0.6), ia dianggap sama muka. Akhirnya, kami akan mengeluarkan hasil perbandingan.

4. Ringkasan

Artikel ini memperkenalkan cara menggunakan Python untuk melaksanakan teknologi pengecaman muka. Kami menggunakan perpustakaan OpenCV dan dlib untuk melaksanakan pengesanan muka dan fungsi pengekstrakan ciri, dan menggunakan perpustakaan numpy untuk mengira jarak Euclidean antara nilai ciri muka, sekali gus merealisasikan teknologi pengecaman muka. Python digunakan secara meluas dalam bidang penglihatan komputer dan juga memainkan peranan yang sangat penting dalam pembangunan sebenar.

Atas ialah kandungan terperinci Contoh Penglihatan Komputer dalam Python: Pengecaman Wajah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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