1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tốt nghiệp tìm hiểu về thị giác máy tính và xây dựng ứng dụng điểm danh qua nhận diện khuôn mặt

47 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm hiểu về thị giác máy tính và xây dựng ứng dụng điểm danh qua nhận diện khuôn mặt
Tác giả Nguyễn Anh Đức
Người hướng dẫn TS. Nguyễn Quốc Tuấn
Trường học Trường Đại học Giao thông Vận tải
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 14,83 MB

Cấu trúc

  • Chương 1. Tổng quan về bài toán nhận dạng khuôn mặt và xử lý ảnh (10)
    • 1.1. Tổng quan về xử lý ảnh (10)
    • 1.2. Tổng quan nhận dạng mặt (10)
    • 1.3. Các bước chính trong xử lý ảnh (11)
    • 1.4. Các vấn đề trong xử lý ảnh và nhận diện khuôn mặt nói riêng (14)
  • Chương 2. Các phương pháp và thuật toán nhận dạng (16)
    • 2.1 Các kỹ thuật nhận dạng khuôn mặt (16)
      • 2.1.1 Dựa trên tiêu chí (16)
      • 2.1.2 Đối chứng mẫu(Template matching) (17)
      • 2.1.3 Dựa trên ngoại hình (17)
      • 2.1.4 Dựa trên đặc điểm (18)
      • 2.1.5 Phân biệt giữa phương pháp sử dụng đặc điểm và phương pháp sử dụng ngoại hình (19)
    • 2.2. Một số thư viện xử lý ảnh nổi bật (20)
      • 2.2.1 Open CV (20)
      • 2.2.2 EmguCV (21)
      • 2.2.3 FaceNet (22)
      • 2.2.4 PyTorch (23)
    • 2.3. Các phương pháp và thuật toán sử dụng trong nhận diện khuôn mặt (23)
      • 2.3.1 Các phương pháp nhận diện khuôn mặt (23)
      • 2.3.2 Biểu đồ so sánh một vài thuật toán nổi bật (24)
    • 2.4 Thuật toán Fisherface (25)
      • 2.4.1 Tổng quan (25)
      • 2.4.2 Phân tích thành phần chính (PCA) (25)
      • 2.4.3 Phân tích phân biệt tuyến tính (LDA) (26)
      • 2.4.4 Ứng dụng LDA Trong thị giác máy tính (27)
      • 2.4.5 Công thức toán học trong Fisherface (28)
      • 2.4.6 Quá trình xử lý của Fisherface sau PCA và LDA (29)
    • 2.5. Thuật toán LBPH (Local Binary Pattern Histogram) (30)
      • 2.5.1 Tổng quan (30)
      • 2.5.2 Phương thức hoạt động của LBPH (31)
      • 2.5.3 Cách xử lý ảnh (32)
  • Chương 3. Xây dựng ứng dụng nhận diện khuôn mặt (34)
    • 3.1 Nguồn dữ liệu sử dụng (34)
      • 3.1.1 Large-scale CelebFaces Attributes (CelebA) Dataset (34)
      • 3.1.2 Nguồn tự thu thập (35)
    • 3.2 Một số hàm xử lý (35)
    • 3.3 Thử nghiệm và áp dụng (38)
      • 3.3.1 So sánh các thuật toán nhận diện (38)
      • 3.3.2 Vấn đề ngưỡng (40)
      • 3.3.3 Kết quả thử nghiệm (41)
    • 3.4 Ứng dụng điểm danh bằng nhận diện khuôn mặt (42)
      • 3.4.1 Layout của ứng dụng (42)
      • 3.4.2 Ứng dụng trong trạng thái hoạt động (43)
      • 3.4.3 Danh sách đầu ra (44)
  • KẾT LUẬN (20)
    • 1. Kết quả đạt được (46)
    • 2. Hướng phát triển (46)
  • Phụ lục (47)

Nội dung

Nội dung, phạm vi của đề tài Đề tài Tìm hiểu về thị giác máy tính và ứng dụng làm app điểm danh qua nhậndiện khuôn mặt bao gồm hai phần chính: - Phần tìm hiểu về thị giác máy tính:+ Tìm

Tổng quan về bài toán nhận dạng khuôn mặt và xử lý ảnh

Tổng quan về xử lý ảnh

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó.

Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay.

Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác Đầu tiên phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như Đại số tuyến tính, Xác suất, thống kê Một số kiến thứ cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh.

Hình 1.1: Minh họa các bước xử lý ảnh – nguồn: https://www.tinhoccoban.net/2018/10/tu-hoc-xu-ly-anh-nhap-mon-xu-ly-anh.html Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh Đầu tiên, ảnh từ thế giới ngoài được thu qua các thiết bị như Camera Trước đây, ảnh thu qua Camera là các ảnh phim Gần đây, với sự phát triển của công nghệ, ảnh có thể được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo (Máy ảnh số hiện nay là một thí dụ gần gũi) Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh.

Tổng quan nhận dạng mặt

Bài toán nhận dạng khuôn mặt là một lĩnh vực trong trí tuệ nhân tạo và xử lý ảnh có mục tiêu là xác định và nhận biết các đặc điểm trên khuôn mặt của con người Nó bao gồm việc sử dụng các thuật toán và phương pháp để tự động nhận diện và phân loại khuôn mặt trong ảnh hoặc video.

Quá trình nhận dạng khuôn mặt thường bao gồm các bước chính sau:

Phát hiện khuôn mặt: Ở bước này, thuật toán được sử dụng để phát hiện và xác định vị trí của khuôn mặt trong ảnh hoặc video Các phương pháp phổ biến bao gồm phát hiện các điểm đặc trưng như mắt, mũi, miệng để xác định ranh giới của khuôn mặt.

Trích xuất đặc trưng: Sau khi khuôn mặt được phát hiện, các đặc trưng quan trọng như hình dạng, cấu trúc, và các điểm đặc trưng như mắt, mũi, miệng được trích xuất từ khuôn mặt Đây là bước quan trọng để biểu diễn một khuôn mặt dưới dạng các giá trị số học để có thể so sánh và nhận dạng sau này.

