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

Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt

38 254 7

Đ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 đề Xây Dựng Hệ Thống Chấm Công Và Điểm Danh Nhận Diện Bằng Khuôn Mặt
Tác giả Nguyễn Duy Sỹ, Nguyễn Thị Nguyệt Minh
Người hướng dẫn TS Nguyễn Quang Vũ
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Việt - Hàn
Chuyên ngành Khoa Khoa Học Máy Tính
Thể loại báo cáo đồ án
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 38
Dung lượng 4,33 MB

Cấu trúc

  • MỤC LỤC

  • MỤC LỤC HÌNH ẢNH

  • LỜI CẢM ƠN

  • LỜI NÓI ĐẦU

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI

    • 1.1 Giới thiệu về đề tài

    • 1.2 Lý do chọn đề tài

    • 1.3 Mục đích của đề tài

    • 1.4 Vấn đề cần giải quyết

    • 1.5 Đề xuất nội dung thực hiện

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

      • 1.6.1 Xử lý ảnh là gì?

      • 1.6.2 Các quá trình của xử lý ảnh

      • 1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh

    • 1.7 Giới thiệu về python

    • 1.8 Giới thiệu về các thư viện

      • 1.8.1 Tổ chức thư viện OpenCV

      • 1.8.2 Hàm cho một số chức năng cụ thể

  • CHƯƠNG 2. TÌM HIỂU VÀ PHÂN TÍCH CÁC THUẬT TOÁN FACENET TRONG KERAS

    • 2.1 Hệ thống nhận diện khuôn mặt

      • 2.1.1 Các ứng dụng phổ biến

      • 2.1.2 Các loại hệ thống xác thực

      • 2.1.3 Các phương pháp xác thực khuôn mặt

    • 2.2 Các bài toán khác nhau về face

    • 2.3 Thuật toán Facenet

      • 2.3.1 Khái quát thuật toán

      • 2.3.2 Triple loss

      • 2.3.3 Lựa chọn triple image input

      • 2.3.4 Các pretrain model Facenet

      • 2.3.5 Một số bộ dữ liệu public về face

    • 2.4 Tổng quan về Keras

      • 2.4.1 Đặc trưng của Keras

      • 2.4.2 Lợi ích

  • CHƯƠNG 3. TRIỂN KHAI VÀ ĐEMO SẢN PHẨM

    • 3.1 Cài đặt môi trường

      • 3.1.1 Python và Visual studio

    • 3.2 Kết quả thực hiện

    • CHƯƠNG IV. ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

    • 4.1. Đánh giá kết quả đạt được:

    • 4.2. Hướng phát triển đề tài:

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

Nội dung

Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt

TỔNG QUAN VỀ ĐỀ TÀI

Lý do chọn đề tài

Với sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là smartphone hiện đại, lượng thông tin thu được từ hình ảnh ngày càng gia tăng Điều này đã thúc đẩy sự phát triển mạnh mẽ của lĩnh vực xử lý ảnh, ứng dụng rộng rãi trong đời sống xã hội Công nghệ xử lý ảnh không chỉ dừng lại ở việc chỉnh sửa và nâng cao chất lượng hình ảnh, mà còn cho phép giải quyết các bài toán như nhận dạng chữ viết, dấu vân tay và khuôn mặt.

Nhận dạng khuôn mặt (Face Recognition) là một trong những vấn đề được quan tâm hàng đầu trong lĩnh vực xử lý ảnh hiện nay Khuôn mặt không chỉ đóng vai trò quan trọng trong giao tiếp giữa con người mà còn chứa đựng nhiều thông tin giá trị Thông qua khuôn mặt, chúng ta có thể xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc và đặc biệt là mối quan hệ với người đối diện.

Nhận dạng khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đời sống hàng ngày, bao gồm hệ thống giám sát, quản lý ra vào và tìm kiếm thông tin về người nổi tiếng, đặc biệt trong an ninh và bảo mật Mặc dù có nhiều phương pháp nhằm nâng cao hiệu suất nhận dạng, nhưng chúng vẫn gặp phải nhiều thách thức như độ sáng, hướng nghiêng, kích thước ảnh và ảnh hưởng của các tham số môi trường.

Mục đích của đề tài

− Xây dựng một phần mềm ứng dụng nhận diện khuôn mặt.

− Tìm hiểu về một số thư viện như opencv, phần mềm visual studio code.

− Tìm hiểu các phương pháp nhận diện khuôn mặt( Face Detection).

− Tìm hiểu về các phương pháp xử lý ảnh.

Vấn đề cần giải quyết

Hệ thống nhận dạng khuôn mặt là công nghệ tự động xác định hoặc nhận diện một người qua hình ảnh kỹ thuật số hoặc video Quá trình này thực hiện bằng cách so sánh các đặc điểm khuôn mặt đã chọn từ hình ảnh với cơ sở dữ liệu khuôn mặt có sẵn.

Hệ thống này thường được áp dụng trong lĩnh vực an ninh, và có thể so sánh với các phương pháp sinh trắc học khác như nhận dạng vân tay và quét tròng mắt.

Từ việc thu thập và phân tích tài liệu về nhận dạng khuôn mặt, chúng tôi đã tìm hiểu các phương pháp nhận dạng và nghiên cứu các công cụ để xây dựng hệ thống hiệu quả.

1.5 Đề xuất nội dung thực hiện

Hệ thống nhận diện gương mặt đóng vai trò quan trọng trong việc xác định chính xác các đặc điểm trên khuôn mặt Chúng tôi đang nghiên cứu và xây dựng một hệ thống sử dụng công nghệ Deep Learning, với khả năng nhận dạng gương mặt nhanh chóng và chính xác.

Với hệ thống này, chúng em sẽ sử dụng các thư viện được cung cấp bởi PIP trong python và sử dụng Visual Studio Code để lập trình.

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

1.6.1 Xử lý ảnh là gì?

Xử lý ảnh (XLA) là lĩnh vực nghiên cứu trong thị giác máy, tập trung vào việc chuyển đổi ảnh gốc thành ảnh mới với các đặc tính theo yêu cầu người sử dụng Quá trình này bao gồm phân tích, phân lớp đối tượng, cải thiện chất lượng hình ảnh, phân đoạn, tách cạnh và gán nhãn cho các vùng, cũng như biên dịch thông tin hình ảnh từ ảnh.

Xử lý ảnh số là một lĩnh vực quan trọng trong tin học ứng dụng, liên quan đến việc biến đổi và mã hoá các ảnh tự nhiên Khác với xử lý dữ liệu bằng đồ họa, nơi mà các ảnh nhân tạo được xem như cấu trúc dữ liệu, xử lý ảnh số tập trung vào các phương pháp và kỹ thuật nhằm truyền tải thông tin từ ảnh tự nhiên Mục đích chính của xử lý ảnh là cải thiện chất lượng hình ảnh và tối ưu hóa việc truyền tải dữ liệu.

− Biến đổi ảnh làm tăng chất lượng ảnh.

− Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh.

Nhận biết và đánh giá nội dung ảnh là quá trình phân tích hình ảnh thành các phần có ý nghĩa, giúp phân biệt các đối tượng khác nhau Qua đó, chúng ta có thể mô tả cấu trúc của hình ảnh gốc Một số phương pháp nhận dạng cơ bản bao gồm nhận dạng đối tượng trong ảnh, tách cạnh và phân đoạn hình ảnh.

− Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ trong văn bản.

1.6.2 Các quá trình của xử lý ảnh

Hình 1 2 Quá trình xử lý ảnh

Sơ đồ bao gồm các thành phần chính, trong đó phần thu nhận ảnh (Image Acquisition) đóng vai trò quan trọng Ảnh có thể được thu nhận qua camera màu hoặc đen trắng, thường sử dụng camera tương tự với chuẩn CCIR có tần số 1/25, tạo ra 25 dòng cho mỗi ảnh Ngoài ra, còn có loại camera đã số hóa như CCD (Charge Coupled Device), sử dụng photodiode để tạo cường độ sáng tại mỗi điểm ảnh.

Camera thường được sử dụng là loại quét dòng, tạo ra hình ảnh dưới dạng hai chiều Chất lượng của ảnh thu được phụ thuộc vào thiết bị thu hình và điều kiện môi trường như ánh sáng và phong cảnh Tiếp theo là quá trình tiền xử lý ảnh (Image Processing) để cải thiện chất lượng hình ảnh.

Sau khi thu nhận, ảnh có thể gặp phải tình trạng nhiễu và độ tương phản thấp, do đó cần sử dụng bộ tiền xử lý để cải thiện chất lượng Bộ tiền xử lý có chức năng chính là lọc nhiễu và tăng cường độ tương phản, giúp làm cho ảnh trở nên rõ nét và chi tiết hơn Một bước quan trọng tiếp theo là phân đoạn (segmentation) hay phân vùng ảnh.

