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

(Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym

63 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 đề Thiết Kế Hệ Thống Xác Thực Và Quản Lý Người Dùng Trong Phòng Gym
Tác giả Trần Khánh Duy, Nguyễn Văn Thắng
Người hướng dẫn ThS. Lê Minh
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Máy Tính
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 63
Dung lượng 6,34 MB

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

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (13)
    • 1.1. GIỚI THIỆU (13)
    • 1.2. MỤC TIÊU ĐỀ TÀI (14)
    • 1.3. GIỚI HẠN ĐỀ TÀI (14)
    • 1.4. PHƯƠNG PHÁP NGHIÊN CỨU (0)
    • 1.5. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU (15)
      • 1.5.1 Đối tượng nghiên cứu (15)
      • 1.5.2. Phạm vi nghiên cứu (15)
    • 1.6. BỐ CỤC QUYỂN BÁO CÁO (16)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VỀ ONE SHOT LEARNING VÀ CÁC NGÔN NGỮ THIẾT KẾ WEBSITE (17)
    • 2.1. KHÁI NIỆM (17)
    • 2.2. GIỚI THIỆU VỀ MẠNG SIAMESE NEURAL NETWORK (18)
      • 2.2.1. Các vấn đề xảy ra khi áp dụng mạng CNN truyền thống vào đề tài (18)
      • 2.2.2. Ý tưởng và kiến trúc của mạng Siamese (19)
      • 2.2.3 Các bước huấn luyện mô hình thông qua mạng Siamese (20)
    • 2.3. CÁC THÀNH PHẦN CẤU TẠO NÊN MẠNG NEURAL SIAMESE (20)
      • 2.3.1. Lớp đầu vào – Input layer (20)
      • 2.3.2. Lớp nhân chập – Convolutional layer (20)
      • 2.3.3 Lớp tổng hợp – Pooling layer (22)
      • 2.3.3 Lớp kết nối đầy đủ – Fully Connected layer (22)
    • 2.4. CÁC LOSS FUNCTION CÓ THỂ ÁP DỤNG VÀO BÀI TOÁN (23)
      • 2.4.1. Contrastive Loss (23)
      • 2.4.2. Triplet Loss (24)
      • 2.4.3. Binary Cross Entropy Loss (24)
    • 2.5. GIỚI THIỆU VỀ CÁC NGÔN NGỮ LẬP TRÌNH ĐƯỢC ỨNG DỤNG (24)
      • 2.5.1. Php (25)
      • 2.5.2. Html, css và javascript (26)
      • 2.5.3. Python (30)
    • 2.6. WEBSERVER VÀ CƠ SỞ DỮ LIỆU MYSQL (0)
      • 2.6.1. XAMPP - Ứng dụng tạo máy chủ webserver (31)
      • 2.6.2. Cơ sở dữ liệu mySQL (32)
    • 2.7. GIỚI THIỆU FRAMEWORK LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG (32)
      • 2.7.1. Kivy là gì ? (32)
      • 2.7.1. Ưu điểm và nhược điểm của Kivy (33)
  • CHƯƠNG 3: THIẾT KẾ HỆ THỐNG XÁC THỰC KHUÔN MẶT VÀ GIAO DIỆN NGƯỜI DÙNG (35)
    • 3.1. YÊU CẦU HỆ THỐNG (35)
    • 3.2. MÔ HÌNH HỆ THỐNG (35)
    • 3.3. THIẾT KẾ CƠ SỞ DỮ LIỆU LƯU TRỮ THÔNG TIN (36)
    • 3.4. THIẾT KẾ PHẦN MỀM (38)
      • 3.4.1. Thiết kế chức năng đăng ký thành viên phòng tập mới (38)
      • 3.4.2. Thiết kế chức năng xác thực gương mặt (40)
      • 3.4.3. Thiết kế chức năng quản lý thành viên phòng tập (44)
  • CHƯƠNG 4: KẾT QUẢ (46)
    • 4.1 HOẠT ĐỘNG CỦA HỆ THỐNG (46)
      • 4.1.1. Giao diện thiết kế của toàn bộ trang web (46)
      • 4.1.2. Giao diện trang quản lý thành viên phòng tập (48)
      • 4.1.3. Chức năng đăng ký thành viên phòng tập mới (49)
      • 4.1.4. Chức năng quản lý thành viên phòng tập (50)
      • 4.1.5. Chức năng xác minh người dùng (50)
      • 4.1.6. Chức năng sử dụng cho người dùng từ xa (52)
    • 4.2 ĐÁNH GIÁ HIỆU NĂNG CỦA HỆ THỐNG (0)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (54)
    • 5.1 KẾT LUẬN (54)
    • 5.2 HƯỚNG PHÁT TRIỂN (54)
  • PHỤ LỤC (56)

Nội dung

TỔNG QUAN

GIỚI THIỆU

Trí tuệ nhân tạo (AI) đang ngày càng trở nên phổ biến và len lỏi vào mọi khía cạnh của cuộc sống hàng ngày AI được định nghĩa là khả năng của hệ thống hoặc chương trình để suy nghĩ và học hỏi, và ứng dụng của nó không chỉ giới hạn trong lĩnh vực công nghệ mà còn mở rộng ra các lĩnh vực dịch vụ và sản xuất.

Hiện nay, việc ứng dụng AI trong xác minh gương mặt đã trở nên phổ biến tại các cơ quan, công sở và trường học Tuy nhiên, trong lĩnh vực dịch vụ như phòng tập gym, trung tâm thương mại và khu mua sắm, các mô hình này vẫn chưa được áp dụng nhiều Những địa điểm này cũng cần xác minh người dùng để xác định thành viên, giúp thay thế thẻ từ truyền thống và mang lại sự tiện lợi cho người sử dụng, không cần phải mang theo công cụ xác minh bên mình.

Nhóm thực hiện nhận thấy tiềm năng to lớn của trí tuệ nhân tạo (AI) trong việc giải quyết các vấn đề hiện tại Vì vậy, nhóm quyết định nghiên cứu đề tài “Thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym”, với mục tiêu kết hợp công nghệ máy tính để nâng cao hiệu quả quản lý.

Hệ thống xác minh gương mặt người dùng dựa trên công nghệ Vision và Deep Learning cho phép xác minh chỉ với một bức ảnh có sẵn Công nghệ này sẽ được ứng dụng hiệu quả trong việc quản lý người dùng tại các phòng tập gym và những địa điểm cần xác minh thành viên, tùy thuộc vào mục đích sử dụng.

Nhóm thực hiện sẽ thiết kế hệ thống xác thực gương mặt sử dụng mô hình mạng Siamese Neural Network với phương pháp One-shot learning Hệ thống sẽ thu thập hình ảnh khuôn mặt từ máy ảnh và so khớp với hình ảnh có sẵn trong thư mục lưu trữ để xác minh danh tính Dữ liệu người dùng như ID, tên, tuổi, và giới tính sẽ được lưu trữ trong cơ sở dữ liệu mySQL, đi kèm với một giao diện website trực quan, dễ dàng thao tác cho cả người dùng chuyên và không chuyên về công nghệ.

MỤC TIÊU ĐỀ TÀI

Đề tài “Thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym” nhằm mục đích tự động hóa và tối ưu hóa việc quản lý dữ liệu thành viên trong phòng tập Nhóm thực hiện sẽ tập trung vào việc xác định các mục tiêu cụ thể để nâng cao hiệu quả quản lý và trải nghiệm của người dùng.

- Lưu trữ dữ liệu thành viên phòng tập đăng ký mới vào cơ sở dữ liệu

- Lưu trữ các hình ảnh gương mặt thành viên phòng tập đăng ký mới từ máy ảnh

- Thực hiện hiển thị thông tin các thành viên phòng tập đã đăng ký thành viên phòng tập

Quản lý thành viên phòng tập bao gồm việc xóa người dùng cũ khỏi hệ thống và chỉnh sửa thông tin của các thành viên hiện tại trực tiếp trên website.

- Xác thực người dùng có phải là thành viên của phòng tập hay không và thực hiện hiển thị gói người dùng đăng ký đã hết hạn hay chưa.

GIỚI HẠN ĐỀ TÀI

Hệ thống quản lý người dùng sẽ bao gồm các chức năng cơ bản như thêm, xóa, chỉnh sửa và xác thực gương mặt Để đảm bảo chất lượng hình ảnh, hệ thống cần được lắp đặt ở nơi có đủ ánh sáng và góc lệch của gương mặt so với máy ảnh không vượt quá 20 độ Máy ảnh sẽ có độ phân giải 720p, với kích thước mỗi bức ảnh đầu vào là 250x250 pixel, đủ để nhận diện một gương mặt rõ nét.

Để hoàn thiện các ý tưởng của hệ thống một cách rõ nét, nhóm thực hiện sẽ áp dụng các phương pháp nghiên cứu phù hợp với các mục tiêu và chức năng hệ thống đã được đề ra.

- Tìm hiểu và nghiên cứu về các hệ thống xác thực khuôn mặt, chấm công bằng gương mặt đã được ứng dụng trong các doanh nghiệp, cơ quan

- Tham khảo và nghiên cứu các tài liệu liên quan đến One-shot learning và mạng Siamese

- Khảo sát các ứng dụng của mô hình nhận diện gương mặt trong thực tế

- Khảo sát các loại ngôn ngữ thích hợp cho việc lập trình giao diện website

- Đánh giá thời gian thực thi của mô hình trong việc xác minh khuôn mặt trên bộ xử lý của NVIDIA có hỗ trợ CUDA

1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Để có thể hoàn thành được các mục tiêu mà nhóm thực hiện đã đặt ra trong đề tài, nhóm thực hiện sẽ đưa ra được những đối tượng và phạm vi nghiên cứu mà đề tài sẽ hướng đến

1.5.1 Đối tượng nghiên cứu Để có thể hoàn thành mục tiêu đề ra, nhóm thực hiện xác định các đối tượng cần thiết cho việc nghiên cứu để có cái nhìn bao quát trong quá trình thực hiện đề tài Dưới đây là một số đối tượng mà nhóm thực hiện tiến hành nghiên cứu:

- Cách xác thực khuôn mặt

- Các kiến trúc mạng neural

- Cơ sở dữ liệu mySQL

Nhóm sẽ khám phá các phương pháp xác thực khuôn mặt đa dạng, tập trung vào các mô hình đã được phát triển cho bài toán nhận dạng gương mặt, bao gồm HaarCascade, YOLO, Few-shot learning và One-shot learning.

Nhóm nghiên cứu sẽ tìm hiểu mô hình mạng CNN từ cơ bản, bao gồm cách xử lý ảnh đầu vào, xây dựng các lớp và tính toán tham số đầu ra Mục tiêu là phát triển một mô hình mạng Siamese với hai luồng xử lý song song.

Nhóm sẽ nghiên cứu mySQL để tạo bảng dữ liệu và thực hiện các thao tác cơ bản như insert, update, delete trên thông tin của một hàng Ngoài ra, nhóm sẽ sử dụng ngôn ngữ Python và PHP để đẩy và truy xuất dữ liệu từ cơ sở dữ liệu Đối với thiết kế giao diện, nhóm sẽ tìm hiểu cách xây dựng website cơ bản bằng cách kết hợp nhiều ngôn ngữ như HTML, CSS, JavaScript và PHP.

1.6 BỐ CỤC QUYỂN BÁO CÁO

Ngoài phần danh mục hình ảnh, danh mục bảng biểu, phụ lục và tài liệu tham khảo thì nội dung chính của đề tài gồm 5 chương:

Chương 1 TỔNG QUAN: giới thiệu tổng quát về đề tài mà nhóm thực, xác định mục tiêu đề tài, giới hạn của đề tài, các phương pháp nghiên cứu, các đối tượng và phạm vi nghiên cứu

Chương 2 CƠ SỞ LÝ THUYẾT VỀ ONE SHOT LEARNING VÀ CÁC NGÔN NGỮ THIẾT KẾ WEBSITE: giới thiệu về mô hình One-shot learning, mạng neural Siamese, MYSQL database và các loại ngôn ngữ lập trình thiết kế giao diện web Chương 3 THIẾT KẾ HỆ THỐNG XÁC THỰC KHUÔN MẶT VÀ GIAO DIỆN NGƯỜI DÙNG: đưa ra sơ đồ thiết kế tổng quát của hệ thống, các thuật toán, các giải thuật tương ứng với từng chức năng được áp dụng vào đề tài

Chương 4 KẾT QUẢ: trình bày các kết quả mà nhóm thực hiện đạt được so với mục tiêu ban đầu và tiến hành thực thi đánh giá hệ thống

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: đưa ra các kết luận về đề tài và xác định các điểm hạn chế, để từ đó hình thành việc xây dựng và phát triển của đề tài trong tương lai.

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

Để hoàn thành mục tiêu đề tài, nhóm thực hiện sẽ xác định đối tượng và phạm vi nghiên cứu phù hợp, giúp đề tài đạt được kết quả như mong đợi và phục vụ cho mục đích cụ thể.

1.5.1 Đối tượng nghiên cứu Để có thể hoàn thành mục tiêu đề ra, nhóm thực hiện xác định các đối tượng cần thiết cho việc nghiên cứu để có cái nhìn bao quát trong quá trình thực hiện đề tài Dưới đây là một số đối tượng mà nhóm thực hiện tiến hành nghiên cứu:

- Cách xác thực khuôn mặt

- Các kiến trúc mạng neural

- Cơ sở dữ liệu mySQL

Trong bài viết này, nhóm sẽ khám phá các phương pháp xác thực khuôn mặt một cách toàn diện, tập trung vào các mô hình đã được phát triển cho bài toán nhận diện gương mặt, bao gồm HaarCascade, YOLO, học Few-shot và học One-shot.

Nhóm nghiên cứu sẽ tập trung vào việc tìm hiểu mô hình mạng CNN cơ bản, bao gồm xử lý ảnh đầu vào, xây dựng các lớp mạng và tính toán tham số đầu ra Từ đó, nhóm sẽ phát triển một mô hình mạng Siamese với hai luồng xử lý song song.

Nhóm sẽ nghiên cứu mySQL để tạo bảng dữ liệu và thực hiện các thao tác cơ bản như insert, update, delete cho các trường thông tin Bên cạnh đó, nhóm sẽ sử dụng ngôn ngữ Python và PHP để đẩy và truy xuất dữ liệu từ cơ sở dữ liệu Đối với thiết kế giao diện, nhóm sẽ tìm hiểu cách xây dựng website cơ bản bằng cách kết hợp nhiều ngôn ngữ như HTML, CSS, JavaScript và PHP.

BỐ CỤC QUYỂN BÁO CÁO

Ngoài phần danh mục hình ảnh, danh mục bảng biểu, phụ lục và tài liệu tham khảo thì nội dung chính của đề tài gồm 5 chương:

Chương 1 TỔNG QUAN: giới thiệu tổng quát về đề tài mà nhóm thực, xác định mục tiêu đề tài, giới hạn của đề tài, các phương pháp nghiên cứu, các đối tượng và phạm vi nghiên cứu

Chương 2 CƠ SỞ LÝ THUYẾT VỀ ONE SHOT LEARNING VÀ CÁC NGÔN NGỮ THIẾT KẾ WEBSITE: giới thiệu về mô hình One-shot learning, mạng neural Siamese, MYSQL database và các loại ngôn ngữ lập trình thiết kế giao diện web Chương 3 THIẾT KẾ HỆ THỐNG XÁC THỰC KHUÔN MẶT VÀ GIAO DIỆN NGƯỜI DÙNG: đưa ra sơ đồ thiết kế tổng quát của hệ thống, các thuật toán, các giải thuật tương ứng với từng chức năng được áp dụng vào đề tài

Chương 4 KẾT QUẢ: trình bày các kết quả mà nhóm thực hiện đạt được so với mục tiêu ban đầu và tiến hành thực thi đánh giá hệ thống

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: đưa ra các kết luận về đề tài và xác định các điểm hạn chế, để từ đó hình thành việc xây dựng và phát triển của đề tài trong tương lai

CƠ SỞ LÝ THUYẾT VỀ ONE SHOT LEARNING VÀ CÁC NGÔN NGỮ THIẾT KẾ WEBSITE

KHÁI NIỆM

Mạng học sâu là phương pháp hiện đại cho phân loại hình ảnh, nhưng yêu cầu số lượng lớn dữ liệu hình ảnh gán nhãn là một hạn chế lớn Trong nhiều ứng dụng thực tế, việc thu thập lượng dữ liệu lớn như vậy không khả thi, do đó, phương pháp One-shot learning đã ra đời như một giải pháp hiệu quả cho vấn đề này.

Trong các hệ thống phân loại ảnh, quá trình xử lý thường bắt đầu bằng việc đưa ảnh qua các lớp convolution, với kết quả đầu ra là các phân phối xác suất cho các lớp dự đoán Tuy nhiên, nhược điểm lớn là yêu cầu số lượng ảnh lớn cho từng lớp, và hệ thống không thể phân loại các đối tượng thuộc các lớp ngoài tập dữ liệu đã huấn luyện Khi cần phân loại một lớp mới, việc thu thập lại hình ảnh và huấn luyện lại mô hình sẽ tiêu tốn nhiều thời gian và chi phí, đặc biệt trong các ứng dụng yêu cầu dữ liệu thay đổi liên tục.

One-shot learning là phương pháp phân loại động vật chỉ cần một hoặc vài bức ảnh cho mỗi lớp Kỹ thuật này so sánh sự tương đồng và khác biệt giữa hai hình ảnh để xác định xem chúng thuộc cùng một lớp hay không Để thực hiện so sánh, một phép đo được áp dụng nhằm đánh giá mức độ tương đồng giữa các bức ảnh.

Trang 6 khoảng cách giữa hai vector ngõ ra của mỗi bức ảnh, nếu hai bức ảnh cùng thuộc một class thì khoảng cách của hai vector ngõ ra của chúng là nhỏ nhất, còn nếu không thì khoảng cách sẽ là cực đại Phương pháp này thay vì phân loại trực tiếp hình ảnh đầu vào thì nó sẽ so sánh ảnh đầu vào với hình ảnh đã được lưu trữ trước đó, tính toán khoảng cách và đưa qua hàm sigmoid cho ra kết quả dự đoán trong khoảng giá trị từ

Phương pháp One-shot learning cho phép so sánh hai ảnh, với kết quả gần 1 cho thấy chúng rất giống nhau Đặc biệt, phương pháp này không phụ thuộc vào số lượng lớp, nên việc huấn luyện lại khi thêm lớp mới là không cần thiết.

GIỚI THIỆU VỀ MẠNG SIAMESE NEURAL NETWORK

Trong thời đại trí tuệ nhân tạo hiện đại với Deep Learning, mạng neural có khả năng thực hiện nhiều tác vụ nhưng lại phụ thuộc nhiều vào dữ liệu để đạt độ chính xác cao Đặc biệt, trong các bài toán như xác minh khuôn mặt và chữ ký, việc thu thập thêm dữ liệu hình ảnh không phải là giải pháp khả thi Để khắc phục vấn đề này, kiến trúc mạng neural mới mang tên Siamese networks đã được phát triển, cho phép sử dụng một lượng dữ liệu hạn chế nhưng vẫn đạt được kết quả dự đoán tốt hơn so với các mạng neural truyền thống Việc sử dụng ít dữ liệu cho huấn luyện đã khiến mạng neural Siamese trở thành xu hướng nổi bật trong lĩnh vực trí tuệ nhân tạo hiện nay.

2.2.1 Các vấn đề xảy ra khi áp dụng mạng CNN truyền thống vào đề tài

Khi một tổ chức muốn phát triển hệ thống điểm danh hoặc chấm công bằng nhận dạng khuôn mặt cho 10 nhân viên, có thể sử dụng mô hình phân loại truyền thống như mạng CNN Tuy nhiên, khi số lượng nhân sự tăng lên hàng trăm hoặc hàng nghìn người, sẽ xuất hiện hai vấn đề lớn cần giải quyết.

Để huấn luyện một hệ thống hiệu quả, cần phải có một lượng lớn hình ảnh đa dạng của từng cá nhân trong tổ chức, điều này có thể gặp khó khăn trong thực tế.

Khi một người mới gia nhập hoặc rời khỏi tổ chức, việc thu thập lại toàn bộ dữ liệu và huấn luyện lại mô hình là cần thiết Điều này đảm bảo rằng hệ thống luôn được cập nhật và chính xác, phản ánh đúng tình hình hiện tại của tổ chức.

Trang 7 nữa Điều này thực tế khó có thể thực hiện được, đặc biệt đối với các tổ chức lớn nơi mà sự thay đổi nhân sự diễn ra gần như hàng ngày, hàng tuần

Việc thu thập một lượng lớn ảnh khuôn mặt cho bài toán nhận diện khuôn mặt là thách thức lớn, đặc biệt trong các môi trường như cơ quan, công sở hay trường học với số lượng người thay đổi liên tục Hệ thống điểm danh khuôn mặt dựa trên mạng phân loại thông thường phải huấn luyện lại từ đầu khi có sự thay đổi nhân sự, điều này thường không khả thi Do đó, mạng Siamese đã được phát triển để giải quyết những vấn đề này.

2.2.2 Ý tưởng và kiến trúc của mạng Siamese

Mạng Siamese hoạt động theo cách đơn giản nhưng hiệu quả, học cách phân biệt sự tương đồng và khác biệt giữa đối tượng cần nhận dạng và dữ liệu trong cơ sở dữ liệu, thay vì chỉ tập trung vào việc phân loại chính xác Điều này cho phép dễ dàng thêm một lớp mới mà không cần phải huấn luyện lại mô hình.

Kiến trúc Siamese là một mạng song sinh bao gồm hai mạng con có cấu trúc và trọng số giống nhau, hoạt động song song Mỗi mạng con nhận một ảnh đầu vào, và đầu ra của chúng được đưa qua một hàm Loss để tính toán mức độ tương đồng giữa hai ảnh.

Hình 2.2: Ví dụ về kiến trúc của mạng Siamese [2]

2.2.3 Các bước huấn luyện mô hình thông qua mạng Siamese

Mô hình Siamese sử dụng kiến trúc với hai mạng CNN chạy song song, trong đó quá trình huấn luyện không tạo ra một output cụ thể mà chỉ cung cấp hai embedded vector từ hai bức ảnh Từ hai vector này, mô hình sẽ tính toán khoảng cách giữa chúng Quá trình huấn luyện mô hình bao gồm bốn bước, bắt đầu bằng việc chọn một cặp dữ liệu đầu vào, cụ thể là ảnh khuôn mặt trong dataset.

- Positive: hai ảnh cùng Class

- Negative: hai ảnh khác Class

Bước 2: đưa qua các mạng con để xử lý, output của các mạng con là các vectơ Bước 3: tính toán khoảng cách euclide giữa hai vectơ đó

Hàm phi tuyến sigmoid được sử dụng để chuyển đổi giá trị về khoảng [0,1], trong đó giá trị gần 1 cho thấy hai ảnh tương tự nhau, trong khi giá trị gần 0 cho thấy sự khác biệt lớn giữa chúng.

CÁC THÀNH PHẦN CẤU TẠO NÊN MẠNG NEURAL SIAMESE

Mạng Siamese bao gồm hai mạng CNN hoạt động song song với kiến trúc được xây dựng từ bốn loại lớp chính: lớp đầu vào, lớp nhân chập, lớp tổng hợp và lớp kết nối đầy đủ.

2.3.1 Lớp đầu vào – Input layer Đầu vào của mạng Siamese sẽ là các cặp hình ảnh phải có cùng kích thước Ví dụ một ảnh đầu vào được biểu diễn (100, 100, 3) được hiểu là hình ảnh có kích thước 100*100 và là hình ảnh màu với 3 kênh tương ứng với 3 màu chủ đạo: Red, Green, Blue

2.3.2 Lớp nhân chập – Convolutional layer

Trong kiến trúc của Siamese Neural Network, lớp nhân chập đóng vai trò quan trọng, thực hiện tính toán để tạo ra các trọng số từ dữ liệu đầu vào Đây là lớp đầu tiên trong quá trình xử lý thông tin của SNN.

Trang 9 tiên thực hiện mọi phép toán nhằm trích xuất đặc trưng khác nhau từ các dữ liệu đầu vào Đồng hành với Convolutional Layer sẽ có các thuật ngữ cần được làm rõ như Filter Map, Stride, Feature Map và Padding

Bản đồ lọc là các ma trận vuông (mặt nạ nhân chập) được sử dụng để áp dụng lên từng pixel của hình ảnh, giúp trích xuất các đặc trưng của từng bức ảnh Những ma trận này có thể là ma trận 3 chiều tương ứng với ba màu sắc cơ bản: Đỏ (R), Xanh lá (G) và Xanh dương (B).

B, các ma trận này bao gồm những con số và các con số chính là Parameter

- Stride: trong mạng Neural, Stride là việc dịch Filter Map từ trái sang phải theo lần lượt từng Pixel [3]

- Padding: là các con số 0 được thêm vào xung quanh viền của ma trận ngõ vào

Bản đồ đặc trưng (Feature Map) là kết quả của việc dịch chuyển bản đồ bộ lọc (Filter Map) trên toàn bộ các pixel của dữ liệu đầu vào Sau mỗi lần dịch chuyển hoàn tất, quá trình tính toán sẽ được thực hiện, tạo ra các ma trận mới với trọng số là kết quả của tổng phép nhân chập trên từng pixel.

Quá trình nhân chập của hình ảnh màu được thể hiện qua việc sử dụng ma trận 3x3, với kết quả là ma trận tổng hợp các phần tử từ phép nhân chập trên ba kênh RGB, cộng thêm một trọng số bias.

Hình 2.3: Quá trình nhân chập trên ảnh màu [4]

2.3.3 Lớp tổng hợp – Pooling layer

Trong mạng SNN, lớp tổng hợp (Pooling) thường được đặt sau lớp tích chập (Convolution) với mục đích giảm kích thước ma trận và số lượng điểm ảnh Điều này giúp tạo ra ma trận mới để tiếp tục vào lớp Convolution tiếp theo Hai phương pháp phổ biến trong việc giảm chiều dữ liệu của ma trận là max pooling và average pooling.

- Phương pháp max pooling: chọn giá trị trọng số lớn nhất trong phạm vi mà nó được thực thi

- Phương pháp average pooling: tính trung bình các giá trị trong số trong phạm vi mà nó đang được thực thi

Hình 2.4: Ví dụ về phương pháp Pooling[4]

2.3.3 Lớp kết nối đầy đủ – Fully Connected layer

Lớp Kết Nối Đầy Đủ (Fully Connected Layer) có vai trò quan trọng trong việc đưa ra kết quả của mô hình, nhận đầu vào là các dữ liệu đã được làm phẳng (Flatten) Mỗi đầu vào này được kết nối đến tất cả các nơ-ron trong lớp Sau khi hình ảnh trải qua các lớp tích chập và pooling, các ma trận sẽ tạo ra các trọng số cần thiết cho mô hình Để mô hình có thể "học" và tối ưu hóa các trọng số này, lớp kết nối đầy đủ là cần thiết để liên kết các trọng số và sản sinh ra kết quả cuối cùng.

Hình 2.5: Đưa ra kết quả ngõ ra thông qua Fully - Connected [4].

CÁC LOSS FUNCTION CÓ THỂ ÁP DỤNG VÀO BÀI TOÁN

Hàm mất mát, hay còn gọi là loss function, thể hiện mối quan hệ giữa giá trị dự đoán của mô hình (Ypredict) và giá trị thực tế (Ytrue).

Phương pháp này sử dụng một cặp dữ liệu đầu vào, trong đó một ảnh thuộc lớp Positive và ảnh còn lại thuộc lớp Negative Khi hai ảnh cùng loại, mô hình sẽ giảm thiểu khoảng cách Euclide giữa hai vectơ mạng con, ngược lại, nếu hai ảnh khác loại, khoảng cách này sẽ được đẩy ra xa trong quá trình huấn luyện.

2{max(0, 𝑚 − 𝐷 𝑤 )} 2 (5) Với 𝐷 𝑤 : khoảng cách euclide của hai vectơ mạng con

Y là label của tập dữ liệu, nếu hai ảnh cùng một người thì label là 1, nếu ảnh hai người khác nhau thì label là 0

Công thức tính toán khoảng cách euclide của hai vector được biểu diễn như sau:

√{𝐺 𝑤 (𝑋 1 ) − 𝐺 𝑤 (𝑋 2 )} 2 (5) Với Gw: ngõ ra vectơ mỗi mạng con của mỗi X1, X2 ảnh đầu vào

Phương pháp này sử dụng bộ 3 ảnh đầu vào gồm lớp A (Anchor), P (Positive) và N (Negative) Trong quá trình huấn luyện, khoảng cách euclide giữa lớp A và lớp P sẽ được rút ngắn, trong khi khoảng cách giữa lớp A và lớp N sẽ được đẩy ra xa Công thức cho quá trình này sẽ được biểu diễn rõ ràng.

Hàm mất mát được định nghĩa là: 𝐿𝑜𝑠𝑠 = max (||𝑓(𝐴) − 𝑓(𝑃)|| 2 − ||𝑓(𝐴) − 𝑓(𝑁)|| 2 + 𝛼, 0), trong đó 𝛼 thể hiện sự khác biệt hoặc tương đồng giữa các cặp ảnh đầu vào Các vector đại diện 𝑓(𝐴), 𝑓(𝑃), và 𝑓(𝑁) tương ứng với lớp Anchor, Positive và Negative.

Hàm Loss so sánh kết quả dự đoán của mô hình với kết quả thực tế, có thể là 0 hoặc 1, và tính toán xác suất dựa trên khoảng cách với giá trị thực Điều này cho phép điều chỉnh các giá trị gần hoặc xa so với giá trị thực tế Công thức của hàm Loss được biểu diễn như sau:

Với 𝑝 𝑖 là xác suất xảy ra của class 1, còn (1 − 𝑝 𝑖 ) là xác suất xảy ra của class 0.

GIỚI THIỆU VỀ CÁC NGÔN NGỮ LẬP TRÌNH ĐƯỢC ỨNG DỤNG

Trong thời đại công nghệ phát triển mạnh mẽ, các ngôn ngữ lập trình đã có những cải tiến và đa dạng hóa đáng kể Chúng đóng vai trò quan trọng trong việc tạo ra nhiều sản phẩm và dịch vụ, từ xe máy, ô tô, hệ thống đèn giao thông đến các thiết bị điện tử như điện thoại, máy tính, và ti vi Mỗi ngôn ngữ lập trình được lựa chọn phù hợp với mục đích cụ thể, giúp tối ưu hóa quy trình làm việc cho lập trình viên và các nhà phát triển.

Ngôn ngữ lập trình là công cụ giao tiếp giữa con người và hệ thống máy tính, chủ yếu được sử dụng bởi lập trình viên và nhà phát triển Nó bao gồm các mã lệnh được viết bằng nhiều ngôn ngữ khác nhau như C, C++, Java, Python, và PHP, nhằm thực hiện các tác vụ đa dạng.

PHP (Personal Home Page), hay còn gọi là "Hypertext Preprocessor", là ngôn ngữ kịch bản mã nguồn mở đa mục đích, chủ yếu được sử dụng cho các ứng dụng chạy trên máy chủ web Ngôn ngữ này cho phép lập trình viên viết mã phía máy chủ, từ đó tạo ra mã HTML hiển thị trên máy khách Với những cải tiến về tốc độ thực thi và cấu trúc rõ ràng, PHP ngày càng trở nên dễ tiếp cận cho lập trình viên, giúp họ phát triển các trang web nhanh chóng, với giao diện thân thiện và dễ nhìn.

PHP là ngôn ngữ lập trình được sử dụng để phát triển ứng dụng web, cho phép lưu trữ thông tin từ người dùng vào các cơ sở dữ liệu như MySQL, MongoDB, SQLite, và Firebase Những cơ sở dữ liệu này không chỉ lưu trữ dữ liệu mà còn cung cấp thông tin khi người dùng yêu cầu, thường được triển khai trên máy chủ Apache HTTP Server.

Ngôn ngữ php thường được ứng dụng như sau:

Ngôn ngữ PHP hỗ trợ các nhà phát triển xây dựng hệ thống cơ sở dữ liệu trên máy chủ để lưu trữ thông tin và quản lý tài khoản người dùng Khi người dùng nhập thông tin như họ tên, tuổi, và số điện thoại để tạo tài khoản, PHP sẽ ghi nhận và gửi dữ liệu này về máy chủ để lưu trữ, giúp thuận tiện cho các tác vụ xử lý sau này.

PHP được sử dụng để kết nối nhiều ngôn ngữ lập trình khác nhau Chẳng hạn, khi một trang web được viết bằng HTML và cần nhúng một file Python để thực thi, PHP đóng vai trò trung gian để thực hiện điều này.

- Nhiều trang web, trang mạng xã hội nổi tiếng đã và đang sử dụng php, một trong số đó là Yahoo, Wikipedia và đặc biệt là Facebook

Php được ứng dụng rộng rãi như thế bởi nó có một số ưu điểm sau:

- Nó là mã nguồn mở và hơn nữa là nó không tốn phí để có thể sử dụng Php có mặt ở nhiều ứng dụng, trang web nổi tiếng

- Các ứng dụng được xây dựng từ php để có thể thực thi được trên bất kỳ hệ điều hành nào vì nó độc lập với các nền tảng

PHP giúp các lập trình viên dễ dàng kết nối và liên kết các cơ sở dữ liệu trong hệ thống trang web, tối ưu hóa thời gian cho quá trình phát triển, xây dựng, sửa chữa và bảo trì.

Tính linh hoạt của PHP cho phép nó kết hợp hiệu quả với nhiều ngôn ngữ lập trình khác, giúp tạo ra ứng dụng hoặc trang web đạt được kết quả mong muốn và hiệu suất tối ưu.

- Php không được phép thay đổi hành vi cốt lõi của các ứng dụng

- Quá trình bảo mật và xử lý lỗi chưa được tối ưu

Hypertext Markup Language (HTML) là ngôn ngữ được sử dụng để xây dựng và phát triển trang web cũng như ứng dụng trên web Được sáng lập bởi nhà khoa học máy tính Tim Berners-Lee, một nhà vật lý nổi tiếng tại CERN, HTML hiện đang được tổ chức W3C phát triển và duy trì như một chuẩn Internet Người dùng có thể tìm kiếm và cập nhật các phiên bản mới nhất của HTML phù hợp với hệ điều hành của họ trên trang web chính thức của W3C.

Trang 15 Để tạo ra được một trang web hoàn chỉnh thì sẽ cần đến nhiều trang web phụ Những trang chính hay trang phụ thực tế là những tập tin được viết bằng html Tập tin html sẽ bao gồm các thẻ để phân chia và định dạng nội dung Thẻ lớn nhất, bao trùm toàn bộ là thẻ html, tiếp theo là thẻ header chứa nội dung của tiêu đề, sau đó là thẻ body chứa nội dung mà người lập trình muốn hiển thị lên trang web Tất cả các thẻ này sẽ đặt trong cặp dấu ngoặc nhọn “< >” Ngôn ngữ html hiện đang là một ngôn ngữ nền tảng phổ biến để tạo ra những trang web cho cá nhân, công ty hay doanh nghiệp

Người dùng thường nhầm lẫn rằng HTML là ngôn ngữ lập trình, nhưng thực tế, nó không thể thực hiện các chức năng “động” HTML tương tự như việc sắp xếp bố cục và định dạng văn bản trong Word, nhưng nó có khả năng thay đổi nội dung trên web Đặc biệt, HTML có thể kết hợp với CSS và JavaScript để tạo ra hiệu ứng động và chức năng chuyển trang mượt mà, giúp trang web trở nên sinh động hơn.

Html có một số ưu điểm sau:

- Html dễ học và sử dụng, là ngôn ngữ nền tảng quan trọng đối với người bắt đầu tiếp cận đến mảng lập trình web

HTML có ưu điểm nổi bật là miễn phí và không yêu cầu mua phần mềm cụ thể, giúp người dùng dễ dàng hoạt động trên mọi nền tảng mà không cần xử lý các loại phần mềm khác nhau Điều này mang lại hiệu quả chi phí cao cho doanh nghiệp, vì không phát sinh chi phí mua giấy phép khi phát triển toàn bộ trang web bằng ngôn ngữ HTML.

HTML được hỗ trợ bởi hầu hết các trình duyệt web trên toàn cầu, giúp các nhà phát triển web dễ dàng tối ưu hóa trang web của họ cho các trình duyệt khác nhau.

HTML có khả năng tích hợp linh hoạt với nhiều ngôn ngữ lập trình khác nhau như JavaScript, PHP, Node.js và CSS mà không gặp phải bất kỳ vấn đề nào Việc kết hợp mã của các ngôn ngữ này vào trong HTML diễn ra một cách dễ dàng, tạo điều kiện thuận lợi cho việc phát triển ứng dụng web.

Bên cạnh các ưu điểm đã nêu ở trên, html cũng cần phải cải thiện tại một số nhược điểm của nó như:

HTML là ngôn ngữ cơ bản được sử dụng để tạo ra các trang web tĩnh, tương tự như một tài liệu Word thông thường Để nâng cao trải nghiệm người dùng với các hiệu ứng mượt mà, màu sắc phong phú và tính tương tác, cần sử dụng thêm các ngôn ngữ lập trình khác như CSS, JavaScript và PHP.

- Cần phải viết nhiều mã, đoạn code để tạo ra được một website hoàn chỉnh

WEBSERVER VÀ CƠ SỞ DỮ LIỆU MYSQL

Bên cạnh, các lợi ích kể trên, python cũng có một số nhược điểm:

Python thực thi từng dòng mã, giúp lập trình viên dễ dàng phát hiện và sửa lỗi Tuy nhiên, điều này cũng khiến quá trình hoàn thành một chương trình cụ thể trở nên lâu dài và tốn thời gian.

Python sử dụng cú pháp tối ưu hóa để xây dựng chức năng, tuy nhiên điều này cũng dẫn đến việc ngôn ngữ này tiêu tốn nhiều bộ nhớ để lưu trữ các thư viện hỗ trợ người dùng.

2.6 WEBSERVER VÀ CƠ SỞ DỮ LIỆU MYSQL

Xampp là ứng dụng giúp tạo web server với các chương trình tích hợp sẵn như Apache, MySQL, PHP và FTP server Nó cho phép người dùng quản lý các chương trình một cách dễ dàng, cho phép khởi động hoặc dừng chúng bất cứ lúc nào.

2.6.1 XAMPP - Ứng dụng tạo máy chủ webserver

Xampp là một ứng dụng web-server mã nguồn mở do tổ chức Apache Friends phát triển, cung cấp dịch vụ chủ yếu là máy chủ Apache hỗ trợ giao thức HTTP Nó cũng bao gồm MariaDB cho việc tạo cơ sở dữ liệu MySQL và các trình thông dịch cho ngôn ngữ PHP và Perl Tên gọi Xampp được viết tắt từ các ứng dụng tích hợp, bao gồm Cross-Platform (X), Apache HTTP server (A), Maria Database (M), ngôn ngữ PHP (P) và ngôn ngữ Perl (P).

Xampp là công cụ thiết yếu cho lập trình viên, cho phép tạo hệ thống máy chủ với nhiều cơ sở dữ liệu miễn phí và sử dụng local, giúp xây dựng trang web hiệu quả hơn trước khi chính thức hoạt động Công cụ này giúp lập trình viên kiểm tra các tính năng đã phát triển, nhanh chóng phát hiện và chỉnh sửa lỗi Xampp tích hợp đầy đủ các thành phần cần thiết để hình thành một website hoàn chỉnh, bao gồm ứng dụng máy chủ (Apache), cơ sở dữ liệu (Maria Database) và ngôn ngữ lập trình web (PHP) Ngoài ra, Xampp hỗ trợ đa nền tảng, hoạt động tốt trên Windows, Linux và MacOS, giúp việc chuyển đổi từ máy chủ local sang máy chủ online trở nên dễ dàng.

2.6.2 Cơ sở dữ liệu mySQL

PhpMyAdmin là một ứng dụng mã nguồn mở, được phát triển bằng ngôn ngữ PHP, cho phép người dùng quản lý cơ sở dữ liệu MySQL một cách dễ dàng thông qua giao diện web.

Các tính năng phổ biến thường được sử dụng trên nền tảng phpMyAdmin:

Lưu trữ và quản lý thông tin cho phép thực hiện các thao tác như thêm người dùng mới, chỉnh sửa thông tin khi cần thiết và xóa thông tin không còn phù hợp.

Bạn có thể nhập hoặc xuất dữ liệu dưới các định dạng file như CSV, SQL hoặc XML, điều này giúp việc sao lưu và khôi phục cơ sở dữ liệu trở nên thuận tiện hơn.

Kết nối nhiều cơ sở dữ liệu nhỏ thành một hệ thống máy chủ giúp tối ưu hóa hiệu suất cho ứng dụng hoặc trang web Việc này không chỉ nâng cao khả năng xử lý dữ liệu mà còn cải thiện trải nghiệm người dùng.

GIỚI THIỆU FRAMEWORK LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG

Kivy là một framework đa nền tảng cho Python, cho phép phát triển ứng dụng phần mềm trên nhiều hệ điều hành như Windows, Linux, Android, macOS, iOS và Raspberry Pi.

Kivy là một nền tảng mã nguồn mở dành cho Python, cho phép phát triển và thiết kế giao diện người dùng (GUI) Nó hỗ trợ lập trình các ứng dụng đa chạm với giao diện người dùng tự nhiên (NUI), giúp lập trình viên xây dựng ứng dụng một lần và triển khai trên nhiều thiết bị khác nhau Ngoài ra, Kivy còn cho phép truy cập vào các API di động, giúp thao tác với các tính năng như máy ảnh và GPS trên điện thoại.

Hình 2.6: Giao diện đăng nhập cơ bản được tạo với Kivy

Kivy chứa các thành phần khác nhau để tạo một ứng dụng như:

- Thư viện đồ họa OpenGL ES 2

- Một loạt các widget được hỗ trợ cảm ứng đa điểm

- Một ngôn ngữ Kv trung gian để thiết kế các widget tùy chỉnh

Hệ thống hỗ trợ đa dạng các thiết bị ngoại vi như chuột, bàn phím và TUIO, đồng thời cung cấp các sự kiện cảm ứng đa điểm chuyên biệt cho từng hệ điều hành.

2.7.1 Ưu điểm và nhược điểm của Kivy

Dưới đây là danh sách những ưu điểm của Kivy:

- Kivy giúp các lập trình viên thiết kế giao diện sáng tạo với các chức năng đa chạm

- Kivy có thể hoạt động trơn tru với nhiều nền tảng hệ điều hành khác nhau như Windows, Android, Linux, iOs, macOS

- Kivy giúp thực thi code trên tất cả các nền tảng được hỗ trợ

- Kivy cung cấp các API được ghi chép đầy đủ

- Kivy cung cấp việc thể hiện tốt hơn cho các chương trình, bao gồm các lớp, cấu hình widget và các lớp kế thừa

- Kivy hoạt động tốt hơn Html 5

Bên cạnh đó Kivy vẫn còn có một số nhược điểm:

- Kivy sử dụng ngôn ngữ kV, không thích hợp để chúng tôi biên dịch mã code đơn

- Kivy không phải lúc nào cũng được cập nhật với các API Android mới nhất

- Mất rất nhiều thời gian cho việc xây dựng và biên dịch các ứng dụng di động

- Kích thước của package lớn không cần thiết

- Kivy thiếu sự hỗ trợ của cộng đồng

THIẾT KẾ HỆ THỐNG XÁC THỰC KHUÔN MẶT VÀ GIAO DIỆN NGƯỜI DÙNG

YÊU CẦU HỆ THỐNG

Hệ thống xác thực khuôn mặt bao gồm ba chức năng chính: đăng ký thành viên, xác minh người dùng và quản lý thành viên Chức năng đăng ký cho phép nhập thông tin người dùng mới như tên, tuổi, giới tính và gói tập qua website, sau đó hệ thống sẽ lưu dữ liệu khuôn mặt và gán ID cho người dùng Chức năng xác minh so sánh hình ảnh khuôn mặt với cơ sở dữ liệu và thông báo kết quả qua âm thanh, đồng thời kiểm tra tình trạng gói tập của người dùng Cuối cùng, chức năng quản lý thành viên hiển thị danh sách tất cả người dùng trên website, giúp quản trị viên dễ dàng xóa hoặc chỉnh sửa thông tin.

MÔ HÌNH HỆ THỐNG

Nhằm xây dựng một hệ thống đơn giản, hiệu quả và dễ sử dụng cho mọi đối tượng người dùng, nhóm thực hiện đã phác thảo sơ đồ khối tổng quan của hệ thống.

Hình 3.1: Sơ đồ khối bao quát toàn hệ thống

Dữ liệu hình ảnh người dùng đã có sẵn

Cơ sở dữ liệu Ứng dụng web

Như hình trên, hệ thống sẽ gồm các khối như sau:

- Người dùng: người sẽ thực hiện việc xác minh gương mặt, hoặc có thể là người quản lý hệ thống trong phòng tập gym

Máy ảnh có chức năng thu thập dữ liệu người dùng đăng ký mới và xác minh gương mặt Với độ phân giải 720p, máy ảnh này thu thập ảnh có kích thước 250x250 pixel.

Khối xử lý là thành phần quản lý toàn bộ tính năng của hệ thống, bao gồm việc thu thập ảnh đăng ký của người dùng mới, lưu trữ và truy xuất thông tin từ cơ sở dữ liệu mySQL, cũng như thực hiện quá trình so khớp gương mặt với dữ liệu hình ảnh của tất cả người dùng đã được lưu trữ.

Dữ liệu hình ảnh của phòng tập được lưu trữ một cách có hệ thống, bao gồm tất cả hình ảnh của các thành viên đã đăng ký Mỗi bức ảnh sẽ có định dạng tên là User.id.jpg, trong đó id là duy nhất cho từng thành viên, giúp dễ dàng xác minh thông tin.

Nhóm thực hiện sẽ sử dụng cơ sở dữ liệu mySQL để lưu trữ thông tin cơ bản của người dùng, bao gồm tên, tuổi, giới tính, gói đăng ký, ngày bắt đầu, ngày hết hạn và số ngày đã tập.

Ứng dụng web với giao diện trực quan giúp người dùng dễ dàng vận hành hệ thống Trang web bao gồm các thành phần cơ bản như trang chủ, trang đăng nhập, thông tin về phòng gym, trang quản lý người dùng, và trang đăng ký cùng xác minh người dùng.

THIẾT KẾ CƠ SỞ DỮ LIỆU LƯU TRỮ THÔNG TIN

Nhóm thực hiện sẽ xây dựng ba cơ sở dữ liệu cho trang web, bao gồm: một cơ sở dữ liệu để lưu trữ thông tin tài khoản người quản trị, một cơ sở dữ liệu cho tài khoản thành viên, và một cơ sở dữ liệu dành riêng cho thông tin thành viên của phòng tập.

Hai chức năng đầu tiên của hệ thống giúp lưu trữ tên tài khoản và mật khẩu cho người quản trị cũng như thành viên phòng tập, phục vụ cho việc đăng ký và đăng nhập vào trang web, như được trình bày trong bảng 3.1 dưới đây.

Bảng 3.1: Cấu trúc cơ sở dữ liệu lưu trữ tài khoản người quản trị (trên) và thành viên phòng tập (dưới) id_admin email password

id_dangky tenkhachhang sodienthoai email password

Dữ liệu lưu trữ sẽ phục vụ nhiều mục đích như xác minh thành viên phòng tập, hiển thị thông tin trên website và quản lý thông tin thành viên Do đó, khối lượng dữ liệu sẽ rất lớn, với 10 trường thông tin cần thiết cho mỗi người dùng, như được trình bày trong bảng 3.2 dưới đây.

Bảng 3.2: Cấu trúc cơ sở dữ liệu lưu trữ thông tin thành viên phòng tập id Ten Tuoi Gioitinh Goi dangky

Ngaydangky Ngayhethan Bientam Ngaygannhat Songaytap

Chi tiết về các trường thông tin:

ID sẽ được tạo tự động sau khi người dùng hoàn tất đăng ký mới ID này cũng được sử dụng để đánh số cho bức ảnh của người dùng, giúp dễ dàng truy xuất dữ liệu nếu việc xác minh thành công.

- Ten, tuoi, gioi tinh, Goidangky: các trường thông tin này được nhập vào trên website khi đăng ký người dùng mới

Tại thời điểm đăng ký, người dùng mới sẽ lấy thời gian đăng ký làm ngày bắt đầu cho gói tập Gói đăng ký sẽ được tính từ thời điểm này.

3, 6, 9, 12 tháng sẽ cho ra ngày mà gói tập sẽ hết hạn, trường thông tin Ngayhethan phục vụ việc kiểm tra thời hạn gói tập của người dùng

- Bientam: biến xử lý trung gian hỗ trợ tính toán Ngayhethan từ Ngaydangky và Goidangky

- Ngaygannhat: thời điểm gần nhất mà người dùng đã đến phòng tập

- Songaytap: số ngày đã đi tập của người dùng tính từ thời điểm đăng ký

THIẾT KẾ PHẦN MỀM

Nhóm sẽ thiết kế hệ thống xác minh gương mặt sử dụng hai ngôn ngữ lập trình: Python cho các tính năng xử lý và tính toán xác minh, và PHP cho giao diện web Hệ thống sẽ bao gồm các chức năng chính như đăng ký thành viên mới, xác minh gương mặt thành viên và quản lý thông tin thành viên, được trình bày chi tiết trong các đề mục tiếp theo.

3.4.1 Thiết kế chức năng đăng ký thành viên phòng tập mới

Chức năng đăng ký thành viên phòng tập mới sẽ bao gồm hai chức năng chính: lưu trữ thông tin người dùng vào cơ sở dữ liệu mySQL và chụp ảnh để lưu trữ hình ảnh phục vụ việc xác minh gương mặt sau này Dưới đây là lưu đồ xử lý cho chức năng này.

Hình 3.2: Lưu đồ hoạt động của chức năng đăng ký thành viên phòng tập mới

Gán id cho bức ảnh và lưu trữ bức ảnh

Hiển thị chưa thể phát hiện gương mặt

Lưu thông tin vào cơ sở dữ liệu Đúng Sai

Việc khởi động chức năng đăng ký thành viên phòng tập mới sẽ được thực hiện ngay trên website với nút nhấn ‘‘Thêm người dùng’’:

Sau khi khởi động hệ thống, người dùng sẽ thấy một giao diện yêu cầu nhập các thông tin cần thiết, bao gồm họ và tên, tuổi, giới tính, và gói đăng ký tập luyện (1).

3, 6, 9, 12 tháng) và ngày đăng ký được phác thảo theo dạng như bảng 3.3

Bảng 3.3: Đăng ký thành viên mới của phòng tập

Nhập thông tin người dùng

Giới tính Đăng ký gói

Khi người dùng hoàn tất nhập liệu, hệ thống sẽ tự động tính toán ngày đăng ký và ngày hết hạn, đồng thời lưu trữ các thông tin của người dùng vào cơ sở dữ liệu.

Sau khi hoàn tất việc lưu trữ thông tin, hệ thống sẽ chụp một bức ảnh gương mặt của người dùng thông qua máy ảnh, với kích thước khung hình 250x250, đủ để nhận diện rõ nét gương mặt (Hình 3.3).

Hình 3.3: Hình ảnh gương mặt người dùng có kích thước 250*250

Nếu người dùng không đưa toàn bộ gương mặt vào khung hình, hệ thống sẽ phát ra cảnh báo âm thanh và cho phép chụp ảnh lại Sau khi thu thập thành công dữ liệu gương mặt, hệ thống sẽ gán một ID cho người dùng và lưu trữ bức ảnh với định dạng User.id.jpg, sau đó cập nhật ID lên cơ sở dữ liệu Khi quá trình đăng ký mới hoàn tất, cửa sổ chụp ảnh sẽ tự động đóng lại.

3.4.2 Thiết kế chức năng xác thực gương mặt

Chức năng xác thực gương mặt sử dụng mô hình trí tuệ nhân tạo để so khớp hình ảnh của hai gương mặt Mô hình này được phát triển theo phương pháp One-shot learning, sử dụng cặp dữ liệu đầu vào gồm hai hình ảnh có cùng kích thước Sau khi hệ thống xử lý, kết quả so khớp sẽ được đưa ra dưới dạng True (1) hoặc False (0) Hình ảnh 3.4 bên dưới minh họa quá trình so khớp của mô hình.

Để thực hiện việc so khớp gương mặt, bước đầu tiên là xây dựng một mô hình có khả năng dự đoán sự tương đồng hoặc khác biệt giữa hai hình ảnh đầu vào Việc áp dụng deep learning trong quá trình huấn luyện các mô hình này sẽ giúp cải thiện độ chính xác của kết quả.

Hình 3.5: Kiến trúc cho việc huấn luyện model

Nhóm thực hiện báo cáo phát thảo đã triển khai việc huấn luyện thông qua hai mạng neural tích chập song song Các đầu vào của hệ thống là hai hình ảnh có kích thước giống nhau, có thể là của một người hoặc hai người khác nhau Sau khi được xử lý qua các mạng neural tích chập (ConvNet), hình ảnh sẽ cho ra kết quả phân tích chính xác.

