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

đồ án 1 dự đoán tuổi và giới tính

38 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Phát biểu bài toán Trong báo cáo này, chúng tôi tập trung vào phân loại tuổi và giới tính của người trong hình ảnh khuôn mặt bằng cách sử dụng Deep Learning.. Male 0-17 Hình 1-1: Đầu vào

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

Mai Đình Khôi – 21521008 Lê Thị Thu Hiền – 21522059

ĐỒ ÁN 1

AGE AND GENDER PREDICT

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYỄN TẤN TRẦN MINH KHANG

TP HỒ CHÍ MINH, 2023

Trang 3

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

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

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

Trang 8

TÓM TẮT

Bài toán dự đoán tuổi và giới tính ( age and gender predict ) là một trong những bài toán phổ biến trong lĩnh vực nhận dạng khuôn mặt và thị giác máy tính Ở bài toán này, chúng tôi sử dụng model có sẵn được huấn luyện từ bộ dữ liệu UTKFace với hơn 20.000 hình ảnh khuôn mặt Các hình ảnh bao gồm sự thay đổi lớn về tư thế, nét mặt, ánh sáng,… Mục tiêu của bài toán là xác định tuổi và giới tính của một người dựa trên hình ảnh khuôn mặt của họ.

Trang 9

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

Trong báo cáo này, chúng tôi tập trung vào phân loại tuổi và giới tính của người trong hình ảnh khuôn mặt bằng cách sử dụng Deep Learning Sử dụng model có sẵn với sự phân loại thành 2 nhóm giới tính (0: nam, 1: nữ) và 4 nhóm tuổi (0 - 17 tuổi, 18 – 29 tuổi, 30 – 79 tuổi và 80 tuổi trở lên) Mô hình sử dụng mạng neural sâu ( Deep Nerual Network) với các lớp Convolutional ( Conv2D), MaxPooling, Dropout và Dense (Fully Connected) để học Mô hình nhận đầu vào là hình ảnh có kích thước 64x64 pixels và có hai đầu ra là tuổi và giới tính (0-1)

Đầu vào của bài toán là một bức ảnh đã được đưa về kích thước 64x64 pixels, đầu ra là thông tin về độ tuổi và giới tính của khuôn mặt trong bức ảnh đã được dự đoán

Trang 10

Male 0-17

Hình 1-1: Đầu vào và đầu ra của bài toán dự đoán tuổi và giới tính

o Thách thức về điều kiện ánh sáng và góc chụp: Hiệu suất của mô hình có thể bị ảnh hưởng do góc chụp khuôn mặt và điều kiện ánh sáng, ánh sáng có thể quá tối hoặc có thể quá sáng để có thể nhận diện được rõ các đặc trưng trên khuôn mặt của đối tượng

o Thách thức về độ chính xác chi tiết: việc dự đoán độ tuổi từ 0 đến 116 thông qua 4 khoảng độ tuổi làm mất đi sự chi tiết và độ chính xác và mật độ các khoảng là không đều ( 0 - 17 tuổi, 18 – 29 tuổi, 30 – 79 tuổi và 80 tuổi trở lên) có thể dẫn đến hiệu suất dự đoán không đồng đều cho các khoảng tuổi khác nhau.

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

Trang 11

o Xây dựng giao diện thân thiện với người dùng để tương tác với mô hình dự đoán tuổi và giới tính thông qua ứng dụng di động một cách dễ dàng và thuận tiện

o Phân tích và xử lý dữ liệu khuôn mặt để cân nhắc đến sự đa dạng và phong phú của dữ liệu, bao gồm nhiều độ tuổi, giới tính và đặc điểm khuôn mặt - Phạm vi:

o Nghiên cứu các kiến trúc mạng nơ-ron sâu phổ biến như CNN, RNN và các kết hợp của chúng để tìm hiểu mô hình

o Nghiên cứu ứng dụng của mô hình trong các lĩnh vực thực tế như nhận dạng khuôn mặt, quảng cáo, y tế, an ninh,…