So sánh và nhận dạng: Sau khi có biểu diễn số học của khuôn mặt, quá trình so sánh được thực hiện để so sánh khuôn mặt hiện tại với các khuôn mặt đã biết trước đó trong cơ sở dữ liệu Các phương pháp so sánh thường dựa trên các thuật toán như k- nearest neighbors, Support Vector Machines (SVM), hoặc deep learning neural networks như Convolutional Neural Networks (CNN) để tìm ra sự tương đồng hoặc khác biệt giữa các khuôn mặt.

Các bước chính trong xử lý ảnh

Các bước cơ bản của ứng dụng xử lý ảnh gồm 3 bước chính:

Tiền xử lý -> Phát hiện -> Nhận diện Tuy nhiên tùy theo yêu cầu mà không cần phải có đủ 3 bước.

Hình 1.2: Sơ đồ các bước xử lý ảnh – nguồn: https://www.tinhoccoban.net/2018/10/tu- hoc-xu-ly-anh-nhap-mon-xu-ly-anh.html

Tiền xử lý có mục đích làm cho ảnh dễ nhận dạng hơn, loại bỏ các yếu tố không cần thiết Các công việc thường gặp như:

– Biến đổi ảnh thành dạng ảnh khác: ảnh màu sang ảnh xám, ảnh xám sang nhị phân, RGB -> GrayScale,…

Hình 1.3: Tiền xử lý ảnh trong nhận dạng khuôn mặt nguồn: Improve Face

Recognition Rate Using Different Image Pre-Processing Techniques

Trong ứng dụng nhận diện khuôn mặt thì tiền xử lý biến đổi ảnh thành ảnh xám, cắt tách khuôn mặt và chỉnh kích cỡ cần Ngoài ra tùy theo yêu cầu về độ chính xác mà có thể áp dụng nhiều phương thức để ảnh dễ nhận diện hơn Thường là cân bằng sáng, tăng độ tương phản để nhận diện chính xác hơn.

Ví dụ biển số xe cũng chuyển sang ảnh xám, và tùy theo size ảnh của camera (1MP hay 2MP) mà resize lại Cần phải resize vì kích cỡ ảnh quá lớn sẽ làm tốn thời gian xử lý.

Phát hiện vật thể dùng để tìm vật thể trong ảnh Sau bước này sẽ biết được có vật thể cần tìm không, nếu có thì ở vị trí nào & số lượng bao nhiêu.

Hình 1.4: Phát hiện khuôn mặt

Khi xong bước phát hiện khuôn mặt bạn sẽ biết được số lượng khuôn mặt trong ảnh (0 -> n) Nếu 0 có khuôn mặt thì dừng lại & trả về kết quả, nếu có thì qua bước 3 để nhận diện.

Bước 3: Nhận diện (Nhận dạng)

Sau khi đã phát hiện được vật thể và muốn nhận diện vật thể loại nào thì cần bước này Bước này phải sử dụng Machine Learning để phân lớp (classification) đối tượng.

Hình 1.5: Nhận diện danh tính Để nhận diện khuôn mặt cần crop khuôn mặt để Machine Learning nhận diện. Bước phân lớp tác dụng là tìm xem giống khuôn mặt đã học nào nhất Kết quả trả về là khuôn mặt giống nhất kèm tỉ lệ giống (confident).

Các ký tự sau khi segment khỏi ảnh thì tiến hành phân loại lớp để lấy kết quả

Các vấn đề trong xử lý ảnh và nhận diện khuôn mặt nói riêng

Công nghệ xử lý ảnh và nhận dạng khuôn mặt đưa ra cả vấn đề và mối quan tâm cần được giải quyết Một số vấn đề chính bao gồm:

Mối quan tâm về quyền riêng tư: Nhận dạng khuôn mặt làm tăng mối lo ngại đáng kể về quyền riêng tư vì nó liên quan đến việc thu thập và lưu trữ dữ liệu sinh trắc học của các cá nhân, vốn mang tính cá nhân và nhạy cảm cao Có rủi ro là dữ liệu này có thể bị lạm dụng, vi phạm hoặc truy cập mà không có sự đồng ý, dẫn đến khả năng vi phạm quyền riêng tư. Độ chính xác và sai lệch: Hệ thống nhận dạng khuôn mặt không hoàn hảo và có thể gặp vấn đề về độ chính xác, đặc biệt là khi xác định chính xác các cá nhân thuộc các nhóm chủng tộc, sắc tộc và giới tính khác nhau Các nghiên cứu đã chỉ ra rằng các hệ thống nhận dạng khuôn mặt có thể thể hiện sự sai lệch và có tỷ lệ lỗi cao hơn đối với một số nhân khẩu học nhất định, dẫn đến khả năng phân biệt đối xử và nhận dạng sai.

Giám sát và theo dõi: Việc triển khai rộng rãi công nghệ nhận dạng khuôn mặt tại các không gian công cộng làm dấy lên lo ngại về việc giám sát hàng loạt và xâm phạm quyền riêng tư cá nhân Khả năng theo dõi và giám sát các cá nhân trong thời gian thực bằng cách sử dụng nhận dạng khuôn mặt có thể được coi là xâm phạm quyền tự do cá nhân và có thể gây ra những tác động đáng sợ đối với hành vi xã hội.

Thiếu quy định và minh bạch: Hiện tại, thiếu các quy định và tiêu chuẩn toàn diện quản lý việc sử dụng công nghệ nhận dạng khuôn mặt Việc không có các hướng dẫn rõ ràng này có thể dẫn đến khả năng sử dụng sai, lạm dụng và thiếu trách nhiệm giải trình. Điều quan trọng là phải thiết lập các khuôn khổ mạnh mẽ để đảm bảo tính minh bạch, sự đồng ý và việc sử dụng có trách nhiệm các hệ thống nhận dạng khuôn mặt.

Cân nhắc về đạo đức: Nhận dạng khuôn mặt đặt ra các câu hỏi đạo đức liên quan đến sự đồng ý, ra quyết định sáng suốt và khả năng lạm dụng Điều quan trọng là phải xem xét ý nghĩa đạo đức của việc sử dụng công nghệ này, bao gồm các vấn đề liên quan đến sự đồng ý, quyền sở hữu dữ liệu và khả năng lạm dụng trong giám sát và quân sự

