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

ỨNG DỤNG CHẤM CÔNG BẰNG NHẬN DẠNG KHUÔN mặt sử DỤNG DEEP LEARNING

105 2 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

Tiêu đề Timekeeping Application By Facial Recognition Using Deep Learning
Tác giả Trần Quang Trung, Hồ Duy Quang
Người hướng dẫn ThS. Hồ Đắc Quán
Trường học Industrial University of Ho Chi Minh City
Chuyên ngành Computer Science
Thể loại Graduation Project
Năm xuất bản 2021
Thành phố Ho Chi Minh City
Định dạng
Số trang 105
Dung lượng 3,33 MB

Cấu trúc

  • CHƯƠNG I. PHẦN MỞ ĐẦU (17)
    • 1.1 Tổng quan và mô tả đề tài khóa luận (17)
      • 1.1.1 Tổng quan (17)
      • 1.1.2 Mô tả đề tài khóa luận (20)
    • 1.2 Mục tiêu (22)
    • 1.3 Các yêu cầu chức năng (22)
  • CHƯƠNG II. CƠ SỞ LÝ THUYẾT (23)
    • 2.1 Convolutional Neural Network (CNNs) (23)
      • 2.1.1 Lớp tích chập (Convolution Layer) (23)
      • 2.1.2 Lớp tổng hợp (Pooling Layer) (24)
      • 2.1.3 Hàm phi tuyến – ReLU (Rectified Linear Unit) (25)
      • 2.1.4 Fully Connected (25)
    • 2.2 One-shot Learning (27)
    • 2.3 Learning Similarity (27)
    • 2.4 Siamese Network (29)
    • 2.5 Hàm mất mát Triplet Loss (31)
    • 2.6 Cách chọn bộ ba ảnh của Triplet Loss (34)
    • 2.7 Công nghệ phát hiện khuôn mặt với MediaPipe (35)
      • 2.7.1 Tổng quát (35)
      • 2.7.2 Đầu ra của MediaPipe (35)
      • 2.7.3 Hướng dẫn cài đặt trên python (36)
      • 2.7.4 Kết quả nhận diện (37)
      • 2.7.5 Nhận xét (37)
  • CHƯƠNG III. XÂY DỰNG VÀ ĐÁNH GIÁ MÔ HÌNH (38)
    • 3.1 Xây dựng mạng Siamese Network với kiến trúc VGG16 (38)
    • 3.2 Bộ dữ liệu dùng để huấn luyện cho đề tài (40)
    • 3.3 Giới thiệu về mạng pretrained FaceNet (41)
    • 3.4 Đánh giá mô hình tự train sử dụng kiến trúc mạng VGG16 (43)
      • 3.4.1 Kết quả training sau 450 epochs (43)
      • 3.4.2 Đánh giá độ chính xác của mô hình VGG16 (43)
    • 3.5 Đánh giá mô hình pretrain FaceNet (45)
  • CHƯƠNG IV. PHÂN TÍCH VÀ XÂY DỰNG ỨNG DỤNG (46)
    • 4.1 Mô tả User Case ứng dụng (46)
      • 4.1.1 Mô hình Use case (46)
      • 4.1.2 Danh sách các tác nhân và mô tả (62)
      • 4.1.3 Danh sách Use case và mô tả (62)
    • 4.2 Đặc tả các yêu cầu chức năng (63)
      • 4.2.1 UC001_DangNhap (63)
      • 4.2.2 UC002_DanhSachNhanVien (66)
      • 4.2.3 UC003_TimKiemNhanVien (67)
      • 4.2.4 UC004_ThemNhanVien (68)
      • 4.2.5 UC005_ChiTietNhanVien (70)
      • 4.2.6 UC006_CapNhatNhanVien (73)
      • 4.2.7 UC007_ThemKhuonMat (75)
      • 4.2.8 UC008_XemDuLieuKhuonMat (77)
      • 4.2.9 UC009_HuanLuyenKhuonMat (78)
      • 4.2.10 UC010_DanhSachChamCong (79)
      • 4.2.11 UC011_LocChamCongTheoNgay (80)
      • 4.2.12 UC012_Checkin (81)
      • 4.2.13 UC013_Checkout (84)
      • 4.2.14 UC014_ChiTietChamCong (85)
      • 4.2.15 UC015_CapNhatChamCong (87)
    • 4.3 Chuẩn bị (89)
      • 4.3.1 Môi trường (89)
      • 4.3.2 Thư viện (89)
    • 4.4 Kết quả chương trình (90)
      • 4.4.1 Màn hình đăng nhập (90)
      • 4.4.2 Màn hình Dashboard (91)
      • 4.4.3 Màn hình danh sách nhân viên (93)
      • 4.4.4 Màn hình thêm nhân viên (94)
      • 4.4.5 Màn hình thêm khuôn mặt (97)
      • 4.4.6 Màn hình xem dữ liệu khuôn mặt (98)
      • 4.4.7 Màn hình chi tiết nhân viên (98)
      • 4.4.8 Màn hình chấm công (99)
      • 4.4.9 Màn hình check-in (100)
      • 4.4.10 Màn hình check-out (101)
      • 4.4.11 Màn hình chi tiết chấm công (102)
  • CHƯƠNG V. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (103)
    • 5.1 Kết quả đạt được (103)
    • 5.2 Hạn chế của khóa luận (103)
    • 5.3 Hướng phát triển (104)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

PHẦN MỞ ĐẦU

Tổng quan và mô tả đề tài khóa luận

Hệ thống nhận dạng khuôn mặt là công nghệ tiên tiến giúp xác định danh tính dựa trên đặc điểm khuôn mặt của người dùng Công nghệ này được ứng dụng để xác thực danh tính của cá nhân qua ảnh, video hoặc trong thời gian thực.

Nhận dạng khuôn mặt là một phương pháp bảo mật sinh trắc học, bên cạnh các hình thức khác như nhận dạng vân tay, giọng nói và mống mắt Công nghệ này chủ yếu được áp dụng trong lĩnh vực bảo mật và thực thi pháp luật, nhưng hiện nay ngày càng được sử dụng rộng rãi trong nhiều lĩnh vực khác.

Hệ thống nhận dạng khuôn mặt ban đầu chỉ là một ứng dụng trên máy tính, nhưng với sự tiến bộ của khoa học công nghệ, hiện nay nó đã được triển khai trên nhiều nền tảng khác nhau như điện thoại thông minh, IoT, robot và các công nghệ phần cứng khác.

Hệ thống nhận dạng khuôn mặt là công nghệ quan trọng cho việc xác thực danh tính người dùng, thường được áp dụng qua Face ID trên iPhone và iPad Nó cũng được sử dụng trong các thiết bị giám sát tự động, máy chấm công tự động và quản lý ra vào, giúp nâng cao tính bảo mật và hiệu quả trong việc quản lý người dùng.

Nhận dạng khuôn mặt là một bài toán phức tạp, nó đòi hỏi xử lý các vấn đề:

 Phát hiện tất cả các khuôn mặt có trong bức hình.

Đảm bảo rằng mỗi khuôn mặt được nhận diện rõ ràng, cho phép nhận biết cùng một người từ nhiều góc nhìn khác nhau và trong các điều kiện ánh sáng khác nhau.

 Lựa chọn các đặc trưng (feature) trên từng khuôn mặt.

Công nghệ nhận dạng khuôn mặt có nhiều ưu điểm, bao gồm khả năng xác định danh tính nhanh chóng và chính xác bằng cách so sánh các đặc trưng khuôn mặt với những người khác Tuy nhiên, bên cạnh những lợi ích này, cũng tồn tại một số nhược điểm cần xem xét, như vấn đề về quyền riêng tư và độ tin cậy trong các điều kiện ánh sáng khác nhau.

 Thực hiện nhận dạng hàng loạt vì nhận dạng khuôn mặt không cần tương tác của đối tượng để hoạt động.

 Là công nghệ sinh trắc học nhanh nhất.

