Nội dung bài viết trình bày hệ thống phát hiện và nhận diện mặt người sử dụng mô hình Squeezenet và SSD. Để hiểu rõ hơn, mời các bạn tham khảo chi tiết nội dung bài viết.
Hệ Thống Phát Hiện Và Nhận Diện Mặt Người Sử Dụng Mơ Hình SQUEEZENET Và SSD Lê Hà Ngun(1*), Lê Đức Hùng (1**) (1) Phịng thí nghiệm DESLAB, Khoa Điện tử - Viễn thông, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM Email: (*)lehanguyen97@gmail.com, (**)ldhung@hcmus.edu.vn Abstract — Trong báo này, đề xuất hệ thống phát nhận diện khuôn mặt sử dụng mạng nhân chập sâu Các phương pháp gần trọng vào việc nâng cao độ xác, có nhiều mơ hình mạng nhân chập sâu đạt độ xác chấp nhận Hệ thống đề xuất sử dụng phương pháp, mơ hình mạng nhân chập nhỏ, tập trung vào tốc độ giữ độ xác cần thiết Cụ thể chúng tơi sử dụng mơ hình SqueezeNet Single Shot Multibox Detector (SSD) Việc sử dụng mạng nhỏ giúp dễ huấn luyện, triển khai ứng dụng Mơ hình phát khn mặt sử dụng TinySSD, kết hợp SSD SqueezeNet, có AP 85% đạt tốc độ 110 fps, gấp đôi so với mô hình SSD gốc sử dụng mạng VGG16 yêu cầu 2.5% số lượng tham số Mơ hình nhận diện khn mặt sử dụng SqueezeNet độ xác 98% tập liệu FDDB, ngang ngửa với người, sử dụng 1% số lượng tham số so với mơ VGGFace, Facenet Keywords – Mạng nhân chập sâu, SSD, SqueezeNet GIỚI THIỆU Phát nhận diện khuôn mặt công nghệ thiết yếu thời đại Nhận diện khuôn mặt kỹ thuật nhận diện sinh học sử dụng rộng rãi, vấn đề nghiên cứu kĩ lâu dài vào kĩ lưỡng Về bản, phương pháp truyền thống thường dựa vào hai tầng biểu diễn ví dụ đáp ứng lọc, biểu đồ thống kê tần số đặc trưng,… Các phương pháp thường tập trung vào việc tối ưu thành phần tiền xử lý, biến đổi đặc trưng,… dẫn đến việc khơng có đột phá độ xác Hơn nữa, phương pháp truyền thống tập trung vào thay đổi với hình ảnh độ sáng, hướng nghiêng khuôn mặt, biểu cảm,… Kết dẫn đến độ xác phương pháp “nơng” truyền thống không vượt qua người không phù hợp với ứng dụng thực tế AlexNet [1] với phương pháp học sâu mở cách tiếp cận việc nhận diện vật thể nói chung khn mặt nói riêng Học sâu, cụ thể mạng nhân chập sâu (Deep Convolutional Neural Network – Deep CNN), sử dụng tập hợp nhiều lớp xử lý để trích xuất biến đổi đặc trưng Các lớp đặc trưng học tương ứng với mức độ trừu tượng khác nhau, cho độ xác hướng khuôn mặt, điều kiện ngoại cảnh,… Các đặc trưng học lớp đầu tương ứng với đặc trưng người thiết kế (như đường thẳng, góc,…), lớp phía sau mang tính trừu tượng cao mang lại độ xác tương đương tốt người Phát khuôn mặt tiền đề cho ứng dụng liên quan đến khuôn mặt Các phương pháp truyền thống sử dụng thuật toán đề xuất khu vực kết hợp với mơ hình để nhận diện khn mặt Về mơ hình nhận diện, với đa dạng hình dáng khn mặt, kèm theo vật cản, điều kiện ánh sáng,… khiến cho việc phát khn mặt thực tế gặp nhiều khó khăn Có nhiều thuật tốn phát khn mặt, điển hình Viola – Jones [2], sử dụng đặc trưng Haar huấn luyện AdaBoost, đạt hiệu tốt, đáp ứng thời gian thực Tuy nhiên, khả phát Viola – Jones bị hạn chế với biến đổi tương đối khuôn mặt có tăng số lượng lẫn độ phức tạp phân loại Một số thuật toán sử dụng mơ hình với thành phần biến đổi (Deformable Part Model [3] – DPM) đạt độ xác cao, nhiên lại u cầu nhiều sức mạnh tính tốn, với liệu trình huấn luyện đặc biệt Các mơ hình mạng nhân chập sâu đạt khả cao việc nhận diện, khiến cho việc xác định khn mặt trở nên xác nhiều, liệu huấn luyện lại đơn giản Hơn nữa, có số cách tiếp cận gộp chung thuật tốn đề xuất khu vực mơ hình nhận diện, điển Faster RCNN [4], YOLO [5] SSD [6] Các cách tiếp cận giúp tăng tốc độ mơ hình phát khn mặt dựa mạng nhân chập sâu lên mức đáp ứng thời gian thực Các mạng nhân chập sâu giúp cho vấn đề phát nhận diện khuôn mặt có độ xác cao Tuy nhiên điểm hạn chế mạng nhân chập sâu số phép tính tốn số lượng tham số lớn, tương ứng với độ sâu mạng Điều làm giảm khả ứng dụng mạng nhân chập sâu Đa số ứng dụng phát nhận diện khuôn mặt sử dụng trực tiếp mạng nhân chập mà phải sử dụng phương pháp với độ xác thấp sử dụng máy chủ thông qua mạng, dẫn đến độ trễ cao Vì vậy, cần hệ thống với độ xác cao, trì số lượng 138 phép tính tốn số lượng tham số thấp cho ứng dụng với nhớ khả tính tốn thấp Trong báo này, đề xuất hệ thống sử dụng SqueezeNet [7], mơ hình mạng nhân chập sâu với độ xác tương đương AlexNet với số lượng tham số thấp, điều đồng nghĩa với số lượng phép tính toán giảm tốc độ cải thiện tương đối Với vấn đề nhận diện khuôn mặt, sử dụng SqueezeNet để trích xuất liệu, cho vector nhúng 128 chiều để phân loại hai khuôn mặt, lấy ý tưởng từ FaceNet [8] VGGFace [9] Sau đó, chúng tơi sử dụng thuật tốn k-lân cận gần để phân loại nhiều khuôn mặt Đối với vấn đề phát khuôn mặt (face detection), sử dụng TinySSD, chất SqueezeNet làm mạng sở cho SSD (Single Shot Multibox Detector), với việc tối ưu số lượng lọc lớp, với việc giảm số lượng phân loại với tỷ lệ khung hình khơng phù hợp với khn mặt Phần lại báo tổ chức sau: Phần mơ tả cụ thể mơ hình hệ thống nhận diện khuôn mặt hệ thống phát khn mặt, ý tưởng mơ hình Phần mơ tả hàm mát q trình huấn luyện mơ hình Phần kết thực nghiệm hệ thống Cuối cùng, kết luận báo Phần Hình Mơ hình hệ thống nhận diện khn mặt Hình Mơ hình SqueezeNet 1.1 dùng hệ thống nhận diện khn mặt Bảng Số lượng thông số hệ thống nhận diện khuôn mặt dựa SqueezeNet Tên lớp/ loại Ảnh đầu vào Conv1 Max pooling Fire2 Fire3 Max pooling Fire4 Fire5 Max pooling Fire6 Fire7 Fire8 Fire9 Conv10 GAP Dense_l2 Các lớp BN MƠ HÌNH HỆ THỐNG 2.1 Hệ thống nhận diện khuôn mặt Chúng tơi sử dụng mơ hình SqueezeNet 1.1 để trích xuất đặc trưng Để đầu mạng vector nhúng, lớp fullyconnected (Dense_l2) thêm vào sau lớp Global Average Pooling (GAP) Chúng không giảm số lượng lọc lớp Conv10 thành 128 (để lớp GAP vector nhúng trực tiếp) điều làm giảm số lượng đặc trưng cần thiết, lớp Dense_l2 kết hợp đặc trưng lại Ngồi ra, để dễ huấn luyện, lớp BatchNorm thêm vào sau lớp nhân chập fully-connected trước hàm phi tuyến, trừ lớp Conv10 đầu lấy trung bình lớp GAP Chúng tơi cịn sử dụng thêm lớp Dropout sau lớp Conv10 với tỷ lệ giữ lại 80% để giúp mạng không bị khớp Chúng tơi sử dụng ảnh 160×160 để giảm số phép tính tốn Ảnh đầu vào chuẩn hóa cách trừ 127.5 chia cho 128 Vector nhúng có độ dài 128 cân độ xác tốc độ tính tốn cho phân loại sau Tuy VGGFace [9] sử dụng vector nhúng dài 4096 độ xác tương đương FaceNet [8] sử dụng vector nhúng với độ dài 128 Lớp L2 chia phần tử vector đầu vào cho L2 Norm vector Việc để chuẩn hóa số vector nhúng để khoảng cách vector nằm khoảng [0,4] giúp việc chọn khoảng cách phân biệt cặp khuôn mặt khác dễ Tổng cộng Kích thước lọc/bước Độ sâu 79 × 79 × 64 3×3/2 39 × 39 × 64 3×3/2 Kích thước đầu × × × #thơng số 160 × 160 × 39 × 39 × 128 39 × 39 × 128 19 × 19 × 128 2 3×3/2 19 × 19 × 256 19 × 19 × 256 × × 256 × × 384 × × 384 × × 512 × × 512 × × 1000 × × 1000 128 1×1/1 ×9/1 1,792 16 16 64 64 64 64 11,408 12,432 32 32 128 128 128 128 45.344 49,440 48 48 64 64 192 192 256 256 192 192 256 256 104,880 111,024 188,992 198,184 513,000 2 ×3/2 64 2 2 1 1000 128,128 12,288 1,375, 912 Bảng So sánh số lượng tham số mơ hình đề xuất sử dụng SqueezeNet mơ hình khác Mơ hình Số tham số Tỷ lệ SqueezeNet 1.1 1,375,912 FaceNet 1,600,000,000 0.086% VGGFace 138,000,000 0.997% 2.2 Hệ thống phát khuôn mặt Sử dụng TinySSD [10] mơ hình dựa SSD, sử dụng SqueezeNet 1.1 làm mạng sở tinh chỉnh số lượng lọc cho lớp nhân chập Với nhận diện khn mặt, việc chúng tơi sử dụng tỷ lệ khung hình (1:1, 1:2 2:1), với số lượng loại vật thể có (khn mặt), dẫn đến số lượng lọc dự đốn giảm Chúng tơi sử dụng Batch Norm cho Fire Module nhân chập (khơng có dự đoán) từ lớp giãn nở Fire9 139 softmax, giúp giữ đặc trưng loại khác tách biệt Hàm mát trung tâm cho bởi: = Hình Mơ hình mạng sở SqueezeNet 1.1 cho TinySSD = Bảng Kiến trúc mạng số lượng thông số hệ thống phát khuôn mặt dựa TinySSD Kích thước lọc/bước Độ sâu 300 × 300 × 149 × 149 × 57 3×3/2 74 × 74 × 57 3×3/2 Kích thước đầu Đầu vào Conv1 Max pooling Fire2 Fire3 Max pooling Fire4 Fire5 Max pooling Fire6 Fire7 Fire8 Fire9 Max pooling Fire10 Max pooling 10 Fire11 Conv12_1 Conv12_2 Conv13_1 Conv13_2 Bộ dự đoán Các lớp BN Tổng cộng 74 × 74 × 102 74 × 74 × 106 37 × 37 × 106 2 3×3/2 37 × 37 × 186 37 × 37 × 173 18 × 18 × 173 ×3/2 × × 83 3×3/2 × 57 1,596 15 15 49 54 53 52 8,862 9,481 29 29 92 90 94 83 30,491 29,869 44 45 49 25 166 155 163 29 161 146 171 54 79,043 81,166 98,530 21,333 37 45 56 23,522 38 41 51 46 55 85 44 20,567 4,335 21,114 2,530 42,075 2 2 × × 101 × =− #thơng số 2 18 × 18 × 327 18 × 18 × 301 18 × 18 × 334 18 × 18 × 83 × × × 101 3×3/2 × × 85 × × 51 × × 46 × × 55 × × 85 3×3/1 3×3/2 3×3/1 3×3/2 1 1 ×3/1 (1) − Với ∈ ℝ trung tâm đặc trưng loại thứ với ví dụ đầu vào Thay sử dụng toàn tập liệu huấn luyện để cập nhập trung tâm, cập nhập dựa mini-batch: lần lặp, trung tâm tính cách lấy trung bình đặc trưng loại tương ứng (một vài trọng tâm không cập nhập) Và để tránh nhiễu từ ví dụ sai, chúng tơi sử dụng biến để kiểm soát tốc độ học trung tâm = − Δ Kết hợp với hàm mát softmax, hàm mát tổng cộng (chúng huấn luyện với 0.03): Hình Mơ hình hệ thống phát khuôn mặt sử dụng TinySSD Tên lớp/ loại + + ∑ (2) − Chúng sử dụng tập liệu VGGFace2 [12] với 3.31 triệu khuôn mặt 9,131 người Chất lượng liệu tốt, dẫn đến kết tốt thời gian huấn luyện thấp (dưới 30 giờ, so với khoảng 1000-2000 để huấn luyện FaceNet [8]) Các ảnh cắt sát khuôn mặt không sử dụng phép biến đổi quang học nào, sử dụng phép biến đổi kích thước, vị trí lật theo chiều dọc Chúng sử dụng Adam để tối ưu với tốc độ học giảm 10 lần lần qua hết liệu (epoch), 0.001 3.2 Hệ thống phát khuôn mặt Chúng sử dụng hàm mát tương tự SSD [6] Hàm mát tổng có hệ số hàm mát xác định vị trí hàm mát xác suất loại vật thể có viền bao ( , , , )= ( , )+ ( , , ) (3) − (4) Trong đó: ( , , )= 123,912 ℎ ∈ 3,016 = 601,442 − ∈{ , / = Bảng So sánh số lượng tham số mơ hình đề xuất sử dụng TinySSD SSD truyền thống (SSD300) Mô hình Số thơng số Tỷ lệ TinySSD 601,442 SSD 23,745,908 2.533% , , ) , = , = − / (5) (6) Và: ( , )=− ̂ ∈ HÀM MẤT MÁT VÀ HUẤN LUYỆN ̂ = 3.1 Hệ thống nhận diện khuôn mặt Hàm mát trung tâm [11] hàm mát giúp tăng cường tính tách biệt đặc trưng học, cách tối thiểu hóa khác loại, kết hợp với hàm mát ̂ − (7) ∈ ∑ (8) Chúng sử dụng liệu WIDER Face Training [12] để huấn luyện Với mơ hình (tương đối nhỏ) việc sử dụng tăng cường liệu (Data Augmentation) tương tự SSD không 140 đem lại khả phát tốt hơn, chí có trường hợp cho độ xác thấp hơn, làm cho trình huấn luyện lâu hội tụ nhiều Chúng sử dụng ảnh nguyên gốc phần ảnh có IoU > 0.5 so với khn mặt, phần ảnh khơng có khn mặt để huấn luyện Chúng sử dụng Adam để tối ưu với thông số tương tự hệ thống nhận diện khuôn mặt KẾT QUẢ Các kết đo máy tính với CPU i5-3470 lõi tốc độ 3.2 GHz, GPU Nvidia GTX 1070, 8GB RAM, Kubuntu 18.04, Nvidia driver 390.116, CUDA 9.0, cuDNN 7.5.0 4.1 Hệ thống nhận diện khuôn mặt Chúng sử dụng liệu LFW [13] (Labeled Face in the Wild) để đánh giá LFW gồm 13,000 ảnh khuôn mặt Các ảnh rõ nét khuôn mặt chụp diện Độ xác đường ROC mơ hình hệ thống so với mơ hình khác mơ tả Bảng Hình Về mặt tốc độ, đo đạc cách cho mơ hình cho vector nhúng khn mặt 100 lần sau chạy 100 lần khởi động Thời gian mơ hình u cầu 6.08 ms 12.72 ms cho khuôn mặt, tương ứng chạy GPU CPU 4.2 Hệ thống phát khuôn mặt Chúng sử dụng tập liệu FDDB [14] với 5171 khuôn mặt 2845 ảnh để đánh giá Tập liệu FDDB đo theo precision số lượng FP Vì số lý do, chúng tơi khơng sử dụng công cụ đo đạc FDDB Thay vào đó, chúng tơi sử dụng cách đo sử dụng việc phát vật thể nói chung AP theo Recall Precision Hệ thống đạt 84.1% Average Precision (AP) Để so sánh, AP TinySSD [10] tập liệu nhận diện vật thể PASCAL VOC 2007 61.3% Cũng lưu ý tập liệu chứa nhiều ảnh với tỷ lệ khung hình khơng tối ưu với đầu vào hệ thống (1:1), vậy, kết thấp khả thật Về mặt tốc độ, mơ hình đề xuất sử dụng TinySSD đạt tốc độ gấp đôi SSD truyền thống Chúng đo đạc cách cho mơ hình nhận trả kết 100 lần ảnh liên tục sau chạy trước 100 lần khởi động Chi tiết đường ROC tốc độ mơ hình TinySSD sử dụng hệ thống mô tả Bảng Hình Bảng So sánh độ xác mơ hình nhận diện khn mặt liệu LFW Độ xác với Mơ hình liệu LFW SqueezeNet 1.1 98.05 ± 0.568% FaceNet 99.55 ± 0.342% EigenFace 60.02 ± 0.79% Con người (với ảnh sát khn mặt) 97.53% 141 Hình Đường ROC mơ hình nhận diện khn mặt liệu LFW Hình Đường ROC TinySSD liệu FDDB Bảng So sánh tốc độ TinySSD mơ hình khác Tốc độ CPU Tốc độ GPU Mơ hình (fps) (fps) TinySSD 37.91 110.04 SSD300 1.96 53.15 Viola – Jones* 8.7 /17.3 *Sử dụng ảnh 960×720 để có độ xác cao, với ảnh 640×480 đạt 17.3 fps 4.3 Hệ thống phát nhận diện khuôn mặt Hệ thống kết hợp hệ thống phát khuôn mặt hệ thống nhận diện khn mặt: sau có vị trí khn mặt từ hệ thống phát khn mặt với ảnh 300×300, hệ thống lấy mẫu lại vùng ảnh có khn mặt với độ phân giải 160×160, sau cho qua hệ thống nhận diện khn mặt Việc sử dụng riêng hai hệ thống để tận dụng tốc độ việc phát khuôn mặt với ảnh độ phân giải thấp độ xác việc nhận diện khn mặt với ảnh có độ phân giải cao Chúng chạy hệ thống với ảnh (có khn mặt) 100 lần, sau chạy 100 lần để khởi động Tốc độ hệ thống chạy với GPU 35.51 fps với CPU 10.15 fps KẾT LUẬN 5.1 Nhận xét Hệ thống nhận diện khuôn mặt sử dụng chưa đến 1% số lượng tham số FaceNet [8] VGGFace [9] đạt độ xác 98% ngang ngửa độ xác người (97.5%) Tuy nhiên, hình ảnh sử dụng có chất lượng tốt, bị nhiễu, sáng khn mặt thường chụp trực diện Đối với ảnh thường thấy thực tế (bị nhiễu tối), độ xác không Việc sử dụng SqueezeNet thay mạng MobileNet ShuffleNet với số phép tính tốn thấp hơn, nhiên SqueezeNet có số lượng tham số độ trễ thấp thực tế [15] Đối với hệ thống ưu tiên bảo mật, việc nhận diện khuôn mặt phải đạt độ xác cao Chính vậy, mơ hình phức tạp thường ưu tiên, số lượng tham số phép tính tốn cần thiết lớn Hệ thống phát khuôn mặt sử dụng TinySSD [10] giảm đáng kể số lượng tham số tăng gấp đôi tốc độ so với SSD [6] nguyên gốc Điều phù hợp với số lượng loại vật thể việc nhận diện khn mặt Tốc độ hệ thống đạt ngưỡng sử dụng thời gian thực, độ xác cao mơ hình Viola – Jones truyền thống TinySSD dựa mơ hình SSD nên bị số khuyết điểm từ mơ hình này: - Mơ hình SSD sử dụng nhiều lớp nhân chập để phát nhiều tỷ lệ kích thước khác kết nhận diện lớp mạng cuối mạng khác Mặc dù lớp nhân chập phía đầu mạng có trường tiếp nhận nhỏ giúp cho việc nhận diện vật thể nhỏ, điều tương đương với việc giá trị lớp nhân chập mang ý nghĩa biểu diễn vật thể Trong lớp nhân chập phía sau kết hợp thơng tin từ lớp phía trước giúp phát vật thể phức tạp khn mặt Tóm lại, vật thể phức tạp nhỏ xa không phát lớp nhân chập phát phía đầu mạng - SSD sử dụng ảnh kích thước đầu vào nhỏ để tăng tốc độ, nhiên, với vật thể nhỏ khuôn mặt xa, ảnh sau thu nhỏ lại khó phát khn mặt Tuy nhiên tăng kích thước ảnh đầu vào từ 300×300 lên 512×512, tốc độ mạng giảm khoảng lần - Số lượng khuôn mặt bị giới hạn số viền mặc định Tuy nhiên, số lượng viền mặc định đủ với kích thước ảnh đầu vào mạng - Hệ thống sử dụng ảnh đầu vào vuông, làm cho hình ảnh từ camera góc rộng khơng sử dụng Chúng huấn luyện sử dụng tập liệu WIDER FACE [12] với nhiều khuôn mặt nhỏ, không phù hợp với mơ hình dựa SSD, làm mơ hình phát khn mặt hội tụ chậm So với YOLO [5], SSD [6] tận dụng kết từ lớp nhân chập mạng thay lớp cuối để phát vật thể có kích thước tương đối Tuy YOLOv3 cải thiện điều này, TinyYOLO với tốc độ cao sử dụng lớp cuối RetinaNet [16] sử dụng thêm mạng để kết hợp kết từ lớp phía sau vào lớp phía trước để tăng độ xác với vật thể nhỏ Tuy nhiên, khn mặt q nhỏ lại có độ xác thấp nhận diện khn mặt Chính vậy, việc giảm tốc độ để thêm vào mạng nhận chập không phù hợp với mục tiêu báo 5.2 Kết luận Bài báo trình bày hệ thống phát khuôn mặt hệ thống nhận diện khuôn mặt dựa tảng mạng nhân chập sâu giúp cải thiện độ xác so với cách tiếp cận truyền thống Hai hệ thống dựa vào mạng SqueezeNet 1.1 mơ hình SSD (TinySSD) làm tảng cho việc cải thiện tốc độ, đáp ứng thời gian thực TÀI LIỆU THAM KHẢO [1] [2] [3] Krizhevsky, A., Sutskever, I., and Hinton, G E “ImageNet classification with deep convolutional neural net-works.” In NIPS, pp 1106–1114, 2012 Viola, P., Jones, M “Rapid object detec-tion using a boosted cascade of simple features.” In Proceedings, IEEE Conference on ComputerVision and Pattern Recognition, 2001 P Felzenszwalb, R Girshick, D McAllester, and D Ra-manan “Object detection with discriminatively trained partbased models” TPAMI, 2010 [4] [5] [6] 142 Ren, S., He, K., Girshick, R., Sun, J.: Faster R-CNN: Towards real-time object detectionwith region proposal networks In: NIPS, 2015 Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: “You only look once: Unified, real-timeobject detection” In: CVPR, 2016 W Liu et al., “SSD: Single Shot MultiBox Detector,” arXiv:1512.02325 [cs], vol 9905, pp 21–37, 2016 [7] F N Iandola, S Han, M W Moskewicz, K Ashraf, W J Dally, and K Keutzer, “SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and