1 TƢƠNG TÁC TRỰC QUAN GIỮA NGƢỜI VÀ MÁY TÍNH BẰNG CẢM BIẾN QUANG Nguyễn Thái Nhân, Nguyễn Xuân Thảo Khoa Công nghệ thông tin, Trường Đại học Lạc Hồng 1 Email: nhan.nhan827@gmail.com, ngxuanthao1991@gmail.com TÓM TẮT Bài viết này trình bày một giải pháp mới, hiệu quả nhằm biến một màn chiếu bình thường thành một màn chiếu cảm ứng bằng kỹ thuật xử lý ảnh với sự kết nối giữa thiết bị cảm biến quang Kinect với máy tính. Giải pháp biến một mặt phẳng bất kì thành một mặt phẳng cảm ứng tạo ra sự tương tác hai chiều giữa người dùng và máy tính, người sử dụng có thể điều khiển máy tính của mình trên một màn chiếu cảm ứng ảo với đầy đủ các tính năng điều khiển con trỏ chuột, viết/vẽ trực tiếp trên màn chiếu, điều khiển máy tính trực quan thông qua điều khiển chạm tay trên màn chiếu. Với màn hình cảm ứng loại này rất hữu ích trong giáo dục, giáo viên có thể giảng bài, viết chữ trực tiếp trên màn chiếu mà không phải mất nhiều thời để di chuyển qua lại giữa từ máy tính đến màn chiếu, điều khiển các đối tượng đồ họa (kéo thả, di chuyển) trực quan. 1. Đặt vấn đề Ngày nay, với sự phát triển của công nghệ thông tin và khoa học kỹ thuật, việc tƣơng tác với máy tính ngày càng đa dạng và phổ biến. Trong những năm đầu của nền khoa học máy tính, bàn phím, chuột hầu nhƣ là công cụ để điều khiển máy tính. Nhƣng hiện nay, thì màn hình cảm ứng dần thay thế bàn phím và chuột giúp con ngƣời có thể tƣơng tác và điều khiển máy tính một cách nhanh chóng và tiện lợi hơn. Màn hình cảm ứng không chỉ ứng dụng để điều khiển máy tính mà hiện nay đƣợc ứng dụng rộng rãi trong lĩnh vực Smartphone. Trong lĩnh vực giáo dục thì màn hình cảm ứng chƣa đƣợc phổ biến, chẳng hạn nhƣ màn chiếu cảm ứng trực quan sinh động cho các tiết giảng của giáo viên và đó cũng là vấn đề mà bài báo trình bày. 1 Số 10 Huỳnh Văn Nghệ, Biên Hòa Đồng Nai. 2 Qua khảo sát thì thấy tình hình trong và ngoài nƣớc có một số sản phẩm thƣơng mại về bảng thông minh tƣơng tác trực quan nhƣ: PANASONIC UB-T781W, HITACHI FX-77. Các sản phẩm này có thể thực hiện rất tốt tƣơng tác trực quan nhƣ lƣu nội dung trên bảng vào máy tính, điều khiển các chức năng của bảng trên máy tính, cảm ứng đa điểm. Tuy nhiên các sản phẩm này có giá thành rất cao từ 1500 đến 3500USD và đƣợc nhiều trƣờng lớn ứng dụng vào trang bị tại các phòng học nhƣ trƣờng mầm non quốc tế MappleBear Canada, Trƣờng mầm non Hạnh Phúc Tân Bình, Trƣờng mầm non Quốc tế EQ[1]. Ngoài ra còn một số công trình khác nhƣ “Tƣờng tƣơng tác” của VnTouch[4], hệ thống “Ubi interactive”[3] và hệ thống “Touchless Touch”[2] ứng dụng Kinect để tạo màn hình cảm ứng tƣơng tác xác định thao tác chạm của cơ thể ngƣời. Tuy nhiên, các công trình này vẫn có khuyết điểm nhƣ xử lý có độ trễ cao, với màn hình tƣơng tác lớn hệ thống Ubi Interactive phải dùng hai Kinect trở lên, còn Touchless Touch dùng bốn Kinect từ đó dẫn đến chi phí trang hệ thống cũng khá cao. Để giải quyết các vấn đề đặt ra, bài viết này trình bày cách tạo màn hình cảm ứng từ màn chiếu với máy tính hay biến màn chiếu thành màn hình cảm ứng với sự hỗ trợ của cảm biến quang của thiết bị Kinect. Sau khi Kinect thu lại và nhờ kỹ thuật xử lý ảnh, chƣơng trình sẽ nhận diện các thao tác của ngƣời dùng rồi sau đó chuyển thành các dòng lệnh thực hiện các chức năng chuột tƣơng ứng trên máy tính theo thời gian thực. 2. Phương pháp tiếp cận Để tạo màn hình cảm ứng từ màn chiếu và máy chiếu thông qua cảm biến quang của Kinect thì bài viết trình bày các bƣớc thực hiện nhƣ sau: Đồng bộ hóa ảnh màu và ảnh độ sâu Đồng bộ hóa ảnh là việc ghép một bức ảnh mang các giá trị độ sâu và một bức ảnh màu thành một. Chƣơng trình xử lý dựa trên thông tin từ ảnh độ sâu nhƣng để có thể giúp ngƣời dùng quan sát và chọn vùng tƣơng tác một cách tốt nhất thì cần phải có một bức ảnh đầy đủ màu sắc. Với thiết kế của camera màu và camera hồng ngoại cách nhau một khoảng cách dẫn tới hình ảnh thu về có giá trị khác nhau nên việc đồng bộ hóa ảnh là cần thiết. Để có thể xử lý theo thời gian thực, chƣơng trình chỉ cần lấy lên 10 frame ảnh độ sâu trên một giây. 3 Quét vùng cần tương tác trên màn chiếu hoặc mặt phẳng để khoang vùng giúp cho việc chuyển sang tọa độ màn hình Hệ trục tọa độ Rectangle đƣợc dùng để lƣu trữ vùng tƣơng tác. Trong đó: Trục X đƣờng thẳng nằm ngang, Trục Y đƣờng thẳng đứng. Gốc tọa độ X=0, Y=0 trùng với góc trên bên trái. Càng về bên phải gốc tọa độ, X sẽ có giá trị dƣơng và giá trị này lớn dần khi đối tƣợng di chuyển sang phải. Càng xuống dƣới gốc tọa độ, Y sẽ có giá trị dƣơng và giá trị này lớn dần khi đối tƣợng di chuyển xuống dƣới. Theo dõi khung xương con người để thực hiện rút trích khớp xương bàn tay nhằm theo dõi và nhận diện bàn tay Quá trình nhận diện một cơ thể ngƣời của cảm biến Kinect trong không gian trải qua 4 bƣớc: Bước 1: Quá trình nội suy từ dữ liệu độ sâu, xây dựng các khớp xƣơng sao cho phù hợp với dữ liệu đã đƣợc dán nhãn, từ đó vẽ ra đoạn nối các khớp xƣơng lại. Bước 2: Khi ngƣời dùng đứng vào vùng nhìn thấy của Kinect, Kinect nhận dạng các khớp xƣơng trên cơ thể. Bước 3: Cảm biến tính toán các khớp đƣợc đề xuất theo mô hình 3 chiều phía trên, phía trƣớc, và bên trái. Bước 4: Kinect bắt đầu theo dõi cơ thể và chuyển động của cơ thể dựa trên những khớp xƣơng và đề xuất xây dựng mô hình 3D. Hình 1: Đồng bộ hóa ảnh màu và ảnh độ sâu 4 Bộ thƣ viện hỗ trợ Kinect SDK của Microsoft cho phép các nhà phát triển truy cập đến bản đồ các khớp xƣơng. Vị trí và tọa độ của tất cả các khớp xƣơng riêng biệt đều đƣợc xác định bởi tên gọi rõ ràng. Hình 2: Khớp xƣơng trên cơ thể đƣợc đánh tên Để nhận diện tốt hơn nhóm tác giả đã sử dụng các thông số làm mịn khung xƣơng giúp Kinect dễ nhận diện và ổn định tạo độ khi ngƣời dùng thao tác trên mặt phẳng. Bộ thƣ viện Kinect SDK cung cấp một số API để làm mịn và lọc dữ liệu của khung xƣơng giúp dữ liệu của khung xƣơng thu về đƣợc ổn định và có độ tin cậy cao. Thông số đã đƣợc sử dụng trong chƣơng trình: Nhận diện các thao tác chạm tay lên mặt phẳng tương tác Bước 1: Lấy dữ liệu khung xƣơng từ cảm biến. Bước 2: Rút trích thông tin độ sâu của bàn tay từ dữ liệu khung xƣơng. 5 Bước 3: Kiểm tra thao tác chạm của bàn tay dựa vào việc kiểm tra điều kiện nhận diện với độ sâu của bàn tay. Nếu bàn tay ở giữa 2 ngƣỡng MinThreshold và MaxThreshold thì xác nhận bàn tay đã chạm lên mặt phẳng. MinThreshold DepthHand MaxThreshold MinThreshold: Cách mặt phẳng tƣơng tác một giá trị là MaxThreshold: Cách mặt phẳng tƣơng tác một giá trị là Hình 3: Mô phỏng cách nhận dạng thao tác chạm Bước 4: Chuyển tọa độ chạm qua bản đồ độ sâu. Tọa độ bàn tay thu đƣợc từ dữ liệu khung xƣơng là hệ trục tọa độ (x,y,z) theo khung xƣơng vì vậy ta phải thực hiện chuyển tọa độ bàn tay về hệ tọa độ của bản đồ độ sâu. Chuyển tọa độ màn chiếu sang tọa độ màn hình máy tính Công thức chuyển về tọa độ trên máy tính: 6 Trong đó: - X’, Y’: tọa độ bàn tay chạm lên mặt phẳng tƣơng tác. - Rx, Ry: Tọa độ vùng tƣơng tác. - R Width : Chiều rộng vùng tƣơng tác. - R Height : Chiều dài vùng tƣơng tác. - Height: Chiều dài màn hình. - Width: Chiều rộng màn hình. Xử lý các sự kiện con trỏ chuột hệ thống và ứng dụng Chƣơng trình thực hiên các chức năng của con trỏ Windows thông qua việc gọi thƣ viện User32.dll, vì thƣ viện này là một liên kết quan trọng trong hệ điều hành, nó quản lý và điều khiển các tính năng con trỏ chuột. Chƣơng trình thực hiện các thao tác chuột từ xác thực việc chạm vào màn chiếu. Khi chạm tay vào màn chiếu là nhấn chuột trái trong Windows nhƣ trong các tƣơng tác với màn hình cảm ứng, còn sự kiện chuột phải thì ta xét thêm thời gian chờ, nếu tọa độ không thay đổi thì sau ba giây sẽ thực hiện sự kiện chuột phải. Hình 4: Lƣu đồ chƣơng trình 7 3. Kết quả Điều khiển slide PowerPoint trình chiếu Ngƣời sử dụng có thể điều khiển mƣợt mà Slide thuyết trình với đầy đủ các thao tác: chuyển slide, lui slide, thoát khỏi chế độ slideshow, ghi chú đánh dấu vẽ viết nội dung và tiện dụng hơn hẳn việc sử dụng các thiết bị trình chiếu. Điều khiển hệ thống Dễ dàng đóng/mở các chƣơng trình ứng dụng, kéo thả hình ảnh file, thƣ mục bằng click chuột trái, chuột phải với bàn tay chạm tay trái và tay phải, xoay điều khiển các mô hình 3D nhanh chóng dễ dàng giúp cho các tiết học trở nên sinh động, hấp dẫn hơn. Chương trình ứng dụng Với các thao tác bằng tay trực tiếp trên màn chiếu, hệ thống sẽ nhận dạng thời gian thực đến từng nét di chuyển nhỏ nhất của bàn tay nên rất thuận tiện để có thể vẽ viết trong các chƣơng trình hỗ trợ vẽ nhƣ: Paint, photoshop, corel Từ đó, giáo viên có viết trực tiếp, đánh dấu trọng tâm bài giảng trên màn chiếu đỡ tốn thời gian di chuyển về máy tính nhiều lần. Bên cạnh, hệ thống còn cho phép điều khiển các mô hình 3D kiến trúc một ngôi nhà, ảnh y khoa 3D, mô hình phân tử hóa học… Hình 5: Kết quả thử nghiệm với nhiều chức năng khác nhau 8 Đa môi trường hiển thị Hệ thống thực hiện tốt trong mọi môi trƣờng không bị nhiễu hoặc chiếu sáng trực tiếp của ánh sáng mặt trời và thao tác tốt với mọi mặt phẳng nhẵn và có thể dùng làm mặt phẳng máy chiếu nhƣ tƣờng xi măng, vách gỗ… Từ đó mở rộng việc tƣơng tác trên nhiều mặt phẳng mà các chức năng của hệ thống nhƣ một màn hình cảm ứng tiện dụng. Hình 5: Chƣơng trình đƣợc thử nghiệm ở ngoài trời 4. Kết luận Đề tài nghiên cứu phƣơng pháp phát hiện bàn tay chạm lên mặt phẳng cảm ứng một cách nhanh nhất và giảm độ trễ trong xử lý, giúp ngƣời dùng thoải mái thao tác với mặt phẳng tƣơng tác. Nhóm tác giả sử dụng kỹ thuật nhận diện khung xƣơng ngƣời giúp nội suy khớp xƣơng bàn tay, từ đó lấy giá trị độ sâu bàn tay so sánh với độ sâu mặt phẳng phía trƣớc để xác định tay chạm mặt phẳng, đề tài đã biến một màn chiếu hoặc một bức tƣờng thành một màn hình cảm ứng tiện lợi. Tuy nhiên còn nhiều vấn đề cần phải giải quyết, tiêu biểu nhất là tọa độ chạm vẫn chƣa ổn định tuyệt đối, không thể tƣơng tác khi bàn tay bị che bởi cơ thể, và chƣa thao tác đƣợc đến nhận dạng với kích thƣớc ngón tay, xử lý đa chạm. 5. Hướng phát triển của hệ thống Chƣơng trình sẽ phát triển thêm khả năng nhận dạng với kích thƣớc ngón tay, xử lý đa chạm và thêm một số chức năng điều khiển các ứng dụng khác trong hệ điều hành Windows. Ngoài ra, nhóm nghiên cứu muốn hƣớng tới sự mở rộng diện tích mặt phẳng tƣơng tác với việc sử dụng nhiều cảm biến Kinect cùng lúc nhằm giải quyết vấn đề 9 ngƣời dùng giấu tay vào cơ thể nhờ góc đặt các Kinect khác nhau. Trong một thời điểm có thể nhận dạng đƣợc nhiều thao tác chạm của nhiều ngƣời. Bên cạnh những ứng dụng điều khiển con trỏ Windows, chƣơng trình có thể mở rộng trong việc phát triển các ứng dụng đồ họa phục vụ trong việc quảng cáo sản phẩm vì tính tƣơng tác trực quan đem lại sự hấp dẫn cho ngƣời xem. Từ một thiết bị Kinect có thể sử dụng nhiều chức năng chính vì vậy so về hƣớng ứng dụng đây cũng là một ứng dụng đem lại hiệu quả thực tế cao so với các thiết bị chuyên dùng khác. Tài liệu tham khảo [1] Các trƣờng sử dụng màn hình cảm ứng, http://www.hocvieneq.com/index.php/gioi-thieu/130-mam-non-quoc-te-eq-ung-dung- cong-nghe-vao-giang-day-va-quan-ly-fastrackids [2] Trang giới thiệu Touchless touch, http://www.touchlesstouch.com/install.php#.Uo8zcsQXF64 [3] Trang giới thiệu Ubi Interactivew, http://blogs.msdn.com/b/kinectforwindows/archive/2013/08/13/turn-any-surface-into- a-touch-screen-with-ubi-interactive-and-kinect-for-windows.aspx [4] Trang giới thiệu Vntouch, http://www.vntouch.info/index.php?option=com_lyftenbloggie&view=lyftenbloggie& category=application&Itemid=209 . một mặt phẳng cảm ứng tạo ra sự tương tác hai chiều giữa người dùng và máy tính, người sử dụng có thể điều khiển máy tính của mình trên một màn chiếu cảm ứng ảo với đầy đủ các tính năng điều. 1 TƢƠNG TÁC TRỰC QUAN GIỮA NGƢỜI VÀ MÁY TÍNH BẰNG CẢM BIẾN QUANG Nguyễn Thái Nhân, Nguyễn Xuân Thảo Khoa Công nghệ thông tin, Trường. mới, hiệu quả nhằm biến một màn chiếu bình thường thành một màn chiếu cảm ứng bằng kỹ thuật xử lý ảnh với sự kết nối giữa thiết bị cảm biến quang Kinect với máy tính. Giải pháp biến một mặt phẳng