o Đề xuất các cải tiến và ứng dụng thực tiễn của mô hình để nâng cao hiệu suất và đáp ứng yêu cầu của các ứng dụng cụ thể

o Tích hợp mô hình dự đoán tuổi và giới tính vào ứng dụng di động có sẵn, sử dụng ngôn ngữ react-native

o Tạo giao diện người dùng (UI) trực quan và thân thiện để người dùng có thể dễ dàng tải lên hình ảnh khuôn mặt và nhận kết quả dự đoán tuổi và giới tính o Nghiên cứu các cơ chế và phương pháp tiết kiệm dữ liệu và tối ưu hóa việc truyền tải dữ liệu giữa ứng dụng di động và mô hình dự đoán tuổi và giới tính

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

Nghiên cứu về mô hình dự đoán tuổi và giới tính và tích hợp vào trong ứng dụng di động có nhiều đóng gớp quan trọng, từ giá trị thực tiễn và ứng dụng thực tế cho đến cải thiện trải nghiệm người dùng và khả năng mở rộng của ứng dụng Nghiên cứu mở ra tiềm năng sử dụng và ứng dụng rộng rãi trong tương lai

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 2 – PHƯƠNG PHÁP: trình bày phướng pháp multi-task learning trong việc tạo

mô hình dự đoán tuổi và giới tính

CHƯƠNG 3 – TRIỂN KHAI ỨNG DỤNG: trình bày các công cụ, thiết kế, giao diện và

quá trình phát triển ứng dụng dự đoán tuổi và giới tính

Trang 12

CHƯƠNG 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: trình bày kết quả đạt được và

những hướng phát triển trong tương lai sau quá trình thực nghiệm mô đồ trên ứng dụng di động.

Trang 13

Chương 2 PHƯƠNG PHÁP

Phương pháp được sử dụng là một mô hình học máy đa nhiệm (multi-task learning) được xây dựng bằng cách sử dụng mạng nơ-ron sâu (deep neural network) để dự đoán đồng thời tuổi và giới tính từ hình ảnh khuôn mặt

Hình 2-1 : kiến trúc một mô hình học máy đa nhiệm ( multi-task-learning)

2.1 Bộ dữ liệu

Bộ dữ liệu UTKFace được xây dựng cho bài toán nhận dạng khuôn mặt và dự đoán các đặc điểm như tuổi, giới tính,…hình ảnh được thu thập từ nhiều nguồn khác nhau với các khoảng tuổi dài (từ 0 đến 116 tuổi) Bộ dữ liệu gồm hơn 20.000 hình ảnh khuôn mặt với các sự khác biệt lớn về tư thế, nét mặt, độ chiếu sáng hay độ phân giải Bài toán chia bộ dữ liệu thành 4 nhóm tuổi và 2 nhóm giới tính

Hình 2-2: Bộ dữ liệu UTKFace

Trang 14

2.2 Tiền xử lý dữ liệu

Dữ liệu hình ảnh khuôn mặt được tải, điều chỉnh kích thước về độ phân giải 64x64 pixel và chuyển đổi thành mảng 3D với một kênh (ảnh xám)

Tuổi và giới tính được trích xuất từ tên tệp hình ảnh

2.3 Chuẩn bị dữ liệu cho huấn luyện

Dữ liệu tuổi được chia thành các nhóm, gán giá trị từ 1 đến 4 cho mỗi nhóm để chuẩn hóa (0-17; 18-29; 30-79; 80+)

Dữ liệu giới tính được giữ nguyên (0 hoặc 1)

2.5 Biên dịch và huấn luyện mô hình

Mô hình được biên dịch với hai hàm mất mát khác nhau cho mỗi nhánh dự đoán: hàm mất mát cho tuổi là mean squared error (MSE), và cho giới tính là binary cross-entropy

Quá trình huấn luyện sử dụng tập dữ liệu đã được chia thành tập huấn luyện và tập kiểm tra Mục tiêu là tối ưu hóa các tham số mô hình để cực tiểu hóa hàm mất mát