Trong nhiều trường hợp, người dùng không nhận thức được quá trình giám sát, do đó họ không cảm thấy bị theo dõi hay sự riêng tư của mình bị xâm phạm.

 Khó khăn để thực hiện trong các điều kiện nhất định.

Ralph Gross, a researcher at Carnegie Mellon University's Mellon Robotics Institute, highlights a challenge in facial recognition technology, stating, "Face recognition has been getting pretty good at full frontal faces and 20 degrees off, but as soon as you go towards profile, there've been problems."

Nhận dạng khuôn mặt có thể gặp khó khăn trong các điều kiện như thiếu ánh sáng, khi người dùng đeo kính mát, có tóc dài, hoặc khi một phần khuôn mặt bị che khuất Ngoài ra, hình ảnh có độ phân giải thấp cũng làm giảm hiệu quả của công nghệ này.

Một nhược điểm nghiêm trọng của nhiều hệ thống nhận diện là chúng có thể hoạt động kém hiệu quả khi biểu cảm trên khuôn mặt thay đổi Thậm chí, việc cười cũng có thể làm giảm độ chính xác của hệ thống.

Ví dụ: Canada vào năm 2009 chỉ cho phép để khuôn mặt “không cảm xúc” khi chụp ảnh hộ chiếu.

 Độ chính xác và tính khả dụng không được đảm bảo.

Để đảm bảo hình ảnh đối chiếu cho hệ thống nhận dạng khuôn mặt, khách hàng cần quay ít nhất 35 độ về phía camera, không đeo khẩu trang hay mũ, và tóc phải được vén cao không quá chân mày Tuy nhiên, trong lĩnh vực bán lẻ, yêu cầu này trở nên khó thực hiện, dẫn đến việc khó khăn trong việc cam kết độ chính xác của thông tin khi sử dụng công nghệ nhận dạng khuôn mặt.

Hệ thống chấm công là công cụ quan trọng giúp theo dõi thời gian làm việc của nhân viên từ khi bắt đầu cho đến khi kết thúc ca làm Nó cho phép người quản lý giám sát giờ làm, ghi nhận việc đến muộn, nghỉ phép và ra về sớm của nhân viên.

Các hình thức của hệ thống chấm công

Hệ thống thủ công, hay còn gọi là máy ghi thời gian (Time Recorder), sử dụng phiếu để ghi nhận thời gian làm việc đã dần trở nên lỗi thời Hiện nay, nhiều doanh nghiệp đã chuyển sang sử dụng các hệ thống tự động với chi phí thấp hơn, mang lại hiệu quả cao hơn trong việc quản lý thời gian.

Hệ thống tự động chấm công hiện đại yêu cầu nhân viên thực hiện các thao tác như chạm hoặc vuốt để nhận dạng danh tính và ghi lại giờ làm việc khi vào hoặc ra khỏi khu vực làm việc Các hệ thống này thường áp dụng công nghệ sinh trắc học như đầu đọc tĩnh mạch, quét vân tay và nhận dạng khuôn mặt, kết hợp với các thiết bị cảm ứng để nâng cao hiệu quả quản lý thời gian làm việc.

Hệ thống ứng dụng sử dụng công nghệ hàng rào địa lý (Geo-fence) cho phép nhân viên chấm công khi ở trong phạm vi kết nối internet riêng Ngoài ra, hệ thống nhận dạng khuôn mặt dựa trên ứng dụng này cũng loại bỏ nhu cầu sử dụng máy quét vân tay.

1.1.2 Mô tả đề tài khóa luận

Mục tiêu

Đề tài này nhằm tìm hiểu và đánh giá tính khả thi của các phương pháp chấm công, đặc biệt là ứng dụng công nghệ nhận dạng khuôn mặt Đối tượng nghiên cứu là các nhân viên trong cùng một công ty, với mục tiêu phân tích các công nghệ và công cụ hiện có để cải thiện quy trình chấm công.

 Mô hình phát hiện khuôn mặt MediaPipe.

 Siamese neural network và triplet loss function.

 Mô hình nhận dạng khuôn mặt FaceNet.

 Nghiên cứu Tkinter để xây dựng ứng dụng.

Các yêu cầu chức năng

