Nghiên cứu và xây dựng hệ thống nhận dạng khuôn mặt động dựa trên SVM và ADABOOST

MỤC LỤC

Đ H KHTN

Những thách thức trong bài toán nhận dạng khuôn mặt

Hệ thống nhận dạng tĩnh-động là hệ thống được thiết kế bằng cách sử dụng một số ảnh tĩnh làm mẫu để nhận dạng khuôn mặt người trong ảnh động. Kĩ thuật nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một nhiều như hệ thống nhận dạng nói chung ở trên, song ảnh cần kiểm tra là các khung ảnh động trong các đoạn phim từ các máy camera. Kĩ thuật này dĩ nhiên không thể chính xác vì chuyển động của mặt người trong đoạn phim khá phức tạp song thể hiện trong ảnh tĩnh để huấn luyện lại ít.

Tuy nhiên, kĩ thuật này chính xác hơn kĩ thuật sử dụng trong hệ thống nhận dạng tĩnh-động do sự chuyển động phức tạp của khuôn mặt người cũng được huấn luyện bằng các khung ảnh động.

Các hướng tiếp cận chính trong lĩnh vực nhận dạng khuôn mặt

    Khi thực hiện thao tác so khớp đồ thị với một ảnh, các điểm chuẩn (Jets) sẽ trích ra từ ảnh và so sánh các điểm chuẩn này với tất cả các điểm chuẩn tương ứng trong các đồ thị khác nhau, và đồ thị nào phù hợp nhất với ảnh sẽ được chọn. Đối với cách tiếp cận này, hai mắt sẽ được dò tìm trước tiên và thông tin này được xem là vết để quan sát khuôn mặt, trình xử lý dò tiếp mắt bằng cách sử dụng một thuật toán lai để kết hợp thao tác học và tiến hóa trong quá trình học. Ảnh khuôn mặt thẳng ban đầu được chiếu theo chiều ngang để tìm các giá trị điểm ảnh thỏa ngưỡng cho trước, đồ thị biểu diễn theo trục ngang sẽ định vị vị trí biên trên và biên dưới của hình chữ nhật bao các đặc trưng cục bộ khuôn mặt.

    Phương pháp PCA (phân tích thành phần chính) được sử dụng ở dạng PCA-toàn cục (Global PCA) và dạng cải tiến cải tiến PCA-cục bộ (Local PCA) để rút ra các vector đặc trưng làm đầu vào cho bộ nhận dạng trên nhằm tăng tốc độ xử lý.

    Hình 1-Sơ đồ hệ thống nhận dạng khuôn mặt
    Hình 1-Sơ đồ hệ thống nhận dạng khuôn mặt

    Thu thập dữ liệu

    Dữ liệu ảnh biểu diễn bên trong máy tính là cường độ sáng của điểm ảnh, tại vị trị x và y: (I(x,y)). Đọc từng dòng ảnh theo thứ tự từ trên xuống, mỗi dòng ảnh được bố trí liên tục nhau trờn một mảng số thực một chiều.

    Giới thiệu

      Mặc dù việc xử lý khá nhanh nhưng hướng này có giới hạn chỉ xử lý trên ảnh màu và thường nhạy cảm với ánh sáng, thường chỉ sử dụng làm các bước tiền xử lý cho các hướng khác. Thành công nhất trong dò tìm khuôn mặt người trong thời gian thực là phương pháp ASM (Active shape Models). Phương pháp SVM và mạng nơron cũng đạt được kết quả cao trong thời gian khá nhanh song cũng chỉ vài ảnh trong một giây nên khó có thể áp dụng trong việc nhận dạng thời gian thực.

      Riêng phương pháp AdaBoost cho kết quả khả quan vì có thể xử lý đến khoảng 15-20 khung hình trong một giây.

      Phương pháp chọn đặc trưng cho AdaBoost

      Cuối cùng, việc tính các đặc trưng Haar-like chỉ còn là trừ giá trị tổng các ô chữ nhật được tính như trên. Chú ý, với cái nhìn đại số tuyến tính về phương pháp tính giá trị tổng của một ô trong ảnh, giá trị tổng một ô r(trong ô có giá trị 1, ngoài ô có giá trị 0) của ảnh i chính là phép nhân vô hướng <i>’*<r> trong đó <A> chính là ma trận có được bằng cách chuyển ma trận A kích thước mxn thành ma trận kích thước 1x(m.n) và A’ là ma trận chuyển vị của A.

      Hình 3-Ý nghĩa hình học của đạo hàm ảnh
      Hình 3-Ý nghĩa hình học của đạo hàm ảnh

      Phương pháp AdaBoost

        Đối với các thuật toán AdaBoost cải tiến gần đây, quá trình này có thể được thay thế bằng một hàm tối ưu hóa trong quá trình boost. Vì rút ra một bộ phân loại yếu trong một miền không gian nhiều chiều là công việc quan trọng, xin được đưa ra sau đây một mô hình thống kê học theo từng giai đoạn dựa trên vài đặc điểm vô hướng. Trong phần sau, chúng ta sử dụng z(m) để biểu diễn cho đặc điểm được chọn trong giai đoạn m, và zk(x) là đặc điểm được tính toán từ x, sử dụng phép biến đổi thứ k.

        = -1 có thể phỏng đoán được từ histogram tính được qua đánh giá công nhận trọng lượng của các ví dụ huấn luyện sử dụng các trọng lượng ω(M-1).

        Đầu ra

        • Dò tìm khuôn mặt với AdaBoost
          • Đánh giá và hướng phát triển
            • Sơ lược toán đại số tuyến tính trong thống kê
              • Phương pháp phân tích thành phần chính (Principal Component Analysis hay PCA)
                • Phương pháp PCA toàn cục và cục bộ
                  • Đánh giá
                    • Sơ lược lý thuyết SVM
                      • FSVM – SVM mờ (Fuzzy SVM)
                        • Nhận dạng khuôn mặt người với FSVM
                          • Thử nghiệm bộ dò tìm khuôn mặt
                            • Thử nghiệm bộ nhận dạng khuôn mặt

                              Phương pháp xác định tập mẫu vượt sử dụng ở đây được Yi-Hung Liu đề xuất và đặt tên là ODM (outlier detection method) dựa trên các phương pháp SOM(self-organizing map) của Kohenen và gom cụm FCM(fuzzy-C-means). Siêu mặt Di(x) = 0 tạo thành siêu mặt phân cách tối ưu và, nếu dữ liệu huấn luyện là tuyến tính và có thể phân cách được, thì các vector hổ trợ thuộc về lớp i thoat mãn Di(x) = 1 và những vector thuộc vào các lớp còn lại thỏa mãn Di(x) = −1. Trong tất cả các hệ nhận dạng mà đặc biệt là các hệ nhận dạng tự động nói riêng, mức độ thành công không những phụ thuộc vào các thuật toán nhận dạng tốt mà còn phụ thuộc rất nhiều vào tập mẫu dữ liệu huấn luyện.

                              Ở đây phương pháp phân tích thành phần chính (PCA) được chọn để tiền xử lí và rút trích đặc trưng từ dữ liệu. PCA là một phương pháp rút trích đặc trưng tự động, không giám sát. Tính ưu việt của phương pháp xử lí này không những khử nhập nhằng tốt mà còn giảm được đáng kể khối lượng dữ liệu luu trữ và xử lí cho hệ thống nhận dạng sau này). Ánh xạ tập mẫu huấn luyện FSVM gồm 10 lớp của A và 44 lớp của B với mỗi lớp 110 đề tài từ 5 đề tài gốc(qua các phép dịch chuyển khuôn mặt về các hướng và phép mirror) vào không gian đặc trưng, sẽ hình thành không gian mẫu mới hay còn gọi là không gian mẫu đặc trưng. Như vậy qua phép phân tích PCA, ta đã rút gọn số chiều của mẫu học từ 900 giảm xuống còn 100 chiều(90 chiều) (đây chính là những thành phần quan trọng nhất của mẫu học, và chính các thành phần này tạo ra sự khác biệt cho các vector mẫu trong tập mẫu ban đầu).

                              Và nhờ khả năng xử lý tổng quát hoá tốt nên rất thích hợp cho bài toán nhận dạng khuôn mặt mà trong đó tính biến động của thông tin trên ảnh thích hợp nhận dạng trong thời gian thực, trong video – camera. Cơ sở dữ liệu cho việc thử nghiệm hệ thống nhận dạng được thu thập từ nhiều nguồn khác nhau nhưng nhìn chung chất lượng dữ liệu khuôn mặt rất phù hợp với những yêu cầu đặt ra từ đề tài (ảnh hưởng của môi trường và sự biến đổi trên nội tại khuôn mặt không quá lớn lên tập mẫu học). Dù FSVM là một phương pháp học mới và mục đích của nó chuyên cho ứng dụng phân loại mẫu hai lớp bằng một siêu mặt phân tách, nhưng với kết quả đạt được như trên từ FSVM đã chứng tỏ được khả năng giải quyết vấn đề không kém so với một số phương pháp cổ điển như mạng neural nhân tạo hay mô hình Markov ẩn rời rạc mà có khả năng phân loại cùng một lúc nhiều lớp rất tốt.

                              Khi nghiên cứu về hệ thống nhận dạng này chúng tôi không những nghiên cứu về thuật toán xử lý mà qua đó chúng tôi đã biết thêm nhiều về các công trình nghiên cứu về khuôn mặt người từ các lĩnh vực khác nhau và kết quả này thực sự có ý nghĩa trong việc nâng cao hiệu quả khả năng giao tiếp giữa con người và máy tính. Hệ thống này không những chú trọng vào kỹ thuật nhận dạng mà còn chú trọng vào kỹ thuật để nhận thức một mẫu là một khuôn mặt người nhờ đó mà chúng tôi đã xây dựng tương đối thành công một hệ thống nhận dạng khuôn mặt tự động. Hệ thống nhận dạng với cách tiếp cận từ các phương pháp học rất mạnh, nhưng tính chặt chẽ về mặt toán học chưa cao, nhiều trường hợp tối ưu hóa đòi hỏi chúng ta phải thử nghiệm nhiều lần với nhiều bộ tham số khác nhau.

                              Cơ sở dữ liệu còn rất hạn chế, chỉ mới thử nghiệm trên 44 người – 10 người, đồng thời số lượng ảnh của mỗi người không có quá nhiều biến động lớn và đặc biệt là điều này có thể làm giảm chất lượng của hệ thống nhận dạng khi áp dụng trong thế giới thực mà trong đó khuôn mặt và môi trường thay đổi liên tục. Đây là một đề tài tương đối phức tạp, mặc dù chúng tôi đã cố gắng xây dựng một hệ thống có khả năng nhận dạng người dựa vào thông tin khuôn mặt xuất hiện trên ảnh trongthời gian thực. Nhưng với những hạn chế về mặt trình độ cũng như thời gian thực hiện, chúng tôi kết thúc đề tài với nghiên cứu về một mảng nhỏ trong lĩnh vực thị giác máy tính và những định hướng dưới đây sẽ hy vọng ngày càng hoàn thiện khả năng tương tác giữa người với máy tính qua hệ thống nhận dạng khuôn mặt.

                              Hình 5-Hình vẽ minh hoạ thuật toán AdaBoost
                              Hình 5-Hình vẽ minh hoạ thuật toán AdaBoost