TƯƠNG tác với máy TÍNH BẰNG cử ĐỘNG tự NHIÊN của cơ THỂ với KINECT

138 141 0
TƯƠNG tác với máy TÍNH BẰNG cử ĐỘNG tự NHIÊN của cơ THỂ với KINECT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM KHỐ LUẬN TỐT NGHIỆP TƢƠNG TÁC VỚI MÁY TÍNH BẰNG CỬ ĐỘNG TỰ NHIÊN CỦA CƠ THỂ VỚI KINECT Giảng viên hƣớng dẫn: Sinh viên thực hiện: Lớp: Khoá: ThS PHẠM THI VƢƠNG TRẦN PHƢỚC VIỆT (07520603) TRẦN CÔNG VƢƠNG (07520422) CNPM02 02 TP Hồ Chí Minh, tháng 12 năm 2011 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM KHỐ LUẬN TỐT NGHIỆP TƢƠNG TÁC VỚI MÁY TÍNH BẰNG CỬ ĐỘNG TỰ NHIÊN CỦA CƠ THỂ VỚI KINECT Giảng viên hƣớng dẫn: Sinh viên thực hiện: Lớp: Khoá: ThS PHẠM THI VƢƠNG TRẦN PHƢỚC VIỆT (07520603) TRẦN CÔNG VƢƠNG (07520422) CNPM02 02 TP Hồ Chí Minh, tháng 12 năm 2011 MỞ ĐẦU Từ máy tính cá nhân đời, máy tính ngày trở nên thân thiện với ngƣời sử dụng Những cách mạng lớn thiết bị phần cứng phần mềm thay đổi cách ngƣời tƣơng tác với máy tính Có thể kể đến cách mạng tƣơng tác ngƣời-máy mà chuột máy tính hình cảm ứng đa điểm tạo Năm 2010, Microsoft cho mắt thiết bị cảm biến Kinect cho phép ngƣời dùng máy chơi game Xbox 360 tƣơng tác trò chơi cử động thể, khơng cần giữ thiết bị ngƣời Qua năm xuất phát triển, cảm biến Kinect cho thấy có tiềm trở thành thiết bị khởi xƣớng cách mạng tƣơng tác ngƣời-máy Tƣơng lai ngƣời lệnh cho máy mà không cần phải chạm vào thiết bị nào, lúc tƣơng tác cử động thể lệnh giọng nói Hiện tại, cơng cụ lập trình thiết bị Kinect beta, hỗ trợ nhận diện ngƣời đứng trƣớc thiết bị theo dạng khung xƣơng với điểm khớp Các công cụ lập trình Kinect chƣa có sẵn thành phần hỗ trợ việc nhận diện cử ngƣời dùng, việc đƣợc lập trình viên tự phát triển theo nhiều phƣơng pháp khác Trong lại chức quan trọng thiếu ứng dụng nhận diện cử với Kinect Nhận thấy chƣa có cơng cụ nhận diện cử hoạt động hiệu cao bật, nhóm thực đề tài xây dựng cơng cụ nhận diện cử Kinect có độ xác cao, có khả mở rộng dạng cử khác nhau, tiện dụng cho việc phát triển ứng dụng sử dụng cơng cụ Phƣơng pháp nhóm sử dụng đƣợc rút kinh nghiệm từ cơng cụ lập trình viên khác thơng qua quan sát, phân tích thói quen sử dụng ngƣời dùng Trong trình đứng trƣớc máy số động tác ngƣời dùng muốn máy tính hiểu nhƣ lệnh, thời gian lại chuyển động tự Vì nhóm đề số nguyên tắc chung, phù hợp với động tác tự nhiên ngƣời dùng dễ nhớ, để quy định cho việc xác định ngƣời dùng thực lệnh không Từ nhóm tiếp tục phát triển tính nhận diện cử khác Kết việc đề nguyên tắc giúp cho trình lập trình xử lý nhận diện cử ngƣời dùng đơn giản nhiều, cử đƣợc nhận xác khơng để xảy bỏ sót cử Nhóm sử dụng cơng cụ nhận diện cử xây dựng để phát triển ứng dụng minh hoạ qua khẳng định đƣợc tính hiệu cơng cụ Ứng dụng minh hoạ đƣợc xây dựng chƣơng trình giúp ngƣời thuyết trình điều khiển trình chiếu PowerPoint mà khơng cần đứng gần máy tính khơng cần cầm theo thiết bị Khơng dừng lại việc chƣơng trình điều khiển PowerPoint, ứng dụng cho thấy thể nghiệm tận dụng khả cảm biến Kinect Khả quay hình camera RGB Kinect đƣợc nhóm tận dụng trở thành máy quay, thay máy quay máy chiếu vật thể phòng học đa thơng thƣờng Kinect mang lại trải nghiệm tƣơng tác khác với tƣ truyền thống, ngƣời dùng không tƣơng tác mặt phẳng chiều mà chuyển lên không gian chiều Tận dụng khả này, nhóm thử nghiệm chức cho ngƣời dùng tƣơng tác với mơ hình hình học khơng gian, xây dựng thành cơng đối tƣợng hiển thị tƣơng tác hình học khơng gian Các tính đƣợc tích hợp ứng dụng điều khiển PowerPoint thành chƣơng trình thống Bộ cơng cụ nhóm xây dựng hoạt động hiệu tiếp tục phát triển mở rộng thêm để sử dụng phát triển nhiều chƣơng trình ứng dụng có trải nghiệm mẻ thú vị Bộ cơng cụ mong muốn góp phần tăng thêm tốc độ phát triển ứng dụng tƣơng tác cử với Kinect, đƣa tƣơng tác ngƣời-máy đƣợc phổ biến rộng rãi LỜI CẢM ƠN Chúng em xin chân thành cảm ơn khoa Công Nghệ Phần Mềm, trƣờng Đại Học Công Nghệ Thông Tin, Tp.HCM tạo điều kiện tốt cho chúng em thực đề tài tốt nghiệp Chúng em xin chân thành cảm ơn Thầy Phạm Thi Vƣơng nói riêng, ngƣời tận tình hƣớng dẫn, bảo chúng em suốt thời gian thực đề tài, nhƣ toàn thể giảng viên khoa Công Nghệ Phần Mềm giảng viên trƣờng Đại Học Công Nghệ Thông Tin truyền đạt cho chúng em kiến thức hữu ích suốt thời gian học trƣờng Chúng em xin gửi lòng biết ơn sâu sắc đến ba, mẹ, anh chị bạn bè ủng hộ, động viên, giúp đỡ chúng em trong suốt thời gian học tập, nghiên cứu thực đề tài Do thời gian kiến thức hạn hẹp, chúng em cố gắng hoàn thành luận văn phạm vi khả cho phép, nhƣng chắn không tránh khỏi thiếu sót, kính mong cảm thơng tận tình bảo q Thầy Cơ bạn TP Hồ Chí Minh, ngày tháng năm 2012 Trần Phƣớc Việt & Trần Công Vƣơng NHẬN XÉT (Của giảng viên hƣớng dẫn) NHẬN XÉT (Của giảng viên phản biện) MỤC LỤC CHƢƠNG - GIỚI THIỆU .1 1.1 Giới thiệu tổng quan vấn đề 1.2 Đánh giá sơ lƣợc trạng phát triển phần mềm với Kinect 1.2.1 Tình hình phát triển 1.2.2 Một số sản phẩm sử dụng Kinect tiêu biểu .5 1.3 Mục tiêu đề tài 10 1.4 Mô tả nội dung báo cáo 12 CHƢƠNG - GIỚI THIỆU THIẾT BỊ KINECT, BỘ CÔNG CỤ PHÁT TRIỂN PHẦN MỀM CHO KINECT (SDK) CỦA MICROSOFT VÀ MỘT SỐ BỘ THƢ VIỆN HỖ TRỢ KHÁC .14 2.1 Giới thiệu Microsoft Kinect 14 2.1.1 Lịch sử phát triển 14 2.1.2 Kỹ thuật 17 2.2 Bộ công cụ phát triển phần mềm cho Kinect (SDK) Microsoft 18 2.2.1 Cấu hình làm việc với SDK 20 2.2.2 Kiến trúc tƣơng tác với Windows 20 2.2.3 NUI API 22 2.2.4 Audio API .33 2.3 Giới thiệu số thƣ viện khác 37 2.3.1 Open XML 37 2.3.2 Office 2003 Primary Interop Assemblies .38 2.3.3 Lớp System.Windows.Forms.SendKeys 38 2.3.4 Sơ lƣợc công cụ HelixToolkit 39 CHƢƠNG - TỔNG QUAN GIẢI PHÁP VÀ HỆ THỐNG XÂY DỰNG TRONG ĐỀ TÀI .40 3.1 Giải pháp nhận dạng cử thể .40 3.1.1 Nguyên tắc nhận dạng cử 40 3.1.2 Statechart tƣơng tác cử 45 3.1.3 Cấu trúc xây dựng 45 3.1.4 Thuật toán nhận diện cử 47 3.1.5 Các cử mở rộng đƣợc xây dựng sẵn công cụ 51 3.1.6 Thuật toán nhận diện cử mở rộng .52 3.2 Giải pháp cho ứng dụng minh hoạ .60 3.2.1 Các chức ứng dụng minh hoạ 60 3.2.2 Kiến trúc ứng dụng minh hoạ 61 3.2.3 Sơ lƣợc project giải pháp 63 3.3 Cấu hình yêu cầu 63 3.3.1 Cấu hình chạy ứng dụng 63 3.3.2 Môi trƣờng xây dựng phát triển ứng dụng 64 CHƢƠNG - PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 65 4.1 Phân tích Use Case .65 4.1.1 Use case chọn tập tin trình chiếu 65 4.1.2 Use case trình chiếu tập tin PowerPoint 65 4.1.3 Use case chụp hiển thị ảnh 66 4.1.4 Use case hiển thị video ngƣời dùng 67 4.1.5 Use case tƣơng tác hình học 3D 67 4.2 Sequence Diagram 68 4.2.1 Chọn tập tin trình chiếu 68 4.2.2 Trình chiếu tập tin PowerPoint .69 4.2.3 Chụp hiển thị ảnh .69 4.2.4 Hiển thị video ngƣời dùng 70 4.2.5 Tƣơng tác hình học 3D 70 4.3 Sơ đồ lớp 71 4.3.1 Sơ đồ lớp xử lý cử 71 4.3.2 Sơ đồ lớp ứng dụng 74 4.4 Thiết kế giao diện 76 4.4.1 Giao diện chức điều khiển PowerPoint 76 4.4.2 Giao diện chọn cắt ảnh .77 CHƢƠNG - XÂY DỰNG ỨNG DỤNG .79 5.1 Xây dựng công cụ nhận diện cử 79 5.1.1 Quản lý thiết bị, nhận diện cử 79 5.1.2 Xây dựng lớp nhận diện cử mở rộng 81 5.2 Xử lý hiển thị menu ứng dụng minh hoạ 83 5.2.1 Thao tác cử tƣơng tác với menu 84 5.2.2 Cấu trúc menu 86 5.2.3 Lớp quản lý menu MenuManager 87 5.3 Xử lý điều khiển chuột 90 5.3.1 Tƣơng tác điều khiển chuột 91 5.3.2 Xây dựng chức gửi kiện chuột 91 5.3.3 Thuật toán xử lý nhận diện cử điều khiển chuột .95 5.4 Tƣơng tác PowerPoint 96 5.4.1 Sơ đồ Use Case tƣơng tác PowerPoint 96 5.4.2 Sơ đồ FlowChart xử lý tƣơng tác PowerPoint 99 5.5 Chụp hình vật thể trƣớc Kinect 103 5.5.1 Mô tả .103 5.5.2 Sơ đồ Use Case chức chụp hình vật thể .103 5.5.3 Sơ đồ FlowChart xử lý chụp hình vật thể với Kinect 106 5.6 Xây dựng control tƣơng tác với hình học khơng gian 108 5.6.1 Xây dựng đối tƣợng hình học khơng gian 108 5.6.2 Xây dựng tƣơng tác với hình học khơng gian .109 CHƢƠNG - ĐÁNH GIÁ, KẾT LUẬN .112 6.1 Đánh giá kết đạt đƣợc 112 110 nhóm thực thi phƣơng thức để xử lý thao tác ngƣời dùng đối tƣợng hình học mơ hình hình học 5.6.2.1 Xác định đối tƣợng hình học đƣợc chọn Khi ngƣời dùng chọn vị trí định Math3DControl, ta cần phải xác định đƣợc ngƣời dùng tƣơng tác với đối tƣợng hình học mơ hình Để thực điều này, nhóm sử dụng phƣơng pháp HitTest thừa kế đối tƣợng viewport Math3DControl Để thực HitTest, ta sử dụng phƣơng thức đƣợc hỗ trợ WPF System.Windows.Media.VisualTreeHelper.HitTest() Phần code thực thi có dạng nhƣ sau: var hitParams = new PointHitTestParameters(position); VisualTreeHelper.HitTest( viewport, null, delegate(HitTestResult hit) { // bước tìm đối tượng chọn }, hitParams); Trong đoạn code trên, position vị trí mà ngƣời dùng tƣơng tác Math3DControl (theo hệ trục tƣơng đối so với đối tƣợng Math3DControl) Hàm HitTest đƣợc thực thi việc đƣa vào viewport, delegate xác định công việc cần thực để tìm đối tƣợng đƣợc chọn Trong nhiều chế độ tƣơng tác khác nhau, bƣớc thực delegate khác Trong vẽ điểm ta thực tìm mặt phẳng đối tƣợng gần nhìn từ vị trí tƣơng tác; nhƣng chọn để thay vị trí đối tƣợng, ngƣời dùng lại muốn chọn điểm nằm khuất sau mặt phẳng khác Đối với GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 111 mục đích khác này, nhóm thực thi hàm hỗ trợ tƣơng tác lớp tĩnh DrawingHelper 5.6.2.2 Cơ chế thay đổi chế độ tƣơng tác Math3DControl Để thực thay đổi chế độ tƣơng tác, nhóm xây dựng lớp ControlOption để báo thay đổi cho Math3DControl theo lựa chọn ngƣời dùng Đối tƣợng kiểu ControlOption cho phép thực binding với control giao diện ngƣời dùng, ngƣời dùng thay đổi lựa chọn chế độ tƣơng tác giao diện, ControlOption gọi kiện ControlOption.CurrentChanged để Math3DControl thực thao tác cần thiết để chuyển chế độ Mỗi chế độ tƣơng tác đƣợc thực thi lớp tƣơng ứng đƣợc thừa kế từ lớp trừu tƣợng DrawHandler Lớp DrawHandler chứa phƣơng thức việc xử lý tƣơng ứng với kiện tƣơng tác ngƣời dùng GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 112 CHƢƠNG - ĐÁNH GIÁ, KẾT LUẬN 6.1 Đánh giá kết đạt đƣợc Bộ cơng cụ InteractKinect nhóm xây dựng hoạt động hiệu Trong trình phát triển ứng dụng minh hoạ, công cụ nhận diện InteractKinect giúp thực nhanh chóng khâu liên quan tới nhận diện cử ngƣời dùng có tính mở rộng cao ứng dụng cần lệnh tƣơng tác riêng Đánh giá độ xác, InteractKinect hầu nhƣ khơng bỏ sót thao tác cử nhận xác cử ngƣời dùng thực InteractKinect đƣợc đóng gói thành file DLL nhất, tiện sử dụng Ngoài khả nhận diện cử cung cấp tiện ích để lập trình viên xây dựng nhận dạng cử mở rộng, InteractKinect cung cấp tiện ích hỗ trợ gồm nhận dạng cử mở rộng xây dựng sẵn (SwipeDetector) công cụ hỗ trợ cho việc hiển thị liệu hình ảnh từ Kinect lên giao diện (UIHandler) Kết đem lại công cụ làm đơn giản việc lập trình ứng dụng nhận diện cử với Kinect Yếu tố góp phần đẩy nhanh phát triển ứng dụng nhận diện cử Các ứng dụng minh hoạ thể đƣợc điểm tƣơng tác với Kinect Ứng dụng điều khiển trình chiếu PowerPoint hoạt động hiệu quả, thể đƣợc khả tích hợp tƣơng tác với Kinect vào ứng dụng Ứng dụng minh hoạ giúp ngƣời thuyết trình điều khiển tới lui trình chiếu từ xa hay điều khiển chuột máy tính Nhƣng khơng thay thiết bị điều khiển trình chiếu, tận dụng tính Kinect, ứng dụng thay đƣợc chức nhiều thiết bị khác Nhờ Kinect ta chụp ảnh vật thể, hay streaming liệu video từ Kinect lên hình lớn, thay cho vai trò máy quay máy chụp GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 113 vật thể Đứng dƣới góc nhìn kinh tế, giải pháp giúp tiết kiệm chi phí cho việc trang bị nhiều thiết bị đại phòng học hay phòng thuyết trình đa Bên cạnh đó, tính thể nghiệm tƣơng tác khơng gian chiều – tƣơng tác với hình học khơng gian, đƣợc thực thành cơng Tính cho thấy trải nghiệm tƣơng tác mới, trải nghiệm hoàn toàn khác biệt với tƣ thời đại tƣơng tác hình phẳng chiều Kết đánh giá khố luận xây dựng thành công công cụ nhận diện cử InteractKinect ứng dụng minh hoạ, hoàn thành mục tiêu đặt 6.2 So sánh ứng dụng nghiên cứu đƣợc với ứng dụng cơng cụ có 6.2.1 So sánh với chuột khơng dây bút laser Khả tương tác: Chuột không dây đa số có khoảng ba nút bấm, số cơng việc mà thực đƣợc với Power Point bị giới ba thao tác, thao tác lại muốn thực phải di chuyển chuột nhấn trực tiếp gây bất tiện cho ngƣời dùng Bút laser nói có vơ số khả thao tác Tuy nhiên, việc thao tác số lần nhấn thả bút lựa chọn dở việc thực thao tác phải nhấn thả bút nhiều lần Trong đó, sử dụng cử thể nên ứng dụng không giới hạn thao tác với Power Point Đa số thac tác dễ thực tƣơng tác hầu nhƣ đồng thời lên Power Point Khả hỗ trợ người thuyết trình: Ngƣời dùng cần phải cầm chuột không dây bút laser tay, thƣờng gây ý ngƣời xem vào vị trí tay cầm tập trung vào ngƣời thuyết GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Cơng Vương 114 trình Còn Kinect, ngƣời dùng không cần thiết phải cầm thiết bị tay, giúp họ tự tin thoải mái trình bày vấn đề Khả hư hại: Đối với chuột không dây bút laser, ngƣời thuyết trình muốn giao quyền kiểm sốt cho khán thính giả bên dƣới thƣờng phải giao thiết bị Đối với trƣờng hợp dễ làm hƣ hại thiết bị ngƣời đƣợc giao khơng có chun mơn sử dụng Tuy nhiên, Kinect hồn tồn khác, với việc nhận dạng lên đến khung xƣơng ngƣời dùng khơng cần phải đụng chạm đến thiết bị ngƣời thuyết trình thoải mái cho ngƣời tham gia vào trình trình bày vấn đề 6.2.2 So sánh với nhận dạng cử qua camera thông thƣờng Khả tương tác: Thuật tốn nhận dạng đƣợc Microsoft tích hợp Kinect thuật toán nhận dạng tiên tiến kết hợp với camera hồng ngoại cho khả phát theo dõi khung xƣơng 3D làm tăng độ nhạy thiết bị lên nhiều lần Đối với camera thông thƣờng, nhận dạng cử mơi trƣờng 2D nên gây nhiều khó khăn ngƣời dùng Mọi cử đƣợc nhận dạng theo dõi nên cử nhiễu xuất nhiều Trong đó, nhận dạng đƣợc mơi trƣờng 3D nên ứng dụng loại bỏ cử nhiễu, giúp ngƣời thuyết trình tự tin sử dụng ngơn ngữ thể cho thuyết trình Hỗ trợ lập trình: Kinect hỗ trợ nhiều cho ngƣời lập trình module nhận dạng theo dõi khung xƣơng nhƣ hình ảnh đƣợc tích hợp sẵn Trong để sử dụng thuật tốn nhận dạng cử với camera thơng thƣờng gây khó khăn cho nhiều ngƣời sử dụng GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 115 6.3 Hƣớng mở rộng phát triển đề tài Để đạt đƣợc mục tiêu tƣơng lai xa thay đổi tƣơng tác ngƣời-máy, thay phƣơng thức tƣơng tác với máy tính nay, Kinect cần nhiều phát triển thoả mãn việc lập trình ngày đơn giản hỗ trợ hệ điều hành ngày sâu Muốn vậy, thứ Microsoft cần phải hỗ trợ Kinect nhiều mức hệ điều hành, hệ điều hành tƣơng lai Windows Microsoft cần phải hỗ trợ Kinect nhƣ hỗ trợ thiết bị chuột, bàn phím, cảm ứng đa chạm Thứ hai công cụ Kinect SDK cần phái nhận diện ngày xác Kinect SDK cần giảm tình trạng giật lắc liệu khung xƣơng nhận diện khơng xác Kinect SDK cần phải nhận diện đƣợc ngƣời tƣ ngồi khoảng cách gần khơng thấy đƣợc tồn thể, cần khả nhận diện bàn tay hay khuôn mặt cho nhiều tƣơng tác phong phú Trong Microsoft tiếp tục nâng cao hỗ trợ cho thiết bị Kinect việc tƣơng tác với máy tính, ta tiếp tục phát triển thêm công cụ xây dựng để dùng phát triển ứng dụng Các khả phát triển kể nhƣ:  Xây dựng tính hỗ trợ nhận diện bàn tay  Áp dụng thuật toán với phƣơng thức nhận diện động tác phức tạp  Có thể phát triển khả nhận diện thể ngƣời tƣ ngồi  Hỗ trợ tƣơng tác lúc nhiều ngƣời với Kinect  Hỗ trợ chuyển thông tin tƣơng tác với thiết bị khác ngồi máy tính, hỗ trợ lập trình XNA lập trình với cơng cụ Robotic Studio Microsoft  Phát triển tính tƣơng tác với hình học khơng gian thành chƣơng trình hồn chỉnh để ứng dụng giảng dạy trƣờng học  … GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 116 DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Đại học Y Dƣợc TP Hồ Chí Minh, 2008 Bài giảng giải phẫu học tập tập TS Trịnh Xuân Đàn: Nhà xuất Y Học [2] Johannes W Rohen & Chihiro Yokochi & Elke Lutjen-Drecoll, Atlas Giải phẫu ngƣời (dịch), Nhà xuất Y Học Tiếng Anh: [1] Adam Nathan, 2010 WPF Unleashed 1st ed s.l.:Sams [2] Annelies Braffort, 2000 Gesture-based communication in human computer interaction 1st ed s.l.:Springer [3] Charles Petzold, 2007 3D Programming for Windows s.l.:Microsoft Press [4] David Catuhe, 2011 Gestures and Tools for Kinect [Online] Available at: http://blogs.msdn.com/b/eternalcoding/archive/2011/07/04/gestures-andtools-for-kinect.aspx [Accessed 2011] [5] Dr John G Harris, n.d Isolated word, Speech recognition using Dynamic Time Warping towards smart appliances s.l., s.n [6] Eamonn Keogh & Chotirat Ann Ratanamahatana, 2005 Exact indexing of dynamic time warping Knowledge and Information Systems, 7(3), pp 358386 [7] Kaustubh S Patwardhan & Sumantra Dutta Roy, 2004 Dynamic Hand Gesture Recognition using Predictive EigenTracker In: Proc IAPRsponsored Indian Conference on Computer Vision, Graphics and Image Processing (ICVGIP) Mumbai, India: s.n., pp 675-680 GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 117 [8] Matthew MacDonald, 2010 Pro WPF in C# 3th ed s.l.:Apress [9] Microsoft, 2011 Kinect for Windows beta Programming Guide s.l.:Microsoft [10] Ming-Hsuan Yang & Narenda Ahuja, 2001 Face Detection and Gesture Recognition for Human-Computer Interaction s.l.:Springer [11] MSDN Library, n.d Hit Testing in the Visual Layer [Online] Available at: http://msdn.microsoft.com/en-us/library/ms752097.aspx [Accessed 10 2012] [12] MSDN Available Library, n.d at: Maximize WPF 3D Performance [Online] http://msdn.microsoft.com/en-us/library/bb613553.aspx [Accessed 10 2011] [13] Norman Creaney, 2011 How to Use the Harvard Style of Referencing [Online] Available at: http://knol.google.com/k/norman-creaney/how-to-use-the- harvard-style-of/1hzaxtdr9c09g/14 [Accessed 27 12 2011] [14] objo, 2011 HelixToolkit Project Description [Online] Available at: http://helixtoolkit.codeplex.com/wikipage?version=69 [15] Pavan Podila & Kevin Hoffman, 2009 WPF Control Development Unleashed: Building Advanced User Experiences 1st ed s.l.:Sams [16] Stephanie Krieger, 2007 Advanced Microsoft Office Documents 2007 Edition Inside Out s.l.:Microsoft Press [17] Tan Wenjun, Wu Chengdong, Zhao Shuying & Jiang Li, 2010 Dynamic hand gesture recognition using motion trajectories and key frames Advanced Computer Control (ICACC), Volume 3, pp 163-167 GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 118 [18] University of Illinois at Chicago, Fall 2005 The Golden Section Search Method [Online] Available at: http://www.math.uic.edu/~jan/mcs471/Lec9/gss.pdf [19] Wouter van Vugt, 2007 Open XML: The markup Explained s.l.:Microsoft GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Cơng Vương 119 PHỤ LỤC A: HELIXTOOLKIT - CƠNG CỤ LẬP TRÌNH 3D TRÊN WINDOWS PRESENTATION FOUNDATION A.1 Mơ tả dự án Bộ công cụ Helix 3D tập hợp đối tƣợng giao diện lớp hỗ trợ cho lập trình 3D Windows Presentation Foundation (WPF) Bộ cơng cụ có đối tƣợng giao diện giúp dễ dàng thực việc điều khiển góc nhìn camera, nhập vào mơ hình 3D (từ 3ds, lwo, obj) xuất mơ hình từ WPF Nhiều chƣơng trình ví dụ đƣợc xây dựng sẵn Hình A- Ứng dụng minh hoạ tƣơng tác với mơ hình địa cầu 3D công cụ HelixToolkit A.2 Danh sách tính HelixToolkit cung cấp tính nhƣ sau:  Thao tác điều khiển camera: GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 120 o Xoay hƣớng nhìn camera quanh vị trí đặt camera cố định o Xoay camera quanh tâm cố định o Phóng theo mức độ o Phóng theo hình chữ nhật u cầu o Đổi khoảng nhìn o Phóng/Xoay quanh vị trí nhấn chuột o Hỗ trợ camera phối cảnh camera phép chiếu trực giao  Đối tƣợng giao diện o HelixViewport3D: điều khiển camera, ánh sáng chứa Viewport3D o StereoView3D: xem lúc góc nhìn khác o AnaglyphView3D: hỗ trợ hiển thị chiều cơng nghệ anaglyph(cần kính red/cyan) o ViewCube: đối tƣợng chọn để thay đổi góc nhìn viewport tƣơng ứng theo mặt hình hộp  Thiết bị nhập o Hỗ trợ thiết bị tƣơng tác 3D Connexion SpaceNavigator  Xuất o Kerkythea render engine o File Wavefront (.obj)  Nhập o File 3D Studio (.3ds) o File Lightwave (.lwo) o File Wavefront (.obj) o File StereoLithography (.stl)  MeshBuilder – xây dựng đối tƣợng mơ hình khơng gian MeshGeometry3D  Các đối tƣợng Visual3D o Mũi tên GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 121 o Hình hộp chữ nhật o Hình lập phƣơng o Tam giác o Đƣờng thẳng o Điểm o Lƣới toạ độ o Hình rẽ quạt o Hình cầu o Hình chóp cụt o Hình trụ o Hình ống o Hệ trục toạ độ o Đối tƣợng ánh sáng o Lập phƣơng panorama o Địa o Chữ o Măt cắt  Hiệu ứng o Hiệu ứng anaglyph shader A.3 Các tương tác chuột Thao tác Lệnh Chuột phải Xoay Shift + chuột phải Di chuyển ngang Ctrl + chuột phải Phóng to/Thu nhỏ Ctrl + Shift + chuột phải Phóng theo hình chữ nhật Alt + chuột phải Đổi khoảng nhìn Cuộn chuột Phóng Shift + cuộn chuột Đổi khoảng nhìn GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 122 Nháy kép chuột phải Đặt điểm tâm Nháy kép nút chuột Thiết lập lại camera Home Phóng mức hiển thị đầy đủ mơ hình 3D PageUp/PageDown Phóng Nút hƣớng mũi tên Xoay Ctrl + U/D/L/R/F/B Chuyển góc nhìn từ hƣớng A.4 Các chế độ camera Có chế độ sử dụng camera khác nhau:  Inspect: để quan sát quanh vật  Walkaround: di chuyển quanh khung cảnh  FixedPosition: camera ln vị trí cố định, chẳng hạn sử dụng quan sát panorama Chi tiết thao tác xử lý với chế độ camera nhƣ sau: Chế độ Vị trí Hƣớng camera nhìn Mục tiêu Quay Di Phóng chuyển ngang Inspect Xoay Thay đổi Giữ Di Di Tiến tới nguyên chuyển chuyển gần mục vị trí camera camera tiêu mục tiêu Walkaround Giữ nguyên Thay đổi Xoay Di Di Di di chuyển chuyển chuyển chuyển mục tiêu camera theo tiêu GVHD: ThS Phạm Thi Vương mục hƣớng nhìn SVTH: Trần Phước Việt Trần Công Vương 123 camera FixedPosition Giữ Thay đổi Xoay nguyên Di n/a Đối vùng chuyển nhìn thấy mục tiêu camera Các chế độ xoay camera:  Turntable: xoay quanh mặt phẳng (không thay đổi vector hƣớng lên camera)  Trackball: xoay tự A.5 Các API công cụ A.5.1 API project HelixToolkit.Wpf HelixToolkit cung cấp lớp hiển thị đối tƣợng 3D, lớp hỗ trợ cho việc đồ hoạ lớp xuất file Danh sách đầy đủ tham khảo theo đƣờng dẫn sau: http://helixtoolkit.codeplex.com/wikipage?title=HelixToolkit.Wpf&referringTitle= Documentation A.5.2 Lớp HelixViewport3D Đây đối tƣợng hiển thị quan trọng công cụ, thành phần gồm Viewport3D đối tƣợng kiểu CameraController đƣợc định nghĩa công cụ HelixViewport3D dùng phát triển ứng dụng đƣợc sử dụng thay cho đối tƣợng System.Windows.Controls.Viewport3D HelixViewport3D cung cấp thêm nhiều tính tƣơng tác điều khiển camera GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương 124 Chi tiết lớp HelixViewport3D tham khảo theo đƣờng dẫn sau: http://helixtoolkit.codeplex.com/wikipage?title=HelixViewport3D&referringTitle= Documentation A.5.3 Lớp MeshBuilder Lớp hỗ trợ việc xây dựng đối tƣợng kiểu MeshGeometry3D – đối tƣợng mơ hình 3D MeshBuilder chứa nhiều hàm cơng cụ giúp nhanh chóng thêm thành phần mơ hình 3D đƣợc xây dựng sẵn Chi tiết lớp MeshBuilder tham khảo theo đƣờng dẫn sau: http://helixtoolkit.codeplex.com/wikipage?title=MeshBuilder&referringTitle=Docu mentation GVHD: ThS Phạm Thi Vương SVTH: Trần Phước Việt Trần Công Vương ... CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM KHỐ LUẬN TỐT NGHIỆP TƢƠNG TÁC VỚI MÁY TÍNH BẰNG CỬ ĐỘNG TỰ NHIÊN CỦA CƠ THỂ VỚI KINECT Giảng viên hƣớng dẫn: Sinh viên thực hiện: Lớp: Khoá: ThS PHẠM... chung để tƣơng tác ngƣời máy sử dụng động tác tự nhiên sau Thiết bị Kinect hoạt động với máy tính cần có driver cài đặt tƣơng ứng Và để phát triển phần mềm sử dụng Kinect máy tính, mơi trƣờng... triển ứng dụng thiết bị giúp ngƣời tƣơng tác với máy động tác tự nhiên thể Các phƣơng pháp tƣơng tác đƣợc hãng gọi với tên liên quan tới từ “natural” (tự nhiên) nhƣ Natural User Interface (NUI

Ngày đăng: 23/12/2018, 06:17

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan