【はじめに】
このページは、2015年5月22日に発売の秀和システム『KINECT for Windows SDKプログラミング Kinect for Windows v2センサー対応版』の『KinectV2の限界を突破する』章のサンプル・プログラムのダウンロード・サポートを行うための個人サイトページです。
プログラムはMicrosoft社のVisual C#で記述されており、Visual Studioのプロジェクトファイルごとにzip圧縮されています。解凍してご利用ください。
原則として技術サポートは行いませんので、自己責任のもとでご自由にご利用ください。ただし、本ページの記載内容並びにプログラム、プロジェクトファイルの転載は禁止いたします。
【基本機能】
①フルHD[Color]カメラ(1920x1080画素, 15/30FPS)のキャプチャー
【概要】KinectV2センサーのフルHDカメラで取得した画像(1920x1080画素)を全画面モードで表示します。薄暗い環境では15FPS、明るい環境では30FPSとなります。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_Color.zip
②デプス[Depth]カメラ(512x424画素, 30FPS)のキャプチャー
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)を全画面モードで表示します。
【使い方】数字の1キーでカラー表示、数字の2キーでモノクロ表示。Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_Depth.zip
②'デプス[Depth]カメラ(512x424画素, 30FPS)のキャプチャー【Form】
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)を同一サイズで表示します。
【使い方】数字の1キーでモノクロ表示、数字の2キーでカラーLUT(Look Up Table)表示。数字の3キーでLighting表示。さらに数字の4キーでフレームFIFOを用いたLighting表示。Escキーで終了します。
【ダウンロード】
Sample_Depth.zip
②''デプス[Depth]カメラ(512x424画素, 30FPS)のキャプチャーと骨格トラッキング【Form】
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)を同一サイズで表示します。人物1名の骨格トラッキング結果を重畳して表示します。
【使い方】数字の1キーでモノクロ表示、数字の2キーでカラーLUT(Look Up Table)表示。数字の3キーでLighting表示。さらに数字の4キーでフレームFIFOを用いたLighting表示。Escキーで終了します。
【ダウンロード】
Sample_Body.zip
③アクティブ赤外線[Infrared]カメラ(512x424画素, 30FPS)のキャプチャー
【概要】KinectV2センサーのアクティブ赤外線カメラで取得した画像(512x424画素, 30FPS)を全画面モードで表示します。環境光オフセットを除去した画像であるため、部屋の照明は映りません。また日中屋外では使用できません。
【使い方】数字の1キーでカラー表示、数字の2キーでモノクロ表示。Escキーで終了します。
【捕捉】WGF(Wire Grid Film)を使って血管を見る場合には、モノクロ表示を使うと見やすいでしょう。
【ダウンロード】
K4W_v2_Sample_Infrared.zip
④人検出カメラ[BodyIndex]カメラ(512x424画素, 30FPS)のキャプチャー
【概要】KinectV2センサーの人検知カメラで取得した画像(512x424画素, 30FPS)を全画面モードで表示します。同時検出は最大6人までです。カメラに対して真横を向くと検出しないことがあります。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_BodyIndex.zip
⑤デプス[Depth]カメラ(512x424画素, 30FPS)のキャプチャー【Form】
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)を同一サイズで表示します。
【使い方】数字の1キーでカラー表示、数字の2キーでモノクロ表示。Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_DepthSmall.zip
⑥アクティブ赤外線[Infrared]カメラ(512x424画素, 30FPS)のキャプチャー【Form】
【概要】KinectV2センサーのアクティブ赤外線カメラで取得した画像(512x424画素, 30FPS)を同一サイズで表示します。環境光オフセットを除去した画像であるため、部屋の照明は映りません。また日中屋外では使用できません。
【使い方】数字の1キーでカラー表示、数字の2キーでモノクロ表示。Escキーで終了します。
【捕捉】WGF(Wire Grid Film)を使って血管を見る場合には、モノクロ表示を使うと見やすいでしょう。
【ダウンロード】
K4W_v2_Sample_InfraredSmall.zip
⑦骨格トラッキング
【概要】KinectV2センサーのフルHDカメラ(1920x1080画素, 15/30FPS)で取得した画像上にいる人物の骨格(25関節)を表示します。手の状態も表示でき、グー・チョキ・パーで表示円の色が変わります。
【注意】KinectV2の骨格トラッキングは人物がカメラの方を向いている前提で骨格を当てはめるアルゴリズムであるため、カメラを背にして撮影した場合には左右が反転してしまい、正しい結果が得られません。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_Body.zip
【非ウェアラブル加速度センサ】
⑧残像表示
【概要】KinectV2センサーのフルHDカメラで取得した画像(1920x1080画素, 30FPS)上に骨格トラッキングで取得した左右両手の関節の履歴を残像表示します。
【注意】KinectV2の骨格トラッキングは人物がカメラの方を向いている前提で骨格を当てはめるアルゴリズムであるため、カメラを背にして撮影した場合には左右が反転してしまい、正しい結果が得られません。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_Afterimage.zip
⑨残像に適合する円の中心座標を推定表示する基底遷移アルゴリズム
【概要】KinectV2センサーのフルHDカメラで取得した画像(1920x1080画素, 30FPS)上に骨格トラッキングで取得した左右両手の関節の履歴を残像表示するとともに、最も適合する円の中心座標を推定し、円を描画します。
【注意】KinectV2の骨格トラッキングは人物がカメラの方を向いている前提で骨格を当てはめるアルゴリズムであるため、カメラを背にして撮影した場合には左右が反転してしまい、正しい結果が得られません。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_CircleEstimation.zip
⑩加速度センサを装着する
【概要】KinectV2センサーのフルHDカメラで取得した画像(1920x1080画素, 30FPS)上に骨格トラッキングで取得した左右両手の関節の履歴を残像表示するとともに、軌跡のx軸、y軸、z軸成分ごとに放物線で補間することにより、加速度を求めます。グラフでは加速度ベクトルの絶対値を表示しています。
【注意】KinectV2の骨格トラッキングは人物がカメラの方を向いている前提で骨格を当てはめるアルゴリズムであるため、カメラを背にして撮影した場合には左右が反転してしまい、正しい結果が得られません。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_Acceleration.zip
【ToFカメラのばらつき精度を確認する】
⑪DepthPrecision
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)の30フレーム分のFIFO(First-In First-Out)を用いて、ジッターノイズのばらつきを調べます。
【ダウンロード】
K4W_v2_Sample_DepthPrecision.zip
【ToFカメラのジッターノイズの除去】
⑫DepthFIFO
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)の100フレーム分のFIFO(First-In First-Out)を用いてリアルタイム移動平均処理を施し、ジッターノイズの除去を行います。1mで0.3mm程度の精度に改善します。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_DepthFIFO.zip
【アクティブ赤外線カメラのジッターノイズの除去】
⑬InfraredFIFO
【概要】KinectV2センサーのアクティブ赤外線カメラで取得した画像(512x424画素, 30FPS)の100フレーム分のFIFO(First-In First-Out)を用いてリアルタイム移動平均処理を施し、ジッターノイズの除去を行います。夕方の暗くなり始めた時刻なら屋外でも10m先を撮影観測することができます。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_InfraredFIFO.zip
【3Dレリーフ表示】
⑭DepthFusion
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで取得した画像(512x424画素, 30FPS)から3Dレリーフ画像を生成・表示します。100フレーム分のFIFO(First-In First-Out)を用いてDepthデータのリアルタイム移動平均処理を施し、ジッターノイズの除去を行うことで、1mで0.3mm程度の精度に改善します。画素の周囲(上下左右)画素値を用いて法線ベクトルを求めて、環境光+拡散反射+鏡面反射を考慮した光源計算を行うことで、凹凸がはっきりわかる3Dレリーフ表示を行っています。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_DepthFusion.zip
VIDEO
3Dレリーフの実施事例
深度(depth)によって物体色を変えた例。床面法線ベクトルでセンサーヘッドの傾きも修正。Side Viewを作成。
【非接触バイタルセンシング】
以下の部分は更に別バージョンを追加の予定があります。
今後はクラス化を進め、リアルタイム心拍数、呼吸数を表示可能なバージョンのみコーディングしていきます。データを記録するバージョンは以下を参考に。
⑮DepthBreathingMonitor
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで人物の上半身を撮影します。距離は80cm~120cmを目安とします。取得した深度情報(512x424画素, 30FPS)を基に呼吸に伴う深度変化を求め呼吸曲線を表示します。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_ToF_Depth_Form_Breathing.zip
⑯VitalMonitor (Ver.021)
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで人物の上半身を撮影します。距離は80cm~120cmを目安とします。取得した深度情報(512x424画素, 30FPS)を基に呼吸に伴う深度変化を求め呼吸曲線を表示します。心拍測定は、RGBカメラ・アクティブ赤外線カメラで心拍変動に伴う顔の反射光量変化を、デプスカメラ(胸部)で心弾動を測定します。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_VitalMonitor_021.zip
⑰VitalMonitor (Ver.1.00)
【概要】KinectV2センサーのToF(Time of Flight)方式デプスカメラで人物の上半身を撮影します。距離は80cm~120cmを目安とします。Color(顔), Infrared(顔), Depth(胸部)で心拍波形を、Depth(胸部)で呼吸の波形を測定し、.csvファイルに落とします。
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_VitalMonitor.zip
⑱HeartBeatMonitor (Ver.022 β版)
【概要】KinectV2センサーのフルHDカメラで人物の上半身を撮影します。黄色の固定枠に顔が位置するようにして測定します。距離は~50cmを目安とします。取得したRGBカラーを輝度値に変換して心拍に伴う皮膚の輝度変化を求め心拍曲線を表示します。非接触バイタルセンシングのクラス化を始めました。処理速度との兼ね合いで試行錯誤中のバージョンです。
【注意】LED照明された夜間の室内よりは太陽光のある室内の方がきれいな測定曲線が得られます。照明のスペクトルに関係?
【使い方】Escキーで終了します。
【ダウンロード】
K4W_v2_Sample_VitalMonitor_022.zip
【心拍数演算事例】【VBA】
⑲HeartBeatRate
【概要】Excel VBAでノイズが混入した心電図から心拍数を求めるまでの処理方法をVBAで記述したものです。秒1000サンプルで60秒間測定した不整脈のある心電図波形の事例です。処理の効果がわかるように3ステップで処理しています。リアルタイム処理型のクラス表記で書いたものです。心拍数は次のQRS群が検出されるまでは1つ前のR-R間隔を用いて演算された心拍数を出力します。
【注意事項】赤外線脈波の場合には、基底遷移アルゴリズムで放物線近似する部分で、Ucを用いずに、加速度Uaを用いる変更が必要。
【ダウンロード】
VBASample.zip
【関連情報リンク】
●
呼吸と心拍の関係についての情報
●
心電計と心電図に関する情報
【図1】60Hzの商用電源に起因する交流ノイズの除去と基線動揺の除去
上:処理前 下:処理後
【図2】基底遷移アルゴリズムによる放物線近似を利用したノイズ除去
上:処理前 下:処理後
【図3】矩形波相関トリガ法によるQRS波の検出とR-R間隔に基づく心拍数の演算