Ứng dụng chấm công bằng nhận dạng khuôn mặt có các chức năng chính như sau:

 Thêm dữ liệu khuôn mặt cho nhân viên (phát hiện khuôn mặt).

 Chỉnh sửa thông tin nhân viên.

 Huấn luyện nhận dạng khuôn mặt nhân viên.

 Nhận dạng chấm công cho nhân viên (check-in và check-out).

 Chỉnh sửa thông tin chấm công.

CƠ SỞ LÝ THUYẾT

Convolutional Neural Network (CNNs)

Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một trong những thuật toán Deep Learning hàng đầu cho các bài toán thị giác máy tính, bao gồm phân loại, nhận diện và phát hiện đối tượng trong hình ảnh Kiến trúc chính của CNN bao gồm nhiều thành phần được kết nối theo các lớp như: lớp tích chập (Convolution), lớp gộp (Pooling) và lớp kết nối đầy đủ (Fully Connected).

2.1.1 Lớp tích chập (Convolution Layer)

Lớp tích chập là thành phần thiết yếu trong mạng CNN, đóng vai trò quan trọng trong việc trích xuất các đặc trưng từ hình ảnh đầu vào.

Tích chập trong mạng nơ-ron tích chập (CNN) sử dụng một cửa sổ trượt trên ma trận để thực hiện phép nhân tích chập với các giá trị trong cửa sổ, dựa trên giá trị Kernel của lớp tích chập Quá trình này giúp trích xuất các đặc trưng quan trọng từ dữ liệu đầu vào, tương tự như mô tả trong hình minh họa bên dưới.

Dưới đây là một ma trận 5x5 với các giá trị 0 và 1 và được nhân tích chập với một ma trận bộ lọc (kernel matrix) 3x3

Hình 2.1 Ảnh minh họa bài toán tích chập hai ma trận

Sau khi áp dụng phép tích chập lên một ma trận, chúng ta thu được một ma trận đặc trưng được trích xuất từ ma trận gốc.

Hình 2.2 Ảnh minh họa lớp tích chập (tác giả Shashi Rekha) 2.1.2 Lớp tổng hợp (Pooling Layer)

Lớp tổng hợp thường được áp dụng ngay sau lớp tích chập để đơn giản hóa thông tin đầu ra, đồng thời giữ lại những đặc trưng quan trọng trong ma trận Mục tiêu chính là giảm thiểu số lượng dữ liệu cần tính toán cho một bức ảnh Lớp tổng hợp có nhiều cách thể hiện khác nhau.

 Max-Pooling (lấy các đặc trưng lớn nhất trong ma trận).

 Average-Pooling (lấy đặc trưng trung bình).

 Sum-Pooling (lấy đặc trưng tổng)

Trong đó lớp tổng hợp thường được sử dụng nhất cho việc lấy ra giá trị đặc trưng lớn nhất trong ma trận.

Hình 2.3 Ảnh minh họa lớp Pooling

Lớp tổng hợp thường có kích thước 2x2, với stride = 2 và padding = 0, giúp giảm kích thước ma trận xuống một nửa, từ 4x4 thành 2x2 Điều này làm giảm lượng dữ liệu cần tính toán trong ma trận.

2.1.3 Hàm phi tuyến – ReLU (Rectified Linear Unit)

Hàm phi tuyến ReLU là một hàm kích hoạt phổ biến trong các lớp ẩn của mạng Neural, bao gồm lớp tích chập và lớp tổng hợp Chức năng chính của hàm ReLU là chuyển đổi các giá trị âm trong ma trận đặc trưng thành 0, đồng thời giữ nguyên kích thước của ma trận.

Hình 2.4 Ảnh minh họa lớp ReLU

Ngoài hàm phi tuyến ReLU chúng ta còn có một số hàm phi tuyến khác nhau Tanh, Sigmoid, Linear, … Nhưng thông dụng nhất vẫn là hàm ReLU.