Hình 1.6: Theo dõi và giám sát sử dụng Nhận diện mặt tại Trung Quốc – nguồn: www.smh.com.au/world/asia/china-s-facial-recognition-cameras-pick-man-out-of- crowd-of-60-000-20180414-p4z9kp.html

Giải quyết những lo ngại này đòi hỏi một cách tiếp cận cân bằng, ưu tiên quyền riêng tư, độ chính xác, công bằng và minh bạch Nó liên quan đến việc phát triển các quy định mới, tiến hành thử nghiệm và đánh giá kỹ lưỡng các hệ thống, thúc đẩy sự đa dạng trong bộ dữ liệu đào tạo và tham gia đối thoại cởi mở với các bên liên quan để đảm bảo sử dụng công nghệ nhận dạng khuôn mặt một cách có trách nhiệm và có đạo đức.

Các phương pháp và thuật toán nhận dạng

Các kỹ thuật nhận dạng khuôn mặt

2.1.1 Dựa trên tiêu chí Đối với kỹ thuật dựa trên tiêu chí để nhận dạng khuôn mặt, một bộ quy tắc phải được tuân theo và nó phụ thuộc vào sự hiểu biết của con người để đặt ra Ví dụ, một khuôn mặt phải có mũi, mắt và miệng ở những khoảng cách và vị trí nhất định với nhau

Khi nói đến phương thức này, nhược điểm đáng kể nhất là khó khăn trong việc xây dựng một bộ tiêu chí phù hợp Nếu các tiêu chí quá mơ hồ hoặc quá cụ thể, có thể sẽ có một số lượng lớn kết quả sai Chỉ riêng phương pháp này là không đủ và không có khả năng xác định khuôn mặt trong một số lượng lớn ảnh.

Hình 2.1: Minh họa nhận diện Dựa trên tiêu chí – nguồn: Face detection and facial feature extraction based on a fusion of knowledge based method and morphological image processing

2.1.2 Đối chứng mẫu(Template matching) Đối sánh mẫu là một kỹ thuật được sử dụng để tìm sự trùng khớp giữa hai mẫu.

Có thể phát hiện khuôn mặt bằng cách sử dụng phương pháp này Với các mẫu khuôn mặt được xác định trước hoặc được số hóa để phát hiện mặt bằng cách so sánh chúng với ảnh đầu vào

Phương pháp này về khái niệm rất đơn giản,và có khả năng mở rộng với các hình ảnh có tính tổng quát hơn Đối chứng mẫu cũng có khả năng nhận diện dù khuôn mặt bị che một phần.

Ví dụ, khuôn mặt con người có thể được chia thành bốn phần: mắt, đường nét, mũi và môi Ngoài ra, bằng cách sử dụng phương pháp phát hiện cạnh, một mô hình khuôn mặt có thể được xây dựng hoàn toàn từ các cạnh

Mặc dù phương pháp này dễ phát triển nhưng nó thường không đủ để phát hiện khuôn mặt và xác định danh tính Một giải pháp đã được đặt ra là sử dụng các mẫu “mềm” thích hợp hơn để xử lý vấn đề về các thay đổi ngoại hình so với mẫu Cũng có thể tăng số lượng mẫu để đáp ứng và nhận diện mọi trường hợp có thể xảy ra.

Hình 2.2: Minh họa nhận diện Đối chứng mẫu – nguồn:https://www.sciencedirect.com/science/article/abs/pii/S0925231206002840

Phương pháp dựa trên ngoại hình phụ thuộc vào một tập hợp các hình ảnh khuôn mặt huấn luyện mẫu để tìm ra các mẫu khuôn mặt.

Khi tìm kiếm các đặc điểm có giá trị trong ảnh chụp khuôn mặt, các phương pháp dựa trên ngoại hình phụ thuộc vào các kỹ thuật từ phân tích thống kê và học máy để khám phá các đặc điểm quan trọng.

Trong nhận dạng đối tượng dựa trên ngoại hình, các đặc điểm được chọn làm giá trị cường độ sáng của pixel trong hình ảnh của đối tượng Các cường độ pixel này tương ứng trực tiếp với độ chói của ánh sáng phát ra từ vật thể dọc theo các tia sáng nhất định trong không gian.

Cách tiếp cận này cũng được sử dụng trong việc trích xuất các đặc điểm khuôn mặt cho mục đích nhận dạng khuôn mặt Tuy nhiên, cách tiếp cận này yêu cầu số lượng mẫu lớn để tăng độ chính xác.

Hình 2.3: Minh họa nhận diện Dựa trên ngoại hình- nguồn: https://link.springer.com/referenceworkentry/10.1007/978-0-387-73003-5_92

2.1.4 Dựa trên đặc điểm Ở đây, các đặc điểm chính như mắt, mũi, miệng được trích xuất và vị trí và hình dạng của các đặc điểm được đưa vào bộ phân loại cấu trúc Một vấn đề đối với các phương pháp trích xuất đặc điểm là "khôi phục" đặc điểm, đây là khi hệ thống cố gắng xác định các đặc điểm không nhìn thấy được do các biến thể lớn như tư thế đầu trong khi khớp ảnh phía trước với ảnh hồ sơ.

Các phương pháp khai thác đặc điểm:

Các phương pháp chung dựa trên các cạnh, đường thẳng và đường cong

Phương pháp dựa trên mẫu cho đặc điểm phương pháp đối chứng cấu trúc

Hình 2.4: Minh họa nhận diện Dựa trên đặc điểm – nguồn: A feature-based face recognition system

Hình 2.5: Minh họa nhận diện Dựa trên đặc điểm – nguồn: A feature-based face recognition system

2.1.5 Phân biệt giữa phương pháp sử dụng đặc điểm và phương pháp sử dụng ngoại hình

Nhận dạng khuôn mặt dựa trên diện mạo, còn được gọi là nhận dạng toàn diện, dựa vào diện mạo tổng thể của khuôn mặt của một người mà không nhất thiết phải xác định các đặc điểm cụ thể Kỹ thuật này nhìn vào toàn bộ khuôn mặt như một thực thể đơn lẻ và so sánh nó với cơ sở dữ liệu các khuôn mặt để tìm ra sự khớp Các thuật toán nhận dạng dựa trên diện mạo có thể sử dụng các kỹ thuật như phân tích thành phần chính hay trích xuất các đặc điểm quan trọng

