.3 Minh họa các Eigenfaces

Một phần của tài liệu Nghiên cứu xây dựng phần mềm nhận dạng mặt người theo thời gian thực (Trang 35 - 37)

2.2.6 Nhận dạng khuôn mặt bằng các Eigenfaces

Cho 1 ảnh khuôn mặt chưa biết là ai (khn mặt giống tập mẫu – chính diện và cùng kích thước). Giai đoạn nhận dạng này giống hệt giai đoạn biểu diễn ảnh khuôn mặt trong tập mẫu. Ta thực hiện lần lượt các bước sau:

Bước 1: Chuẩn hóa r:

𝑡 = 𝑟𝑖 − 𝑟

Các Eigenface (vector cơ sở ui của không

gian khuôn mặt) Khuôn mặt ri có

thể biểu diễn là tổ hợp tuyến tính của

các vector cơ sở

Các wj của vector i (đây chính là tọa độ trong khơng gian khn mặt )

(10)

(11)

21

Bước 2: Biểu diễn t thành  như sau:

Ω𝑖 = [ 𝑈1𝑇𝑡𝑖 𝑈2𝑇𝑡𝑖 … 𝑈𝐾𝑇𝑡𝑖]

Bước 3: Tìm khn mặt thứ l trong tập mẫu có khoảng cách gần nhất với khuôn mặt

cần nhận dạng.

𝑒𝑟 = 𝑚𝑖𝑛𝑙|Ω − Ω𝑙|

Bước 4: Phân loại và nhận dạng

Sau khi trích chọn được vector đặc tính, chúng ta cần đối chiếu vector này với cơ sở dữ liệu, từ đó đưa ra kết quả nhận dạng. Trong bài toán, kết quả nhận dạng sẽ là nhận biết được hoặc chưa nhận biết được.

Để thực hiện phân loại có rất nhiều phương pháp như khoảng cách Euclides, mạng Noron, SVM,… trong đó khoảng cách Euclides là phương pháp đơn giản nhất. Nó cho kết quả tốt đối với trường hợp đối tượng đã được tạo thành các nhóm cách xa nhau. Vector đặc tính của đối tượng cần nhận dạng sẽ được so sánh lần lượt với vector đặc tính của từng ảnh mẫu trong tập các ảnh học. Các khoảng cách ngắn nhất sẽ được lưu lại.

Nếu er < Tr (Tr là 1 ngưỡng chấp nhận được nào đó):

Tức ảnh khn mặt cần xác định “đủ gần” với ảnh của người thứ l trong tập mẫu. Khi đó, ta kết luận đó chính là khn mặt của người thứ l.

Ta có thể sử dụng khoảng cách Euclid để tính er. Tuy nhiên, người ta chứng mình được rằng, kết quả sẽ tốt hơn nếu dùng khoảng cách “Mahalanobis”:

(13)

(14)

22

2.3 Thư viện thị giác máy tính mã nguồn mở OpenCV.

Để hỗ trợ cho việc xây dựng và thiết kế ứng dụng thực nghiệm trong đề tài này, chúng ta sẽ tìm hiểu về thư viện hỗ trợ trong việc xử lý ảnh OpenCV của Intel.

OpenCV là viết tắt của Open Source Computer Vision Library [4].Nó chứa hơn 500 hàm sử dụng trong thị giác máy (computer vision). OpenCV là một thư viện mã nguồn mở (open source) http://sourceforge.net/. Thư viện được viết bằng ngôn ngữ C và C++ có thể chạy trên các hệ điều hành Linux, Window và Mac OS X. OpenCV được thiết kế để nâng cao hiệu suất tính tốn và nhấn mạnh đến hệ thống thời gian thực. Một điều tuyệt vời của OpenCV là nó đưa ra một hệ thống đơn giản, dễ sử dụng giúp mọi người nhanh chóng xây dựng các ứng dụng trong thị giác máy, kể cả các hệ thống kiểm tra trong nhà máy, bức ảnh trong lĩnh vực y học, bảo mật, rơ bốt học v..v. Nó chứa các lệnh lập trình xử lý ảnh rất đơn giản, kể cả thực thi các hàm bậc cao như dị tìm khn mặt, theo dõi khn mặt, nhận dạng khuôn mặt.

Kể từ khi được giới thiệu vào tháng 1 năm 1999, OpenCV đã được sử dụng trong rất nhiều ứng dụng, các sản phẩm và các nghiên cứu. Ví dụ trong lĩnh vực hàng khơng vũ trụ, bản đồ web, sử dụng giảm nhiễu trong y học, phân tích đối tượng, an ninh, hệ thống dị tìm, theo dõi tự động và hệ thống bảo mật, quản lý hệ thống sản xuất, xử lý camera, ứng dụng trong quân sự, hệ thống hàng không không người lái, trên mặt đất, các tàu ngầm.

Một phần của tài liệu Nghiên cứu xây dựng phần mềm nhận dạng mặt người theo thời gian thực (Trang 35 - 37)

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

(57 trang)