Mã python để nhận diện khuôn mặt

Nhận diện và nhận dạng khuôn mặt là một trong những lĩnh vực của thị giác máy tính nơi nghiên cứu tích cực diễn ra

Các ứng dụng của Nhận dạng khuôn mặt bao gồm Mở khóa bằng khuôn mặt, Bảo mật và Quốc phòng, v.v. Các bác sĩ và quan chức y tế sử dụng nhận dạng khuôn mặt để truy cập hồ sơ y tế và lịch sử của bệnh nhân và chẩn đoán bệnh tốt hơn

Giới thiệu về nhận dạng khuôn mặt Python

Trong dự án python này, chúng ta sẽ xây dựng một mô hình máy học để nhận dạng người từ một hình ảnh. Chúng tôi sử dụng API face_recognition và OpenCV trong dự án của mình

Công cụ và Thư viện

  • Trăn – 3. x
  • cv2 – 4. 5. 2
  • gọn gàng – 1. 20. 3
  • face_recognition – 1. 3. 0

Để cài đặt các gói trên, sử dụng lệnh sau

pip install numpy opencv-python

Để cài đặt face_recognition, trước tiên hãy cài đặt gói dlib

pip install dlib

Bây giờ, hãy cài đặt mô-đun face_recognition bằng lệnh bên dưới

pip install face_recognition

Tải xuống mã Python nhận dạng khuôn mặt

Vui lòng tải xuống mã nguồn của dự án nhận dạng khuôn mặt python. Mã dự án nhận dạng khuôn mặt

Bộ dữ liệu dự án

Chúng tôi có thể thực hiện dự án nhận dạng khuôn mặt này bằng bộ dữ liệu của riêng mình. Đối với dự án này, hãy lấy dàn diễn viên của sê-ri web nổi tiếng của Mỹ “Friends” làm bộ dữ liệu. Bộ dữ liệu được bao gồm với mã dự án nhận dạng khuôn mặt mà bạn đã tải xuống ở phần trước

Các bước phát triển mô hình nhận dạng khuôn mặt

Trước khi tiếp tục, hãy tìm hiểu nhận dạng và phát hiện khuôn mặt là gì

Nhận dạng khuôn mặt là quá trình xác định hoặc xác minh khuôn mặt của một người từ ảnh và khung hình video

Nhận diện khuôn mặt được định nghĩa là quá trình định vị và trích xuất khuôn mặt [vị trí và kích thước] trong một hình ảnh để thuật toán nhận diện khuôn mặt sử dụng

Phương pháp nhận dạng khuôn mặt được sử dụng để định vị các đặc điểm trong hình ảnh được chỉ định duy nhất. Hình ảnh khuôn mặt đã được xóa, cắt, thu nhỏ và chuyển đổi thành thang độ xám trong hầu hết các trường hợp. Nhận dạng khuôn mặt bao gồm 3 bước. nhận diện khuôn mặt, trích xuất tính năng, nhận dạng khuôn mặt

OpenCV là một thư viện mã nguồn mở được viết bằng C++. Nó chứa việc triển khai các thuật toán khác nhau và mạng lưới thần kinh sâu được sử dụng cho các tác vụ thị giác máy tính

1. Chuẩn bị tập dữ liệu

Tạo 2 thư mục, huấn luyện và kiểm tra. Chọn một hình ảnh cho mỗi diễn viên từ internet và tải nó xuống thư mục “tàu” của chúng tôi. Đảm bảo rằng các hình ảnh bạn đã chọn hiển thị đủ các đặc điểm của khuôn mặt để bộ phân loại

Để kiểm tra mô hình, hãy chụp một bức ảnh có chứa tất cả các diễn viên và đặt nó vào thư mục “thử nghiệm” của chúng tôi

Để bạn thoải mái, chúng tôi đã thêm dữ liệu đào tạo và thử nghiệm với mã dự án

2. Đào tạo người mẫu

Đầu tiên nhập các mô-đun cần thiết

import face_recognition as fr
import cv2

import numpy as np
import os

Thư viện face_recognition chứa việc triển khai các tiện ích khác nhau trợ giúp trong quá trình nhận dạng khuôn mặt

Bây giờ, hãy tạo 2 danh sách lưu trữ tên của hình ảnh [người] và mã hóa khuôn mặt tương ứng của họ

path = "./train/"

known_names = []
known_name_encodings = []

images = os.listdir[path]

Mã hóa khuôn mặt là một vectơ các giá trị đại diện cho các phép đo quan trọng giữa các đặc điểm phân biệt của khuôn mặt như khoảng cách giữa hai mắt, chiều rộng của trán, v.v.