Trong khi đó, nhận dạng khuôn mặt dựa trên đặc điểm, còn được gọi là local feature analysis, tập trung vào việc xác định các đặc điểm cụ thể như hình dạng của mắt, mũi, miệng và cằm Kỹ thuật này dựa trên ý tưởng rằng vị trí tương đối và hình dạng của các đặc điểm này là duy nhất đối với từng cá nhân Các thuật toán nhận dạng dựa trên đặc điểm sử dụng các kỹ thuật như phát hiện và căn chỉnh các điểm đánh dấu khuôn mặt để xác định và trích xuất các đặc điểm này từ một hình ảnh, sau đó so sánh chúng với cơ sở dữ liệu của các đặc điểm đã biết.

Kết luận: Sự khác biệt chính giữa nhận dạng khuôn mặt dựa trên diện mạo và dựa trên đặc điểm là mức độ chi tiết mà được tập trung vào Nhận dạng dựa trên diện mạo nhìn vào tổng thể diện mạo của một khuôn mặt, trong khi nhận dạng dựa trên đặc điểm tập trung vào từng các đặc điểm trên mặt.

Một số thư viện xử lý ảnh nổi bật

Hình 2.6: Logo OpenCV – nguồn: mạng

Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky OpenCV viết tắt cho Open Source Computer Vision Library OpenCV là thư viện nguồn mở hàng đầu cho Computer Vision và Machine Learning, và hiện có thêm tính năng tăng tốc GPU cho các hoạt động theo real-time.

OpenCV được phát hành theo giấy phép BSD, do đó nó miễn phí cho cả học tập và sử dụng với mục đích thương mại Nó có trên các giao diện C++, C, Python và Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để hỗ trợ hiệu quả về tính toán và chuyên dùng cho các ứng dụng real-time (thời gian thực) Nếu được viết trên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xử lý đa lõi (multi- core processing). Ứng dụng của OpenCV là gì?

OpenCV được sử dụng cho đa dạng nhiều mục đích và ứng dụng khác nhau bao gồm: Hình ảnh street view

Kiểm tra và giám sát tự động

Robot và xe hơi tự lái

Phân tích hình ảnh y học

Tìm kiếm và phục hồi hình ảnh/video

Phim – cấu trúc 3D từ chuyển động

Nghệ thuật sắp đặt tương tác

Tính năng và các module phổ biến của OpenCV

Theo tính năng và ứng dụng của OpenCV, có thể chia thư viện này thánh các nhóm tính năng và module tương ứng như sau:

Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui)

Phát hiện các vật thể (objdetect, features2d, nonfree)

Geometry-based monocular hoặc stereo computer vision (calib3d, stitching, videostab)

Computational photography (photo, video, superres)

Machine learning & clustering (ml, flann)

Hình 2.7: Logo EmguCV – Nguồn : mạng

Là một cross platform NET, một thư viện xử lý hình ảnh mạnh mẽ dành riêng cho các ngôn ngữ NET, cho phép gọi được chức năng của OpenCV là từ NET. Tương thích ngôn ngữ như: C#, VB, VC ++, Iron Python

Wrapper có thể được biên dịch bởi Visual Studio, Xamarin Studio và Unity.

Có thể chạy trên Windows, Linux, Mac OS X, iOS, Android và Windows Phone.

EmguCV được viết hoàn toàn bằng C#, có thể chạy trên bất kỳ nền tảng hỗ trợ bao gồm iOS, Android, Windows Phone, hệ điều hành Mac OS và Linux.

EmguCV có thể được sử dụng với nhiều ngôn ngữ khác nhau như C#, VB.NET,

Nhận dạng ảnh: nhận dạng khuôn mặt, các vật thể,

Xử lý ảnh: khử nhiễu, điều chỉnh độ sáng,

Hỗ trợ tài liệu XML và intellisense.

Có thể sử dụng class Image hoặc gọi thẳng xuống các hàm của OpenCV.

FaceNet là một mạng lưới thần kinh sâu được sử dụng để trích xuất các tính năng từ hình ảnh của một người mặt Nó được xuất bản vào năm 2015 bởi các nhà nghiên cứu của Google.

Hình 2.8: FaceNet lấy hình ảnh khuôn mặt làm đầu vào và xuất ra vector embedding – nguồn: https://phamdinhkhanh.github.io/2020/03/12/faceNetAlgorithm.html

FaceNet lấy hình ảnh của mặt người làm đầu vào và xuất ra một vector 128 chiều, đại diện cho các tính năng quan trọng nhất của khuôn mặt Trong học máy, vector này được gọi là nhúng (embeddings) Tại sao phải nhúng? Bởi vì tất cả các thông tin quan trọng từ một hình ảnh được nhúng vào vector này Về cơ bản, FaceNet lấy một mặt người và nén nó thành một vector gồm 128 số Khuôn mặt cần định danh cũng có nhúng tương tự.

Facenet chính là một dạng siam network có tác dụng biểu diễn các bức ảnh trong một không gian euclide n chiều (thường là 128) sao cho khoảng cách giữa các vector embedding càng nhỏ, mức độ tương đồng giữa chúng càng lớn.

Trong số những framework hỗ trợ deeplearning thì pytorch là một trong những framework được ưa chuộng nhiều nhất (cùng với tensorflow và keras), có lượng người dùng đông đảo, cộng đồng lớn mạnh Vào năm 2019 framework này đã vươn lên vị trí thứ 2 về số lượng người dùng trong những framework hỗ trợ deeplearning (chỉ sau tensorflow) Đây là package sử dụng các thư viện của CUDA và C/C++ hỗ trợ các tính toán trên GPU nhằm gia tăng tốc độ xử lý của mô hình 2 mục tiêu chủ đạo của package này hướng tới là:

Thay thế kiến trúc của numpy để tính toán được trên GPU.

Deep learning platform cung cấp các xử lý tốc độ và linh hoạt.

Trên google colab thì thư viện này và tensorflow đã được tích hợp sẵn cho người dùng.

Các phương pháp và thuật toán sử dụng trong nhận diện khuôn mặt

2.3.1 Các phương pháp nhận diện khuôn mặt

