2014年6月6日 星期五

Etron's Eagle Eyes

I have tested the light structure depth camera by using Intel Perceptual Computing SDK.

I have a kinect II which comes from with MS XBOX ONE and waiting for the USB power cable release, the kinect II is build by TOF depth camera.

I contacted with Etron and try to get a stereo vision depth camera for the OFmT. How lucky, Etron support an engineering sample for the development. Unfortunately, this engineer sample has some hardware issues and for engineer test only.

I did not complete this stereo vision project and waiting for a new stereo vision sample from Etron if there is any.

After test the stereo vision camera, I found it will work on OFmT. The camera is not accurate as light structure depth camera but enough to work.

As you see the video, it can segment the hand from the background and also segment fingers by depth.


The noise in this video comes from the hardware issues.

2014年2月25日 星期二

Optical Floating multi-Touch -- Intel® Perceptual Computing SDK 2013

Issues of  Intel® Perceptual Computing SDK 2013 :

  1. The angle of view is too wide, user's hand will be exhausted when willing to move the finger to edges.
  2. The resolution is too low, this make the finger movement become too sensitive.
  3. The gesture module for fingertips is not accurate and generate noise.
  4. The runtime library is not work, user must download full version of SDK. What's the meaning of runtime library?
  5. The color camera is not working properly with other applications.
  6. The depth camera world coordinator center is between color and depth camera, and the depth is base on the center of depth camera. Programer must re-caculate the world coordinator  base on camera coordinator, what's meaning of the world coordinator?

Original depth map finger tips catcher


Touch tester demo


Switch between APPs demo


Picture viwer demo


Game demo



2014年1月16日 星期四

Optical Floating multi-Touch -- OFmT without Depth map

OFmT without depth map 示意圖


OFmT without depth map sensor


OFmT without depth map  原理影片


OFmT without depth map win8 touch test


OFmT without depth map win8 touch game demo -- Cube Cooker


Optical Floating multi-Touch – OFmT with depth map

OFmT with depth map 基本示意圖


基本上, depth map 會提供三個值(x,y,d), 至於 depth map 的產生方式不在此贅述
x : camera x
y : camera y
d : 物件距離 camera 的距離

OFmT 的觀點來看, display surface 到物件的座標假設為(X,Y,D)
因此 camera 角度不同轉換到 display surface, D 的值也會不同

例一 : camera 90 度向上, d=D, OFmT 的觀點來看, 實際上不需要用到 depth map

例二 : camera  0 , 這種用法可以用在像 Google Glass 特殊的應用, 一般應用此法並不實際

例三 : camera 有角度, 角度不討論, D 的算法與例二類似, 在此不討論. Camera 置於 display surface 上方或下方也不討論



以例三而言是最實際的用法, 問題是 Camera 的角度如何固定.

應用一 : 外接螢幕或 AIO PC. 在這個領域 Camera 角度可以容易的固定
應用二 : Notebook, Camera 要放在 keyboard 上方, Camera 角度也可以固定
應用三 : Tablet, 基本上 tablet mobile phone 的螢幕較小, 直接用 touch screen 就可以了. Floating touch 的意義不大.

應用一與應用二的 Camera 角度有可能因為機構的不同造成不同的機型 Camera 角度不同, 因此 D 的算法也會不同, 有可能需要客製化, 我相信這是為何大部分現有國外的解決方案會往 gesture 發展而非 OFmT. 對台灣的軟體廠商而言這反而提供了商業機會.

OFmT gesture 比較的最大優點為 OFmT 只需要知道距離因此程序簡單, performance 相對好. Gesture 因為需要比對手型, 程序當然相對複雜. OFmT 的缺點是 Camera 角度不可由使用者自行調整. 但是如果 Camera 角度被調整了, 根據手眼協調原則仍然是可以用的, 只是

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要解決的大問題.

2013年12月6日 星期五

Depth map 主流產生方式有三

