主専攻実験 第2,3回 ガイダンス資料 2014年度 TA: 1. 稲田 利亀 (Inada Toshiki) (M1) 2. 田中 翔平 (Tanaka Shohei) (M1) 3. チェンドラ ハドィ スルヤント (Chendra Hadi Suryanto) (D2) メール:{inada, tanaka, chendra}@cvlab.cs.tsukuba.ac.jp 実験課題1 1. Kinectから画像を取得し、OpenCVで表示する • RGB画像 • 距離画像 2. Nearモードの設定 3. 人物領域を切り出し(プレイヤーインデックス)、 表示する 配布するプログラムを変更して課題に取り組んでく ださい 認識プログラム全体の処理の流れ Kinect SDK カラー画像、距離画像、 などの取得 今回はここです 画像処理 OpenCV 特徴抽出 認識 出力 辞書 Kinectについて • Kinect for XBOX: • Nearモードがありません • Kinect for Windows (バージョン1): • 今の使っているKinect • Kinect for Windows バージョン 2: • 今後のKinect:前回よりもっと正確 Kinect バージョン1から取得可能なデータ • RGB画像 • 距離画像 • ユーザーインデックス • スケルトン情報 • 赤外線画像 • 音声 • 顔情報 • 加速度 今週の課題 RGB画像の表現形式 • 各画素ごとに24bitの値が得られる. • RGBの各チャンネルごとに8bit(0~255) + 無効値 8bit • 下図のように格納されている B G R 無効値 8bit 8bit 8bit 8bit 距離画像 距離画像(デプスマップ): →撮影機器との距離値を表した画像 SDKより得られる距離データは13bit(0~8192)である.可視化 を行う場合この数値を(0~255)の範囲へ変換する必要がある. 距離画像 Defaultモード/Nearモード: • Kinectでは距離画像取得時に2種類のモードを選択するこ とができる • Nearモードに設定することで、Defaultモードより近い距離ま でデータが取得可能になる 距離画像・プレイヤーインデックスの表現形式 • NuiImageStreamGetNextFrame()から1画素は16ビットデータ。距離値 (13ビット)とプレイヤーインデックス( 3ビット)から成る • NuiDepthPixelToDepth()関数とNuiDepthPixelToPlayerIndex()関数を利 用して16bitのデータを分離できる 13ビット Depth map 3ビット Player Index • プレイヤーインデックス( 3ビット): 0:人以外領域,1~6:追跡された人 OpenCVのデータ形式へ変換 • 今回のプログラムでは、Kinect SDKでKinectから取得した データをOpenCVを使って表示する。この時に、OpenCVの データ表現形式(型)に変換する必要がある。 • Kinectからの4チャネル画像→ cv::Matクラス(CV_8UC4, 4チャネル) • 距離画像→ cv::Matクラス(CV_16UC1,1チャネル) • OpenCVで画像・行列を扱うクラスは以下に参考: • http://opencv.jp/cookbook/opencv_mat.html
© Copyright 2024 Paperzz