2013年12月13日 星期五

Optical Floating multi-Touch 基本原理介紹

最近一直在想如何解釋這個事情, 經過兩個禮拜在內心的整理, 我想用光學滑鼠來說明

光學滑鼠基本架構是用一個至少1500fps的CMOS sensor, 配合人工光源, 根據圖像的變化取得滑鼠的位移量. 這也說明了為何 Optical Floating multi-Touch(OFmT)需要高fps的原因.

當然他的resolution很低, 事實上也不需要高, 因為那個CMOS sensor幾乎貼近於桌面.

滑鼠的CMOS sensor是朝下, 所擷取到的圖像背景很單純, 也不容易受到背景光源的影響.

因此滑鼠可以精準而且有效率的運作, 但是他的缺點是single point, 因為他把整個視角內的圖像當成一個物件.

假設CMOS sensor對人, 背景會很複雜, 因此朝上背景會相對簡單. 當然仍然比滑鼠複雜, 當有物件在視角內移動時, 你就可以根據物件的變化找出此物件在空間中的位移量, 從而轉換成與螢幕相對應的位移. 這時視角內的所有物件都可以轉換成螢幕相對應的位移. 因此可以做multi-point.

所以你要追蹤的物件要如何從背景中抽離是第一個課題, 如同滑鼠一般, 利用人工光源排除自然光的影響, 這時候在一定有限距離內, 物件就可以很容易得與背景分離.

至於要如何選擇人工光源, 事實上任何光源都可以, 問題是可見光會讓人的眼睛不舒服. 不可見光則有紫外線與紅外線可供選擇, 根據市場上最容易sourcing 原則, 遙控器所使用的850或920nm紅外線應該是首選. 至於要選850還是920? 根據CMOS光譜表, 850會比較亮, 920會比較暗. 亮有亮的好處, 暗有暗的好處.

如此做, 成像之後的圖像會與TOF一樣, 差別在TOF的人工光源是有頻率的, TOF要根據這個頻率的光計算出物件的距離. OFmT則不必, 因此用持續人工光源即可. 如果CMOS的fps不夠高, 則可考慮用有頻率的人工光源, 其目的不是為了物件距離, 而是要確保每張圖象中的每個物件的清晰度. 其原理跟照相機的閃光燈一樣.

嚴格來說OFmT並不在乎物件的距離, 而是根據圖像的變化來取得位移, 因此不需要depth map, 也不在乎物件是手指或是其他長條形. 也並不在乎物件的粗細不同. 當然跟物件的顏色更是完全無關. 因此灰階CMOS是很好的選擇. 只是市面上主流都是彩色CMOS, 仍然是容易sourcing原則.

至於能追蹤多少物件, 則與CMOS的視角有關, 在一定有限距離視角內能夠容納多少物件, 原則上就能追蹤多少物件. 但是視角大會造成圖像失真, 有時會得不償失. 目前實測的結果是60度視角可以容納三根手指.

至於CMOS resolution, OFmT 當然對resolution的需求比滑鼠高得多, 仍然根據容易sourcing原則, 市場主流是VGA(640x480)已經足夠. 如果要加大resolution, 用兩顆可能會比一顆好. 用兩顆也可以加大視角而且不用考慮失真的問題.

最後要考慮的是I/O bandwidth, USB2是480M, 以24bit color, VGA CMOS 而言, USB2最多只能傳60fps, 扣除I/O效率問題, 可能只剩20~30fps. 以MS touch Windows Logo requirements而言至少需要50fps. 顯而易見的這是OFmT sensor要解決的大問題.

沒有留言:

張貼留言