Trong điều khiển không
tiếp xúc, phương pháp cảm biến vị trí và pha chuyển động có thể được áp
dụng kết hợp để "giấu" điểm yếu và "khoe" điểm mạnh.
 |
Hình 1 |
Tiếp nối bài viết "Điều khiển không chạm" (ID: A1104_86), chuyên mục Công nghệ kỳ này gửi đến quý độc giả một bài viết nói về cách thức và nguyên lý trong thiết kế hệ thống cảm biến chuyển động sử dụng "mắt thần" hồng ngoại.
Có
thể khẳng định, giao diện người dùng dạng không tiếp xúc (touchless
user interface) hiện là công nghệ "bùng nổ" cho thiết bị điện tử dạng
nhúng (embedded electronic) khi mà các nhà phát triển đang ra sức tìm
kiếm những phương pháp kiểm soát/điều khiển mang tính sáng tạo và trực
quan hơn để người dùng tương tác dễ dàng hơn với các sản phẩm điện tử.
Do đó, công nghệ cảm biến hồng ngoại tích cực ở cự ly ngắn (active IR
proximity-motion-sensing) có thể giải quyết được bài toán này ngay từ
khâu thiết kế giao diện người dùng.
Nhờ sự đa dạng của cảm biến
hồng ngoại cự ly ngắn và cảm biến ánh sáng độ nhạy cao (ambient-light
sensor) dạng tích hợp nên việc triển khai hệ thống cảm biến chuyển
động/cử chỉ (gesture-sensing system) bằng cách sử dụng công nghệ hồng
ngoại trở nên dễ dàng hơn rất nhiều. Theo đó, 2 phương pháp chính thường
được sử dụng để kích hoạt các hệ thống cảm biến cử chỉ là cảm biến dựa
trên vị trí vật thể (position-based sensing) và cảm biến dựa trên pha
chuyển động (phase-based sensing). Hai công nghệ này có thể xem là thành
phần then chốt trong các ứng dụng/tính năng điều khiển cảm biến hồng
ngoại như lật trang trong sách điện tử, cuộn màn hình trong máy tính
bảng (tablet PC) hay điều khiển giao diện người dùng dạng đồ họa trong
các hệ thống kiểm soát công nghiệp.
YẾU TỐ PHẦN CỨNG
Dù
hầu hết ứng dụng/tính năng giao diện không tiếp xúc chủ yếu liên quan
đến các điệu bộ/cử chỉ được thực hiện bởi bàn tay (hand) của người dùng,
nhưng các mô hình nhận dạng cử chỉ/điệu bộ cũng có thể được áp dụng cho
những "đối tượng" khác như gò má, cổ tay... Thực vậy, cảm biến cự ly
ngắn có thể nhận diện chuyển động của bàn tay trong khoảng cách 15cm.
Yêu cầu cơ bản trong việc thiết kế một hệ thống cảm biến chuyển động/cử
chỉ với nhiều đèn LED là cần đảm bảo không có bất kỳ điểm chết (dead
spot) nào giữa khu vực có thể quan sát (detectable area).
 |
