Chương 1 TỔNG QUAN 1.1 Tổng quan về hướng nghiên cứu Những năm gần đây lĩnh vực thị giác máy tính phát triển mạnh, có nhiều bài báo, công trình nghiên cứu về lĩnh vực này. Một trong những nhánh nhỏ của lĩnh vực này là sử dụng camera 3D (là camera vừa thu ảnh màu và ảnh độ sâu) để phát hiện chuyển động của cơ thể người, xác định vị trí của đối tượng để các ứng dụng điều khiển, ứng dụng game tương tác 3D, xây dựng mô hình 3D và nhận dạng mô hình 3D … Về công nghệ robot phát cầu lông đã có các công trình nghiên cứu như sau.1 Tình hình nghiên cứu ngoài nước Năm 2002, tác giả Jonathan Taryoto đã đưa ra thiết kế về một máy phát cầu lông trong một bài báo “ Shuttlcock launcher and method for launching”. Trong bài báo này tác giả sử dụng cơ cấu phát cầu sử dụng hai bánh đà để phát cầu là cơ cấu chính của thiết kế [1]. Trong bài báo “A Study on Projection Performance of Roller Type Badminton Machine and Its Optimization” [2] của nhóm Shinobu Sakai, Ryota Nobe and Koetsu Yamaza năm 2011 cũng đề cập về hiệu suất máy phát cầu lông sử dụng bánh đà và việc tối ưu sản phẩm khi sử dụng hai bánh đà.
Năm 2012, nhóm tác giả Caroline Cohen, Baptiste Darbois Texier, David Quere và Christophe Clanet đã xác định phương trình động lực học của cầu lông bài báo “Shuttlecock dynamics” [4] khi quả cầu lông được cung cấp một vận tốc ban đầu. Một lần nữa, phương trình động lực học của trái cầu lông được nhóm bốn tác giả Caroline Cohen, Baptiste Darbois Texier, David thể hiện qua bài báo “The physics of badminton”[5] được công bố năm 2015. 1 Để nhận diện được người, một giải thuật tracking từ camera qua bài báo được công bố năm 2014 “Recognizing Activities Using a Kinect Skeleton tracking and Hidden Markov Models” của nhóm tác giả Armando Nava, Leonardo Garrido and Ramon F. Bài báo xác định một số hoạt động của con người dựa vào các thay đổi cấu trúc bộ xương con người [6].
Cũng đựa vào thay đổi cấu trúc bộ xương cơ thể người mà nhóm tác giả PeiFu Tsou, Chao-Cheng Wu đã xác định các động tác trong thể dục nhịp điệu qua bài báo “Estimation of Calories Consumption for Aerobics Using Kinect based Skeleton Tracking” [7] được công bố năm 2015. Michael Fleder, Sudeep Pillai, Jeremy Scott - MIT CSAIL, 6.870 “3D Object Tracking Using the Kinect” [8] đã nghiên cứu theo dõi đối tượng (tracking) với bài báo Theo dõi đối tượng trong môi trường 2D. Đầu tiên mô tả giao diện người dùng và cho người dùng xem dữ liệu 3D Kinect, cho phép người dùng nhanh chóng phân đoạn đám mây điểm của đối tượng mục tiêu. Tiếp theo, một thuật toán theo dõi 2D tính một biểu đồ màu của đám mây điểm phân đoạn và tìm kiếm nó trong dữ liệu hình ảnh trực tiếp để đoán vị trí của đối tượng khi nó di chuyển.
Cuối cùng, giả sử rằng bằng cách đoán này, điểm gần nhất (ICP) thuật toán lặp được sử dụng để ước tính sự biến đổi của đám mây điểm ban đầu của đối tượng trong đám mây điểm trực tiếp. Cùng với các tối ưu hóa khác, nhóm tác giả trên kết luận rằng kết hợp theo dõi 2D và ICP cho phép thực hiện theo dõi đối tượng 3D thời gian thực, chính xác bằng Kinect [8]. Trước đây, theo dõi vị trí và tư thế của đối tượng trong không gian 3D nhìn chung bị giới hạn trong các hệ thống có chi phí cao đòi hỏi phải có thiết bị đo đạc cho đối tượng mục tiêu và môi trường của nó. Khi Camera Kinect được phát triển chúng cung cấp dữ liệu ảnh độ sâu và dữ liệu ảnh màu RGB, có thể sử dụng dữ liệu này để theo dõi các đối tượng với chi phí thấp mà không cần trang bị thêm bất kỳ thiết bị đo đạc nào.
Việc sử dụng dữ liệu ảnh độ sâu giúp việc phát hiện đối tượng chính 2 xác hơn ảnh màu truyền thống vì dữ liệu độ sâu không bị ảnh hưởng bởi ánh sáng của môi trường.2 Tình hình nghiên cứu trong nước Robot phát cầu lông tự động đã được nghiên cứu và chế tạo bởi tác giả Trần Nguyên Soái với đề tà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 TOÁN NHẬN DẠNG CHUYỂN ĐỘNG 3D” [3] đã được bảo vệ thành công tại trường Đại học Sư Phạm Kỹ Thuật TPHCM năm 2017. Robot phát cầu lông tự động là một dự án nghiên cứu được phân làm 2 đề tài: 1. 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 toán nhận dạng chuyển động 3D [3]. Ứ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 (Xây dựng thuật toán, viết chương trình để lấy dữ liệu liệu điều khiển robot – tập trung xây dựng phần mềm cho Robot).
Trong đề của tác giả Trần Nguyên Soái đã thiết kế các chi tiết robot bằng phần mềm Solidwork sau đó gia công và lắp ráp thành Robot phát cầu lông và áp dụng thuật toán nhận dạng chuyển động của người đề lấy dữ liệu tọa độ người chơi trên sân sau đó điều khiển các động cơ của robot qua kit Arduino [3]. Đề tài của tác giả thuộc phần thứ 2 của dự án nghiên cứu Robot phát cầu lông tự động, tác giả xây dựng các lưu đồ giải thuật nhận dạng chuyển động người, viết chương trình phần mềm. Với ý tưởng từ các bài báo trên [6], [8] và sử dụng camera Kinect tác giả đã giải quyết bài toán xác định vị trí chuyển động của người trên sân cầu lông theo thời gian thực, với kết quả thu được tọa độ người chơi từ đó làm dữ liệu điều khiển cho 3 máy phát cầu lông phát cầu tới vị trí mong muốn giúp người chơi luyện tập hiệu quả hơn.2 Tính cấp thiết của đề tài, ý nghĩa khoa học và thực tiễn của đề tài Thể thao thành tích cao đòi hỏi phải trang bị các máy móc hiện đại giúp vận động viên luyện tập. Bộ môn cầu lông cũng vậy, việc huấn luyện cho vận động viên luyện tập đánh và đập cầu, nếu sử dụng con người để phát cầu cho vận động viên thì điểm rơi của trái cầu thường không chính xác và không bao quát khắp mặt sân, việc chế tạo máy phát cầu lông tự động cho vận động viên luyện tập là cần thiết.
Ứng dụng thuật toán phát hiện người để xác định vị trí người chơi trên sân từ đó huấn luyện cho máy phát cầu đến những vị trí cách xa vận động viên nhất giúp vận động viên tập luyện tốt từ đó nâng cao thành tích khi thi đấu.3 Mục đích nghiên cứu và đối tượng nghiên cứu của đề tài Với tính cấp thiết và ý nghĩa thực tiễn trên của đề tài, người nghiên cứu đã lựa 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ử của mình. Mục đích nghiên cứu là có thể xác định được vị trí tọa độ của người trên sân cầu lông từ đó làm dữ liệu điều khiển máy phát cầu lông phát cầu đến vị trí xa người chơi để nâng hiệu quả luyện tập. Với mục đích như trên người nghiên cứu xác định đối tượng nghiên cứu của mình là các thuật toán phát hiện đối tượng, nhận dạng chuyển động của người.4 Nhiệm vụ và giới hạn của đề tài Nhiệm vụ chính của đề tài là phát hiện được người chơi, xác định tọa độ người chơi trên sân cầu lông và đánh dấu những điểm di chuyển của vận động viên trên sân, tính toán tọa độ những điểm cầu rơi cách xa vận động viên nhất. Hiển thị người 4 chơi (ảnh chiều sâu), hiển thị tọa độ người chơi, tọa độ cầu rơi, dấu vết người chơi đã di chuyển trên sân lên giao diện màn hình máy tính.
Giới hạn của đề tài là chưa tracking được quỹ đạo của trái cầu lông.5 Phương pháp nghiên cứu và nội dung nghiên cứu 1.1 Phương pháp nghiên cứu Các phương pháp nghiên cứu cho đề tài bao gồm: - Phương pháp tham khảo tài liệu: Thu thập thông tin kiến thức từ các bài báo khoa học, các sách báo và tài liệu trên internet. - Phương pháp thực nghiệm: dựa vào không gian thực tế, và phạm vi hoạt động của camera, lấy dữ liệu từ camera 3D, xây dựng lưu đồ, xử lý dữ liệu ảnh độ sâu thu được. - Phương pháp thử và sai: dựa vào lưu đồ tiến hành viết lệnh chạy thử và đánh giá kết quả, cứ lặp lại như vậy cho đến khi xác định được tọa độ người chơi, xác định vị trí cầu rơi, đánh dấu sự di chuyển của người chơi trên sân.2 Nội dung nghiên cứu - Tìm hiểu các kiến thức liên quan như kỹ thuật phân đoạn ảnh, thuật toán randomized decision forest, thuật toán Meanshift, Euclidean Distance, tìm điểm max trong chuỗi - Maximum String Length. - Thiết kế giao diện, xây dựng lưu đồ, viết chương trình và tối ưu chương trình, lấy dữ liệu từ camera 3D, cài đặt thông số, xử lý dữ liệu, hiển thị dữ liệu.6 Kế hoạch thực hiện đề tài Đề tài thực hiện từ tháng 2/2017 đến tháng 8/2017 Thời gian Nội dung Tuần 1-2 27/02-12/03 Tìm hiểu các chức năng camera 3D.
Tuần 3-4 13/03-26/03 Tìm hiểu lý thuyết, các thuật toán liên quan 5 Tìm hiểu thư viện và cách viết chương trình Tuần 5-6 27/03-09/04 OpenNI Tuần 7-8 10/04-23/04 Xây dựng lưu đồ tổng quan Tuần 9-10 24/04-07/05 Viết chương trình tạo giao diện Tuần 11-12 08/05-21/05 Viết chương trình hiển thị tọa độ, điểm di chuyển Tuần 13-14 22/05-04/06 Viết chương trình hiển thị tọa độ, điểm di chuyển Tuần 15-16 05/06-18/06 Viết chương trình hiển thị tọa độ, điểm di chuyển Tuần 17-18 19/06-02/07 Chỉnh sửa chương trình Tuần 19-20 03/07-16/07 Tối ưu chương trình Tuần 21-22 17/07-30/07 Tối ưu chương trình Tuần 23-24 31/07-13/08 Viết báo cáo 6 Chương 2 CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu về camera 3D Kinect của Microsoft 2.1 Giới thiệu tổng quan về camera 3D Kinect của Microsoft Kinect là sản phẩm của Microsoft dựa trên công nghệ camera được phát triển bởi PrimeSense, những sản phẩm đầu tiên được bán tại Bắc Mỹ vào ngày 4 tháng 11 năm 2010. Từ đó đến nay Camera 3D là thiết bị ngày càng phổ biến cho phép các thiết bị kỹ thuật số có khả năng nhìn, cho phép tương tác tự nhiên giữa con người với các thiết bị và giữa các thiết bị và môi trường xung quanh. Kinect được coi như là một thiết bị ngoại vi cho Xbox 360, cho phép giao tiếp với con người thông qua các cử chỉ, đem lại những cảm giác thú vị cho người chơi game trên Xbox.