3.2.2 Huấn luyện:
a. Các tham số hằng sử dụng với profile model:
Trước khi làm việc với tập huấn luyện, ta nên tạo một file .h chứa các thư viện cơ bản và các hằng sẽ sử dụng sau này. Phần này sẽ giới thiệu một số hằng được sử dụng khi thao tác với profile model trong chương trình [19].
47
- nVer: Số lượng đỉnh của các shape trong tập huấn luyện. Hay có thể gọi là số lượng các điểm landmark được đánh đấu trong mỗi ảnh huấn luyện.
- nShape: Số lượng shape trong tập huấn luyện.
Đây là 2 thông tin cơ bản của tập huấn luyện. Mặc dù thông tin này đã được ghi trong các file mô tả nhưng việc tạo các hằng thế này sẽ giúp ta dễ kiểm soát chương trình hơn cũng như việc hạn chế tạo các biến chứa số lượng đỉnh và shape khi viết chương trình. Khi thay đổi tập huấn luyện, ta chỉ cần thay đổi 2 tham số tương ứng với tập huấn luyện mới.
- nProfWidth: Độ dài của profile. Hay nói cách khác đó là số lượng pixel ảnh sẽ lấy mẫu tại các điểm landmark. Lấy ví dụ, nProfWidth = 11, nghĩa là ta sẽ lấy mẫu ảnh tính từ điểm landmark là +5 pixel và -5 pixel. Ta lấy nProfWidth=17 theo như kết quả thí nghiệm của [19]. Hằng số này cũng là độ dài của whisker.
b. Quá trình huấn luyện:
Sau khi hoàn thành quá trình huấn luyện ta sẽ được các dữ liệu sau: Profile trung bình, khuôn mặt trung bình (shape trung bình), profile của mỗi ảnh trong tập huấn luyện, ma trận hiệp phương sai của các profile đó.
Với khuôn mặt trung bình, ta cần phải align các shape trong tập huấn luyện trước. Sau đó, áp dụng công thức để suy ra khuôn mặt trung bình. Lưu ý, nên lưu các shape đã align ra một thư mục riêng.
Với profile trung bình, ta cần tạo các profile cho mỗi điểm landmark của toàn bộ
ảnh huấn luyện. Tức là, nếu ta có n ảnh, mỗi ảnh có nVer landmark thì ta sẽ có n ×
nVer profile. Ta nên ghi các profile của mỗi shape ra một file riêng và đặt tên file trùng tên với file ảnh tương ứng.
Với ma trận hiệp phương sai các profile huấn luyện, việc tạo thành có hơi phức tạp hơn một chút. Ta lần lượt duyệt qua từng điểm landrmark và áp dụng công thức tính ma trận hiệp phương sai cho tất cả các điểm tương ứng của tất cả các ảnh profile huấn luyện. Vd, để tính ma trận hiệp phương sai cho điểm landmark 1, ta áp dụng công thức cho tất cả các điểm landmark 1 của mọi ảnh huấn luyện và làm tương tự với các điểm còn lại.
Chi tiết về công thức tính ma trận hiệp phương sai. Giả sử, ta huấn luyện n ảnh và
các shape với nVer đỉnh. Sau khi tạo thành các profile cho mỗi ảnh, ta có được các profile với kích thước (nProfWidth × 1). Thế vào công thức (2.7), ta có:
= 1
− 1 − −
= ( × )
Như vậy, sau khi áp dụng công thức tính hiệp phương sai cho một điểm, ta sẽ được
một ma trận có kích thước ( × ). Làm tương tự cho các
điểm còn lại, ta được nVer ma trận hiệp phương sai tương ứng. Lưu tất cả các ma trận vào một file. Các ma trận được sắp xếp theo thứ tự các điểm landmark.
48
Lưu ma trận thành file dưới format sau: <số lượng điểm landmark> <kích cỡ ma trận> <ma trận hiệp phương sai của điểm landmark 1> <ma trận hiệp phương sai của điểm landmark 2> <ma trận hiệp phương sai của điểm landmark 3> …