Hình 3.4: Cách đặt vị trí các điểm mẫu trên giao phần giữa mặt phẳng mẫu và bề mặt của mô hình khuôn mặt mục tiêu và mô hình khuôn mặt biến đổi.
Lƣu ý rằng cả hai đƣờng cong đều nằm trên cùng mặt phẳng Pi. Ta cắt những đƣờng cong này để có đƣợc đỉnh bắt đầu và đỉnh kết thúc của chúng trên cùng tọa độ
y: Ybắt đầu và Ykết thúc. Ta lấy một phần các đƣờng cong nằm ngoài vùng này và đƣa vào hàm sai số, rồi lấy mẫu n đỉnh SMij và STij (j0..n1) trên mỗi đƣờng cong. SMij
và STij có cùng tọa độ y, đƣợc xác định bởi: Çu b¾t đ y + 1 ) ( n y y j kÕt thóc b¾t đÇu
Để tìm một điểm mẫu SMij, ta chỉ phải đi qua tất cả các đỉnh et1,et2,,etNT
và tìm kiếm cặp (etk,etk1) mà tọa độ y của SMij nằm trong khoảng tọa độ y của etk
Bởi vì SMij và STij có cùng tọa độ y, nên đƣờng đi qua SMij và STij vuông góc với đƣờng trung tâm l của phép chiếu. Do đó, STij là phép chiếu hình trụ của
ij
SM lên mô hình khuôn mặt mục tiêu. Vậy nên, sau khi hoàn thành quá trình lấy mẫu, phép chiếu của các điểm lấy mẫu đƣợc xác định ngay mà không gây mất thời gian tính toán. Mức độ phức tạp của phƣơng pháp lấy mẫu mà tôi trình bày trên đây nằm ở chỗ phải xác định đƣợc đƣờng cong giao phần giữa mặt phẳng Pi và lƣới mặt. Những tính toán để xác định đƣờng cong giao phần đó có thể rất tốn thời gian nếu tôi chỉ đơn thuần kiểm tra xem mặt phẳng đó có cắt mọi đa giác của lƣới mặt hay không. Bùi Thế Duy và cộng sự [9] khắc phục vấn đề này bằng cách rà soát từ đỉnh đầu xuống mỗi lƣới mặt, đi qua cấu trúc đa giác của lƣới. Bắt đầu từ một điểm có tọa độ y cao nhất trên đƣờng cong, họ chỉ kiểm tra những đa giác có liên quan, để tìm ra điểm kế tiếp trên đƣờng cong. Họ tiếp tục công việc này cho đến khi không tìm đƣợc thêm điểm nào trên đƣờng cong nữa.
Vì đỉnh đầu nằm trên mặt phẳng Pi, nên đây là đỉnh đầu tiên trên đƣờng cong. Ta gọi nó là “cạnh hiện thời” trên lƣới mặt giao với Pi (điểm là một cạnh đặc biệt, với độ dài của cạnh bằng 0). Sau đó, ta chỉ kiểm tra những giao phần giữa mặt phẳng Pi và các cạnh nối với “cạnh hiện thời”. Cạnh mới giao với Pi lại trở thành “cạnh hiện thời” mới. Bùi Thế Duy và cộng sự [9] đánh dấu tất cả các cạnh tìm đƣợc để tránh việc quay lại những cạnh mà họ đã kiểm tra. Quá trình này chấm dứt khi Pi không còn cắt thêm cạnh nào khác (mà nối với “cạnh hiện thời” nhƣng chƣa đƣợc đánh dấu).
Sau khi tất cả các điểm mẫu và phép chiếu của chúng lên mô hình khuôn mặt mục tiêu đã đƣợc xác định, Bùi Thế Duy và cộng sự [9] tính đƣợc hàm sai số nhƣ sau:
m i n j ij ij ST SM E 1 1 2
trong đó, là tổng các phần đƣờng cong nằm ngoài vùng mà ta đã mô tả ở trên (khi cắt rời các đƣờng cong giao phần).
3.5 Sử dụng GA điều chỉnh các điểm đánh dấu
Quay lại Phần 2.3, chúng ta biết rằng một số điểm đánh dấu trên mô hình khuôn mặt mục tiêu có thể đƣợc xác định tự động. Các điểm đánh dấu còn lại thuộc loại “không tự phát hiện”. Bùi Thế Duy và cộng sự [9] dùng các thuật toán di truyền học để điều chỉnh những điểm đánh dấu không tự phát hiện trên mô hình khuôn mặt mục tiêu để giảm thiểu sự khác biệt giữa mô hình khuôn mặt biến đổi và mô hình khuôn mặt mục tiêu. Các thuật toán di truyền học tìm biến thể tối ƣu của các điểm đánh dấu để làm giảm hàm sai số đã đƣợc mô tả ở phần trƣớc.
Quá trình GA bắt đầu với một tập hợp ngẫu nhiên các nghiệm, đƣợc biểu diễn là các nhiễm sắc thể. Bởi vì ta muốn giới hạn tìm kiếm chỉ quanh các điểm đánh dấu ban đầu, nên mỗi nghiệm của quá trình GA là biến thể của điểm đánh dấu trên mô hình khuôn mặt mục tiêu [9]. Trong phép điều chỉnh này, mỗi biến thể của điểm đánh dấu là một điểm bất kỳ nằm bên trong khối lập phƣơng có cạnh cho trƣớc, và điểm đánh dấu ban đầu chính là trung tâm của khối (xem Hình 3.5). Ta rút các nghiệm ra từ một tổng thể và sử dụng chúng để tạo nên một tổng thể mới. Sau đó những nghiệm mới lại đƣợc lựa chọn dựa trên mức độ thích nghi của chúng. Các nghiệm này càng phù hợp, thì chúng càng có cơ hội tái sinh (đƣợc chọn tiếp). Trong trƣờng hợp này, hàm thích nghi là hàm nghịch đảo của hàm sai số.