Có nhiều phương pháp nhận diện khuôn mặt, và mỗi phương pháp có thể sử dụng một hoặc nhiều thuật toán khác nhau Sau đây là một số phương pháp phổ biến và các thuật toán thường được sử dụng::

1 Sử dụng kỹ thuật phát hiện đối tượng: Sử dụng các kỹ thuật phát hiện đối tượng như Haar Cascades hoặc HOG (Histograms of Oriented Gradients) để phát hiện khuôn mặt trong ảnh hoặc video Sau đó, áp dụng các phương pháp nhận diện khuôn mặt để xác định chính xác đối tượng.

2 Sử dụng phân tích hình ảnh: Phân tích hình ảnh có thể được sử dụng để xác định các đặc điểm của khuôn mặt như mắt, mũi và miệng Các đặc điểm này có thể được sử dụng để tạo ra một mô hình của khuôn mặt, từ đó có thể xác định được danh tính của người đó.

3 Sử dụng các thuật toán học máy: Các thuật toán học máy như Principal Component Analysis (PCA), Linear Discriminant Analysis (LDA), Support

Hình 2.9: Logo PyTorch - nguồn: mạng

Vector Machine (SVM) và Neural Networks có thể được sử dụng để học từ các bộ dữ liệu huấn luyện và sau đó dự đoán danh tính của người đó từ các khuôn mặt mới.

4 Sử dụng các thuật toán Deep Learning: Các thuật toán Deep Learning như Convolutional Neural Network (CNN) có thể được sử dụng để học từ các bộ dữ liệu huấn luyện lớn và sau đó dự đoán danh tính của người đó từ các khuôn mặt mới Các mô hình Deep Learning như FaceNet, VGGFace và OpenFace đã được phát triển để giải quyết vấn đề nhận diện khuôn mặt.

2.3.2 Biểu đồ so sánh một vài thuật toán nổi bật

Bảng 2.1: So sánh các thuật toán nổi bật

Phương pháp Đặc điểm Ưu điểm Nhược điểm

Phát hiện đặc trưng dựa trên hình dạng đối tượng Nhanh và dễ triển khai

Không chính xác và bị ảnh hưởng bởi ánh sáng và góc chụp

Phát hiện đặc trưng dựa trên thay đổi và khác biệt về màu trên hình ảnh

Hiệu suất tốt, độ chính xác cao và ít bị ảnh hưởng bởi ánh sáng

Tính toán phức tạp và đòi hỏi tài nguyên máy tính cao

Eigenface Sử dụng phân tích giá trị riêng để phân loại khuôn mặt Độ chính xác cao và tốc độ xử lý nhanh

Nhạy cảm với ánh sáng và góc chụp

Sử dụng phân tích giá trị riêng để phân loại khuôn mặt và tối ưu hơn so với Eigenface Độ chính xác cao hơn so với Eigenface

Nhạy cảm với ánh sáng và góc chụp

Phát hiện đặc trưng dựa trên mẫu nhị phân của các vùng nhỏ trong hình ảnh

Dễ triển khai và ít bị ảnh hưởng bởi ánh sáng Độ chính xác thấp hơn so với các phương pháp khác và không phát hiện được khuôn mặt đang quay đầu

Thuật toán Fisherface

Fisherfaces là một thuật toán nhận diện khuôn mặt dựa trên PCA và LDA Trong đó, PCA được sử dụng để giảm số chiều của dữ liệu khuôn mặt, từ đó giảm chi phí tính toán Sau đó, LDA được sử dụng để xác định các đặc trưng quan trọng nhất của dữ liệu khuôn mặt, từ đó giúp cải thiện độ chính xác của mô hình Cuối cùng, Fisherfaces sử dụng các đặc trưng đã được trích xuất từ LDA để đào tạo mô hình nhận diện khuôn mặt và nhận dạng các khuôn mặt mới.

2.4.2 Phân tích thành phần chính (PCA)

• Như đã đề cập, PCA là một phương pháp thuộc loại unsupervised learning, tức là nó chỉ sử dụng các vector mô tả dữ liệu mà không dùng tới labels, nếu có, của dữ liệu Trong bài toán classification, dạng điển hình nhất của supervised learning, việc sử dụng labels sẽ mang lại kết quả phân loại tốt hơn.

• PCA là phương pháp giảm chiều dữ liệu sao cho lượng thông tin về dữ liệu, thể hiện ở tổng phương sai, được giữ lại là nhiều nhất Tuy nhiên, trong nhiều trường hợp, ta không cần giữ lại lượng thông tin lớn nhất mà chỉ cần giữ lại thông tin cần thiết cho riêng bài toán Xét ví dụ về bài toán phân lớp với 2 classes:

Hình 2.10: Ví dụ về giảm chiều PCA - nguồn: https://machinelearningcoban.com/2017/06/30/lda/

Trong hình, ta giả sử rằng dữ liệu được chiếu lên 1 đường thẳng và mỗi điểm được đại diện bởi hình chiếu của nó lên đường thẳng kia Như vậy, từ dữ liệu nhiều chiều, ta đã giảm nó về 1 chiều.

Thuật toán PCA có thể được chia thành các bước sau:

• Chuẩn hóa dữ liệu: PCA giả định rằng dữ liệu được tập trung xung quanh điểm gốc, vì vậy chúng ta cần chuẩn hóa dữ liệu bằng cách trừ đi giá trị trung bình từ mỗi điểm dữ liệu và chia cho độ lệch chuẩn.

• Tính toán ma trận hiệp phương sai: Chúng tôi tính toán ma trận hiệp phương sai của dữ liệu đã chuẩn hóa.

• Tính toán các vectơ riêng và giá trị riêng của ma trận hiệp phương sai: Sử dụng thư viện đại số tuyến tính để tính toán các vectơ riêng và giá trị riêng của ma trận hiệp phương sai.

• Chọn các thành phần chính: Chọn k thành phần chính có giá trị riêng cao nhất, trong đó k là chiều mong muốn của dữ liệu chiều thấp hơn.

• Chuyển đổi dữ liệu: Chiếu dữ liệu gốc lên k thành phần chính để thu được dữ liệu có chiều thấp hơn.

