Kỹ thuật phát hiện và nhận dạng các cử chỉ tay của con người là cách tự nhiên để giao tiếp người máy Trong luận văn này tôi đã trình bày cơ sở lý thuyết tổng quan về thiết bị camera Kinect để nhận dạng cử chỉ tay trong giao tiếp người – máy giới thiệu nhận dạng cử chỉ tay giới thiệu về lập trình game unity và game tương tác cho trẻ em sử dụng camera Kinect … Tiếp đến tôi đã tìm hiểu và liệt kê một số kỹ thuật trích chọn đặc trưng và nhận dạng cử chỉ tay phổ biến hiện nay Cuối cùng tôi đã xây dựng thành công chương trình nhận dạng cử chỉ tay ứng dụng xây dựng game tương tác cho trẻ em dựa trên thiết bị camera Kinect Chương trình ứng dụng này cho phép người dùng sử dụng cử chỉ tay đơn giản để hỗ trợ cho người dùng chơi game chém trái cây Tập cử chỉ tay dùng trong chương trình chỉ mới giới hạn trong một cử chỉ điều khiển đơn giản Sau khi xây dựng chương trình tôi đã cho thử nghiệm ở các môi trường và điều kiện ánh sáng khác nhau Khoảng cách từ người dùng đến camera Kinect là 2m Kết quả nhận được là với các điều kiền kiện ánh sáng tốt cử chỉ điểu khiển được thực thi chính xác gần như tuyệt đối Trong các điều kiện ánh sáng không ổn định thì tỉ lệ bắt được cử chỉ vào khoảng 93 97 Người dùng thử khá hài lòng vì các thao tác chơi game dễ dàng giao diện đơn giản dễ sử dụng
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA - NGUYỄN THỊ PHƯỢNG VĨ XÂY DỰNG GAME TƯƠNG TÁC CHO TRẺ EM SỬ DỤNG KINECT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2018 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA - NGUYỄN THỊ PHƯỢNG VĨ XÂY DỰNG GAME TƯƠNG TÁC CHO TRẺ EM SỬ DỤNG KINECT Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HUỲNH HỮU HƯNG Đà Nẵng – Năm 2018 LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn trực tiếp TS Huỳnh Hữu Hưng Mọi tham khảo dùng luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Tác giả Nguyễn Thị Phượng Vĩ MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục đích nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn đề tài Bố cục luận văn CHƯƠNG 1: TỔNG QUAN VỀ XÂY DỰNG GAME TƯƠNG TÁC 1.1 Các vấn đề liên quan đến thiết bị camera Kinect 1.1.1 Giới thiệu thiết bị camera Kinect 1.1.2 Những thành phần Kinect 1.1.3 Thư viện hỗ trợ Kinect 1.1.4 Một số ứng dụng Kinect 1.2 Giới thiệu nhận dạng cử tay giao tiếp người-máy 1.2.1 Tiến trình nhận dạng cử tay 1.2.2 Một số ứng dụng dựa nhận dạng cử tay 12 1.3 Lập trình game sử dụng Unity 15 1.3.1 Unity gì? 15 1.3.2 Tổng quan engine Unity 15 1.3.3 Tính engine Unity 18 1.3.4 Tổng quan kiến trúc engine Unity 18 1.4 Giới thiệu game tương tác cho trẻ em 19 CHƯƠNG - MỘT SỐ KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG 21 2.1 Một số kỹ thuật trích chọn đặc trưng cử tay 21 2.1.1 Đặc trưng chuyển động bàn tay 21 2.1.2 Đặc trưng thành phần PCA 22 2.1.3 Đặc trưng HOG 25 2.1.4 Đặc trưng cục bất biến - SIFT 27 2.1.5 Đặc trưng Haar-Like 31 2.1.6 Đặc trưng GIST 33 2.1.7 Đặc trưng xương ảnh bàn tay (Skeleton of the Hand) 35 2.2 Một số kỹ thuật nhận dạng cử tay 36 2.2.1 Kỹ thuật sử dụng máy vector hỗ trợ - SVM 37 2.2.2 Kỹ thuật sử dụng mạng nơ-ron nhân tạo - ANN 41 2.2.3 Kỹ thuật K-láng giềng gần 43 2.2.4 Kỹ thuật sử dụng mơ hình Markov ẩn - HMM 44 2.3 Mô tả game chém trái sử dụng Kinect 45 CHƯƠNG - XÂY DỰNG HỆ THỐNG NHẬN DẠNG CỬ CHỈ TAY 48 3.1 Mơ tả tốn 48 3.2 Giải pháp đề xuất hệ thống 49 3.2.1 Sơ đồ hoạt động hệ thống 49 3.2.2 Phát bàn tay 49 3.2.3 Tiền xử lý 50 3.2.4 Trích chọn đặc trưng 51 3.2.5 Nhận dạng cử tay 52 3.3 Xây dựng chương trình ứng dụng 54 3.3.1 Tổng quan chương trình 54 3.3.2 Xây dựng CSDL hình ảnh trái 55 3.3.3 Thuật toán 55 3.3.4 Chương trình 57 3.3.5 Thực nghiệm 58 TÀI LIỆU THAM KHẢO 60 LỜI CẢM ƠN Trong trình thực đề tài, tơi gặp nhiều khó khăn phát sinh mà khơng có giúp đỡ, động viên gia đình, thầy giáo, bạn bè đồng nghiệp tơi khó hồn thành luận văn Trước tiên, xin gởi lời cảm ơn chân thành sâu sắc tới Thầy giáo TS Huỳnh Hữu Hưng, người Thầy tận tình hướng dẫn tạo điều kiện tốt để tơi hồn thành luận văn Tôi xin gửi lời cảm ơn tới Ban giám hiệu Trường Đại Học Bách Khoa - Đại Học Đà Nẵng, Ban giám hiệu Trường Đại Học Phạm Văn Đồng-Quảng Ngãi, Ban chủ nhiệm khoa Công nghệ thơng tin, Phịng Đào tạo sau đại học hai trường tạo điều kiện thuận lợi trình học tập, nghiên cứu hồn thành luận văn Tơi xin cảm ơn q Thầy giáo, Cơ giáo người tận tình hướng dẫn truyền đạt cho tơi kiến thức q báu suốt q trình học tập Tôi xin gởi lời cảm ơn tới Ban giám hiệu trường THPT Trần Quốc Tuấn giúp đỡ tạo điều kiện tốt để tơi hồn thành khóa học Cuối cùng, xin gửi lời cảm ơn tới thành viên Gia đình động viên tạo điều kiện tốt để tơi tiếp tục theo đuổi việc học tập, nghiên cứu Luận văn q tinh thần mà tơi trân trọng gửi tặng đến thành viên Gia đình Tuy có nhiều cố gắng, chắn luận văn khơng tránh khỏi thiếu sót định Tơi mong nhận ý kiến đóng góp quý báu thầy cô giáo bạn để luận văn ngày hoàn thiện Trân trọng cảm ơn! XÂY DỰNG GAME TƯƠNG TÁC CHO TRẺ EM SỬ DỤNG KINECT Học viên: Nguyễn Thị Phượng Vĩ Chuyên ngành: Khoa học máy tính Mã số: 60480101 Trường Đại học Bách khoa – ĐHĐN Khóa: 33 Tóm tắt – Kỹ thuật phát nhận dạng cử tay người cách tự nhiên để giao tiếp người-máy Trong luận văn này, tơi trình bày sở lý thuyết tổng quan thiết bị camera Kinect để nhận dạng cử tay giao tiếp người – máy, giới thiệu nhận dạng cử tay, giới thiệu lập trình game unity game tương tác cho trẻ em sử dụng camera Kinect ,…; Tiếp đến, tìm hiểu liệt kê số kỹ thuật trích chọn đặc trưng nhận dạng cử tay phổ biến Cuối cùng, xây dựng thành cơng chương trình nhận dạng cử tay ứng dụng xây dựng game tương tác cho trẻ em dựa thiết bị camera Kinect Chương trình ứng dụng cho phép người dùng sử dụng cử tay đơn giản để hỗ trợ cho người dùng chơi game chém trái Tập cử tay dùng chương trình giới hạn cử điều khiển đơn giản Sau xây dựng chương trình, tơi cho thử nghiệm môi trường điều kiện ánh sáng khác Khoảng cách từ người dùng đến camera Kinect 2m Kết nhận với điều kiền kiện ánh sáng tốt, cử điểu khiển thực thi xác gần tuyệt đối Trong điều kiện ánh sáng khơng ổn định tỉ lệ bắt cử vào khoảng 93-97% Người dùng thử hài lịng thao tác chơi game dễ dàng, giao diện đơn giản, dễ sử dụng Từ khóa – Nhận dạng cử tay, khai thác đặc trưng; giao tiếp người-máy, cử điều khiển, chơi game Abstract CREATING INTERACTIVE GAMES FOR KIDS USING KINECT Human hand gesture detection and recognition is a natural way to communicate between people and machines.In this thesis,I presented theoretical background of theKinect camera device for hand gesture recognition in human – machine interface, in introducing hand gesture recognition, Unity game programming, and interactive games for children that using the Kinect camera Next, I studied and listed some of popular selective techniques and hand gestures nowadays Finally, I created a hand gesture-recognizing program that creating interactive games for kids based on the Kinect camera device This application allows users to use simple hand gestures to assist the user playing the fruit slicing game Hand gestures in the program are limited to simple gesture controllability After creating the program, I already tested in different environments and lighting conditions The distance between the user and Kinect camera device is meters As a result, in good lighting conditions, the gesture controllability is practically almost exact If lighting conditions are unstable, the rate will be from 93% to 97% The user is quite satisfied with the ease of playing games, simple interface Key words- Hand gesture recognition, popular selective techniques, human-machine interaction, gesture controllability, game playing DANH MỤC CÁC CHỮ VIẾT TẮT Thuật ngữ 3D 4D ANN CL CSDL K-NN HMM HOG Tiếng Anh Three Dimension Four Dimension Artificial Neural Network Code Laboratories Database K-Nearest Neighbors Hidden Markov Model Histogram of Orientation Gradient PCA SIFT Principal Components Analysi Scale Invariant Feature Transforms SVM Support Vector Machine Tiếng Việt Ba chiều Bốn chiều Mạng nơ-ron nhân tạo Tên công ty phần mềm Cơ sở liệu K-láng giềng gần Mơ hình Makov ẩn Biểu đồ định hướng Gradient Phân tích thành phần Phép biến đổi đặc tính bất biến tỉ lệ Máy hỗ trợ vector DANH MỤC CÁC HÌNH VẼ Số hiệu hình Hình 1.1 Hình 1.2 Hình 1.3 Hình 1.4 Hình 1.5 Hình 1.6 Hình 1.7 Hình 1.8 Hình 1.9 Hình 1.10 Hình 1.11 Hình 1.12 Hình 1.13 Hình 1.14 Hình 1.15 Hình 1.16 Hình 1.17 Hình 1.18 Hình 1.19 Hình 1.20 Hình 1.21 Hình 1.22 Hình 1.23 Hình 1.24 Hình 1.25 Hình 1.26 Hình 1.27 Hình 2.1 Hình 2.2 Hình 2.3 Hình 2.4 Hình 2.5 Hình 2.6 Tên hình Camera Kinect hãng Microsoft Nhận diện hành động game thủ điều khiển nhân vật game Những thành phần Kinect Kinect hỗ trợ shopping Điều khiển máy tính Kinect Điều khiển máy tính cử Sơ đồ khối hệ thống nhận dạng cử tay Một tư tay nhiều hướng nhìn Camera gắn mũ Chuyển ảnh RGB sang ảnh nhị phân Quá trình chuyển đổi ảnh lọc nhiễu Phân đoạn ảnh dựa ngưỡng lược đồ mức xám Kết lọc màu da Sử dụng cử tay ứng dụng thực tế ảo Dùng cử tay khác để điều khiển robot Người dùng điều khiển máy tính cử tay Bác sĩ sử dụng cử tay phẫu thuật Sử dụng cử tay để điều khiển âm nhạc Sử dụng cử tay trị chơi Eye Toy Ngơn ngữ kí hiệu Giao diện Editor Unity Thanh công cụ điều khiển Chọn đối tượng Scene Hierrarchy Cửa sổ Inspector hiển thị thông tin đối tượng Cửa sổ Game Cửa sổ Project Hình minh họa đa tảng Phép chiếu lên trục tọa độ khác Sử dụng PCA để tìm trục tọa độ Chia khối trích đặc trưng HOG Mơ tả khơng hồn thiện thuật tốn Harris Mơ tả hàm Gaussian hàm DoG Phát cực trị hàm DoG Trang 4 7 9 10 10 11 11 13 13 14 14 15 15 16 15 16 17 17 18 18 18 23 25 26 28 29 30 Hướng phân bố ảnh mô tả điểm hấp dẫn Đặc trưng SIFT ảnh cử tay Các đặc trưng Haar-Like Các đặc trưng Haar-Like mở rộng Cách tính Image Integral ảnh Cách tính nhanh giá trị mức xám ảnh Áp dụng lọc Gabor theo hướng Minh họa cho trình trích đặc trưng GIST cho ảnh đầu vào Q trình khai thác xương ảnh vùng tay Minh họa mơ hình SVM Minh họa khoảng cách biên Minh họa liệu phân tách tuyến tính Xử lý trường hợp chứa nhiễu Áp dụng Kernel phân loại không gian đặc trưng Mơ hình cấu trúc nơ-ron ANN Kiến trúc mạng nơ-ron cho hệ thống Phân lớp dựa vào thuật toán K-NN Tham số xác suất mơ hình Markov ẩn Tương tác tay thú vị Sơ đồ mô tả game chém trái sử dụng kinect Sơ đồ khối toán Sơ đồ khối hệ thống nhận dạng cử tay ứng dụng chơi game chém trái Hình 3.3 Sơ đồ vị trí người thực cử camera Kinect Hình 3.4 Chuẩn hóa kích thước ảnh Hình 3.5 Dữ liệu khung xương thu Kinect V2 Hình 3.6 Minh họa tốn phân lớp phương pháp SVM Hình 3.7 Sơ đồ mơ tả chương trình trị chơi Hình 3.8 Phân loại hình ảnh trái Hình 3.9 Sơ đồ mơ tả thuật tốn cài đặt chương trình Hình 3.10 Màn hình khởi động game Hình 3.11 Màn hình game Hình 3.12 Dùng cử tay để chơi game Hình 2.7 Hình 2.8 Hình 2.9 Hình 2.10 Hình 2.11 Hình 2.12 Hình 2.13 Hình 2.14 Hình 2.15 Hình 2.16 Hình 2.17 Hình 2.18 Hình 2.19 Hình 2.20 Hình 2.21 Hình 2.22 Hình 2.23 Hình 2.24 Hình 2.25 Hình 2.26 Hình 3.1 Hình 3.2 31 31 32 32 33 33 34 35 36 37 38 38 39 40 42 43 44 45 46 47 48 49 50 51 51 52 55 55 57 57 58 58 52 bàn tay phải thư viện có sẵn Muốn phân biệt nhiều trạng thái tay khác dùng SVM để huấn luyện Xác định ngưỡng cho nút điều khiển: nút điều khiển có tọa độ xác định Trong luận văn, tiến hành khoanh vùng có kích thước 30*30 có tâm tọa độ nút Vùng tạm gọi vùng chọn Khi tay phải rơi vào vùng chọn trạng thái bàn tay phải nắm lệnh điều khiển thực 3.2.5 Nhận dạng cử tay Thuật toán SVM: Xét toán phân lớp đơn giản – phân lớp hai lớp với tập liệu mẫu {(xi, yi), i = 1, 2,…, N, xi ∈Rm}, tập mẫu vector đối tượng gán nhãn thành mẫu dương mẫu âm sau : - Mẫu dương mẫu xi thuộc lớp quan tâm gán nhãn yi = - Mẫu âm mẫu xi không thuộc lớp cần quan tâm gán yi = - Phương pháp thực chất lời giải cho tốn tối ưu, mục tiêu tìm không gian H siêu mặt phẳng định h H cho sai số phân lớp thấp Trong trường hợp này, tập phân lớp SVM mặt siêu phẳng phân tách mẫu dương khỏi mẫu âm với độ chênh lệch cực đại, độ chênh lệch – cịn gọi lề - xác định khoảng cách mẫu dương mẫu âm gần siêu phẳng Siêu phẳng gọi siêu phẳng lề tối ưu Hình 3.6 - Minh họa toán phân lớp phương pháp SVM Các siêu phẳng không gian đặc trưng n chiều có phương trình tổng qt: C + w1x1+ w2x2+ … + wnxn= (3.1) Phương trình tương đương với C + Σwi xi= (với i = 1,…,n), giá trị w = (w1, w2, …, wn) hệ số siêu phẳng vector trọng số, C độ dịch chuyển, thay đổi w C hướng khoảng cách từ gốc toạ độ đến siêu phẳng thay đổi 53 Bộ phân lớp SVM định nghĩa sau: f(x) = sign(C + Σwixi) (3.2) Trong đó: sign(z) = +1 z ≥ 0, (3.3) sign(z) = -1 z < Nếu f(x) = +1 x thuộc lớp dương (miền quan tâm) Ngược lại, f(x) = -1 x thuộc lớp âm (miền khác) Mơ hình học máy SVM tạo siêu phẳng phụ thuộc vào tham số vector trọng số w độ dịch chuyển C Mục tiêu phương pháp SVM ước lượng w C để cực đại hóa lề lớp liệu dương âm Các giá trị khác lề cho ta họ siêu mặt phẳng khác nhau, lề lớn khả phân lớp SVM tăng sai số tổng quát giảm Quá trình phân lớp tối ưu sai số phân lớp cực tiểu Ta có phương trình sau: 𝐶 ∑ℓ𝑖=1 n𝑖 + w,b,n ‖𝑤‖2 (3.4) 𝑠 𝑡 𝑦𝑖 [𝑤 𝑥𝑖 − 𝑏] + n𝑖 ≥ n𝑖 ≥ 0, 𝑖 = 1, … , ℓ Tìm vector trọng số w sai số điểm tập huấn luyện ηi, ta có phương trình tổng qt siêu phẳng tìm thuật tốn SVM: f(x1, x2,…, xn) = C +Σwi xi (3.5) với i = 1,…, n, n số liệu huấn luyện Sau tìm phương trình siêu phẳng thuật tốn SVM, áp dụng cơng thức để tìm nhãn lớp cho liệu Huấn luyện SVM: Huấn luyện SVM việc giải tốn quy hoạch tồn phương Các phương pháp số giải toán quy hoạch yêu cầu phải lưu trữ ma trận có kích thước bình phương số lượng mẫu huấn luyện Trong toán thực tế, điều khơng khả thi thơng thường kích thước tập liệu huấn luyện thường lớn (có thể lên tới hàng chục nghìn mẫu) Nhiều thuật toán khác phát triển để giải vấn đề nêu Những thuật toán dựa việc phân rã tập liệu huấn luyện thành nhóm liệu Điều có nghĩa tốn quy hoạch tồn phương giải với kích thước nhỏ Sau đó, thuật tốn kiểm tra điều kiện KKT (Karush-Kuhn-Tucker) để xác định phương án tối ưu 54 Một số thuật toán huấn luyện xây dựng dựa vào tính chất: tập liệu huấn luyện tốn quy hoạch tồn phương cần giải bước có mẫu khơng thỏa mãn điều kiện KKT, sau giải toán này, hàm mục tiêu tăng Như vậy, chuỗi toán quy hoạch tồn phương với mẫu vi phạm điều kiện KKT đảm bảo hội tụ đến phương án tối ưu Do đó, ta trì tập liệu làm việc đủ lớn có kích thước cố định bước huấn luyện, ta loại bỏ thêm vào số lượng mẫu Ứng dụng SVM toán phân lớp cử tay: Một mơ hình SVM phân lớp nhị phân Vì vậy, để áp dụng SVM cho toán phân lớp cử tay, với số lớp liệu lớn 2, người ta thường sử dụng hai chiến lược chính: – tất hay – để xử lý liệu đa lớp Với chiến lược – tất cần xây dựng k mơ hình SVM ứng với k lớp Với mơ hình thứ i, ta xem lớp i lớp dương lớp khác xem lớp âm Để nhận dạng phần tử liệu thuộc lớp ta cho k mô hình SVM phân lớp phần tử, sau định lớp phần tử phương pháp bình chọn số đông Với Chiến lược – xử lý tương tự Tuy nhiên, ta cần phải xây dựng 𝐶2𝑘 = 𝑘(𝑘−1) mơ hình tất cả, mơ hình xây dựng dựa liệu lớp 3.3 Xây dựng chương trình ứng dụng 3.3.1 Tổng quan chương trình Chương trình viết ngơn ngữ lập trình C# phần mềm Visual Studio 2017 Microsoft, với hỗ trợ thư viện Microsoft Kinect SDK Chương trình xây dựng với chức cho phép người chơi chơi game chém trái cử tay Khi người chơi đứng trước Camera Kinect, hình khởi động xuất hiện; người chơi chém vào nút “bắt đầu” để vào game Các loại trái bom bay ngẫu nhiên hình, người chơi cần dùng tay chém vào khơng gian cho “trúng” trái để ghi điểm, trúng bom bị trừ điểm Camera Kinect thu lại tọa độ khớp xương cần thiết để vẽ lại hình bóng người chơi để người chơi dễ dàng xác định vị trí Người chơi sử dụng cử nắm tay để chém lúc tất trái xuất hình đạt mốc điểm quy định Mỗi loại trái có giá trị điểm số khác Khi chém trúng trái cộng điểm tương ứng Chém trúng bom bị trừ điểm Game kết thúc điểm số chém trúng bom lần 55 Hình 3.7 – Sơ đồ mơ tả chương trình trị chơi 3.3.2 Xây dựng CSDL hình ảnh trái Bộ liệu gồm hình ảnh bom, trái cịn nguyên trái sau bị chém Hình 3.8 – Phân loại hình ảnh trái 3.3.3 Thuật tốn Camera Kinect cung cấp tọa độ nhiều khớp xương thể Thư viện Microsoft Kinect SDK hỗ trợ hàm để bắt tọa độ khớp xương đặc biệt cho biết số trạng thái tay nắm, mở… Dựa vào đó, tơi tiến hành xây dựng triển khai thuật tốn cho chương trình sau: Bước 1: - Khởi động Kinect; - Lấy tọa độ khớp xương người dùng để lấy tọa độ khớp xương bàn tay; - Tạo giao diện game cho loại trái cây, bom xuất ngẫu nhiên 56 Bước 2: Kiểm tra tọa độ bàn tay có trùng khớp với tọa độ trái bay? - Đúng: Thực bước 3; Sai: Chuyển bước 7; Bước 3: Kiểm tra trạng thái bàn tay có mở không? - Mở: Thực bước 4; Nắm: Chuyển bước 5; Bước 4: Cho xuất hình ảnh trái bị chém cộng điểm tương ứng Bước 5: Kiểm tra điểm số có đạt ngưỡng để chém tất chưa? - Đúng: Thực bước 6; Sai: bỏ qua; Bước 6: Cho tất trái xuất hình bị chém Tính điểm Bước 7: Kiểm tra tọa độ bàn tay có trùng khớp với tọa độ bom bay không? - Đúng: Thực bước 8; Sai: Bỏ qua; Bước 8: Kiểm tra số điểm âm chưa? - Đúng: Chuyển qua bước 10; Sai: Chuyển qua bước 9; Bước 9: Kiểm tra số lần chém trúng bom vượt qua chưa? - Đúng: Chuyển qua bước 10; - Sai: tăng số lần chém trúng bom lên 1; Trừ điểm; Bước 10: Kết thúc 57 3.3.4 Chương trình Thuật tốn cài đặt chương trình: Hình 3.9 - Sơ đồ mơ tả thuật tốn cài đặt chương trình Giao diện chương trình: Hình 3.10 – Màn hình khởi động game 58 Màn hình game Hình 3.11 – Màn hình game Dùng cử tay để thực chơi game: Hình 3.12 – Dùng cử tay để chơi game 3.3.5 Thực nghiệm Sau xây dựng chương trình, tơi cho thử nghiệm môi trường điều kiện ánh sáng khác Khoảng cách từ người dùng đến camera Kinect 2m Kết nhận với điều kiền kiện ánh sáng tốt, cử điểu khiển thực thi xác gần tuyệt đối Trong điều kiện ánh sáng khơng ổn định tỉ lệ bắt cử vào khoảng 93-97% Người dùng thử hài lịng thao tác chơi game dễ dàng, giao diện đơn giản, dễ sử dụng 59 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Lĩnh vực nhận dạng nước giới phát triển đạt thành tựu đáng kể thời gian gần Trong luận văn tơi trình bày tổng quát kiến thức tảng lĩnh vực xử lý ảnh ứng dụng ngành công nghệ nhận dạng cử tay Từ đó, tơi thực đề tài nhận dạng cử tay giao tiếp người-máy, với mục tiêu thiết kế giao diện người-máy cho phép giao tiếp hiệu hấp dẫn, hỗ trợ người chơi game chém trái cách vui vẻ, thú vị với giao diện dễ sử dụng, đẹp mắt hấp dẫn Qua trình nghiên cứu thực hiện, luận văn trình bày kiến thức tổng quan cử tay sở lý thuyết nhận dạng cử tay giao tiếp người-máy Luận văn nghiên cứu lựa chọn kỹ lưỡng số kỹ thuật trích chọn đặc trưng ảnh cử tay, thuật toán nhận dạng cử tay phổ biến hiệu Đồng thời luận văn tìm hiểu khả ứng dụng hiệu nhận dạng xác số hệ thống nhận dạng cử tay số tác giả xây dựng trước Từ lựa chọn thuật tốn SVM thơng qua việc huấn luyện SVM ứng dụng SVM toán phân lớp cử tay; Xây dựng thành công chương trình ứng dụng dựa giải pháp đề xuất; góp phần xây dựng chương trình ứng dụng với chức cho phép người chơi game chém trái cử tay với hỗ trợ thư viện Microsoft Kinect SDK Trong trình thực đề tài, có nhiều hạn chế nên kết đạt chưa cao: CSDL chưa phong phú, giới hạn người chơi, giới hạn cử điều khiển đơn giản người chơi vào vị trí tầm nhìn khuất việc nhận dạng cử tay bị ảnh hưởng không nhận dạng cử Hướng phát triển Trong tương lai, cải thiện thuật toán phát bàn tay số thao tác xử lý để xác định bàn tay xác Bên cạnh tơi bổ sung số đặc trưng khác xem xét hình dạng bàn tay từ nhiều hướng để phân biệt nhầm lẫn trình nhận dạng Tơi nâng cấp để hệ thống nhận dạng cử hai tay, nhiều người chơi lúc Cải tiến hình ảnh trái hình ảnh 3D tạo hiệu ứng hấp dẫn cho người chơi 60 TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Huỳnh Hữu Hưng, Nguyễn Trọng Nguyên, Võ Đức Hồng Giáo trình xử lý ảnh số, nhà xuất Thông tin Truyền thông, 2015 [2] Đỗ Năng Tồn, Phạm Việt Bình, Giáo trình xử lý ảnh, Khoa công nghệ thông tin Đại học Thái Nguyên, 2007 [3] Đoàn Tấn Phát, Nguyễn Phan Nhật Tân, Nhận dạng cử bàn tay để điều khiển Robot, Khoa công nghệ thông tin, Trường Đại học Lạc Hồng [4] Phạm Nguyên Khang, Huỳnh Nhật Minh, Võ Trí Thức, Phạm Thế Phi, Nhận dạng ngôn ngữ dấu hiệu với camera Kinect đặc trưng GIST, Tạp chí Khoa học Trường Đại học Cần Thơ, Số chuyên đề: Công nghệ Thông tin, 2015, trang 113-120 Tài liệu tiếng Anh [5] Ali Erol, George Bebis, Mircea Nicolescu, Richard D Boyle and Xander Twombly, “Vision-based hand pose estimation: A review”, Computer Vision and Image Understanding 108, 2007, pp 52–73 [6] Michele Saad, Low-Level Color and Texture Feature Extraction for ContentBased Image Retrieval, EE 381K: Multi-Dimensional Digital Signal Processing, 2008 [7] Tee Cheng Siew, Feature selection for content-based image retrieval using statistical discriminant analysis, PhD thesis Faculty of Computer Science and Information System Universiti Teknologi Malaysia, 2008 [8] Panahandeh G., Mohammadiha N., Leijon A., & Handel P., "Continuous Hidden Markov Model for Pedestrian Activity Classification and Gait Analysis", IEEE T Instrumentation and Measurement, Volume 62, Issue 5, 2013, pp 1073-1083 [9] Christopher Kawatsu, Jiaxing Li, and C.J Chung, “Development of a Fall Detection System with Microsoft Kinect”, in Robot Intelligence Technology and Applications, 2012 61 [10] W T Freeman and M Roth, “Orientation histograms for hand gesture recognition”, Intl Workshop on Automatic Face- and Gesture- Recognition, IEEE Computer Society, Zurich, Switzerland, pp 296-301, June, 1995 [11] Paul Viola and Michael.J Jones, “Robust Real-Time Face Detection”, International Journal of Computer Vision, 2004, pp 137–154 [12] M Gandy, T Starner, J Auxier and D Ashbrook, “The Gesture Pendant: A Self Illuminating, Wearable, Infrared Computer Vision System for Home Automation Control and Medical Monitoring”, in Fourth International Symposium on Wearable Computers, 2000, pp 87-94 [13] S M Goza, R O Ambrose, M.A Diftler and I M Spain, “Telepresence Control of the NASA/DARPA Robonaut on a Mobility Platform”, in Proceedings of the 2004 Conference on Human Factors in Computing Systems, ACMPress, pp 623–629, 2000 [14] W.T Freeman, K Tanaka, J Ohta and K Kyuma, “Computer Vision for Computer Games”, IEEE 2nd Intl Conf on Automatic Face and Gesture Recognition, Killington, VT, October, 1996 [15] R Sharma, T.S Huang, V I Pavovic, Y Zhao, Z Lo, S Chu, K Schulten, A Dalke, J Phillips, M Zeller and W Humphrey, “Speech/Gesture Interface to a Visual Computing Environment for Molecular Biologists”, in Proc of ICPR’96 II, 1996, pp 964-968 [16] G M Smith and M C Schraefel, “The Radial Scroll Tool: Scrolling Support for Stylus-or Touch-Based Document Navigation”, in Proc 17th ACM Symposium on UserInterface Software and Technology, ACM Press, 2004, pp 53-56 [16] S Ganesh and R Bajcsy, "Recognition of human actions using an optimal control based motor model", 9th IEEE Workshop on Applications of Computer Vision (WACV 2008), January 7-9, 2008, pp 1-6 [17] D Stotts, J M Smith and K Gyllstrom, “Facespace: Endo-and Exo-Spatial Hypermedia in the Transparent Video Facetop”, in Proc of the Fifteenth ACM Conf on Hypertext& Hypermedia, ACM Press, 2004, , pp 48–57 62 [18] David G Lowe, “Distinctive image features from scale-invariant keypoints”, International Journal of Computer Vision, Volume 60, Issue 2, November 2004, pp 91–110 [19] Yushi Jing, “PageRank for images products search”, Reafered Track: Rich media, Beijing, China, April 21-25, 2008 [20] Kamarul Hawari Ghazali, “Feature Extraction technique using SIFT keypoints descriptors” The International Conference on Electrical and Engineering and Informatics Institut technology Bandung, Indonesia, June 17-19, 2007 [21] Xingdong Chen, Chao Chen and Li Jin, "Principal Component Analyses in Anthropological Genetics", Advances in Anthropology 2011, Vo.1, No.2, 2011, pp 9-14 [22] Corinna Cortes and Vladimir N Vapnik, “Support-Vector Networks”, Machine Learning, Volume 20, Issue 3, September 1995, pp 273–297 [23] Vladimir N Vapnik, Statistical learning theory, New York: Wiley, September 1998 [24] Anita Jadhav, Rohit Asnani, Rolan Crasto, Omprasad Nilange and Anamol Ponkshe, “Gesture Recognition using Support Vector Machine”, International Journal of Electrical, Electronics and Data Communication, ISSN: 2320-2084, Volume 3, Issue 5, May 2015 [25] Md Hafizur Rahman and Jinia Afrin, “Hand Gesture Recognition using Multiclass Support Vector Machine”, International Journal of Computer Applications (0975 – 8887), Volume 74, No.1, July 2013 [26] D Fernández, F Vilarino, L Zhao and G Lacey, “A multi-class SVM classifier for automatic hand washing quality assessment”, in of the British Machine Vision Conference, Warwick, UK, 2007 [27] A Oliva and A Torralba, “Modeling the shape of the scence: A holistic representation of the spatial envelope”, International Journal of Computer Vision 42, 2001, pp 145-175 [28] Chieh-Chih Wan and Ko-Chih Wang, Hand Posture Recognition Using Adaboost with SIFT for Human Robot Interaction, National Taiwan University, Taipei, Taiwan 63 [29] S Naidoo, C Omlin and M Glaser, Vision-based static hand gesture recognition using support vector machines, University of Western Cape, Bellville, 1998 [30] Trong-Nguyen Nguyen, Huu-Hung Huynh and Jean Meunier, “Static Hand Gesture Recognition Using Artificial Neural Network”, Journal of Image and Graphics, Volume 1, No.1, March, 2013 [31] Adita K Nimbalkar, R R Karhe and C S Patil, “Face and Hand Gesture Recognition using Principle Component Analysis and kNN Classifier”, International Journal of Computer Applications (0975 – 8887),Volume 99– No.8, August 2014 [32] S Nagarajan and T S Subashini, “Image Based Hand Gesture Recognition using Statistical Features and Soft Computing Techniques”, International Journal of Emerging Technology and Advanced Engineering, ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 5, Issue 7, July 2015 [33] Y Chehadeh, D Coquin and Ph Bolon, “A Skeletonization Algorithm using Chamfer Distance Transformation Adapted to Rectangular Grids”, in proceedings of IEEE International Conference on Pattern Recognition, 2, 1996, pp 131-139 [34] B Ionescu, D Coquin, P Lambert and V Buzuloiu, “Static Hand Gesture Recognition System”, U.P.B Sci Bull., Series D, Vol 66, No 2-4, 2004 [35] Bogdan Ionescu, Didier Coquin, Patrick Lambert and Vasile Buzuloiu, “Dynamic Hand Gesture Recognition Using the Skeleton of the Hand”, EURASIP Journal on Applied Signal Processing 2005:13, 2101–2109, © 2005 Hindawi Publishing Corporation [36] Varsha Dixit and Anupam Agrawal, “Real Time Hand Detection & Tracking for Dynamic Gesture Recognition”, I.J Intelligent Systems and Applications, vol.7, no.8, 2015, pp 38-44 [37] Deepak Gurung, Cansen Jiang, Jeremie Deray and Désiré Sidibé, “Hand Gestures Recognition and Tracking”, 2013 [38] Pallavi Gurjal and Kiran Kunnur, “Real Time Hand Gesture Recognition Using Sift”, International Journal of Electronics and Electrical Engineering, ISSN: 2277-7040, Volume 2, Issue 3, March 2012 64 [39] P.K Srimani and Mrs S Kavitha, “Hand Gesture Recognition Using Gradient Orientation”, International Journal of Current Research, Vol 4, Issue, 02, February 2012, pp.191-195 [40] Mandeep Kaur Ahuja et al, “Hand Gesture Recognition Using PCA”, International Journal of Computer Science Engineering and Technology (IJCSET), Vol 5, Issue 7, July 2015, pp 267-271 [41] Vijay Kumari Thakur and Priyadarshni Fellow, “Robust Hand Gesture Recognition for Human Machine Interaction System”, Journal of Global Research in Computer Science, Volume 5, No 3, March 2014 [42] Pramod Pisharady and Martin Saerbeck, “Recent methods and databases in vision-based hand gesture recognition”, Computer Vision and Image Understanding, December 2015 [43] Tasnuva Ahmed, “A Neural Network based Real Time Hand Gesture Recognition System”, International Journal of Computer Applications (0975 – 8887), Volume 59– No.4, December 2012 [44] Simon Haykin, Neural Networks: A Comprehensive Foundation, 2nd ed Pearson Education Asia, 2001 [45] S.Nagarajan and T.S.Subashini, “Static Hand Gesture Recognition for Sign Language Alphabets using Edge Oriented Histogram and Multi Class SVM”, International Journal of Computer Applications (0975 – 8887), Volume 82, No 4, November 2013 [46] T Starner and A Pentland, “Real-time american sign language recognition using desk and wearable computer based video”, Pattern Analysis and Machine Intelligence, IEEE Transactions, Volume 20, Issue 12, December 1998 [47] Lang, S., M Block and R Rojas, “Sign language recognition using kinect”, in Artificial Intelligence and Soft Computing, Springer, 2012 [48] J Ye, H Yao and F Jiang, “Based on HMM and SVM multilayer architecture classifier for Chinese sign language recognition with large vocabulary”, in IEEE First Symposium on Multi-Agent Security and Survivability, 2004, pp 377-380 65 Website [49] http://research.microsoft.com/en-us/news/features/touchlesssurgery060712.aspx [Accessed: Dec 25, 2016] [50] https://www.microsoft.com/en-us/kinectforwindows/meetkinect/gallery.aspx? searchv=healthcare [Accessed: Jan 10, 2017] [51] https://en.wikipedia.org/wiki/Support_vector_machine [Accessed: Feb 10, 2017] [52] https://www.researchgate.net/profile/Reza_Rachmadi/publication262917557_ Large- Scale_Scene_Classification_Classification_Using_Gist_Feature [Accessed: Mar 08, 2017] [53] http://www.i.ci.ritsumei.ac.jp/~shimada/papers/vi02-tanibata.pdf [Accessed: Mar 18, 2017] ... chơi game tương tác cho trẻ em nói riêng người chơi thực động tác nào?, người chơi mong muốn máy phản ứng sao? …được ứng dụng lĩnh vực game tương tác sử dụng Kinect cho phép người chơi tương tác. .. biến Cuối cùng, xây dựng thành cơng chương trình nhận dạng cử tay ứng dụng xây dựng game tương tác cho trẻ em dựa thiết bị camera Kinect Chương trình ứng dụng cho phép người dùng sử dụng cử tay đơn... liệu thu từ camera Kinect để xây dựng chương trình cho phép người dùng chọn tương tác cử tay động tác người trước Kinect để điều khiển ứng dụng hỗ trợ chơi game tương tác cho trẻ em hiệu Đối tượng