1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

25 110 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 1,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA -

NGUYỄN VĂN THƠ

Trang 2

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ỹ

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

Trang 3

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

Hiện nay, tất cả các thuật toán nhận diện khuôn mặt được phát

Trang 4

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

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

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

 Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural tích chập

Trang 5

 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

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…

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

Trang 6

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

Trang 7

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:

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

Phát hiện

khuôn mặt

Nhận dạng khuôn mặt

Trích xuất đặc trưng

Dữ liệu khuôn mặt

Trang 8

ả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

Trang 9

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

Trang 10

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.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

Hình 2.12 Kiến trúc cơ bản một mạng neural tích chập (CNN)

Trang 12

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.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

Hình 3.5 Sơ đồ quá trình nhận dạng khuôn mặt trên Raspberry Pi 3

Trang 13

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

Trang 14

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

Trang 16

Hình 3.10 Kết quả mã hóa khuôn mặt thành vecto 128 chiều

3.6 Kết luận chương

Trang 17

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à 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 ứ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

Trang 18

Hình 4.2 Quá trình đăng ký từ những hình ảnh có sẵn

Hình 4.3 Quá trình đăng ký hình ảnh trực tiếp từ camera

Trang 19

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

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

Trang 20

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

 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 đúng là N

 FN (False Negatives): là tổng số nhãn P được nhận dạng là

 PR (precision) - Độ tin cậy

 Acc (Accuracy) - Độ chính xác: Tham số này là sự dung hòa

Trang 21

giữa hai tham số PR và RC, nó thể hiện độ chính xác của hệ thống được nghiên cứu

 TPR (True positive rate) – Tỉ lệ đúng tích cực

 TNR (True negative rate) – Tỉ lệ đúng tiêu cực

Từ những tiêu chí đánh giá trên ta nhận thấy các tham số

RC, PR, và Acc càng cao thì hệ thống càng tốt

4.3.2 Xây dựng cơ sở dữ liệu và phân tích kết quả

4.3.2.1 Xây dựng cơ sở dữ liệu

Để đánh giá hệ thống, luận văn lựa chọn cơ sở dữ liệu từ bộ dữ

liệu khuôn mặt CASIA-WebFace Bộ dữ liệu CASIA-WebFace này

bao gồm 453.453 ảnh khuôn mặt của 10.575 người khác nhau Trong

số đó, 30 người được chọn ngẫu nhiên, mỗi người gồm 30 ảnh khuôn mặt với nhiều góc độ, tư thế, độ sáng khác nhau Trong bộ dữ liệu này, mỗi đối tượng ta sử dụng 20 ảnh để đăng ký danh tính và 10 ảnh

còn lại dùng để kiểm tra hệ thống

4.3.2.2 Đánh giá kết quả

Sau khi thực hiện đăng ký 30 khuôn mặt, ta sử dụng bộ dữ liệu

1 gồm 300 khuôn mặt của 30 người đã được đăng ký để kiểm tra hệ thống Kết quả thực hiện nhận dạng được thể hiện trong bảng 4.2

Nhận dạng đúng

Nhận dạng nhầm

Không nhận dạng được

Dựa vào bảng 4.2 ta có thể đánh giá được tỷ lệ nhận dạng đúng là 99,3%

Ngày đăng: 29/04/2021, 15:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w