Đồ án 1: Nhận diện khuôn mặt trên thiết bị di động bằng mô hình thị giác máy tính

MỤC LỤC

Các thách thức

Có nhiều yếu tố có thể ảnh hưởng đến độ chính xác như độ sáng, góc chụp, gương mặt mang lại những biến thể khác nhau, điều này đòi hỏi mô hình nhận diện khuôn mặt phải được đào tạo với nhiều dữ liệu đa dạng. Đa dạng khuôn mặt: Khuôn mặt của con người có rất nhiều đặc điểm đa dạng, từ màu da, hình dạng mắt, mũi, miệng, kết cấu da và nhiều yếu tố khác. Tốc độ xử lý: Nhận diện khuôn mặt là một quá trình đòi hỏi tính toán cao và đòi hỏi xử lý nhanh trên ứng dụng di động hoặc ứng dụng thời gian thực.

Độ phức tạp của mô hình: Các mô hình nhận diện khuôn mặt thường có độ phức tạp cao với số lượng lớn các tham số và kiến thức chuyên môn về machine learning. Xử lý nhiễu: Nhiễu trong hình ảnh như ánh sáng yếu, nhiễu hạt, hoặc các đối tượng che khuất khuôn mặt có thể ảnh hưởng đến độ chính xác của quá trình nhận diện khuôn mặt. Đối mặt với thách thức pháp lý: Sử dụng công nghệ nhận diện khuôn mặt trong ứng dụng cũng đòi hỏi tuân thủ các quy định và quy định về quyền riêng tư, bảo mật dữ liệu và sự đồng ý của người dùng.

Tóm lại, xây dựng ứng dụng nhận diện khuôn mặt đòi hỏi khả năng vượt qua nhiều thách thức liên quan đến độ chính xác, tính bảo mật, đa dạng khuôn mặt, tốc độ xử lý, độ phức tạp của mô hình, khả năng định danh độc lập và tuân thủ pháp lý. Cần có kiến thức chuyên môn về công nghệ, khoa học máy tính và luật pháp để xây dựng một ứng dụng nhận diện khuôn mặt hiệu quả và tuân thủ đúng quy định pháp lý.

Đóng góp của nghiên cứu

Phạm vi của nghiên cứu của đồ án bao gồm việc triển khai, thử nghiệm và đánh giá tính năng phát hiện khuôn mặt thông qua hình ảnh trên thiết bị di động sử dụng Flutter và Face detection API của Google ML Kit. Áp dụng thực tiễn: Kết quả của nghiên cứu này có thể được áp dụng thực tiễn trong nhiều lĩnh vực, chẳng hạn như an ninh, đăng nhập vào ứng dụng, xác thực người dùng, tương tác người dùng trong các ứng dụng di động, phát hiện khuôn mặt trong hình ảnh hoặc video, phõn loại dữ liệu dựa trờn khuụn mặt, theo dừi người dùng, và nhiều ứng dụng khác. Điều này có thể giúp cải thiện tính năng, hiệu suất và tính tiện dụng của các ứng dụng sử dụng nhận diện khuôn mặt trên nền tảng Flutter và Google ML Kit.

Tóm lại, nghiên cứu về ứng dụng nhận diện khuôn mặt sử dụng Flutter và Google ML Kit có thể đóng góp vào phát triển công nghệ, cải thiện trải nghiệm người dùng, tích hợp tính năng với các ứng dụng khác cũng như áp dụng thực tiễn trong nhiều lĩnh vực khác nhau.

CƠ SỞ LÝ THUYẾT 2.1. Flutter

Google ML Kit

Google ML Kit là bộ công cụ máy học mang kiến thức chuyên môn về máy học của Google đến với các nhà phát triển ứng dụng dành cho thiết bị di động trong một gói ứng dụng mạnh mẽ và dễ sử dụng. - Tối ưu hóa cho thiết bị di động: Bộ công cụ được xử lý trên thiết bị. Công nghệ này giúp thiết bị chạy nhanh và mở khóa các trường hợp sử dụng theo thời gian thực.

- Vision APIs: API phân tích hình ảnh và video để gắn nhãn hình ảnh và phát hiện mã vạch, văn bản, khuôn mặt và đối tượng. - Natural language APIs: API xử lý ngôn ngữ tự nhiên để xác định và dịch giữa 58 ngôn ngữ và cung cấp đề xuất trả lời.

XÂY DỰNG ỨNG DỤNG 3.1. Xây dựng hệ thống

