đồ án 1 thị giác máy tính nhận diện khuôn mặt sử dụng mô hình trên thiết bị di động

35 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 thị giác máy tính nhận diện khuôn mặt sử dụng mô hình trên thiết bị di động

Đ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

Có nhiều động lực khác nhau có thể thúc đẩy các nhà nghiên cứu và các chuyên gia công nghệ thông tin nghiên cứu về nhận diện khuôn mặt, bao gồm: Ứng dụng thực tiễn: Nhận diện khuôn mặt c

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

Hồ Đình Mạnh Vũ Hoàng

ĐỒ ÁN 1

THỊ GIÁC MÁY TÍNH - NHẬN DIỆN KHUÔN MẶT SỬ DỤNG MÔ HÌNH TRÊN THIẾT BỊ DI ĐỘNG

TP HỒ CHÍ MINH, 2023

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

Hồ Đình Mạnh – 21522327 Vũ Hoàng – 21520243

Trang 3

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

Trang 4

3.2.2 Màn hình phát hiện khuôn mặt 18CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 20

Trang 5

DANH MỤC HÌNH

Hình 1 Đầu vào và đầu ra của bài toán nhận diện khuôn mặt 5

Hình 4 Màn hình phát hiện khuôn mặt 16Hình 5 Đầu vào và đầu ra của ứng dụng 18Hình 6 Chi tiết của từng khuôn mặt được thể hiện 19Hình 7 Đường viền tại các vị trí quan tâm trên khuôn mặt 20

Trang 6

DANH MỤC BẢNG

Bảng 1 Bảng mô tả Use cases 13Bảng 2 Đặc tả chức năng chọn ảnh từ thư viện 13Bảng 3 Đặc tả chức năng chọn ảnh từ thư viện 14Bảng 4 Đặc tả chức năng chọn ảnh 14Bảng 5 Đặc tả chức năng chọn ảnh 15Bảng 6 Mô tả màn hình chính 16Bảng 7 Mô tả màn hình phát hiện khuôn mặt 17

Trang 8

2

TÓM TẮT

Nhận diện khuôn mặt là một trong những lĩnh vực quan trọng của thị giác máy tính, nhằm xác minh, định danh người dùng dựa vào hình ảnh hay video Nhận diện khuôn mặt được ứng dụng trong nhiều lĩnh vực như hệ thống an ninh, hệ thống sinh trắc, điểm danh, chấm công, v.v Nhiều kỹ thuật nhận diện khuôn mặt đã được nghiên cứu phát triển, trong đó các kỹ thuật học sâu cho độ chính xác vượt trội Hiện tại nhóm xây dựng ứng dụng dựa trên Google ML Kit's face detection API nhằm mục đích xác định khuôn mặt và các thông tin liên quan đến khuôn mặt được thông qua biểu hiện khuôn mặt người sử dụng

Trang 9

3

CHƯƠNG 1: MỞ ĐẦU 1.1 Động lực nghiên cứu

Nhận diện khuôn mặt là một vấn đề quan trọng trong lĩnh vực công nghệ thông tin và xử lý ảnh Có nhiều động lực khác nhau có thể thúc đẩy các nhà nghiên cứu và các chuyên gia công nghệ thông tin nghiên cứu về nhận diện khuôn mặt, bao gồm:

Ứng dụng thực tiễn: Nhận diện khuôn mặt có thể được áp dụng trong nhiều lĩnh vực thực tiễn, chẳng hạn như an ninh, giao thông, y tế, công nghệ thông tin, du lịch, công nghiệp, thương mại điện tử, truyền thông xã hội, và nhiều lĩnh vực khác Công nghệ nhận diện khuôn mặt có thể giúp tự động nhận dạng, theo dõi, phân tích hoặc đánh giá khuôn mặt trong các ứng dụng thực tế, đóng vai trò quan trọng trong cải thiện hiệu quả và tiết kiệm thời gian lao động trong các ngành công nghiệp và dịch vụ

Nhu cầu về bảo mật: Nhận diện khuôn mặt là một công nghệ quan trọng trong các ứng dụng bảo mật, chẳng hạn như đăng nhập bằng khuôn mặt, xác minh người dùng, hoặc kiểm soát truy cập Công nghệ này giúp đảm bảo tính bảo mật và an toàn của các hệ thống và dịch vụ trực tuyến, từ đó góp phần giúp người dùng duy trì quyền riêng tư và bảo vệ thông tin cá nhân

