Nghiên cứu và ứng dụng KINECT vào việc trình chiếu tài liệu
1 NGHIÊN CỨU VÀ ỨNG DỤNG KINECT VÀO VIỆC TRÌNH CHIẾU TÀI LIỆU Trần Việt Đức – Trương Minh Hiếu Khoa Công nghệ thông tin, Trường Đại học Lạc Hồng 1 Email: [ductran1980, truongminhhieu.winit] @gmail.com Tóm tắt: Trong bài báo này, chúng tôi sẽ giới thiệu một chương trình ứng dụng nhằm hỗ trợ việc trình chiếu tài liệu bằng giao diện giả lập cảm ứng và điều khiển từ xa thông qua thiết bị kinect. Bên cạnh đó, chương trình còn có thể giúp người sử dụng điều khiển con trỏ Windows và ra lệnh bằng giọng nói. 1. Giới thiệu Sự tương tác giữa người sử dụng với máy tính ngày càng trở nên phong phú, đa dạng. Trong những thập niên 70, bàn phím hầu như là công cụ duy nhất để điều khiển máy tính. Sau đó đến khi giao diện đồ họa phát triển, con chuột máy tính đã được phát minh và hỗ trợ việc tương tác trở nên thuận tiện hơn. Cùng với sự phát triển của công nghệ, và các thuật toán, con người có thể giao tiếp với máy tính thông qua các màn hình cảm ứng chạm, hành vi, cũng như giọng nói. Công trình nghiên cứu của chúng tôi sẽ đem đến cho người sử dụng một trải nghiệm mới trong việc trình bày các nội dung thuyết trình tài liệu bằng slide powerpoint hoặc tập tin định dạng pdf. Chương trình được xây dựng bằng ngôn ngữ lập trình Visual Studio 2010, Net Framwwork 4.0, cùng thư viện kinect SDK 1.0 và thiết bị kinect sensor, chạy trên nền Windows 7 và Microsoft Office Powerpoint 2007. 2. Đặt vấn đề Có một vấn đề phải đối mặt trong những phòng học hiện đại ngày nay và những ứng dụng của tin học vào đời đời sống. Dự án mà nhóm chúng tôi đang nghiên cứu ở đây sẽ giúp đưa mọi người đến gần hơn với một cuộc sống tương lai số. Một ứng dụng Kinect sẽ là một giải pháp tốt . 1 Số 10 Huỳnh Văn Nghệ - Biên Hòa – Đồng Nai. 2 Thay vì ngồi đằng sau một màn hình máy tính hoặc phải phải tốn nhiều thời gian và công sức để điều khiển các Slide PowerPoint, thì giờ đây người sử dụng có thể đứng từ xa để điều khiển chúng. Việc trình chiếu các bày thuyết trình bằng slide ngày nay rất phổ biến không chỉ trong công tác đào tạo, giáo dục mà còn cả trong những buổi hội nghị, giới thiệu sản phẩm,… Chương trình sẽ tạo ra một thế “ảo” mà nơi này, người sử dụng chỉ cần diễn tả hành động hoặc giọng nói của mình trước thiết bị Kinect, thì mọi yêu cầu đó sẽ được đưa vào chương trình và thực hiện chức năng tương ứng. Từ xưa, khi những thế hệ máy tính đầu tiên ra đời thì con người đã bắt đầu có những ước mơ xa hơn về thế giới tương lai của mình. Trong tương lai ấy, con người sẽ làm chủ được mọi thứ, có thể tương tác với máy tính thông qua hành động, cử chỉ và giọng nói của mình. Và câu hỏi được đặt ra là: Có thể thực hiện được ước mơ đó không? Nhưng ngày nay - thế kỷ 21, cùng với sự phát triển nhanh của ngành công nghệ số và các thiết bị số kỹ thuật cao, cùng với sự ra đời của thiết bị Microsoft Kinect sensor, thì câu trả lời đó là: Có thể! Trong nghiên cứu này, chúng tôi sẽ thực hiện một phần ước mơ đó, bằng việc hỗ trợ sự tương tác giữa con người với máy tính thông qua thiết bị Kinect để điều khiển việc trình chiếu tài liệu bằng Slide PowerPoint và con trỏ chuột trên nền Window mà không cần đến nhiều thiết bị hỗ trợ mà chỉ cần: một thiết bị Kinect Sensor, một máy tính sử dụng hệ điều hành Windows ( từ Windows 7 trở lên). Giờ đây, không cần phải chạm tay vào bàn phím, thậm chí không cần phải cầm con chuột hoặc chạm tay vào màn hình mà chỉ cần đứng trước Kinect bằng hành động và giọng nói của mình là có thể thực hiện được những gì mà mình mong muốn. 3. Nội dung và phương pháp nghiên cứu 3.1. Cơ sở lý thuyết Chương trình được lập trình trên Visual Studio 2010, Net Framewwork 4.0, cùng thư viện kinect SDK 1.0 và quan trọng nhất là thiết bị kinect sensor. Giới thiệu về kinect 3 Kinect sử dụng webcam, thiết bị thu phát sóng hồng ngoại, và thiết bị thu nhận âm thanh để ghi nhận tín hiệu chuyển động của game thủ và nhận dạng các lệnh điều khiển thông qua giọng nói, giúp cho các game thủ tương tác với Xbox 360 mà không cần chạm vào bất kì thiết bị điều khiển nào [3]. Kinect, hỗ trợ các chức năng tương tác sau: - Ghi nhận chuyển động tay (hand gesture), bao gổm các hành động xoay vòng (circle), di chuyển tay (wave gesture), push, - Ghi nhận chuyển động toàn cơ thể (full body skeleton), xác định các vị trí chính của cơ thể như đầu, vai, cẳng tay, chân,… - Điều khiển bằng giọng nói. - Nhận dạng số người đang chơi - Phân biệt đối tượng dựa vào độ sâu. Thư viện kinect SDK 1.0 Kinect SDK 1.0 [2] có khả năng hỗ trợ lên đến 4 bộ cảm biến Kinect cho một máy tính cho việc theo dõi khung xương và chế độ theo dõi chuyển động các điểm trên cơ thể người sử dụng ở khoảng cách là 40 cm ở phía trước thiết bị. Ngoài ra, đây cũng là bản được Microsoft tích hợp công nghệ nhận dạng giọng nói mới nhất nhưng chỉ hỗ trợ 4 tiếng là tiếng Anh, Mexico, Nhật và Canada và sẽ có nhiều ngôn ngữ hơn trong tương lai. Kinect chạy trên Windows SDK, tương thích Windows 7, bao gồm các trình điều khiển, cảm biến API mạnh mẽ cho Bộ Cảm Biến cử động, giao diện người dùng tự nhiên, tài liệu cài đặt cho các ứng dụng và thiết bị. SDK cung cấp các khả năng của Kinect cho các nhà phát triển để xây dựng các ứng dụng với C++, C# hoặc Visual Basic® sử dụng Microsoft® Visual Studio® 2010. 4 Các tính năng của SDK [1]: - Raw Sensor Streams - Bộ Cảm Biến cử động. - Theo dõi cấu trúc. - Khả năng xử lý âm thanh. - Dễ dàng cài đặt. 3.2. Mục tiêu và phương pháp nghiên cứu Trong khuôn khổ của đề tài, nhóm sẽ tập trung xây dựng hoàn chỉnh các công cụ và chức năng chính hỗ trợ người sử dụng trong việc trình chiếu tài liệu. Bên cạnh đó, đề tài còn phát triển thêm việc điều khiển con trỏ Windows 7 và khả năng điều khiển bằng giọng nói. Dựa vào những đặc điểm cảm biến chiều sâu và khả năng nhận dạng giọng nói của thiết bị Kinect, cùng thư viện kinect SDK 1.0. chúng tôi sẽ tạo ra một chương trình ứng dụng thông qua điều khiển máy tính từ xa. Từ việc bắt được những hình ảnh của những điểm trên cơ thể và giọng nói mà người dùng yêu cầu, chương trình sẽ dùng những thuật toán từ thư viện kinect SDK để xử lý chúng và chuyển thành những thao tác, sự kiện trên máy tính. 4. Triển khai hệ thống Sau khi cài đặt và kết nối thiết bị kinect vào máy tính cá nhân, người sử dụng có thể chạy chương trình và bắt đầu điều khiển. Thông qua giao diện chương trình, người sử dụng có thể tùy chỉnh các chức năng theo ý muốn và các điểm theo dõi chuyển động trên cơ thể. 5 Từ giao diện chính của chương trình, giúp người sử dụng có thể điều chỉnh theo các chế độ phân giải màn hình, điều chỉnh góc ngẩn của kinect, tạp ngưng và chạy chương trình và cả chọn chế độ điều khiển bằng tay. Các nút chức năng chương trình: - Thanh trượt Muose speed: dùng điều chỉnh tốc độ con trỏ để phù hợp với các chế độ phân giải của máy tính người sử dụng. - Các radio button: One hand control và true hand control. Người sử dụng có thể chọn chế độ điều khiển bằng 1 tay hoặc 2 tay tùy theo yêu cầu. - Camera down: điều chỉnh cho camera kinect quay xuống. - Camera up: điều chỉnh cho camera quay lên. - Kinect stop: tạm ngưng chương trình điều khiển. - Kinect start: kích hoạt chương trình điều khiển. Khi kích hoạt chương trình người sử dụng chỉ cần đứng trước thiết bị kinect diễn tả hành động mà mình muốn thực hiện, kinect sẽ ghi nhận tất cả những hành động 6 này và gửi chúng vào chương trình, tìm kiếm những phương thức tương ứng với từng chức năng qui định được xây dựng sẵn trong chương trình, bằng những hàm và thuật toán chương trình sẽ nhận biết được người sử dụng muốn yêu cầu gì và thực hiện chúng. 4.1. Điều khiển trình chiếu tài liệu Việc điều khiển trình chiếu tài liệu bằng slide Powerpoint trở nên rất phổ biến, thì trong phần nghiên cứu này chúng tôi sẽ tạo ra một chương trình giúp có thể đứng từ xa và điều khiển trình chiếu SlideShow. Chương trình sẽ bắt cử động bàn tay và gửi những phím chức năng xuống hệ thống để xử lý như: - Phím F5: chạy slideshow. - Phím qua phải () hoặc phím Enter: chạy tới một Slide sau. - Phím qua phải (): chạy ngược trở lại Slide trước. - Phím Esc: thoát trình chiếu SlideShow. - ………. Khi người sử dụng chọn trang và di chuyển bàn tay qua phải hoặc qua trái tùy theo ý điều khiển: 7 - Nếu bàn tay di chuyển qua phải thì người sử dụng đang yêu cầu chạy sang trang kế tiếp. - Nếu bàn tay di chuyển qua trái thì người sử dụng đang yêu cầu quay lại trang phía trước trang vừa trình bày. Sơ đồ xử lý trên cho thấy: khi người sử dụng muốn bắt đầu chạy trình chiếu thì người sử dụng chỉ cần đưa tay mình đang điều khiển qua khỏi đầu hoặc muốn kết thúc trình chiếu thì chỉ cần chéo 2 tay lại với nhau ngang vai. 4.2. Điều khiển con trỏ Windows - Sự kiện nhấp chuột trái (Left click) và chuột phải (Right click) 8 - Sự kiện nhấp đúp chuột trái (Double click) - Sự kiện kéo và thả đối tượng (Drag và Drop item) 4.3. Điều khiển bằng giọng nói Việc phát triển chương trình nhận dạng giọng nói cũng được chúng tôi thực hiện trong nghiên cứu này. Đối với điều khiển bằng giọng nói thì người sử dụng có thể đứng ở cách tùy ý miễn sao cường độ âm thanh phát ra đủ lớn và chính xác để kinect có thể nghe thấy. Để nâng cao khả năng điều khiển bằng giọng nói nhằm làm tăng tính tiện dụng, thì chương trình sẽ cho người sử dụng có thể tùy ý điều chỉnh cường độ âm thanh mà chương trình sẽ nghe. Từ đó, người sử dụng sẽ có thể điều khiển bắt kỳ nơi nào tùy theo khả năng phát âm của mình. 9 Khi nhận được chỉ lệnh bằng giọng nói, kinect sẽ dùng cấu trúc đọc ngữ pháp của mình để so sánh với những chuỗi ký tự mà chương trình đã định nghĩa, rồi tìm đến những phần xử lý tương ứng. 5. Kết luận và đánh giá 5.1. Môi trường phát triển Chương trình ứng dụng thích nghi được hầu như rất tốt trong các điều kiện ở các phòng học, phòng họp lớn, điều kiện tốt nhất là nơi có ánh sáng vừa phải và góc đặt thiết bị kinect. Chương trình sẽ tiếp tục phát triển để đáp ứng được mọi yêu cầu của người sử dụng và trong các điều kiện khác nhau nhằm nâng cao tính đa dụng và tiện ích của chương trình. 5.2. Kết quả thực nghiệm Chương trình mang đến một hiệu quả khá cao, đồng thời cũng là một giải pháp, hướng phát triển mới trong tương lai. Nó sẽ đem đến cho người sử dụng một sự tương tác tự nhiên và nhiều khoảng không gian hơn trong việc tiếp xúc với máy tính. Kết quả thử nghiệm cho thấy, người sử dụng rất thích thú và tự tin hơn khi trình bày trước đám đông và đạt kết quả cao hơn cho bài thuyết trình, gây cảm hứng và tiếp nhận thông tin một cách sinh động hơn. 5.3. Kết luận và hướng phát triển Hệ thống sẽ hỗ trợ người sử dụng rất tốt trong việc trình chiếu các tài liệu của mình. Bên cạnh đó, nó còn có khả năng điều khiển máy tính từ xa thông qua điều khiển con trỏ chuột Windows và nhận dạng giọng nói để thực thi lệnh theo yêu cầu. Hướng phát triển: Chương trình sẽ hoàn thiện hơn các công cụ hỗ trợ trình chiếu tài liệu. Ngoài ra, chúng tôi sẽ cố gắng nghiên cứu và phát triển thêm nhiều ứng dụng khác để tích hợp vào, giúp cho chương trình sẽ ngày càng đa tính năng, đa dụng hơn. Nếu có thời gian, sắp đến chúng tôi sẽ tích hợp điều khiển một số game hay nhằm đáp ứng nhu cầu người sử dụng. Chương trình sẽ có thể thay thế cả bàn phím và 10 con chuột khi điều khiển các ứng dụng trên Windows – nhiều tính năng trong một, để có thể ứng dụng rộng rãi trong cộng đồng và thay thế các thiết bị chuyên dùng khác. Tài liệu tham khảo [1] Các đặc điểm và các thuật toán của Kinect SDK, http://channel9.msdn.com/coding4fun/kinect/Special-Edition-Its-Kinect-day-The- Kinect-For-Windows-SDK-v1-is-out [2] Tìm hiểu về Microsoft Kinect SDK 1.0, http://www.i-programmer.info/programming/hardware/2623-getting-started-with- microsoft-kinect-sdk.html [3] Lịch sử ra đời và phát triển của Kinect và những ứng dụng, http://forums.gamevn.com/showthread.php?673733-Kinect-Center-Thong-tin-chi- tiet-cap-nhat-thao-luan-hoi-dap . 1 NGHIÊN CỨU VÀ ỨNG DỤNG KINECT VÀO VIỆC TRÌNH CHIẾU TÀI LIỆU Trần Việt Đức – Trương Minh Hiếu Khoa Công nghệ thông tin, Trường. chương trình ứng dụng nhằm hỗ trợ việc trình chiếu tài liệu bằng giao diện giả lập cảm ứng và điều khiển từ xa thông qua thiết bị kinect. Bên cạnh đó, chương trình còn có thể giúp người sử dụng. sử dụng muốn yêu cầu gì và thực hiện chúng. 4.1. Điều khiển trình chiếu tài liệu Việc điều khiển trình chiếu tài liệu bằng slide Powerpoint trở nên rất phổ biến, thì trong phần nghiên cứu