Công nghệ sử dụng - Ngôn ngữ lập trình: Dart

    3 Xem thông tin chi tiết khuôn mặt Người dùng xem chi tiết vị trí các đặc điểm trên khuôn mặt. Người dùng xem đường bao quanh những vị trí quan tâm của khuôn mặt. Mô tả tóm tắt Người dùng chọn ảnh từ thư viện để phát hiện khuôn mặt.

    Sự kiện kích hoạt Người dùng bấm nút “Gallery” để vào phần chọn ảnh. Điều kiện tiên quyết (Pre-conditions) Người dùng cho phần mềm quyền truy cập vào bộ nhớ. Điều kiện kết quả (Post-conditions) Người dùng chọn được ảnh và chuyển sang màn hình phát hiện khuôn mặt.

    Người dùng chọn ảnh thành công và hướng đến màn hình phát hiện khuôn mặt. Điều kiện tiên quyết (Pre-conditions) Người dùng cho phần mềm quyền truy cập vào máy ảnh. Điều kiện kết quả (Post-conditions) Người dùng chọn được ảnh và chuyển sang màn hình phát hiện khuôn mặt.

    Người dùng chụp ảnh thành công và hướng đến màn hình phát hiện khuôn mặt. Mô tả tóm tắt Người dùng xem thông tin chi tiết khuôn mặt phát hiện được. Điều kiện tiên quyết (Pre-conditions) Chọn được ảnh và đã phát hiện khuôn mặt.

    Điều kiện kết quả (Post-conditions) Người dùng được chuyển hướng đến phần chi tiết khuôn mặt. Điều kiện tiên quyết (Pre-conditions) Chọn được ảnh và đã phát hiện khuôn mặt. Điều kiện kết quả (Post-conditions) Hình ảnh hiển thị đường bao trên khuôn mặt.

    Bảng 1. Bảng mô tả Use cases
    Bảng 1. Bảng mô tả Use cases

    KẾT QUẢ THỰC NGHIỆM 4.1. Kết quả thực nghiệm

    Thông qua kết quả thực nghiệm, chúng tôi nhận thấy ứng dụng thực hiện khá tốt các chức năng như ban đầu đề ra với độ chính xác tương đối cao. Các trường hợp đặc biệt như không có khuôn mặt nào, hoặc có nhiều khuôn mặt, ứng dụng vẫn cho ra đầu ra đúng với yêu cầu. Tuy nhiên với những ảnh chất lượng thấp hoặc có nhiều khuôn mặt với kích thước nhỏ trong bức ảnh, các chức năng có thể hoạt động không đúng như mong đợi.

    Kèm theo đó do thiết bị di động có kích thước hạn chế, người dùng có thể khó nhìn thấy những đường vẽ thể hiện trên bức ảnh nếu ảnh quá nhỏ. Sử dụng các thước đo như precision, recall, và F1-score để đánh giá độ chính xác của việc nhận dạng khuôn mặt. Điều này có thể đo bằng số khung hình (frames) trên giây (FPS) hoặc thời gian xử lý trung bình cho mỗi hình ảnh.

    Khả năng xử lý ảnh và video thời gian thực: Xác định khả năng của ứng dụng để xử lý video trực tiếp hoặc ảnh thời gian thực mà không gây độ trễ đáng kể. Tính di động: Nếu ứng dụng của bạn được thiết kế để chạy trên các thiết bị di động, hãy đánh giá khả năng tương thích và hiệu suất trên các thiết bị di động khác nhau. Tương tác người dùng: Đánh giá giao diện người dùng của ứng dụng, sự thuận tiện trong việc sử dụng, và khả năng cung cấp phản hồi chính xác khi phát hiện khuôn mặt.

    Bảo mật: Đảm bảo rằng ứng dụng của bạn đáp ứng các yêu cầu bảo mật cơ bản và không có lỗ hổng nghiêm trọng có thể bị lợi dụng. Tiêu chuẩn hoá và tùy chỉnh: Xem xét khả năng đáp ứng các tiêu chuẩn hoá ngành và khả năng tùy chỉnh của ứng dụng để phù hợp với nhu cầu cụ thể của khách hàng. Tương thích với nền tảng và hệ thống khác: Đảm bảo rằng ứng dụng của bạn có thể tích hợp với các hệ thống hoặc nền tảng khác một cách dễ dàng (ví dụ: API của bên thứ ba, hệ thống quản lý cơ sở dữ liệu, v.v.).

    Đảm bảo rằng ứng dụng làm việc hiệu quả và không gây cản trở đối với các ứng dụng khác trên cùng một hệ thống. Hỗ trợ kỹ thuật: Cung cấp thông tin về dịch vụ hỗ trợ kỹ thuật, tài liệu và cách liên hệ khi người dùng gặp vấn đề. Thử nghiệm và kiểm tra: Mô tả quy trình kiểm tra và thử nghiệm mà bạn đã sử dụng để đảm bảo tính ổn định và chất lượng của ứng dụng.