2.2.1 Đặc trưng của mặt người
Khuôn mặt là trọng tâm chính trong mối quan hệ giao tiếp trong xã hội, đóng vai trò quan trọng trong việc truyền tải bản sắc và cảm xúc. Chúng ta có thể nhận ra khuôn mặt của rất nhiều người trong suốt cuộc đời và việc nhận dạng khuôn mặt quen thuộc chỉ trong nháy mắt thậm chí sau nhiều năm không gặp. Điều này khá là rõ nét, bất chấp những thay đổi lớn về thị giác, biểu hiện lão hóa hoặc những thay đổi về kiểu tóc, về mắt kính... Ngoài ra, ảnh khuôn mặt trong thực tế còn chứa đựng rất nhiều vấn đề như: độ sáng, độ mờ, độ nhiễu, độ phân giải và góc ảnh.
Từ khuôn mặt của một người ta có thể khai thác nhiều thông tin liên quan đến người đó không chỉ là danh tính, ví dụ như giới tính, màu da, hướng nhìn, chủng tộc, hành vi, sức khỏe, độ tuổi, cảm xúc…Ví dụ như Hình 2.4 dưới đây:
Hình 2.4: Một số thông tin có thể tìm thấy trong một bức ảnh khuôn mặt
2.2.2 Phương pháp tiếp cận đặc trưng khuôn mặt
Trong ngôn ngữ của lý thuyết thông tin, muốn trích xuất các thông tin có liên quan đến hình ảnh khuôn mặt, mã hóa nó một cách hiệu quả nhất có thể và so sánh khuôn mặt được mã hóa với một cơ sở dữ liệu tương tự đã được mã hóa. Một phương pháp đơn giản để giải nén các thông tin chứa hình ảnh của khuôn mặt là nắm bắt được sự thay đổi trong tập các hình ảnh khuôn mặt, tính đối lập của các trạng thái biểu cảm, sử dụng nó để mã
13
hóa và so sánh với hình ảnh khuôn mặt khác. Mặt khác, để tìm các thuộc tính chủ yếu của khuôn mặt, hoặc các vector đặc trưng riêng của ma trận phương sai của tập các hình ảnh khuôn mặt, xử lý hình ảnh đó như là một điểm (hay vector) trong không gian đa chiều. Các vector đặc trưng riêng được sắp xếp, mỗi một vector đó có sự biến đổi khác nhau giữa các hình ảnh khuôn mặt. Các vector đặc trưng có thể coi như một tập hợp các đại lượng đặc trưng cho sự biến đổi giữa các hình ảnh khuôn mặt. Mỗi vùng ảnh góp phần cho mỗi vector đặc trưng, bởi vậy có thể hiển thị các vector đặc trưng như một ma trận được gọi là mặt riêng [6].
2.2.3 Biểu cảm của khuôn mặt khi bày tỏ cảm xúc
Sự tương tác giữa con người và máy tính sẽ tự nhiên hơn nếu máy tính có thể nhận biết và đáp ứng giao tiếp phi ngôn ngữ của con người như cảm xúc. Cảm xúc của con người có thể phân loại thành bảy loại cơ bản là: vui vẻ, buồn, sợ hãi, tức giận, bất ngờ, khó chịu và bình thường. Trạng thái chuyển động của khuôn mặt đóng một vai trò quan trọng trong việc thể hiện những cảm xúc này. Các cơ mặt có thể thay đổi, và con người có thể nhận ra những tín hiệu ngay cả khi chúng được hiển thị một cách tinh tế, đồng thời xử lý thông tin có được bằng tai và mắt [6]. Biểu thị của khuôn mặt đối với từng loại cảm xúc như sau:
Bình thường: mắt nhìn thẳng, môi mím lại, cơ mặt không có sự thay đổi nhiều.
Vui vẻ: khi bày tỏ cảm xúc vui vẻ trên khuôn mặt sẽ xuất hiện nếp nhăn ở đuôi mắt, gò má nâng lên, thay đổi từ cơ vùng mắt.
Buồn: đuôi mí mắt trên sụp xuống, mắt mất tập trung, kéo nhẹ xuống.
Giận dữ: lông mày hạ xuống và kéo gần lại nhau, trừng mắt, môi mím lại.
Ngạc nhiên: lông mày nâng lên, mắt mở to, há miệng.
Sợ hãi: lông mày nhướng lên và kéo gần lại nhau, mí mắt trên kéo lên, mắt dưới căng, miệng hơi kéo sang hai bên.
14
2.3 MẠNG NƠ-RON TÍCH CHẬP
Mạng nơ-ron tích chập [13] là một trong những mô hình mạng học sâu phổ biến nhất hiện nay, có khả năng nhận dạng và phân loại hình ảnh với độ chính xác rất cao, thậm chí còn tốt hơn con người trong nhiều trường hợp. Mô hình này đã và đang được phát triển, ứng dụng vào các hệ thống xử lý ảnh lớn của Facebook, Google hay Amazon được dùng cho các mục đích khác nhau như tự động tìm kiếm ảnh hoặc gợi ý sản phẩm cho người tiêu dùng.
Sự ra đời của mạng nơ-ron tích chập là dựa trên ý tưởng cải tiến cách thức các mạng nơ-ron nhân tạo truyền thống học thông tin trong ảnh. Do sử dụng các liên kết đầy đủ giữa các điểm ảnh vào node, các mạng nơ-ron nhân tạo truyền thẳng bị hạn chế rất nhiều bởi kích thước của ảnh, nếu ảnh càng lớn thì số lượng liên kết càng tăng nhanh và kéo theo khối lượng tính toán phức tạp [14]. Ngoài ra sự liên kết đầy đủ này cũng là sự dư thừa khi với mỗi bức ảnh, các thông tin chủ yếu thể hiện qua sự phụ thuộc giữa các điểm ảnh với những điểm xung quanh nó mà không quan tâm nhiều đến các điểm ảnh ở cách xa nhau. Mạng nơ-ron tích chập ra đời với kiến trúc thay đổi, có khả năng xây dựng liên kết chỉ sử dụng một phần cục bộ trong ảnh kết nối đến node trong lớp tiếp theo thay vì toàn bộ ảnh như trong mạng nơ-ron truyền thẳng.
2.3.1 Mạng nơ-ron nhân tạo
Mạng ANN là một phương pháp mô hình hoá tập trung vào các bài toán phi tuyến mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các nơ-ron được gắn kết để xử lý thông tin. ANN giống như bộ não con người, được học bởi kinh nghiệm, có khả năng lưu giữ những kinh nghiệm hiểu biết và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết. Khả năng học của ANN chủ yếu dựa trên kỹ thuật lan truyền ngược.
15
Hình 2.5: Cấu trúc tổng quát của mạng nơ-ron ANN
PE: là các nơ-ron, mỗi nơ-ron nhận các dữ liệu, xử lý chúng và cho ra một kết quả duy nhất. Kết quả xử lý của một nơ-ron có thể làm ngõ vào cho các nơ-ron khác. Trong đó, lớp ẩn gồm các nơ ron, nhận dữ liệu đầu vào từ các nơ-ron ở lớp trước đó và chuyển đổi các ngõ vào này cho các lớp xử lý tiếp theo. Trong một ANN có thể có nhiều lớp ẩn.
Hình 2.6: Quá trình xử lý thông tin trong mạng
Ngõ vào: x1, x2..xN tương ứng với 1 thuộc tính ngõ vào của dữ liệu, các tín hiệu này thường được đưa dưới dạng vector N chiều.Trọng số liên kết: Wk1, Wk2…WkN là trọng số liên kết của nơ-ron k, nó thể hiện mức độ quan trọng của dữ liệu đầu vào đối với quá
16
trình xử lý thông tin. Trong quá trình học, trọng số được cập nhật liên tục để có được kết quả mong muốn.
Ngõ ra: yk là tín hiệu ngõ ra của nơ-ron, mỗi nơ-ron tương ứng một ngõ ra.
Hàm tổng: Tính tổng trọng số của tất cả các ngõ vào được đưa vào mỗi nơ-ron và cho biết khả năng kích hoạt của nơ-ron đó hay còn gọi là kích hoạt bên trong. Các nơ-ron này có thể sinh ra một hoặc không ngõ ra trong ANN (nói cách khác ngõ ra của một nơ- ron có thể được chuyển đến lớp tiếp theo trong mạng nơ-ron hoặc không). Hàm tổng hợp nơ-ron đối với n ngõ vào được tính theo công thức:
Hình 2.7: Hàm tổng của một và nhiều nơ-ron đối với n input.
Ngưỡng (còn gọi là một độ lệch – bias): Ngưỡng bk thường được đưa vào như một thành phần của hàm truyền.
Hàm truyền: Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơ-ron. Nó nhận đầu vào kích hoạt bên trong của hàm tổng và ngưỡng đã cho.
17
2.3.2.1 Mô hình tổng quan
Hình 2.8: Sự khác nhau giữa cấu trúc ANN và CNN
Mô hình ANN ra đời đã được áp dụng nhiều trong các bài toán nhận dạng. Tuy nhiên, ANN vẫn chưa thể hiện tốt đối với các dữ liệu có kích thước lớn như hình ảnh. Dữ liệu hình ảnh có kích thước khá lớn khi số hoá có dạng width x height x depth (trong đó: width là số lượng điểm ảnh trên chiều rộng, height là số lượng điểm ảnh trên chiều cao, depth là số lượng kênh, chẳng hạn như RGB có 3 kênh đại diện cho mức độ của 3 màu Đỏ, Lục, Lam) nên đầu vào của mạng CNN là 1 tensor 3 chiều. Cụ thể, một tấm ảnh xám có kích thước 48x48 (pixels) sẽ cho ra vector đặc trưng có 2304 chiều, còn đối với ảnh màu cùng kích thước sẽ là 2304x3=6912 chiều. Điều này cũng có nghĩa là cần tới 6912 trọng số Wk nối giữa lớp vào và một nút ở lớp ẩn kế tiếp. Số lượng trọng số sẽ càng nhân rộng hơn nữa nếu số lượng nút trong lớp ẩn tăng lên. Như vậy chỉ với một bức ảnh nhỏ (48x48) thì cũng cần đến một mô hình khá đồ sộ. Điều này khiến cho việc thao tác với các ảnh có kích thước lớn hơn trở nên khó khăn. Một điều nữa là việc liên kết một cách đầy đủ các điểm ảnh vào một nút trong mạng dường như là dư thừa vì sự phụ thuộc lẫn nhau giữa các điểm ảnh xa nhau là không nhiều mà chủ yếu là sự phụ thuộc giữa các điểm lân cận với nó. Dựa trên vấn đề này mạng nơ-ron tích chập CNN ra đời với một kiến trúc khác hơn so mới mạng truyền thẳng. Thay vì toàn bộ ảnh nối với một nút thì chỉ có một phần cục bộ trong ảnh nối đến một nút trong lớp tiếp theo. Dữ liệu hình ảnh
18
thông qua các lớp của mô hình này sẽ được “học” ra các đặc trưng để tiến hành phân lớp một cách hiệu quả. Về cơ bản mô hình mạng nơ- ron tích chập bao gồm các lớp sau: lớp chập (Convolutional), lớp RELU, lớp gộp (Pooling), lớp kết nối đầy đủ (Fully connected). Sự sắp xếp về số lượng và thứ tự giữa các lớp này sẽ tạo ra những mô hình khác nhau phù hợp cho các bài toán khác nhau.
Hình 2.9: Quá trình thực hiện của mạng CNN
2.3.2.2 Các lớp trong mô hình
Đặc trưng (feature): CNN so sánh hình ảnh theo từng mảnh. Các mảnh mà nó tìm được gọi là các đặc điểm. Bằng cách tìm ở mức thô các đặc điểm khớp nhau ở cùng vị trí trong hai hình ảnh, CNN nhìn ra sự tương đồng tốt hơn nhiều so với việc khớp toàn bộ bức ảnh.
19
Mỗi đặc điểm giống như một hình ảnh mini - một mảng hai chiều nhỏ. Các đặc điểm khớp với các khía cạnh chung của các bức ảnh. Trong trường hợp hình ảnh X, các đặc điểm bao gồm các đường chéo và hình chữ thập, CNN sẽ nắm bắt tất cả những đặc điểm quan trọng của hầu hết các hình ảnh X. Những đặc điểm này có lẽ sẽ khớp với phần cánh và phần trung tâm của bất kỳ hình ảnh X nào
Lớp chập (Convolutional)
Lớp chập bao gồm “Convolutional 2D” tích chập 2 chiều sẽ cho phép bộ lọc (filters) di chuyển theo 2 chiều (theo cả chiều ngang và chiều dọc) và “Convolutional 3D” tích chập 3 chiều là khi bộ lọc có thể di chuyển thêm cả chiều sâu của ảnh. Khi xem một hình ảnh mới, CNN không biết chính xác nơi các đặc điểm này sẽ khớp nên nó sẽ thử chúng khắp mọi nơi, ở mọi vị trí có thể. Khi tính toán sự ăn khớp của một đặc điểm trên toàn bộ ảnh, lớp này sẽ sử dụng một bộ gồm các bộ lọc có kích thước nhỏ so với ảnh (thường là 3×3 hoặc 5×5) áp vào một vùng trong ảnh và tiến hành tính tích chập giữa bộ lọc và giá trị điểm ảnh trong vùng cục bộ đó. Bộ lọc sẽ lần lượt được dịch chuyển theo một giá trị bước trượt chạy dọc theo ảnh và quét toàn bộ ảnh [8].
20
Nguyên tố trọng tâm của nhân chập được đặt chồng lên điểm ảnh cần xét, nó sẽ thay thế điểm ảnh đó với tổng trọng số liên kết của chính nó và các điểm ảnh gần kề. Như vậy nếu một bức ảnh 48x48 và một bộ lọc 3x3, ta sẽ có kết quả là một tấm ảnh mới có kích thước 48x48 là kết quả tích chập của bộ lọc và ảnh. Với bao nhiêu bộ lọc trong lớp này thì ta sẽ có bấy nhiêu ảnh tương ứng mà lớp này trả ra và được truyền vào lớp tiếp theo. Để hoàn tất tích chập, chúng ta lặp lại quá trình này, lấy kết quả từ mỗi tích chập và tạo một mảng hai chiều mới. Từ đó, dựa vào vị trí của mỗi mảnh nằm trong hình ảnh. Bản đồ các phần khớp nhau này cũng là một phiên bản đã được lọc từ hình ảnh gốc. Nó là một bản đồ thể hiện nơi tìm thấy đặc điểm trong hình ảnh. Các giá trị gần 1 cho thấy sự khớp mạnh, các giá trị gần -1 cho thấy sự khớp mạnh với âm bản của đặc điểm và các giá trị gần bằng 0 cho thấy không khớp với bất kỳ loại nào.
Lớp RELU
Lớp này thường được cài đặt ngay sau lớp chập. Lớp này sử dụng hàm kích hoạt f (x) = max (0, x) nhằm chuyển toàn bộ giá trị âm trong kết quả lấy từ lớp chập thành giá trị 0. Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến cho mô hình. Tương tự như trong mạng truyền thẳng, việc xây dựng dựa trên các phép biến đổi tuyến tính sẽ khiến việc xây dựng đa tầng đa lớp trở nên vô nghĩa. Có rất nhiều cách để khiến mô hình trở nên phi tuyến như sử dụng các hàm kích hoạt sigmoid, tanh… nhưng f (x) = max (0, x) hàm dễ cài đặt, tính toán nhanh mà vẫn hiệu quả [7].
21
Hình 2.12: Ví dụ về lớp RELU
Lớp gộp (Pooling)
Lớp gộp là cách làm co các hình ảnh lớn lại nhưng vẫn giữ các thông tin quan trọng nhất trong đó. Lớp này sử dụng một ô vuông cửa sổ nhỏ trượt quét qua toàn bộ ảnh dữ liệu, mỗi lần trượt theo một bước trượt cho trước. Khác với lớp chập, lớp gộp không tính tích chập mà tiến hành lấy mẫu. Khi cửa sổ trượt trên ảnh, chỉ có một giá trị được xem là giá trị đại diện cho thông tin ảnh tại vùng đó (giá trị mẫu) được giữ lại. Các phương thức phổ biến trong lớp gộp là MaxPooling (lấy giá trị lớn nhất), MinPooling (lấy giá trị nhỏ nhất) và AveragePooling (lấy giá trị trung bình). Xét một ảnh có kích thước 32×32 và lớp gộp sử dụng bộ lọc có kích thước 2×2 với bước trượt stride = 2, phương pháp sử dụng là MaxPooling. Bộ lọc sẽ lần lượt duyệt qua ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất trong 4 giá trị nằm trong vùng cửa sổ 2×2 của bộ lọc được giữ lại và đưa ra đầu ra. Như vậy sau khi qua lớp gộp, ảnh sẽ giảm kích thước xuống còn 16×16 (kích thước mỗi chiều giảm 2 lần [8].
22
Hình 2.13: Maxpooling với bộ lọc 2x2, bước trượt bằng 2
Lớp kết nối đầy đủ (Fully-connected)
Lớp này tương tự với lớp trong mạng nơ-ron truyền thẳng, các giá trị ảnh được liên kết đầy đủ vào nút trong lớp tiếp theo. Sau khi ảnh được xử lý và rút trích đặc trưng từ các lớp trước đó, dữ liệu ảnh sẽ không còn quá lớn so với mô hình truyền thẳng nên ta có thể sử dụng mô hình truyền thẳng để tiến hành nhận dạng. Tóm lại, lớp kết nối đầy đủ đóng vai trò như một mô hình phân lớp và tiến hành dựa trên dữ liệu đã được xử lý ở các lớp trước đó [8].
23
2.3.3 Những vấn đề xảy ra với mô hình mạng nơ-ron tích chập
2.3.3.1 Quá khớp (Overfiting)
Quá khớp là hiện tượng mô hình tìm được quá khớp với dữ liệu huấn luyện. Việc quá khớp này có thể dẫn đến việc dự đoán nhầm và chất lượng mô hình không còn tốt trên dữ liệu kiểm tra nữa. Trong ứng dụng thực tế, ta thường sử dụng mạng nơ-ron để mô