Sau khi ảnh trải qua nhiều lớp tích chập và tổng hợp, mô hình đã học được các đặc điểm chính của bức ảnh như mắt, mũi, miệng và khuôn mặt Cuối cùng, tensor của lớp cuối cùng với kích thước (chiều cao * chiều rộng * độ sâu) sẽ được giãn ra và chuyển đổi thành một vector với kích thước tương ứng.

Hình 2.5 Ảnh minh họa cho lớp Fully Connected

Sau đó ta dùng lớp Fully Connected để kết hợp với các đặc điểm của ảnh để ra được kết quả phân lớp của mô hình CNN.

Dưới đây là mô hình hoàn chỉnh của một mạng CNN.

Hình 2.6 Ảnh minh họa mô hình CNN hoàn chỉnh

One-shot Learning

One-Shot Learning là phương pháp học có giám sát, sử dụng mô hình Convolutional Neural Network (CNN) để phân lớp đối tượng Phương pháp này cho phép huấn luyện với chỉ một hoặc vài hình ảnh cho mỗi đối tượng, từ đó tạo ra mô hình có khả năng nhận dạng lại các đối tượng như biển báo giao thông, chó, mèo Sau quá trình huấn luyện, mô hình sẽ dự đoán và phân lớp chính xác các đối tượng dựa trên ảnh đầu vào.

Một nhược điểm lớn của phương pháp huấn luyện mô hình CNN là cần phải huấn luyện lại mỗi khi thêm đối tượng mới, do lớp Output của mô hình phụ thuộc vào số lượng lớp dự đoán Điều này đặc biệt khó khăn trong các bài toán nhận dạng khuôn mặt, khi số lượng nhân viên trong công ty không cố định và thường xuyên thay đổi Để khắc phục vấn đề này, chúng ta có thể áp dụng phương pháp Learning Similarity.

Learning Similarity

Chúng ta thường xây dựng mô hình Convolutional Neural Network (CNN) để phân lớp, nhằm giải quyết các bài toán nhận dạng chủ thể trong hình ảnh.

Sau khi hoàn thiện việc xây dựng và huấn luyện các mô hình, chúng ta sẽ áp dụng chúng để dự đoán các đối tượng có trong bức ảnh, phân loại theo các lớp mà mô hình đã được đào tạo.

Đối với bài toán nhận dạng khuôn mặt trong chấm công, việc sử dụng mô hình CNN phân lớp không phải là giải pháp tối ưu Số lượng nhân viên của công ty có thể thay đổi theo thời gian, và nếu áp dụng mô hình này, chúng ta sẽ phải thường xuyên huấn luyện và điều chỉnh số lượng lớp phân loại mỗi khi có sự thay đổi về nhân sự, điều này tốn kém nhiều thời gian và công sức.

Để giải quyết vấn đề này, chúng ta sẽ áp dụng phương pháp Learning Similarity, sử dụng phép đo khoảng cách giữa hai bức ảnh trong không gian Euclide N chiều Nếu hai bức ảnh thuộc về cùng một người, khoảng cách giữa chúng sẽ nhỏ hơn ngưỡng cho phép, và ngược lại.

