đồ án 1 ứng dụng nhận diện dáng người pose detection

33 1 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 ứng dụng nhận diện dáng người pose detection

Đ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

Nhận diện dáng người có khả năng được ứng dụng nhiều trong các lĩnhvực cuộc sống như sức khỏe, an ninh… Trong môn đồ án 1, chúng tôi đã xây dựngmột ứng dụng trên thiết bị di động sử dụng

Trang 1

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

Trang 2

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

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

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

Trang 4

Hình 11 Thư viện khi không có ảnh 21Hình 12 Thư viện khi có ảnh 22Hình 13 Chế độ chạy thời gian thực 22Hình 14 Chế độ so sánh dáng khi khớp 23Hình 15 Chế độ so sánh dáng khi không khớp 23

Hình 17 Trang đếm số bài tập 24Hình 18 Giao diện Android Studio 24Hình 19 Giao diện nhập đường dẫn Link Github 24Hình 20 Android Studio đang tải dự án 25Hình 21 Giao diện của dự án trong Android Studio 26

Trang 5

DANH MỤC BẢNG

Trang 7

TÓM TẮT

Nhận diện dáng người là một bài toán rất thú vị trong lĩnh vực MachineLearning Nhận diện dáng người có khả năng được ứng dụng nhiều trong các lĩnhvực cuộc sống như sức khỏe, an ninh… Trong môn đồ án 1, chúng tôi đã xây dựngmột ứng dụng trên thiết bị di động sử dụng mô hình có sẵn của Tensorflow Lite đểminh họa một số các khả năng mà nhân diện dáng người có thể đem lại Ứng dụngsẽ bao gồm các chức năng:

- Chạy mô hình trong thời gian thực: chức năng này sẽ chạy mô hìnhnhận vào là một bức hình và sẽ xuất ra kết quả là hình vẽ mô phỏngdáng người sẽ xuất hiện trên màn hình, cũng như cho phép lưu trữ kếtquả để truy xuất trong tương lai.

- Nhận diện và đếm số lần thực hiện động tác: cho phép ứng dụng tạobộ đếm dựa trên số lần người dùng thực hiện động tác khớp với độngtác mẫu được lưu trữ.

Trang 8

Chương 1 MỞ ĐẦU

1.1.Động lực nghiên cứu

Ngày nay, với sự phát triển của công nghệ thị giác máy tính, các bài toán liênquan đến lĩnh vực này đang được đẩy mạnh nghiên cứu, đầu tư cũng nhưđược ứng dụng nhiều hơn trong cuộc sống Một trong những bài toán đó, bàitoán nhận diện dáng người (pose detection) trở thành trọng tâm trong ứngdụng của chúng tôi vì tính ứng dụng chuyên sâu của nó trong nhiều lĩnh vựckhác nhau.

Trong lĩnh vực an ninh giám sát: Việc nhận diện dáng người xuất hiện trongđám đông có thể giúp phát hiện các hành vi gây mất an ninh trật tự (xô xát,móc túi, v.v) và hỗ trợ trong các trường hợp y tế khẩn cấp (đột quỵ, ngạt thởdo chen lấn), hoặc trong trường hợp theo dõi một đối tượng trong đám đông,có thể phát hiện các cử chỉ bất thường của đối tượng và qua đó có thể đưa rahướng xử lý thích hợp.

Trong lĩnh vực thể thao: Việc nhận diện được tư thế của các vận động viên sẽgiúp họ điều chỉnh lại tư thế luyện tập nhằm tối ưu hóa năng lượng và tránhchấn thương tốt hơn, bên cạnh đó các trọng tài cũng có thể dùng hệ thốngnhận diện này nhằm hỗ trợ cho việc chấm điểm trong các cuộc thi

Trong lĩnh vực y tế: Các bác sĩ có thể theo dõi tư thế của bệnh nhân trongquá trình phục hồi chức năng, qua đó có thể lên phác đồ điều trị phù hợp vớiquá trình hồi phục của bệnh nhân

Nhìn chung, nghiên cứu về bài toán nhận dạng dáng người mang lại nhiều lợiích cũng như có được nhiều ứng dụng trong cuộc sống, cho thấy tầm quantrọng của các ứng dụng có thể giải quyết bài toán này trong thực tiễn

Trang 9

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

Đầu vào bài toán là một ảnh, đầu ra là một ma trận tensor 3 chiều dạng[1,1,17,3], trong đó:

● 2 kênh (channel) đầu tiên của chiều thứ 3 là tọa độ yx của 17 điểm khớpnối quan trọng (theo trình tự: mũi, mắt trái, mắt phải, tai trái, tai phải, vaitrái, vai phải, cùi chỏ trái, cùi chỏ phải, cổ tay trái, cổ tay phải, hông trái,hông phải, đầu gối trái, đầu gối phải, mắt cá chân trái, mắt cá chân phải).● Kênh cuối cùng của chiều thứ 3 biểu thị độ tự tin dự đoán của mỗi điểm

khớp nối, có giá trị nằm trong khoảng [0.0, 1.0].

Hình 1 Đầu vào và đầu ra của bài toán ứng dụng nhận diện dáng người

1.3.Các thách thức

● Thách thức về độ phân giải ảnh: Các ảnh đầu vào có độ phân giải khácnhau, dẫn đến việc nhận diện người có thể gặp khó khăn và liên quan đếnviệc xuất tọa độ các khớp nối tương ứng về sau.

● Thách thức về tầm nhìn bị che khuất: Các ảnh đầu vào có thể bao gồmngười đang ở các tư thế gây che khuất các bộ phận (ngồi xổm, di chuyển

Trang 10

với công cụ hỗ trợ, v.v) hoặc các điều kiện môi trường gây ảnh hưởng đếntầm nhìn (thiếu sáng, lóa, v.v)

● Thách thức về nhận dạng trùng lặp: Trong trường hợp có 2 hoặc nhiềungười được nhận diện tại một vị trí cụ thể trên ảnh (mẹ bồng con, cõngnhau, v.v) có thể gây ra sai lệch trong nhận diện các khớp nối

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

● Mục tiêu: Tìm hiểu về đề tài nhận diện dáng người (pose detection) và cácứng dụng.

● Phạm vi: Nghiên cứu về cách tích hợp Pose Detection vào các ứng dụngthực tế trên di động.

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

Nội dung cuốn báo cáo trình bày về một phương pháp được cung cấp sẵntrong việc giải quyết bài toán nhận dạng dáng người, đánh giá được các chỉsố về độ chính xác và tính linh hoạt của ứng dụng trong thực tiễn cũng nhưnêu ra một số bất cập chưa thể xử lý với công nghệ hiện tại của bài toán trên

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 – CƠ SỞ LÝ THUYẾT: bao gồm những kiến thức, thông tin về đề tài.CHƯƠNG 3 – XÂY DỰNG ỨNG DỤNG: từng bước xây dựng ứng dụng

CHƯƠNG 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: sau khi hoàn thành ứngdụng, thông qua việc phân tích sẽ đưa ra những kết luận cũng như hướng phát triểncho đề tài

Trang 11

Chương 2 CƠ SỞ LÝ THUYẾT

2.1.Mô hình được lựa chọn

● Tên mô hình:

lite-model_movenet_singlepose_lightning_tflite_float16_4● Link mô hình:TensorFlow Hub (tfhub.dev)

● Sơ lược về mô hình: Một mô hình mạng nơ-ron tích chập(Convolutional Neural Network - CNN) chạy trên hình ảnh RGB vàdự đoán vị trí khớp cơ của một người duy nhất Mô hình này đượcthiết kế để chạy trên trình duyệt bằng cách sử dụng Tensorflow.js hoặctrên các thiết bị sử dụng TF Lite ở thời gian thực, nhắm vào các hoạtđộng vận động/thể dục Biến thể này, MoveNet.SinglePose.Lightning,là một mô hình có khả năng nhận diện thấp hơn (so vớiMoveNet.SinglePose.Thunder) nhưng có thể chạy ở tốc độ 50 khunghình trên giây trên hầu hết các laptop hiện đại và đạt được hiệu suấttốt.

● Kiến trúc mô hình: Mô hình sử dụng bộ trích xuất đặc trưng hình ảnhMobileNetV2 với bộ giải mã Feature Pyramid Network (với bướcnhảy 4), tiếp theo là các đầu dự đoán CenterNet kết hợp với logic xửlý sau khi dự đoán tùy chỉnh Lightning sử dụng giá trị nhân độ sâu(depth multiplier) là 1.0 trong khi Thunder sử dụng giá trị nhân độ sâu(depth multiplier)

● Đầu vào: Một khung hình video hoặc hình ảnh, được biểu diễn dướidạng tensor int32 có hình dạng: 192x192x3 (Lightning) / 256x256x3(Thunder) Thứ tự các kênh: RGB với giá trị trong khoảng từ 0 đến255.

● Đầu ra: Một ma trận có kiểu dữ liệu là float32 có hình dạng [1, 1, 17,3].

Trang 12

○ Hai kênh đầu tiên của chiều cuối cùng đại diện cho tọa độ yx(được chuẩn hóa trong khung hình ảnh, tức là trong khoảng[0.0, 1.0]) của 17 điểm chính (theo thứ tự: [mũi, mắt trái, mắtphải, tai trái, tai phải, vai trái, vai phải, khuỷu tay trái, khuỷutay phải, cổ tay trái, cổ tay phải, hông trái, hông phải, gối trái,gối phải, mắt cá trái, mắt cá phải]).

○ Kênh thứ ba của chiều cuối cùng đại diện cho điểm số tin cậydự đoán của mỗi điểm chính, cũng trong khoảng [0.0, 1.0].● Tập dữ liệu train:

○ Bộ dữ liệu COCO Keypoint Training Set 2017: Bao gồmnhững hình ảnh tự nhiên với các cảnh quan đa dạng, kích thướcđối tượng và các vật che khuất Bộ dữ liệu huấn luyện gốc baogồm 64.000 hình ảnh (hình ảnh, chú thích) Những hình ảnh cóba người trở lên đã được lọc ra, dẫn đến một bộ dữ liệu huấnluyện cuối cùng gồm 28.000 hình ảnh.

○ Bộ dữ liệu huấn luyện Active Dataset: Là những hình ảnh đượclấy mẫu từ các video thể dục trên YouTube, ghi lại nhữngngười vận động (ví dụ: HIIT, tập tạ, vv.), duỗi cơ hoặc khiêuvũ Bộ dữ liệu này chứa các tư thế và chuyển động đa dạng vớihiệu ứng mờ chuyển động và tự che khuất Tập hình ảnh vớimột người duy nhất chứa 23.500 hình ảnh.

Trang 13

● Java là ngôn ngữ thông dịch

2.3.Tensorflow Lite

Hình 2 TensorFlow Lite

2.3.1 Sơ lược về TensorFlow Lite

Trước khi tìm hiểu về TensorFlow Lite, chúng ta hãy đi sơ lược mộtchút về người đàn anh của TensorFlow Lite đó là TensorFlow.

Tensorflow là một thư viện mã nguồn mở được phát triển bởiGoogle Trong lĩnh vực Machine Learning, Tensorflow là một trongnhững thư viện phổ biến nhất, nó hỗ trợ mạnh trong việc triển khaivà huấn luyện các mô hình Machine Learning.

Tuy nhiên trong việc sử dụng, người ta nhận ra rằng TensorFlowchiếm dụng nhiều dung lượng lưu trữ và cần rất nhiều GPU, đồng thờinhững nguồn tài nguyên đó lại rất hạn chế trên thiết bị di động Vì vậyTensorFlow Lite ra đời nhằm mục đích đáp ứng cho nhu cầu chạy nhữngmô hình Machine Learning trên ứng dụng di động.

2.3.2 Điểm mạnh

● Chuyển đổi mô hình TensorFlow thành mô hình TensorFlow Lite mộtcách nhanh chóng và dễ dàng để tạo ra các mô hình thân thiện với diđộng.

● Với tính đơn giản, xây dựng ứng dụng học máy cho các thiết bị iOSvà Android.

● Khác với kiến trúc dựa trên máy chủ, đây là một phương án hiệu quảhơn để kích hoạt mô hình trên di động.

● Trên các thiết bị di động, nó cho phép suy luận ngoại tuyến.

Trang 14

● TensorFlow Lite cho phép thực thi các mô hình học máy một cách dễdàng trên điện thoại thông minh, cho phép thực hiện các nhiệm vụ họcmáy truyền thống mà không cần sử dụng API hoặc máy chủ bênngoài Do đó, các mô hình sẽ hoạt động trên các thiết bị không kết nốiinternet.

2.4.Android Studio

Hình 3 Android Studio

Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành chohệ điều hành Android của Google, được xây dựng trên phần mềm IntelliJIDEA của JetBrains và thiết kế đặc biệt cho việc phát triển ứng dụngAndroid Nó có thể được tải xuống trên hệ điều hành dựa trên Windows,macOS và Linux Đây là một sự thay thế cho Eclipse Android DevelopmentTools (E-ADT) như IDE chính cho việc phát triển ứng dụng Android gốc.

Trang 15

Chương 3 XÂY DỰNG ỨNG DỤNG

Trong đề tài lần này chúng tôi ứng dụng mô hình nhận diện dáng người bằngviệc tính hợp mô hình vào một phần mềm di động Phần mềm có chức năng đếmsố lần thực hiện động tác squat của một người trong thời gian thực Để thực hiệnchức năng này chúng tôi đã chia thành các tính năng nhỏ hơn và các tính năngđó bao gồm:

● Xây dựng tính năng chạy mô hình trong thời gian thực● Xây dựng tính năng so sánh dáng người

● Xây dựng tính năng đếm số lần thực hiện bài tập● Xây dựng một số tính năng khác

○ Xem ảnh○ Cài đặt

Trang 16

thời gian thực

Chạy mô hình và hiểnthị lên kết quả trongthời gian thực

