Bài viết đưa ra phương pháp sử dụng đặc trưng HOG, mô hình mtcnn để phát hiện khuôn mặt và phương pháp triplet loss và K-Nearest Neighbors để huấn luyện mô hình. Từ đó từ đó đưa lên webserver phục vụ cho việc hiển thị ảnh của người tham gia sự kiện, cũng như từ webcam nhận diện người tham gia sự kiện và gửi thông tin về sự kiện cho họ.
Trang 1Xây Dựng Hệ Thống Quản Lý Ảnh Và Check In Sự Kiện
Bằng Nhận Diện Khuôn Mặt Trương Huỳnh Đức!, Hỗ Nguyễn Hoàng Vy!, Lê Song Toản!
! Trường Đại học Công nghệ Thông tin và Truyền thông Việt Hàn - Đại học Đà Nẵng
thduc.17it3@sict.udn.vn, hnhvy.17ce@sict.udn.vn, lstoan@vku.udn.vn
Tóm tắt Hệ thống nhận dạng khuôn mat (Face recognition) là một ứng dụng cho phép máy tính tự động xác định hoặc nhận dạng một người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ một nguồn video Một trong những cách để thực hiện điều này là so sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở đữ liệu về khuôn mặt Trong nghiên cứu này, chúng tôi đưa
ra phương pháp sử dụng đặc trưng HOG, mô hình mtenn để phát hiện khuôn mặt và phương pháp triplet
loss và K-Nearest Neiphbors để huấn luyện mô hình Từ đó từ đó đưa lên webserver phục vụ cho việc hiển thị ảnh của người tham gia sự kiện, cũng như từ webcam nhận diện người tham gia sự kiện và gửi thông tin về sự kiện cho họ
Từ khoá: Nhận diện khuôn mặt, Triplet Loss, K-Nearest Neighbors, HOG
Abstract The facial recognition system is an application that allows the computer to automatically identify or identify someone from a digital photo or a video frame from a video source One of the ways
to do this is to compare pre-selected facial features from an image and a database of faces In this paper,
we propose methods using HOG feature, mtcnn model for face detection and triplet loss method and K-Nearest Neighbors to train the model From there, it will be posted to webserver for displaying photos
of event participants, as well as from webcam recognizing event participants and sending event infor-
mation to them
Keywords: Face recogintion, Triplet Loss, K-Nearest Neighbors, HOG
1 Bài toán nhận diện khuôn mặt
Nhận dạng khuôn mặt là khả năng nhận diện, lưu trữ, so sánh và phân tích các mẫu dựa trên đường nét khuôn mặt để nhận dạng người từ hình ảnh hoặc video Hệ thống thường sử dụng các công nghệ để thực hiện nhận dạng khuôn mặt như sử dụng sinh trắc học đề ánh xạ các đặc điểm khuôn mặt từ ảnh hoặc video
Hệ thống so sánh thông tin nay với một cơ sở dữ liệu đã lưu trữ về các khuôn mặt để tìm ra một kết quả khớp chính xác Nhận dạng khuôn mặt ngày cảng được quan tâm trong nhiều lĩnh vực, như Trung Quốc có
hệ thống Skynet để chấm điểm công dân, hay nhiều chuỗi cửa hàng lớn cũng sử dụng nhận dạng khuôn mặt khách hàng thân thiết để phân tích thói quen tiêu dùng Trên thực tế, công nghệ nhận dạng khuôn mặt đã nhận được sự chú ý đáng kê vì nó có tiềm năng cho một loạt các ứng dụng liên quan đến thực thi pháp luật cũng như các doanh nghiệp khác
Bài toán nhận dạng khuôn mặt cần xác định hai vẫn đề chính: dùng thông tin nào của đôi tượng đề nhận dạng và dùng phương pháp nào để huấn luyện cho máy nhận dạng dùng nguồn thông tin đó Các phương pháp nhận diện khuôn mặt đã được nghiên cứu như:
Wenyi Zhao, Arvindh Krishnaswamy, Rama Chellappa, Danie L Swets, John Weng (1998) [1] (Diseri- minant Analysis of Principal Components for Face Recognition) su dung phương pháp PCA két hop LDA: Đầu tiên, cần chuyên đôi ảnh khuôn mặt từ không gian ảnh thô sang không gian các không gian khuôn mặt (Mỗi lớp khuôn mặt được nhận dạng sẽ được mô hình hóa bằng một không gian khuôn mặt) dùng PCA Sau đó, sử dụng phương pháp LDA đề tạo bộ phân loại tuyến tính có khả năng phân lớp các lớp khuôn mặt O1 Bin Sun, Chian Prong Lam va Jian Kang Wu (1998) [2], sử dụng phương pháp tìm vùng hai chân mảy, hai mắt, mũi, miệng và cằm
Trang 2Guodong Guo, Stan Z.Li, Kap Luk Chan (17 January 2001) [3], dùng phương phap SVM dé nhan dang khuôn mặt Sử dụng chiến lược kết hợp nhiều bộ phân loại nhị phân đề xây dựng bộ phân loại SVMI đa lớp Tổng quan hệ thống điểm danh bằng khuôn mặt
1.1 Khó khăn của nhận dạng khuôn mặt
Ảnh chụp khuôn mặt có thể thay đôi rất nhiều do các tác động ngoại quan lên ảnh như tư thế góc chụp, sự che khuất hoặc không rõ nét ở một số chỉ tiết, các chỉ tiết thừa hay biêu cảm khuôn mặt lúc chụp
Tư thế góc chụp: Ảnh chụp khuôn mặt có thê thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt Chẳng hạn như: chụp thắng, chụp xéo bên trái 45° hay xéo bên phải 45°, chụp từ trên xuống, chụp từ dưới lên v.v ) Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thê bị khuất một phần hoặc thậm chí khuất hết
Sự xuất hiện hoặc thiểu một số thành phần của khuôn mặt: Các đặc trưng như râu mép, râu hàm, mắt kính, v.v có thê xuất hiện hoặc không Vấn đề này làm cho bài toán cảng khó khăn hơn rất nhiều
Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thê làm ảnh hưởng đáng kế lên các thông
số của khuôn mặt Chang hạn, cùng một khuôn mặt một người, nhưng có thé sẽ rất khác khi họ cười hoặc
sợ hãi
Sự che khuất: Khuôn mặt có thê bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác Hướng của ảnh: Các ảnh của khuôn mặt có thê biến đôi rất nhiều với các góc quay khác nhau của trục camera Chắng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục của ảnh Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v ) ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt
Nền ảnh phức tạp: Nền của ảnh phức tạp là một trong những khó khăn nhất trong bải toán nhận diện khuôn mặt người trong ảnh, khuôn mặt người sẽ dễ bị nhằm lẫn với nhiều khung cảnh phức tạp xung quanh
và ảnh hưởng rất nhiều đến quá trình phân tích và rút trích các đặc trưng của khuôn mặt trong ảnh, có thê dẫn đến không nhận ra khuôn mặt hoặc là nhận nhằm các khung cảnh xung quanh thành khuôn mặt người 1.2 Các phương pháp nhận dạng
Phương pháp nhận dạng hiện nay có 2 loại:
- Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature based face recognition)
- Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition)
Ngoài ra còn có một số loại nhận dang su dung m6 hinh về khuôn mặt như:
- Nhận dang 2D: Elastic Bunch Graph, Active Appearance Model
- Nhận dạng 3D: 3D Morphable Model
Nhận dạng dựa trên các đặc trưng khuôn mặt Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi, miệng, ), và môi quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách của hai lông may, .)
Ưu điểm của phương pháp này là nó gần với cách mả con người sử dụng đề nhận biết khuôn mặt Hon nữa với việc xác định đặc tính và các mỗi quan hệ, phương pháp nảy có thê cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đối
Nhược điểm của phương pháp này là cải đặt thuật toán phức tạp do việc xác định mối quan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp Mặt khác, với các ảnh kích thước bẻ thì các đặc tính sẽ khó phân biệt do đó khó tính toán được các đặc trưng trên khuôn mặt
Nhận dạng đựa trên toàn diện khuôn mặt Phương pháp nhận diện trên toàn diện khuôn mặt có nghĩa sẽ không đi xét đến từng thành phần đặc trưng trên khuôn mặt nữa mà là xem khuôn mặt là một không gian
cụ thê tìm những đặc trưng, những đặc điểm chính trên không gian đó
Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước RxC là một vector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới có chiều nhỏ hơn sao cho khi biểu diễn trong không
Trang 3gian đó các đặc điểm chính của một khuôn mặt không bị mắt đi Trong không gian đó, các ảnh của cùng một người sẽ được tập trung lại thành một nhóm gần nhau và cách xa các nhóm khác
Hai phương pháp thường được sử dụng là trong hướng tiếp cận này là PCA (Principle Components Analysis) va LDA (Linear Discriminant Analysis)
2 Phương pháp nhận diện khuôn mặt dựa trên đặc trưng HOG
Có rất nhiều phương pháp nhận dạng và phân lớp ảnh khác nhau trong computer vision Khi phân loại ảnh,
có thê áp dụng họ các mô hình CNN (Inception Net, mobile Net, Resnet, Dense Net, Alexnet, Unet ) va khi phát hiện vật thé la cdc m6 hinh YOLO, SSD, Faster RCNN, Fast RCNN, Mask RCNN
Các mô hình kê trên đều là những m6 hinh hoc séu (Deep Learning) Nhung trudc khi Deep Learning bùng nô, thuật toán thuong duge str dung cho xt li anh 14 HOG (Histogram of Oriented Gradient)
2.1 Giới thiệu về thuật toán HOG
Trong này ta có khái nệm về Gradient, Gradient (độ dóc) là biêu diễn cho tốc độ thay đôi của hàm, chỉ ra hướng thay đổi mạnh nhất của hàm Từ một bức ảnh thuật toán này sẽ sẽ lấy ra 2 ma trận quan trọng giúp lưu thông tin ảnh đó là độ lớn gradient (gradient magnitute) va phuong cua gradient (gradient orientation) Bang cách kết hợp 2 thông tin nảy vào một biêu đồ phân phối histogram, trong đó độ lớn gradient được đêm theo các nhóm bins của phương gradient Cuối cùng thu được véc tơ đặc trưng HOG đại diện cho histogram So khai la vay, trên thực tế thuật toán còn hoạt động phức tạp hơn khi véc tơ HOG sẽ được tính trên từng vùng cụ bộ như mạng CNN và sau đó là phép chuẩn hóa cụ bộ để đồng nhất độ đo Cuối cùng véc tơ HOG tổng hợp từ các véc tơ trên vùng cục bộ
Có 5 bước cơ bản dé xây dựng một vector HOG phát hiện đối tượng cho hình ảnh, bao gồm:
- Tiền xử lý Bước tiền xử lý sẽ, cắt hình ảnh thành các khối, chuyên kích thước về kích thước chuẩn, sau đó sử dụng các khối để tính toán đặc trưng ở các bước tiếp theo
- Tính độ dốc Đề tính toán mô tả HOG, ta tính toán độ dốc trên trục Ox và Oy Độ dốc được tính bằng
phép nhân chập ảnh gốc với véc tơ hai chiều tương ứng là:
D, =[-101]; D, =[10-1]"
Đối với hình ảnh màu, độ dốc của ba màu cơ bản (đỏ, xanh lá và xanh da trời) được tính toán Độ lớn của dốc tại một điểm ảnh là giá trị lớn nhất của cường độ dốc của ba kênh màu
- Tính vector đặc trưng cho từng ô (ví dụ 8x8 pixel) Dựa vào độ dốc, trên mỗi ô, tính toán các véc tơ đặt trưng theo hướng trên từng ô Trong đó ta chia không gian hướng thành p chiều vector đặt trưng của ô Sau đó rời rạc hóa góc hướng nghiêng tại mỗi điểm ảnh vào trong các chiều véc tơ đặc trưng của 6
- Chuẩn hóa khối (ví dụ 2x2 ô)
Bằng cách tính một ngưỡng cường độ trong một khối và sử dụng giá trị đó để chuân hóa tất cả các ô trong khối, các biêu đồ cục bộ sẽ được chuẩn hóa về độ tương phản đề tăng cường khả năng nhận dạng Kết quả sau bước chuẩn hóa sẽ là một vector đặc trưng được tính theo tỉ lệ ánh sáng, do đó nó có tính bất biên cao hơn đổi với các thay đổi về điều kiện ánh sáng
- Tính toán vector HOG
Với một ô, sẽ có một véc tơ có kích thước là 9 x I Một khối chứa 2x2 ô, sẽ có một véc tơ có kích thước
là 9x 1x4=36 x I Tương tự, với ví dụ một khung hình có 7 khối ngang và 15 khối dọc, khi nối toàn bộ các véc tơ trong khối lại, sẽ thu được một vec tơ HOG với kích thước là 36 x 1 x 7 x 15 = 3780 x I Sau khi hoàn thiện các bước trên, có thê sử dung véc to HOG để tính toán và nhận diện đối tượng Phát hiện khuôn mặt bằng đặc trưng HOG: Đề xác định khuôn mặt có trong bức ảnh từ webcam, phương pháp chúng tôi sử dụng HOG Đề tìm khuôn mặt, bắt đầu bằng chuyên ảnh sang đen trăng, dựa trên sự chênh lệch độ sáng giữa các điểm ảnh lân cận với nhau, có thể tìm ra hướng mà bức ảnh tối dần Tách bức ảnh thành chuỗi vùng nhỏ 16x16 pixels Ở mỗi ô vuông, đêm các sự thay đôi hướng của ánh sáng, vả tìm
ra hướng thay đổi ánh sáng chủ đạo đại diện cho cả nhóm
Sau đó sử dụng bộ lọc Gabor: Bộ lọc Gabor phân tích các thay đôi về ánh sáng và kết cấu đề phân tích hình ảnh: thay đôi cạnh và kết cầu trong một hình ảnh làm nỗi bật các đặc tính của bức ảnh Điều này giúp
Trang 4loại bỏ chỉ tiết không mong muốn, do đó các chi tiết mả thực sự mong muốn như các đường viền của môi, mat, long may va vi trí của chúng trong bức ảnh sẽ rõ ràng hơn Bộ lọc Gabor được sử dụng để phóng đại hướng của hình ảnh khuôn mặt, các cạnh được phóng đại vả sắc nét hơn, các đặc điểm khuôn mặt trở nên
rõ ràng và đơn giản hơn so với hình ảnh gốc, do đó nó tăng cường độ chính xác cho HOG
Kết quả cuối cùng, chuyên ảnh nguyên gốc sáng sang tập hợp hướng sáng đại diện, thê hiện cầu trúc đơn giản của khuôn mặt
2.2 Quá trình nhận diện khuôn mặt theo đặc trưng HOG
Có nhiều phương pháp trong đó các hệ thống nhận dạng khuôn mặt hoạt động, nhưng nói chung, chúng hoạt động bằng cách so sánh các đặc điểm khuôn mặt được chọn từ hình ảnh đã cho với khuôn mặt trong
cơ sở dữ liệu Nó cũng được mô tả như một ứng dụng dựa trên trí tuệ nhân tạo sinh trắc học có thê nhận dạng duy nhất một người bằng cách phân tích các mẫu dựa trên kết cầu và hình dạng khuôn mặt của người
đó
Nhận diện vị trí khuôn mặt bằng thuật toán HOG Trước hết, để có thê phân tích khuôn mặt và nhận diện, cần phải xác định vị trí khuôn mặt trước khi nhận diện chúng Sau khi xác định được khuôn mặt thi tách khuôn mặt ra khỏi bức ảnh đã cho Bắt đầu bằng chuyên ảnh sang đen trăng, bởi không cần màu ảnh trong nhận diện khuôn mặt Sau đó, nhìn vào từng pixel trong bức ảnh qua đótìm ra sự thay đổi anh sang giữa điểm ảnh và những điểm ảnh xung quanh, và tìm ra hướng mà bức ảnh tối dần Lặp lại quá trình đó cho mỗi điểm ảnh sẽ được thay thê bằng mội mũi tên Những mũi tên này được gọi là gradients (độ dốc)
và chúng chỉ hướng dòng ánh sáng từ sáng sang tôi trên toàn bộ bức ảnh Tách bức ảnh thành chuỗi vùng nhỏ 16x16 pixels, kết quả thu được giống như ở Hình 1 bên trái Ở mỗi ô vuông, đếm các sự thay đối hướng của ánh sáng, và tìm ra hướng thay đổi ánh sáng chủ đạo đại diện cho cả nhóm
Hình 1 Tách bức ảnh thành chuỗi vùng nhỏ 16x16 và cấu trúc đặc trưng của khuôn mặt
Kết quả cuối cùng, chuyên ảnh nguyên gốc sáng sang tập hợp hướng sáng đại diện, thê hiện cầu trúc đơn giản của khuôn mặt Hình I bên phải dưới đây là mô tả cầu trúc khuôn mặt dựa vào đặc trưng HOG
Đề tìm ra khuôn mặt trong hình ảnh HOG, cần tìm phần ảnh có cấu trúc giống nhất với cầu trúc HOG được trích lọc từ trong quá trình đào tạo Sử dụng kỹ thuật này, có thê dễ dàng tìm khuôn mặt ở bất cứ ảnh nao
Chuan héa vị trí khuôn mặt Vì khuôn mặt sẽ có nhiều góc chụp khác nhau nên việc nhận dạng khuôn mặt là một vấn đề lớn Đề giải quyết vấn đề này, có găng biến đôi bức ảnh sao cho mắt và môi luôn luôn ở cùng một vị trí đối với ảnh Điều này cũng khiến việc so sánh khuôn mặt ở bước kế tiếp dễ hơn
Dùng thuật toán Face Landmark Estimation (ước lượng cột mốc trên mặt) Đề xác định facial landmark,
sẽ phải xác định được những điểm chính trong bức ảnh tạo nên hình dạng khuôn mặt người Mục đích ở đây để đưa ra 68 điểm cụ thể như ở Hình 2 (gọi là cột mốc - nhu trong châm cứu) tồn tại trên mỗi khuôn mặt - đỉnh cằm, cạnh ngoài của mỗi mắt, cạnh trong cuả mỗi lông mày Điều này sẽ được thực hiện bằng cách huấn luyện một thuật toán học máy
Hình 2 Xác định 6§ điểm mốc trên bức ảnh
Trang 5Sau khi mắt và môi đã được xác định, có gắng quay, phóng to, thu nhỏ hay cat anh dé mắt và môi nằm chính giữa nhất có thê, không cần biến đổi 3D bởi có thê khiến ảnh bị méo Chỉ sử dụng biến đối đơn giản như quay, phóng để duy trì các đường thằng song song, phương pháp này trong đồ hoạ được gọi là biến đổi affne Dù quay mặt theo hướng nảo, cũng có thê chuyên mắt môi về trung tâm
Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận biết khuôn mặt Hon nữa với việc xác định đặc tính và các mỗi quan hệ, phương pháp này có thê cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi, cũng như khối lượng tính toán không quá lớn
Mã hóa khuôn mặt Mục tiêu của bước nảy là truyền khuôn mặt đã tìm được vào một mang noron dé tách loc ra 128 đo lường Trực tiếp so sánh khuôn mặt tìm được ở bước 2 với ảnh có trong bộ dữ liệu Khi tìm được một bức ảnh gần giống, ta tìm được tên người trong ảnh
Sử dung Deep Convolutional Neural Network - mang noron tich chap da lớp Nhưng thay vi đảo tạo mạng nơron để nhận diện ảnh, đảo tạo nó đề tìm ra 128 đo lường cho mỗi khuôn mặt Quá trình đảo tạo được mô tả ở hình 4 thực hiện băng cách đề máy tính nhìn 3 bức ảnh cùng I thời điểm: 2 ảnh (#1, #2) của cùng 1 người, và 1 ảnh của người khác (#3) Sau đó, thuật toán sẽ khởi tạo ngẫu nhiên 128 giá trị đo lường Sau đó nó sẽ thay đôi các trọng số nảy từ từ để giá trị tìm ra từ ảnh #l và #2 ngày càng giống nhau, và giá trị từ ảnh #2 ngày càng khác #3
Sau khi lặp lại quá trình này hàng triệu lần với hàng triệu bức ảnh của hàng ngàn người khác nhau, mạng nơron học được cách tạo ra 128 đo lường cho mỗi người Bất kế ảnh khác nhau nào của l người sẽ cho kết quả gần giống nhau
Hình 3 Đo lường khuôn mặt
Bộ 128 đo lường này được gọi là embedding (gắn mã) Ý tưởng giảm chiều dữ liệu thô sang đại điện do lường tạo ra từ máy tính xuất hiện rất nhiều trong học máy (đặc biệt là trong dịch thuật) Quá trình đào tao Convolutional Neural Network (CNN - mang noron tich chap) dé sinh mã khuôn mặt yêu cầu rất nhiều
dữ liệu và sức mạnh tính toán Việc cần làm là truyền hình ảnh khuôn mặt vào mạng đã được đào tạo đó để lay ra 128 đo lường cho mỗi khuôn mặt Tuy nhiên đề giải quyết đề nảy, có thê sử dụng thư viện OpenFace được pre-train model từ trước để giảm bớt thời gian tính toán Phương pháp này còn được gọi là Triplet Loss
Huấn luyện mô hình dựa trên các đặc trưng mã hoá với thuật toán KNN Thuật toán K láng giềng gần nhất trong tiếng Anh là K-Nearest Neighbor, viết tắt là KNN Thuật toán K láng giềng gần nhất là một kĩ thuật học có giám sát (supervised learning) dùng đề phân loại quan sát mới bằng cách tìm điểm tương đồng giữa quan sát mới này với dữ liệu sẵn có
KNN là một mô hình đơn giản và trực quan nhưng vẫn có hiệu quả cao vì nó không tham số; mô hình không đưa ra giả định nào về việc phân phối dữ liệu Hơn nữa, nó có thể được sử dụng trực tiếp để phân loại đa lớp Thuật toán KNN có nhiều ứng dụng trong ngành đầu tư, bao gồm dự đoán phá sản, dự đoán giá
cô phiếu, phân bổ xếp hang tin dụng trái phiêu doanh nghiệp, tạo ra chỉ số vốn và trái phiếu tùy chỉnh Trong bài toán này, mỗi cá nhân sẽ có một thư mục riêng với số lượng ảnh nhất định, mỗi ảnh sẽ cho ra
128 đặc trưng, và tất cá sẽ được đưa vào một bộ dữ liệu với label của họ cuối cùng bộ dữ liệu này sẽ được
sử dụng đề huấn luyện KNN model
Trang 63 _ Triển khai ứng dụng và đánh giá
3.1 Các tiêu chuẩn đánh giá thực nghiệm
Các phương pháp đánh giá được sử dụng trong bài này bao gồm accuaracy score cho việc so sánh độ hiệu quả của các thuật toán machine learning khi training, distance threshold khi kiểm tra ảnh đầu vào với KNN
và accuracy, val acurracy, loss, val loss khi thử nghiệm trên mô hình CNN
Accuracy score: Cách đánh giá này đơn giản tính tỉ lệ giữa số điểm được dự đoán đúng và tổng sô điểm trong tập dữ liệu kiểm thử Ví dụ có 6 điểm dữ liệu được dự đoán đúng trên tông số I0 điểm Vậy kết luận
độ chính xác của mô hình là 0.6 (hay 60%)
Distance threshold: Chỉ số khoảng cách cho phép khi nhận dạng Nếu khoảng cách dưới một chỉ số này (càng nhỏ, hệ thống nhận dạng khuôn mặt cảng nghiêm ngặt) thì trả về True, biểu thị các khuôn mặt khớp Mặt khác, nêu khoảng cách vượt quá ngưỡng dung sai, trả về False vì các mặt không khớp
3.2 Dir ligu thử nghiệm
Dữ liệu thu thập được từ 9 sinh viên được sử dụng để thử nghiệm trong báo cáo này Nguồn anh duoc thu thập từ webcam, hoặc hình ảnh chứa khuôn mặt được sinh viên cung cập Số lượng và phân bố được thê hiện ở Hình 4
Hình 4 Số lượng và phân chia label ảnh thử nghiệm được cung cấp
Dữ liệu này yêu cầu mỗi ảnh phải rõ khuôn mặt, có thê bao gồm các định dạng JPEG, JPG, PNG và mỗi ảnh chỉ chứa duy nhất ảnh của sinh viên đó Hệ thống cho phép upload ảnh từ web hoặc chụp lại tự động bằng cách bật webcam khi kết nối trên website
3.3 Thiết lập thực nghiệm
Theo như biêu đồ Hình 5 ta thấy được số lượng các đặc trưng theo giá trị, ở đây sử dụng trục hoành theo log đề dễ quan sát, với những nét càng đậm nghĩa là tại đó những giá trị mã hóa khuôn mặt tập trung cảng nhiều Mỗi cá nhân trên biêu đỗ có độ đậm nhạt khác nhau tại mỗi điểm do đó các đặc trưng phân bố của
họ cũng khác nhau
Hình ã Biêu đồ phân bô các đặc trưng theo từng cá nhân
Cũng như theo biêu đồ Hình 5 ta thấy răng giá trị mã hóa thường năm ở đoạn 10” đến dưới I (0.01 đến 1) Hình 6 bên trái là ví dụ về sự phân lớp đặc trưng khuôn mặt của 2 sinh viên, ta thấy được 2 lớp màu đỏ ứng với các đặc trưng của sinh viên mã 002 và màu xanh ứng với sinh viên 029, mỗi 128 đặc trưng sẽ được lay 2 đặc trưng làm mô tả chính ở trục x và y theo thư viện PCA Như hình, sự phân bố của 2 sinh viên nằm cách nhau rất xa, vậy nên khả năng dự đoán của 2 sinh viên này sẽ đạt hiệu suất khá cao, tuy nhiên van sé
Trang 7có điểm làm nhiễu nam gần đoạn phân bổ của sinh viên mã 002 nhưng chỉ I điểm không ảnh hưởng nhiều điều này là không thê tránh khỏi
Tương tự bên phải Hình 6 mô tả sự phân bố đặc trưng khuôn mặt của cả 9 sinh viên, đa phan ở cách khá
xa nhau, mặc dù một số trường hợp gần nhau, nhưng với thuật toán sử dụng là KNN, thuật toán này còn xét số lượng điểm lân cận nên accuracy vẫn đạt trên 99%, Điều kiện này đối với bài toán đề ra là chấp nhận được
| % sIẾ” LÊ
Hình 6 Biểu đồ phân lớp của 2 sinh viên 002 và 029 (trai) va cả 9 sinh viên (phải)
Áp dụng phương pháp sử dụng thuật toán HOG đề nhận dạng khuôn mặt và mô hình mạng CNN đề mã hóa khuôn mặt trên tổng số 3308 anh của 9 sinh viên, trên GPU NVIDIA Gerforce 940MX va CPU Intel Core I3-7100U thì thời gian chạy mất 1h đồng hỗ với kết quả:
Bảng 1 Accuracy thu được khi đánh giả đữ liệu
Thuật toán phần lớp Accuracy Score (3%)
Gausian Native Bayes 99.79
99.12 (val acurrac
Nhu vay theo bang trên ta thay duoc Model dựa KNN model có hiệu quả khá cao, do đó trong ứng dụng này, KNN sẽ được sử dụng để huấn luyện mô hình
Triển khai vào thực tế, với ngôn ngữ sử dụng là Python và amework Flask, một web framework, no thuộc loại micro-ffamework được xây dựng bằng ngôn ngữ lập trình Python Flask cho phép xây dựng các ung dung web từ đơn giản tới phức tạp
Một vài kết quả chạy thử nghiệm, Hình 7 bên trái hiển thị kết quả chạy nhận diện bằng webcam, độ chính xác là 90.12 Độ chính xác này được tính bằng khoảng cách Vector từ điểm nhận dạng đến các điểm trong mô hình đã được huấn luyện, khuôn mặt được nhận diện bằng thuật toán KNN, thuật toản so sánh các điểm lân cận gần với nó đề xác định Hình 7 bên phải là kết quả trang web hiến thị ảnh của cá nhân xuất hiện trong ảnh được thuật toán phát hiện và lọc ra
Hình 7 Kết quả nhận diện từ webcam và giao diện hiển thị ảnh cá nhân trên nền web
Trang 8Tài liệu tham khảo
1 W Zhao, R Chellappa, P Phillips, and A Rosenfeld.: Face recognition: A literature survey ACM Computing
Surveys Vol.35(4):399-458, 2003
Ot Bin Sun, Chian Prong Lam va Jian Kang Wu (1998)
Guodong Guo, Stan Z.Li, Kap Luk Chan (17 January 2001), Revue technique-Thomson-CSF, 1993 Local Binary
Patterns with Python & OpenCV — 2015 by Adrian Rosebrock
P Viola and M Jones.: Robust Real-time Object Detection International Journal of Computer Vision, 2001 P Belhumeur, J Hespanha and D Kriegman.: Eigenfaces vs Fisherfaces: Recognition using class specific linear projection IEEE Transactions On Pattern Analysis And Machine Intelligence Vol.19(7):71 1-720, 1996
Y LeCun and Y Bengio.: Convolutional networks for images, speech, and time series The handbook of brain
theory and neural networks 3361 (10), 1995
M Turk and A Pentland: Face recognition using eigenfaces Proceedings of the Conference on Computer Vision
and Pattern Recognition, 1991
R Lienhart and J Maydt.: An Extended Set of Haar-like Features for Rapid Object Detection Proceedings of
International Conference on Image Processing, 2002, pp 900-903
Y Freund and R Schapire.: A decision-theoretic generalization of on-line learning and an application to boosting
Proceedings of the Second European Conference on Computational Learning Theory 1995, pp 23-37