Hình 2 |
Khi
một đối tượng xuất hiện phía trên hệ thống và không được phát hiện,
nhận dạng thì đối tượng đó có thể đang "đứng" tại một điểm chết. Để
tránh gặp phải điểm chết, các đèn LED phải được đặt ở vị trí mà tại đó
nguồn sáng phát ra từ đèn hồng ngoại có thể phản hồi lại đối tượng và
chuyển tiếp vào cảm biến trong một khoảng cách có thể kiểm soát được
(Hình 1). Khu vực thường tạo ra điểm chết là phần ngay phía trên cảm
biến, giữa 2 đèn LED; do đó 2 đèn LED thường được đặt gần các cạnh của
đối tượng để chúng có thể cung cấp thông tin phản hồi vào khoảng giữa
của vùng quan sát, trong khi vẫn đảm bảo khoảng cách hợp lý giữa 2 đèn
LED để có thể phản hồi mọi chuyển động sang trái/phải của bàn tay hay
các ngón tay.
Vị trí và phản hồi của đối tượng trong một hệ
thống cảm biến cử chỉ/chuyển động là điều đặc biệt quan trọng. Lưu ý,
các cảm biến cự ly ngắn trong Hình 1 được đặt dưới lòng bàn tay và ở
giữa các ngón tay. Các ngón tay là những đối tượng khó nhận diện đối với
các hệ thống nhận dạng bàn tay vì ánh sáng có thể truyền xuyên qua khe
hở ở giữa các ngón tay. Hình dáng của ngón tay về cơ bản cũng tạo ra sự
sai lệch về kết quả trong các phép đo/nhận diện sự chuyển động của bàn
tay.
CẢM BIẾN DỰA TRÊN VỊ TRÍ
Nguyên
lý hoạt động của cảm biến chuyển động dựa trên vị trí của bàn tay/ngón
tay (position-based gesture-sensing) về cơ bản gồm 3 bước. Bước đầu
tiên: Chuyển đổi dữ liệu
đầu vào dạng thô sang dữ liệu khoảng cách có thể sử dụng được. Bước thứ
2: Sử dụng dữ liệu khoảng cách này để ước lượng vị trí của đối tượng,
và bước thứ 3: Kiểm tra thời gian của sự chuyển động bất kỳ khi nào cử
chỉ/điệu bộ của đối tượng cần quan sát diễn ra.
Cảm biến cự ly
ngắn trả về giá trị là độ sáng của nguồn sáng mà các đèn LED hồng ngoại
phản hồi. Những giá trị này tăng khi đối tượng hay bàn tay di chuyển gần
hơn so với hệ thống và phản hồi ánh sáng nhiều hơn. Giả sử, một bàn tay
là đối tượng được xác định trước cho việc phát hiện mục tiêu. Hệ thống
có thể ước lượng khoảng cách dựa trên tín hiệu phản hồi của bàn tay ở
một khoảng cách nhất định. Ví dụ, một bàn tay đặt ở khoảng cách 10cm tạo
ra giá trị trả về ở hệ thống cảm biến cự ly ngắn là 5000. Do đó, khi hệ
thống cảm biến nhận giá trị trả về là 5000, có nghĩa người dùng đang
đặt bàn tay cách cảm biến 10cm. Từ đó, việc ghi nhận nhiều giá trị ở
những khoảng cách khác nhau từ hệ thống sẽ giúp "nội suy" các điểm ở
giữa, đồng thời tạo ra một phương trình cân bằng từ dữ liệu thô (lấy từ
hệ thống cảm biến cự ly ngắn) sang giá trị khoảng cách được ước lượng.
 |
Hinh 3 | Hinh 4 |
Mỗi
đèn LED trong một hệ thống nhiều đèn LED có giá trị phản hồi khác nhau
cho khoảng cách của mỗi bàn tay, vì thế mỗi đèn LED cần công thức tính
toán khoảng cách riêng. Với hệ thống 2 đèn LED, mỗi đèn LED phải được mô
tả với đối tượng được đặt giữa 2 đèn LED và thiết bị cảm ứng (Hình 2).
Lấy ví dụ ở Hình 2, ta thấy, khi Target 1 được di chuyển qua cảm biến và
đèn LED 1, giá trị đo phản hồi sẽ giúp xác định giá trị khoảng cách D1,
tương tự với giá trị khoảng cách D2 cho đối tượng Target 2.
Bước
kế tiếp là ước lượng vị trí của đối tượng bằng cách sử dụng dữ liệu
khoảng cách và công thức giao nhau của 2 vòng tròn. Phản hồi của nguồn
sáng LED 1 là một hình nón, nhưng trong phép tính xấp xỉ này, ta có thể
xem đó là một hình cầu. Với các đèn LED được đặt trên cùng 1 trục
(axis), sự giao nhau của 2 hình nón có thể được xem như sự giao nhau của
2 vòng tròn.
Khi một đối tượng được đặt vào giữa hệ thống quan
sát, D1 và D2 sẽ ước lượng khoảng cách từ điểm P1 và P2 đến đối tượng ở
phía trên hệ thống (Hình 3). Nếu xem D1 và D2 là bán kính của 2 đường
tròn, thì sự giao nhau của 2 đường tròn này dễ dàng giúp ta tính được
giá trị (hay nói chính xác là vị trí) của đối tượng.
Hình 4 là
phiên bản mở rộng của Hình 3, mà ở đó A và B là giá trị vị trí của đối
tượng trên trục giữa các điểm P1 và P2. Giá trị D1 và D2 đã được đổi
thành tên R1 và R2 để cho thấy rằng trong trường hợp này chúng được xem
là bán kính. Giá trị của A là vị trí của đối tượng trên trục giữa điểm
P1 và P2. A có thể nhận giá trị âm (negative value) khi đối tượng xuất
hiện ở phía bên trái của điểm P1. Khoảng cách đến đối tượng là hàm của
các biến sau: D = A+B, và A=(R12 - R22 + D2)/2D.
Với hàm tính vị
trí vừa có, việc ghi nhận thời gian sẽ cho phép hệ thống tìm kiếm và
"hiểu" được các cử chỉ, thao tác điều khiển của bàn tay. Các vị trí vào
(entry position) và vị trí ra (exit position) là những giá trị quan
trọng nhất trong việc nhận diện và phản hồi các cử chỉ của bàn tay.
Trong trường hợp này, vị trí vào là nơi bàn tay bắt đầu cử chỉ, còn vị
trí ra là nơi bàn tay ngừng lại hay chấm dứt một cử chỉ điều khiển.
 |