Phân vùng ảnh là quá trình tách một ảnh đầu vào thành các vùng thành phần nhằm phục vụ cho phân tích và nhận dạng ảnh, ví dụ như nhận dạng chữ hoặc mã vạch trên phong bì thư để phân loại bưu phẩm Công đoạn này yêu cầu chia tách các câu, chữ, và số thành các đơn vị riêng biệt, và đây là phần phức tạp nhất trong xử lý ảnh, dễ dẫn đến lỗi và ảnh hưởng đến độ chính xác Kết quả nhận dạng ảnh phụ thuộc nhiều vào bước này Sau khi phân đoạn, ảnh đầu ra sẽ chứa các điểm ảnh và mã liên kết với các vùng lân cận, cần được biến đổi thành dạng thích hợp cho xử lý tiếp theo Việc chọn các tính chất để thể hiện ảnh, gọi là trích chọn đặc trưng, rất quan trọng trong việc phân biệt các đối tượng trong ảnh nhận được.

Nhận dạng ảnh là quá trình xác định và phân tích hình ảnh bằng cách so sánh với mẫu chuẩn đã được học trước đó Nội suy trong nhận dạng ảnh là việc phán đoán dựa trên thông tin đã được nhận diện Theo lý thuyết về nhận dạng, các mô hình toán học của ảnh được chia thành hai loại cơ bản, phản ánh các phương pháp phân loại khác nhau trong lĩnh vực này.

− Nhận dạng theo tham số.

− Nhận dạng theo cấu trúc.

Hiện nay, nhiều phương pháp nhận dạng phổ biến đang được ứng dụng trong khoa học và công nghệ, bao gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch và nhận dạng khuôn mặt Các công nghệ này đóng vai trò quan trọng trong việc phát triển cơ sở tri thức (Knowledge Base).

Ảnh là một đối tượng phức tạp với nhiều yếu tố như đường nét, độ sáng tối, và dung lượng điểm ảnh, điều này dẫn đến sự xuất hiện của nhiễu Trong quá trình xử lý và phân tích ảnh, việc đơn giản hóa các phương pháp toán học là cần thiết để thuận tiện cho việc xử lý Đồng thời, mục tiêu là mô phỏng quy trình tiếp nhận và xử lý ảnh của con người Hiện nay, nhiều bước trong quy trình xử lý đã áp dụng các phương pháp trí tuệ nhân tạo, từ đó phát huy các cơ sở tri thức trong lĩnh vực này.

1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh a) Điểm ảnh (Picture Element)

Ảnh tự nhiên là hình ảnh liên tục về không gian và độ sáng, nhưng để xử lý trên máy tính, ảnh cần được số hoá Quá trình số hoá biến đổi ảnh liên tục thành một tập hợp các điểm ảnh (Pixel) tại các tọa độ (x, y) phù hợp với vị trí và độ sáng Khoảng cách giữa các pixel được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng, tạo cảm giác liên tục về không gian và mức xám hoặc màu sắc Mỗi pixel là một phần tử của ảnh số, có độ xám hoặc màu nhất định, giúp tái tạo gần như chính xác ảnh thật.

− Mức xám của điểm ảnh: là cường độ sáng của nó được gán bằng giá trị số của nó tại điểm đó

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

1.6.1 Xử lý ảnh là gì?

Xử lý ảnh (XLA) là một lĩnh vực quan trọng trong thị giác máy, bao gồm quá trình chuyển đổi hình ảnh ban đầu thành hình ảnh mới theo yêu cầu của người dùng Quá trình này có thể bao gồm phân tích, phân lớp đối tượng, nâng cao chất lượng hình ảnh, phân đoạn, tách cạnh và gán nhãn cho các vùng, cũng như biên dịch thông tin hình ảnh.

Xử lý ảnh số là một lĩnh vực quan trọng trong tin học ứng dụng, tương tự như xử lý dữ liệu bằng đồ họa Trong khi xử lý dữ liệu bằng đồ họa tập trung vào các ảnh nhân tạo được tạo ra bởi chương trình, thì xử lý ảnh số liên quan đến các phương pháp và kỹ thuật biến đổi để truyền tải hoặc mã hóa các ảnh tự nhiên Mục đích chính của xử lý ảnh là nâng cao chất lượng hình ảnh và tối ưu hóa thông tin được truyền tải.

− Biến đổi ảnh làm tăng chất lượng ảnh.

− Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh.

Nhận biết và đánh giá nội dung ảnh là quá trình phân tích hình ảnh thành các phần có ý nghĩa, giúp phân biệt giữa các đối tượng khác nhau Qua đó, chúng ta có thể mô tả cấu trúc của hình ảnh ban đầu Một số phương pháp nhận dạng cơ bản bao gồm nhận dạng đối tượng, tách cạnh và phân đoạn hình ảnh.

− Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ trong văn bản.

1.6.2 Các quá trình của xử lý ảnh

Hình 1 2 Quá trình xử lý ảnh

