Màu trắng là whisker
- Chuyển các giá trị mức xám của g thành cường độ gradient bằng cách thế mỗi giá trị tại vị trí i của g bằng trị trung bình giữa nó và i + 1.
=
- Sau khi thực hiện bước trên, ta chia mỗi giá trị cho trị tuyệt đối của tổng tất cả các giá trị của g
Xây dựng profile model trong quá trình huấn luyện [19]:
Trong quá trình huấn luyện, với mỗi ảnh trong tập huấn luyện, ta tiến hành xây dựng các profile cho mỗi điểm landmark trong ảnh. Sau đó, ta tính được profile
trung bình và ma trận hiệp phương sai Ví dụ, nếu chiều dài của profile g là 7 thì
Nếu bộ huấn luyện có 20 điểm landmark thì ta sẽ có 20 profile trung bình ma trận hiệp phương sai
Trong đó: - i = 1..n
- n: số lượng điểm landmark - m: số lượng ảnh huấn luyện Tạo thành shape kiểm thử [19]:
Bắt đầu với khuôn mặt khởi tạo (start shape) lấy được từ phương pháp phát hiện khuôn mặt, tại mỗi điểm landmark của khuôn mặt khởi tạo, ta tiến hành lấy mẫu profile của các điểm dọc theo whisker đi qua điểm đó và chọn ra điểm có profile tốt nhất.
Việc đánh giá profile được tính dựa trên khoảng cách giữa nó với profile trung bình tương ứng với điểm đó từ bộ huấn luyện. Profile nào có khoảng cách ngắn nhất so với profile trung bình thì điểm tương ứng với profile đó được chọn làm điểm kiểm thử (suggested point). Tập hợp các điểm kiểm thử có được sau khi tìm kiếm với các điểm landmark cịn lại, ta được shape kiểm thử.
Khoảng cách được sử dụng để đánh giá là khoảng cách Mahalanobis được tính như sau:
Bảng 2.2 Thuật toán tạo thành shape kiểm thử
Input: Ảnh đầu vào
1. Phát sinh shape khởi tạo bằng cách định vị khuôn mặt qua phương pháp phát hiện khuôn mặt
2. Repeat:
3. For: với mỗi điểm landmark của shape khởi tạo
a. For: Với mỗi điểm ảnh nằm trên whisker đi qua điểm landmark
i. Tạo profile của điểm đó bằng cách lấy mẫu vùng ảnh xung quanh nó
ii. Đánh giá profile mới tạo so với tập huấn luyện
b. Chọn ra profile tốt nhất.
4. Chọn điểm landmark tương ứng với profile tốt nhất làm điểm
Output : tọa độ của các điểm kiểm thử và shape kiểm thử
(2.8)
Chi tiết về việc tìm shape khởi tạo sẽ được trình bày ở phần sau.
b. Shape model:
Nhiệm vụ của shape model là biến shape kiểm thử được sinh ra từ profile model thành khn mặt (face shape) chính thức. Trước đó, ta cần phải align tất cả các shape trong tập huấn luyện.Việc align là cần thiết vì ảnh huấn luyện rất đa dạng gây khó khăn cho việc tính shape trung bình. Sau khi align xong, ta tính được shape trung bình từ tập shape đã align. Khi đó, một shape bất kì có thể được định nghĩa bằng cơng thức sau [19][20]:
= + Φ
Trong đó:
là shape được sinh ra
̅ là shape trung bình được tính từ các shape huấn luyện đã được align:
= ∑ % (2.10)
% &
Φ là ma trận vector riêng (matrix of eigenvectors) của ma trận hiệp phương sai
(convariance matrix) tính từ tập huấn luyện
= ∑ ( − )( − ) (2.11)
Từ ma trận hiệp phương sai, ta tính được các trị riêng (eigenvalues) của nó. Sắp xếp các trị riêng giảm dần, với mỗi trị riêng, ta tính được các vector riêng. Tập hợp các vector riêng, ta có được ma trận vector riêng.
Lưu ý rằng, ta khơng sử dụng hết các trị riêng tìm được. Sau khi sắp xếp giảm dần, ta sẽ thấy có một số trị riêng cao hơn hẳn các giá trị còn lại. Ta chỉ sử dụng các vector riêng tính từ các trị riêng này. Để lựa chọn được các trị riêng như vậy, ta thỏa mãn bất đẳng thức sau:
(2.11)
(2.12) Trong đó:
λi: Trị riêng thứ i
fv: tỉ lệ thay đổi mong muốn (thường chọn là 0.98)
Với cơng thức (2.9), ta có thể suy ra được rất nhiều shape khác nhau bằng cách thay đổi giá trị tham số vector b. Vậy, để có được khn mặt chính thức từ shape kiểm thử, ta tiến hành đi tìm b.
Gọi x là shape kiểm thử, Ta tìm b sao cho khoảng cách sau là nhỏ nhất
Cơng thức trên có nghĩa rằng, shape được sinh ra từ b phải có khoảng cách so với shape kiểm thử là nhỏ nhất. Phép align T là cần thiết vì x có thể ở bất cứ đâu trong ảnh và ta phải tiến hành đưa shape mới tìm được về đúng vị trí của khn mặt trên ảnh.
Để tìm b, ta làm các bước sau [20]: - Gọi Y là shape kiểm thử. - Khởi tạo vector tham số b = 0.
- Phát sinh shape theo công thức = + Φ với b vừa khởi tạo
- Tìm các tham số của phép align (s, Φ, tx, ty) T để x align vào shape kiểm thử. Tuy nhiên, ta không thực hiện phép align này.
- Thế các tham số vừa tìm được vào phép align ngược lên shape kiểm thử Y: (2.14) Phép align ngược lên một shape là phép biến hình sao cho:
ℎ+ = (ℎ+) (2.15)
Ta chỉ cần đảo các tham số và thế vào công thức phép biển đổi tương tự để thực hiện phép align này (1/s, -Φ, -tx, -ty)
- Thực hiện phép tỉ lệ:
=( ).
Lưu ý, phép nhân ( . ) là tích vô hướng giữa 2 vector. - Cập nhật lại tham số b:
(2.16) - Đặt b trong một ngưỡng nhất định.
Sau khi tính b ta tiến hành đưa nó về một ngưỡng nhất định để chắc rằng, shape được sinh ra là gần với shape kiểm thử x nhất. Trong quá trình thực hiện, các phần
tử trong b được đặt trong ngưỡng từ [−3 , 3 ] [19][20].
Hình 2.13 Bên trái: shape kiểm thử
CHƯƠNG 3:
KINH NGHIỆM THỰC HIỆN TRONG QUÁ TRÌNH TRIỂN KHAI PHƯƠNG PHÁP
Chương này sẽ trình bày cách thức triển khai 2 thuật tốn. Đồng thời truyền đạt lại những kinh nghiệm và khó khăn gặp phải trong q trình cài đặt và thực hiện phương pháp MoCap này.
3.1 Quá Trình Thực Hiện Viola-Jones:3.1.1 Huấn luyện: 3.1.1 Huấn luyện:
a. Tạo bộ huấn luyện:
Như đã trình bày ở trên, ta sẽ làm việc với các đặc trưng Haar-Like của tập ảnh huấn luyện. Để lấy các đặc trưng Haar-Like cũng như kết xuất file chứa thơng tin của q trình huấn luyện, ta down bộ công cụ tại trang blog:
http://nayakamitarup.blogspot.com
Đây là trang blog chia sẻ kinh nghiệm của một kĩ sư làm việc trong lĩnh vực xử lí ảnh [4].
Giải nén ta được như sau:
Hình 3.1
Chuẩn bị một bộ ảnh để huấn luyện gồm 2 loại ảnh: Negative Image (ảnh không chứa khuôn mặt người - ảnh nền) và Positve Image (Ảnh chứa khuôn mặt người). Negative cần khoảng 3000 ảnh, Positive cần 1000-2000 ảnh.