Công nghệ tiên tiến: Nhận diện khuôn mặt là một lĩnh vực công nghệ tiên tiến và liên tục phát triển, với nhiều phương pháp và công nghệ mới được giới thiệu liên tục Sự phát triển của công nghệ này có thể hứa hẹn các ứng dụng tiềm năng trong tương lai, từ việc cải thiện tính năng và hiệu suất của các hệ thống nhận diện khuôn mặt hiện có, đến việc phát triển các ứng dụng mới mà trước đây chưa có thể thực hiện

Nghiên cứu và phát triển công nghệ: Nhận diện khuôn mặt cũng là một lĩnh vực nghiên cứu và phát triển công nghệ hấp dẫn cho các nhà khoa học, kỹ sư và nhà phát triển phần mềm Nghiên cứu về nhận diện khuôn mặt giúp khai thác các công nghệ mới, phát triển các phương pháp tiên tiến và nâng cao hiệu suất của các hệ thống nhận

Trang 10

4

diện khuôn mặt Ngoài ra, việc phát triển công nghệ nhận diện khuôn mặt còn đóng vai trò quan trọng trong việc đưa ra các giải pháp đột phá và đóng góp vào tiến bộ của ngành công nghệ thông tin và trí tuệ nhân tạo

Tóm lại, động lực nghiên cứu về nhận diện khuôn mặt là rất đa dạng, từ ứng dụng thực tiễn, nhu cầu bảo mật, công nghệ tiên tiến đến nghiên cứu và phát triển công nghệ Sự phát triển của công nghệ nhận diện khuôn mặt hứa hẹn mang lại nhiều lợi ích cho xã hội và có tiềm năng ứng dụng trong nhiều lĩnh vực khác nhau

1.2 Phát biểu bài toán

Nhận diện khuôn mặt (face detection) là công nghệ sử dụng học máy cho mục đích tìm và nhận diện khuôn mặt qua ảnh kỹ thuật số Nó có thể coi như một trường hợp cụ thể cho bài toán nhận diện lớp đối tượng (object-class detection)

Đối với nhận diện đối tượng, bài toán đặt ra là tìm vị trí và kích thước của tất cả các đối tượng trong ảnh thuộc về một lớp đối tượng cho trước Nhận diện khuôn mặt thì đơn giản hơn, nó chỉ trả lời cho 2 câu hỏi:

1 Có khuôn mặt người trong ảnh hoặc video không? 2 Vị trí khuôn mặt đó ở đâu?

Vậy đầu vào của bài toán là một bức ảnh hoặc một video, đầu ra là bức ảnh và video đó với các khung (bounding box) thể hiện vị trí của các khuôn mặt trên bức ảnh hoặc video

Trang 11

5

Hình 1 Đầu vào và đầu ra của bài toán nhận diện khuôn mặt

Ở trong nội dung đồ án này, chúng tôi tập trung vào việc nhận diện khuôn mặt trên ảnh, và mở rộng ra là phát hiện đặc điểm của khuôn mặt trên bức ảnh

1.3 Các thách thức

Độ chính xác: Một trong những thách thức lớn nhất là đạt được độ chính xác

cao trong việc nhận diện khuôn mặt 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

Bảo mật và quyền riêng tư: Nhận diện khuôn mặt liên quan đến việc thu thập

và xử lý dữ liệu nhạy cảm, đặc biệt là dữ liệu cá nhân Bảo vệ quyền riêng tư của người dùng và đảm bảo tính bảo mật của dữ liệu là một thách thức lớn trong xây dựng ứng dụng nhận diện khuôn mặt

Đ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 Việc xây dựng một mô hình nhận diện khuôn mặt đủ độc lập với các biến thể này là một thách thức lớn

Trang 12

6

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 Đảm bảo tốc độ xử lý nhanh để đáp ứng yêu cầu thời gian thực là một thách thức kỹ thuật

Độ 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 phó với các yếu tố nhiễu này để đạt được kết quả chính xác là một thách thức

Đố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 Đối mặt với các thách thức pháp lý và đảm bảo tuân thủ pháp luật là một yếu tố quan trọng trong quá trình xây dựng ứng dụng nhận diện khuôn mặt

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ý.

1.4 Mục tiêu và phạm vi nghiên cứu 1.4.1.1 Mục tiêu:

Trong nội dung đồ án này, mục tiêu về kiến thức của chúng tôi đầu tiên là có thể thành thục sử dụng ngôn ngữ lập trình Dart, framework Flutter để xây dựng ứng dụng trên thiết bị di động, làm nền tảng cho dự án Mục tiêu tiếp theo đó chính là có

Trang 13

7

thể tích hợp thư viện, các API, sử dụng các mô hình đã được huấn luyện sẵn vào ứng dụng

Về mục tiêu chức năng, chúng tôi đặt ra hai mục tiêu chính:

+ Tích hợp công nghệ phát hiện khuôn mặt: Mục tiêu về chức năng chính của

nghiên cứu là triển khai và tích hợp tính năng phát hiện khuôn mặt vào ứng dụng di động, chỉ ra được vị trí của khuôn mặt trên bức ảnh Đồng thời, chúng tôi tìm các khai thác các đặc điểm chính của khuôn mặt để tạo ra hướng phát triển cho nghiên cứu tiếp theo

+ Tối ưu trải nghiệm người dùng và hiệu suất ứng dụng: Chúng tôi hướng đến

việc người dùng có thể dễ dàng sử dụng sản phẩm, thu được kết quả mong đợi sau khi sử dụng ứng dụng Và một điểm rất quan trọng trong việc nâng cao trải nghiệm người dùng đó chính là hiệu suất ứng dụng Mục tiêu của chúng tôi là ứng dụng có thể phản hồi nhanh cũng như chính xác, đồng thời có độ tin cậy và ổn định cao trong quá trình sử dụng

1.4.2 Phạm vi 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

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

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 nhiều khía cạnh khác nhau:

Cải thiện trải nghiệm người dùng: Ứng dụng nhận diện khuôn mặt có thể cải thiện trải nghiệm người dùng trong nhiều lĩnh vực khác nhau, chẳng hạn như xác thực người dùng, tương tác người dùng, hoặc cải thiện tính năng an toàn cho người dùng Đồng thời mang lại trải nghiệm người dùng tốt hơn và tăng tính tiện dụng của ứng dụng

Trang 14

8

Á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

1.6 Bố cục của báo cáo

Phần còn lại của báo cáo được trình bày theo bố cục như sau:

CHƯƠNG 1 – MỞ ĐẦU: Giới thiệu và phát biểu bài toán, nêu các thách thức khi thực hiện nghiên cứu Đưa ra mục tiêu và phạm vi nghiên cứu cũng như những đóng góp của nghiên cứu trong thực tiễn

CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT: Trình bày những kiến thức nền tảng khi thực hiện nghiên cứu, bao gồm Flutter, Google ML Kit và Face Detection API

CHƯƠNG 3 – XÂY DỰNG ỨNG DỤNG: Trình bày quá trình xây dựng ứng dụng chi tiết, gồm xây dựng hệ thống với các use case chi tiết và mô tả các màn hình của ứng dụng

CHƯƠNG 4 – KẾT QUẢ THỰC NGHIỆM: Trình bày kết quả thực nghiệm của nghiên cứu, phân tích kết quả và đưa ra các đánh giá về ứng dụng

CHƯƠNG 5 – KẾT LUẬN: Phân tích kết quả đạt được và những hạn chế của ứng dụng, đồng thời nêu ra hướng phát triển của nghiên cứu trong tương lai

Trang 15

Flutter thường bao gồm 2 thành phần chính quan trọng như sau:

- Một SDK (Software Development Kit): Đây là một bộ sưu tập bao gồm các công cụ có thể hỗ trợ cho người dùng có thể phát triển được các ứng dụng nền của mình Những điều này thường bao gồm các công cụ để biên dịch mã thành các mã gốc dành riêng cho hệ điều hành iOS và Android

- Một Framework (UI Library based on widgets): Tập hợp những thành phần giao diện của người dùng đều có thể thực hiện tái sử dụng vô cùng dễ dàng nên người sử dụng có thể cá nhân hóa tùy theo nhu cầu riêng của bản thân mình

