Triển khai

Một phần của tài liệu Phát hiện mặt người trong ảnh theo hướng tiếp cận thành phần (Trang 29)

Ảnh khuôn mặt nói riêng và ảnh số nói chung đƣợc biểu diễn thông qua các giá trị của mỗi điểm ảnh. Với một ảnh khuôn mặt đa cấp xám I có kích thƣớc r x c, chúng ta có thể nói rằng mỗi ảnh khuôn mặt đó là một lƣới các điểm ảnh với r hàng và c cột. Tổng số điểm ảnh của mỗi bức ảnh sẽ là N = rc. Ảnh I đơn giản là một ma trận với mỗi thành phần là một giá trị 8 bit đƣợc biểu diễn thông qua từng điểm ảnh riêng biệt.

Bây giờ bức ảnh đang xét đƣợc coi nhƣ một vector với độ dài N hay nói cách khác là một điểm trong không gian N chiều. Xét một ví dụ với một ảnh đa cấp xám có kích thƣớc 128 x 128, ảnh này sẽ là một điểm trong không gian 16384 chiều. Một cách trực quan ta thấy rằng, khi kích thƣớc của ảnh tăng lên, thì giá trị N, số chiều của không gian ảnh cũng tăng theo.

26

Vì những ảnh khuôn mặt là tƣơng tự nhau nên những điểm biểu diễn ảnh khuôn mặt trong không gian ảnh sẽ không bị phân tán ngẫu nhiên trong không gian rộng mà sẽ hội tụ trong một vùng nhỏ của không gian ảnh. Có thể hiểu một cách hình thức nhƣ sau:

Hình 2.6: Mô tả hình thức không gian các ảnh khuôn mặt trong không gian ảnh

Từ tập dữ liệu là một tập ảnh của một vài ngƣời, ta biểu diễn là một vector N chiều với M là tổng số vector.

Tiếp theo ta tính khuôn mặt trung bình của tập dữ liệu:

Tiếp theo ta trừ mỗi ảnh khuôn mặt trong tập dữ liệu cho ảnh trung bình:

27

Tiếp theo ta tính các vector riêng và giá trị riêng của ma trận hiệp phƣơng sai.

Vì mỗi bức ảnh đƣợc coi nhƣ một vector N chiều, và nhƣ vậy ma trận hiệp phƣơng sai C sẽ có kích thƣớc là N2. Đây là một ma trận khổng lồ và việc tính toán hết các vector riêng là coi nhƣ không thể. Một ví dụ đơn giản: Nếu ảnh khuôn mặt huấn luyện có kích thƣớc 128 x 128 vector ảnh sẽ có chiều dài là 16384, và đƣơng nhiên nó sẽ cho ta ma trận hiệp phƣơng sai 16384 x 16384 và thật sự ta sẽ phải trả giá đắt cho việc tính toán trên ma trận hiệp phƣơng sai nhƣ vầy.

Tại đây ta có thể tận dụng một kết quả của đại số để giảm nhẹ chi phí tính toán.

Đầu tiên ta xét ma trận A nhƣ sau:

Coi vi là vector riêng ứng với giá trị riêng i của ma trận ATA. Ta có:

Thực hiện biến đổi nhân cả hai vế với A, ta có:

Từ đây ta nhận thấy Avi là vector riêng của ma trận hiệp phƣơng sai C với i là giá trị riêng tƣơng ứng. Tức là ta có thể giải quyết bài toán trên ma trận M x M thay vì ma trận N x N nhƣ cũ. Tức là nếu với 100 ảnh huấn luyện có kích thƣớc 128 x 128, ta có thể giải quyết ma trận 100 x 100 thay cho 16384 x 16384 nhƣ cũ.

28

Có một vấn đề là khi tính toán ta nên lấy bao nhiêu eigenface thì đủ. Theo Sirovich và Kirby thì với tập dữ liệu 115 bức ảnh mà họ đã sử dụng, 40 eigenface là một lựa rất tốt.

Bây giờ ta cần thực hiện việc phát hiện khuôn mặt với ảnh đầu vào. Nhiệm vụ cụ thể là với 1 ảnh đầu vào ta trả lời câu hỏi ”Ảnh đó có phải ảnh khuôn mặt không ?”.

Đầu tiên ta chiếu ảnh đó vào không gian mặt, tính vector trọng số:

Trong đó M' là số vector riêng tốt nhất đƣợc chọn.

Để phân lớp ta tính khoảng cách đến không gian mặt, khoảng cách đó đƣợc tính nhƣ sau:

Trong đó

Một phần của tài liệu Phát hiện mặt người trong ảnh theo hướng tiếp cận thành phần (Trang 29)

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

(67 trang)