2.4.3 Phân tích phân biệt tuyến tính (LDA)

- Phân tích phân biệt tuyến tính (LDA) là một thuật toán học có giám sát được sử dụng cho các tác vụ phân loại trong học máy Đây là một kỹ thuật được sử dụng để tìm sự kết hợp tuyến tính của các tính năng phân tách tốt nhất các lớp trong tập dữ liệu.

- LDA hoạt động bằng cách chiếu dữ liệu lên một không gian có chiều thấp hơn nhằm tối đa hóa sự phân tách giữa các lớp, bằng cách tìm tối đa hóa tỷ lệ phương sai giữa các lớp với phương sai bên trong lớp

Hình 2.11: Minh họa so sánh giữa PCA và LDA - nguồn: https://machinelearningcoban.com/2017/06/30/lda/

2.4.4 Ứng dụng LDA Trong thị giác máy tính

- Nhận dạng khuôn mặt là một ứng dụng rất phổ biến trong đó mỗi khuôn mặt được biểu thị bằng một số lượng rất lớn các giá trị pixel

- Phân tích tuyến tính (LDA) được sử dụng ở đây để giảm số lượng đặc trưng thành một số dễ quản lý hơn Mỗi thứ nguyên mới được tạo là sự kết hợp tuyến tính của các giá trị đã gán cho pixel, tạo thành một mẫu

- Các tổ hợp tuyến tính thu được bằng cách sử dụng phân biệt tuyến tính của Fisher được gọi là Fisherfaces.

- Các bước LDA sử dụng hai lớp (xanh và đỏ) với hai đặc trưng (x và y):

- Tính toán các vectơ trung bình cho mỗi lớp

- Tính toán các ma trận phân tán: o Ma trận phân tán trong lớp (SW) o Ma trận tán xạ giữa các lớp (SB)

- Tính toán các vectơ riêng và giá trị riêng của ma trận SW^-1 SB

- Chọn k véc tơ riêng có giá trị riêng lớn nhất (trong trường hợp này là k=1)

- Chiếu dữ liệu lên không gian đặc trưng mới

- Các điểm dữ liệu màu xanh và đỏ hiện được phân tách rõ ràng hơn dọc theo trục mới, đây là vectơ riêng đầu tiên của ma trận phân tán giữa các lớp.

Hình 2.12: Minh họa sơ đồ sử dụng LDA - nguồn: https://machinelearningcoban.com/2017/06/30/lda/

2.4.5 Công thức toán học trong Fisherface Đặt X là một vectơ ngẫu nhiên với các mẫu được lấy từ các lớp c:

Các ma trận phân tán S_{B} và S_{W} được tính như sau:

Giá trị tổng trung bình:

Thuật toán cổ điển của Fisher bây giờ tìm kiếm phép chiếu W, tối đa hóa tiêu chí phân tách lớp:

Một giải pháp cho vấn đề tối ưu hóa này được đưa ra bằng cách giải Bài toán giá trị riêng tổng quát:

Vấn đề tối ưu hóa sau đó có thể được viết lại như sau:

Khi đó, ma trận biến đổi W chiếu một mẫu vào không gian chiều (c-1) được cho bởi:

2.4.6 Quá trình xử lý của Fisherface sau PCA và LDA

1 Sau khi thực hiện PCA và LDA, Fisherfaces sử dụng các bước sau để nhận dạng:

2 Tính giá trị trung bình của phép chiếu của mỗi lớp lên các phân biệt tuyến tính thu được từ LDA để thu được một tập hợp các trọng tâm của lớp.

3 Tính ma trận hiệp phương sai của các mẫu dự kiến trong mỗi lớp.

4 Tính tổng các ma trận hiệp phương sai của tất cả các lớp để được một ma trận hiệp phương sai duy nhất.

5 Tính các giá trị riêng và vectơ riêng của ma trận hiệp phương sai.

6 Chọn M vectơ riêng tương ứng với M giá trị riêng lớn nhất, trong đó M là số lớp trừ 1.

7 Chiếu dữ liệu huấn luyện lên các vectơ riêng đã chọn để thu được các fisherfaces

8 Sử dụng các Fisherfaces làm cơ sở để nhận dạng khuôn mặt Một khuôn mặt mới sẽ được chiếu lên cùng vectơ riêng đã sử dụng để tính toán fisherfaces Sau đó, khuôn mặt mới sẽ được phân loại dựa trên khoảng cách Euclide tối thiểu giữa hình chiếu của nó và hình chiếu của các khuôn mặt đã biết trong mỗi lớp.(nhận diện mặt).

Thuật toán LBPH (Local Binary Pattern Histogram)

LBPH là thuật toán Nhận dạng khuôn mặt được sử dụng để nhận dạng khuôn mặt của một người Nó được biết đến với hiệu suất và cách nó có thể nhận diện khuôn mặt của một người từ cả mặt trước và mặt bên

Thuật toán LBPH là sự kết hợp của Local Binary Pattern (LBP) và Histogram Oriented Gradients (HOG), được sử dụng để thay đổi hiệu suất của kết quả nhận dạng khuôn mặt trở nên chính xác hơn.

Thuật toán LBPH có khả năng nhận diện trong những điều kiện ánh sáng khác nhau và không nhạy cảm với việc ảnh được biến đổi trắng đen, nên là một lựa chọn tốt cho một chương trình nhận diện mặt.

2.5.2 Phương thức hoạt động của LBPH

Bắt đầu bằng cách phân tích một ma trận đại diện cho một phần của hình ảnh Trong LBPH, một hình ảnh được thể hiện ở các định dạng này Trong ví dụ này, hình ảnh có ba hàng và ba cột và tổng số pixel là chín Hãy chọn pixel trung tâm ở đây, giá trị 8 và áp dụng một điều kiện Nếu giá trị lớn hơn hoặc bằng 8, kết quả là '1', ngược lại, nếu giá trị nhỏ hơn 8, kết quả là 0 Sau khi xử lý, ma trận sẽ trông như thế này.

Tính toán cơ bản của thuật toán này là áp dụng điều kiện này, chọn phần tử trung tâm của ma trận Bây giờ chúng ta cần tạo một giá trị nhị phân Giá trị nhị phân =