Sơ đồ này bao gồm các thành phần chính, trong đó phần thu nhận ảnh (Image Acquisition) đóng vai trò quan trọng Ảnh có thể được thu nhận thông qua camera màu hoặc đen trắng Thông thường, ảnh được thu từ camera tương tự, như camera ống chuẩn CCIR với tần số 1/25, cho ra 25 dòng ảnh mỗi giây Ngoài ra, cũng có loại camera đã số hóa, chẳng hạn như CCD (Charge Coupled Device), sử dụng photodiode để tạo ra cường độ sáng tại mỗi điểm ảnh.

Camera thường sử dụng là loại quét dòng, cho ra ảnh hai chiều Chất lượng ảnh thu nhận phụ thuộc vào thiết bị và điều kiện môi trường như ánh sáng và phong cảnh Tiến trình tiền xử lý ảnh (Image Processing) là bước quan trọng để cải thiện chất lượng hình ảnh.

Sau khi thu nhận, hình ảnh có thể gặp hiện tượng nhiễu và độ tương phản thấp, do đó cần sử dụng bộ tiền xử lý để cải thiện chất lượng Bộ tiền xử lý có chức năng chính là lọc nhiễu và tăng cường độ tương phản, giúp hình ảnh trở nên rõ ràng và sắc nét hơn Tiếp theo là quá trình phân đoạn (segmentation) hay phân vùng ảnh.

Phân vùng ảnh là quá trình tách một ảnh đầu vào thành các vùng thành phần, giúp phân tích và nhận dạng ảnh, như trong việc nhận dạng chữ hoặc mã vạch trên phong bì thư để phân loại bưu phẩm Quá trình này yêu cầu chia nhỏ các câu, chữ, và số liệu để nhận diện chính xác, nhưng cũng là phần phức tạp nhất trong xử lý ảnh, dễ dẫn đến lỗi và giảm độ chính xác Kết quả nhận dạng ảnh phụ thuộc nhiều vào bước này Đầu ra sau phân đoạn chứa các điểm ảnh cùng mã liên kết với các vùng lân cận, và việc chuyển đổi số liệu này thành dạng phù hợp là cần thiết cho xử lý tiếp theo Trích chọn đặc trưng là quá trình lựa chọn các tính chất để thể hiện ảnh, giúp phân biệt các đối tượng khác nhau trong ảnh nhận được.

Nhận dạng ảnh là quá trình xác định và phân loại hình ảnh bằng cách so sánh với mẫu chuẩn đã được học trước đó Quá trình này bao gồm nội suy, cho phép phán đoán dựa trên kết quả nhận dạng Theo lý thuyết nhận dạng, các mô hình toán học về ảnh được chia thành hai loại cơ bản trong lĩnh vực nhận dạng ảnh.

− Nhận dạng theo tham số.

− Nhận dạng theo cấu trúc.

Hiện nay, nhiều phương pháp nhận dạng phổ biến đang được ứng dụng trong khoa học và công nghệ, bao gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản, nhận dạng vân tay, nhận dạng mã vạch và nhận dạng khuôn mặt Những công nghệ này đóng vai trò quan trọng trong việc phát triển các hệ thống tự động và nâng cao tính bảo mật.

Ảnh là một đối tượng phức tạp với nhiều yếu tố như đường nét, độ sáng tối và dung lượng điểm ảnh, dẫn đến sự xuất hiện của nhiễu Trong quá trình xử lý và phân tích ảnh, việc đơn giản hóa các phương pháp toán học là cần thiết để tiện lợi hơn cho người dùng Đồng thời, nhiều bước xử lý hiện nay đã được cải tiến để bắt chước quy trình tiếp nhận và xử lý ảnh của con người, nhờ đó phát huy được các cơ sở tri thức trong lĩnh vực này.

1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh a) Điểm ảnh (Picture Element)

Ảnh tự nhiên là hình ảnh liên tục về không gian và độ sáng, nhưng để xử lý bằng máy tính, ảnh cần được số hóa Số hóa ảnh là quá trình biến đổi gần đúng một ảnh liên tục thành tập hợp các điểm ảnh (Pixel) tương ứng với vị trí và độ sáng của ảnh thật Khoảng cách giữa các điểm ảnh được thiết lập để mắt người không phân biệt được ranh giới giữa chúng, với mỗi pixel được xác định bởi cặp tọa độ (x, y) Điểm ảnh là phần tử của ảnh số, có độ xám hoặc màu nhất định, và kích thước cũng như khoảng cách giữa các pixel được lựa chọn để tạo cảm giác liên tục về không gian và màu sắc gần giống như ảnh thật Mỗi phần tử trong ma trận ảnh được gọi là phần tử ảnh.

− Mức xám của điểm ảnh: là cường độ sáng của nó được gán bằng giá trị số của nó tại điểm đó