2.6 Lưu mô hình

Mô hình được lưu thành một tệp data.h5 sau khi quá trình huấn luyện hoàn tất

Trang 15

2.7 Đánh giá

Phương pháp này sử dụng mạng nơ-ron đa nhiệm để tối ưu hóa đồng thời cả dự đoán tuổi và dự đoán giới tính từ hình ảnh khuôn mặt Điều này giúp mô hình học được các đặc trưng chung và cụ thể cho cả hai nhiệm vụ, tạo ra một cách tiếp cận hiệu quả cho bài toán này

Trang 16

Chương 3 TRIỂN KHAI ỨNG DỤNG3.1 Công cụ phát triển

3.1.1 Công cụ lập trình

3.1.1.1 Giới thiệu Android Studio

Android Studio là môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng

dụng Android, dựa trên IntelliJ IDEA Bao gồm các chức năng giúp tăng hiệu quả phát triển ứng dụng Android như sau:

o Một hệ thống xây dựng linh hoạt dựa trên Gradle o Một trình mô phỏng nhanh và nhiều tính năng

o Một môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android

o Tính năng Áp dụng các thay đổi để đẩy các thay đổi về mã và tài nguyên vào ứng dụng đang chạy mà không cần khởi động lại ứng dụng

o Mã mẫu và tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến cũng như nhập mã mẫu

o Đa dạng khung và công cụ thử nghiệm

o Công cụ tìm lỗi mã nguồn (lint) để nắm bắt hiệu suất, khả năng hữu dụng, khả năng tương thích với phiên bản và các vấn đề khác

o Hỗ trợ C++ và NDK

o Tích hợp sẵn tính năng hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp Google Cloud Messaging và App Engine

3.1.1.2 Giới thiệu Visual Studio Code

Visual Studio Code là một trình soạn thảo mã nguồn được phát triển bởi Microsoft

dành cho Windows, Linux và macOS Nó hỗ trợ chức năng debug, đi kèm với Git, có chức năng nổi bật cú pháp (syntax highlighting), tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các

Trang 17

Hình 3-1: Visual Studio Code

Đối với dự án, VSCode là công cụ tiện lợi nhất vì hỗ trợ tốt cả 2 framework là NodeJS và Flutter Điều này giúp cho các lập trình viên của dự án không tốn quá nhiều công sức để học cách sử dụng nhiều IDE khác nhau Gây lãng phí tài nguyên

3.1.2 Design

3.1.2.1 Giới thiệu Figma

Figma là một phần mềm dùng để thiết kế giao diện với các thông số cụ thể do người

thiết kế đặt ra giúp hỗ trợ developer có thể dễ dàng hiện thực bản thiết kể trở thành UI thực Figma chủ yếu hoạt động trên nền web, dù có một số tính năng ngoại tuyến trên các phiên bản ứng dụng desktop cho hệ điều hành macOS và Windows Một tiện ích của Figma là Figma Mirror cho Android và iOS giúp người dùng có thể xem các prototype Figma trên thiết bị di động

Trang 18

Hình 3-2: Figma

Những lợi ích Figma đem lại:

o Figma là một công cụ miễn phí

o Sử dụng được trên 2 nền tảng Windows và MacOS (thay vì như sketch chỉ dùng được trên MacOS)

o Thiết kế thời gian thực: Mọi người trong team có thể vẽ cùng một dự án cùng một lúc và thấy được những thay đổi trong bản thiết kế một cách nhanh nhất

o Data được lưu trên hệ thống máy chủ: Các file thiết kế figma sẽ được tự động lưu bất cứ lúc nào trên hệ thống máy chủ (không sợ quên lưu file) và có thể tải xuống để lưu lại trong local

o Có cơ chế comment trực tiếp trên file thiết kế: Việc này sẽ giúp nhận phản hồi hoặc ghi chú khi làm việc đội nhóm

