Code chương trình

Một phần của tài liệu ĐỒ ÁN MÔN CƠ SỞ 5 ĐỀ TÀI: CHƯƠNG TRÌNH NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH. Giảng viên hướng dẫn :TS. Đặng Quang Hiển (Trang 25 - 33)

4.2.1 Khai báo thư viện

Đầu tiên chúng ta cần khai báo và cài đạt các thư viện cần thiết:

o Numpy (Numeric Python): là một thư viện toán học phổ biến và mạnh mẽ của Python. Cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng “core Python” đơn thuần.

o OS là một module tích hợp sẵn với Python, module này cho phép chúng ta thao tác với tệp và thư mục. Hãy cùng tìm hiểu về những tính năng và phương thức mà module os mang lại. Đầu tiên để sử dụng module os, hãy import module os bằng lệnh import

o Pyodbc là một mô-đun Python mã nguồn mở giúp việc truy cập cơ sở dữ liệu ODBC trở nên đơn giản. Nó triển khai đặc tả DB API 2.0 nhưng

Hình 17 Khai báo thư viện

4.2.2 Lưu ảnh và tên vào danh sách

• Đầu tiên chúng ta sẽ viết một hàm để nhập tất cả các hình ảnh trong một thư

mục có tên là “ImageAttendance” cùng một lúc. Đối với điều này, chúng tôi sẽ cần thư viện os vì vậy chúng ta sẽ nhập nó trước.

• Tiếp theo thực hiện tách tên và hình ảnh tương ứng

• Sau đó sẽ lưu trữ tất cả các hình ảnh trong một danh sách và tên của chúng

trong một danh sách khác.

Hình 18 Lưu ảnh và tên vào danh sách

4.2.3 Mã hóa danh sách các ảnh

làm điều này, chúng ta sẽ tạo một hàm. Trước tiên chúng ta sẽ chuyển đổi nó thành RGB và sau đó tìm mã hóa của nó bằng cách sử dụng hàm face_encodings (). Sau đó, chúng tôi sẽ thêm từng bảng mã vào danh sách của chúng

Hình 19 Mã hóa danh sách các ảnh

4.2.4 Đọc hình ảnh từ webcam

Đầu tiên, chúng tôi sẽ đọc hình ảnh từ webcam và sau đó thay đổi kích thước của nó thành một phần tư kích thước. Điều này được thực hiện để tăng tốc độ của hệ thống. Mặc dù hình ảnh đang được sử dụng có kích thước bằng 1/4 so với hình ảnh gốc, chúng tôi vẫn sẽ sử dụng kích thước ban đầu khi hiển thị. Tiếp theo, chúng tôi sẽ chuyển đổi nó sang RGB.

Hình 20 Đọc hình ảnh từ webcam

Khi chúng ta có khung webcam, chúng ta sẽ tìm thấy tất cả các khuôn mặt trong hình ảnh của chúng ta bằng hàm face_locations. Sau đó, chúng ta cũng sẽ mã hóa chúng bằng hàm face_encodings().

Hình 21 Mã hóa webcam

4.2.6 Tìm kết quả phù hợp.

Bây giờ chúng tôi có thể khớp các mã hóa khuôn mặt hiện tại với danh sách mã hóa các khuôn mặt đã biết để tìm các kết quả phù hợp. Chúng ta cũng sẽ tính toán khoảng cách. Điều này được thực hiện để tìm ra kết quả phù hợp nhất trong trường hợp nhiều hơn một khuôn mặt được phát hiện cùng một lúc.

Hình 22 Khớp các mã hóa và tính toán khoảng cách

4.2.7 Nhận dạng và xác định tên người đó

Bây giờ dựa trên giá trị chỉ mục, chúng ta có thể xác định khuôn mặt với hình chữ nhật được vẽ ra và tên của người đó và hiển thị nó trên hình ảnh .Nếu kiểm tra giá trị tính toán khoảng cách lớn hơn 0.5 thì điều này có nghĩa là người đó không xác định, vì vậy chung ta sẽ đổi tên hiển thị thành “unknown”

4.2.8 Kết nối cơ sở dữ liệu và bảng cơ sở dữ liệu

Kết nối cơ sở dữ liệu và lưu những giá trị xạc định được tại thời điểm nhận dang:tên, thời gian,ngày tháng

Hình 24 Kết nối và lưu cơ sở dữ liệu

Bảng cơ sở dữ liệu:

Hình 25 Bảng cơ sở dữ liệu

Hình 26 Demo nhận diện

Sau khi nhận diện thành công hệ thống sẽ lưu lại tên và thời gian xuất diện vào trong bảng cơ sở dữ liệu

Chương 5 Kết luận và hướng phát triển

5.1 Kêt luận

Qua tìm hiểu bài toán nhận diện khuôn mặt trong ảnh chúng em đã thấy được sự quan trọng của xử lý ảnh cũng như sự phát triển và tầm quan trọng của bài toán nhận diện mặt người trong đời sống. Trong quá trình xây dựng chương trình em đã tìm hiểu về thư viện mã nguồn mở OpenCV. Qua đó biết cách sử dụng các hàm được xây dựng sẵn trong thư viện OpenCV.

Đề tài đã phát triển một hệ thống đơn giản gồm 4 phần, cụ thể là (a) Xử lý ảnh và video đầu vào, (b) Phân chia thành các khung, (d) Phát hiện khuôn mặt người dùng, (e) hiển thị tên và (f)là điểm danh. Mỗi thành phần này có thể được thực hiện bằng các thuật toán cụ thể khác nhau dựa trên các yêu cầu.

Tuy nhiên hệ thống vẫn còn một số hạn chế sau:

• Hệ thống không hoạt động, nếu thời điểm nhận diện có vào ban đêm và nơi có

ánh sáng quá mạnh.

• Hệ thống không hoạt động cần chi phí đầu vào cao để thiết lập các hệ thống

cần thiết.

• Hoạt động chưa hoàn toàn hiệu quả với người sử dụng khẩu trang và kính mát.

• Hệ thống điểm danh vẫn chưa tối ưu khi vẫn ghi lại những người không xác

định

5.2 Hướng phát triển

Sau đây là một số các cải tiến có thể được thực hiện trong tương lai của hệ thống này:

Chúng tôi sẽ cố gắng cải thiện, tối ưu hóa ứng dụng

Τối ưu nhận diện trong các điều kiện khó khăn như ánh sáng , đeo khẩu trang , … và thêm thông tin như lớp, giới tính, ID … trong thời gian tới.

DANH MỤC TÀI LIỆU THAM KHẢO:

[1] opencv-python · PyPI.

[2] face-recognition · PyPI

[3] Step 3: Connecting to SQL using pyodbc - Python driver for SQL Server |

Một phần của tài liệu ĐỒ ÁN MÔN CƠ SỞ 5 ĐỀ TÀI: CHƯƠNG TRÌNH NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH. Giảng viên hướng dẫn :TS. Đặng Quang Hiển (Trang 25 - 33)

Tải bản đầy đủ (DOC)

(33 trang)
w