Khối này sẽ có nhiệm vụ tìm được vị trí người chơi trên sân bằng cách chuyển các tọa độ trong bản đồ chiều sâu về cùng thứ nguyên với kích thước trên sân cầu lơng là mét.
Bắt đầu
Phân đoạn người
Randomized decision forrest
Meanshift
Skeleton cơ thể người
Kết thúc Yes
40
Để tuyến tính tọa độ người trong bản đồ chiều sâu và người trên sân cầu lơng thì phải quy định kích thước trên sân cầu lông từ trước. Do camera 3D đang sử dụng có khoảng cách phát hiện bị giới hạn nên một bên sân cầu lơng được quy định có kích thước rộng 5m và dài 6m, trong khi đó bản đồ chiều sâu có kích thước rộng từ 0 đến 320 pixcel và chiều dài là khoảng cách từ đối tượng đến camera, khoảng cách này là khoảng cách theo đường thẳng vng góc với lưới, khơng phải là khoảng cách trực tiếp đến camera theo đường chim bay.
41
42 Lưu đồ giải thuật
Hình 3.11: Lưu đồ xác định tọa độ người chơi trên sân
Gọi x là tọa độ theo phương ngang của người chơi theo thứ nguyên là mét và N là tọa độ người chơi theo phương ngang theo thứ nguyên pixcel thì:
x= (N*5)/320
Gọi y là tọa độ người chơi theo phương dọc theo chiều dài sân và Y là tọa độ lấy được từ bộ xương trong bản đồ chiều sâu thì:
Khi đó y = Y/1000
3.6 Khối cài đặt cho máy phát cầu lơng
Tuyến tính đơn vị pixcel bằng đơn vị mét thực tế trên sân
Đưa ra tọa độ người chơi trên sân
Kết thúc Bắt đầu
Lấy tọa độ thực tế từ camera đơn vị pixcel
43
Để máy phát cầu lông nhận biết được sẽ phát cầu đến vị trí nào thì máy phát cầu phải biết được người chơi đang đứng ở vị trí tọa độ thực tế nào trên sân, phần này đã do khối nhận dạng người chơi trên sân thực hiện. Tiếp theo sau khối cài đặt cho máy phát cầu lơng sẽ tính tốn các khoảng cách từ các tọa độ cầu rơi cho trước đến vị trí tọa độ người chơi trên sân từ các khoảng cách đó tìm ra các tọa độ có khoảng cách xa nhất đến người chơi và phát cầu một điểm ngẫu nhiên xa nhất nào đó.
44
Hình 3.12: Lưu đồ giải thuật cài đặt cho máy phát cầu lông
Bắt đầu
Dùng Ecidean Distance tính tốn khoảng cách từ các tọa độ cầu rơi đến người chơi
Lấy 15 khoảng cách xa nhất
Chọn ngẫu nhiên một điểm
3 giây? Yes Kết thúc? No Kết thúc Yes No
45
3.7 Khối hiển thị
Khối hiển thị với mục đích là hiển thị vị trí người chơi trên sân để giúp cho việc phân tích trở nên trực quan sinh động hơn.
46
Hình 3.14: Hình ảnh chiều sâu và tọa độ người chơi trên sân vị trí 2
Chương 4
CHƯƠNG TRÌNH VÀ HƯỚNG DẪN SỬ DỤNG
4.1 Giao diện và chức năng chương trình
Giao diện chương trình được thiết kế gồm 4 phần chính:
- Phần thứ nhất là không gian chiều sâu, nơi hiển thị hình ảnh chiều sâu và người chơi trên sân.
- Phần thứ hai là hiển thị vị trí người chơi trên sân, hình ảnh quá trình di chuyển của người chơi trên sân sẽ được đánh dấu màu đỏ.
- Phần thứ ba là giới thiệu thông tin và đề tài.
- Phần thứ tư là phần khiển là phần có các đối tượng điều khiển để bắt đầu quá trình chạy dừng và đưa dữ liệu từ máy tính xuống máy phát cầu lơng.
47
Hình 4.1: Giao diện thiết kế tổng quan
Để tìm hiểu kỹ hơn về cách lấy tọa độ cũng như cách phân bố trên giao diện đồ họa ta cùng đi vào chi tiết từng phần như sau.
Phần thứ nhất:
- Khung ảnh chiều sâu:
Khung ảnh chiều sâu trong hình có tọa độ 320x240 pixcel trong đó 320 là chiều rộng tương đương với trục x, 240 là chiều cao tương đương với trục y, và z là khoảng cách từ đối tượng đến camera.
48
Hình 4.2: Tọa độ trong khung hình chiều sâu
- Khung sân cầu lông
Khung sân cầu lơng được tuyến tính theo kích thước thực tế trong đề tài tác giả chọn kích thước là 5 mét rộng và 6 mét dài để cho phù hợp với vùng hoạt động của camera 3D, trong sân sẽ hiển thị vị trí của người chơi và vị trí các điểm cầu rơi.
Do kích thước là tương đối nên vị trí hiển thị cũng là tương đối theo kích thước thực tế của sân cầu lơng.
49
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 trên sân, vị trí người chơi sẽ được đánh dấu bằng những nét màu đỏ như Hình 4.4.
50
Hình 4.4: Đường màu đỏ vẽ lại các vị trí người chơi đã di chuyển trên sân
- Các đối tượng điều khiển và 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 và hiển thị
Các tọa độ người chơi và tọa độ cầu rơi được hiển thị trên bản trên
4.2 Cách sử dụng chương trình
Khi nhấn Nút nhấn START thì quá trình lấy dữ liệu tọa độ người chơi trên sân bắt đầu và khi đó máy tính sẽ tính tốn tọa độ cầu rơi rồi sau đó gửi dữ liệu như 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 thì tất cả các quá trình sẽ dừng lại.
51
Chương 5
KẾT QUẢ VÀ THẢO LUẬN 5.1 Kết quả đạt được
Sau thời gian nghiên cứu và thực nghiệm các kết quả thu được: - Thiết kế và viết chương trình giao diện.
- Thiết kế và viết chương trình nhận dạng và xác định được tọa độ người chơi và tính tốn tọa độ cầu rơi chạy theo thời gian thực.
- Chương trình đã giải quyết được bài toán ứng dụng thuật toán nhận dạng chuyển động của người, xác định được vị trí người chơi trên sân cầu lông. Đánh dấu được vị trí người chơi đã di chuyển trên sân theo thời gian thực. - Các kết quả chạy chương trình. Hình 4.5 hiển thị vị trí người chơi hiện tại đang ở tọa độ (X = 3.04 m, Y = 1.86 m) và tọa độ phát cầu chương trình tính tốn ra là (X = 5 m, Y = 6 m). Đường màu đỏ là các 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 và tọa độ điểm cầu rơi mà máy sẽ chọn bắn đến.
52
5.2 Thực nghiệm và đánh giá độ chính xác của hệ thống
Tác giả đã kiểm chứng thực tế trong phòng Lab với khoảng cách từ 1.2 đến 3m so với vị trí đặt camera thì chương trình nhận dạng và bắt được tọa độ người sai lệch so với vị trí thật là từ 0,1 m đến 0.3 m. Cách kiểm chứng là tác giả so sánh vị trí tọa độ vận động viên mà chương trình đọc được so với vị trí thật của vận động viên trên sân và dùng thước đo các khoảng cách từ vận động viên đến biên của sân theo chiều dài và rộng. Ngồi phạm vi trên thì khơng nhận dạng được được tọa độ người chơi do giới hạn của camera.
Một số hình ảnh thực nghiệm:
53
54
5.3 Thảo luận
- Khi vận động viên di chuyển sát lưới (gần camera) và di chuyển cuối sân thì chương trình đánh dấu vị trí chuyển động khơng được chính xác do rơi vào vùng mù của camera ( camera nhận diện tốt nhất từ khoảng cách 0.8 m đến 4 m).
Hình 5.2 minh họa vị trí người chơi đứng quá gần Camera, nên Camera không thể tracking được bộ khung xương.
Hình 5.4: Khi người chơi đứng cách Camera < 0.8 m nên không tracking được khung xương.
- Tương tự khi người chơi đứng cách Camera quá xa cũng không thể tracking được khung xương, tham khảo Hình 5.3.
55
Hình 5.5: Khi người chơi đứng cách Camera > 6 m nên không tracking được khung xương.
56
Hình 5.6: Khi người chơi đứng cách xa Camera nhưng vẫn trong phạm vi nhỏ hơn 6m nên camera vẫn tracking được khung xương
- Ảnh 3D của vận động viên bị lỗ đen ở vùng biên do cảm biến hồng ngoại và nguồn phát hồng ngoại đặt cách xa nhau một đoạn nên có những điểm bộ phát hồng ngoại chiếu tới đối tượng nhưng cảm biến hồng ngoại khơng thu được. Hình 5.5 minh họa điểu này.
57
58
Chương 6
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Luận văn đã giải quyết được bài toán phát hiện vận động viên và tính được tọa độ của vận động viên trên sân cầu lơng.
Luận văn có thể phát triển thêm bằng cách tracking và vẽ quỹ đạo bay của trái cầu đến điểm rơi từ đó có thể điều khiển máy phát cầu lơng tốt hơn. Trong tương lai các hãng công nghệ sẽ phát triển thêm những sản phẩm camera 3D có chất lượng tốt hơn khi đó áp dụng vào chương trình sẽ cho ra ứng dụng phần mềm tốt hơn.
Do thời gian có hạn nên tác giả chỉ cố gắng giải quyết bài tốn để hồn thành luận văn tốt nghiệp của mình cho đúng tiến độ. Trong tương lai tác giả sẽ tìm hiểu những thuật tốn tốt hơn để 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 hơn.
59
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-
60
radiation (CDR) mapping. Advanced Robotics, Vol. 28, Issue 12, pp. 841-857, 2014.