Điểm ảnh (pixel) là đơn vị cơ bản của ảnh số, được xác định tại tọa độ (x, y) với độ xám hoặc màu cụ thể Kích thước và khoảng cách giữa các điểm ảnh được lựa chọn hợp lý để mắt người cảm nhận được sự liên tục về không gian và màu sắc, giúp ảnh số trông giống như ảnh thật Mỗi phần tử trong ma trận ảnh được gọi là một phần tử ảnh.

Độ phân giải của ảnh là mật độ điểm ảnh trong một bức ảnh số, được xác định bởi khoảng cách giữa các điểm ảnh Khoảng cách này cần được chọn sao cho mắt người có thể nhận thấy sự liên tục của hình ảnh Việc lựa chọn khoảng cách phù hợp tạo ra mật độ phân bổ điểm ảnh, hay còn gọi là độ phân giải, được phân bố theo hai trục x và y trong không gian hai chiều.

Các thang giá trị mức sáng thông thường bao gồm 16, 32, 64, 128 và 256, trong đó mức 256 là phổ biến nhất Lý do cho điều này là do trong kỹ thuật máy tính, 1 byte (8 bit) được sử dụng để biểu diễn mức xám, cho phép tạo ra 256 mức khác nhau, từ 0 đến 255.

− Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau

Ảnh nhị phân là loại hình ảnh chỉ có hai mức độ màu sắc, đen và trắng, với mỗi điểm ảnh được mô tả bằng 1 bit, cho phép phân biệt 21 mức khác nhau Điều này có nghĩa là mỗi pixel trong ảnh nhị phân chỉ có thể có giá trị là 0 (đen) hoặc 1 (trắng).

Giới thiệu về các thư viện

2.1 Hệ thống nhận diện khuôn mặt

2.1.1 Các ứng dụng phổ biến

Vào năm 2012, facebook bắt đầu có chức năng nhận diện khuôn mặt

Vào năm 2018, Apple đã giới thiệu chức năng nhận diện khuôn mặt trên dòng sản phẩm iPhone X, đánh dấu sự khởi đầu của một xu hướng mới trong ngành công nghệ smartphone Từ đó, nhiều mẫu điện thoại thông minh khác cũng nhanh chóng áp dụng công nghệ nhận diện khuôn mặt.

Một số ngân hàng ở Autralia bắt đầu ứng dụng xác thực khuôn mặt trong các giao dịch ATM.

Tại Trung Quốc, hệ thống nhận diện khuôn mặt được áp dụng rộng rãi trên toàn quốc, không chỉ giúp đánh giá điểm số công dân mà còn hỗ trợ trong việc xác minh và truy bắt nhiều tội phạm đang lẩn trốn.

Còn tại cơ quan tôi, hệ thống nhận diện khuôn mặt được nghiên cứu in-house áp dụng để chấm công cho nhân viên.

Tôi nghĩ rằng nhận diện khuôn mặt có tính ứng dụng cao Rất nhiều công ty, doanh nghiệp và quốc gia đang cần.

2.1.2 Các loại hệ thống xác thực

Hệ thống xác thực thường dựa vào thông tin sinh trắc để nhận diện cá nhân, với những đặc điểm như vân tay, ADN, vân mắt, khuôn mặt, hình dáng và dáng đi, đều là những thông tin độc nhất của mỗi người Có nhiều phương pháp xác thực khác nhau tùy thuộc vào loại thông tin sinh trắc được sử dụng, trong đó xác thực bằng vân tay là phương pháp phổ biến nhất tại Việt Nam.

Trước đây, khi công nghệ thị giác máy tính chưa phát triển, hệ thống xác thực bằng vân tay và vân mắt rất phổ biến Tuy nhiên, trong vài năm gần đây, xác thực bằng khuôn mặt đã trở nên phổ biến hơn Về độ chính xác, các hệ thống xác thực vân tay và vân mắt được coi là đáng tin cậy hơn so với nhận diện khuôn mặt, vì dữ liệu vân tay và vân mắt không thay đổi, trong khi khuôn mặt của con người có thể thay đổi theo thời gian và chịu sự co dãn.

Hệ thống nhận diện khuôn mặt ngày càng được ưa chuộng nhờ vào khả năng xác thực nhanh chóng và tiện lợi, cho phép xác thực từ xa mà không cần tiếp xúc trực tiếp như với vân tay hay vân mắt Người dùng có thể nhìn thấy người khác, nhưng để chạm vào họ, cần phải xin phép trước.

2.1.3 Các phương pháp xác thực khuôn mặt a Phương pháp truyền thống