Hình 5 |
Một
thao tác sẽ được xác định là hướng về phía bên trái nếu bàn tay của
người điều khiển xuất hiện trong vùng quan sát bên trái với giá trị A ở
mức cao và rời khỏi vùng quan sát bên trái với giá trị A ở mức thấp.
Kịch bản dạng này giả dụ rằng các thao tác di chuyển bàn tay diễn ra
trong một cửa sổ với thời gian xác định. Nếu vị trí này "ổn định" trong
một quãng thời gian xác định thì có thể xem đây là thao tác "tạm ngưng"
di chuyển (pause).
Hệ thống cảm biến chuyển động phải ghi nhận
được chính xác các mốc thời gian của các vị trí vào/ra cũng như vị trí
hiện hữu của đối tượng trong khu vực quan sát. Với cơ sở dữ liệu dựng
sẵn, bạn có thể dể dàng nhận diện hầu hết cử chỉ, điệu bộ từ dữ liệu vị
trí và thời gian.
Phương pháp dựa trên vị trí có thể cung cấp
thông tin về vị trí của đối tượng. Ví dụ, để cuộn trang trong một quyển
sách, bạn có thể "để lửng" bàn tay vào vùng điều khiển bên trái thay vì
thực hiện vài cử chỉ quét tay về bên trái.
Nhược điểm lớn nhất
của phương thức cảm biến cử chỉ, điệu bộ dựa trên vị trí là tính chính
xác của các hàm tính toán bởi lý thuyết gán kết quả trả về từ đèn LED là
hình cầu nhưng thực tế đó lại là hình nón. Ngoài ra, nhiễu và tán xạ
nguồn sáng phản hồi cũng là những nguyên nhân làm cho giá trị trả về từ
các cảm biến, đèn LED bị thay đổi (dù rất ít). Một vấn đề khác cần quan
tâm, đó là phương thức này không thể giải thích được hình dáng của đối
tượng. Ví dụ, hệ thống không thể phân biệt được sự khác nhau giữa bàn
tay và cổ tay, vì thế độ chính xác sẽ kém hơn khi nhận diện những cử chỉ
mà đòi hỏi người dùng phải sử dụng cả cổ tay - hay nói chính xác là cổ
tay của người dùng đã lọt vào vùng quan sát của hệ thống cảm biến.
Các
hàm tính toán vị trí thường chính xác với hệ thống có độ phân giải thấp
mà chỉ cần lưới nhận diện cỡ 3x3, nhưng các hàm này không thể thích hợp
cho các ứng dụng cần thao tác trỏ tay hay cần chỉ rõ vị trí tương tác.
Tóm lại, kết quả đầu ra của phương pháp này không thích hợp để thay thế
cho màn hình cảm ứng.
CẢM BIẾN DỰA TRÊN PHA CHUYỂN ĐỘNG
Với
hệ thống cảm biến cử chỉ dựa trên pha chuyển động (phase-based gesture
sensing), vị trí của đối tượng không bao giờ được tính/xác định. Phương
pháp này chỉ xoay quanh việc đều đặn tìm kiếm dữ liệu thô từ các hệ
thống cảm biến cự ly ngắn và xác định thời gian của các thay đổi từ các
phản hồi của mỗi đèn LED. Điểm phản hồi cực đại cho mỗi đèn LED xuất
hiện khi một bàn tay được đặt trực tiếp trước đèn LED. Nếu một bàn tay
quét ngang 2 đèn LED thì hướng của thao tác quét này có thể được xác
định bằng cách xem đèn LED nào "đáp ứng" trước tiên.
Khi quét một
bàn tay qua hệ thống cảm biến cự ly ngắn sử dụng 3 đèn LED, thì trước
tiên bàn tay sẽ đi qua đèn D2, sau đó đến D3 và sau cùng là D1. Thuật
toán cảm biến sẽ ghi nhận tín hiệu phản hồi từ D2, và ghi nhận thời gian
của phản hồi này. Sau đó, hàm sẽ tiếp tục xử lý cho D3 và D1, dĩ nhiên ở
mốc thời gian sau đó. Ngoài ra, hàm này cũng có thể xác định giá trị
phản hồi của mỗi đèn LED ở chế độ không nhận diện được và có thể ghi
nhận thời gian cho tình huống này. Trong trường hợp này, D2 trả về giá
trị thông thường trước tiên, sau đó đến D3 và cuối cũng vẫn là D1.
 |