11100010 Thuật toán sẽ bắt đầu áp dụng điều kiện từ phần tử góc trên cùng bên trái đi lên đến phần tử thứ 1 của hàng thứ 2 giống như nó đang tạo thành một vòng tròn như thế này.

Sau khi chuyển đổi giá trị nhị phân thành giá trị thập phân, chúng tôi nhận được giá trị thập phân = 226 Nó chỉ ra rằng tất cả các pixel này xung quanh giá trị trung tâm bằng 226.

Thuật toán này mạnh mẽ khi nói đến nhận diện Nếu bạn đưa đèn pin vào hình ảnh, giá trị của các pixel sẽ tăng lên Các giá trị càng cao thì hình ảnh càng sáng và khi các giá trị càng thấp thì hình ảnh càng tối Vì lý do này, thuật toán này có kết quả tốt trong ảnh sáng và tối vì khi ảnh trở nên sáng hơn hoặc tối hơn, tất cả các pixel trong vùng lân cận ở đây sẽ bị thay đổi Sau khi đặt ánh sáng vào hình ảnh, ma trận sẽ trông như thế này Sau khi áp dụng điều kiện trên, chúng ta sẽ nhận được giá trị nhị phân giống như trên, tức là 11100010

Hình 2.13: Ví dụ về LBPH trong điểm ảnh 3x3 – nguồn: https://towardsdatascience.com/face-recognition-how-lbph-works-90ec258c3d6b

Dựa trên hình ảnh trên, hãy chia nó thành nhiều bước nhỏ để chúng ta có thể hiểu nó một cách dễ dàng:

Giả sử chúng ta có một hình ảnh khuôn mặt ở thang độ xám Chúng ta có thể lấy một phần của hình ảnh này dưới dạng cửa sổ 3x3 pixel Nó cũng có thể được biểu diễn dưới dạng ma trận 3x3 chứa cường độ của từng pixel (0~255) Sau đó, chúng ta cần lấy giá trị trung tâm của ma trận được sử dụng làm ngưỡng.

Giá trị này sẽ được sử dụng để xác định các giá trị mới từ 8 hàng xóm. Đối với mỗi hàng xóm của giá trị trung tâm (ngưỡng), chúng tôi đặt một giá trị nhị phân mới Chúng tôi đặt 1 cho các giá trị bằng hoặc cao hơn ngưỡng và 0 cho các giá trị thấp hơn ngưỡng.

Bây giờ, ma trận sẽ chỉ chứa các giá trị nhị phân (bỏ qua giá trị trung tâm) Chúng ta cần nối từng giá trị nhị phân từ từng vị trí từ dòng ma trận thành một giá trị nhị phân mới (ví dụ: 10001101) Lưu ý: một số tác giả sử dụng các phương pháp khác để nối các giá trị nhị phân (ví dụ: theo chiều kim đồng hồ), nhưng kết quả cuối cùng sẽ giống nhau.

Sau đó, chúng tôi chuyển đổi giá trị nhị phân này thành giá trị thập phân và đặt nó thành giá trị trung tâm của ma trận, thực tế là một pixel từ hình ảnh gốc.

Khi kết thúc quy trình này (quy trình LBP), chúng ta có một hình ảnh mới thể hiện tốt hơn các đặc điểm của hình ảnh gốc.

Hình 2.14: Ví dụ về sơ đồ giá trị điểm ảnh trong LBPH – nguồn: https://www.analyticsvidhya.com/blog/2021/07/understanding-face-recognition-using- lbph-algorithm, Data Science Blogathon

Ví d : n u giá tr 110 xu t hi n 50 l n thì m t thanh nh th này sụ ế ị ấ ệ ầ ộ ư ế ẽ đượ ạc t o v iớ kích thước này b ng 50, n u 201 xu t hi n 110 l n và thanh kia s ằ ế ấ ệ ầ ẽ đượ ạc t o trong bi uể đồ này v i kích thớ ước này b ng 100 D a trên so sánh c a bi u , thuật toán s cóằ ự ủ ể đồ ẽ thể xác nh các c nh và c các góc c a hình nh Ví d , trong hình vuông u tiên đị ạ ả ủ ả ụ đầ ở đây, chúng tôi không có thông tin về khuôn mặt của người ó Vì vậy, biể đồđ u sẽ khác với hình vuông khác có đường vi n c a khuôn m t Nói tóm l i, thu t toán bi t bi uề ủ ặ ạ ậ ế ể đồ nào biểu thị đường vi n và bi u nào bi u thị các c điểm chính của ngề ể đồ ể đặ ười đó, chẳng h n nh màu m t, hình d ng c a mi ng, v.v.ạ ư ắ ạ ủ ệ

Chúng ta có thể sử dụng nhiều cách tiếp cận khác nhau để so sánh các biểu đồ (tính khoảng cách giữa hai biểu đồ), ví dụ: khoảng cách euclide , chi-square , giá trị tuyệt đối , v.v Trong ví dụ này, chúng ta có thể sử dụng khoảng cách Euclide (khá nổi tiếng) dựa trên trên công thức sau:

Vì vậy, đầu ra của thuật toán là mã của hình ảnh có biểu đồ gần nhất Thuật toán cũng sẽ trả về khoảng cách được tính toán, khoảng cách này có thể được sử dụng làm phép đo 'độ tin cậy'.

Xây dựng ứng dụng nhận diện khuôn mặt

Nguồn dữ liệu sử dụng

Trong khuôn khổ đồ án tốt nghiệp, em đã sử dụng 2 nguồn dữ liệu: nguồn dữ liệu trên mạng Large-scale CelebFaces Attributes và nguồn dữ liệu tự thu thập được.

3.1.1 Large-scale CelebFaces Attributes (CelebA) Dataset

Nguồn dữ liệu CelebA được thu thập bởi Multimedia Lab, của đại học Chinese University of Hong Kong

Tác giả gồm Ziwei Liu, Ping Luo, Xiaogang Wang, and Xiaoou Tang, từ tài liệu Proceedings of International Conference on Computer Vision (ICCV) xuất bản tháng

Trong dataset gồm 202599 ảnh của các người nổi tiếng thu thập từ báo và mạng. Các khuôn mặt được nhận diện, lọc và cắt từ ảnh Có tổng cộng 10177 danh tính khác nhau trong dataset này Các ảnh được đánh số và nhãn danh tính được đưa cùng trong một file csv

