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

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à Nguyên(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ài báo này, chúng tôi đề xuất hệ thống phát hiện và 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 đây chú trọng vào việc nâng cao độ chính xác, trong khi có rấ

pdf6 trang | Chia sẻ: huong20 | Ngày: 20/01/2022 | Lượt xem: 301 | Lượt tải: 0download
Tóm tắt tài liệu 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t nhiều mô hình mạng nhân chập sâu có thể đạt được độ chính xác có thể chấp nhận được. Hệ thống đề xuất sử dụng các phương pháp, mô hình mạng nhân chập nhỏ, tập trung vào tốc độ trong khi vẫn giữ được độ chính xác cần thiết. Cụ thể chúng tôi sử dụng mô hình SqueezeNet và Single Shot Multibox Detector (SSD). Việc sử dụng các mạng nhỏ giúp dễ huấn luyện, triển khai và ứng dụng. Mô hình phát hiện khuôn mặt sử dụng TinySSD, kết hợp giữa SSD và SqueezeNet, có AP 85% và đạt tốc độ 110 fps, gấp đôi so với mô hình SSD gốc sử dụng mạng VGG16 trong khi yêu cầu 2.5% số lượng tham số. Mô hình nhận diện khuôn mặt sử dụng SqueezeNet độ chính xác 98% trên tập dữ liệu FDDB, ngang ngửa với con người, trong khi chỉ sử dụng 1% số lượng tham số so với các mô hình như VGGFace, Facenet. Keywords – Mạng nhân chập sâu, SSD, SqueezeNet. 1. GIỚI THIỆU Phát hiện và nhận diện khuôn mặt là một trong những công nghệ thiết yếu trong thời đại hiện nay. Nhận diện khuôn mặt là một kỹ thuật nhận diện sinh học được sử dụng rộng rãi, và luôn là một trong những vấn đề được nghiên cứu kĩ lâu dài vào kĩ lưỡng nhất. Về cơ bản, các phương pháp truyền thống thường dựa vào một hoặc hai tầng biểu diễn ví dụ như đáp ứng của bộ lọc, biểu đồ thống kê tần số của các đặc trưng, Các phương pháp này thường tập trung vào việc tối ưu từng thành phần như tiền xử lý, biến đổi đặc trưng, dẫn đến việc không có đột phá trong độ chính xác. Hơn nữa, các phương pháp truyền thống chỉ tập trung vào một thay đổi với hình ảnh như độ sáng, hướng nghiêng khuôn mặt, biểu cảm, Kết quả dẫn đến độ chính xác của các phương pháp “nông” truyền thống không vượt qua con người và không phù hợp với các ứng dụng thực tế. AlexNet [1] với phương pháp học sâu đã mở ra một cách tiếp cận mới trong việc nhận diện vật thể nói chung và khuôn mặt nói riêng. Học sâu, cụ thể là mạng nhân chập sâu (Deep Convolutional Neural Network – Deep CNN), sử dụng một tập hợp nhiều lớp xử lý để trích xuất cũng như biến đổi đặc trưng. Các lớp đặc trưng được học tương ứng với các mức độ trừu tượng khác nhau, cho độ chính xác bất kể các hướng khuôn mặt, điều kiện ngoại cảnh, Các đặc trưng được học ở các lớp đầu tương ứng với các đặc trưng được con người thiết kế (như đường thẳng, góc,), và các lớp phía sau mang tính trừu tượng cao mang lại độ chính xác tương đương hoặc tốt hơn con người. Phát hiện khuôn mặt là tiền đề cho những ứng dụng liên quan đến khuôn mặt. Các phương pháp truyền thống sử dụng các thuật toán đề xuất khu vực kết hợp với mô hình để nhận diện khuôn mặt. Về mô hình nhận diện, với sự đa dạng của hình dáng khuôn mặt, kèm theo các vật cản, điều kiện ánh sáng, khiến cho việc phát hiện khuôn mặt trong thực tế gặp nhiều khó khăn. Có nhiều thuật toán phát hiện khuôn mặt, điển hình là Viola – Jones [2], sử dụng các đặc trưng Haar và huấn luyện bằng AdaBoost, đã đạt được hiệu năng tốt, đáp ứng được thời gian thực. Tuy nhiên, khả năng phát hiện của Viola – Jones bị hạn chế với biến đổi tương đối của khuôn mặt mặc dù có tăng số lượng lẫn độ phức tạp của bộ phân loại. Một số thuật toán sử dụng mô hình với thành phần có thể biến đổi (Deformable Part Model [3] – DPM) đạt độ chính xác cao, tuy nhiên lại yêu cầu nhiều sức mạnh tính toán, cùng với dữ liệu và quá trình huấn luyện đặc biệt. Các mô hình mạng nhân chập sâu đạt khả năng cao trong việc nhận diện, khiến cho việc xác định khuôn mặt trở nên chính xác hơn nhiều, trong khi dữ liệu huấn luyện lại đơn giản. Hơn nữa, đã có một số cách tiếp cận gộp chung thuật toán đề xuất khu vực và mô hình nhận diện, điển hình như Faster RCNN [4], YOLO [5] và SSD [6]. Các cách tiếp cận này giúp tăng tốc độ của các mô hình phát hiện khuôn mặt dựa trên mạng nhân chập sâu lên mức có thể đáp ứng trong thời gian thực. Các mạng nhân chập sâu đã giúp cho vấn đề phát hiện và nhận diện khuôn mặt có được độ chính xác cực kỳ cao. Tuy nhiên điểm hạn chế của mạng nhân chập sâu chính là số phép tính toán và số lượng tham số lớn, tương ứng với độ sâu của mạng. Điều này làm giảm khả năng ứng dụng của các mạng nhân chập sâu. Đa số các ứng dụng về phát hiện và nhận diện khuôn mặt không thể sử dụng trực tiếp các mạng nhân chập mà phải sử dụng các phương pháp với độ chính xác thấp hoặc sử dụng các máy chủ thông qua mạng, dẫn đến độ trễ cao. Vì vậy, chúng ta cần một hệ thống với độ chính xác cao, trong khi vẫn duy trì số lượng 138 phép tính toán cũng như số lượng tham số thấp cho các ứng dụng với bộ nhớ và khả năng tính toán thấp. Trong bài báo này, chúng tôi đề xuất một hệ thống sử dụng SqueezeNet [7], một mô hình mạng nhân chập sâu với độ chính xác tương đương AlexNet với số lượng tham số thấp, điều này cũng đồng nghĩa với số lượng phép tính toán giảm và tốc độ được cải thiện tương đối. Với vấn đề nhận diện khuôn mặt, chúng tôi sử dụng SqueezeNet để trích xuất dữ liệu, cho ra một vector nhúng 128 chiều để phân loại hai khuôn mặt, lấy ý tưởng từ FaceNet [8] và VGGFace [9]. Sau đó, chúng tôi sử dụng thuật toán k-lân cận gần nhất để phân loại nhiều khuôn mặt. Đối với vấn đề phát hiện khuôn mặt (face detection), chúng tôi sử dụng TinySSD, bản chất là SqueezeNet làm mạng cơ sở cho SSD (Single Shot Multibox Detector), với việc tối ưu số lượng bộ lọc ở từng lớp, cùng với đó là việc giảm số lượng bộ phân loại với tỷ lệ khung hình không phù hợp với khuôn mặt. Phần còn lại của bài báo được tổ chức như sau: Phần 2 mô tả cụ thể mô hình của hệ thống nhận diện khuôn mặt và hệ thống phát hiện khuôn mặt, ý tưởng của từng mô hình. Phần 3 sẽ mô tả hàm mất mát và quá trình huấn luyện các mô hình này. Phần 4 sẽ là kết quả thực nghiệm của hệ thống. Cuối cùng, chúng tôi kết luận bài báo ở Phần 5. 2. 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 ra của mạng là một vector nhúng, lớp fully- connected (Dense_l2) được thêm vào sau lớp Global Average Pooling (GAP). Chúng tôi không giảm số lượng bộ lọc lớp Conv10 thành 128 (để lớp GAP ra được vector nhúng trực tiếp) vì điều này có thể làm giảm số lượng đặc trưng cần thiết, và lớp Dense_l2 có thể kết hợp các đặc trưng này lại. Ngoài ra, để dễ huấn luyện, các lớp BatchNorm được thêm vào sau các lớp nhân chập và fully-connected trước các hàm phi tuyến, trừ lớp Conv10 vì đầu ra sẽ được lấy trung bình bởi 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ị quá khớp. Chúng tôi sử dụng ảnh 160×160 để giảm số phép tính toán. Ảnh đầu vào được chuẩn hóa bằng cách trừ 127.5 và chia cho 128. Vector nhúng có độ dài 128 là cân bằng giữa độ chính xác và tốc độ tính toán cho bộ phân loại sau này. Tuy VGGFace [9] sử dụng vector nhúng dài 4096 nhưng độ chính xác chỉ tương đương FaceNet [8] sử dụng vector nhúng với độ dài 128. Lớp L2 chia các phần tử của vector đầu vào cho L2 Norm của vector đó. Việc này để chuẩn hóa các số trong vector nhúng để các khoảng cách giữa các vector nằm trong khoảng [0,4] giúp việc chọn khoảng cách phân biệt những cặp khuôn mặt khác nhau dễ hơn. Hình 1. Mô hình hệ thống nhận diện khuôn mặt. Hình 2. Mô hình SqueezeNet 1.1 dùng trong hệ thống nhận diện khuôn mặt. Bảng 1. Số lượng thông số của hệ thống nhận diện khuôn mặt dựa trên SqueezeNet. Tên lớp/ loại Kích thước đầu ra Kích thước bộ lọc/bước Độ sâu × × × #thông số Ảnh đầu vào 160 × 160 × 3 Conv1 79 × 79 × 64 3 × 3 / 2 1 64 1,792 Max pooling 1 39 × 39 × 64 3 × 3 / 2 0 Fire2 39 × 39 × 128 2 16 64 64 11,408 Fire3 39 × 39 × 128 2 16 64 64 12,432 Max pooling 3 19 × 19 × 128 3 × 3 / 2 0 Fire4 19 × 19 × 256 2 32 128 128 45.344 Fire5 19 × 19 × 256 2 32 128 128 49,440 Max pooling 8 9 × 9 × 256 3 × 3 / 2 0 Fire6 9 × 9 × 384 2 48 192 192 104,880 Fire7 9 × 9 × 384 2 48 192 192 111,024 Fire8 9 × 9 × 512 2 64 256 256 188,992 Fire9 9 × 9 × 512 2 64 256 256 198,184 Conv10 9 × 9 × 1000 1 × 1 / 1 1 1000 513,000 GAP 1 × 1 × 1000 9 × 9 / 1 0 Dense_l2 128 1 128,128 Các lớp BN 12,288 Tổng cộng 1,375, 912 Bảng 2. So sánh số lượng tham số của mô hình đề xuất sử dụng SqueezeNet và các 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 hiện khuôn mặt Sử dụng TinySSD [10] là mô hình dựa trên SSD, sử dụng SqueezeNet 1.1 làm mạng cơ sở và tinh chỉnh số lượng bộ lọc cho các lớp nhân chập. Với nhận diện khuôn mặt, việc chúng tôi sử dụng ít tỷ lệ khung hình hơn (1:1, 1:2 và 2:1), cùng với số lượng loại vật thể chỉ có 1 (khuôn mặt), dẫn đến số lượng bộ lọc trong bộ dự đoán giảm. Chúng tôi sử dụng Batch Norm cho các Fire Module và nhân chập (không có trong bộ dự đoán) từ lớp giãn nở của Fire9. 139 Hình 3. Mô hình hệ thống phát hiện khuôn mặt sử dụng TinySSD. Hình 4. Mô hình mạng cơ sở SqueezeNet 1.1 cho TinySSD. Bảng 3. Kiến trúc mạng và số lượng thông số của hệ thống phát hiện khuôn mặt dựa trên TinySSD. Tên lớp/ loại Kích thước đầu ra Kích thước bộ lọc/bước Độ sâu × × × #thông số Đầu vào 300 × 300 × 3 Conv1 149 × 149 × 57 3 × 3 / 2 1 57 1,596 Max pooling 1 74 × 74 × 57 3 × 3 / 2 0 Fire2 74 × 74 × 102 2 15 49 53 8,862 Fire3 74 × 74 × 106 2 15 54 52 9,481 Max pooling 3 37 × 37 × 106 3 × 3 / 2 0 Fire4 37 × 37 × 186 2 29 92 94 30,491 Fire5 37 × 37 × 173 2 29 90 83 29,869 Max pooling 5 18 × 18 × 173 3 × 3 / 2 0 Fire6 18 × 18 × 327 2 44 166 161 79,043 Fire7 18 × 18 × 301 2 45 155 146 81,166 Fire8 18 × 18 × 334 2 49 163 171 98,530 Fire9 18 × 18 × 83 2 25 29 54 21,333 Max pooling 9 9 × 9 × 83 3 × 3 / 2 0 Fire10 9 × 9 × 101 2 37 45 56 23,522 Max pooling 10 4 × 4 × 101 3 × 3 / 2 0 Fire11 4 × 4 × 85 2 38 41 44 20,567 Conv12_1 4 × 4 × 51 3 × 3 / 1 1 51 4,335 Conv12_2 2 × 2 × 46 3 × 3 / 2 1 46 21,114 Conv13_1 2 × 2 × 55 3 × 3 / 1 1 55 2,530 Conv13_2 1 × 1 × 85 3 × 3 / 2 1 85 42,075 Bộ dự đoán 3 × 3 / 1 123,912 Các lớp BN 3,016 Tổng cộng 601,442 Bảng 4. So sánh số lượng tham số của mô hình đề xuất sử dụng TinySSD và SSD truyền thống (SSD300). Mô hình Số thông số Tỷ lệ TinySSD 601,442 SSD 23,745,908 2.533% 3. 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 mát trung tâm [11] là hàm mất mát giúp tăng cường tính tách biệt giữa các đặc trưng đã được học, bằng cách tối thiểu hóa sự khác nhau trong cùng một loại, kết hợp với hàm mất mát softmax, giúp giữ các đặc trưng của các loại khác nhau tách biệt. Hàm mất mát trung tâm được cho bởi: = 1 2 − (1) Với ∈ ℝ là trung tâm của các đặc trưng của loại thứ với ví dụ đầu vào . Thay vì sử dụng toàn bộ tập dữ liệu huấn luyện để cập nhập các trung tâm, chúng tôi cập nhập dựa trên từng mini-batch: tại mỗi lần lặp, các trung tâm sẽ được tính bằng cách lấy trung bình các đặc trưng của từng loại tương ứng (một vài trọng tâm sẽ không được cập nhập). Và để tránh các nhiễu từ các ví dụ sai, chúng tôi sử dụng một biến để kiểm soát tốc độ học của các trung tâm = − Δ . Kết hợp với hàm mất mát softmax, hàm mất mát tổng cộng là (chúng tôi huấn luyện với bằng 0.03): = + = − ∑ + 2 − (2) Chúng tôi sử dụng tập dữ liệu VGGFace2 [12] với 3.31 triệu khuôn mặt của 9,131 người. Chất lượng của bộ dữ liệu này rất tốt, dẫn đến kết quả tốt và thời gian huấn luyện thấp (dưới 30 giờ, so với khoảng 1000-2000 giờ để huấn luyện FaceNet [8]). Các bức ảnh được cắt sát khuôn mặt và không sử dụng các phép biến đổi quang học nào, chỉ sử dụng các phép biến đổi kích thước, vị trí và lật theo chiều dọc. Chúng tôi sử dụng Adam để tối ưu với tốc độ học giảm 10 lần mỗi 3 lần đi qua hết bộ dữ liệu (epoch), bắt đầu từ 0.001. 3.2. Hệ thống phát hiện khuôn mặt Chúng tôi sử dụng hàm mất mát tương tự như của SSD [6]. Hàm mất mát này là tổng có hệ số của hàm mất mát khi xác định vị trí và hàm mất mát của xác suất của loại vật thể có trong viền bao. (, , , ) = 1 (, ) + (, , ) (3) Trong đó: (, , ) = ℎ − ∈{,,,) ∈ (4) = − / , = − / (5) = , = (6) Và: (, ) = − ̂ ∈ − ̂ ∈ (7) ̂ = ∑ (8) Chúng tôi sử dụng bộ dữ liệu WIDER Face Training [12] để huấn luyện. Với mô hình (tương đối nhỏ) này việc sử dụng tăng cường dữ liệu (Data Augmentation) tương tự như SSD không 140 đem lại khả năng phát hiện tốt hơn, thậm chí có trường hợp cho độ chính xác thấp hơn, trong khi làm cho quá trình huấn luyện lâu hội tụ hơn rất nhiều. Chúng tôi chỉ sử dụng ảnh nguyên gốc hoặc một phần ảnh có IoU > 0.5 so với khuôn mặt, hoặc phần ảnh không có khuôn mặt để huấn luyện. Chúng tôi sử dụng Adam để tối ưu với thông số tương tự như hệ thống nhận diện khuôn mặt. 4. KẾT QUẢ Các kết quả được đo trên máy tính với CPU i5-3470 4 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 tôi sử dụng bộ dữ liệu LFW [13] (Labeled Face in the Wild) để đánh giá. LFW gồm hơn 13,000 ảnh khuôn mặt. Các bức ảnh này khá rõ nét và các khuôn mặt được chụp chính diện. Độ chính xác và đường ROC của mô hình trong hệ thống so với các mô hình khác được mô tả ở Bảng 5 và Hình 5. Về mặt tốc độ, chúng tôi đo đạc bằng cách cho mô hình cho ra vector nhúng của một khuôn mặt 100 lần sau khi chạy 100 lần khởi động. Thời gian mô hình yêu cầu là 6.08 ms và 12.72 ms cho mỗi khuôn mặt, tương ứng khi chạy trên GPU và CPU. 4.2. Hệ thống phát hiện khuôn mặt Chúng tôi sử dụng tập dữ liệu FDDB [14] với 5171 khuôn mặt trong 2845 bức ảnh để đánh giá. Tập dữ liệu FDDB đo theo precision và số lượng FP. Vì một số lý do, chúng tôi không sử dụng được công cụ đo đạc của FDDB. Thay vào đó, chúng tôi sử dụng cách đo sử dụng do việc phát hiện vật thể nói chung bằng AP theo Recall và Precision. Hệ thống đạt 84.1% Average Precision (AP). Để so sánh, AP của TinySSD [10] trên tập dữ liệu nhận diện vật thể PASCAL VOC 2007 là 61.3%. Cũng lưu ý rằng tập dữ liệu này chứa khá nhiều ảnh với tỷ lệ khung hình không tối ưu với đầu vào của hệ thống (1:1), vì vậy, kết quả có thể thấp hơn khả năng thật sự. 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 tôi đo đạc bằng cách cho mô hình nhận và trả kết quả 100 lần ảnh liên tục sau khi đã chạy trước 100 lần khởi động. Chi tiết về đường ROC và tốc độ của mô hình TinySSD sử dụng trong hệ thống được mô tả ở Bảng 6 và Hình 6. Bảng 5. So sánh độ chính xác của các mô hình nhận diện khuôn mặt trên bộ dữ liệu LFW Mô hình Độ chính xác với bộ dữ 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 khuôn mặt) 97.53% Hình 5. Đường ROC của các mô hình nhận diện khuôn mặt trên bộ dữ liệu LFW. Hình 6. Đường ROC của TinySSD trên bộ dữ liệu FDDB. Bảng 6. So sánh tốc độ của TinySSD và các mô hình khác. Mô hình Tốc độ trên CPU (fps) Tốc độ trên GPU (fps) TinySSD 37.91 110.04 SSD300 1.96 53.15 Viola – Jones* 8.7 /17.3 *Sử dụng ảnh 960×720 để có độ chính xác cao, với ảnh 640×480 đạt 17.3 fps. 141 4.3. Hệ thống phát hiện và nhận diện khuôn mặt Hệ thống này là sự kết hợp giữa hệ thống phát hiện khuôn mặt và hệ thống nhận diện khuôn mặt: sau khi có được các vị trí khuôn mặt từ hệ thống phát hiện khuôn mặt với ảnh 300×300, hệ thống lấy mẫu lại từng vùng ảnh có khuôn mặt với độ phân giải 160×160, sau đó cho qua hệ thống nhận diện khuôn mặt. Việc sử dụng riêng hai hệ thống là để tận dụng tốc độ của việc phát hiện khuôn mặt với ảnh độ phân giải thấp và độ chính xác của việc nhận diện khuôn mặt với ảnh có độ phân giải cao. Chúng tôi chạy hệ thống với một bức ảnh (có 3 khuôn mặt) 100 lần, sau khi chạy 100 lần để khởi động. Tốc độ của hệ thống khi chạy với GPU là 35.51 fps và với CPU là 10.15 fps. 5. KẾT LUẬN 5.1. Nhận xét Hệ thống nhận diện khuôn mặt tuy chỉ sử dụng chưa đến 1% số lượng tham số của FaceNet [8] và VGGFace [9] nhưng đã đạt được độ chính xác là 98% ngang ngửa độ chính xác của con người (97.5%). Tuy nhiên, các hình ảnh được sử dụng có chất lượng khá tốt, ít bị nhiễu, sáng và khuôn mặt thường được chụp trực diện. Đối với các ảnh thường thấy trong thực tế (bị nhiễu hoặc tối), độ chính xác sẽ không được như vậy. Việc sử dụng SqueezeNet có thể được thay thế bởi các mạng như MobileNet hoặc ShuffleNet với số phép tính toán thấp hơn, tuy nhiên SqueezeNet có số lượng tham số và độ trễ thấp hơn trong thực tế [15]. Đối với các hệ thống ưu tiên bảo mật, việc nhận diện khuôn mặt phải đạt độ chính xác cao hơn nữa. Chính vì vậy, các mô hình phức tạp thường được ưu tiên, mặc dù số lượng tham số và phép tính toán cần thiết là rất lớn. Hệ thống phát hiện khuôn mặt sử dụng TinySSD [10] giảm đáng kể số lượng tham số và tăng gấp đôi tốc độ so với SSD [6] nguyên gốc. Điều này phù hợp với số lượng loại vật thể ít như việc nhận diện khuôn mặt. Tốc độ của hệ thống đã đạt ngưỡng có thể sử dụng thời gian thực, trong khi độ chính xác cao hơn mô hình Viola – Jones truyền thống. TinySSD dựa trên mô hình SSD nên sẽ bị một số khuyết điểm từ mô hình này: - Mô hình SSD tuy sử dụng nhiều lớp nhân chập để phát hiện nhiều tỷ lệ kích thước khác nhau nhưng kết quả nhận diện giữa các lớp giữa mạng và cuối mạng sẽ khác nhau. Mặc dù các 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 các vật thể nhỏ, nhưng điều này tương đương với việc các giá trị ở các lớp nhân chập này sẽ mang ít ý nghĩa biểu diễn vật thể. Trong khi đó các lớp nhân chập phía sau sẽ kết hợp các thông tin từ các lớp phía trước giúp phát hiện các vật thể phức tạp hơn như khuôn mặt. Tóm lại, các vật thể phức tạp nhỏ hoặc ở xa sẽ không được phát hiện bởi các lớp nhân chập trong các bộ phát hiện ở phía đầu mạng. - SSD sử dụng ảnh kích thước đầu vào nhỏ để tăng tốc độ, tuy nhiên, với các vật thể nhỏ như khuôn mặt khi ở xa, ảnh sau khi thu nhỏ lại sẽ khó phát hiện được khuôn mặt. Tuy nhiên nếu tăng kích thước ảnh đầu vào từ 300×300 lên 512×512, tốc độ mạng sẽ giảm khoảng 3 lần. - Số lượng khuôn mặt bị giới hạn bởi số viền mặc định. Tuy nhiên, số lượng viền mặc định hiện tại cũng khá đủ với kích thước ảnh đầu vào của mạng. - Hệ thống sử dụng ảnh đầu vào vuông, làm cho các hình ảnh từ camera góc rộng sẽ không sử dụng được. Chúng tôi huấn luyện sử dụng tập dữ liệu WIDER FACE [12] với nhiều khuôn mặt nhỏ, không phù hợp với các mô hình dựa trên SSD, làm mô hình phát hiện khuôn mặt hội tụ chậm. So với YOLO [5], SSD [6] tận dụng kết quả từ các lớp nhân chập ở giữa mạng thay vì chỉ một lớp cuối cùng để phát hiện các 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 hơn chỉ sử dụng lớp cuối cùng. RetinaNet [16] sử dụng một thêm một mạng để kết hợp kết quả từ các lớp phía sau vào các lớp phía trước để tăng độ chính xác với các vật thể nhỏ. Tuy nhiên, các khuôn mặt quá nhỏ lại có độ chính xác thấp khi nhận diện khuôn mặt. Chính vì vậy, việc giảm tốc độ để thêm vào một mạng nhận chập không phù hợp với mục tiêu của bài báo này. 5.2. Kết luận Bài báo này đã trình bày hệ thống phát hiện khuôn mặt và hệ thống nhận diện khuôn mặt dựa trên nền tảng của mạng nhân chập sâu giúp cải thiện độ chính xác so với các cách tiếp cận truyền thống. Hai hệ thống trên dựa vào mạng SqueezeNet 1.1 và mô hình SSD (TinySSD) làm nền tảng cho việc cải thiện tốc độ, đáp ứng được thời gian thực. TÀI LIỆU THAM KHẢO [1] Krizhevsky, A., Sutskever, I., and Hinton, G. E. “ImageNet classification with deep convolutional neural net-works.” In NIPS, pp. 1106–1114, 2012. [2] 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. [3] P. Felzenszwalb, R. Girshick, D. McAllester, and D. Ra-manan. “Object detection with discriminatively trained partbased models” .TPAMI, 2010. [4] Ren, S., He, K., Girshick, R., Sun, J.: Faster R-CNN: Towards real-time object detectionwith region proposal networks. In: NIPS, 2015. [5] Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: “You only look once: Unified, real-timeobject detection”. In: CVPR, 2016. [6] W. Liu et al., “SSD: Single Shot MultiBox Detector,” arXiv:1512.02325 [cs], vol. 9905, pp. 21–37, 2016. 142 [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 <0.5MB model size,” arXiv:1602.07360 [cs], Feb. 2016. [8] F. Schroff, D. Kalenichenko, and J. Philbin, “FaceNet: A Unified Embedding for Face Recognition and Clustering,” 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 815–823, Jun. 2015. [9] Omkar M. Parkhi, Andrea Vedaldi, Andrew Zisserman, “Deep Face Recognition,” 2015. [10] Wong, M. J. Shafiee, F. Li, and B. Chwyl, “Tiny SSD: A Tiny Single-shot Detection Deep Convolutional Neural Network for Real-time Embedded Object Detection,” arXiv:1802.06488 [cs], Feb. 2018. [11] Yandong Wen, Kaipeng Zhang, Zhifeng Li, and Yu Qiao, “A Discriminative Feature Learning Approachfor Deep Face Recognition,” CCV 2016, Part VII, LNCS 9911, pp. 499–515, 2016. [12] Yang, Shuo and Luo, Ping and Loy, Chen Change and Tang, Xiaoou, “WIDER FACE: A Face Detection Benchmark”, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016. [13] Huang, G., Ramesh, M., Berg, T., Learned-Miller, E.: “Labeled facesin the wild: A database for studying face recognition in unconstrained environments”. In: University of Massachusetts, Amherst, Technical Report 07-49, 2007. [14] V. Jain and E. Learned-Miller, “FDDB: a benchmark for facedetection in unconstrained settings”. Technical Report UM-CS-2010-009, University of Massachusetts, Amherst, 2010. [15] Simone Bianco, Remi Cadene and Luigi Celona and Paolo Napoletano, “Benchmark Analysis of Representative Deep Neural Network Architectures”, CoRR, 2018. [16] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Doll ́ar. “Focalloss for dense object detection”. InICCV, 2017. Hình 7. Một số ảnh ví dụ kết quả của hệ thống phát hiện và nhận diện khuôn mặt đề xuất. Các khuôn mặt được đánh tên là các khuôn mặt đã được đưa vào bộ khuôn mặt có sẵn để nhận diện. 143

Các file đính kèm theo tài liệu này:

  • pdfhe_thong_phat_hien_va_nhan_dien_mat_nguoi_su_dung_mo_hinh_sq.pdf