Nhược điểm của Figma:

o Phải có internet thì Figma mới hoạt động được

3.1.3 Lưu trữ source code

GitHub là một dịch vụ cung cấp nền tảng dựa trên web cho việc lưu trữ mã nguồn và

quản lý dự án sử dụng Git GitHub cho phép bạn lưu trữ mã nguồn của dự án trực tiếp trên các kho lưu trữ (repositories), theo dõi sự thay đổi, tạo các nhánh phát triển riêng biệt, hợp nhất các thay đổi (merge) và thực hiện các hoạt động phát triển khác Bên cạnh đó, GitHub

Trang 19

Hình 3-3: Github

Git là một hệ thống quản lý phiên bản phân tán được sử dụng rộng rãi để theo dõi sự

thay đổi trong mã nguồn và quản lý dự án phát triển phần mềm Nó cho phép nhiều người cùng làm việc trên cùng một dự án, theo dõi sự thay đổi, tích hợp các tính năng mới và quản lý các phiên bản khác nhau của mã nguồn Git hoạt động theo hình thức phiên bản phân tán, tức là mỗi người dùng có bản sao đầy đủ của toàn bộ lịch sử phiên bản

Git và GitHub đóng một vai trò quan trọng trong việc quản lý mã nguồn và phát triển phần mềm, cho phép người dùng làm việc cộng tác và theo dõi sự thay đổi trong các dự án phức tạp

3.1.4 Deploy

Render là một nền tảng đám mây (cloud platform) hướng tới việc triển khai (deploy)

ứng dụng web và dịch vụ trực tuyến một cách dễ dàng Render cung cấp một giải pháp cho việc triển khai ứng dụng và dịch vụ mà không đòi hỏi nhiều kiến thức về quản lý hạ tầng hoặc công cụ phức tạp Điều này giúp các nhà phát triển tập trung vào việc xây dựng ứng dụng và cung cấp giải pháp cho người dùng cuối một cách dễ dàng

Trang 20

Hình 3-4: Render

3.2 Công nghệ phát triển 3.2.1 Front_end: React-native

React Native là một framework phát triển ứng dụng di động được tạo bởi Facebook Nó cho phép bạn xây dựng ứng dụng di động đa nền tảng bằng việc sử dụng JavaScript và React, một thư viện JavaScript phổ biến cho việc xây dựng giao diện người dùng (UI).React Native không chỉ được sử dụng bởi Facebook, mà còn bởi nhiều công ty lớn khác để phát triển ứng dụng di động chất lượng cao Nó đã trở thành một trong những công cụ phát triển ứng dụng di động phổ biến nhất trên thị trường

3.2.2 Back_end: Flask

Flask là một framework phía máy chủ (backend) phát triển ứng dụng web, với vai trò chính là xử lý các yêu cầu HTTP từ phía client (frontend) và cung cấp dữ liệu hoặc chức năng cần thiết.Flask là một lựa chọn tốt cho các ứng dụng web nhỏ đến trung bình, cũng như cho việc xây dựng các dự án thử nghiệm và các dự án có tính linh hoạt cao Nó cho phép bạn xây dựng các phần backend mạnh mẽ và hiệu quả sử dụng ngôn ngữ Python đơn giản và dễ đọc

3.3 Thiết kế

Thiết kế kiến trúc: Theo mô hình Client – Server

Mô hình client-server là một kiến trúc cơ bản trong lĩnh vực công nghệ thông tin và mạng

Trang 21

(khách hàng) và server (máy chủ) Mô hình này cho phép các ứng dụng và dịch vụ tương tác với nhau thông qua mạng Dưới đây là mô tả chi tiết về mô hình client-server:

• Client (Khách hàng):

o Client là người sử dụng hoặc ứng dụng sử dụng dịch vụ từ server Điều này có thể là một trình duyệt web trên máy tính cá nhân, ứng dụng di động trên điện thoại thông minh hoặc các thiết bị khác