Trong đồ án này, Dataset trên đã được sử dụng và lọc với 1000 danh tính của những người từ nhiều nguồn gốc, giới tính và độ tuổi khác nhau để tăng thêm độ chính xác trong thử nghiệm.

Hình 3.1: Ảnh trong bộ dữ liệu CelebA

Mọi ảnh có kích cỡ 178x218 với 96 dpi Ảnh được lưu dưới định dạng JPG. Website của dataset: http://personal.ie.cuhk.edu.hk/~lz013/projects/CelebA.html Đề tài hay nguồn trang đều không sở hữu bản quyền đối với những hình ảnh này.Việc sử dụng được giới hạn cho các mục đích giáo dục và nghiên cứu phi thương mại.

3.1.2 Nguồn tự thu thập Ảnh được em tự thu thập từ gia đình, bạn bè và mạng Ảnh có 83 ảnh, 60 danh tính, nguồn gốc là người Việt, tất cả các ảnh đều đã có mặt được phát hiện với công cụ nhận diện mặt Haar Cascade với tập đào tạo haarcascade_frontalface_alt.xml

Hình 3.2: Ảnh trong bộ dữ liệu tự thu thập

Các ảnh sau khi xử lý cắt lấy phần mặt được đưa về 360p.

Một số hàm xử lý

Hàm nhận diện và đào tạo model từ ảnh đã cho có nhãn:

Hàm tính ngưỡng thử nghiệm:

Hàm khởi tạo và phát hiện mặt:

Hàm nhận diện mặt và hiển thị danh tính :

Thử nghiệm và áp dụng

3.3.1 So sánh các thuật toán nhận diện

Hình 3.3: Bảng so sánh độ chính xác của các thuật toán nhận diện -

Nguồn:https://www.researchgate.net/figure/Comparisons-of-Eigenface-Fisherface-and-

So với các thuật toán khác, Fisherface kém hơn về việc nhận diện danh tính Tuy nhiên FisherFace nhanh hơn rất nhiều so với các thuật toán còn lại, cho phép sử dụng nhận diện thời gian thực Điều này được minh chứng ở ví dụ dưới.

Hình 3.4: So sánh độ chính xác của LBPH và Fisherface sau khi tự thử nghiệm

Thử nghiệm với 16965 ảnh của 1000 người khác nhau Tất cả các ảnh đều có phát hiện khuôn mặt với 90 phát hiện sai đã trừ vào số lỗi.

Em chỉ có thể thử nghiệm với tối đa 3 mẫu mỗi danh tính vì hạn chế về phần cứng cũng như thời gian.

1 ảnh 7509 lỗi nhận diện 9392 lỗi nhận diện

2 ảnh 6818 lỗi nhận diện 5378 lỗi nhận diện

3 ảnh 6209 lỗi nhận diện 4006 lỗi nhận diện

Thời gian nhận diện 16965 ảnh:

Có thể thấy FisherFace không tiêu tốn quá nhiều thời gian cho dù với số lượng mẫu tăng gấp 2 hay 3 lần Trong khi đó,với 2 lần số mẫu, LBPH tiêu tốn gấp 2 lần thời gian so với một mẫu, và tương tự với 3 lần số mẫu.

Trong các thuật toán tìm kiếm khuôn mặt, khi tìm được ảnh khuôn mặt trong dữ liệu gần nhất với ảnh đầu vào, ta thu được một đơn vị khoảng cách(Distance) Nếu muốn xác định và phân biệt được khuôn mặt của người không có trong dữ liệu cần phải đặt một ngưỡng giới hạn khoảng cách cao nhất mà khuôn mặt có thể được nhận diện mà không bị loại ra và cho là không xác định được danh tính. Đối với fisherface nói riêng, vì bản chất của cách xử lý sử dụng PCA và LDA của thuật toán này, đơn vị distance mà có thể đưa làm ngưỡng thay đổi với mỗi bộ dữ liệu(dataset) khác nhau

Em đã đưa ra được 2 cách giải quyết vấn đề này:

1 Sử dụng kèm thêm LBPH với giá trị ngưỡng đặt trước để phân biệt chính xác

2 Sử dụng một bộ dữ liệu của người lạ mà đã biết trước không tồn tại trùng danh tính với ai trong bộ dữ liệu đào tạo để ước tính ngưỡng phù hợp ngay khi tạo model nhận diện.

Với phương pháp 1, tuy độ chính xác được tăng cao, hệ thống bị chậm lại đáng kể.

Với phương pháp 2, tuy không tăng thời gian xử lý, có vài trường hợp thấp hơn vẫn lọt qua được ngưỡng.

Bằng cách kết hợp cả hai phương pháp này, em có thể nhận diện được người lạ mà không làm chậm hệ thống nhận diện quá nhiều Sau khi tìm được ngưỡng bằng phương pháp 2, em có thể sử dụng thuật toán LBPH trong phương pháp 1 để quét lại các khuôn mặt nghi vấn trên hoặc gần ngưỡng (trong ứng dụng đặt là trong 10% dưới ngưỡng).

Sử dụng lại data set đã dùng trong ví dụ tại chương 2.6, em thử nghiệm dataset có

16965 ảnh, 1000 danh tính và model đã đào tạo có 870 danh tính và 2 ảnh mỗi danh tính Áp dụng đào tạo ta tìm được distance của LBPH được đặt là 92, và distance của Fisher là 4160 Chỉ tính lỗi khi nhận diện ảnh thuộc 130 danh tính không có trong model hoặc ảnh có danh tính thuộc 870 trong model được cho là người lạ

2764 lỗi nhận diện 209 lỗi nhận diện 738 lỗi nhận diện 223 lỗi nhận diện

Bảng so sánh độ chính xác Fisherface với 2764 lỗi được đặt làm 100%:

Hình 3.5: Bảng so sánh độ chính xác của 3 phương pháp, đơn vị %

Thời gian tiêu thụ để nhận diện:

Fisherface LBPH + Fisherface Fisherface với threshold

Ngày đăng: 18/09/2024, 19:54

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

TÀI LIỆU LIÊN QUAN

w