Với
các cử chỉ đưa tay lên/xuống, D1 và D2 cùng lúc tăng và giảm, còn D3
hoặc là xuất hiện trước hay sau D1 và D2 lần lượt cho thao tác điều
khiển tay lên và xuống. Nếu một bàn tay tương tác hệ thống trực tiếp từ
phía trên và sau đó co lại (retract) để chọn một cử chỉ, thì 3 giá D1,
D2 và D3 sẽ tăng hay giảm cùng một thời điểm. Hình 6 hiển thị tín hiệu
phản hồi cho các thao tác kéo trái, phải, lên và xuống.
Khác với
phương pháp dựa trên vị trí, phương pháp dựa trên pha của chuyển động
cung cấp một cách thức "khỏe" và "thông minh" hơn để nhận diện các cử
chỉ trong các ứng dụng mà tại đó không đòi hỏi thông tin, giá trị về vị
trí.
Mỗi cử chỉ, điệu bộ có thể được nhận diện đồng thời hướng vào
hay ra của vùng quan sát, và hướng của cử chỉ có thể được kiểm tra lại
(double-check) để cung cấp tính chắc chắn cho mỗi cử chỉ của người dùng.
Nhược
điểm của phương pháp này là không cung cấp thông tin về vị trí của đối
tượng tạo ra cử chỉ, chuyển động điều khiển, và điều đó có nghĩa là số
lượng cử chỉ bị hạn chế hơn so với phương thức cảm biến dựa trên vị trí.
Phương pháp cảm biến dựa trên pha chuyển động về cơ bản chỉ cung cấp
hướng của cử động trong vùng quan sát, vì thế phương pháp này không thể
nhận diện được mọi chuyển động ở giữa vùng quan sát.
Dẫu vậy, cả
phương pháp cảm biến dựa trên vị trí và dựa trên pha chuyển động có thể
kết hợp để "giấu" điểm yếu và "khoe" điểm mạnh ở mỗi phương pháp. Phương
pháp cảm biến dựa trên vị trí cung cấp thông tin vị trí cho các điều
khiển ở mức chi tiết, và phương pháp cảm biến dựa trên pha chuyển động
cho phép nhận dạng hầu hết mọi cử chỉ, hướng tương tác.
Ở góc độ
nào đó, khi mà đòi hỏi của người dùng về giao diện không tiếp xúc tăng
cao thì rõ ràng là công nghệ cảm biến hồng ngoại cần "thông minh" hơn và
sự kết hợp 2 công nghệ trên là hoàn toàn cần thiết.
GIẢI PHÁP PRIMESENSOR
Có
phần giống với giải pháp nhận diện chuyển động với 3 đèn LED hồng
ngoại, giải pháp PrimeSensor của hãng PrimeSense có khả năng xử lý các
cử chỉ dạng 3 chiều (3D), nhưng dữ liệu hình ảnh lại được ghi nhận từ
cảm biến ảnh CMOS. Giải pháp của PrimeSense ghi nhận độ sâu, màu sắc và
cả âm thanh ở chế độ thời gian thực của không gian cần kiểm soát mà
không yêu cầu người dùng (người điều khiển hệ thống) phải mặc hay cầm
bất cứ công cụ hỗ trợ nào khác (như tay cầm trên máy Nintendo Wii hay bộ
điều khiển từ xa), cũng như không bắt buộc phải cân chỉnh hay truy xuất
dữ liệu đã được số hóa từ máy tính trung tâm. Theo PrimeSense, công
nghệ nhận dạng đối tượng 3 chiều của hãng có khả năng hoạt động trong
nhiều điều kiện ánh sáng của phòng làm việc.
Giải pháp System on
a Chip (SoC) của PrimeSense có khả năng tính toán giá trị độ sâu của
mỗi điểm ảnh (pixel), dựa trên tín hiệu trả về của cảm biến CMOS. Ngoài
ra, SoC này cũng trang bị cảm biến CMOS để nhận dạng màu sắc của điểm
ảnh, xử lý nguồn sáng trả về dựa trên công nghệ phân mã nguồn sáng Light
Coding. Về nguyên tắc, Light Coding làm việc bằng cách mã hóa vùng quan
sát thông qua đèn IR được đặt gần đó - đèn này "vô hình" đối với mắt
người. Sau đó, SoC của PrimeSense sẽ tối ưu một cảm biến ảnh CMOS chuẩn
để đọc nguồn sáng đã được mã hóa trả về từ vùng quan sát. Chip SoC được
kết nối đến cảm biến CMOS và thực thi các phép tính song song phức tạp
để giải mã nguồn sáng và xác định độ sâu hình ảnh trong vùng quan sát.
Để
trả về giá trị chính xác hơn, giải pháp của PrimeSense còn thực hiện
một quá trình khác có tên là Registration (đăng ký). Theo đó, kết quả
hình ảnh của quá trình Registration đã được "pixel hóa", có nghĩa là mọi
pixel trong hình ảnh màu đã được sắp xếp tương ứng với pixel trong ảnh
"có chiều sâu".
Ở góc độ nào đó, PrimeSense "3 chiều hóa" không
gian quan sát và "dịch" chúng thành ảnh "có chiều sâu" đã được đồng bộ
hóa như cách mà mắt người thực hiện. PrimeSense cung cấp chip PS1080 SoC
tích hợp và thư viện NITE Middleware cùng mô hình PrimeSensor. Trong
đó, NITE Middleware là thư viện giao tiếp lập trình lớp giữa, tập trung
chủ yếu vào khả năng tương tác thực (Natural Interaction) bằng cách sử
dụng 2 công cụ chính là điều khiển bằng cử chỉ (Control-by-Gesture) và
ứng dụng cho game (Games for All).
NITE Middleware cung cấp các
thuật toán, giải pháp để người dùng triển khai các ứng dụng nhận diện cử
chỉ/điệu bộ cũng như khả năng kiểm soát hạ tầng, phần cứng, ứng dụng để
tương tác với người dùng trong không gian định sẵn. Công cụ
Control-by-Gesture cho phép người dùng kiểm soát trực quan các thiết bị
điện tử trong phòng khách từ bàn tay "trần". Thư viện NITE cung cấp toàn
bộ hạ tầng cần thiết cho các nhà phát triển ứng dụng để thỏa sức thiết
kế và sáng tạo các ứng dụng có khả năng điều khiển "không chạm" bằng
cách "múa" bàn tay và các chuyển động của toàn bộ thân người.
Tham khảo: www.EDN.com, PrimeSense, Silicon Labs