Chúng tôi lặp qua từng hình ảnh trong thư mục xe lửa của mình, trích xuất tên của người trong ảnh, tính toán vectơ mã hóa khuôn mặt của nó và lưu trữ thông tin trong danh sách tương ứng

for _ in images:
image = fr.load_image_file[path + _]
image_path = path + _
encoding = fr.face_encodings[image][0]

known_name_encodings.append[encoding]
known_names.append[os.path.splitext[os.path.basename[image_path]][0].capitalize[]]

3. Kiểm tra mô hình trên tập dữ liệu thử nghiệm

Như đã đề cập ở trên, tập dữ liệu thử nghiệm của chúng tôi chỉ chứa 1 hình ảnh với tất cả những người trong đó

Đọc ảnh thử nghiệm bằng phương thức cv2 imread[]

test_image = "./test/test.jpg"

image = cv2.imread[test_image]

Thư viện face_recognition cung cấp một phương thức hữu ích gọi là face_locations[] để xác định tọa độ [trái, dưới, phải, trên] của mọi khuôn mặt được phát hiện trong ảnh. Sử dụng các giá trị vị trí đó, chúng tôi có thể dễ dàng tìm thấy mã hóa khuôn mặt

face_locations = fr.face_locations[image]

face_encodings = fr.face_encodings[image, face_locations]

Chúng tôi lặp qua từng vị trí khuôn mặt và mã hóa của nó được tìm thấy trong hình ảnh. Sau đó, chúng tôi so sánh mã hóa này với mã hóa của các khuôn mặt từ bộ dữ liệu “đào tạo”

Sau đó tính toán khoảng cách khuôn mặt nghĩa là chúng tôi tính toán sự giống nhau giữa mã hóa của hình ảnh thử nghiệm và mã hóa của hình ảnh đoàn tàu. Bây giờ, chúng tôi chọn khoảng cách có giá trị tối thiểu từ nó để chỉ ra rằng khuôn mặt này của hình ảnh thử nghiệm là một trong những người từ tập dữ liệu huấn luyện

Bây giờ, hãy vẽ một hình chữ nhật có tọa độ vị trí khuôn mặt bằng các phương thức từ mô-đun cv2

________số 8

Hiển thị hình ảnh bằng phương thức imshow[] của mô-đun cv2

cv2.imshow["Result", image]

Lưu hình ảnh vào thư mục làm việc hiện tại của chúng tôi bằng phương thức imwrite[]

pip install dlib
0

Giải phóng các tài nguyên chưa được giải phóng [nếu có]

pip install dlib
1

Đầu ra nhận dạng khuôn mặt Python

Hãy xem đầu ra của mô hình

Tóm lược

Trong dự án máy học này, chúng tôi đã phát triển mô hình nhận dạng khuôn mặt trong python và opencv bằng tập dữ liệu tùy chỉnh của riêng mình

Làm cách nào để phát hiện khuôn mặt bằng Python?

Làm theo thuật toán này để xây dựng chương trình nhận diện khuôn mặt của bạn. .
Tải thuật toán Haar Cascade Frontal Face
Khởi tạo máy ảnh
Đọc khung hình từ máy ảnh
Chuyển đổi hình ảnh màu thành thang độ xám
Lấy tọa độ khuôn mặt
Vẽ một hình chữ nhật và đặt thông báo thích hợp
Hiển thị đầu ra

Python có thể được sử dụng để nhận dạng khuôn mặt không?

được xây dựng để cung cấp cơ sở hạ tầng chung cho các thuật toán máy học và thị giác máy tính. Nó có hàng nghìn thuật toán được tối ưu hóa có thể được sử dụng cho các mục đích khác nhau như phát hiện và nhận dạng khuôn mặt, xác định đối tượng, v.v. .

Ngôn ngữ nào là tốt nhất để nhận diện khuôn mặt?

Có nhiều ngôn ngữ khác nhau đang được sử dụng để tạo giải pháp nhận dạng khuôn mặt nhưng Python cho đến nay là ngôn ngữ phổ biến nhất.

Thuật toán nào là tốt nhất để Python nhận dạng khuôn mặt?

OpenCV cung cấp một số thuật toán nhận dạng khuôn mặt truyền thống. Các phương pháp này khác nhau ở cách chúng trích xuất thông tin hình ảnh và đối sánh hình ảnh đầu vào và đầu ra. Thuật toán LBPH là một phương pháp đơn giản nhưng rất hiệu quả vẫn được sử dụng nhưng nó chậm so với các thuật toán hiện đại.

Chủ Đề