KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Trên cơ sở tìm hiểu và nghiên cứu về bài tốn nhận dạng khuôn mặt, luận văn đã đạt đƣợc những kết quả nhƣ sau:
- Giới thiệu khái quát về bài toán nhận dạng khuôn mặt.
- Giới thiệu sơ lƣợc về những biện pháp đã đƣợc sử dụng cho bài tốn nhận dạng khn mặt, từ đó đƣa ra các so sánh và nhận xét để tìm đƣợc phƣơng án triển khai thích hợp nhất.
- Trình bày cơ sở lý thuyết sử dụng để xác định khuôn mặt ngƣời. Khái quát định nghĩa, cấu trúc của mạng Neuron tích chập. Từ đó phát triển lên MTCNN và hƣớng giải quyết bài tốn xác định khn mặt ngƣời bằng MTCNN.
- Trình bày thuật tốn ArcFace thuật tốn chính đƣợc sử dụng trong Model nhận dạng khuôn mặt mà luận văn phát triển.
-Tiến hành xây dựng hệ thống thực nghiệm điểm danh trên điện thoại bằng phƣơng pháp nhận dạng khuôn mặt
- Hệ thống đã hoạt động tốt trên nền tảng website, giao diện tiện lợi dễ sử dụng.
- Tỷ lệ nhận diện tƣơng đối chính xác 95% (chụp hình), 100% quay video.
- Kết quả nhận diện chỉ vài mili giây phù hợp cho bài toán điểm danh.
Bên cạnh những kết quả đạt đƣợc thì vẫn cịn những hạn chế, đó là:
- Độ chính xác chƣa tốt cho phần chụp hình do tập dữ liệu học sinh chƣa đủ lớn, tối đa chỉ có 05 tấm, góc chụp chƣa rõ hết khn mặt học sinh.
Qua những kết quả và hạn chế của hệ thống đã cho thấy việc kiểm sốt hệ thống nhận diện khn mặt đòi hỏi một quá trình nghiên cứu và thực nghiệm lâu dài. Trƣớc mắt, hƣớng tiếp cận của luận văn là sẽ tập trung cải thiện tăng độ chính xác và độ ổn định của hệ thống. Từ đó, triển khai hệ thống với quy mơ lớn hơn và áp dụng vào các ứng dụng thực tế.
PHỤ LỤC
Các khái niệm về machine learning
Observation: Kí hiệu là x input trong các bài tốn. Observation thƣờng có
dạng một vector gọi là feature vector. Mỗi gọi là một feature. Ví dụ bạn muốn
đốn xem hơm nay có mƣa khơng dựa vào observation gồm các feature (nhiệt độ, độ ẩm, tốc độ gió).
Label: Kí hiệu là y, output của bài toán. Mỗi observation sẽ có một label
tƣơng ứng (ví dụ mỗi khn mặt sẽ có một cái tên) Label có thể mang nhiều dạng nhƣng đều có thể chuyển đổi thành một số thực hoặc một vector.
Model: Là nó là một hàm số f(x), nhận vào một observation x và trả về một
label y=f(x).
Parameter: mọi thứ của model đƣợc sử dụng để tính tốn ra output. Ví dụ
model là một hàm đa thức bậc hai f (x)=ax1^2+bx2+c: thì parameter của nó là bộ ba (a,b,c). Tuy nhiên, còn một loại parameter đặc biệt nữa gọi là hyperparameter.
Hyperparameter là một khái niệm mang tính tƣơng đối và quy ƣớc, thƣờng chỉ các parameter có tính chất hơi mặc định. Đối với hàm đa thức thì bậc của đa thức có thể đƣợc xem là một hyperparameter. Để ngắn gọn, ngƣời ta thƣờng gom tất cả parameter của một model lại thành một vector, thƣờng đƣợc kí hiệu là w Trong f(x) vừa rồi thì w=(a,b,c). Kí hiệu fw(x) đƣợc dùng để chỉ một model đã đƣợc xác định tham số. Trong trƣờng hợp cấu trúc model đã đƣợc xác định (ví dụ đã biết đƣợc nó là đa thức bậc 2), thì có thể dùng w để chỉ model thay cho fw(x) luôn.
Epoch: Một Epoch đƣợc tính là khi chúng ta đƣa tất cả dữ liệu vào mạng neural network 1 lần. Khi dữ liệu quá lớn, chúng ta không thể đƣa hết mỗi lần tất cả tập dữ liệu vào để huấn luyện đƣợc. Buộc lòng chúng ta phải chia nhỏ tập dữ liệu ra thành các batch (size nhỏ hơn).
Batch Size: Batch size là số lƣợng mẫu dữ liệu trong một batch. Ở đây, khái
niệm batch size và số lƣợng batch (number of batch) là hồn tồn khác nhau. Nhƣ đã nói ở trên, chúng ta khơng thể đƣa hết tồn bộ dữ liệu vào huấn luyện trong 1 epoch, vì vậy chúng ta cần phải chia tập dữ liệu thành các phần (number of batch), mỗi phần có kích thƣớc là batch size.
Iterations: Iterations là số lƣợng batch size cần để hồn thành 1 epoch.
Ví dụ chúng ta có tập dữ liệu có 20,000 mẫu, batch size là 500, vậy chúng ta cần 40 lần lặp (iteration) để hoàn thành 1 epoch.
K-fold: Đây là phƣơng pháp nâng cấp của hold-out. Toàn bộ dữ liệu đƣợc
chia thành K tập con. Q trình học của máy có K lần. Trong mỗi lần, một tập con đƣợc dùng để kiểm tra và K-1 tập còn lại dùng để dạy.
Hold-out: Phƣơng pháp đơn giản nhất. Dữ liệu đƣợc chia một cách ngẫu
nhiên thành một tập dữ liệu học và một tập dữ liệu kiểm tra. Dùng tập đầu tiên để dạy máy, rồi dùng ngay tập còn lại để kiểm tra.
Onehot Encoding: One-hot encoding là một cách để biểu diễn các biến hoặc
các lớp đầu ra (target class) trong trƣờng hợp các bài toán phân loại. Chúng ta có thể convert lớp đầu ra từ một chuỗi (string), một số (integer) thành dạng one-hot encoding. Một vectơ one-hot có chiều dài đúng bằng số lƣợng class cần phân loại và đƣợc fill 1 tại vị trí (index) của target class và 0 ở tất cả các vị trí khác. Ví dụ: nếu các lớp đầu ra của chúng ta là mèo và chó, chúng có thể đƣợc biểu thị bằng hai vector [1,0] [1,0] và [0,1] [0,1] tƣơng ứng. Nếu chúng ta có 1000 class đầu ra thì vector one-hot sẽ có độ dài là 1000 với duy nhất 1 vị trí mang giá trị 1. Điều này làm cho one-hot encoding không đƣa ra cho chúng ta giả định nào về sự tƣơng quan của các biến đầu ra. Vậy một câu hỏi là tại sao chúng ta lại cần phải có one-hot encoding. Với hàm softmax đƣợc bàn luận trong phần tiếp theo thì one-hot encoding kết hợp với softmax sẽ khiến cho bài toán phân loại đa lớp (multi-class classification) trở nên khả thi trong mạng nơ ron nhân tạo.
[1] Qaim Mehdi Rizvi, Prof. Bal Gopal Agarwal, Dr. Rizwan Beg: A Review on Face Detection Methods, February 2011.
[2] M.Gopi Krishna, A. Srinivasulu, Face Detection System On AdaBoost Algorithm Using Haar Classifiers, Tạp chí quốc tế về nghiên cứu kỹ thuật hiện đại 2012.
[3] Trần Đình Ngọc, Xây dựng ứng dụng hỗ trợ chấm công dựa trên nhận dạng khuôn mặt ngƣời- tại cơng ty Tin Học Hồi Ân (2018).
[4] Cristina Ruiz Sancho, Pedestrian Detection using a boosted cascade of Histogram of Oriented Gradients, Linköping – Barcelona, August 2014.
[5] Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, Senior Member, IEEE, and Yu Qiao, Senior Member, IEEE, Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks (2016).
[6] Chi-Feng Wang, What Does A Face Detection Neural Network Look Like <
https://towardsdatascience.com/>, xem 01/7/2020.
[7] Florian Schroff, Dmitry Kalenichenko, James Philbin Google Inc. FaceNet: A Unified Embedding for Face Recognition and Clustering.
[8] OpenFace, <https://cmusatyalab.github.io/openface/>, xem 01/7/2020.
[9] Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato, Lior Wolf: Facebook AI Research Menlo Park, CA, USA. DeepFace: Closing the Gap to Human-Level Performance in Face Verification.
[10] Understanding of a Convolutional Neural Network, The International Conference on Engineering and Technology 2017, At Antalya, Turkey.
[11] TS. Nguyễn Hữu Tuân, Xây dựng hệ thống nhận dạng khuôn mặt sử dụng LPQ (Local Phase Quantization), Hội nghị Quốc tế Khoa học công nghệ Hàng Hải 2016.
[12] Jiankang Deng, Jia Guo, Niannan Xue, ArcFace: Additive Angular Margin Loss for Deep Face Recognition, (cs.CV, 9 Feb, 2019).