Các phương pháp truyền thống trong xác thực khuôn mặt bao gồm việc trích xuất các điểm đặc trưng (landmark) trên khuôn mặt Những điểm này giống như một bản đồ, xác định vị trí cố định của các bộ phận như mắt, mũi, miệng và lông mày.

TÌM HIỂU VÀ PHÂN TÍCH CÁC THUẬT TOÁN FACENET

Các bài toán khác nhau về face

Có nhiều loại bài toán liên quan đến dữ liệu khuôn mặt, trong đó có bốn bài toán phổ biến nhất được xác định dựa trên nhu cầu thực tế trong ứng dụng.

Nhận diện khuôn mặt là một bài toán match one-many, giúp xác định danh tính của một người thông qua ảnh khuôn mặt Tác vụ này trả lời câu hỏi "người này là ai?" bằng cách so sánh hình ảnh đầu vào với cơ sở dữ liệu và xuất ra tên người tương ứng Công nghệ này thường được ứng dụng trong các hệ thống chấm công, giám sát an ninh công cộng và camera thông minh tại các đô thị.

Xác thực khuôn mặt là quá trình so sánh hai hình ảnh để xác định xem chúng có thuộc về cùng một người hay không Kết quả của quá trình này sẽ là "có" hoặc "không" Công nghệ này thường được áp dụng trong các hệ thống bảo mật, chẳng hạn như tính năng xác thực khuôn mặt trên điện thoại di động.

Do có mối quan hệ khá gần nên face recognition là tên gọi chung cho cả hai thuật toán face identification và face verification.

Hình 2 2 Phương pháp nhận diện 3D

Tìm kiếm khuôn mặt đại diện (face clustering) là quá trình xác định khuôn mặt đặc trưng nhất trên thế giới bằng cách tính toán trung bình của các ảnh khuôn mặt để tạo ra hình ảnh centroid Sau đó, ta tính độ tương đồng giữa hình ảnh centroid và tất cả các khuôn mặt còn lại để xác định khuôn mặt có độ tương đồng cao nhất Phương pháp này cũng cho phép tìm ra khuôn mặt đặc trưng nhất cho nam, nữ và các quốc gia khác nhau.

Tìm kiếm khuôn mặt tương đương (face similarity) là một tính năng thú vị mà nhiều người đã trải nghiệm qua các ứng dụng trên Facebook, ví dụ như "Bạn giống diễn viên điện ảnh nào nhất." Thuật toán hoạt động đơn giản bằng cách so sánh ảnh mà bạn tải lên với những bức ảnh của các diễn viên có sẵn, và chọn ra khuôn mặt tương đồng nhất Tuy nhiên, đừng quá tin tưởng vào kết quả này, vì có thể chỉ là một sự trùng hợp ngẫu nhiên giữa hai số phận khác nhau.

Thuật toán Facenet

Facenet là một loại mạng Siam, được thiết kế để biểu diễn hình ảnh trong không gian Euclidean với chiều thường là 128 Mục tiêu của Facenet là tối ưu hóa khoảng cách giữa các véc tơ embedding, từ đó tăng cường mức độ tương đồng giữa chúng.

Hầu hết các thuật toán nhận diện khuôn mặt trước Facenet đều sử dụng một véc tơ embedding để biểu diễn khuôn mặt, thông qua một lớp bottleneck nhằm giảm chiều dữ liệu.

Các thuật toán này gặp phải hạn chế lớn với số lượng chiều embedding thường từ 1000 trở lên, điều này ảnh hưởng đến tốc độ xử lý Để cải thiện tốc độ tính toán, chúng ta thường phải áp dụng thêm thuật toán PCA nhằm giảm chiều dữ liệu.

Hàm loss function chỉ đo lường khoảng cách giữa hai bức ảnh, cho phép mô hình học được hai khả năng: sự giống nhau nếu chúng thuộc cùng một lớp và sự khác nhau nếu chúng thuộc các lớp khác nhau.

Hình 2 3 Bài toán tìm kiếm khuôn mặt đại diện ( face clustering) không học được cùng lúc sự giống nhau và khác nhau trên cùng một lượt huấn luyện.

Facenet đã giải quyết cả 2 vấn đề trên bằng các hiệu chỉnh nhỏ nhưng mang lại hiệu quả lớn:

Mạng cơ sở sử dụng mạng nơ-ron tích chập (convolutional neural network) để giảm chiều dữ liệu xuống còn 128 chiều, giúp tăng tốc độ suy diễn và dự báo, đồng thời vẫn đảm bảo độ chính xác cao.

Hàm triplot loss là một loss function hiệu quả, giúp học đồng thời sự tương đồng giữa hai bức ảnh trong cùng nhóm và phân biệt các bức ảnh khác nhóm Nhờ vào khả năng này, nó mang lại hiệu suất vượt trội so với các phương pháp trước đây.

