Cài đặt chương trình thực nghiệm, kết quả và đánh giá
4.5.3 Hướng phát triển
Ta biết rằng bài tốn nhận dạng khn mặt người vốn được nghiên cứu từ những năm 1970, và cho đến nay, rất nhiều nghiên cứu lẫn ứng dụng cho bài toán này đã ra đời. Tuy nhiên, bài tốn nhận dạng khn mặt người vẫn cịn nhiều khó khăn , thử thách bởi những biến đổi rất đa dạng, phong phú trên khn mặt. Do đó, có rất nhiều phương pháp khác nhau để giải quyết bài toán này. Với cách giải quyết dùng Gabor Wavelet và AdaBoost mà chúng tôi đã áp dụng cũng chỉ được các chuyên gia tiến hành nghiên cứu trong khoảng chục năm trở lại đây. Với
những hạn chế về mặt kiến thức, trình độ cũng như thời gian thực hiện, chúng tơi kết thúc đề tài này với nghiên cứu một phần nhỏ về bài toán nhận dạng mẫu trong thị giác máy tính cũng như khoa học máy tính nói chung. Những định hướng đưa ra dưới đây, chúng tơi hy vọng sẽ có thể thực hiện được để ngày càng hoàn thiện khả năng tương tác giữa người và máy tính thơng qua hệ thống nhận dạng khn mặt.
Để có thể tìm ra bộ phân loại tốt và đạt hiệu quả cao nhất, đồng thời cố gắng tận dụng tối đa số lượng mẫu trong không gian ES để kết hợp với các mẫu trong không gian IS tạo thành một tập huấn luyện cho AdaBoost. Chúng tơi sẽ sử dụng cấu trúc phân tầng để tìm ra bộ phân loại mạnh dùng cho quá trình phân lớp. Cấu trúc phân tầng đã được áp dụng rất thành công vào các ứng dụng khác nhau. Hệ thống của Rowley [9] để giải quyết bài toán xác định vị trí khn mặt người là mơt cấu trúc phân tầng với hai mạng nơron nhân tạo: mạng nơron nhân tạo thứ nhất khá đơn giản nhằm mục đích chính là loại bỏ các hình nền có độ khó thấp, mạng nơron nhân tạo thứ hai phức tạp hơn, đảm nhiệm việc nhận dạng các mẫu đi qua mạng nơron nhân tạo thứ nhất. Điều này chứng tỏ cách tổ chức phân tầng nhằm loại nhanh các mẫu có độ phức tạp thấp thực sự đẩy nhanh tốc độ của hệ thống, ngồi ra cịn có mơ hình Cascade of Boosted Classifiers do Viola và Jones đưa ra để giải quyết bài tốn xác định vị trí khn mặt người, Cascade of Boosted Classifiers là mơ hình Cascade of Classifers với mỗi bộ phân loại được xây dựng bằng AdaBoost sử dụng Haar Feature [8, 20].
Chúng tôi sẽ sử dụng cấu trúc phân tầng bao gồm nhiều tầng, mỗi tầng sẽ được huấn luyện bằng AdaBoost, trên mỗi tầng tập mẫu huấn luyện sẽ được chọn lại, ta gọi đây là quá trình tái lấy mẫu, các mẫu trong không gian IS sẽ được cố định và khơng đổi, trong khi đó các mẫu trong khơng gian ES sẽ được tái lấy mẫu. Trên mỗi tầng sẽ xây dựng được một bộ phân loại mạnh Hi và một phân loại mạnh thu được sau quá trình huấn luyện đa tầng là sự kết hợp tuyến tính từ các bộ phân loại mạnh trên mỗi tầng:
1c c i i H H = = (4.1) trong đó c là số tầng.
Mơ hình phân tầng để huấn luyện được mơ tả trong bảng 8.
1. Tạo ngẫu nhiên một tập S làm tập mẫu huấn luyện. Trong S bao gồm tất cả các mẫu dương tính trong khơng gian IS và chọn ngẫu nhiên các mẫu trong không gian ES làm mẫu âm tính có số lượng gấp 12 lần số lượng mẫu dương tính. Gọi N là kích thước của tập mẫu này.
2. For i = 1 : c
2.1. Dùng AdaBoost huấn luyện một bộ phân loại mạnh Hi dựa trên tập mẫu S.
2.2. Tái lấy mẫu, cập nhật lại S. Tập S lúc này bao gồm các mẫu dương tính giống như ở tầng trước, các mẫu âm tính được chọn ngẫu nhiên trong không gian ES thỏa điều kiện các mẫu này bị phân loại sai lớp bởi bộ phân loại mạnh ở tầng trước. Tập S cũng có kích thước là N.
3. Bộ phân loại mạnh H : 1 c i i H H = = hay : 1 1 ( ) ( ) c T t t i t i H x sign h x = = =
Trong nhiều trường hợp, huấn luyện một phân lớp mạnh mà khơng sử dụng cấu trúc phân tầng thì hiếm khi đạt kết quả tốt. Tuy nhiên, khi sử dụng cấu trúc phân tầng, bộ phân loại mạnh cuối cùng sẽ đạt được hiệu quả tốt hơn hẳn đồng thời các bộ phân loại yếu sẽ học được nhiều đặc trưng Gabor hơn. Do đó, ta cũng có thể chọn lựa được nhiều đặc trưng Gabor hơn so với việc không dùng cấu trúc phân tầng để xây dựng nên vectơ đặc trưng mới đại diện cho ảnh. Có một hạn chế nhỏ khi dùng cấu trúc phân tầng là các bộ phân loại yếu ở tầng sau phải được tính lại hồn tồn mà khơng được kế thừa từ các tầng trước.
Ngoài ra, để cho quá trình gom nhóm cơ sở dữ liệu đạt hiệu quả và độ chính xác cao hơn. Chúng tơi đề ra một hướng phát triển là sử dụng một biến thể của thuật toán k-means là bisecting k-means [22]. Bisecting k-means là một dạng mở rộng của k-means, bisecting k-means ít bị ảnh hưởng về vấn đề khởi tạo trọng tâm ban đầu và đạt hiệu quả cao hơn so với k-means, đồng thời làm tăng tốc độ của k-means bằng cách giảm số lượng tính tốn lân cận giữa trọng tâm và các đối tượng khác.
Tìm hiểu thêm các phương pháp chọn đặc trưng khác để biểu diễn cho ảnh, cũng như các phương pháp học khác để tìm ra bộ phân loại dùng để phân lớp. Chẳng hạn như dùng phép biến đổi Haar-like để rút trích ra các đặc trưng Haar đại diện cho ảnh, dùng phương pháp học SVM để phân lớp ảnh khuôn mặt. Đánh giá các phương pháp này với phương pháp đã đề xuất trong đề tài để thấy được các ưu điểm và hạn chế mà sau đó có thể đề xuất ra phương pháp tốt hơn.
Sử dụng tập dữ liệu lớn hơn, tăng số người và số ảnh lên nhiều hơn, tăng dần số mẫu học và đặc biệt các biến đổi trên khn mặt càng phong phú đa dạng thì khi đó ta có thể đánh giá chính xác hệ thống nhận dạng hơn và có thể nâng cao được khả năng nhận dạng tổng quát cho hệ thống, cũng như đáp ứng được nhu cầu thực tế từ thế giới thực khi mà số người cần phân loại lên đến hàng nghìn, hàng triệu và hàng tỉ người.