(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông(Luận văn thạc sĩ) Ứng dụng thuật toán nhận dạng chuyển động của người trong môi trường 3D để huấn luyện cho Robot chơi cầu lông
LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tp Hồ Chí Minh, ngày … tháng … năm 2017 (Ký tên ghi rõ họ tên) ix LỜI CẢM ƠN Em xin chân thành cám ơn Thầy, Cô khoa Điện – Điện Tử trang bị cho em kiến thức có liên quan giúp em hoàn thành tốt đề tài Cám ơn bạn lớp chia kinh nghiệm hỗ trợ lúc làm đề tài Cảm ơn thành viên 3DVisionLab hỗ trợ sở vật chất tạo điều kiện không gian làm việc Cảm ơn Ba Mẹ quan tâm, động viên tinh thần chăm lo thể chất Đặc biệt em xin chân thành cảm ơn Thầy hướng dẫn, TS Nguyễn Văn Thái hướng dẫn hỗ trợ em lúc thực đề tài Học viên Trần Quang Vinh x TÓM TẮT Những năm gần lĩnh vực Thị giác máy tính phát triển mạnh đặc biệt xuất camera 3D giá bình dân nhận nhiều quan tâm kỹ sư học viên nghiên cứu lĩnh vực Phát theo dõi người có nhiều ứng dụng thực tiễn ví dụ: giám sát an ninh, theo dõi cử động té ngã người cao tuổi ứng dụng chăm sóc y tế, ứng dụng game mang tính vận động giúp người chơi vừa chơi game vừa luyện tập thể thao hãng Microsoft, Đề tài trình bày kỹ thuật phát theo dõi vận động viên định vị trí vận động viên sân cầu lơng từ đưa tọa độ vận động viên để máy phát cầu xử lý bắn trái cầu lơng đến vị trí mong muốn, giúp vận động viên luyện tập với máy phát cầu lông tự động hiệu Phát theo dõi người môi trường dùng camera 2D thường bị nhiễu ánh sáng môi trường, cách sử dụng camera 3D thu ảnh độ sâu dùng thành phần độ sâu để tracking hạn chế nhược điểm nhiễu ánh sáng môi trường Ý tưởng ban đầu dùng camera 3D Kinect thu thập liệu ảnh màu ảnh độ sâu vận động viên sân, tiến hành detect vận động viên, tiến hành theo dõi vận động viên định vị trí vận động viên sân cầu, xuất kết tọa độ hình ảnh vận động viên sân Từ kết tọa độ thu làm đầu vào cho xử lý máy phát cầu lông tự động Do thời gian khả có hạn nên tác giả tập trung làm phần theo dõi xác định vị trí vận động viên sân cầu lơng xi ABSTRACT In recent years, the field of computer vision has grown, especially the appearance of low-cost 3D camera, which has received much attention from engineers and students research on this field Detecting and tracking people have many applications in life, example: security monitoring, tracking movements of falls of elderly people in the application of medical care, the application of the action games help players play games and excerise Thesis presents the technique of detecting and tracking athletes and maping position athletes on the badminton field from which the athlete's coordinates are given so that the Badminton robot can shooting down the badminton ball to the position Desire, helping athletes practice with automatic badminton is the best way Detecting and tracking people in a 2D environment is not exactly by ambient light, so using a 3D camera and using the depth data for tracking to minimize the environmental noise interference defects The initial idea was to use a Kinect 3D camera to capture color and depth images of the athlete on the field, then to detect athletes, followed by tracker and positioning of the athlete, show picture athlete, maping athlete Output coordinates and pictures of athletes on the Badminton yard Calculate the position of the badminton shuttlecock falling that machine will shoot From the result obtained coordinates will be the input for the next process in the automatic badminton machine Due to limited time, Author concentrates only on the tracking and positioning of athletes and calculate the position of the badminton shuttlecock on the badminton field Show all coordinates on screen xii MỤC LỤC QUYẾT ĐỊNH GIAO ĐỀ TÀI i LÝ LỊCH KHOA HỌC viii LỜI CAM ĐOAN ix LỜI CẢM ƠN x TÓM TẮT xi MỤC LỤC xiii DANH SÁCH CÁC CHỮ VIẾT TẮT xv DANH SÁCH CÁC HÌNH xvi Chương TỔNG QUAN 1.1 Tổng quan hướng nghiên cứu 1.2 Tính cấp thiết đề tài, ý nghĩa khoa học thực tiễn đề tài .4 1.3 Mục đích nghiên cứu đối tượng nghiên cứu đề tài 1.4 Nhiệm vụ giới hạn đề tài 1.5 Phương pháp nghiên cứu nội dung nghiên cứu 1.5.1 Phương pháp nghiên cứu 1.5.2 Nội dung nghiên cứu .5 1.6 Kế hoạch thực đề tài Chương CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu camera 3D Kinect Microsoft 2.1.1 Giới thiệu tổng quan camera 3D Kinect Microsoft 2.1.2 Các thành phần camera 3D Kinect .8 2.1.3 Tính tốn thơng tin độ sâu 10 2.1.4 Các thư viện hỗ trợ 15 2.1.4.1 Thư viện hỗ trợ tương tác tự nhiên 15 2.1.4.2 Các thư viện tương tác tự nhiên với Camera 3D .16 2.1.4.3 Open NI 16 2.2 Thuật toán rừng định ngẫu nhiên - randomized decision forest 18 2.2.1 Cây định: 18 xiii 2.2.2 Thuật toán rừng định ngẫu nhiên - randomized decision forest .19 2.3 Thuật toán Mean shift clusting 24 2.4 Khoảng cách Eulid 29 Chương PHÁT HIỆN CHUYỂN ĐỘNG CƠ THỂ NGƯỜI TRONG KHÔNG GIAN 3D VÀ CÀI ĐẶT CHO MÁY PHÁT CẦU LÔNG 30 3.1 Sơ đồ khối 30 3.2 Khối lấy liệu hình ảnh 3D 32 3.3 Khối nhận dạng tư người 36 3.4 Khối nhận dạng tracking người 37 3.5 Khối nhận dạng tọa độ người sân 39 3.6 Khối cài đặt cho máy phát cầu lông 42 3.7 Khối hiển thị 45 Chương CHƯƠNG TRÌNH VÀ HƯỚNG DẪN SỬ DỤNG 46 4.1 Giao diện chức chương trình .46 4.2 Cách sử dụng chương trình .50 Chương KẾT QUẢ VÀ THẢO LUẬN 51 5.1 Kết đạt 51 5.2 Thực nghiệm đánh giá độ xác hệ thống .52 5.3 Thảo luận 54 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58 TÀI LIỆU THAM KHẢO 59 xiv DANH SÁCH CÁC CHỮ VIẾT TẮT Viết tắt IR IR emitter IR Depth sensor RGB-D 3D Tiếng Anh Infrared Infrared emitter Red Green Blue – Depth dimention xv Nghĩa Tiếng Việt Tia hồng ngoại Bộ phát hồng ngoại Cảm biến độ sâu hồng ngoại Đỏ Xanh Xanh lam – Độ sâu Không gian chiều DANH SÁCH CÁC HÌNH Hình 2.1: Ảnh màu ảnh độ sâu thu từ camera Kinect Hình 2.2: Mơ hình cấu tạo camera Kinect Hình 2.3: Phạm vi độ sâu cảm biến Kinect Hình 2.4: Minh họa công nghệ Light Coding PrimeSense 11 Hình 2.5: Nguyên lý tạo ảnh độ sâu cảm biến Kinect 12 Hình 2.6: Ngun tắc tính tốn độ sâu ảnh cảm biến Kinect 13 Hình 2.7: Các tỉ lệ hình học tính độ sâu ảnh cảm biến Kinect 13 Hình 2.8: Quá trình thu ảnh chiều sâu 14 Hình 2.9: Cơng thức tính tốn chiều sâu 15 Hình 2.10: Tổng quát thư viện hỗ trợ thiết bị 16 Hình 2.11: Tổng quan lớp Open NI 17 Hình 2.12: Lưu đồ minh họa định 19 Hình 2.13: Lưu đồ minh họa rừng định 20 Hình 2.14: Lưu đồ minh họa nút tách (split nodes) nút (Leaf nodes) 20 Hình 2.15: Lưu đồ phân loại liệu 21 Hình 2.16: Lưu đồ rừng định mô tả Shotton et al, CVPR(2011) 22 Hình 2.17: Qui trình tracking skeleton Shotton et al, CVPR(2011) 23 Hình 2.18: Chuyển đổi vùng thể thành điểm nối thành khung Shotton et al, CVPR(2011) 24 Hình 2.19: Tìm kiếm vùng mật độ điểm lớn liệu thực 26 Hình 2.20: Mean shift vector vùng cửa sổ 27 Hình 2.21: Ý nghĩa cơng thức thuật tốn mean shift 28 Hình 2.22: Hệ toạ độ Descartes Oxyz với hai điểm A, B 29 Hình 3.1: Sơ đồ khối trình nhận dạng thể người cài đặt cho máy phát cầu lông 30 Hình 3.2: Các ứng dụng khả giao tiếp thư viện Open NI 33 Hình 3.3: Phầm mềm visual studio Microsoft 33 Hình 3.4: Lưu đồ lấy hình ảnh chiều sâu 34 Hình 3.5: Hình ảnh chiều sâu cầu thang 36 Hình 3.6: Hình ảnh chiều sâu khơng gian có cánh tay 36 xvi Hình 3.7: Phân đoạn người 37 Hình 3.8: Một mẫu người để training biết trước khớp 38 Hình 3.9: Lưu đồ giải thuật nhận dạng thể tracking xương 39 Hình 3.10: Tọa độ khoảng cách quy định sân cầu lơng 41 Hình 3.11: Lưu đồ xác định tọa độ người chơi sân 42 Hình 3.12: Lưu đồ giải thuật cài đặt cho máy phát cầu lơng 44 Hình 3.13: Hình ảnh chiều sâu tọa độ người chơi sân vị trí 45 Hình 3.14: Hình ảnh chiều sâu tọa độ người chơi sân vị trí 46 Hình 4.1: Giao diện thiết kế tổng quan 47 Hình 4.2: Tọa độ khung hình chiều sâu 48 Hình 4.3: Sân cầu lơng tuyến tính theo kích thước thực tế 49 Hình 4.4: Đường màu đỏ vẽ lại vị trí người chơi di chuyển sân 50 Hình 4.5: Đối tượng điều khiển hiển thị 50 Hình 5.1: Hình ảnh 3D – Vị trí di chuyển – Tọa độ người chơi tọa độ điểm cầu rơi mà máy chọn bắn đến 51 Hình 5.2: Hình ảnh thực nghiệm 52 Hình 5.3: Hình ảnh thực nghiệm 53 Hình 5.4: Khi người chơi đứng cách Camera < 0.8 m nên không tracking khung xương 54 Hình 5.5: Khi người chơi đứng cách Camera > m nên không tracking khung xương 55 Hình 5.6: Khi người chơi đứng cách xa Camera phạm vi nhỏ 6m nên camera tracking khung xương 56 Hình 5.7: Lỗi hố đen xuất ảnh độ sâu 57 xvii Chương TỔNG QUAN 1.1 Tổng quan hướng nghiên cứu Những năm gần lĩnh vực thị giác máy tính phát triển mạnh, có nhiều báo, cơng trình nghiên cứu lĩnh vực Một nhánh nhỏ lĩnh vực sử dụng camera 3D (là camera vừa thu ảnh màu ảnh độ sâu) để phát chuyển động thể người, xác định vị trí đối tượng để ứng dụng điều khiển, ứng dụng game tương tác 3D, xây dựng mơ hình 3D nhận dạng mơ hình 3D … Về cơng nghệ robot phát cầu lơng có cơng trình nghiên cứu sau 1.1.1 Tình hình nghiên cứu ngồi nước Năm 2002, tác giả Jonathan Taryoto đưa thiết kế máy phát cầu lông báo “ Shuttlcock launcher and method for launching” Trong báo tác giả sử dụng cấu phát cầu sử dụng hai bánh đà để phát cầu cấu thiết kế [1] Trong báo “A Study on Projection Performance of Roller Type Badminton Machine and Its Optimization” [2] nhóm Shinobu Sakai, Ryota Nobe and Koetsu Yamaza năm 2011 đề cập hiệu suất máy phát cầu lông sử dụng bánh đà việc tối ưu sản phẩm sử dụng hai bánh đà Năm 2012, nhóm tác giả Caroline Cohen, Baptiste Darbois Texier, David Quere Christophe Clanet xác định phương trình động lực học cầu lông báo “Shuttlecock dynamics” [4] cầu lông cung cấp vận tốc ban đầu Một lần nữa, phương trình động lực học trái cầu lơng nhóm bốn tác giả Caroline Cohen, Baptiste Darbois Texier, David thể qua báo “The physics of badminton”[5] công bố năm 2015 Hình 4.1: Giao diện thiết kế tổng quan Để tìm hiểu kỹ cách lấy tọa độ cách phân bố giao diện đồ họa ta vào chi tiết phần sau Phần thứ nhất: - Khung ảnh chiều sâu: Khung ảnh chiều sâu hình có tọa độ 320x240 pixcel 320 chiều rộng tương đương với trục x, 240 chiều cao tương đương với trục y, z khoảng cách từ đối tượng đến camera 47 Hình 4.2: Tọa độ khung hình chiều sâu - Khung sân cầu lơng Khung sân cầu lơng tuyến tính theo kích thước thực tế đề tài tác giả chọn kích thước mét rộng mét dài phù hợp với vùng hoạt động camera 3D, sân hiển thị vị trí người chơi vị trí điểm cầu rơi Do kích thước tương đối nên vị trí hiển thị tương đối theo kích thước thực tế sân cầu lơng 48 Hình 4.3: Sân cầu lơng tuyến tính theo kích thước thực tế Khi người chơi di chuyển sân, vị trí người chơi đánh dấu nét màu đỏ Hình 4.4 49 Hình 4.4: Đường màu đỏ vẽ lại vị trí người chơi di chuyển sân - Các đối tượng điều khiển hiển thị Các đối tượng điều khiển dùng để điều khiển Hình 4.5: Đối tượng điều khiển hiển thị Các tọa độ người chơi tọa độ cầu rơi hiển thị trên 4.2 Cách sử dụng chương trình Khi nhấn Nút nhấn START trình lấy liệu tọa độ người chơi sân bắt đầu máy tính tính tốn tọa độ cầu rơi sau gửi liệu góc xoay trái, xoay phải, tốc độ xuống máy phát cầu Khi nhấn Nút nhấn STOP tất trình dừng lại 50 Chương KẾT QUẢ VÀ THẢO LUẬN 5.1 Kết đạt Sau thời gian nghiên cứu thực nghiệm kết thu được: - Thiết kế viết chương trình giao diện - Thiết kế viết chương trình nhận dạng xác định tọa độ người chơi tính tốn tọa độ cầu rơi chạy theo thời gian thực - Chương trình giải toán ứng dụng thuật toán nhận dạng chuyển động người, xác định vị trí người chơi sân cầu lơng Đánh dấu vị trí người chơi di chuyển sân theo thời gian thực - Các kết chạy chương trình Hình 4.5 hiển thị vị trí người chơi tọa độ (X = 3.04 m, Y = 1.86 m) tọa độ phát cầu chương trình tính tốn (X = m, Y = m) Đường màu đỏ vị trí vận động viên di chuyển trước Hình 5.1: Hình ảnh 3D – Vị trí di chuyển – Tọa độ người chơi tọa độ điểm cầu rơi mà máy chọn bắn đến 51 5.2 Thực nghiệm đánh giá độ xác hệ thống Tác giả kiểm chứng thực tế phòng Lab với khoảng cách từ 1.2 đến 3m so với vị trí đặt camera chương trình nhận dạng bắt tọa độ người sai lệch so với vị trí thật từ 0,1 m đến 0.3 m Cách kiểm chứng tác giả so sánh vị trí tọa độ vận động viên mà chương trình đọc so với vị trí thật vận động viên sân dùng thước đo khoảng cách từ vận động viên đến biên sân theo chiều dài rộng Ngồi phạm vi khơng nhận dạng được tọa độ người chơi giới hạn camera Một số hình ảnh thực nghiệm: Hình 5.2: Hình ảnh thực nghiệm 52 Hình 5.3: Hình ảnh thực nghiệm 53 5.3 Thảo luận - Khi vận động viên di chuyển sát lưới (gần camera) di chuyển cuối sân chương trình đánh dấu vị trí chuyển động khơng xác rơi vào vùng mù camera ( camera nhận diện tốt từ khoảng cách 0.8 m đến m) Hình 5.2 minh họa vị trí người chơi đứng q gần Camera, nên Camera khơng thể tracking khung xương Hình 5.4: Khi người chơi đứng cách Camera < 0.8 m nên không tracking khung xương - Tương tự người chơi đứng cách Camera xa tracking khung xương, tham khảo Hình 5.3 54 Hình 5.5: Khi người chơi đứng cách Camera > m nên không tracking khung xương 55 Hình 5.6: Khi người chơi đứng cách xa Camera phạm vi nhỏ 6m nên camera tracking khung xương - Ảnh 3D vận động viên bị lỗ đen vùng biên cảm biến hồng ngoại nguồn phát hồng ngoại đặt cách xa đoạn nên có điểm phát hồng ngoại chiếu tới đối tượng cảm biến hồng ngoại khơng thu Hình 5.5 minh họa điểu 56 Hình 5.7: Lỗi hố đen xuất ảnh độ sâu 57 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Luận văn giải tốn phát vận động viên tính tọa độ vận động viên sân cầu lông Luận văn phát triển thêm cách tracking vẽ quỹ đạo bay trái cầu đến điểm rơi từ điều khiển máy phát cầu lông tốt Trong tương lai hãng công nghệ phát triển thêm sản phẩm camera 3D có chất lượng tốt áp dụng vào chương trình cho ứng dụng phần mềm tốt Do thời gian có hạn nên tác giả cố gắng giải tốn để hồn thành luận văn tốt nghiệp cho tiến độ Trong tương lai tác giả tìm hiểu thuật tốn tốt để phát triển luận văn theo hướng Machine learing để điều khiển máy phát cầu lông tốt 58 TÀI LIỆU THAM KHẢO [1] Jonathan Taryoto, “Shuttlcock launcher and method for launching”, Apr 12, 2002 [2] Shinobu Sakai, Ryota Nobeand Koetsu Yamazaki, “A Study on Projection Performance of Roller Type Badminton Machine and Its Optimization”, June 13 17, 2011, Shizuoka, Japan [3] Trần Nguyên Soái, luận văn Thạc sĩ “THIẾT KẾ VÀ THI CÔNG ROBOT THÔNG MINH HUẤN LUYỆN CHƠI CẦU LƠNG SỬ DỤNG THUẬT TỐN NHẬN DẠNG CHUYỂN ĐỘNG 3D” Đại Học Sư Phạm Kỹ Thuật TPHCM (2017) [4] Baptiste Darbois Texier, Caroline Cohen, David Quere, Christophe Clanet; “Shuttlecock dynamics”, Accepted 05 March 2012 [5] Caroline Cohen, Baptiste Darbois Texier, David Quere and Christophe Clanet, “The physics of badminton”, New J Phys 17 (2015) [6] Armando Nava, Leonardo Garrido and Ramon F Brena; “Recognizing Activities Using a Kinect Skeleton tracking and Hidden Markov Models” (2014) [7] Pei-Fu Tsou, Chao-Cheng Wu; “Estimation of Calories Consumption for Aerobics Using Kinect based Skeleton Tracking” Washington, May 26-30, 2015 [8] Michael Fleder, Sudeep Pillai, Jeremy Scott “3D Object Tracking Using the Kinect” - MIT CSAIL, 6.870 [9] Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, Andrew Blake; “Real-Time Human Pose Recognition in Parts from Single Depth Images” CVPR 2011 [10] Liang-Chia Chen, Nguyen Van Thai, Hung-Fa Shyu, Hsien-I Lin In situ clouds-powered 3-D radiation detection and localization using novel color-depth- 59 radiation (CDR) mapping Advanced Robotics, Vol 28, Issue 12, pp 841-857, 2014 60 S K L 0 ... kế khí áp dụng thuật tốn nhận dạng chuyển động người – tập trung nghiên cứu phần cứng Robot) Ứng dụng thuật toán nhận dạng chuyển động người môi trường 3D để huấn luyện cho robot chơi cầu lơng... chọn đề tài ? ?ỨNG DỤNG THUẬT TOÁN NHẬN DẠNG CHUYỂN ĐỘNG CỦA NGƯỜI TRONG MÔI TRƯỜNG 3D ĐỂ HUẤN LUYỆN CHO ROBOT CHƠI CẦU LÔNG” làm đề tài tốt nghiệp thạc sĩ chuyên ngành Kỹ Thuật Điện Tử Mục đích... máy phát cầu lông tự động cho vận động viên luyện tập cần thiết Ứng dụng thuật toán phát người để xác định vị trí người chơi sân từ huấn luyện cho máy phát cầu đến vị trí cách xa vận động viên