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ồng1
Email:
[email protected],
[email protected]
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.
1
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.
2
Hình 1: Đồng bộ hóa ảnh màu và ảnh độ sâu
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.
3
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.
4
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:
5
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.
-
RWidth: Chiều rộng vùng tƣơng tác.
-
RHeight: 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
6
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
7
Đ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 đề
8
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-dungcong-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-intoa-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
9