B%i bo co n%y giúp chúng ta hiểu r& về cch sử dụng mã nguồnPython để triển khai OpenPose v% ước lượng tư thế con người trên hình ảnh.Chúng em hy vọng rằng b%i bo co đã cung cấp cho bạn n
Trang 1TRƯỜNG ĐẠI HỌC VĂN LANG KHOA KỸ THUẬT CƠ – ĐIỆN VÀ MÁY TÍNH
BỘ MÔN KHOA HỌC DỮ LIỆU
ĐỒ ÁN MÔN HỌC
Đồ án Khoa học dữ liệu và ứng dụng 1
Đề tài: Human Recognition
Nguyn Quc Nam
Phan Duy Th%nh
V& Xuân Ph)t
Nguyn H%o Phong
Hồ Chi Minh, ng%y / th)ng / năm
Trang 2about:blank 2/18
LỜI CẢM ƠN
Chúng em xin chân th%nh cảm ơn vì đã đọc b%i b)o c)o về ước lượng tư thế con người sử
dụng OpenPose Đây l% một công nghệ quan trọng trong lĩnh vực thị gi)c m)y tinh v%
nhận dạng hình ảnh B%i b)o c)o n%y giúp chúng ta hiểu r& về c)ch sử dụng mã nguồn
Python để triển khai OpenPose v% ước lượng tư thế con người trên hình ảnh
Chúng em hy vọng rằng b%i b)o c)o đã cung cấp cho bạn những kiến thức cơ bản về c)ch
c%i đặt, cấu hình v% sử dụng OpenPose trong ứng dụng thực tế Bạn có thể tham khảo mã
nguồn v% c)c phần giải thich chi tiết để hiểu r& hơn về quy trình l%m việc của OpenPose
v% c)ch nó ước lượng tư thế con người
OpenPose l% một công nghệ mạnh mẽ v% có rất nhiều ứng dụng tiềm năng trong nhiều
lĩnh vực, bao gồm thể thao, y tế, gi)o dục v% nhiều lĩnh vực kh)c Chúng em khuyến
khich bạn tiếp tục kh)m ph) v% ứng dụng OpenPose để nâng cao khả năng phân tich v%
hiểu về tư thế con người
Một lần nữa, xin chân th%nh cảm ơn vì đã đọc b%i b)o c)o n%y Hy vọng nó đã mang lại
cho bạn sự hiểu biết mới v% kh)m ph) thú vị về ước lượng tư thế con người sử dụng
OpenPose
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
DANH MỤC TỪ VIẾT TẮT
Trang 4about:blank 4/18
DANH MỤC THUẬT NGỮ ANH – VIỆT
Trang 5DANH MỤC BẢNG
Trang 6about:blank 6/18
DANH MỤC HÌNH
Trang 7MỤC LỤC
LỜI MỞ ĐẦU 10
CHƯƠNG 1: TỔNG QUAN 12
1.1 Lý do chọn đề tài 12
1.2 Mục tiêu nghiên cứu: Mục tiêu tổng quát và mục tiêu cụ thể: Trả lời câu hỏi “Bạn muốn làm được gì khi thực hiện đề tài?” .12
1.3 Phạm vi của đề tài: Phần này nêu phạm vi của đề tài (Không gian, thời gian, …) 12 1.4 Đối tượng nghiên cứu: nghiên cứu vấn đề gì .12
1.5 Phương pháp nghiên cứu: Trình bày các phương pháp nghiên cứu được sử dụng 12
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 13
CHƯƠNG 3: TỔNG QUAN VỀ THUẬT TOÁN .14
3.1 Giới thiệu .14
3.2 Khái niệm .14
3.3 Định nghĩa .14
3.3 Mô hình của thuật toán .14
CHƯƠNG 4: PHƯƠNG PHÁP 15
4.1 Mục đích sử dụng thuật vào ứng dụng là gì? 15
4.2 Phương pháp nghiên cứu .15
4.3 Khám phá dữ liệu 15
4.4 Tiền xử lý dữ liệu .15
CHƯƠNG 5: KẾT QUẢ NGHIÊN CỨU 16
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 17
6.1 Điểm mạnh 17
6.2 Điểm hạn chế 17
6.3 Hướng phát triển 17
TÀI LIỆU THAM KHẢO 18
Trang 8about:blank 8/18
Trang 9LỜI MỞ ĐẦU
Trong thời đại công nghệ s hiện nay, thị gi)c m)y tinh v% nhận dạng hình ảnh đang trở
th%nh những lĩnh vực đầy tiềm năng v% ph)t triển mạnh mẽ Cùng với sự ph)t triển của
c)c thuật to)n v% công nghệ, chúng ta đã có khả năng ước lượng v% phân tich tư thế con
người từ c)c hình ảnh v% video Điều n%y đã mở ra những c)nh cửa mới trong việc )p
dụng công nghệ thị gi)c m)y tinh v%o nhiều lĩnh vực kh)c nhau như y tế, gi)o dục, thể
thao, an ninh v% nhiều lĩnh vực kh)c
Trong b%i b)o c)o n%y, chúng ta sẽ tìm hiểu về một công nghệ quan trọng trong lĩnh vực
n%y, đó l% OpenPose OpenPose l% một dự )n mã nguồn mở ph)t triển bởi CMU
Perceptual Computing Lab, cho phép chúng ta ước lượng v% phân tich tư thế con người từ
hình ảnh v% video Bằng c)ch sử dụng OpenPose, chúng ta có thể nhận diện v% theo d&i
c)c điểm đặc trưng trên cơ thể con người như cổ, vai, khuỷu tay, đầu gi v% c)c bộ phận
kh)c
B%i b)o c)o sẽ đi sâu v%o việc giải thich c)ch sử dụng mã nguồn Python để triển khai
OpenPose v% ước lượng tư thế con người trên hình ảnh Chúng ta sẽ cùng tìm hiểu c)c
bước c%i đặt, cấu hình v% thực thi OpenPose, v% tìm hiểu c)ch )p dụng công nghệ n%y v%o
c)c ứng dụng thực tế Bên cạnh đó, chúng ta cũng sẽ xem xét c)c vấn đề liên quan v% vi
dụ minh họa để có c)i nhìn tổng quan về ứng dụng của OpenPose trong thực tế
B%i b)o c)o n%y hy vọng sẽ giúp bạn hiểu r& hơn về công nghệ ước lượng tư thế con
người v% c)ch sử dụng OpenPose để )p dụng v%o c)c dự )n v% ứng dụng của riêng bạn
Chúng ta hãy bắt đầu h%nh trình kh)m ph) thế giới của OpenPose v% kh)m ph) những
tiềm năng đầy hứa hẹn m% nó mang lại
Trang 10about:blank 10/18
1.T m t t
B%i b)o c)o n%y tập trung v%o việc giới thiệu v% giải thich c)ch sử dụng OpenPose - một
công nghệ quan trọng trong lĩnh vực thị gi)c m)y tinh v% nhận dạng hình ảnh OpenPose
cho phép ước lượng v% phân tich tư thế con người từ c)c hình ảnh v% video, mở ra nhiều
ứng dụng trong y tế, gi)o dục, thể thao v% nhiều lĩnh vực kh)c
B%i b)o c)o bắt đầu bằng một giới thiệu tổng quan về đề t%i v% phương ph)p nghiên cứu
Tiếp theo, c)c định nghĩa được sử dụng trong b%i viết được trình b%y, giúp đảm bảo sự
hiểu r& về c)c thuật ngữ v% kh)i niệm liên quan đến OpenPose
Sau đó, mô hình của mã nguồn được mô tả chi tiết, bao gồm c)ch c%i đặt thư viện
OpenCV v% OpenPose, cấu hình tham s v% thực hiện ước lượng tư thế con người trên
hình ảnh C)c bước trong mô hình bao gồm tải v% cấu hình thư viện, đọc v% xử lý hình
ảnh, khởi tạo v% cấu hình OpenPose, v% thực hiện ước lượng tư thế
Bên cạnh đó, b%i b)o c)o cũng đề cập đến c)c vấn đề liên quan đến đề t%i, bao gồm c)c
công trình nghiên cứu v% ứng dụng kh)c liên quan đến ước lượng tư thế con người Một
vi dụ minh họa cụ thể được cung cấp để minh họa c)ch sử dụng OpenPose trong thực tế
Cui cùng, b%i b)o c)o đề cập đến ứng dụng của đề t%i, nhấn mạnh những lợi ich v% tiềm
năng của việc ước lượng tư thế con người sử dụng OpenPose trong c)c lĩnh vực kh)c
nhau Cui cùng, kết luận tổng kết lại những kiến thức đã học được v% nhấn mạnh tầm
quan trọng của việc hiểu v% )p dụng công nghệ ước lượng tư thế con người v%o c)c dự )n
v% ứng dụng thực tế
2.Gi i thi u
1.1 Lý do chọn đề tài
Tinh quan trọng v% ứng dụng rộng rãi: Ước lượng tư thế con người l% một lĩnh vực quan
trọng trong thị gi)c m)y tinh v% nhận dạng hình ảnh Nó có ứng dụng rộng rãi trong nhiều
lĩnh vực như y tế, thể thao, gi)o dục, an ninh v% nhiều lĩnh vực kh)c Hiểu về c)ch sử
dụng OpenPose để ước lượng tư thế con người có thể giúp chúng ta )p dụng công nghệ
n%y v%o c)c dự )n v% ứng dụng của mình
Sự ph)t triển nhanh chóng của OpenPose: OpenPose l% một dự )n mã nguồn mở ph)t
triển bởi CMU Perceptual Computing Lab v% đã nhận được sự quan tâm lớn từ cộng đồng
nghiên cứu v% công nghiệp Nó cung cấp c)c công cụ v% thư viện mạnh mẽ để ước lượng
v% phân tich tư thế con người trên hình ảnh v% video Việc nắm bắt được c)ch sử dụng
OpenPose có thể đóng góp v%o việc theo kịp xu hướng v% tiến bộ trong lĩnh vực n%y
Tinh thực tin v% ứng dụng ngay lập tức: Việc ước lượng tư thế con người có thể )p dụng
trong nhiều lĩnh vực thực tế, từ việc phân tich cử chỉ v% động t)c trong thể thao đến theo
d&i v% phân tich tư thế l%m việc trong y tế v% gi)o dục Hiểu c)ch sử dụng OpenPose giúp
Trang 11chúng ta xây dựng c)c ứng dụng v% hệ thng dựa trên ước lượng tư thế con người để giải
quyết c)c vấn đề thực tế hiện tại
Sự ph)t triển của thị gi)c m)y tinh: Thị gi)c m)y tinh v% nhận dạng hình ảnh l% một lĩnh
vực đang ph)t triển nhanh chóng Hiểu về c)ch sử dụng OpenPose để ước lượng tư thế
con người giúp chúng ta thấy được tiềm năng v% khả năng của công nghệ n%y trong việc
xử lý v% phân tich hình ảnh Đề t%i n%y có thể giúp chúng ta nắm bắt
1.2 Mục tiêu nghiên cứu:
Mục tiêu của b%i b)o c)o n%y l% trình b%y về qu) trình ước lượng tư thế con người sử
dụng mã nguồn có sẵn, giải thich c)c định nghĩa v% thuật ngữ liên quan, mô tả chi tiết về
c)c bước v% thuật to)n được sử dụng, đưa ra vi dụ minh họa, nêu c)c vấn đề liên quan v%
c)c ứng dụng của ước lượng tư thế con người
Phương pháp nghiên cứu:
Phương ph)p nghiên cứu sử dụng trong b%i b)o c)o n%y l% sử dụng thư viện OpenPose
v% mã nguồn Python để xây dựng một chương trình nhận dạng v% theo d&i c)c điểm
chinh trên cơ thể người Mã nguồn được cung cấp sẵn v% được c%i đặt bằng c)ch sử
dụng CMake v% c)c công cụ biên dịch
2 Các định nghĩa được sử dụng
Trong b)o c)o n%y, chúng tôi sử dụng c)c định nghĩa sau:
Ước lượng tư thế con người: Qu) trình nhận dạng v% theo d&i c)c điểm chinh trên cơ thể
người để x)c định tư thế v% động t)c của con người
OpenPose: Thư viện mã nguồn mở cho việc ước lượng tư thế con người, sử dụng deep
learning v% computer vision
Python: Ngôn ngữ lập trình cao cấp, được sử dụng trong b%i b)o c)o n%y để xây dựng v%
chạy mã nguồn ước lượng tư thế
3 Các nghiên cứu trong và ngoài nước
OpenPose l% một công nghệ ước lượng tư thế con người ph)t triển bởi CMU Perceptual
Computing Lab Công nghệ n%y đã thu hút sự quan tâm v% nghiên cứu từ cộng đồng
nghiên cứu v% công nghiệp Dưới đây l% một s nghiên cứu đ)ng chú ý liên quan đến
OpenPose:
"Real-time pose estimation using OpenPose library in Python" - T)c giả: Xavier Geerinck Nghiên cứu n%y giới thiệu việc sử dụng thư viện OpenPose trong Python để ước lượng tư thế con người trong thời gian thực Nghiên cứu n%y đề cập đến c)ch c%i đặt v% sử dụng OpenPose, v% cung cấp một s ứng dụng thực tế như nhận diện tư thế yoga v% tư thế thể thao
Trang 12about:blank 12/18
"OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields"
- T)c giả: Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh Đây l% b%i b)o gc giới thiệu công nghệ OpenPose Nghiên cứu n%y mô tả chi tiết về kiến trúc v%
thuật to)n của OpenPose, bao gồm sử dụng c)c mạng neural để ước lượng tư thế con người v% mô hình mi quan hệ giữa c)c phần của cơ thể
"Multi-Person Pose Estimation with Enhanced Channel-wise and Spatial Information" - T)c giả: Yu-Tong Cao, Yun-Fei Yang, Yen-Yu Lin, Yung-Yu Chuang Nghiên cứu n%y tập trung v%o việc cải thiện độ chinh x)c của OpenPose trong việc ước lượng tư thế con người Bằng c)ch tăng cường thông tin kênh v%
không gian, phương ph)p n%y đạt được kết quả tt hơn trong việc ph)t hiện v%
theo d&i c)c phần cơ thể
"Real-time Multiple People Tracking with Deeply Learned Candidate Selection and Person Re-identification" - T)c giả: Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh Nghiên cứu n%y mở rộng OpenPose để thực hiện theo d&i nhiều người trong thời gian thực Phương ph)p n%y kết hợp việc lựa chọn ứng viên thông qua học sâu v% t)i x)c định danh tinh của người để theo d&i nhiều người di chuyển trên video
C)c nghiên cứu trên đại diện cho một phần nhỏ trong s nhiều nghiên cứu được thực hiện
với OpenPose Công nghệ n%y đã tạo ra sự quan tâm v% ứng dụng rộng rãi trong c)c lĩnh
vực như nhận dạng tư thế, phân tich chuyển động, phân tich h%nh vi, thể thao, y học,
giảng dạy v% nhiều lĩnh vực kh)c
ƯU NHƯˆC ĐIỂM
"Real-time pose estimation using OpenPose library in Python":
Ưu điểm: Nghiên cứu n%y cung cấp một hướng dẫn chi tiết về c)ch sử dụng OpenPose trong Python v% )p dụng nó v%o c)c ứng dụng thực tế như yoga v% thể thao
Nhược điểm: Nghiên cứu n%y tập trung v%o việc ứng dụng OpenPose v% không đề cập đến c)c cải tiến hoặc điểm mạnh của thuật to)n OpenPose
"OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields":
Ưu điểm: Nghiên cứu n%y l% b%i b)o gc giới thiệu công nghệ OpenPose, giải thich chi tiết về kiến trúc v% thuật to)n của nó
Nhược điểm: Có thể thiếu một s chi tiết về c)ch OpenPose được c%i đặt v% sử dụng trong thực tế
"Multi-Person Pose Estimation with Enhanced Channel-wise and Spatial
Information":
Trang 13Ưu điểm: Nghiên cứu n%y tập trung v%o việc cải thiện độ chinh x)c của OpenPose trong việc ước lượng tư thế con người bằng c)ch tăng cường thông tin kênh v%
không gian
Nhược điểm: Nghiên cứu n%y có thể không đề cập đến một s khia cạnh kh)c của OpenPose như tc độ v% khả năng đa người
"Real-time Multiple People Tracking with Deeply Learned Candidate Selection and
Person Re-identification":
Ưu điểm: Nghiên cứu n%y mở rộng OpenPose để thực hiện theo d&i nhiều người trong thời gian thực v% giải quyết vấn đề t)i x)c định danh tinh của người trong qu) trình theo d&i
Nhược điểm: Nghiên cứu n%y có thể tập trung v%o một khia cạnh cụ thể của OpenPose v% không đề cập đến c)c ứng dụng kh)c
Cần lưu ý rằng mỗi nghiên cứu có những mục tiêu v% phạm vi kh)c nhau, v% việc đ)nh
gi) ưu nhược điểm phụ thuộc v%o mục đich sử dụng v% yêu cầu cụ thể của từng người
dùng
Các nô ‰i dung được thực hiê ‰n trong đề tài
Tìm hiểu về OpenPose: Đầu tiên, chúng ta tìm hiểu về công nghệ OpenPose v% c)ch nó
hoạt động Điều n%y bao gồm việc nghiên cứu c)c b%i b)o, t%i liệu v% t%i nguyên kh)c về
OpenPose để hiểu c)ch nó ước lượng tư thế con người dựa trên hình ảnh
C%i đặt OpenPose: Tiếp theo, chúng ta thực hiện việc c%i đặt OpenPose trên m)y tinh của
mình Điều n%y bao gồm tải xung mã nguồn OpenPose từ kho lưu trữ GitHub chinh thức
của OpenPose v% thực hiện c)c bước c%i đặt cần thiết, bao gồm c%i đặt c)c thư viện phụ
thuộc v% công cụ ph)t triển
Tạo chương trình Python sử dụng OpenPose: Chúng ta viết mã Python để sử dụng
OpenPose để ước lượng tư thế con người trên một hình ảnh đầu v%o Mã n%y sẽ sử dụng
thư viện OpenCV để đọc hình ảnh v% gọi OpenPose để thực hiện ước lượng tư thế
Cấu hình tham s v% c%i đặt: Chúng ta cấu hình c)c tham s của OpenPose để điều chỉnh
qu) trình ước lượng tư thế theo yêu cầu cụ thể Điều n%y bao gồm thiết lập c)c tham s
như mô hình mạng neural sử dụng, đường dẫn đến c)c file mô hình, ngưỡng nhận dạng
v% c)c tham s kh)c
Đ)nh gi) kết quả: Chúng ta đ)nh gi) kết quả của qu) trình ước lượng tư thế bằng c)ch
hiển thị hình ảnh ban đầu v% vẽ c)c điểm v% đường ni tượng tư thế trên đó Chúng ta
cũng có thể tinh to)n c)c thng kê về tư thế như góc cơ thể, khoảng c)ch giữa c)c điểm
v% c)c đặc trưng kh)c
Ứng dụng: Cui cùng, chúng ta xem xét c)c ứng dụng của OpenPose trong c)c lĩnh vực
như nhận dạng tư thế, phân tich chuyển động, phân tich h%nh vi, y học, giảng dạy v% thể
Trang 14about:blank 14/18
thao Chúng ta nêu ra c)c vi dụ cụ thể về c)ch OpenPose có thể được )p dụng trong c)c
tình hung thực tế
C)c nội dung trên đại diện cho quy trình nghiên cứu v% thực hiện đề t%i n%y, từ việc tìm
hiểu công nghệ OpenPose, c%i đặt v% sử dụng nó, đ)nh gi) kết quả v% )p dụng trong c)c
lĩnh vực kh)c nhau
Phương pháp thực hiê ‰n
3.Mô t d li u (Dataset)
Dữ liệu (dataset) trong đề t%i OpenPose đóng vai trò quan trọng trong việc huấn luyện v%
đ)nh gi) hiệu suất của hệ thng Dữ liệu n%y thường chứa c)c hình ảnh hoặc video chứa
con người trong c)c tư thế kh)c nhau, được sử dụng để ước lượng v% phân tich tư thế con
người bằng OpenPose
Một dataset thông thường trong đề t%i OpenPose có thể bao gồm c)c th%nh phần sau:
Hình ảnh hoặc video: Đây l% dữ liệu đầu v%o chứa con người trong c)c tư thế kh)c nhau C)c hình ảnh có thể được thu thập từ nhiều nguồn, bao gồm c)c cơ sở dữ liệu công khai, c)c bộ dữ liệu mẫu có sẵn hoặc có thể tạo ra bằng c)ch chụp hình hoặc quay video từ m)y ảnh hoặc camera
Nhãn (labels): Mỗi hình ảnh hoặc video trong dataset cần được gắn nhãn với c)c thông tin tương ứng về tư thế con người Nhãn có thể chứa c)c thông tin như vị tri của c)c điểm mc cơ thể (như mắt, mũi, tay, chân), c)c đường ni giữa c)c điểm mc, c)c góc cơ thể, v.v Nhãn n%y cung cấp một tập dữ liệu đ)ng tin cậy để so s)nh với kết quả ước lượng của OpenPose v% đ)nh gi) hiệu suất của nó
Phân chia tập dữ liệu (train/val/test): Dataset thường được chia th%nh c)c tập dữ liệu con, bao gồm tập huấn luyện (train), tập x)c thực (validation) v% tập kiểm tra (test) Tập huấn luyện được sử dụng để huấn luyện mô hình OpenPose, tập x)c thực được sử dụng để điều chỉnh c)c siêu tham s v% tập kiểm tra được sử dụng để đ)nh gi) hiệu suất của mô hình đã được huấn luyện
Định dạng dữ liệu: Dữ liệu trong dataset có thể được lưu trữ dưới nhiều định dạng kh)c nhau, chẳng hạn như hình ảnh (JPEG, PNG) hoặc video (AVI, MP4) Định dạng dữ liệu phụ thuộc v%o yêu cầu cụ thể của đề t%i v% công nghệ sử dụng
Một dataset tt v% đa dạng l% quan trọng để đảm bảo rằng mô hình OpenPose được huấn
luyện v% đ)nh gi) trên một loạt c)c tư thế con người thực tế Việc sử dụng dataset đa dạng
giúp nâng cao độ chinh x)c v% khả năng tổng qu)t hóa của mô hình