Mục đích và nhiệm vụ của nghiên cứu Nắm bắt xu hướng dịch vụ công nghệ, trên cơ sở phân tích, đánh giá những tồn tại, những nhu cầu thực tế trong quản lý, kiểm soát các điểm giao dịch củ
Trang 1i LỜI CAM ĐOAN Tôi xin cam đoan luận văn này không trùng lặp với các khóa luận, luận văn, luận án và các công trình nghiên cứu đã công bố
Người cam đoan
Ngô Mạnh Hùng
Trang 2ii LỜI CẢM ƠN Trước hết, tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc tới thầy
TS Phạm Thế Anh người thầy trực tiếp hướng dẫn tận tình cho tôi trong suốt quá trình học tập, nghiên cứu và hoàn thiện luận văn thạc sỹ của mình
Xin được bày tỏ lòng biết ơn tới các thầy cô trong trường ĐH Hồng Đức cũng như các thầy cô được mời tham gia giảng dạy lớp cao học Khoa học máy tính K10 – ĐH Hồng Đức đã tận tình dạy dỗ và hướng dẫn cho tôi trong suốt quá trình học tập, giúp cho tôi có thêm những kiến thức bổ ích, những định hướng mới cho tương lai
Tôi cũng xin gửi lời cảm ơn chân thành tới cơ quan, đồng nghiệp tại VNPT Thanh Hóa đã tạo điều kiện để tôi có thể dành thời gian học tập, nghiên cứu các hướng mới, sử dụng cơ sở vật chất, trang thiết bị trong triển khai thử nghiệm và hoàn thiện luận văn
Cuối cùng xin chân thành cảm ơn tất cả các bạn trong lớp, những người thân đã cùng sát cánh bên tôi hỗ trợ rất nhiều trong quá trình học tập cũng như trong đời sống và trong quá trình làm luận văn
Bản thân tôi đã hết sức cố gắng hoàn thành luận văn nhưng chắc chắn sẽ không tránh khỏi những sai sót Kính mong nhận được sự chỉ bảo tận tình của quý thầy cô và các bạn
Tôi xin chân thành cảm ơn!
Học viên
Ngô Mạnh Hùng
Trang 3iii
MỤC LỤC
DANH MỤC TỪ VIẾT TẮT v
DANH MỤC BẢNG BIỂU vi
DANH MỤC HÌNH ẢNH vii
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN 4
1.1 Tổng quan về học máy 4
1.2 Bài toán phát hiện mặt người 4
1.3 Các ứng dụng trong thực tiễn 5
1.4 Một số sản phẩm thương mại trên thị trường 6
1.5 Kế hoạch ứng dụng tại VNPT Thanh Hóa 8
CHƯƠNG 2: BÀI TOÁN PHÁT HIỆN MẶT NGƯỜI THỜI GIAN THỰC 9
2.1 Giới thiệu bài toán 9
2.1.1 Bài toán phát hiện mặt người thời gian thực 9
2.1.2 Các khó khăn của bài toán nhận dạng mặt người 11
2.1.3 Đánh giá hiệu năng các hệ thống phát hiện khuôn mặt 12
2.2 Phương pháp dựa trên xử lý ảnh, thị giác máy 13
2.2.1 Các kỹ thuật dựa trên đặc trưng HOG [32] 13
2.2.2 Kỹ thuật PCA [10] 15
2.2.3 Các kỹ thuật dựa trên đặc trưng Haar Cascade [20] 16
2.3 Phương pháp dựa trên mạng Neuron 18
2.3.1 Kỹ thuật Faster R-CNN 18
2.3.2 Kỹ thuật Single Shot MultiBox Detector [17] 23
2.3.3 Một số kỹ thuật khác 25
2.4 Kết luận 28
Trang 4iv
CHƯƠNG 3: GIẢI PHÁP ĐỀ XUẤT 29
3.1 Thiết kế mạng neuron nhân chập 29
3.1.1 Kiến trúc mạng 29
3.1.2 Cải tiến mạng CNN Faceboxes 31
3.1.3 Phương pháp huấn luyện 33
3.1.4 Đánh giá mô hình 33
3.2 Thử nghiệm ứng dụng 35
3.2.1 Mô tả data set 35
3.2.2 Kết quả dò tìm khuôn mặt 36
3.2.3 Một số kết quả trực quan 37
3.3 Xây dựng ứng dụng 42
3.3.1 Kết quả ứng dụng 56
3.3.2 Kiểm soát giao dịch 58
3.3.3 Kết luận 59
KẾT LUẬN VÀ KIẾN NGHỊ 60
TÀI LIỆU THAM KHẢO 62
Trang 5v DANH MỤC TỪ VIẾT TẮT
1 AI Trí thông minh nhân tạo (Artifical Intelligence)
2 BigData Cơ sở dữ liệu lớn
3 CNTT Công nghệ thông tin
5 CPU Đơn vị xử lý trung tâm (Central Prossesing Unit)
7 GPU Đơn vị xử lý đồ họa (Graphics Processing Unit)
8 IoT Internet vạn vật (Internet of Things)
9 PC Máy tính cá nhân (Personal Computer)
10 SmartHome Hệ thống nhà thông minh
11 SmartStation Hệ thống nhà trạm thông minh
12 UI Giao diện người dùng (User Interface)
13 VNPT Tập đoàn bưu chính viễn thông Việt Nam (Vietnam
Posts and Telecommunications Group)
14 VNPT IT Công ty Công nghệ thông tin VNPT
Trang 6vi DANH MỤC BẢNG BIỂU Bảng 3.1: Mô tả đầu vào và đầu ra trong Faceboxes 32 Bảng 3.2: Bảng kết quả thử nghiệm mô hình 36
Trang 7vii DANH MỤC HÌNH ẢNH
Hình 1.1: Triển khai ứng dụng tại VNPT Thanh hóa 8
Hình 2.1: Sơ đồ khối hệ thống phát hiện và nhận dạng mặt người [31] 9
Hình 2.2: Hệ thống nhận dạng mặt người [20] 17
Hình 2.3: Các đặc trưng cơ bản Haar like [20] 18
Hình 2.4: Kiến trúc Faster R-CNN [28] 19
Hình 2.5: Thời gian xử lý của Faster R-CNN [28] 20
Hình 2.6: Kiến trúc R-CNN [34] 21
Hình 2.7: Kiến trúc Fast R-CNN [34] 21
Hình 2.8: Slide window trong Faster R-CNN [34] 22
Hình 2.9: Kiến trúc Faster R-CNN [34] 23
Hình 2.10: Mô hình SSD [25] 24
Hình 2.11: Kiến trúc sử dụng trong SSD [17] 24
Hình 2.12: Mô tả feature map trong SSD [17] 25
Hình 2.13: Mô hình YOLO [19] 26
Hình 2.14: Anchor box trong YOLO [21] 26
Hình 2.15: Chỉ số IoU [25] 27
Hình 3.1: Kiến trúc Faceboxes [30] 29
Hình 3.2: Anchorbox trong Faceboxes [30] 30
Hình 3.3: Hàm loss về tọa độ (location) của mô hình 34
Hình 3.4: Hàm loss về nhận dạng (face hay not face) của mô hình 34
Hình 3.5: Hàm loss toàn cục trên tập huấn luyện (màu đỏ) và trên tập test (màu xanh) 35
Hình 3.6: Một số kết quả trực quan 42
Hình 3.7: Kiến trúc ứng dụng của hệ thống 47
Hình 3.8: Thiết kế chức năng của hệ thống 49
Trang 8viii
Hình 3.9: Mô hình cài đặt, vận hành của hệ thống 50
Hình 3.10: Máy tính PI 52
Hình 3.11: Giao diện quản lý người dùng 57
Hình 3.12: Quản lý danh mục đơn vị 57
Hình 3.13: Xem camera các điểm giao dịch 58
Hình 3.14: Thống kê kiểm soát giao dịch 58
Trang 9IT là đầu mối quản trị, nghiên cứu phát triển các giải pháp CNTT Các đơn vị thành viên có mối liên hệ chặt chẽ trong dây chuyền nghiên cứu, sản xuất, cung cấp và hỗ trợ khách hàng các dịch vụ CNTT Không nằm ngoài xu thế thế giới và định hướng của Tập đoàn, VNPT Thanh Hóa cũng đã đầu tư nguồn nhân lực CNTT nghiên cứu phát triển, sản xuất các hệ thống thông minh Từ năm 2017, VNPT Thanh Hóa đã cùng phối hợp với Trường ĐH Hồng Đức nghiên cứu giải pháp Nhà thông minh (SmartHome) và bước đầu
đã có kết quả tốt, áp dụng để quản lý các nhà trạm viễn thông (SmartStation)
đã triển khai thử nghiệm tại 4 trạm, đang nghiên cứu triển khai rộng khắp toàn VNPT Thanh Hóa và đề xuất sản phẩm thành phần mềm dùng chung cho tập đoàn VNPT, từ đó định hướng triển khai cho tất cả các đơn vị thành viên Bên cạnh đó sẽ hoàn thiện và thương mại sản phẩm SmartHome Như vậy, cơ bản các nhà trạm VNPT Thanh Hóa sẽ đầu tư triển khai giải pháp quản lý nhà trạm thông minh, các phòng bán hàng cũng sẽ triển khai giám sát qua Camera thông minh Tuy nhiên, hiện tại tất cả các giao dịch VNPT Thanh Hóa lắp đặt Camera, nhưng mới chỉ ở mức độ giám sát thông thường mà chưa áp dụng
Trang 102
giải pháp thông minh trong đó Trong khi, với công nghệ hiện nay có thể có nhiều giải pháp thông minh để ứng dụng giám sát các điểm giao dịch phục vụ cho các mục đích quản trị doanh nghiệp, quan hệ khách hàng
Việc giám sát, kiểm soát các điểm giao dịch thông qua kỹ thuật phát hiện mặt người ứng dụng Deep Learning đã có nhiều giải pháp hoàn thiện tuy nhiên thường áp dụng trong phòng thí nghiệm vì các giải pháp đòi hỏi thiết bị cấu hình cao đi đôi với giá thành không hề rẻ Thường là các dạng siêu máy tính nhiều CPU hoặc các máy tính có tích hợp Card đồ họa GPU để tính toán song song Do vậy, chi phí đầu tư khi triển khai rộng khắp sẽ rất tốn kém và không khả thi trong triển khai thực tế
Trên cơ sở hạ tầng sẵn có, chúng tôi đề xuất nghiên cứu các kỹ thuật phát hiện mặt người có thể áp dụng trên các máy tính thông thường (CPU) vẫn có thể phát hiện mặt người thời gian thực Việc nghiên cứu áp dụng các
kỹ thuật phát hiện mặt người trong thời gian thực có ý nghĩa quan trọng, giúp cho việc ứng dụng thực tế được dễ dàng hơn, rộng rãi hơn Bên cạnh đó, có thể áp dụng các kỹ thuật này cho lớp các bài toán tương tự dùng kỹ thuật học sâu triển khai thực tế với chi phí có thể chấp nhận được
2 Mục đích và nhiệm vụ của nghiên cứu
Nắm bắt xu hướng dịch vụ công nghệ, trên cơ sở phân tích, đánh giá những tồn tại, những nhu cầu thực tế trong quản lý, kiểm soát các điểm giao dịch của Viễn thông Thanh Hóa, đề tài nhằm mục đích kết nối giữa các kỹ thuật tiên tiến trong phát hiện mặt người trong phòng thí nghiệm và ứng dụng trong các bài toán thực tế Áp dụng với thời gian thực sẽ góp phần giảm chi phí và dễ dàng trong triển khai thương mại
3 Đối tượng và phạm vi nghiên cứu
Trong phạm vi đề tài này chúng tôi tập trung vào việc phát hiện khuôn mặt từ một camera ở mức thời gian thực sử dụng các thuật toán AI mới nhất
có cải tiến Có nghĩa các thuật toán áp dụng phải có tốc độ đáp ứng nhanh gần
Trang 113
như tức thời và đặc biệt có thể triển khai trên những thiết bị máy tính phổ biến nhất hiện nay
4 Phương pháp nghiên cứu
Đề tài sử dụng hai phương pháp nghiên cứu chính: Phương pháp nghiên cứu lý thuyết và phương pháp nghiên cứu thực nghiệm
- Phương pháp nghiên cứu lý thuyết: Nghiên cứu các kỹ thuật phát hiện mặt người ứng dụng học sâu; Nghiên cứu các thư viện và công nghệ hỗ trợ trong lập trình ứng dụng; Nghiên cứu thiết bị camera; Nghiên cứu một số nghiệp vụ quản trị doanh nghiệp
- Phương pháp nghiên cứu thực nghiệm: Nghiên cứu đánh giá thực nghiệm tại các điểm giao dịch VNPT Thanh Hóa; Phân tích đánh giá các độ
đo kết quả trong thực tế
5 Bố cục của luận văn
Nội dung chính của luận văn trong 3 chương:
Chương 1: Giới thiệu tổng quan về học máy cũng như giới thiệu một
số sản phẩm đang có trên thị trường
Chương 2: Nêu bài toán phát hiện mặt người, các phương pháp phát hiện mặt người dựa trên thị giác máy, xử lý ảnh và các phương pháp dựa trên mạng Neuron
Chương 3: Chúng tôi đề xuất giải pháp thực hiện dựa trên cơ sở lựa chọn thuật toán tốt nhất để cải tiến và ứng dụng trong bài toán thực tế tại VNPT Thanh Hóa
Trang 124
CHƯƠNG 1: TỔNG QUAN 1.1 Tổng quan về học máy
Trong những năm gần đây, thuật ngữ Học máy, học sâu hay Trí tuệ nhân tạo đang được nhắc đến rất nhiều Song hành với những thuật ngữ Cách mạng công nghiệp 4.0, chuỗi khối Vậy học máy, học sâu là gì và có những ý nghĩa gì trong cuộc Cánh mạng công nghiệp 4.0 Học máy - Machine Learning là một phần của trí tuệ nhân tạo (AI), có thể hiểu là một hệ thống được lập trình sẵn để có thể tìm ra những quy luật của tập dữ liệu, thông tin cho trước, từ đó suy đoán được câu trả lời với những dữ liệu, thông tin trong tương lai
Học máy kết hợp dữ liệu với các công cụ thống kê để dự đoán đầu ra Đầu ra này sau đó được sử dụng để đưa ra các quyết định Học máy có liên quan chặt chẽ đến khai phá dữ liệu và mô hình dự đoán Bayes Máy nhận dữ liệu làm đầu vào, sử dụng thuật toán để tạo câu trả lời
Thông thường người ta phân loại học máy 4 phương pháp: Học có giám sát, học không giám sát, học nửa giám sát và học tăng cường Các phương pháp này được phân loại dựa trên kết quả mong muốn của thuật toán
Học máy thường được sử dụng cho nhiều nhiệm vụ trong dự đoán, dự báo, phát hiện gian lận, dự đoán bảo trì, tối ưu hóa danh mục đầu tư, tự động hóa nhiệm vụ, v.v
1.2 Bài toán phát hiện mặt người
Công nghệ thông tin đã đi vào thực tiễn cuộc sống từ nhiều năm, AI cũng không ngoại lệ, thậm chí đang là xu thế thời đại công nghệ 4.0 Việc ứng dụng AI vào cuộc sống hàng ngày giúp chúng ta có cuộc sống tốt hơn, cải thiện năng suất, hiệu quả công việc Một trong những ứng dụng phổ biến
đó là việc phát hiện và nhận dạng mặt người Mức độ phổ biến có thể được biết đến với những việc hết sức đơn giản như điểm danh, hoặc giám sát việc
Trang 135
di chuyển của một người nào đó Tất nhiên để nhận dạng được khuôn mặt thì trước hết phải biết được đâu là khuôn mặt, đó là yêu cầu trong việc phát hiện mặt người, ở góc độ bài toán phát hiện mặt người cũng đã có rất nhiều thuật toán được nghiên cứu và với độ chính xác rất cao Tuy nhiên, các ứng dụng
về AI nói chung cũng như các ứng dụng phát hiện và nhận dạng mặt người thường yêu cầu cao về hiệu năng tính toán, tốc độ xử lý nên việc áp dụng rộng rãi với chi phí hợp lý đang là yêu cầu cần thiết đối với các dạng bài toán này để nó không chỉ nằm trong phòng thí nghiệm mà ngày càng trở nên phổ biến, có thể triển khai rộng rãi với mức chi phí bình dân
Bài toán phát hiện mặt người đã được nghiên cứu từ những năm 1990, các nhà khoa học không ngừng tìm kiếm các phương pháp, kỹ thuật mới, thuật toán mới nhằm nâng cao hiệu quả, độ chính xác cũng như tốc độ phát hiện và nhận dạng mặt người
Mặt người cũng như mọi đối tượng khác trong thực tiễn đều có những đặc trưng nhất định, thường các nhà khoa học tập trung vào các đặc trưng này
để có thể đưa ra được các thuật toán Các đặc điểm nhìn thấy được như thường có đôi mắt, mũi, miệng với vị trí cũng như hình dạng của chúng Tất nhiên, trong thực tế thì không phải không có những khó khăn khi phát hiện mặt người bằng máy vì không phải lúc nào khuôn mặt cũng có thể nhìn thẳng
và thấy đầy đủ các yếu tố cơ bản như việc góc nghiêng của khuôn mặt, độ sáng cũng ảnh hưởng đến việc phát hiện khuôn mặt hoặc đôi khi là các yếu tố phụ như cặp kính mắt, bộ râu, các trạng thái cảm xúc của khuôn mặt cũng là một trở ngại Và đây chính là những yếu tố cần phải nghiên cứu xử lý để bài toán phát hiện mặt người trong thực tiễn ứng dụng
1.3 Các ứng dụng trong thực tiễn
Trong kỷ nguyên số, AI nổi lên như một trong những xu thế công nghệ của thời đại, cùng với đó thì bài toán về phát hiện, nhận dạng mặt người đang
Trang 14 Phát hiện tội phạm: Tại các camera công cộng có kết nối đến CSDL quốc gia về tội phạm có thể thực hiện phát hiện và nhận dạng tội phạm Những ứng dụng này hiện nay nổi bật nhất đang được triển khai tại Trung Quốc với tốc độ nhận dạng cũng như độ chính xác cực cao
Truy tìm đối tượng nói chung: Có thể truy tìm các đối tượng như tìm trẻ lạc dựa vào các camera đặt ở các nơi công cộng
Quản lý di trú của các đối tượng cần theo dõi như hoạt động của tội phạm, hoạt động tình báo hay đơn giản là phát hiện các nhân vật cần quan tâm đã từng đi đâu, làm gì
Ứng dụng trong bảo mật: Phát hiện và nhận diện khuôn mặt đang được phổ biến hiện nay như một mật khẩu sinh trắc học để có thể truy cập vào điện thoại, tài khoản ngân hàng hoặc sử dụng để xác định chủ nhà trong các ứng dụng nhà thông minh (smarthome)
1.4 Một số sản phẩm thương mại trên thị trường
a Sản phẩm BKFace: Nhóm sinh viên ĐH Bách khoa [24]
BKFace dựa trên việc áp dụng kỹ thuật học sâu cho phép ánh xạ không gian khuôn mặt người vào một không gian véc-tơ 128 chiều Mô hình học sâu cho phép huấn luyện tham số của phép ánh xạ nhằm đảm bảo các bức ảnh của cùng một người sẽ được ánh xạ thành những điểm gần nhau trong không gian mới Các bức ảnh của những người khác nhau sẽ nằm phân tán, cách xa nhau một khoảng cách nhất định
Trang 157
Bộ sản phẩm nhận dạng khuôn mặt của nhóm có thể ứng dụng trong nhiều lĩnh vực thực tế như: Nhận diện gương mặt để kiểm soát người ra vào tại các tòa nhà; xây dựng thông tin khách hàng để chăm sóc khách hàng tốt hơn; hỗ trợ an ninh để nhận diện kẻ khả nghi… Với các đơn vị điều tra, nếu tạo được cơ sở dữ liệu lớn có thể xác minh danh tính dễ hơn, rút ngắn thời gian điều tra
Khả năng nhận dạng khuôn mặt lên tới 96%, khả năng nhận diện cảm xúc với độ chính xác 73%
b HiFACE - Hệ thống giám sát và chấm công bằng nhận diện khuôn mặt – Công ty Tinh Vân [16]
Sản phẩm cho phép nhận diện khuôn mặt và ghi lại log lên server, sau
đó có thể sử dụng log này tùy thuộc mục đích
Sản phẩm có hệ thống service tách riêng, có thể chạy nhiều server riêng biệt, có thể xử lý hình ảnh gửi về từ nhiều IP camera
Có thể thêm khuôn mặt mới vào hệ thống chỉ với 1 ảnh, ngoài ra hệ thống cho phép học khuôn mặt mới trực tiếp chỉ với 1, 2 giây mà không cần pause, restart hệ thống
Ngoài ra quá trình giám sát người, sử dụng tracking thay vì request liên tục lên server, làm giảm tải cho server
Có web để người dùng có thể xem live stream từ các camera, có website quản trị để quản trị viên có thể tương tác với hệ thống
c Camera giám sát VP9: Công ty VP9 [23]
Khi sử dụng camera giám sát của VP9, người dùng sẽ có được những tiện ích như sau: Hình ảnh cực nét, chuyển động siêu mượt: 1MP (HD), 2MP (FULL HD), 5MP (siêu mượt) Độ trễ 1-2 giây, tốn ít bộ nhớ, tốn ít băng thông Internet nhất, sử dụng ổn định cả với Internet tốc độ chậm Tích hợp giải pháp nén dữ liệu và nhận dạng
Trang 168
1.5 Kế hoạch ứng dụng tại VNPT Thanh Hóa
Triển khai thử nghiệm, áp dụng các kết quả đạt được từ nghiên cứu tại VNPT Thanh hóa như sau:
Địa điểm: Triển khai thử nghiệm tại một số phòng giao dịch của VNPT Thanh Hóa
Thời gian: Từ 01/7/2019-15/07/2019
Minh họa điều kiện thử nghiệm qua hình ảnh:
Hình 1.1: Triển khai ứng dụng tại VNPT Thanh hóa Một số yêu cầu trong triển khai thử nghiệm:
Thử nghiệm phát hiện mặt người;
Thử nghiệm trên các thiết bị PC và miniPC;
Thử nghiệm thời gian thực;
Thử nghiệm kiểm soát lượng người đến giao dịch
Trang 179
CHƯƠNG 2 BÀI TOÁN PHÁT HIỆN MẶT NGƯỜI THỜI GIAN THỰC
2.1 Giới thiệu bài toán
2.1.1 Bài toán phát hiện mặt người thời gian thực
Phát hiện mặt người (Face Detection) là một bài toán được quan tâm nhiều bởi cộng đồng khoa học máy tính bởi tính ứng dụng rộng rãi của nó trong cuộc sống Mô hình tổng quát của bài toán phát hiện mặt người như sau: + Sơ đồ tổng quát hệ thống thông thường:
Hình 2.1: Sơ đồ khối hệ thống phát hiện và nhận dạng mặt người [31] + Giải thích
Nhóm chức năng Image Capture: Thực hiện trích xuất ảnh từ các hệ thống thời gian thực khác như máy ảnh, camera Đầu ra là các ảnh
Nhóm chức năng Face Detection: Sử dụng các thuật toán khác nhau để trích xuất các vùng ảnh chứa mặt người
Trang 1810
Nhóm chức năng Pre-processing: Thực hiện tiền xử lý trước khi cập nhật vào CSDL
Nhóm chức năng Feature Extraction: Thực hiện trích xuất các đặc trưng
cơ bản của mặt người theo một số thuật toán nào đó
Nhóm chức năng Classification: Thực hiện đối sánh các đặc trưng từ các đối tượng thu nhận được với các đặc trưng đã được lưu trong CSDL để tiến hành phân loại và xác định tên của người trong ảnh đầu vào
Trong các hệ thống nhận dạng mặt người thường gồm nhiều bước và cũng không hề đơn giản,bước đầu tiên cần xác định mặt người (face detection), nghĩa là tìm vùng ảnh có chưa dữ liệu khuôn mặt và lưu trữ vùng ảnh đó để phục vụ các bước nhận dạng khuôn mặt (face recognition) sau, bước thứ hai là tiền xử lý ảnh (preprocessing) bao gồm công việc căn chỉnh lại ảnh (face image alignment) và chuẩn hóa ánh sáng về mức bình thường (illumination normalization)
Dữ liệu cho một hệ thống nhận dạng mặt (Database of Face) được chia làm 3 tập: Tập huấn luyện (training set), tập tham chiếu (reference set) và tập
để nhận dạng (gọi là “probe set” hay “query set” hay “test set”) Phần lớn tập huấn luyện trùng với tập tham chiếu Tập huấn luyện gồm các ảnh được dùng
để huấn luyện hay dùng để học (training hay learning), thông thường tập này được dùng để sinh ra một không gian con (projection subspace) là một ma trận và phương pháp hay được sử dụng là PCA (Principal Component Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis), KPCA (Kernel PCA) Tập reference gồm các ảnh đã biết danh tính được chiếu (projected) vào không gian con ở bước training Bước training nhằm 2 mục đích: Giảm số chiều (dimension reduction) của các vector đặc điểm (feature vector) vì các vector này thường có độ dài khá lớn (vài nghìn tới vài trăm nghìn) nên nếu để nguyên thì việc tính toán sẽ rất rất lâu, thứ hai là làm tăng tính phân biệt (discriminative) giữa các ảnh khác lớp (định danh khác
Trang 1911
nhau), ngoài ra có thể làm giảm tính phân biệt giữa các ảnh thuộc về một lớp (tùy theo phương pháp, ví dụ như Linear Discriminant Analysis LDA - còn gọi là Fisher Linear Discriminant Analysis-Fisherface là một phương pháp làm việc với tập training mà mỗi đối tượng có nhiều ảnh mặt ở các điều kiện khác nhau) Sau khi thực hiện chiếu tập reference vào không gian con, hệ thống lưu lại kết quả là một ma trận với mỗi cột của ma trận là một vector tương ứng với ảnh (định danh đã biết) để thực hiện nhận dạng (hay phân lớp) Nhận dạng (hay phân lớp) được thực hiện với tập các ảnh probe, sau khi tiền
xử lý xong, mỗi ảnh sẽ được áp dụng phương pháp trích chọn đặc điểm (như với các ảnh thuộc tập training và reference) và được chiếu vào không gian con Tiếp đến việc phân lớp sẽ dựa trên phương pháp kNN, định danh của một ảnh cần xác định sẽ được gán là định danh của ảnh có khoảng cách (distance) gần với nó nhất Ở đây cần lưu ý là mỗi ảnh là một vector nên có thể dùng khái niệm hàm khoảng cách giữa hai vector để đo sự khác biệt giữa các ảnh [15]
2.1.2 Các khó khăn của bài toán nhận dạng mặt người
Các thách thức đối với nhận dạng mặt: Những vấn đề sau được coi là thách thức lớn (chưa có phương pháp tốt) đối với nhận dạng mặt:
Vấn đề hướng (pose variations), các kết quả với các ảnh có hướng thay đổi (>45 độ, không phải chính diện) còn khá khiêm tốn, có lẽ 3D là một hướng giải quyết
Vấn đề ảnh có độ phân giải thấp (low resolution): Ảnh thu được từ các camera giám sát (surveillance camera) thường có kích thước và chất lượng rất thấp, các kết quả nghiên cứu về lĩnh vực này còn chưa nhiều
Làm việc với dữ liệu video (video based face recognition): Với sự phát triển của các phương tiện multimedia, thông tin mặt người trong các dữ liệu video là rất nhiều, tuy nhiên hầu hết các phương pháp nhận dạng vẫn
Trang 20 Aging condition: Nhận dạng ảnh mặt thay đổi theo thời gian thực sự vẫn còn là một vấn đề lớn ngay cả đối với khả năng nhận dạng của con người Qua thời gian, hình ảnh khuôn mặt của con người sẽ có rất nhiều biến đổi về mặt sinh học
Illumination (ánh sáng): Là một trong những thách thức lớn nhất (biggest challenges) của nhận dạng mặt, chưa có phương pháp tốt cho ảnh chụp ở điều kiện thay đổi ánh sáng (out door unconstrained)
Nguồn gốc của các thách thức trên là do tập training thường chỉ có một ảnh cho mỗi đối tượng (lớp) với các điều kiện cố định, trong khi tập probe lại gồm các ảnh ở các điều kiện khác (như đã liệt kê ở trên), làm gia tăng sự khác biệt giữa ảnh training, gallery và probe
Nghiên cứu về nhận dạng mặt: Vì có nhiều bước và còn nhiều thách thức nên có thể lựa chọn một khía cạnh trong một bước để tiến hành, ví dụ như chỉ nghiên cứu về illumination normalization, hay chỉ làm với ảnh low resolution, nhận dạng cảm xúc của khuôn mặt, hoặc thậm chí cụ thể hơn nữa, chỉ làm về face image alignment … Tuy nhiên hầu hết các nhà nghiên cứu đều tập trung vào bước feature extraction, tức là tìm một cách thức trích chọn đặc điểm hiệu quả cho nhận dạng mặt
2.1.3 Đánh giá hiệu năng các hệ thống phát hiện khuôn mặt
Để đánh giá hiệu năng của các hệ thống phát hiện khuôn mặt, người ta phải định nghĩa các độ đo chuẩn (metrics) và CSDL chuẩn chuyên dùng cho
Trang 21ở format pgm, format này hơi lạ với các chương trình đọc ảnh của Windows, nhưng với Matlab thì không có vấn đề gì, chúng ta có thể lưu lại thành định dạng bmp hoặc jpg để có thể sử dụng dễ ràng hơn
2.2 Phương pháp dựa trên xử lý ảnh, thị giác máy
2.2.1 Các kỹ thuật dựa trên đặc trưng HOG [32]
Kỹ thuật dựa trên đặc trưng HOG được đề xuất lần đầu bởi Bill Triggs
và Naval Dalal năm 2005 tại viện nghiên cứu INRIA Mục tiêu ban đầu được thiết kế để phát hiện người (Human Detect) nhưng sau đó được phát triển mở rộng để có thể phát hiện các đối tượng nói chung (object detect)
Ý tưởng chính trong phương pháp HOG chính là thông tin về hình dạng
và trạng thái của đối tượng có thể được đặc trưng bằng sự phân bố về Gradient và các hướng biên (edge directions) Việc trích chọn đặc trưng của ảnh sẽ ra kết quả là các vector đặc trưng, thay vì so sánh các đối tượng với nhau chúng ta chuyển sang so sánh các vector đặc trưng với nhau và việc so sánh các vector này thì đơn giản hơn rất nhiều và phù hợp với các chương trình trên máy tính
Trang 2214
Phương pháp tổng quan để tính đặc trưng HOG dựa trên một cửa sổ (Window) bất kỳ Phân chia cửa sổ cần tính HOG thành nhiều khối (block), mỗi khối thành nhiều ô nhỏ (cell) Các ô phải có kích thước bằng nhau và số lượng ô trong mỗi khối là bằng nhau Sau đó sẽ tính Gradient cho các ô để có hướng của từng ô Ghép các hướng này sẽ cho đặc trưng của ảnh ban đầu Các khối được sử dụng để tính ngưỡng cường độ sáng ở một vùng lớn hơn các ô và từ đó chuẩn hóa lại các ô trong khối Kết quả của việc chuẩn hóa làm cho vector đặc trưng của ảnh có tính bất biến cao hơn đối với việc thay đổi về cường độ sáng của ảnh
Các bước cơ bản để tính HOG gồm có: Tính gradient, gán hướng cho các ô, tính histogram của các khối và chuẩn hóa các khối
Để phát hiện mặt người sử dụng HOG người ta thực hiện theo các bước:
Bước 1: Chuẩn bị P mẫu ảnh mặt người, trích trọn vector đặc trưng từ ảnh
Bước 2: Chuẩn bị N mẫu không phải ảnh mặt người (N rất lớn so với P) Trích xuất các vector đặc trưng
Bước 3: Sử dụng một bộ phân loại SVM tuyến tính để học với các vector mẫu tích cực (ảnh mặt người) và mẫu tiêu cực (ảnh không phải mặt người)
Bước 4: Với mỗi ảnh tiêu cực, sử dụng cửa sổ trượt di chuyển trong ảnh và tính vector HOG để đưa vào bộ phân lớp Nếu bộ phân lớp báo sai thì ghi lại và vector tương ứng với xác suất phân lớp
Bước 5: Lấy mẫu nhận dạng sai ở bước 4 và sắp xếp theo xác suất nhận dạng sai và cho vào bộ phân lớp SVM học lại những mẫu sai này Bước 6: Áp dụng bộ phân lớp đã được học lại để phát hiện mặt người
Trang 2315
2.2.2 Kỹ thuật PCA [10]
Phương pháp PCA cho nhận dạng mặt (eigenface): Mỗi ảnh có kích thước WxH (kích thước phổ biến là 128×128) sẽ được chuyển thành một vector cột có độ dài W*H (cho cả tập training và probe) (gọi là các vector Xi)
Ở bước training, một vector trung bình của tất cả các ảnh training sẽ được tính (vector M), sau đó mỗi vector thuộc tập training sẽ bị mean-subtracted:
Xi=Xi-M, ma trận hiệp phương sai được tính bằng C = A’*A, trong đó A’ là
ma trận chuyển vị của A và A =[X1, X2, …Xk] là ma trận với các cột là các vetor Xi, k là số ảnh thuộc tập training (k=40*n với CSDL ORL) A sẽ có kích thước là (W*H)xk, còn ma trận C sẽ có kích thước là kxk, do k nhỏ hơn W*H rất nhiều nên việc tính k vector riêng (eigenvectors) và giá trị riêng tương ứng (eigen values) của C là dễ Ta sẽ tìm được k giá trị riêng tương ứng với k vector riêng của C Các vector riêng được sắp xếp theo thứ tự giảm dần của các giá trị riêng tương ứng, việc sử dụng tất cả các vector riêng là không cần thiết nên chỉ có N giá trị riêng đầu tiên tương ứng với N vector riêng được sử dụng (chính vì thế nên phương pháp này được gọi là phân tích thành phần chính-Principal Component Analysis) N vector riêng này sẽ tạo thành một ma trận có kích thước (W*H)xN là ma trận của không gian con nhận được (ta gọi ma trận này là Cp) Tiếp đến các ảnh thuộc tập training (ở đây cũng là tập reference) sẽ được chiếu vào không gian con bằng phép nhân:
Ap = Cp’ * A, tương tự các ảnh của tập probe sẽ được chiếu vào không gian con bằng phép nhân: Bp = Cp’*B Ap và Bp sẽ có kích thước tương ứng là NxN0Train (N0Train là số ảnh training, tức là bằng k) và NxN0Test (N0Test là
số ảnh của tập probe), nghĩa là mỗi ảnh tương ứng được biểu diễn bẳng một vector cột Ở bước phân lớp, với mỗi ảnh thuộc tập probe, ta tìm ảnh thuộc tập training gần với nó nhất Ở bước này các hàm khoảng cách: euclidean, mahalanobis, cosine angle distance đều có thể sử dụng
Trang 2416
Thực chất, ở nguyên bản của phương pháp PCA ma trận C = A*A’, và
cĩ kích thước là (W*H)x(W*H), tức là một ma trận rất lớn nên Mathew A Turk và Alex P Pentland (tác giả của phương pháp eigenface) đã sử dụng một thủ thuật là tìm N vector riêng vi (i=1 N) và giá trị riêng của ma trận L=A’*A (dễ hơn do ma trận cĩ kích thước nhỏ hơn) sau đĩ tính N vector riêng của C=A*A’ bằng cơng thức ui=A*vi
Việc tìm các vector riêng của ma trận hiệp phương sai C (trên thực tế là với ma trận L) cĩ hai cách: Dùng phương pháp eigen decomposition (hàm eig của matlab) hoặc singular value decomposition-SVD (hàm svd của matlab), tuy nhiên svd cĩ vẻ nhanh và cho kết quả tốt hơn so với eig
2.2.3 Các kỹ thuật dựa trên đặc trưng Haar Cascade [20]
Nhận dạng mặt người là một trong những vấn đề rất thách thức trong lĩnh vực thị giác máy tính và học máy Các cơng trình nghiên cứu gần đây đã nâng khá cao độ chính xác của hệ thống nhận dạng Tuy nhiên, trong bài này chúng tơi trình bày một phương pháp mới, kết hợp Haar Like Feature - Cascade of Boosted Classifiers (CBC) và các đặc trưng cục bộ khơng đổi (Scale-Invariant Feature Transform - SIFT) cho nhận dạng mặt người Các đặc trưng Haar Like kết hợp thuật tốn AdaBoost và mơ hình phân tầng Cascade cho phép phát hiện và rút trích ảnh khuơn mặt nhanh và chính xác Ảnh khuơn mặt được biểu diễn bằng các đặc trưng cục bộ khơng đổi (SIFT [1]), được xem như bất biến đối với những biến đổi tỷ lệ ảnh, tịnh tiến, phép quay, khơng bị thay đổi một phần với phép biến đổi hình học affine (thay đổi gĩc nhìn) và mạnh với những thay đổi về độ sáng, nhiễu và che khuất Để nhận dạng đối tượng, chúng tơi đề xuất sử dụng các thuật tốn k láng giềng gần nhất (k Nearest Neighbor – kNN), kNN đảo ngược và Nạve Bayes với láng giềng gần nhất (Nạve Bayes Nearest Neighbor – NBNN) Kết quả thử nghiệm trên nhiều tập dữ liệu thử nghiệm chuẩn AT&T, Face94, Face95, Face96, Grimace, Jaffe cho thấy phương pháp nhận dạng mặt người được đề
Trang 2517
nghị bởi chúng tôi đạt được các kết quả tốt hơn so với các phương pháp khác,
độ chính xác đạt được bởi kNN, kNN đảo và NBNN lần lượt là 94.35%, 86.05% và 98.83%
Haar like Feature – CBC
Tính đặc trưng SIFT
Ảnh
đối tượng
Phát hiện khuôn mặt
CSDL SIFT Nhận dạng khuôn mặt
Trang 2618
+ Đặc trưng Haar like: Đặc trưng Haar like được tạo thành là sự kết hợp giữa
vị trí các điểm ảnh đen và trắng theo một thứ tự nhất định Cĩ 4 đặc trưng cơ bản của Haar like
Hình 2.3: Các đặc trưng cơ bản Haar like [20]
+ So khớp SIFT: Trước hết phải trích xuất thơng tin dữ liệu đối tượng dưới dạng mơ tả SIFT rồi so sánh với dữ liệu trong CSDL để đưa ra kết luận Ý tưởng chính của thuật tốn: Với một Vector SIFT A, sử dụng giải thuật kNN
để tìm vector B và C là 2 vector gần với Vector A nhất theo thứ tự Nếu tỉ lệ khoảng cách của (A, B) và khoảng cách (A, C) nhỏ hơn hoặc bằng 0,8 thì Vector SIFT B được gọi là khớp so với Vector SIFT A
+ Phương pháp NBNN (Nạve Bayes Nearest Neighbours): Tư tưởng của NBNN được thực hiện qua 3 bước:
Bước 1: Tính tốn tất cả khoảng cách d1,d2, … , dn của truy vấn Q
Bước 2: ∀di ∀C tìm láng giềng gần nhất của di trong C:NNC(di)
Bước 3: 𝐶 = arg min ∑ ‖dd − NN ‖
2.3 Phương pháp dựa trên mạng Neuron
2.3.1 Kỹ thuật Faster R-CNN
Thuật tốn Faster R-CNN nằm trong nhĩm các thuật tốn về mạng nhân chập theo khu vực (R-CNN-Regional Convolutional Neural Network) [28] Phương pháp Faster R-CNN là một trong các phương pháp phát hiện đối tượng sử dụng mạng Deep learning đạt độ chính xác cao trên các tập dữ liệu chuẩn như COCO Faster R-CNN được cải tiến từ 2 phiên bản R-CNN và Fast R-CNN của cùng nhĩm tác giả nhằm giải quyết vấn đề thời gian xử lý Nhĩm thuật tốn R-CNN cĩ điểm chung là gồm 2 bước:
Trang 2719
Bước 1: Đưa ra vùng (bounding box) có khả năng chứa đối tượng quan tâm
Bước 2: Với mỗi vùng xác định xem đó là đối tượng nào
Với 2 phiên bản trước đó là R-CNN và Fast R-CNN thì bước 1 được sử dụng thuật toán Selective search để đưa ra vùng, với đầu vào là ảnh màu, đầu
ra khoảng 2000 vùng đề xuất có khả năng chứa đối tượng Chính vì số lượng vùng đề xuất (region proposal) quá lớn nên Faster R-CNN không dùng thuật toán selective search để lấy ra các region proposal, mà nó thêm một mạng CNN mới gọi là Region Proposal Network (RPN) để tìm các region proposal
Một Region Proposal Network nhận đầu vào là ảnh với kích thước bất
kì và cho đầu ra là region proposal (tập vị trí của các hình chữ nhật có thể chứa vật thể), cùng với xác suất chứa vật thể của hình chữ nhật tương ứng
Hình 2.4: Kiến trúc Faster R-CNN [28]
Trang 2820
Sau khi có được các đặc trưng học sâu (deep feature) từ các lớp tích chập (convolutional) đầu tiên, mạng RPN sử dụng cửa sổ trượt trên bản đồ đặc trưng (feature map) để rút trích đặc trưng cho mỗi vùng đề xuất RPN được xem như là một mạng liên kết đầy đủ (full-connected network) cùng lúc thực hiện 2 nhiệm vụ đó là dự đoán tọa độ cho các đối tượng và độ tin cậy cho đối tượng đó So với các phương pháp trước đó Faster R-CNN đạt kết quả cao hơn và có thời gian xử lý nhanh hơn, tuy nhiên tốc độ vẫn chưa thể đáp ứng xử lý theo thời gian thực
Hình 2.5: Thời gian xử lý của Faster R-CNN [28]
Bắt nguồn từ mạng Region-based Convolutional Neural Networks ( CNN)
R-Mạng R-CNN nổi lên như một ứng viên thay thế cho HOG khi đưa sự chính xác lên một tầm cao mới R-CNN sử dụng thuật toán Selective Search dựa vào các chi tiết ảnh như màu sắc, biên, cạnh… để sinh ra khoảng 2000 box ứng viên có khả năng chứa object trong đó Tuy nhiên, việc cho 2000 box này lần lượt qua mạng CNN để tách lấy các đặc trưng rồi dùng các bộ phân loại như SVM để dự đoán đối tượng và tối ưu các box bằng linear regression
đã chiếm thời gian tính toán quá lớn cỡ vài trăm seconds/frame (FPS) nên việc ứng dụng việc nó vào phát hiện thời gian thực (real time detection) là điều không thể
Trang 2921
Hình 2.6: Kiến trúc R-CNN [34]
Chính vì lẽ đó mạng Fast R-CNN ra đời để giải quyết vấn đề trên R-CNN kế thừa từ mạng Spatial Pyramid Pooling (SPP-net) với những cải tiến như sau:
Fast-Hình 2.7: Kiến trúc Fast R-CNN [34]
Trang 3022
Fast R-CNN đưa toàn bộ ảnh đầu vào qua mạng CNN trước khi áp dụng Selective Search Thay thế bộ phân loại SVM bằng Softmax Layer cho việc classifier và sử dụng lớp full connected ngay sau lớp “Rol Pooling” khiến các candidate (box) được dùng chung các trọng số (weights) thay vì riêng rẽ như kiến trúc R-CNN nên đã cải thiện tốc độ rất nhiều
Tuy nhiên ta có thể thấy rằng việc sử dụng thuật toán Selective Search chèn vào kiến trúc mạng khiến Fast R-CNN bị gián đoạn Việc không thể training mạng từ đầu vào cho đến đầu ra và đó là lý do Faster R-CNN ra đời Faster R-CNN thay thế thuật toán Selective Search bằng một mạng Region Proposal Network (RPN) Mạng này có cấu tạo như sau:
Sử dụng một cửa sổ 3x3 để scan trên các feature map sau khi cho ảnh qua ConvNet Tất nhiên cửa sổ này không giống sliding window trước kia (trượt lần lượt từ đầu cho đến hết ảnh) mà nó được thiết kế bằng kiến trúc mạng neural xử lý song song và có tính năng tương đương gọi là Convolutional Implementation of Sliding Window [34]
Mỗi tọa độ nó sinh ra k anchorBox với các tỉ lệ khác nhau: Tall box, wide box, large box,…Trong thuật toán gốc chỉ sinh ra 3 loại với tỉ lệ 1:1, 1:2 và 2:1
Hình 2.8: Slide window trong Faster R-CNN [34]
Trang 31nó đồng bộ với kiến trúc neural network từ đó có thể sử dụng thuật toán lan truyền ngược (back propagation) để train toàn bộ mạng
Hình 2.9: Kiến trúc Faster R-CNN [34]
Faster R-CNN đã tiếp tục nâng tốc độ cùng sự chính xác cho nhóm thuật toán gốc của nó lên một mức cao hơn nữa và trở thành một trong những kiến trúc tiêu chuẩn cho Object Detection Gần đây có bản mở rộng với tính năng dò biên (segmentation) là Mask R-CNN
2.3.2 Kỹ thuật Single Shot MultiBox Detector [17]
Single Shot MultiBox Detector (SSD) là mô hình single shot detector
sử dụng mạng VGG19 để trích chọn đặc trưng Mô hình như hình 2.10 Trong
Trang 3224
đó, những conv có màu xanh nước biển nhạt là những custom convolution layter (ta có thể thêm bớt bao nhiêu tuỳ thích) Convolutional filter layter (là hình màu xanh lá cây) có nhiệm vụ tổng hợp các thông tin lại để đưa quyết định
Hình 2.10: Mô hình SSD [19]
Single-Shot Detector là một model cân bằng giữa tốc độ và sự chính xác Không giống như Faster R-CNN chia công việc thành 2 giai đoạn, tạo các vùng quan tâm - region of interest (default box) sau đó mới phân loại (classify) chúng SSD thực hiện 2 giai đoạn này trong một “single shot”
Hình 2.11: Kiến trúc sử dụng trong SSD [17]
Các bước thực hiện của SSD như sau:
Bước 1: Cho ảnh đi qua một loạt các convolutional ở scales khác nhau 38x38, 19x19,10x10, …
Bước 2: Với mỗi tọa độ trên feature map, sử dụng một convolutional filter 3x3 để tạo ra các anchor box có tỉ lệ khác nhau:
Trang 3325
Hình 2.12: Mô tả feature map trong SSD [17]
Bước 3: Trên mỗi box xử lý đồng thời việc phân loại và tinh chỉnh kích thước box
Bước 4: Trong quá trình training, những box nào cho IoU (Intersection over Union) lớn hơn 0.5 sẽ được giữ lại
Ta thấy SSD sinh ra số lượng bounding box rất lớn do quét (scan) trên rất nhiều các feture map với kích thước các nhau Vì vậy, họ áp dụng thêm một số thuật toán để giảm bớt các box thừa như Non-Max Suppression hay Hard negative mining [27]
Về cơ bản SSD không quá khác với Faster R-CNN đều sử dụng một cửa sổ sliding window dò tìm trên từng tọa độ feature map để dự đoán các bounding box Chỉ có điều SSD sử dụng trên nhiều tầng feature khác nhau và đồng thời xử lý phân loại ngay lúc đó Chính vì điều này SSD sẽ nhanh hơn
so với Faster R-CNN nhưng độ chính xác sẽ giảm, vì các đặc trưng trên các lớp đầu của mạng CNN sẽ không tốt như dồn cả vào tầng cuối theo cách trong thuật toán Faster R-CNN
2.3.3 Một số kỹ thuật khác
Kỹ thuật YOLO [18]
Lý do gọi nó là YOLO (You only look once) đúng với ý nghĩa: Ảnh chỉ cần cho qua mạng một lượt là có thể sinh ra được bounding box thay vì phải chia làm 2 công đoạn để để sinh ra các default box trước rồi mới lựa
Trang 34Hình 2.14: Anchor box trong YOLO [21]
Giả sử ảnh đầu vào được chia thành 9 cell: 3x3 và cần phân loại trong 3 class: 1.perdestrian, 2 Car và 3 Motorcycle
YOLO sẽ được thiết kế với đầu ra y là: 3 x 3 x 8 x 2 Với:
- 8 là số parameter cần tìm bao gồm: P ( xác suất có vật hay ko), bx, by (tọa độ vật), bh, bw (kích thước bounding box), C1, C2, C3 (tương ứng với 3 class)
Trang 35(do số lượng Anchorbox nh
có thể xử lý trên CPU core I3 v
có thể đạt 100 frm/s
27
anchor box (box có chung tọa độ, box này đư
ng hợp 2 vật chồng lên nhau)
nding box được sinh ra bằng số gridcell
ng YOLO thực tế số grid cell thường được chAnchorbox là 2 Nên số bounding box tối đa được sinh ra v
ding box
Ngoài ra YOLO cũng dùng một số trick để giảm bớt s
Max suppression và Intersection Over Union (IoU)
Max Suppression: Chỉ chọn P (khả năng có object trong cell) đ
nh thành các cell như thế Tuy nhiên, tốc độ của YOLO thì
ng Anchorbox nhỏ hơn rất nhiều so với SSD và Faster
lý trên CPU core I3 với tốc độ cỡ 1frame/second v
, box này được sinh ra để
gridcell * số anchor box
c chọn là 7x7 = 49 và
c sinh ra với các mạng đó
t số bounding box là
năng có object trong cell) đạt
i box dữ liệu Người ta
ỏ từ chính việc chia
a YOLO thì đáng kinh ngạc
i SSD và Faster R-CNN) nó ame/second với GPU 1070 nó
Trang 3628
2.4 Kết luận
Tất cả model trên đều có những điểm giống nhau sau:
+ Box proposal generation: Đều phải thực hiện sampling feature maps (feature map titling) bằng các anchor boxes Từ các feature maps thì chọn một
số cell để gắn các anchor boxes, các cell có thể là mọi vị trí hoặc một số vị trí của feature maps (phụ thuộc vào sliding window kernel)
+ Dùng regresion (Smooth L1) để correct tọa độ của các anchor boxes và dùng classification (2-class softmax) để dự đoán label of these output boxes (đối với face detection)
Khác nhau:
Về tốc độ: Faster R-CNN < SSD < YOLO
Về sự chính xác: YOLO < Faster R-CNN < SSD
Về sự phức tạp trong training: YOLO < SSD < Faster R-CNN
Sau này các phiên bản nâng cấp, cải tiến của từng kỹ thuật thì chúng gần như tương đương với nhau
Trang 37Faceboxes là một mô hình CNN được đề xuất bởi tác giả Shifeng Zhang dựa trên kiến trúc mạng SSD để chuyên cho việc dò tìm mặt người [30]
+ Nó thay phần đầu trong SSD (VGG16) bởi vài lớp CNN họ gọi RDCL (Rapidly Digested Convolutional Layers) để tách feature map
+ Chỉ sử dụng Anchor Box ratio là 1:1 (mặt người thường hình vuông) nên ít tham số hơn so với các box hình chữ nhật (ratio 2:1, 1:2)
+ Số lượng anchors box được sinh ra trên các feature map cũng ít hơn
3 thay đổi trên giúp Faceboxes đạt được một số tối ưu khi dò tìm face trên ảnh lớn (1024x1024)
Hãy phân tích cách Faceboxes sinh ra Anchorbox, hình 3.1:
Hình 3.1: Kiến trúc Faceboxes [30]
Faceboxes chỉ sinh ra Anchorbox ở 3 tầng cuối mà họ gọi là Multiple Scale Convolutional Layers Với 3 scale lần lượt gọi là 0, 1, 2 ( giống với SSD, nhưng SSD sinh tại nhiều tầng hơn)