{ d (img d (img 1 ,img 1,img 2)> 2) τ →difference ≤ τ →same Để có thể hiểu rõ hơn về phương pháp này, dưới đây là hình minh họa:

Hình 2.7 Ảnh minh họa thuật toán Learning Similarity

Phương pháp Learning Similarity cho thấy ưu điểm vượt trội khi không phụ thuộc vào số lượng tập phân lớp, giúp chúng ta không cần huấn luyện lại mô hình khi có sự thay đổi về nhân sự Mấu chốt của phương pháp này là xây dựng một mô hình CNN để trích xuất vector đặc trưng của khuôn mặt từ ảnh đầu vào, sau đó chiếu chúng lên không gian Euclide N chiều Kết quả đầu ra sẽ là một vector N đặc trưng, phục vụ cho việc phân tích và nhận diện khuôn mặt.

Hình 2.8 Ảnh minh họa mô tả Learning Similarity

Chúng ta sẽ tiến hành so sánh khoảng cách giữa hai bức hình và từ đó đưa ra quyết định về việc bức ảnh nào là khuôn mặt của người tương ứng, giống như hình minh họa đã được trình bày ở trên.

Để xây dựng và huấn luyện mô hình trích xuất đặc trưng khuôn mặt trong không gian Euclide N chiều, chúng ta sẽ khám phá mạng Siamese Network.

Siamese Network

Mạng Siamese là một loại mô hình CNN được sử dụng để trích xuất đặc trưng của đối tượng trong ảnh Mô hình này quyết định lớp của đối tượng bằng cách tính toán khoảng cách giữa hai vector đặc trưng của hai bức ảnh trong không gian Euclide N chiều.

Mạng Siamese áp dụng cấu trúc tương tự như các mạng CNN phổ biến, nhưng loại bỏ lớp phân loại cuối cùng Thay vào đó, nó sử dụng lớp Embedding cuối cùng để trích xuất các đặc trưng quan trọng từ bức ảnh.

Sau khi xây dựng và huấn luyện một mô hình Siamese Network thì chúng ta có thể sử dụng nó giống như phương pháp Learning Similarity như trên:

Bước 1: Chúng ta sẽ thu thập các khuôn mặt của nhân viên có trong công ty.

Bước 2: Sử dụng mô hình CNN để trích xuất vector đặc trưng của khuôn mặt và gán nhãn cho từng khuôn mặt theo đúng chủ sở hữu, sau đó lưu trữ vào cơ sở dữ liệu Những vector này sẽ được gọi là F(x).

Khi có một bức ảnh mới để nhận diện, chúng ta sẽ tiếp tục trích xuất vector đặc trưng của khuôn mặt từ bức ảnh đó Vector này được gọi là F(y).

Bước 4: Chúng ta sẽ tính toán khoảng cách giữa vector F(y) so với từng vector F(x) trong cơ sở dữ liệu.

Bước 5: Điều kiện để ra quyết định.

 Điều kiện 1: Khoảng cách giữa F(x i ) và F(y) phải là nhỏ nhất so với các vector còn lại trong cơ sở dữ liệu

Khoảng cách giữa F(xi) và F(y) cần nằm trong ngưỡng cho phép; nếu không, khuôn mặt sẽ được gán nhãn là “Unknown”, cho thấy khuôn mặt này không có trong cơ sở dữ liệu của nhân viên công ty.

Hình 2.9 Ảnh minh họa luồng xử lý tính khoảng cách hai bức ảnh

Mục tiêu chính của Siamese Network là xác định biểu diễn vector của ảnh trong không gian Euclide N chiều, vì vậy không nhất thiết phải sử dụng hàm mất mát Binary Cross Entropy như trong các bài toán phân loại Tuy nhiên, thực tế cho thấy rằng việc chọn hàm mất mát này vẫn có thể mang lại biểu diễn vector hiệu quả cho ảnh trong không gian N chiều.

Việc chọn hàm mất mát ảnh hưởng đáng kể đến độ chính xác trong việc xác định vector đặc trưng cho bức ảnh trong không gian Euclide Do đó, chúng ta cần tìm hiểu về hàm mất mát Triplet Loss để giải quyết vấn đề này.

Hàm mất mát Triplet Loss

Khi xây dựng một mạng Siamese Network để trích xuất đặc trưng, quá trình huấn luyện sẽ tạo ra các vector đặc trưng có kích thước đồng nhất từ các bức ảnh Những vector này được sử dụng làm đầu vào cho hàm mất mát Triplet Loss, nhằm đánh giá khoảng cách giữa chúng trong quá trình huấn luyện Hàm mất mát Triplet Loss hoạt động bằng cách lựa chọn ba vector đã được gán nhãn, phân chia thành ba phần: Anchor, Positive và Negative.

Anchor là hình ảnh được sử dụng để đánh giá khoảng cách giữa hai loại hình ảnh: Positive và Negative Hình ảnh Positive là hình ảnh tương tự nhất với Anchor, thường là của cùng một người, trong khi hình ảnh Negative là hình ảnh khác biệt nhất so với Anchor, thường là của một người khác Các ký hiệu tương ứng cho Anchor, Positive và Negative lần lượt là A, P và N.

Hình 2.10 Mô tả bài toán Triplet Loss

Khi mô hình chọn ra 3 vector đặc trưng, chúng sẽ phân bố rải rác trong không gian Euclide do mô hình vẫn đang trong quá trình huấn luyện và chưa xác định được vị trí chính xác Hàm mất mát sẽ giải quyết vấn đề này bằng cách sử dụng ảnh Anchor để so sánh với ảnh khác.

If the positive image is located far from the anchor (meaning the distance d(A, P) is large), the loss function will work to pull the positive image closer to the anchor.

Khi ảnh Negative gần gũi với ảnh Anchor (tức là khoảng cách d(A, N) rất nhỏ), hàm mất mát sẽ tác động để đẩy ảnh Negative ra xa, đồng thời cập nhật lại bộ trọng số cho mô hình.

Hình 2.11 Ảnh minh họa cho thuật toán Triplet Loss

Hàm mất mát Triplet Loss sử dụng ba bức ảnh làm đầu vào và mong đợi rằng khoảng cách giữa ảnh A và ảnh P nhỏ hơn khoảng cách giữa ảnh A và ảnh N, tức là d(A, P) < d(A, N) Để tăng cường khoảng cách giữa hai vế này, chúng ta thêm vào vế trái một hệ số α không âm rất nhỏ, dẫn đến biểu thức mới: d(A, P) + α ≤ d(A, N).

→ ¿ Như vậy hàm mất mát chúng ta nhận được sẽ là:

Trong quá trình huấn luyện, A đại diện cho ảnh gốc, P là mẫu tương tự ảnh gốc, còn N là mẫu khác biệt so với ảnh gốc Số lượng bộ ba được đưa vào hàm mất mát để tối ưu hóa quá trình này được ký hiệu là α.

Mô hình nhận diện ảnh Negative và Positive, dù là cùng cặp hay khác cặp với ảnh Anchor, không bị ảnh hưởng Mục tiêu chính của chúng ta là giảm thiểu tối đa các trường hợp mà mô hình nhận diện sai ảnh Negative thành Positive.

Do đó, để loại bỏ ảnh hưởng của các trường hợp nhận diện đúng Negative và

Positive lên hàm mất mát, ta sẽ điều chỉnh giá trị biểu thức của hàm mất mát về 0.

Tức là nếu: ¿ Được điều chỉnh về 0 Khi đó hàm mất mát sẽ trở thành:

Khi áp dụng hàm mất mát vào các mô hình CNN để trích xuất đặc trưng, chúng ta có thể tin tưởng rằng sẽ tạo ra các biểu diễn vector tối ưu cho từng bức ảnh trong không gian Euclide Điều này đảm bảo rằng các bức ảnh cùng lớp sẽ gần nhau, trong khi những bức ảnh không cùng lớp sẽ ở khoảng cách xa trong không gian này.

Khi huấn luyện mô hình Siamese Network với hàm mất mát Triplet Loss, điều quan trọng là đảm bảo rằng cặp ảnh A và P thuộc về cùng một chủ nhân, trong khi ảnh N được chọn ngẫu nhiên từ các nhãn khác Do đó, yêu cầu tiên quyết đối với bộ dữ liệu huấn luyện là mỗi người phải có ít nhất hai bức ảnh.

Cách chọn bộ ba ảnh của Triplet Loss

Trong quá trình huấn luyện mô hình Siamese Network sử dụng hàm mất mát Triplet Loss, chúng ta cần quan tâm đến cách chọn bộ 3 Anchor, Positive và

Negative sao cho phù hợp.

Dựa trên mô tả về hàm mất mát Triplet Loss ở phần trên, Triplet Loss còn được chia thành 3 cách chọn ảnh Negative:

Easy Triplets: d ( A ,P )+ α ≤ d (A ,N ) , tức là chọn ảnh Negative có khoảng cách đến Anchor luôn lớn hơn hoặc bằng so với khoảng cách từ Anchor đến Positive.

Hard Triplets: d ( a,n)

Ngày đăng: 23/12/2023, 21:05

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

TÀI LIỆU LIÊN QUAN

w