Trong FaceNet, quá trình mã hóa bằng mạng nơ-ron tích chập (CNN) chuyển đổi bức ảnh thành véc tơ 128 chiều Những véc tơ này sau đó được đưa vào hàm loss function để đánh giá khoảng cách giữa chúng Để áp dụng triple loss, cần chọn ra 3 bức ảnh, trong đó một bức ảnh được gọi là anchor và được cố định Hai bức ảnh còn lại sẽ được lựa chọn sao cho một là negative (thuộc về người khác với anchor) và một là positive.

(cùng một người với anchor) Hình 2 4 Triple loss

Kí hiệu ảnh Anchor, Positive, Negative lần lược là A, P, N

Mục tiêu của hàm loss function là giảm thiểu khoảng cách giữa hai ảnh khi chúng là negative và tăng cường khoảng cách khi chúng là positive Do đó, việc lựa chọn các bộ ba ảnh phù hợp là rất quan trọng.

Ảnh Anchor và Positive có sự khác biệt rõ rệt, yêu cầu người dùng lựa chọn những bức ảnh có khoảng cách lớn giữa chúng Việc này tương tự như việc so sánh hình ảnh của bản thân khi còn nhỏ và hiện tại, giúp thuật toán học tập trở nên khó khăn hơn Tuy nhiên, nếu thuật toán có khả năng nhận diện tốt, nó sẽ trở nên thông minh hơn trong quá trình học hỏi.

Ảnh Anchor và Negative cần được chọn sao cho khoảng cách giữa chúng là nhỏ nhất Điều này tương tự như cách mà thuật toán nhận diện sự tương đồng giữa bạn và một người anh em.

Hàm mất mát Triplot sử dụng ba bức ảnh làm đầu vào và luôn mong đợi rằng khoảng cách giữa ảnh A và ảnh PB nhỏ hơn khoảng cách giữa ảnh A và ảnh N, tức là d(A,PB) < d(A,N) Để tăng cường sự khác biệt giữa hai bên của bất đẳng thức này, chúng ta sẽ thêm vào bên trái một hệ số không âm rất nhỏ, biến đổi bất đẳng thức thành một dạng mới.

Như vậy hàm loss function sẽ là:

Trong đó n là số lượng các bộ 3 hình ảnh được đưa vào huấn luyện.

Việc nhận diện chính xác ảnh Negative và Positive, dù cùng cặp hay khác cặp với Anchor, không gây ảnh hưởng tiêu cực Mục tiêu chính là giảm thiểu tối đa các trường hợp mô hình nhận diện sai ảnh Negative thành Positive Để loại bỏ tác động của các trường hợp nhận diện đúng lên hàm loss function, chúng ta sẽ điều chỉnh giá trị đóng góp của chúng về 0.

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

Khi áp dụng Triple loss vào các mô hình mạng nơ-ron tích chập (CNN), chúng ta có thể tạo ra các biểu diễn véc tơ tối ưu cho từng bức ảnh Những biểu diễn này giúp phân biệt hiệu quả giữa các ảnh tiêu cực tương tự ảnh tích cực, đồng thời làm cho các bức ảnh cùng một nhãn gần nhau hơn trong không gian Euclidean.

Khi huấn luyện mô hình Siamese Network với hàm triplot, điều quan trọng là phải xác định cặp ảnh (A, P) thuộc về cùng một người Ảnh (N) sẽ được chọn ngẫu nhiên từ các ảnh của những người khác Vì vậy, cần thu thập ít nhất 2 bức ảnh cho mỗi người để chuẩn bị dữ liệu huấn luyện hiệu quả.

2.3.3 Lựa chọn triple image input

Nếu lựa chọn triple input một cách ngẫu nhiên có thể ảnh khiến cho bất đẳng thức

Để cải thiện khả năng phân biệt giữa các khuôn mặt trong mô hình, việc lựa chọn các bộ ba khó học (hard triplets) là cần thiết Chúng ta cần tìm bộ ba (A, N, P) sao cho khoảng cách giữa Anchor A và Positive P là lớn nhất, trong khi khoảng cách giữa Anchor A và Negative N là nhỏ nhất Điều này giúp đảm bảo rằng các ảnh ngẫu nhiên có sự khác biệt rõ rệt, từ đó nâng cao hiệu quả của việc học và giảm thiểu ảnh hưởng đến giá trị của hàm mất mát.

Hard Positive: Bức ảnh Positive có khoảng cách xa nhất với Anchor tương ứng với nghiệm:

Hard Negative: Bức ảnh Negative có khoảng cách gần nhất với Anchor tương ứng với nghiệm:

Với i,j là nhãn của người trong ảnh.