基本上 depth map 產生的方式, 目前的主流有三: 

Comparison table comes from Etron website

 eSP870Stereo VisionTime of Flight(TOF)Structured Light
Operational        Principle         Two 2D sensors emulate human eyes and equipped H/W depthmap engineTwo 2D sensors represent human eyesIR pulse, light transit time measurementPatterned IR illumination,detect distortion
Depthmap ResolutionVGA (640x480)<QVGA (320x240)QVGA (320x240)
Depthmap PerformanceMax. to 60fps<30fpsMax. to 60fps30fps
S/W ComplexityLowHighLowMedium
Cost of MaterialLowLowMediumHigh
Response TimeFastMediumFastSlow
AccuracyMediumLowHighMedium
Indoor PerformanceGoodGoodGoodGood
Outdoor PerformanceGoodGoodN/AN/A
Power ConsumptionLowLowHighMedium
RangeDepends on sensor separationDepends on sensor separationLimited (depends on IR light source)Limited


eSP870 stereo vision 應該是從工研院 license 的技術.
TOF 目前的 kinect, TI 與 Samsung 有 chip
Structured Light, 之前的 kinect. 剛被 Apple 買走的 primesense .

目前這三種技術在爭主流地位, 除了 kinect 以外生意都很小, 我預測未來兩年內生意也不會大. 因為這是全新的需求, 需要從頭創造.

強調的應用都是體感(somatosensory)或手勢(gesture)偵測, 目前看到有生意的市場是遊戲. 不論應用為何, 問題是軟體或OS要與他們特有的 API 完全整合, 因為體感與手勢目前沒有標準, 也難有標準.

因此已經有足夠的硬體可以選擇, 如果你們只想做軟體, 我不覺得有何硬體問題. 如果照這個思路, 你們在軟體的投入會很大, 而且失敗的機率也很大, 因為競爭對手都是世界一流的軟體寫手.

上述三種技術的目標是 camera 對人, leap motion 是對天花板, 因為 camera 角度不同, 最終會造成 leap motion 非主流的下場. 因此 leap motion 如果把應用目標訂得與這三種一樣, 成功的機率自然不大. Leap Motion 的好處是成像後的背景單純

我的想法與上述所有的技術都無關, 我只想 floating touch, 問題當然就簡單了. Leap Motion 如果把目標訂得跟我一樣, 它的成本就不對了. 如果以 touch 為目標, 我的想法的精準度與靈敏度不會比 leap motion 差太多. 我的想法當然不能做體感與手勢分析, 因為不需要.

上個email你提到 keyboard+leap motion 的問題, 我認為失敗的原因有二 :
  1. 成本太高, 我保守估計成本至少 US$50 以上, 想像得到 “keyboard” user price 大概要 US$150 以上, 你會買嗎?
  2. leap motion 本來就不是做 touch, 他的 API 中自然不會很精簡, 要考慮的問題太多. 這不就是”大砲打小鳥嗎”?

至於你說的”動作也不流暢, 速度也慢”, 最終應該是可以解決的技術問題.

touch 有標準, touch gesture 沒標準, 不論 touch gesture 如何各家不同, 其基礎都是 touch. 所以如果要透過 gesture 控制電腦(不論是Windows or Android or iOS), 為何要捨近求遠? 做 touch 就好啦!!

從生意的角度來看, touch market base 已經存在而且足夠大, 在不斷的市場區隔之後, 占有一席之地的機會相對也大. 而且只要努力去做, 失敗的機率相對較低, 成功的機率相對較高.

如果你要做體感或手勢, 那就另當別論了, 我也沒興趣, 因為成功的機率趨近於零.

如果你要當 fast follower, 你可以從買各家的 sensor 開始, 熟悉他們的 API.
  1. kinect w/ MS API; free download API from MS website
  2. TI w/ softkinect from TI website
  3. etron ‘s egle eyes; contact Etron directly
  4. ASUS w/ primesense; from ASUS website