Đăng ký Đăng nhập
Trang chủ Xây dựng hệ thống nhận dạng khuôn mặt sử dụng raspberry pi và opencv (tt)...

Tài liệu Xây dựng hệ thống nhận dạng khuôn mặt sử dụng raspberry pi và opencv (tt)

.PDF
25
42
52

Mô tả:

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA --------------------------------------- NGUYỄN VĂN THƠ XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT SỬ DỤNG RASPBERRY PI VÀ OPENCV C C R UT.L D Chuyên ngành : Kỹ thuật điện tử Mã số: 8520203 TÓM TẮT LUẬN VĂN THẠC SĨ Đà Nẵng – Năm 2020 Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS. Nguyễn Duy Nhật Viễn Phản biện 1: TS. Ngô Minh Trí Phản biện 2: TS. Ngô Văn Sỹ C C R UT.L D Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ kỹ thuật điện tử tại Trường Đại học Bách khoa vào ngày 25 tháng 10 Có thể tìm hiểu luận văn tại:  Trung tâm Học liệu và truyền thông, Trường Đại học Bách khoa - ĐHĐN  Thư viện Khoa Điện tử - viễn thông, Trường Đại học Bách khoa - ĐHĐN 1 MỞ ĐẦU 1. Tính cấp thiết của đề tài Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành Computer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt -Iris recognition). Xét về nguyên tắc chung, nhận dạng mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặt trưng (feature extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người. So với nhận dạng vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát). Nhận dạng khuôn mặt được ứng dụng rất rộng rãi trong đời sống hằng ngày của con người, như các hệ thống bảo mật, an ninh, giám sát, quản lý vào ra, tìm kiếm thông tin, ứng dụng trong mạng xã hội như Facebook, google… Vì vậy nhận dạng khuôn mặt được nhiều nhóm nghiên cứu, công ty công nghệ lớn trên thế giới quan tâm. Thêm nữa cùng với sự ra đời và phát triển bùng nổ của khoa học máy tính, nhận dạng khuôn mặt đang đòi hỏi nhiều yêu cầu cao về kết quả, độ tin cậy, tính bảo mật. C C R UT.L D Hiện nay, tất cả các thuật toán nhận diện khuôn mặt được phát 2 triển phần lớn đều dựa trên nền tảng hệ thống xử lý tín hiệu số DSP (Digital Signal Processing) với lượng tài nguyên tính toán rất lớn và giá thành cao, vì vậy khó có thể tích hợp vào các hệ thống nhận dạng yêu cầu giá thành thấp. Để giải quyết vấn đề này, luận văn hướng đến nghiên cứu nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi, với đặc trưng là tài nguyên tính toán giới hạn nhỏ gọn, giá thành thấp nhưng vẫn đảm bảo độ chính xác. Khi trí tuệ nhân tạo AI và Internet vạn vật (IoT) đang phát triển mạnh mẽ, cùng với đó là các thiết bị thông minh ngày càng có sẵn cho người tiêu dùng, nhu cầu về một hệ thống kết nối nhận dạng khuôn mặt với các tiện ích thông minh trở nên phổ biến thì máy tính nhúng Raspberry là một trong những lựa chọn phù hợp và hiệu quả cao. C C R UT.L 2. Mục đích nghiên cứu Luận văn xây dựng hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3 sử dụng thư viện mã nguồn mở OpenCV. Thông qua việc nghiên cứu lý thuyết và thực nghiệm hệ thống nhận dạng khuôn mặt, luận văn đưa ra khảo sát đánh giá về độ chính xác cũng như tính đáp ứng thời gian thực, từ đó luận văn hướng đến triển khai hệ thống nhận dạng ứng dụng trong thực tiễn. D 3. Đối tượng và phạm vi nghiên cứu   Lý thuyết tổng quan về hệ thống nhận dạng khuôn mặt. Phương pháp để nhận dạng và phân lớp đối tượng ứng dụng trong nhận dạng khuôn mặt.  Lý thuyết tổng quan về máy tính nhúng Raspberry Pi và thư viện xử lý ảnh OpenCV  chập Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural tích 3  Các tiêu chí đánh giá hiệu năng của hệ thống nhận dạng khuôn mặt: tỉ lệ nhận dạng đúng, thời gian nhận dạng. 4. Phương pháp nghiên cứu Luận văn được nghiên cứu theo phương pháp thu thập dữ liệu kết hợp giữa lý thuyết và thực nghiệm, theo thứ tự sau:  Thu thập tài liệu nghiên cứu, bao gồm tài liệu lý thuyết và thực nghiệm.  Tìm hiểu, khảo sát cơ sở vật chất, kỹ thuật và công nghệ, thiết bị sẵn có, linh kiện phù hợp có mặt trên thị trường.  Xây dựng mô hình tổng quan về nhận dạng khuôn mặt trên hệ thống nhúng (kit Raspberry Pi).  Thao tác thử nghiệm các thuật toán trực tiếp trên phần cứng.  Xây dựng bản demo hệ thống nhận dạng khuôn mặt C C R UT.L 5. Ý nghĩa khoa học và thực tiễn của đề tài Luận văn thực hiện lại các nghiên cứu từ các tài liệu, bài báo cáo khoa học về kỹ thuật nhận dạng khuôn mặt dựa trên nền tảng OpenCV và Raspberry Pi. Kết quả luận văn sẽ là tài liệu tham khảo để rút ra ưu điểm và những hạn chế của phương pháp nhận dạng khuôn mặt trên hệ thống nhúng Raspberry Pi. Trên cơ sở đó có thể sử dụng Raspberry Pi để ứng dụng vào các hệ thống điều khiển, quản lý, giám sát, an ninh… D 6. Bố cục luận văn Luận văn được chia ra làm 4 chương như sau: Chương 1: Tổng quan về hệ thống nhận dạng khuôn mặt Phân tích tổng quan hệ thống nhận dạng khuôn mặt, tình hình phát triển của kỹ thuật này cũng như tóm tắt sơ lược về các phương pháp, kỹ thuật nhận dạng khuôn mặt. Chương 2: Kỹ thuật trích chọn đặc trưng và phương pháp 4 phân lớp ứng dụng trong nhận dạng khuôn mặt Tập trung phân tích lý thuyết cho hệ thống từ mức tổng quan đến chi tiết từng thuật toán. Ở chương này, Luận văn trình bày lý thuyết chung cho từng kỹ thuật ứng dụng trong luận văn: kỹ thuật phân tích thành phần chính PCA, kỹ thuật huấn luyện bằng phương pháp đối sánh và phương pháp máy vector hỗ trợ SVM, phương pháp mạng Neural nhân tạo. Chương 3: Hệ thống nhận dạng khuôn mặt trên máy tính nhúng Raspberry Pi 3 Trình bày các kiến thức tổng quan về Raspberry Pi 3 và thư viện mã nguồn mở OpenCV, quy trình thực hiện nhận dạng khuôn mặt thực hiện trên Raspberry Pi. Chương 4: Thực nghiệm và đánh giá hệ thống Trình bày hệ thống nhận dạng khuôn mặt thực nghiệm, đánh giá hiệu năng của hệ thống. Từ đó rút ra kết luận và hướng phát triển của đề tài Luận văn được thực hiện dựa trên các nguồn tài liệu tham khảo được thu thập từ nhiều nguồn khác nhau: các bài báo trong các tạp chí hoặc hội thảo khoa học chuyên ngành, các báo cáo khoa học, cơ sở dữ liệu Đồ án và Luận văn tại các trường Đại học, được trích dẫn trong suốt luận văn và danh mục tài liệu được liệt kê cụ thể ở phần Tài liệu tham khảo. D C C R UT.L 5 CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 1.1. Giới thiệu chương 1.2. Tổng quan về hệ thống nhận dạng khuôn mặt 1.2.1. Các vấn đề liên quan 1.2.2. Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt Nhận dạng khuôn mặt là một kiểu nhận dạng trực quan, khuôn mặt được xem là một đối tượng với sự thay đổi của ánh sáng, tư thế, cảm xúc sẽ được xác định dựa trên ảnh hai chiều. Nhiệm vụ của hệ thống nhận dạng khuôn mặt là xử lý tự động thông tin từ các hình ảnh đầu vào và đưa ra quyết định về thông tin khuôn mặt. Trong đề tài này, cấu trúc của hệ thống nhận dạng khuôn mặt được thực hiện theo quy trình như hình sau: C C R UT.L Image D Phát hiện khuôn mặt Trích xuất đặc trưng Nhận dạng khuôn mặt Dữ liệu khuôn mặt Hình 1.1. Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt Chức năng từng khối mô tả cụ thể như sau: Phát hiện khuôn mặt: Hệ thống nhận dạng khuôn mặt đầu tiên bắt đầu với việc định vị khuôn mặt người trong một hình 6 ảnh cụ thể. Mục đích của bước này là xác định xem hình ảnh đầu vào có chứa khuôn mặt người hay không. Sự thay đổi của ánh sáng và biểu cảm khuôn mặt có thể ngăn cản việc phát hiện khuôn mặt thích hợp.. Nhiều kỹ thuật được sử dụng để phát hiện và định vị hình ảnh khuôn mặt người, ví dụ, máy dò Viola Jones, biểu đồ của gradient định hướng (HOG), và phân tích thành phần chính (PCA). Trích xuất đặc trưng: Chức năng chính của bước này là trích xuất các đặc điểm của hình ảnh khuôn mặt được phát hiện trong bước đầu tiên. Bước này đại diện cho một khuôn mặt với một tập hợp các vectơ đặc điểm được gọi là “đặc trưng” mô tả các đặc điểm nổi bật của hình ảnh khuôn mặt như miệng, mũi và mắt với sự phân bố hình học của chúng. Mỗi khuôn mặt được đặc trưng bởi cấu trúc, kích thước và hình dạng cho phép nó được nhận dạng. Một số kỹ thuật liên quan đến việc trích xuất hình dạng của miệng, mắt hoặc mũi để xác định khuôn mặt bằng cách sử dụng kích thước và khoảng cách. HOG, Eigenface, phân tích thành phần độc lập (ICA), phân tích phân biệt tuyến tính (LDA), biến đổi tính năng bất biến tỷ lệ (SIFT), bộ lọc gabor, lượng tử hóa pha cục bộ (LPQ) và kỹ thuật mẫu nhị phân cục bộ (LBP) được sử dụng rộng rãi để trích xuất các đặc trưng của khuôn mặt. Nhận dạng khuôn mặt: Bước này xem xét các đặc trưng được trích xuất trong bước trích xuất đặc trung và so sánh nó với các khuôn mặt đã biết được lưu trữ trong cơ sở dữ liệu cụ thể. Trong bước nhận dạng, một khuôn mặt thử nghiệm được so sánh với một tập hợp các khuôn mặt trong dữ liệu có sẵn nhằm tìm ra khuôn mặt phù hợp nhất. Trong bước nhận dạng, một khuôn mặt kiểm tra được so sánh với các khuôn mặt đã biết trong cơ sở dữ liệu để đưa ra quyết định. D C C R UT.L 7 1.2.3. Những khó khăn, thách thức của hệ thống nhận dạng khuôn mặt 1.2.4. Những ứng dụng hệ thống nhận dạng khuôn mặt 1.3. Kết luận chương D C C R UT.L 8 CHƯƠNG 2 KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT 2.1. Giới thiệu chương 2.2. Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar 2.2.1. Tổng quan về các đặc trưng Haar-like 2.2.2. Mô hình phân tầng Cascade of Classifiers 2.3. Các phương pháp nhận dạng khuôn mặt 2.3.1. Nhận dạng dựa trên đặc trưng giữa các phần tử (Feature Based) 2.3.1.1 Phương pháp dùng biến đổi Gabor Wavelet và mạng Neural 2.3.1.2. Phương pháp SVM 2.3.2. Nhận dạng dựa trên xét toàn diện khuôn mặt 2.3.2.1. Nhận dạng bằng PCA 2.3.2.2. Phương pháp LDA 2.4. Kỹ thuật trích chọn đặc trưng PCA 2.4.1. Giới thiệu về phương pháp PCA 2.4.2. Thuật toán PCA 2.5. Phương pháp đối sánh trong nhận dạng 2.6. Phương pháp máy vector hỗ trợ 2.7. Phương pháp mạng Neural tích chập 2.7.1. Nhận dạng khuôn mặt sử dụng mạng neural tích chập C C R UT.L D Hình 2.12. Kiến trúc cơ bản một mạng neural tích chập (CNN) 9 Hình 2.13. Mạng neural ứng dụng trong phân loại đối tượng 2.7.2. Lớp tích chập 2.7.3. Lớp tinh chỉnh đơn vị tuyến tính (ReLU layer) 2.7.4. Pooling layer 2.7.5. Lớp kết nối hoàn chỉnh (The Fully connected layer) 2.7.6. Hàm mất mát (Loss function) 2.8. Kết luận chương D C C R UT.L 10 CHƯƠNG 3 XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT TRÊN MÁY TÍNH NHÚNG RASPBERRY PI 3 3.1. Giới thiệu chương Trong chương này sẽ giới thiệu về máy tính nhúng Raspberry Pi 3, thư viện mã nguồn mỡ OpenCV và ngôn ngữ Python. Trình bày quy trình thiết kế hệ thống nhận dạng khuôn mặt trên Raspberry Pi và các thuật toán thực hiện phát hiện, nhận dạng khuôn mặt được sử dụng trong hệ thống. 3.2. máy tính nhúng Raspberry Pi 3 3.2.1. Giới thiệu chung 3.2.2. Cấu trúc phần cứng 3.2.3. Hệ điều hành 3.2.4. Ưu, nhược điểm 3.3. Ngôn ngữ Python 3.3.1. Giới thiệu Python 3.3.2. Các chức năng chính của Python 3.4. thư viện OpenCV 3.4.1. Giới thiệu OpenCV 3.4.2. Tổ chức thư viện OPENCV 3.5. Quy trình xây dựng hệ thống nhận dạng khuôn mặt 3.5.1. Sơ đồ chức năng hệ thống nhận dạng khuôn mặt C C R UT.L D Hình 3.5. Sơ đồ quá trình nhận dạng khuôn mặt trên Raspberry Pi 3 11 C C R UT.L D Hình 3.6. Sơ đồ chức năng của hệ thống Quy trình được thực hiện gồm 3 giai đoạn như sau: Giai đoạn 1: Phát hiện khuôn mặt và thu thập dữ liệu Phát hiện khuôn mặt là phần có ý nghĩa quan trọng trong hệ thống nhận dạng khuôn mặt, hệ thống sử dụng phương pháp mạng neural tích chập nối tầng đa nhiệm (Multi-Task Cascaded Convolutional Networks: MTCNN) để thực hiện quá trình phát hiện và cân chỉnh khuôn mặt. Giai đoạn 2: Trích xuất đặc trưng Hình ảnh khuôn mặt sau khi được phát hiện và cân chỉnh được nhúng qua một mạng Neural tích chập CNN. Hệ thống sử dụng model MobileFaceNets thực hiện trích xuất đặc trưng khuôn mặt. 12 Giai đoạn 3: Nhận dạng khuôn mặt Ảnh người cần nhận dạng được thu thập bởi Camera, sau đó quá trình xử lý ảnh khuôn mặt được thực hiện tương tự như giai đoạn 1 và giai đoạn 2. Hình ảnh sau xử lý cũng được trích xuất các đặc trưng và được so sánh với cơ sở dữ liệu trong hệ thống. Nếu xác thực được danh tính khuôn mặt thì hệ thống sẽ xuất kết quả ID cho khuôn mặt. Hệ thống ứng dụng phương pháp nhận dạng khuôn mặt sử dụng mạng Siamese neural network với kỹ thuật học một lần (One shot learning). 3.5.2. Phát hiện khuôn mặt sử dụng mạng neural tích chập nối tầng đa nhiệm (MTCNN) C C R UT.L 3.5.2.1. Giới thiệu 3.5.2.2. Cấu trúc mạng MTCNN cho nhận diện D Hình 3.7. Kiến trúc mạng MTCNN 13 C C R UT.L Hình 3.8. Các bước phát hiện và cân chỉnh khuôn mặt sử dụng MTCNN D 3.5.3. Mã hóa và nhận dạng khuôn mặt Hình 3.9. Quy trình mã hóa khuôn mặt sử dụng mạng Neural tích chập 14 Hình 3.10. Kết quả mã hóa khuôn mặt thành vecto 128 chiều C C R UT.L 3.6. Kết luận chương D 15 CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG 4.1. Giới thiệu chương Trong chương này sẽ giới thiệu về hệ thống thực nghiệm được xây dựng. Quá trình lựa chọn cơ sở dữ liệu cũng như tiêu chí đánh giá chất lượng của hệ thống nhận dạng. Từ kết quả thực hiện trực tiếp trên tập dữ liệu xây dựng để đưa ra đánh giá hiệu quả và chất lượng của hệ thống thực nghiệm. 4.2. Kết quả thực hiện hệ thống Hệ thống nhận dạng bao gồm hai phần riêng biệt. Đầu tiên là C C R UT.L phần đăng ký thông tin, trong phần này giao diện đăng ký được hiển thị để thực hiện đăng lý thông tin cá nhân, hình ảnh khuôn mặt tương D ứng với thông tin đó. Phần 2 là quá trình nhận dạng của hệ thống, tại phần này, hệ thống thực hiện quá trình nhận dạng và thông tin ID được hiển thị Sau khi khởi tạo giao diện đăng ký, các thông tin như trên giao diện được đăng ký cho một đối tượng. Hình ảnh khuôn mặt có thể được chọn từ dữ liệu có sẵn hoặc đăng ký hình ảnh trực tiếp từ camera. 16 C C R UT.L Hình 4.2. Quá trình đăng ký từ những hình ảnh có sẵn D Hình 4.3. Quá trình đăng ký hình ảnh trực tiếp từ camera 17 Sau khi thực hiện đăng ký xong cho các đối tượng, hệ thống khởi tạo chương trình nhận dạng. Giao diện nhận dạng được hiển thị như hình 4.5. Trên giao diện hiển thị thông tin của đối tượng bao gồm họ tên, tỷ lệ trùng khớp, khuôn mặt và thời gian hệ thống nhận dạng được. C C R UT.L D Hình 4.5. Giao diện nhận dạng khuôn mặt Hình 4.6. Hệ thống nhận dạng nhiều đối tượng cùng lúc 18 4.3. Đánh giá hệ thống 4.3.1. Tiêu chí đánh giá Bảng 4.1. Ma trận confusion matrix Kết quả Nhãn P N T True positive (TP) False positive (FP) F False negative (FN) True negative (TN) Các tham số trong bảng được hiểu như sau:  TP (True Positives): là tổng số nhãn P được nhận dạng đúng là P C C R UT.L  FP (False Positives): là tổng số nhãn N được nhận dạng là P  TN (True Negatives): là tổng số nhãn N được nhận dạng D đúng là N  FN (False Negatives): là tổng số nhãn P được nhận dạng là N Để đánh giá hiệu suất nhận dạng, độ tin cậy và độ chính xác của các thuật toán được phát triển, các tiêu chí đánh giá sau đây được sử dụng: RC = TP TP + FN , PR = TPR  TP TP + FP TP TP  FN , ACC = , TNR  TP + TN TP + TN + FP + FN TN TN+FP (4.1) Trong đó:  RC (recall) - Tỉ lệ nhận dạng đúng  PR (precision) - Độ tin cậy  Acc (Accuracy) - Độ chính xác: Tham số này là sự dung hòa
- Xem thêm -

Tài liệu liên quan