Hình ảnh đầu vào So khớp gương mặt

Dữ liệu ảnh có sẵn

Trang 29 các trọng số để huấn luyện model, các trọng số này sau khi Flatten sẽ cho ra hai vector ngõ ra, từ hai vector đó sử dụng một hàm để tính khoảng cách euclidean của chúng Thông qua hàm Sigmoid có thể dùng để biến đổi giá trị thực thành một giá trị xác suất nằm trong khoảng 0-1, từ đó nếu hai tấm ảnh gương mặt cùng một người thì xác suất sẽ gần bằng 1 và sẽ gần bằng 0 nếu ngược lại

Sau khi phát triển một mô hình có khả năng phân loại từ hai hình ảnh đầu vào, nhóm nghiên cứu đã tiến hành thiết kế hệ thống nhận dạng, được trình bày trong sơ đồ hình 3.6 dưới đây.

Quá trình nhận dạng gương mặt bắt đầu với việc phát hiện khuôn mặt từ dữ liệu hình ảnh được thu thập từ máy ảnh Hệ thống sẽ xác định vị trí khuôn mặt khi người dùng nhìn thẳng về phía máy ảnh Sau khi xác định được vị trí, hệ thống sẽ tiếp tục thực hiện bước xác định các điểm đặc trưng trên khuôn mặt.