hình đã chụp.

Trang 17

hình như độ chính xác, độchênh lệch góc

người và so sánh xemdáng người thứ 2 cógiống dáng cần sosánh hay không

bài tập

Đếm số lần thực hiệnmột bài tập

Trang 18

Sau khi người dùng chụp ảnh, người dùng truy cập vào kho ảnhcủa ứng dụng người dùng có thể xem lại những ảnh mà mình đãchụp.

3.3.2.3 Luồng phụKhông có.

3.3.3.3 Luồng phụ

Sau khi chỉnh sửa thông số trong trang cài đặt nếu người dùngkhông lưu lại những thông số đó hệ thống sẽ đưa những thôngsố đó về với trạng thái mặc định.

3.3.4 Sử dụng chế độ chạy mô hình trong thời gian thực

3.3.4.1 Mô tả:

Mô hình sẽ được chạy trong thời gian thực, hình dáng người sẽđược hiển thị ngay trên màn hình.

3.3.4.2 Luồng chính

Trang 19

Khi người dùng nhấn vào nút chế độ chạy mô hình trong thờigian thực hệ thống sẽ tải mô hình vào và bắt đầu xử lý những dữliệu đầu vào, dữ liệu đầu ra sẽ được hiển thị dưới dạng một hìnhvẽ người.

3.3.4.3 Luồng phụKhông có

Khi người dùng thoát khỏi chế độ chế độ đếm sẽ bị dừng lại.

Trang 20

Khi người dùng nhấn nút đếm lại, hệ thống sẽ bắt đầu đếm lại từđầu.

3.4.Sơ đồ activity3.4.1 Chụp hình

Hình 5 Sơ đồ activity của chức năng chụp hình

Trang 21

3.4.2 Chạy mô hình trong thời gian thực

Hình 6 Sơ đồ activity của chức năng chạy mô hình trong thời gian thực

Trang 23

3.4.5 So sánh dáng người

Hình 8 Sơ đồ activity của chức năng so sánh dáng người

Trang 24

3.4.6 Đếm số lần thực hiện 1 bài tập

Hình 9 Sơ đồ activity của chức năng đếm số lần thực hiện một động tác

3.5.1 Trang chủ

Trang 25

Hình 10 Trang chủ3.5.2 Thư viện ảnh

Khi không có ảnh

Hình 11 Thư viện ảnh khi không có ảnh

Trang 26

Hình 12 Thư viện ảnh khi có ảnh3.5.3 Chế độ chạy thời gian thực

Hình 13 Chế độ chạy thời gian thực

Trang 27

3.5.4 Chế độ so sánh dángKhi 2 dáng giống nhau

Hình 14 Chế độ so sánh dáng khi khớpKhi 2 dáng khác nhau

Hình 15 Chế độ so sánh dáng khi không khớp

Trang 28

3.5.5 Trang bài tập

Hình 16 Trang bài tập3.5.6 Trang đếm số lần thực hiện bài tập

Hình 17 Trang đếm số bài tập

Trang 29

Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

● Cải thiện hiệu năng của mô hình.

4.3.Hướng dẫn chạy ứng dụng từ link github

Link github:https://github.com/DuyDangCode/pose_detection_mobile.git

Mở android studio, nhấn vào nút Get from VCS

Hình 18 Giao diện Android Studio

Trang 30

Dán đường dẫn Link GIthub vô URL, chọn nơi lưu dự án và nhấn Clone

Hình 19 Giao diện nhập đường dẫn Link Github

Trang 31

Hình 20 Android Studio đang tải dự án

Kết nối máy tính với điện thoại, sau đó chọn thiết bị và nhấn nút chạy.(Lưu ý: trên điện thoại cần phải bật chế độ cho nhà phát triển)

Trang 32

Hình 21 Giao diện của dự án trong Android StudioỨng dụng sau đó sẽ được tải và chạy trực tiếp trên điện thoại.

Trang 33

TÀI LIỆU THAM KHẢO

[1].TensorFlow Lite

[2].Documentation | Android Developers

[3] Andriluka, Mykhaylo, et al "2d human pose estimation: New benchmark and state of the art

analysis." Proceedings of the IEEE Conference on computer Vision and Pattern Recognition 2014.

[4] Toshev, Alexander, and Christian Szegedy "Deeppose: Human pose estimation via deep neural

networks." Proceedings of the IEEE conference on computer vision and pattern recognition 2014.[5] Zheng, Ce, et al "Deep learning-based human pose estimation: A survey." ACM ComputingSurveys 56.1 (2023): 1-37.

[6] Zhang, Feng, Xiatian Zhu, and Mao Ye "Fast human pose estimation." Proceedings of theIEEE/CVF conference on computer vision and pattern recognition 2019.

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