Hệ thống nhận diện khuôn mặt trong chấm công và điểm danh
Bạn đang xem tài liệu "Hệ thống nhận diện khuôn mặt trong chấm công và điểm danh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- he_thong_nhan_dien_khuon_mat_trong_cham_cong_va_diem_danh.pdf
Nội dung text: Hệ thống nhận diện khuôn mặt trong chấm công và điểm danh
- HỆ THỐNG NHẬN DIỆN KHUÔN MẶT TRONG CHẤM CÔNG VÀ ĐIỂM DANH Lê Trung Kiên, Nguyễn Văn Kiện Khoa Công nghệ Thông tin, Trường Đại học Công nghệ TP. Hồ Chí Minh GVHD: ThS. Võ Hoàng Khang TÓM TẮT Điểm danh là một công việc thực tế thường được thực hiện trong các trường học, cơ quan, nhà máy. Tuy nhiên, công tác điểm danh còn khá nhiều bất cập, phương pháp điểm danh bằng cách đọc tên tốn rất nhiều thời gian, điểm danh bằng cách quét vân tay thì có thể lây bệnh truyền nhiễm, hay nếu điểm danh bằng quẹt thẻ thì có thể xảy ra tình trạng người này quẹt thẻ giúp người khác. Từ các vấn đề ở trên, chúng ta cần phải xây dựng hệ thống mới có yêu cầu kỹ thuật, quản lý chuyên nghiệp hơn, giải quyết các khuyết điểm của cách quản lý cũ. Trong bài báo này, chúng tôi nghiên cứu các thành tựu của mô hình nhận diện khuôn mặt, so sánh và thực nghiệm để tìm ra phương pháp tối ưu nhất. Song song với đó sẽ thực hiện phân tích, thiết kế một hệ thống lưu trữ thông tin hoàn chỉnh, ứng dụng các công nghệ xây dựng phần mềm mới nhất hiện nay áp dụng vào hệ thống chấm công, điểm danh. Từ khóa: cnn, nhận diện khuôn mặt, resnet, ssd mobilenet, support vector machine 1 GIỚI THIỆU Hệ thống điểm danh bằng khuôn mặt thực hiện tự động phát hiện khuôn mặt người trong ảnh thu được từ camera và xác định danh tính của đối tượng trong hệ thống dựa vào nội dung của ảnh khuôn mặt rút trích được. Do đó, chỉ cần gắn camera trong phòng hoặc trước lối đi vào, hệ thống sẽ tự động quét và cập nhật chính xác thông tin của những người có mặt mà không gây bất cứ sự phiền phức nào cho người cần điểm danh. Tuy nhiên, hiện nay ở Việt Nam các hệ thống này chưa thực sự phát triển mạnh, chủ yếu là các sản phẩm của nước ngoài với giá thành cao. Vì vậy, chúng tôi đề xuất giải pháp tổng thể cho bài toán nhận diện khuôn mặt người trực tiếp từ các thiết bị webcam, camera giám sát, hướng đến mục tiêu xây dựng hệ thống hoàn chỉnh bao gồm các ứng dụng dùng để chấm công một cách tự động theo thời gian thực, ứng dụng điểm danh trên thiết bị di động và ứng dụng cho người quản lý. Cùng với đó hệ thống cũng cần đạt được các yêu cầu về tốc độ xử lý nhanh, dễ dàng triển khai trên quy mô lớn và có chi phí đầu tư thấp. Mô hình được đề xuất sử dụng trên cơ sở kết hợp mô hình SSD [1, 7] dựa trên mạng MobileNet V1 [4] cho phát hiện khuôn mặt và kiến trúc mạng neural học sâu ResNet-34 [2] có khả năng tự động trích chọn đặc trưng khuôn mặt, sử dụng bộ phân lớp SVM [8]. 84
- 2 PHƯƠNG ÁN TIẾP CẬN Hình 1. Sơ đồ xử lý logic nhận diện khuôn mặt 2.1 SSD MobileNet Phát hiện khuôn mặt là quá trình tìm kiếm và định vị khuôn mặt trên một frame ảnh bất kì [3]. Phương pháp phát hiện khuôn mặt ở đây được đề xuất sử dụng là mô hình kiến trúc của SSD xây dựng trên mạng cơ sở MobileNet [6]. 2.1.1 SSD Được thiết kế để phát hiện đối tượng trong thời gian thực, được tăng tốc quá trình bằng cách loại bỏ sự cần thiết của mạng đề xuất khu vực. Để giải quyết về vấn đề độ chính xác giảm, SSD áp dụng một vài cải tiến bao gồm các feature map đa kích thước và sử dụng bounding box mặc định [1]. Những cải tiến này cho phép SSD tiến gần được với độ chính xác cao nhưng lại có thể sử dụng hình ảnh có độ phân giải thấp hơn, giúp đẩy tốc độ cao hơn [7]. 2.1.2 MobileNet MobileNet có được độ chính xác cao trong khi thời gian tính toán thấp nằm ở sự cải tiến Convolution layer bình thường [4]. Trong MobileNet có 2 Conv layer được sử dụng là: Separable Convolution và Depthwise Convolution [4, 6]. Thay vì thực hiện phép tích chập như thông thường, Separable Convolution sẽ tiến hành phép tích chập Depthwise Spatial sau đó là phép tích chập Pointwise [9]. Còn Depthwise Convolution sẽ chỉ thực hiện phép tích chập Depthwise spatial. Ở đây, thay vì thực hiện 1 Conv với 9 phép nhân thì Depthwise Spatial chỉ dùng 3 phép nhân cho mỗi kernel nhỏ, nghĩ là 6 phép nhân tất cả để đạt được kết quả tương tự như với Conv thông thường [4, 5, 7]. Như vậy, khi khối lượng các phép nhân giảm đi, độ phức tạp của tính toán sẽ giảm xuống, đồng thời giúp giảm đáng kể khối lượng tính toán và số lượng tham số của mạng. Với sự thay đổi này, MobileNet có thể hoạt động một cách mượt mà ngay cả trên phần cứng cấu hình thấp. 85
- Hình 2. Cấu trúc của một Depthwise Separable Convolution Bảng 1. Độ chính xác và hiệu suất của mô hình dựa trên bộ dữ liệu xác thực ImageNet [9] Top-1 Top-5 Model Size Parameters Accuracy Accuracy VGG16 528 MB 71,3% 90,1% 138,357,544 VGG19 549 MB 71,3% 90,0% 143,667,240 ResNet50 98 MB 74,9% 92,1% 25,636,712 ResNet101 171 MB 76,4% 92,8% 44,707,176 ResNet50V2 98 MB 76,0% 93,0% 25,613,800 InceptionV3 92 MB 77,9% 93,7% 23,851,784 InceptionResNetV2 215 MB 80,3% 95,3% 55,873,736 MobileNet 16 MB 70,4% 89,5% 4,253,864 Mô hình SSD được chia làm hai giai đoạn: - Trích xuất feature map, dựa vào mạng cơ sở để tăng hiệu quả trong việc phát hiện. - Áp dụng các bộ lọc tích chập để có thể detect được các đối tượng. 86
- Hình 3. Mô hình mạng SSD dựa trên kiến trúc MobileNet 2.2 ResNet Tăng độ sâu mạng không chỉ đơn giản là xếp chồng các lớp lại với nhau. Mạng sâu rất khó huấn luyện vì vấn đề vanishing gradient – vì độ dốc được truyền ngược trở lại các lớp trước đó, phép nhân lặp đi lặp lại có thể làm cho độ dốc cực nhỏ. Kết quả là, hiệu suất của mạng bị bão hòa hoặc giảm hiệu quả nhanh chóng. Giải pháp là sử dụng kết nối tắt đồng nhất để xuyên qua một hay nhiều lớp. Một khối như vậy được gọi là Residual Block [2]. Với Residual Block, ta hoàn toàn có thể train các mô hình CNN có kích thước và độ phức tạp lớn hơn mà không lo bị exploding/vanishing gradient. Mấu chốt là sau cứ 2 layer, ta cộng input với output: F(x) + x. Hình 4. Cấu trúc Residual Block 2.3 Support Vector Machine (SVM) Trong vấn đề phân lớp nhị phân, giải thuật SVM tìm siêu phẳng tối ưu để cho phân hoạch các điểm dữ liệu thành 2 phần sao cho các điểm cùng một lớp nằm về một phía của siêu 87
- phẳng. Siêu phẳng tối ưu là siêu phẳng tách hai lớp ra xa nhất có thể dựa trên hai siêu phẳng hỗ trợ song song, chia không gian thành các miền khác nhau và mỗi miền chứa một loại dữ liệu [5, 8]. 2.3.1 Hyperplane Ý tưởng của SVM là tìm một siêu phẳng (hyper lane) để phân tách các điểm dữ liệu. Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa một loại dữ liệu. Với những bộ data phức tạp mà không thể tìm được đường thẳng để phân chia thì ta cần dùng thuật toán để ánh xạ bộ data đó vào không gian nhiều chiều hơn (n chiều), từ đó tìm ra siêu mặt phẳng (hyperplane) để phân chia. Siêu phẳng này được biểu diễn bằng hàm số: = b (W và X là các vector là tích vô hướng), hay WT=b (WT là ma trận chuyển vị) [8]. Hình 5. Support Vector Machine 2.3.2 Chọn siêu phẳng tối ưu - Siêu phẳng phân tách hai lớp giữ liệu H thỏa mãn + b = 0, tạo ra 2 nửa không gian dữ liệu. - Không gian các dữ liệu lớp âm Xi thỏa mãn + b ≤ -1 và không gian dữ liệu lớp dương Xi thỏa mãn + b ≥ 1. - Chọn hai siêu phẳng lề H1 đi qua điểm thuộc lớp âm và H2 đi qua điểm thuộc lớp dương đều song song với H0. 88
- H1: + b = -1 H2: + b = 1 Khoảng cách từ H1 đến H là d- Khoảng cách từ H2 đến H là d+ Khoảng cách giữa hai siêu phẳng hỗ trợ m = (d-) + (d+) được gọi là mức lề. Có thể thấy rằng lề phân hoạch càng lớn thì mô hình phân lớp càng an toàn. Những phần tử nằm ngược phía với siêu phẳng hỗ trợ được coi như lỗi. Giải thuật SVM tìm siêu phẳng tối ưu cần phải cực đại hóa lề và cực tiểu hóa lỗi [8]. 2.3.3 Support Vector Các điểm trắng, đen nằm trên 2 đường biên được gọi là các support vector, vì chúng có nhiệm vụ support để tìm ra siêu phẳng [2, 4, 8]. Tính m (Margin) Khoảng cách từ một điểm X đến siêu phẳng H là: k 0 Trong đó ||W|| là độ dài của vector: ||W|| = =√ Khoảng cách từ một điểm X nằm trên H đến H : d- = = i 1 0 Khoảng cách từ một điểm X nằm trên H đến H : d+ = = j 1 0 Từ đó ta có thể tính được mức lề m = (d-) + (d+) = Giá trị m lớn nhất khi độ dài vector ||W|| = 1. Khi đó mức lề m = (d-) + (d+) = = 2 3 TRIỂN KHAI HỆ THỐNG Bộ dataset có 3000 ảnh, mỗi ảnh có 5 caption, trong đó: 2700 ảnh - train, 300 ảnh – test. Ở đây chúng tôi sử dụng mô hình có sẵn để huấn luyện cho bộ dữ liệu trên, cụ thể là MobileNet. Trong ứng dụng, chúng tôi trích chọn các đặc trưng của khuôn mặt: Mắt, mũi, miệng với nguồn dữ liệu input là video từ Webcam/Camera. Hình 6. Sơ đồ triển khai hệ thống 89
- 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong bài báo này, chúng tôi đã quyết được vấn đề làm sao để có thể điểm danh, chấm công một cách tự động, nhanh chóng và chính xác với độ tin cậy trên 90%; Xây được hệ thống quản lý có thể hoạt động trên cấu hình thấp và đồng thời khắc phục được những nhược điểm của hệ thống điểm danh cũ. Với kết quả như trên, trong nghiên cứu tiếp theo, chúng tôi sẽ tiến hành tối ưu hóa mô hình nhận diện, tăng tốc độ xử lý, độ chính xác; đưa việc điểm danh sinh viên lên thiết bị di động và sinh viên có thể tự điểm danh ngay chính trên thiết bị cá nhân. TÀI LIỆU THAM KHẢO [1] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng- Yang Fu, Alexander C. Berg. SSD: Single Shot MultiBox Detector. In: CVPR (2015) [2] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. Deep Residual Learning for Image Recognition. In CVPR 2015 [3] Nguyễn Thị Thanh Tân, Huỳnh Văn Huy, Ngô Quốc Tạo. Phương pháp nhận diện mặt người từ webcam. Hội thảo quốc gia lần XX: Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông 2017 [4] Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, Hartwig Adam. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. arXiv:1704.04861v1 2017 [5] Lukasz Kaiser, Aidan N. Gomez, Francois Chollet. Depthwise separable convolutions for neural machine translation. In ICLR 2018 [6] (12/08/2020) [7] 851a94607d11 [8] svm [9] 3Q75wB1GlWb (12/08/2020) 90