1. 程式人生 > >Ubuntu14.04安裝libfreenect2使用kinect2

Ubuntu14.04安裝libfreenect2使用kinect2

kinect2出來時OpenNI已被水果公司收購,第三方的驅動支援只剩下libfreenect2了。
這裡有個通過修改OpenNI實現kinect2支援的實現,沒做測試。
當然libfreenect2也支援windows平臺,但我按教程安裝一直不成功,應該是環境變數的問題。windows還是用微軟官方的SDK吧(僅支援windows 8及以上)

安裝libfreenect2

參考官方維護的github
1)下載libfreenect2原始碼、升級包

git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2/depends
./download_debs_trusty.sh

2)安裝build工具

sudo apt-get install build-essential cmake pkg-config

3)安裝 libusb、TurboJPEG、OpenGL

sudo dpkg -i debs/libusb*deb
sudo apt-get install libturbojpeg libjpeg-turbo8-dev
sudo dpkg -i debs/libglfw3*deb; sudo apt-get install -f; sudo apt-get install libgl1-mesa-dri-lts-vivid

4)[可選項]安裝OpenCL、CUDA、VAAPI、OpenNI2
安裝方法見官網,我這裡僅安裝了CUDA
5)build工程

cd ..
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
make
make install

./bin/Protonect 開啟測試程式,應該就能看到影象了

使用libfreenect2

參考官方的API手冊
該庫支援    1)RGB影象
        2)紅外IR、深度影象
        3)校準後的RGB+深度影象
        4)GPU加速
目前存在的問題 1)話筒陣列可訪問,但不支援directional audio
         2)USB連線不穩定

libfreenect2的使用可以參考examples下的protonect工程
其使用OpenGL實現影象的渲染
在這裡我使用OpenCV來處理影象,需要看手冊裡Frame類對影象資料的定義。

使用該Cmakelists.txt

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12.1)
PROJECT(kinect2)

SET(CMAKE_CXX_FLAGS "-std=c++11")
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} $ENV{HOME}/freenect2/lib/cmake/freenect2)

SET(CMAKE_BUILD_TYPE DEBUG)
SET(CMAKE_C_FLAGS_DEBUG "-g -Wall")

FIND_PACKAGE(freenect2 REQUIRED)
INCLUDE_DIRECTORIES("/usr/include/libusb-1.0")
INCLUDE_DIRECTORIES(${freenect2_INCLUDE_DIR})

FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})

SET(KINECTCLASS src/kinect.cpp src/kinect.h)

ADD_EXECUTABLE(kinect2 ./main.cpp ${KINECTCLASS})

TARGET_LINK_LIBRARIES(kinect2 ${freenect2_LIBRARIES})

TARGET_LINK_LIBRARIES(kinect2 ${OpenCV_LIBS})

用QT開啟即可
其中

SET(CMAKE_BUILD_TYPE DEBUG)
SET(CMAKE_C_FLAGS_DEBUG "-g -Wall")

是為了編譯為debug版本便於除錯