LỜI MỞ ĐẦU Nhận dạng khuôn mặt đang trở thành một trong những công nghệ phát triển và có rất nhiều ứng dụng thực tế. Mục tiêu của luận văn này là phát triển một hệ thống nhận dạng khuôn mặt dùng cho doanh nghiệp ở Việt Nam để có thể hỗ trợ tiến tới thay thế những hệ thống chấm công hiện tại nhờ vào việc sử dụng kỹ thuật học sâu. Hệ thống nhận dạng khuôn mặt sử dụng mạng nơ-ron tích chập để trích chọn ra các đặc trƣng. Dựa trên các đặc trƣng đƣợc trích chọn ra để so sánh giữa các khuôn mặt với nhau.
Ngoài ra hệ thống còn có thể học trực tuyến bằng cách đăng kí những khuôn mặt mới vào cơ sở dữ liệu, điều này có ý nghĩa rất lớn trong việc ứng dụng vào nhu cầu thực tế của doanh nghiệp. Mục đích của đề tài: Mục đích của đề tài là nguyên cứu các kỹ thuật học sâu và áp dụng vào trong hệ thống nhận dạng khuôn mặt. Đối tƣợng và phạm vi nghiên cứu: Đối tượng nghiên cứu của đề tài: - Đầu vào là bộ dữ liệu khuôn mặt ngƣời Châu Á của Microsoft và bộ dữ liệu khuôn mặt ngƣời của một doanh nghiệp Việt Nam, bộ dữ liệu này đƣợc tự tạo và trích ra từ camera giám sát của doanh nghiệp. - Kỹ thuật học sâu và phƣơng pháp nhận dạng khuôn mặt.
Phạm vi nghiên cứu của đề tài: - Dựa trên lý thuyết về học sâu và nhận dạng để đƣa ra phƣơng pháp cụ thể nhận dạng khuôn mặt dƣới dạng ảnh đầu vào. - Xây dựng chƣơng trình chạy thử nghiệm. Luận điểm cơ bản và đóng góp mới: Đƣa ra kết quả nghiên cứu về mặt lý thuyết cơ sở của kỹ thuật học sâu trong nhận dạng khuôn mặt của ngƣời Việt Nam. Xây dựng đƣợc chƣơng trình thử nghiệm và đánh giá dựa trên một tập học trong bộ dữ liệu của Microsoft về khuôn mặt ngƣời Châu 2 Á và một tập kiểm tra đƣợc tạo ra từ khuôn mặt nhân viên trong một công ty ở Việt Nam, từ đó nêu ra một số vấn đề ứng dụng trong thực tế.
Phƣơng pháp nghiên cứu: Cơ sở lý thuyết về nhận dạng khuôn mặt ngƣời bằng kỹ thuật học sâu từ đó cài đặt thử nghiệm trên tập dữ liệu mẫu về khuôn mặt ngƣời Châu Á của Microsoft để có thể nhận xét, đánh giá phƣơng pháp tìm hiểu đƣợc. Luận văn đƣợc trình bày trong 4 chƣơng, cụ thể nhƣ sau: Chƣơng 1: Tổng quan về các phƣơng pháp học sâu: Trình bày khái niệm, các nội dung và phƣơng pháp cơ bản của học sâu cũng nhƣ hai loại học sâu phổ biến nhất. Chƣơng 2: Kỹ thuật học sâu cho bài toán nhận dạng khuôn mặt: Nghiên cứu cụ thể và áp dụng kỹ thuật học sâu cho bài toán nhận dạng khuôn mặt. Chƣơng 3: Xây dựng chƣơng trình, cài đặt, thử nghiệm và đánh giá: Trên cơ sở lý thuyết đã trình bày ở chƣơng 2 để cài đặt chạy thử nghiệm và đánh giá kết quả đạt đƣợc.
Chƣơng 4: Tổng kết lại những kết quả đạt đƣợc trong luận văn, những hạn chế cũng nhƣ hƣớng phát triển tiếp theo của hệ thống nhận dạng khuôn mặt cho công ty ở Việt Nam. 3 CHƢƠNG 1 : TỔNG QUAN VỀ CÁC PHƢƠNG PHÁP HỌC SÂU Chƣơng này giới thiệu tổng quan về các phƣơng pháp học sâu, khái niệm cũng nhƣ phân loại của các phƣơng pháp học sâu. Phần sau đó là giới thiệu một số các mạng học sâu điển hình đƣợc ứng dụng rộng rãi trong thực tế.1 Khái niệm Học sâu (deep learning) là một chi của ngành máy học (machie learning) dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tƣợng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều biến đổi phi tuyến.1: Vị trí của học sâu trong lĩnh vực trí tuệ nhân tạo Có nhiều định nghĩa về học sâu nhƣ sau: - Sử dụng một tầng nhiều lớp các đơn vị xử lý phi tuyến để trích tách đặc điểm và chuyển đổi. Mỗi lớp kế tiếp dùng đầu ra từ lớp trƣớc làm đầu vào.
Các thuật toán này có thể đƣợc giám sát hoặc không cần giám sát. - Dựa trên học (không có giám sát) của nhiều cấp các đặc điểm hoặc đại diện của dữ liệu. Các tính năng cao cấp bắt nguồn từ các tính năng thấp cấp hơn để tạo thành một đại diện thứ bậc. 4 - Là một phần của lĩnh vực máy học rộng lớn hơn về việc học đại diện dữ liệu.
- Học nhiều cấp độ đại diện tƣơng ứng với các mức độ trìu tƣợng khác nhau; các mức độ hình thành một hệ thống phân cấp của các khái niệm. Các định nghĩa này có điểm chung là (1) nhiều lớp các đơn vị xử lý phi tuyến và (2) học có giám sát hoặc học không có giám sát của biểu diễn đặc tính ở mỗi lớp, với các lớp hình thành một hệ thống các tính năng phân cáp từ thấp đến cao cấp.2 Phân loại Mạng nơ-ron nhân (ANN) tạo là phƣơng pháp thành công nhất và đƣợc áp dụng rộng rãi nhất trong các phƣơng pháp học sâu. Mạng nơ-ron nhân tạo đƣợc lấy cảm hứng từ các mô hình sinh học năm 1959 đƣợc đề xuất bởi ngƣời đoạt giải Nobel David H. Hubel và Torsten Wiesel, hai ngƣời đã tìm thấy hai loại tế bào trong vỏ não thị giác chính: các tế bào đơn giản và các tế bào phức tạp.
Nhiều mạng nơ-ron nhân tạo có thể đƣợc xem nhƣ là các mô hình ghép tầng của các tế bào loại lấy cảm hứng từ những quan sát sinh học.2: Cấu tạo nơ-ron sinh học. Các giá trị tín hiệu đầu vào (input) sẽ đƣợc đƣa vào trong thân của neuron (Cell body). Nếu tổng của các tín hiệu đầu vào vƣợt quá một ngƣỡng nhất định thì thân neuron sẽ phát ra một tín hiệu điện đầu ra (output) truyền qua sợi trục (Axon) tới các Synapse. Tín hiệu điện này sẽ đƣợc truyền qua các neuron khác nhau nhờ vào sự liên kết giữa các Synapse và Dendrites và độ mạnh yếu của các liên kết sẽ quyết định lƣợng thông tin đƣợc truyền sang.
Cứ nhƣ thế quá trình nay diễn ra một cách đồng thời giữa các neuron với nhau để tạo thành một mạng lƣới của hệ thần kinh trong não bộ của con ngƣời. Vào năm 1958, nhà khoa học Frank Rosenblatt đã dựa trên nguyên lý hoạt động trên để đề xuát ra mô hình Perceptron.3: Perceptron – mô hình đơn giản của một mạng neron nhân tạo Quá trình xử lý của một Perceptron: - Inputs (dữ liệu vào): Mỗi Input tƣơng ứng với một thuộc tính của dữ liệu. - Output (kết quả): Kết quả của một ANN là một giải pháp cho một vấn đề cần giải quyết. Quá trình học của ANN thực chất là quá trình điều chỉnh các trọng số của các dữ liệu đầu vào để có đƣợc một đầu ra mong muốn.
6 - Summations (hàm tổng): Tính tổng trọng số của tất cả các input đƣợc đƣa vào mỗi nơ-ron. Hàm tổng của một nơ-ron đối với n input đƣợc tính theo công thức sau: - Transfer Function (hàm chuyển đổi): Hàm tổng (Summation Function) của một nơ-ron cho biết khả năng kích hoạt (Activation) của nơ-ron đó còn gọi là kích hoạt bên trong (internal activation). Các nơ-ron này có thể sinh ra một output hoặc không trong ANN. Mối quan hệ giữa Internal Activation và kết quả (output) đƣợc thể hiện bằng hàm chuyển đổi (Transfer Function).
Việc lựa chọn Transfer Function có tác động lớn đến kết quả của ANN. Hàm chuyển đổi phi tuyến đƣợc sử phổ biến trong ANN là sigmoid (logical activation) function. Một mạng nơ-ron đơn giản đƣợc tạo ra từ các liên kết giữa các Perceptron và là nền tảng cho các mạng rơ-ron phức tạp hơn sau này là mạng MultiLayer Perceptron (MLP). Một mạng MLP điển hình gồm 3 thành phần chính: lớp đầu vào (input layer) và lớp đầu ra (output layer) chỉ gồm một lớp, lớp ẩn (hidden layer) có thể có một hay nhiều lớp.4: Cấu trúc của một mạng MultiLayer Perceptron với 2 lớp ẩn [2] 7 Có hai cấu trúc mạng điển hình của mạng nơ-ron nhân tạo là mạng nơ-ron tích chập (convolution neuron network) và mạng nơ-ron hồi quy (recurrent neuron network).1 Mạng nơ-ron tích chập Cùng với âm thanh và văn bản thì hình ảnh là một trong những hình thức phổ biến nhất để con ngƣời diễn đạt một thông tin.
Đối với một ngƣời có thị giác bình thƣờng thì có thể dễ dàng mô tả nội dung, nhận biết và phát hiện các đối tƣợng đƣợc thể hiện trong một bức ảnh. Tuy nhiên dƣới góc nhìn của máy tính thì việc này khó khăn hơn rất nhiều bởi vì máy tính nhìn một bức ảnh chỉ đơn thuần là một ma trận số (bức ảnh đƣợc cấu thành từ các điểm ảnh – pixel và đƣợc biểu diễn dƣới dạng con số trong một không gian màu nhất định nhƣ RGB, …). Mục tiêu cơ bản của thị giác máy tính (computer vision) là làm sao để có thể làm cho máy tính hiểu đƣợc nội dung của một bức ảnh mà chỉ dựa vào các ma trận số đơn thuần. Thị giác máy tính tập trung giải quyết những bài toán nhƣ: Phân loại ảnh.
Xác định vật thể, đối tƣợng có trong ảnh: con ngƣời, xe cộ, động vật, … Tạo ảnh với những phong cách khác nhau: tạo từ ảnh gốc ra những ảnh có phong cách khác nhau. Mạng nơ-ron truyền thống MultiLayer Perceptron hoạt động không thực sự hiểu quả với dữ liệu đầu vào là hình ảnh. Nếu coi mỗi điểm ảnh là một thuộc tính (feature), một ảnh RBG có kích thƣớc (100x100) sẽ có 100x100x3 = 30000 thuộc tính. Nếu kích thƣớc ảnh tăng lên 1000x1000 thì sẽ là 3 triệu thuộc tính cho mỗi ảnh đầu vào.
Nếu sử dụng MultiLayer Perceptron với liên kết đầy đủ (fully connected) thì nếu nhƣ lớp ẩn có 1000 thành phần (units), ma trận trọng số sẽ có kích thƣớc 1000 x 3 triệu tƣơng với 3 triệu trọng số cần huấn luyện. Điều này yêu cầu khối lƣợng tính toán cực lớn và thƣờng 8 dẫn đến overfitting do không đủ dữ liệu để huấn luyện mạng với kích thƣớc lớn nhƣ vậy [3]. Mạng nơ-ron tích chập (Convolutional Neural Networks - CNN) là mạng nơ-ron phổ biến nhất đƣợc dùng cho dữ liệu ảnh. Bên cạnh các lớp liên kết đầy đủ (Fully Connected layers), CNN còn có các lớp ẩn đặc biệt giúp phát hiện và trích xuất những đặc trƣng xuất hiện trong ảnh, đó gọi là lớp tích chập (Convolutional Layers).
Chính những lớp tích chập này làm CNN trở nên cực kì hiệu quả với dữ liệu ảnh so với mạng MLP phổ biến. Giống nhƣ các lớp ẩn thông thƣờng, lớp tích chập lấy dữ liệu đầu vào để thực hiện các phép biến đổi và tạo ra đầu ra (cũng chính là đầu vào của các lớp kế tiếp).