2019-03-09 21:41:50鼴鼠

買了二手的舊款XBox360用Kinect,初代紅外線結構光深度攝影機初探。

Kinect這玩意,本體是基於PrimeSense(現在已經被Apple收購)所設計的深度攝影機,算是初代結構光的產品,但跟現代的ToF(也就是Kinect v2,Xbox One上用的那組)有前後代的關係。

鼴鼠多年前就玩過這組深度攝影機(鼴鼠本業是寫程式的),所以對這玩意一直很有興趣(雖然看起來是掛了XD),就這樣很多年過去後..........它徹底被淘汰了!但也因此價錢大跳水!!!





鼴鼠很窮(默),所以最喜歡買二手貨了!!!!




這真是太棒啦!!!!!(翻桌)所以鼴鼠就買了:

早期鼴鼠還以為這是Stereo camera,這種基於紅外線pattern的深度攝影機還真是有意思!!(傳統的Stereo camera要計算深度的話有很多限制,但最大的問題在於計算力需求太高,簡單說就是要做出real-time的產品價格會很貴,很大,很耗電!),這種結構光的產品在當時可是非常突破性的!



初代的Xbox360只有USB頭,聽說當時只要跟M$申請,就會附贈這條轉換成USB頭+變壓器的轉換線組,用來接初代的Xbox360(也可以接PC)。

鼴鼠買Kinect的賣家沒搞懂,直接就寫是USB介面,結果鼴鼠買來才發現是特殊端子....

最後又多花錢多花運費買了轉接線和變壓器(二手的也不算貴,但多花了一次運費,不爽):

微軟原廠變壓器。


這玩意對一般人來說一點意義都沒有,不過鼴鼠是程式設計師,還是專搞Computer Vision和NN的...所以對鼴鼠來說是很好玩的玩具....

這是M$ Kinect SDK 1.8裡面附的範例程式:

紅外線(室內燈關掉時拍攝!!!右上角是深度資訊)與角度控制(底座居然是有內建馬達的!可以控制機體上下+/-27度旋轉,但不能左右轉....真奇怪XD)。

看了一下C++原始碼,只需要一行就可以透過Kinect SDK來控制上下移動:
pThis->m_pNuiSensor->NuiCameraElevationSetAngle(pThis->m_tiltAngle);

相當方便啊!不愧是微軟....不過可能是二代已經取代一代,很多文件都沒繼續維護,甚至都消失了...這就有點糟糕了=_=+


仰角二十七度。


六度(用程式控制的,不是鼴鼠用手去轉的!)。


它的人體關節偵測是透過專屬的NN算法做出來的,微軟有自己的Kinect SDK,跨平台的話可以用PrimeSense自己的Nite(被蘋果收購後,已經沒更新,但是你能找到之前被人備份起來的版本),Driver需要用特殊的開源修改版(走Windows就不用了,用微軟官方的即可)。

總之這玩意非常好玩,除了基本深度攝影機,紅外線攝影機外,用軟體實作的關節/人臉/表情偵測也都很有趣,本體還內建了立體聲麥克風,可以做基於聲音的發聲位置偵測,也就是說可以聽聲辨位(大概是+/-70度左右)。

非常的好玩!

對鼴鼠這種想做機器人,或玩電腦視覺的人而言,是很值得收藏的玩具。

當然,對一般非資工系畢業,也不懂CV的人,這就單純是個時代的眼淚就是了=_=+
現階段的話,到可以考慮ASUS的類似產品,或是新款的ToF感應器,不過價錢實在偏高了一些,鼴鼠個人還是覺得二手的Kinect最划算,C/P值最高(畢竟便宜)。




此外,可以拿來當MMD的動作捕捉用(默),不過鼴鼠實驗了一下,發現問題超多,根本很難用...有機會再說吧....=_=






P.S.不論是紅外線或是Color影像,都可以透過USB2.0達到640x480@30fps的效能,當然,以現在的眼光看來是差了點,不過考慮其價格,還是很超值啊!!(當然,前提是你會用....)玩遊戲的話還是算了吧XD
學習3d建模 2019-05-07 23:52:12

想請問一下 USB轉接線你是買哪一種的阿?

版主回應
這是特規的頭,不過有山寨的,我最後是買原廠的,不過我想山寨的應該一樣可以用! 2019-05-08 13:21:05