PCでC#で遊ぶためにKinectを購入しました。 (そして、プログラムするのはなんて楽しいことでしょう!)
CLNUIDevice.dllを使用してKinectから深度画像を取得しています。これは正常に機能し、画像のRGB値から深度を読み取ることができます。
今、私はさまざまなタイプの認識を行うためにどのライブラリがあるのか疑問に思っています。手認識、顔認識、スケルトン、感情、オブジェクトなどを見てきました。
画像処理ライブラリはKinect用である必要はありません(それは素晴らしいでしょうが)そしてそれらは.Net用である必要はありません(それは素晴らしいでしょうが)。例:オブジェクトトラッキングライブラリはすべて機能しますが、Kinectの3Dヒートマップを適切に使用できれば、はるかにうまく機能します。
Kinectによって生成された一連のRGBマトリックスを取得して、標準の画像処理アルゴリズムで実行できます。実際には、画像処理アルゴリズムは通常、意味のある結果を生成するために組み合わされます。 .netで簡単に実装(および組み合わせ)できるいくつかの標準的な手法を次に示します。
テンプレートマッチング-テンプレート画像に一致する画像の小さな部分を見つけるためのデジタル画像処理の手法 http://en.wikipedia.org/wiki/Template_matching
形態学的画像処理-集合論、格子理論、トポロジー、およびランダム関数に基づく、幾何学的構造の分析と処理のための理論と手法 http://ashleyaberneithy.wordpress.com/2011/08/08/ automating-radiology-detecting-lung-nodules-using-morphological-image-processing-in-f /
顔認識や機械学習によるパターンマッチングなど、特定のシナリオで使用できるより高度な画像処理技術もあります。
主成分分析-私は過去にこの手法を使用しましたが、thinkこれは現代の民生用カメラで顔認識を実行するために使用されていると思います http://en.wikipedia.org/ wiki/Principal_component_analysis
機械学習のパターンマッチング-私は過去にサポートベクターマシンとニューラルネットワークベースの学習アルゴリズムを使用して、画像マトリックスのパターンを検出しました。 Vapnikの統計的学習理論を読む価値があります- http://www.Amazon.com/Statistical-Learning-Theory-Vladimir-Vapnik/dp/0471030031 トレーニングデータをn-に正常にマッピングする方法を示しています次元構造、およびデータを分類する構造内の超平面を正常にモデル化する方法、新しいデータは、このモデルに基づいて分類できます。 LibSVMと呼ばれるライブラリも存在します。これは私が便利だと思っています。 http://www.csie.ntu.edu.tw/~cjlin/libsvm/
ちなみに、これらのアルゴリズムのいくつかを実装するために.netの世界でF#を使用する方がおそらくより自然でしょう。
編集:もう一つの本当に良い本は「デジタル画像処理」です
OpenCVを学びましょう。これは、今日のコンピュータービジョンラボ/学習のための標準フレームワークです。輪郭検索機能、K最近傍法などを試してください。ただし、最初に、そのインターフェイス(データ構造、関数)を学習します。
コンピュータビジョンと機械学習に役立つ.Netライブラリは AForge.NET
これはコードサンプルとKinectでそれを使用している誰かのビデオです: Conquex
そして、義務的なOpenCVとC#への私のお気に入りのポート http://www.emgu.com/wiki/index.php/Main_Page
Kennyと一緒にサイディング これについて-OpenCVへのEmgu C#ラッパーが私が求めるものです。 OpenCV(通常はC++ベース)は、最も広く使用されているComputer Visionフレームワークであり、Intelによって部分的に保守/最適化されています。現在の多くの研究者やエンジニアは、これを使用して独自のプロジェクトを作成しています。Emguラッパーを使用すると、C#でライブラリを利用し始めるための優れた翻訳が提供されます。 Kinect領域のオープンソースイノベーションの多くはlibfreenectラッパー(Linux/C++で最適に使用)で行われていると感じています。EmguCVは、これらのビジョン研究者が模倣する(または他の人の模倣を使用する)ための最良の方法を提供するはずです。やっている。
OpenCVに関するいくつかの修正。以前はCライブラリでしたが、レガシーコードは引き続き維持されていますが、OpenCVはほぼ純粋にC++になりました。つまり、バージョン2.1以降です。 Cのみのライブラリであった場合、その多くは処理が非常に複雑でしたが、新しいバージョンでは単純化されています。
また、すばらしいリソースとして機能するYahooOpenCVグループもあります。また、openCVには、基本的なパターンマッチングでグリップを得るのに大いに役立つサンプルのセットが付属しています。
Yahooグループへのリンク http://tech.groups.yahoo.com/group/OpenCV/
KinectとOpenCVのサンプル http://www.morethantechnical.com/2010/11/22/kinect-and-opencv-2-1/