Tính năng phát triển nhanh chóng các ứng dụng: Hầu hết, mọi tính năng hot reload của Flutter giúp cho người dùng có thể sử dụng thử nghiệm nhanh chóng và dễ dàng hơn rất nhiều Với khả năng xây dựng giao diện cho người dùng cộng thêm các tính năng về sửa lỗi nhanh chóng nên Flutter đang thu hút không ít người sử dụng lựa chọn Ngoài ra, các trải nghiệm về thực hiện tải lại lần thứ hai đều rất dễ dàng mà không làm mất đi trạng thái ở trên emulator, simulator và device cho cả iOS và Android UI đẹp mắt và có tính biểu cảm: Flutter thỏa mãn người sử dụng nhờ các widget built-in vô cùng đẹp mắt dựa theo Material Design và Cupertino (iOS-flavor), thì các API sẽ thực hiện chuyển động theo nhiều hướng phong phú, scroll tự nhiên và mượt mà nên có thể tự động nhận thức được các nền tảng cần thiết

Quá trình truy cập với nhiều tính năng và SDK native: Nhờ vậy, các ứng dụng của bạn sẽ trở nên sống động hơn rất nhiều nhờ vào API của platform, SDK của các bên thứ ba và native code Từ đó, nó sẽ cho phép lập trình viên sử dụng lại được mã

Trang 16

10

Java, Swift và ObjC hiện tại của mình Nhờ vậy, các truy cập sẽ thực hiện được mọi tính năng mà SDK native dựa trên iOS và Android Có khả năng phát triển các ứng dụng thống nhất: Nhờ sở hữu các công cụ cũng như thư viện nên người sử dụng có thể dễ dàng đưa ra được ý tưởng của mình vào chính trong cuộc sống trên hệ điều hành iOS và Android Chính vì thế, nếu bạn là người chưa có nhiều kinh nghiệm cho mục đích phát triển các thiết bị di động thì việc lựa chọn Flutter được xem là một phương pháp dễ dàng và rất nhanh chóng trong việc xây dựng ra một ứng dụng di động tuyệt đẹp Ngoài ra, nếu như bạn là một nhà phát triển cho iOS hoặc Android có kinh nghiệm lâu năm thì bạn hoàn toàn có thể sử dụng Flutter dành cho các View của bạn Từ đó tận dụng việc viết ra nhiều code từ Java / Kotlin / ObjC / Swift đang hiện có mà bạn sở hữu

2.2 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 Nó gồm các đặc điểm:

- 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 Tính năng này có thể hoạt động khi không có mạng

- Tích hợp với kiến thức chuyên môn của Google - Dễ sử dụng

Trang 17

11

2.3 API Phát hiện khuôn mặt (Face Detection API)

Phát hiện khuôn mặt là một API được cung cấp bởi Google ML Kit, thuộc nhóm Vision APIs Sử dụng API này, chúng ta có thể phát hiện các khuôn mặt trong hình ảnh, nhận diện các đặc điểm chaính trên khuôn mặt và xem đường nét của các khuôn mặt đã phát hiện

Những tính năng chính:

+ Nhận diện và xác định vị trí của các đặc điểm trên khuôn mặt: Nhận được tọa

độ của mắt, tai, má, mũi và miệng của mọi khuôn mặt được phát hiện

+ Lấy được đường nét của các đặc điểm khuôn mặt: Trả về đường nét của những

khuôn mặt được phát hiện và mắt, lông mày, môi và mũi của họ

+ Theo dõi các khuôn mặt trên các khung hình video: Nhận được một mã nhận

dạng cho mỗi khuôn mặt được phát hiện riêng biệt Giá trị nhận dạng là nhất quán giữa các lần sử dụng, và vị vậy có thể thực hiện các thao tác hình ảnh với một người cụ thể trên video

+ Xử lý các khung hình video theo thời gian thực: Phát hiện khuôn mặt được thực hiện trên thiết bị, và nó đủ nhanh để có thể sử dụng trong ứng dụng theo thời gian thực, chẳng hạn như thao tác với video

Trang 18

12

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 3.1 Xây dựng hệ thống

3.1.1 Công nghệ sử dụng

- Ngôn ngữ lập trình: Dart - UI Framework: Flutter - IDE: Android Studio

3.1.2 Sơ đồ Use cases

Hình 2 Sơ đồ use cases

3.1.3 Mô tả Use cases

1 Chọn ảnh từ thư viện Người dùng chọn ảnh từ thư viện 2 Chọn ảnh từ máy ảnh Người dùng chọn ảnh từ máy ảnh

Ngày đăng: 15/05/2024, 09:30

Tài liệu cùng người dùng

Tài liệu liên quan