Công việc xác định Face landmark liên quan đến việc xác định vị trí của các điểm quan trọng trên gương mặt người dùng, bao gồm mắt, mũi, miệng và cằm Từ những điểm này, chúng ta có thể tính toán các khoảng cách tương ứng giữa các điểm trên gương mặt Hình 3.7 dưới đây minh họa rõ nét cho quá trình Face detection và Face landmark.

Hình 3.7: Bức ảnh trước và sau khi thực hiện Face detection và Face landmark

Mã hóa khuôn mặt là quá trình chuyển đổi dữ liệu hình ảnh màu của khuôn mặt thành một tập hợp ma trận số dựa trên các đặc điểm của khuôn mặt.

Trang 30 sẽ phân tích các đặc điểm khuôn mặt về cơ bản nó được biến thành một công thức toán học Giống như cách định danh bằng dấu vân tay vì nó là duy nhất của một người, vì vậy mỗi người cũng sẽ có dạng khuôn mặt của riêng Hình ảnh 3.8 bên dưới sẽ mô tả việc chuyển đổi từ một bức ảnh sang dạng ma trận số

Hình 3.8: Chuyển đổi ảnh màu sang dữ liệu dạng ma trận số

KẾT QUẢ

Ngày đăng: 10/10/2023, 15:16

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] S. Saha, "A Comprehensive Guide to Convolutional Neural Networks," 16 12 2018. [Online]. Available: https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 Sách, tạp chí
Tiêu đề: A Comprehensive Guide to Convolutional Neural Networks
Tác giả: S. Saha
Năm: 2018
[5] Gary B. Huang, Manu Ramesh, Tamara Berg, Erik Learned-Miller, "Labeled Faces in the Wild: A Database for Studying Face Recognition inUnconstrained Environments," University of Massachusetts, Amherst, 2007 Sách, tạp chí
Tiêu đề: Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments
Tác giả: Gary B. Huang, Manu Ramesh, Tamara Berg, Erik Learned-Miller
Nhà XB: University of Massachusetts, Amherst
Năm: 2007
[6] Gregory Koch, Richard Zemel, Ruslan Salakhutdinov, "Siamese Neural Networks for One-shot Image Recognition," Department of Computer Science, University of Toronto, Toronto, 2016 Sách, tạp chí
Tiêu đề: Siamese Neural Networks for One-shot Image Recognition
Tác giả: Gregory Koch, Richard Zemel, Ruslan Salakhutdinov
Nhà XB: Department of Computer Science, University of Toronto
Năm: 2016
[9] Keiron O’Shea, Ryan Nash, "An Introduction to Convolutional Neural Networks," Department of Computer Science, Aberystwyth University, Ceredigion, 2015 Sách, tạp chí
Tiêu đề: An Introduction to Convolutional Neural Networks
Tác giả: Keiron O’Shea, Ryan Nash
Nhà XB: Department of Computer Science, Aberystwyth University
Năm: 2015
[10] R. Nixon, Learning PHP, MySQL &amp; JavaScript With jQuery, CSS &amp; HTML5, Sebastopol: O’Reilly Media, Inc, 2014 Sách, tạp chí
Tiêu đề: Learning PHP, MySQL & JavaScript With jQuery, CSS & HTML5
Tác giả: R. Nixon
Nhà XB: O’Reilly Media, Inc
Năm: 2014
[11] Tim Berners-Lee, Daniel W., Connolly, " Hypertext Markup Language - 2.0," MIT Laboratory for Computer Science, 06 05 1995. [Online]. Available:https://datatracker.ietf.org/doc/html/draft-ietf-html-spec-02#section-1.1 Sách, tạp chí
Tiêu đề: Hypertext Markup Language - 2.0
Tác giả: Tim Berners-Lee, Daniel W. Connolly
Nhà XB: MIT Laboratory for Computer Science
Năm: 1995
[1] Shivaank Agarwala, Ravindra Gudi, Paresh Saxena, "Application of Computer Vision Techniques for Segregation of Plastic," 16 11 2020. [Online].Available: https://arxiv.org/pdf/2011.07747.pdf Link
[2] P. Đ. Khánh, "Mô hình Facenet trong face recognition," 12 03 2020. [Online]. Available:https://phamdinhkhanh.github.io/2020/03/12/faceNetAlgorithm.html Link
[4] H. Gupta, "One shot learning with Siamese network in Pytorch," 08 07 2017. [Online]. Available: https://hackernoon.com/one-shot-learning-with-siamese-networks-in-pytorch-8ddaab10340e Link
[7] Nesime Tatbul, Tae Jun Lee, Mejbah Alam, Stan Zdonik, Justin Gottschlich, "Precision and Recall for Time Series," 2019 Khác
[8] Xingping Dong, and Jianbing Shen, "Triplet Loss in Siamese Network for Object," ECCV, 2018 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.2:  Ví dụ về kiến trúc của mạng Siamese [2]. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 2.2 Ví dụ về kiến trúc của mạng Siamese [2] (Trang 19)
Hình 2.3: Quá trình nhân chập trên ảnh màu [4]. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 2.3 Quá trình nhân chập trên ảnh màu [4] (Trang 21)
Hình 2.5: Đưa ra kết quả ngõ ra thông qua Fully - Connected [4]. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 2.5 Đưa ra kết quả ngõ ra thông qua Fully - Connected [4] (Trang 23)
Hình 2.6: Giao diện đăng nhập cơ bản được tạo với Kivy. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 2.6 Giao diện đăng nhập cơ bản được tạo với Kivy (Trang 33)
Hình 3.1:  Sơ đồ khối bao quát toàn hệ thống. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 3.1 Sơ đồ khối bao quát toàn hệ thống (Trang 35)
Hình 3.2: Lưu đồ hoạt động của chức năng đăng ký thành viên phòng tập mới. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 3.2 Lưu đồ hoạt động của chức năng đăng ký thành viên phòng tập mới (Trang 38)
Hình 3.5: Kiến trúc cho việc huấn luyện model. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 3.5 Kiến trúc cho việc huấn luyện model (Trang 40)
Hình 3.9: Lưu đồ hoạt động của chức năng xác minh thành viên phòng tập.  Việc  khởi  động  chức  năng  xác  thực  người  dùng  sẽ  được  thực  hiện  ngay  trên  website với nút nhấn ‘‘Xác thực’’: - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 3.9 Lưu đồ hoạt động của chức năng xác minh thành viên phòng tập. Việc khởi động chức năng xác thực người dùng sẽ được thực hiện ngay trên website với nút nhấn ‘‘Xác thực’’: (Trang 43)
Hình 4.1: Trang chủ của phòng tập. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.1 Trang chủ của phòng tập (Trang 46)
Hình 4.3: Trang kiểm tra hội viên của phòng tập. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.3 Trang kiểm tra hội viên của phòng tập (Trang 47)
Hình 4.6: Trang quản lý thành viên phòng tập của hệ thống. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.6 Trang quản lý thành viên phòng tập của hệ thống (Trang 48)
Hình 4.5: Trang tài khoản của phòng tập. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.5 Trang tài khoản của phòng tập (Trang 48)
Hình 4.7: Thêm hình ảnh và các thông tin thành viên phòng tập mới lên hệ thống. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.7 Thêm hình ảnh và các thông tin thành viên phòng tập mới lên hệ thống (Trang 49)
Hình 4.11: Hình ảnh tất cả người dùng đã đăng ký (trái) và kết quả xác minh - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.11 Hình ảnh tất cả người dùng đã đăng ký (trái) và kết quả xác minh (Trang 51)
Hình 4.13: Các chức năng hỗ trợ kiểm tra hội viên cho người dùng từ xa. - (Đồ án hcmute) thiết kế hệ thống xác thực và quản lý người dùng trong phòng gym
Hình 4.13 Các chức năng hỗ trợ kiểm tra hội viên cho người dùng từ xa (Trang 52)

TỪ KHÓA LIÊN QUAN

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