【This Web Policy】
You should make JavaScript available to read this page.
Please enable the execution of JavaScript!




【Kinect V2の限界を突破する:非接触バイタルセンシング】


『Kinect Changes the Sensing World』
    【リンクフリー】
 【私設研究所】Neo-Tech-Lab Neo-Tech-Lab.jp
【報告者】 【私設研究所Neo-Tech-Lab】 上田智章
作成日 2015/05/19
ここにチェックボックス型外部コンテンツ・メニューが入ります。




【ブラウザはGoogle Chrome】
●最新版ダウンロードはこちら

【お知らせ】

Windows7でChromeがフリーズを起こす場合は、コントロールパネル⇒管理ツール⇒サービス でWindows Media Player Network Sharing Serviceを停止かつ無効にします。Micorosoftのバグです。

【はじめに】

 このページは、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


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間隔に基づく心拍数の演算


CQ出版インターフェース5月号『あなたの知らない生体計測の世界』
CQ出版インターフェース5月号『あなたの知らない生体計測の世界』体験版ソフトウェア
   上田 智章、鈴木雅弘
 ①単眼3Dセンシングの機能を除いた機能限定版(Windows10対応版)
 ②起動後、左側にあるボタンをクリックしてimageフォルダ内の画像データを選択します。
 ③実行後有効になるもうひとつのボタンをクリックしたあと、imageフォルダを確認してください。
 ■見やすくするには、ヒストグラムの指定範囲に対してガンマ補正をかけるのが有効です。
 ■スマホやデジカメで撮影したJPEG写真データをいろいろお試しください。
 ■本ソフトウェアは皮膚と同様に衣服の繊維も透過する特性があるため3Dセンシングは現時点で実装から外しております。ご理解ください。
 


【講演・技術セミナー予定メモ】

【トリケップス セミナー】

【題  名】㉕『Azure Kinectと距離画像センサの測距原理、3Dセンサの応用』
【副  題】~Azure Kinect(Kinect v4)のTime of Flight方式、RealSense(D415, D435, SR305) のStructured Light方式、LiDAR等、非接触生体センシングの原理とその応用まで~
【開催日時】2020年6月18日(木) ⇒ 2020年9月1日(火) 10:00~17:00
【会  場】オームビル
【受講料】47,000円(税別、1名) 59,000円(税別、1口・3名まで)
【開催履歴】
  (1)2013年05月24日 (2)2013年08月30日 (3)2014年02月07日
  (4)2014年06月20日 (5)2014年08月29日 (6)2014年11月28日
  (7)2015年03月18日 (8)2015年07月10日 (9)2015年11月06日
  (10)2016年03月17日 (11)2016年4月14日 (12)2016年07月14日
  (13)2016年11月02日 (14)2017年03月24日 (15)2017年07月7日
  (16)2017年11月02日 (17)2018年03月13日 (18)2018年5月28日
  (19)2018年8月29日 (20)2018年12月5日 (21)2019年4月12日
  (22)2019年7月17日 (23)2019年10月30日 (24)2020年2月7日

【概略内容】
 Azure Kinect(Kinect v4)は2019年7月に北米・中国で発売開始され、2020年3月に日本でも発売予定が決まった。デプスカメラの視野角もWFoVモードで120度、解像度は1024×1024画素となった。SDKはオープンソースであり、C言語ベースのDLL、C++ラッパー、C#ラッパーを備える。360°マイクロフォンアレイの他、3軸加速度・ジャイロセンサも備える。これまでのゲーム機用モーションキャプチャセンサではなく、工業用、健康見守りなどの本格的な応用を視野に入れたものとなっている。
 近年、自動車分野では、自動運転化を実現するための探索センサとしてだけでなく、搭乗者の健康状態モニタやユーザーインターフェースとしても、距離画像センサを組み込んだ3Dセンサにも関心が集まっている。
 また、世界的な先進国少子高齢化を踏まえ、2025年開催予定の大阪万博のテーマは『健康と医療』に決まり、病院または老人ホームだけでなく、独居老人見守り・看取りやスマートホームとしてのシステムに対する関心も高い。
 本セミナーでは距離画像センサとカラーカメラを組み込んだ3Dセンサの基本機能、ソフトウェアで実現できる応用事例をデモを通して紹介するとともに、方式別に測距原理の説明を行い、非接触生体センシングを中心とする応用とその原理について解説を行う。また、Shannonのチャンネル容量の法則を利用した増感処理やマッチング処理の原理や応用についても触れる。
■その他、SDKのセットアップや基本的な事例の資料は添付、あるいはサンプルプログラムのダウンロードができます。


Microsoft社のAzure Kinectの内部構成図


高解像度デプスイメージの例 (Kinect V2)


iPhone6で撮影したカラーJPEG画像から真皮層内毛細血管や皮下組織内の血管を可視化した事例など