
Source code Mở khóa tự động bằng nhận diện khuôn mặt bằng Python+ đồ án có file báo cáo
by Long ITin Python , Scripts & Code on December 21, 2024Choose Your Desired Option(s)
Source code Mở khóa tự động bằng nhận diện khuôn mặt bằng Python+ đồ án có file báo cáo
Nhận diện khuôn mặt sử dụng Haar Cascade:
Sử dụng phương pháp phân loại hình ảnh dựa trên các đặc trưng như sự thay đổi cường độ ánh sáng trong hình ảnh. Dễ dàng nhận diện các đối tượng như khuôn mặt trong các điều kiện nhất định.
Lý do chọn Haar Cascade
- Chiếm ít bộ nhớ, không yêu cầu phần cứng mạnh mẽ.
- Dễ triển khai và có sẵn trong thư viện OpenCV.
Các mô hình Haar Cascade được lưu trữ dưới dạng XML, giúp tiết kiệm dung lượng. Raspberry Pi 4 có thể dễ dàng tải mô hình từ thẻ microSD
Phương pháp này là một trong những lựa chọn tốt nhất cho Raspberry Pi nhờ vào việc sử dụng ít tài nguyên và khả năng chạy nhanh trên phần cứng yếu.
Nguyên lý Haar Cascade
Cơ sở thực tiễn
Khuôn mặt người có một số đặc điểm sáng tối khá đồng nhất và có quy luật ở nhiều người và trong nhiều bức ảnh. Ví dụ:
- Vùng mắt thường tối hơn so với vùng má xung quanh.
- Cánh mũi thường có các vùng sáng và tối rõ ràng khi ánh sáng chiếu từ phía trên.
- Miệng cũng có sự tương phản về sáng tối với vùng da xung quanh.
pip install opencv-python
pip install numpy pip install pillow
- genFacialData.py : để tạo ra dữ liệu khuôn mặt để lưu trong folder data
- classifier.py : train data cho model
- main.py: file nhận diện khuôn mặt
genFacialData
- capture liên tục ảnh từ camera
- 3 hàm con
- generate_dataset để lưu ảnh capture jpg
- draw_boundary mảng lưu tọa độ khuôn mặt
- detect: dùng tọa độ từ draw_boundary để render ra ô vuông bao quanh mặt sau đó dùng generate_dataset để tạo dataset. Mỗi lần chạy file nhớ đổi user_id để tạo dataset cho người riêng biệt
- hàm main
- mở cam
- sau đố chạy hàm detect
- có thể thêm hàm time.delay(2) trong while True để làm chậm tốc độ cap ảnh (cần import time trc)
classifier.py
- đọc ảnh cap đc từ data rồi write vào file classifier.xml
main.py
- 2 hàm con:
- draw_boundary giống trong genFacialData. đặt tên người trong cv2.putText mapping theo id đã được train ở hàm genFacial data.
- recognize: nhận diện vào ghi tên người (dựa trên data dc train)
- hàm main:
- bộ nhận diện faceCascade cv2 đọc từ file haarcascade_frontalface_default.xml
- mở và chạy hàm recognize để nhận diện
- 2 hàm con:
Download Category | Python, Scripts & Code |
Product Homepage URL→ | |
Product Version | |
File Type | Py, PPTX |
File Size | 8.77 MB |
Developer | |
Documentation |