Tổng quan về Keras

Keras là một thư viện học sâu chạy trên các nền tảng mã nguồn mở như TensorFlow, Theano và CNTK Trong đó, TensorFlow là thư viện toán học nổi tiếng, linh hoạt và hỗ trợ tính toán phân tán, trong khi Theano là thư viện Python chuyên cho các tác vụ tính toán số nhanh CNTK, phát triển bởi Microsoft, hỗ trợ nhiều ngôn ngữ lập trình khác nhau Mặc dù Theano và TensorFlow mạnh mẽ, nhưng chúng có thể khó hiểu khi xây dựng mạng nơ-ron Keras, với cấu trúc tối thiểu, mang đến cách tiếp cận dễ dàng để xây dựng các mô hình học sâu, giúp xác định nhanh chóng các mô hình và trở thành lựa chọn tối ưu cho các ứng dụng học sâu.

Keras sử dụng nhiều kỹ thuật tối ưu hóa để cải thiện hiệu quả và tính dễ sử dụng của API mạng thần kinh cấp cao Nó cung cấp nhiều tính năng hỗ trợ, giúp người dùng dễ dàng triển khai và phát triển các mô hình học sâu.

• API nhất quán, đơn giản và có thể mở rộng.

• Cấu trúc tối thiểu - dễ dàng đạt được kết quả mà không cần rườm rà.

• Hỗ trợ nhiều nền tảng và backend.

• Thân thiện với người dùng chạy trên cả CPU và GPU.

• Khả năng mở rộng tính toán cao.

Keras năng động , mạnh mẽ và có những ưu điểm sau

• Cộng động lớn hỗ trợ

• Dễ dàng để kiểm tra.

• Mạng nơ-ron Keras được viết bằng Python giúp mọi thứ đơn giản hơn.

• Keras hỗ trợ cả mạng convolution và recurrent.

• Mô hình học sâu là các thành phần rời rạc, do đó, bạn có thể kết hợp thành nhiều cách.

TRIỂN KHAI VÀ ĐEMO SẢN PHẨM

Ngày đăng: 30/10/2021, 13:13

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Deep Learning Face Representation by Joint Identification-Verification - Yi Sun, Xiaogang Wang, Xiaoou Tang Khác
[2] Face Recognition Based on Improved FaceNet Model - Qiuyue Wei etc [3] FaceNet - Florian Schroff, Dmitry Kalenichenko, James Philbin Google Inc Khác
[4] Introduction to FaceNet: A Unified Embedding for Face Recognition and Clustering - Dhairya Kumar Khác
[5] DeepFace: Closing the Gap to Human-Level Performance in Face Verification - Yaniv Taigman .etc Khác
[6] FaceNet: A Unified Embedding for Face Recognition and Clustering - Florian Schroff .etc Khác

HÌNH ẢNH LIÊN QUAN

Hình 1. 1 Nhận diện các đặc điểm trên khuôn mặt - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 1. 1 Nhận diện các đặc điểm trên khuôn mặt (Trang 9)
Hình 1. 2 Quá trình xử lý ảnh - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 1. 2 Quá trình xử lý ảnh (Trang 10)
Hình 1. 3 Các thành phần cơ bản của hệ thông xử lý ảnh - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 1. 3 Các thành phần cơ bản của hệ thông xử lý ảnh (Trang 13)
Hình 2. 1 Phương pháp nhận diện truyền thống - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 2. 1 Phương pháp nhận diện truyền thống (Trang 21)
Hình 2. 2 Phương pháp nhận diện 3D - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 2. 2 Phương pháp nhận diện 3D (Trang 22)
Hình 2. 3 Bài toán tìm kiếm khuôn mặt đại diện ( face clustering) - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 2. 3 Bài toán tìm kiếm khuôn mặt đại diện ( face clustering) (Trang 23)
Hình 3. 1 Cài đặt python - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 1 Cài đặt python (Trang 29)
Hình 3. 2 Cài đặt Visual Studio Code - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 2 Cài đặt Visual Studio Code (Trang 29)
Hình 3. 3 Cài đặt development with C++ - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 3 Cài đặt development with C++ (Trang 30)
Hình 3. 4 Xác nhận điểm danh - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 4 Xác nhận điểm danh (Trang 30)
Hình 3. 5 Lấy mẫu nhận diện - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 5 Lấy mẫu nhận diện (Trang 33)
Hình 3. 8 Danh sách User - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 8 Danh sách User (Trang 34)
Hình 3. 7 Danh sách được điểm danh - Báo Cáo xây dựng hệ thống chấm công nhận diện bằng khuôn mặt
Hình 3. 7 Danh sách được điểm danh (Trang 34)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w