o Client tạo yêu cầu (request) đến server Yêu cầu này có thể là một trang web, dữ liệu, hoặc bất kỳ tài nguyên nào server có thể cung cấp

o Client hiển thị kết quả cho người sử dụng Khi client nhận được dữ liệu từ server, nó có thể hiển thị nó trên giao diện của mình để người dùng có thể tương tác

• Server (Máy chủ):

o Server là máy tính hoặc hệ thống phục vụ yêu cầu từ các client Nó có nhiệm vụ xử lý yêu cầu từ client và cung cấp dữ liệu hoặc dịch vụ tương ứng o Server xử lý yêu cầu từ client Điều này bao gồm việc truy xuất dữ liệu từ cơ

sở dữ liệu, tính toán, xử lý logic ứng dụng, và nhiều nhiệm vụ khác

o Server gửi kết quả trả về cho client Sau khi xử lý yêu cầu, server gửi dữ liệu hoặc kết quả trả về cho client

• Giao tiếp qua Mạng:

o Mô hình client-server yêu cầu một kết nối mạng giữa client và server Dữ liệu và yêu cầu được gửi qua mạng từ client đến server và ngược lại

o Giao tiếp có thể sử dụng các giao thức mạng như HTTP (cho web), FTP (cho truyền tệp), SMTP (cho email), và nhiều giao thức khác tùy thuộc vào ứng dụng cụ thể

Trang 22

• Client (React Native):

o Phía client được xây dựng bằng React Native để cung cấp giao diện người dùng cho người dùng cuối

o Ứng dụng React Native gửi yêu cầu HTTP gồm hình ảnh được người dùng chụp/lấy từ thư viện đến Flask để yêu cầu dịch vụ dự đoán tuổi và giới tính o Nó nhận dữ liệu trả về từ server và hiển thị nó trên giao diện người dùng sử

dụng ứng dụng React Native • Giao tiếp qua Mạng:

o Ứng dụng React Native gửi yêu cầu HTTP đến Flask server thông qua giao thức HTTP hoặc HTTPS

Trang 23

o Cả hai phía phải cùng sử dụng các giao thức chuẩn để đảm bảo giao tiếp hiệu quả và bảo mật

Link bản thiết kế front-end figma:

app?type=design&node-id=0%3A1&mode=design&t=gb9KnZ7IqL6HvE65-1

https://www.figma.com/file/JMuO9yHH4s54v2lshwlQNX/Age-and-gender-predict-Giao diện:

Hình 3-6:Màn hình Home

Trang 24

Bảng 3-1:Mô tả màn hình Home

tuổi và giới tính

thêm hình ảnh cần dự đoán tuổi và giới tính vào trong màn hình

trong bức ảnh đã dự đoán với giá trị ? | ? là mặc định ban đầu

trong bức ảnh đã dự đoán, với hai giá trị “Male” và “Female”

Trang 25

Hình 3-7: Màn hình upload image

Trang 26

Bảng 3-2: Bảng mô tả màn hình Upload image

1 Uploads image Button Nhấn vào “Uploads image” để chọn hình ảnh cần dự đoán tuổi và giới tính từ thư viện máy

ảnh khuôn mặt người cần dự đoán tuổi và giới tính

Trang 27

Hình 3-8: Màn hình Predict

Trang 28

Bảng 3-3: Mô tả màn hình Predict

tuổi và giới tính

3 Predict image Button Nhấn vào “Predict image” để ứng dụng dự đoán tuổi và giới tính của người trong bức hình

thế hình ảnh khác vào vị trí ảnh cần dự đoán

trong bức ảnh đã dự đoán

trong bức ảnh đã dự đoán, nếu là nam thì chữ “Male” sẽ được tô đậm và ngược lại là nữ thì chữ “Female” sẽ được tô đậm

Trang 29

Hình 3-9:Màn hình Loading Bảng 3-4: Bảng mô tả màn hình Loading

dự đoán tuổi và giới tính đang diễn ra

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

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w