intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn tốt nghiệp Công nghệ thống tin: Xây dựng hệ thống nhận dạng kiểm soát khuôn mặt với Deep Learning

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:91

52
lượt xem
23
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Luận văn "Xây dựng hệ thống nhận dạng kiểm soát khuôn mặt với Deep Learning" nghiên cứu kỹ thuật phát hiện ảnh mặt dựa trên đặc trưng HOG (Histogram of Oriented Gradients); nghiên cứu thuật toán giám sát SVM (Support Vector Machine); nghiên cứu thư viện mã nguồn mở OpenCV; nghiên cứu thư viện mã nguồn mở Dlib  Nghiên cứu thư viện mã nguồn mở Tensorflow và Keras; nghiên cứu kiến trúc mạng CNN VGG16; nghiên cứu áp dụng hàm Triplet Loss của mạng Deep Learning cho bài toán nhận dạng mặt.

Chủ đề:
Lưu

Nội dung Text: Luận văn tốt nghiệp Công nghệ thống tin: Xây dựng hệ thống nhận dạng kiểm soát khuôn mặt với Deep Learning

  1. TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN THỰC TẬP TỐT NGHIỆP XÂY DỰNG HỆ THỐNG NHẬN DẠNG KIỂM SOÁT KHUÔN MẶT VỚI DEEP LEARNING Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: CÔNG NGHỆ THÔNG TIN Giảng viên hướng dẫn : Ths. Đặng Nhân Cách Sinh viên thực hiện : Nguyễn Hà Khánh Duy MSSV: 1651120078 Lớp: CN16B Đỗ Nguyên Khang MSSV: 1651120098 Lớp: CN16B Võ Thành Thông MSSV: 1651120135 Lớp: CN16B
  2. TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN --------------------------------------- NGUYỄN HÀ KHÁNH DUY ĐỖ NGUYÊN KHANG VÕ THÀNH THÔNG XÂY DỰNG HỆ THỐNG NHẬN DẠNG KIỂM SOÁT KHUÔN MẶT VỚI DEEPLEARNING NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP TỐT NGHIỆP NGƯỜI HƯỚNG DẪN (Đơn vị công tác/ công ty nếu có) TP. HỒ CHÍ MINH – 2020 2
  3. LỜI CAM ĐOAN Nhóm xin cam đoan đồ án Thực tập tốt nghiệp với đề tài: “Xây dựng hệ thống nhận dạng kiểm soát khuôn mặt với Deep Learning” là công trình nghiên cứu của nhóm. Những phần sử dụng tài liệu tham khảo trong đồ án đã được nêu rõ trong phần tài liệu tham khảo. Các số liệu, kết quả trình bày trong đồ án là hoàn toàn trung thực, nếu sai nhóm xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra. 3
  4. MỤC LỤC CHƯƠNG 1 GIỚI THIỆU .............................................................................. 10 1.1 TÍNH CẤP THIẾT CỦA VẤN ĐỀ NGHIÊN CỨU................................................ 10 1.2 MỤC TIÊU, ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU .......................................... 10 1.2.1 Mục tiêu nghiên cứu....................................................................... 10 1.2.2 Đối tượng áp dụng, phạm vi nghiên cứu ......................................... 11 1.3 PHƯƠNG PHÁP NGHIÊN CỨU ..................................................................... 11 1.3.1 Trích xuất khuôn mặt từ ảnh 2D ..................................................... 11 1.3.2 Kỹ thuật Deep Learning ................................................................. 12 1.4 KẾT QUẢ ĐẠT ĐƯỢC CỦA ĐỀ TÀI .............................................................. 13 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ................................................................. 15 2.1 BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI – NHỮNG VẤN ĐỀ CƠ BẢN ................... 15 2.1.1 Giới thiệu ....................................................................................... 15 2.1.2 Thách thức trong nhận dạng mặt người .......................................... 16 2.2 BẢN CHẤT BÀI TOÁN VỀ DEEP LEARNING ................................................. 17 2.3 CÁC THƯ VIỆN MÃ NGUỒN MỞ ĐƯỢC SỬ DỤNG.......................................... 19 2.3.1 Thư viện OpenCV .......................................................................... 19 2.3.2 Thư viện Dlib ................................................................................. 23 2.3.3 Thư viện Tensorflow ...................................................................... 23 2.3.4 Thư viện Keras............................................................................... 26 2.3.5 Thư viện Numpy ............................................................................ 26 2.3.6 Thư viện Matplotlib ....................................................................... 27 2.3.7 Tóm tắt từng nhiệm vụ của thư viện ............................................... 28 2.4 MẠNG THẦN KINH NHÂN TẠO (NEURAL NETWORK) .................................. 29 2.4.1 Mạng nơ-ron .................................................................................. 29 2.4.2 Neural network .............................................................................. 29 2.4.3 Deep Learning ............................................................................... 30 2.4.4 Convolutional Neural Network....................................................... 33 2.4.5 Cấu trúc của mạng CNN (Covolutional Neural Network) ............... 35 2.4.6 Huấn luyện Neural Network ........................................................... 42 4
  5. 2.4.7 Hàm loss ........................................................................................ 44 CHƯƠNG 3 TRIỂN KHAI NGHIÊN CỨU................................................... 45 3.1 LỰA CHỌN KỸ THUẬT .............................................................................. 45 3.2 CHUẨN BỊ DỮ LIỆU................................................................................... 45 3.3 CHUẨN BỊ MÔ HÌNH ................................................................................. 46 3.4 CHUẨN BỊ HÀM LOSS PHÙ HỢP VỚI MODEL ................................................ 51 CHƯƠNG 4 TRIỂN KHAI HUẤN LUYỆN MÔ HÌNH ............................... 55 4.1 XÁC ĐỊNH KHUÔN MẶT TRONG ẢNH (FACIAL DETECTION) ........................ 55 4.2 BIỂU DIỄN CÁC KHUÔN MẶT DƯỚI DẠNG VECTOR ...................................... 60 4.3 XÂY DỰNG MODEL .................................................................................. 61 4.3.1 Sumary .......................................................................................... 61 4.3.2 Compile ......................................................................................... 64 4.3.3 Mô phỏng dữ liệu ........................................................................... 75 4.4 KẾT QUẢ QUÁ TRÌNH HUẤN LUYỆN VÀ TIẾN HÀNH ĐÁNH GIÁ..................... 82 4.4.1 Quá trình huấn luyện một model .................................................... 82 4.4.2 Xác minh danh tính khuôn mặt ....................................................... 84 4.4.3 Kết quả .......................................................................................... 85 CHƯƠNG 5 KẾT LUẬN ................................................................................ 87 5
  6. DANH MỤC HÌNH Hình 2.1 Các thông tin có trong ảnh mặt người .................................................... 16 Hình 2.2 Cấu trúc của thư viện OpenCV. ............................................................. 19 Hình 2.3 Mức độ phổ biến của tensorflow ............................................................ 24 Hình 2.4 Chức năng của từng thư viện ................................................................. 28 Hình 2.5 So sánh mạng Nơ-ron của người và mô phỏng ....................................... 29 Hình 2.6 Mô hình tổng quát Neural Network ....................................................... 30 Hình 2.7 Deep Neural Network ............................................................................ 31 Hình 2.8 Weights giữa các liên kết nơ-ron ........................................................... 32 Hình 2.9 Convolutional 1 ..................................................................................... 34 Hình 2.10 Convolutional 2 ................................................................................... 34 Hình 2.11 Convolutional Neural Network ............................................................ 36 Hình 2.12 Local receptive field 1 ......................................................................... 37 Hình 2.13 Local receptive field 2 ......................................................................... 38 Hình 2.14 Local receptive field 3 ......................................................................... 38 Hình 2.15 Local receptive field 4 ......................................................................... 39 Hình 2.16 Convolutional Neural Network ............................................................ 40 Hình 2.17 Pooling layer 1 .................................................................................... 41 Hình 2.18 Pooling layer 2 .................................................................................... 41 Hình 2.19 Gradient Descent ................................................................................. 43 Hình 3.1 Label Face in the Wild .......................................................................... 46 Hình 3.2 VGG16.................................................................................................. 47 Hình 3.3 ConVNet ............................................................................................... 48 Hình 3.4 Hình minh hoạ cho kiến trúc model ....................................................... 50 6
  7. Hình 4.1 Face detection ....................................................................................... 55 Hình 4.2 Haarlike features ................................................................................... 56 Hình 4.3 HOG and SVM, CNN............................................................................ 59 Hình 4.4 68 Landmark ......................................................................................... 60 Hình 4.5 Gradient Decent .................................................................................... 66 Hình 4.6 Global and Local ................................................................................... 67 Hình 4.7 Stochastic Gradient Descent .................................................................. 70 Hình 4.8 Learning rate ......................................................................................... 71 Hình 4.9 Momentum ............................................................................................ 72 Hình 4.10 Nesterov’s Acceleration....................................................................... 72 Hình 4.11 Đồ thị hàm Loss .................................................................................. 77 Hình 4.12 PCA .................................................................................................... 79 Hình 4.13 T-SNE ................................................................................................. 80 Hình 4.14 T-SNE 1 .............................................................................................. 81 Hình 4.15 T-SNE 2 .............................................................................................. 82 Hình 4.16 Training dataset ................................................................................... 83 Hình 4.17 Detect .................................................................................................. 86 7
  8. DANH SÁCH THUẬT NGỮ, CHỮ VIẾT TẮT STT Viết tắt Diễn giải 1 HOG Histogram of Oriented Gradient 2 SVM Support Vector Machine 3 FERET Face Recognition Technology 4 PCA Principal Components Analysis 5 LDA Linear Discriminant Analysis 6 LBP Local Binary Pattern 7 LFW Labeled Face in Wild 8 CNN ConvNet – Convolutional Neural Network 8
  9. LỜI MỞ ĐẦU Ngày nay, cùng với những tiến bộ vượt bậc của khoa học kỹ thuật nói chung, bộ môn khoa học xử lý ảnh đã và đang thu được những thành tựu lớn lao và chứng tỏ vài trò không thể thiếu với những ứng dụng sâu rộng trong khoa học kỹ thuật cũng như đời sống xã hội. Một bộ phận của khoa học xử lý ảnh là lĩnh vực thị giác máy tính hiện đang thu hút rất nhiều sự quan tâm của các nhà nghiên cứu xử lý ảnh với mục tiêu xây dựng nên một thế giới trong đó hệ thống thị giác kỳ diệu của con người có thể được mô phỏng bởi các hệ thống máy tính, đem lại khả năng cảm nhận bằng thị giác cho các hệ thống về môi trường xung quanh. Mơ ước về một hệ thống máy tính có thể hoà nhập vào thế giới con người với đầy đủ các giác quan trong đó thị giác đóng vai trò quan trọng đang dần dần được hiện thực hoá với những đóng góp nghiên cứu của các nhà khoa học trên phạm vi toàn thế giới. Tại Việt Nam, việc ứng dụng thông tin sinh trắc vào trong các giấy tờ (hộ chiếu, chứng minh thư, ...) cũng đang được tích cực nghiên cứu để đưa vào ứng dụng. Từ những lý do trên, nhóm đã chọn đề tài: “Xây dựng hệ thống nhận dạng đối tượng vi phạm giao thông”. 9
  10. Chương 1 GIỚI THIỆU 1.1 Tính cấp thiết của vấn đề nghiên cứu Con người rất giỏi việc nhận diện khuôn mặt và các hình mẫu phức tạp. Ngay cả khi một thời gian trôi qua vẫn không ảnh hưởng đến khả năng này và con người muốn máy tính trở nên mạnh mẽ như họ trong việc nhận diện khuôn mặt. Hơn một thập kỷ qua, có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt người từ ảnh đen trắng, ảnh xám, đến ảnh màu. Các nghiên cứu đi từ bài toán đơn giản là ảnh chỉ chứa một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng đứng, cho đến ảnh màu với nhiều khuôn mặt người trong cùng ảnh, khuôn mặt có quay một góc nhỏ, hay bị che khuất một phần, và với ảnh nền của ảnh phức tạp (ảnh chụp ngoài thiên nhiên) nhằm đáp ứng nhu cầu thật sự cần thiết của con người. Nhận dạng khuôn mặt là bài toán có nhiều ứng dụng trong thực tế và nhận được sự quan tâm lớn từ cộng đồng các nhà khoa học nghiên cứu về Thị giác máy tính trong thời gian gần đây. Một hệ thống nhận dạng khuôn mặt có nhiều bước và mỗi bước lại là một lĩnh vực nghiên cứu với các cách tiếp cận khác nhau. Đó chính là lý do nhóm đã chọn đề tài này nhằm nghiên cứu, học hỏi về công nghệ đang phát triển của thế giới. 1.2 Mục tiêu, đối tượng, phạm vi nghiên cứu 1.2.1 Mục tiêu nghiên cứu Nhằm xây dựng một chương trình nhận dạng khuôn mặt tự động, đề tài thực hiện nghiên cứu các vấn đề sau: 10
  11.  Nghiên cứu kỹ thuật phát hiện ảnh mặt dựa trên đặc trưng HOG (Histogram of Oriented Gradients)  Nghiên cứu thuật toán giám sát SVM (Support Vector Machine)  Nghiên cứu thư viện mã nguồn mở OpenCV  Nghiên cứu thư viện mã nguồn mở Dlib  Nghiên cứu thư viện mã nguồn mở Tensorflow và Keras  Nghiên cứu kiến trúc mạng CNN VGG16  Nghiên cứu áp dụng hàm Triplet Loss[1] của mạng Deep Learning cho bài toán nhận dạng mặt 1.2.2 Đối tượng áp dụng, phạm vi nghiên cứu Hệ thống nhận diện khuôn mặt có thể giúp:  Xác định danh tính của một đối tượng  Điểm danh trong phạm vi nhà trường, công sở  Tra cứu thông tin tội phạm  Giám sát bằng camera để phát hiện tội phạm tại các khu vực công cộng  Tìm trẻ lạc dựa vào các camera đặt ở các nơi công cộng  Phát hiện các nhân vật VIP đặt chân vào khách sạn  Có thể dùng trong khoa học để so sánh một thực thể với nhiều thực thể khác 1.3 Phương pháp nghiên cứu 1.3.1 Trích xuất khuôn mặt từ ảnh 2D Hầu hết các phần mềm nhận dạng khuôn mặt đều hoàn toàn dựa trên hình ảnh 2D. Nhưng vì hình ảnh 2D lại là một hình ảnh mang đến độ chính xác ‘ở 11
  12. mức máy móc’, máy dễ dàng nhận diện được khi sử dụng hình ảnh 2D nên vẫn được ưa chuộng. Vì sao ảnh 2D có độ chính xác? Đó là vì nó không có chiều sâu, và vì điều này khiến cho khuôn mặt ‘được’ nhận diện thiếu đi các đặc điểm nhận dạng riêng biệt hay ít biến số hơn nên dễ nhận diện hơn. Với một hình ảnh 2D hay hình ảnh phẳng hoàn toàn, máy tính có thể do khoảng cách độ rộng của miệng, khoảng cách mắt, độ rộng đồng tử và nhiều những biến số khác nhưng nó lại không thể đo được chiều dài/cao/cong mũi, đặc điểm trán bạn chẳng hạn, nó trở nên bất khả thi với hình ảnh 2D. Hiện nay có rất nhiều kỹ thuật để thực hiện việc nhận dạng khuôn mặt, tuy nhiên điểm chung của các kỹ thuật này là đều sẽ phải thực hiện qua 3 bước:  Bước 1: Xác định và lấy ra (các) khuôn mặt có trong hình ảnh  Bước 2: Từ hình ảnh các khuôn mặt lấy ra từ bước 1, thực hiện việc phân tích, trích xuất các đặt trưng của khuôn mặt  Bước 3: Từ các thông tin có được sau khi phân tích, kết luận và xác minh danh tính người dùng 1.3.2 Kỹ thuật Deep Learning Khi bắt đầu bước 2, thực việc phân tích, trích xuất các đặc trưng của khuôn mặt sẽ ứng dung kỹ thuật học sâu Deep Learning[2]. Đó chính là dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều biến đổi phi tuyến. Học sâu là một phần của một họ các phương pháp học máy rộng hơn dựa trên đại diện học của dữ liệu. Một quan sát (ví dụ như, một hình ảnh) có thể được biểu diễn bằng nhiều cách như một vector của các giá trị cường độ cho 12
  13. mỗi điểm ảnh, hoặc một cách trừu tượng hơn như là một tập hợp các cạnh, các khu vực hình dạng cụ thể, vv. Một vài đại diện làm khiến việc học các nhiệm vụ dễ dàng hơn (ví dụ, nhận dạng khuôn mặt hoặc biểu hiện cảm xúc trên khuôn mặt) từ các ví dụ. Một trong những hứa hẹn của học sâu là thay thế các tính năng thủ công bằng các thuật toán hiệu quả đối với học không có giám sát hoặc nửa giám sát và tính năng phân cấp. Nhiều kiến trúc học sâu khác nhau như mạng neuron sâu (DNN- Deep Neural Network), mã mạng neuron tích chập sâu (Convolutional Neural Network), mạng niềm tin sâu (Deep Belief Network) và mạng neuron tái phát đã được áp dụng cho các lĩnh vực như thị giác máy tính, tự động nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, nhận dạng âm thanh ngôn ngữ và tin sinh học, chúng đã được chứng minh là tạo ra các kết quả rất tốt đối với nhiều nhiệm vụ khác nhau. Mạng neuron tích chập sâu (Convolutional Neural Network) là một trong những mô hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay. Như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động. Ở đây mạng neuron tích chập sâu (Convolutional Neural Network) sẽ được áp dụng vào bài toán nhận dạng khuôn mặt này. 1.4 Kết quả đạt được của đề tài Do trình độ có hạn và thời gian đầu tư cho đề tài chưa nhiều nhưng nhóm mong muốn sẽ đạt được những kết quả nghiên cứu khả quan như: 13
  14.  Nắm bắt được quy trình phát triển của một hệ thống nhận dạng khuôn mặt cũng như nhiều hệ thống khác  Biết được nhiều khái niệm trên mức cơ bản phục vụ cho việc nghiên cứu luận văn  Phân tích được vai trò của lĩnh vực Machine Learning (Máy học) cụ thể là Deep Learning trong xu hướng của thế giới  Đánh giá thực trạng việc ứng dụng nhận dạng khuôn mặt trong các bài toán, mô hình khác nhau  Đề xuất một số giải pháp đang được ứng dụng trong việc xây dựng hệ thống nhận dạng khuôn mặt  Phân tích được toàn bộ bài toán từ bước mô tả quy trình đến việc phân tích dữ liệu và các chức năng của hệ thống  Xây dựng phần mềm tương đối hoàn chỉnh so với yêu cầu đề ra 14
  15. Chương 2 CƠ SỞ LÝ THUYẾT 2.1 Bài toán nhận dạng mặt người – những vấn đề cơ bản 2.1.1 Giới thiệu Nhận dạng mặt người (Face recognition) là một chủ đề nghiên cứu thuộc lĩnh vực thị giác máy tính (Computer Vision) đã được phát triển từ đầu những năm 90 của thế kỷ trước. Cho tới hiện nay, đây vẫn là một chủ đề nghiên cứu mở nhận được sự quan tâm của nhiều nhà nghiên cứu từ nhiều lĩnh vực nghiên cứu khác nhau như nhận dạng mẫu (Pattern Recognition), học máy (Machine Learning), thống kê (Statistics), sinh trắc học (Biometrics). Điều này là do có rất nhiều ứng dụng thực tế cần tới một hệ thống nhận dạng mặt, từ các hệ thống quản lý đăng nhập đơn giản cho tới các ứng dụng giám sát tại các địa điểm công cộng (public areas surveillance) hoặc quản lý dân số (population management) và pháp lý (forsensics). Bên cạnh đó, so với các hệ thống nhận dạng dựa trên các đặc điểm sinh trắc học khác của con người, như nhận dạng mống mắt và vân tay (fingerprint and iris recoginitions), dáng đi (gait recognition), nhận dạng mặt có nhiều ưu điểm:  Một hệ thống nhận dạng mặt không đòi hỏi có sự tương tác trực tiếp giữa đối tượng được nhận dạng và hệ thống  Việc thu nhận dữ liệu (ảnh mặt) cho quá trình nhận dạng một con người dễ thực hiện hơn so với thu nhận các đặc đặc điểm sinh trắc học khác (như thu nhận dấu vân tay và mống mắt)  Dữ liệu về mặt người phổ biến hơn so với các đặc trưng khác do sự bùng nổ các mạng xã hội (facebook, twitter …), các dịch vụ chia sẻ dữ liệu đa phương tiện (youtube, vimeo …) và sự phát triển mạnh mẽ của các thiết bị thu nhận hình ảnh 15
  16.  Từ ảnh khuôn mặt của một người ta có thể khai thác nhiều thông tin liên quan chứ không chỉ là danh tính, chẳng hạn như giới tính (gender), màu da (skin color), hướng nhìn (gaze direction), chủng tộc, hành vi, sức khỏe, độ tuổi, cảm xúc và mức độ thông minh… Hình 2.1 Các thông tin có trong ảnh mặt người 2.1.2 Thách thức trong nhận dạng mặt người Tuy nhiên việc xây dựng một hệ thống nhận dạng mặt hoàn toàn tự động với khả năng nhận dạng chính xác cao thực sự là một thách thức đối với các nhà nghiên cứu. Điều này là do các yếu tố (chủ quan và khách quan) ảnh hưởng tới quá trình thu nhận ảnh và tạo ra các bức ảnh có độ khác biệt rất lớn của cùng một khuôn mặt. Có thể liệt kê ra đây các yếu chủ yếu ảnh hưởng tới độ chính xác của một hệ thống nhận dạng mặt:  Ánh sáng (light conditions): Các bức ảnh mặt thu nhận ở các điều kiện sáng khác nhau sẽ rất khác nhau và làm giảm sự chính xác trong quá trình nhận dạng. 16
  17.  Thay đổi về tuổi (aging changes): Khuôn mặt người có các thay đổi lớn khi tuổi thay đổi và khó nhận dạng hơn ngay cả đối với hệ thống thị giác của con người.  Các vấn đề về hướng (pose variations): Việc nhận dạng với các ảnh có góc chụp thẳng (frontal) có kết quả tốt hơn rất nhiều so với các ảnh được chụp ở góc nghiêng lớn hơn 45o. Giải pháp thường thấy đối với các ảnh có hướng chụp lớn là sử dụng các thuật toán nội suy để cố gắng bù đắp phần khuôn mặt bị che khuất.  Cảm xúc (facial expresion variations: Ở các trạng thái cảm xúc khác nhau, các đặc điểm quan trọng cho nhận dạng mặt (như mắt, mũi, mồm) có thể bị biến dạng (deformed) và dẫn tới các kết quả nhận dạng sai.  Che khuất (occlusions): Các ảnh mặt có thể bị che khuất bởi các yếu tố khách quan như vật chắn ở trước mặt hoặc chủ quan như các phụ kiện trên khuôn mặt (khăn, kính mắt) và làm cho quá trình nhận dạng bị sai. Các hệ thống nhận dạng mặt được chia thành hai loại: xác định danh tính (face identification) và xác thực (face verification). Bài toán xác định danh tính là bài toán dạng 1-N trong đó hệ thống sẽ đưa ra kết quả là danh tính của ảnh được nhận dạng dựa trên sự tương đồng của ảnh input với một danh sách N ảnh đã biết danh tính chính xác. Trong khi đó, ở bài toán xác thực danh tính, hệ thống sẽ đưa ra câu trả lời đúng hoặc sai dựa vào việc xác định xem 2 bức ảnh có thuộc về cùng một người hay không. Trong phạm vi của đề tài này, nhóm tập trung vào bài toán xác định danh tính. 2.2 Bản chất bài toán về Deep Learning Deep Learning là thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của 17
  18. các loại dữ liệu. Deep Learning được ứng dụng trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên. Hiện nay rất nhiều các bài toán nhận dạng sử dụng Deep Learning, vì nó có thể giải quyết các bài toán với số lượng lớn các biến, tham số kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống, xây dựng những hệ thống thông minh với độ chính xác cao. CNN - Convolutional Neural Network là một trong những mô hình Deep Learning tiên tiến cho bài toán nhận dạng khuôn mặt. Bản chất của bài toán Deep learning chính là bạn có dữ liệu, bạn muốn máy tính học được các mô hình (model) từ dữ liệu, sau đó dùng mô hình đấy để dự đoán được các dữ liệu mới. Các bước cơ bản làm một bài toán deep learning :  Xây dựng bài toán  Chuẩn bị dữ liệu (dataset)  Xây dựng model (mô hình)  Định nghĩa loss function (hàm mất mát)  Thực hiện backpropagation (truyền ngược) và áp dụng gradient descent (thuật toán giảm độ dốc) để tìm các parameter (tham số) gồm weight và bias để tối ưu loss function  Dự đoán dữ liệu mới bằng model với các hệ số tìm được ở trên Bước xây dựng model thì áp dụng các kiến thức của neural network và convolutional neural network ta có thể xây dựng model hoàn chỉnh từ đầu bằng python. Tuy nhiên bước backpropagation trở nên phức tạp hơn rất rất nhiều. Khó để implement và tối ưu được tốc độ tính toán. 18
  19. Đấy là lý do các framework về deep learning ra đời với các đặc điểm:  Người dùng chỉ cần định nghĩa model và loss function, framework sẽ lo phần backpropagation.  Việc định nghĩa layer, activation function, loss function đơn giản hơn cho người dùng. Ví dụ để thêm layer trong neural network chỉ cần báo là layer có bao nhiêu node và dùng hàm activation gì.  Tối ưu việc tính toán trên CPU và GPU. 2.3 Các thư viện mã nguồn mở được sử dụng 2.3.1 Thư viện OpenCV Hình 2.2 Cấu trúc của thư viện OpenCV. 19
  20. OpenCV[3] là một thư viện mã nguồn mở cài đặt các thuật toán xử lý ảnh, thị giác máy tính và học máy. OpenCV được viết bằng ngôn ngữ C/C++ và có thể chạy trên hầu hết các nền tảng phần cứng (Intel, Mac, Raspberry Pi, Adruno ..) và phần mềm (Windows, Mac OS, Linux, iOS, Android). Các ngôn ngữ và công cụ lập trình phổ biến như Python, Java, Ruby, Matlab, Objective C, cũng có thể dễ dàng sử dụng OpenCV trong việc viết và triển khai các ứng dụng thực tế. Ban đầu thư viện OpenCV do hãng Intel phát triển và bảo trợ (từ những năm cuối của thế kỷ trước – bản alpha được phát hành chính thức vào tháng 2 năm 1999). Sau đó Intel quyết định chuyển OpenCV thành một thư viện mã nguồn mở và từ bỏ dự án này. Ngày nay OpenCV được phát triển và hỗ trợ bởi đông đảo các nhà phát triển, các nhà nghiên cứu trên toàn thế giới. Mỗi ngày lại có một bản vá lỗi với các thuật toán mới được thêm vào. Phiên bản mới nhất của OpenCV là 4.3 và công ty hiện đang bảo trợ cho OpenCV là một công ty của Nga có tên là Itseez. Mục đích thiết kế của OpenCV là nhắm tới các ứng dụng thời gian thực đòi hỏi các thao tác tính toán phải hết sức hiệu quả về tốc độ thực hiện nên các kỹ thuật tối ưu hóa được sử dụng ở tất cả các mức độ: từ việc tận dụng các kiến trúc đa nhân cho tới việc sử dụng các tập lệnh của CPU mới nhất như SSE 2, AVX, AVX 512 … OpenCV cũng tận dụng các thư viện lập trình song song mới nhất như TBB (Thread Building Blocks) của Intel, OpenMP và nền tảng CUDA của Nvidia để có thể triệt để khai thác các tài nguyên của hệ thống mà nó chạy trên. Một mục tiêu quan trọng của OpenCV là cung cấp một hạ tầng các thuật toán thị giác máy tính có giao diện đơn giản và dễ dàng sử dụng để có thể trợ giúp cho các lập trình viên, các nhà nghiên cứu nhanh chóng xây dựng được 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2