28

PC で C# を使って遊ぶために Kinect を購入しました。(そして、プログラミングはなんと楽しいことでしょう!)

Kinect から深度画像を取得するために CLNUIDevice.dll を使用しています。これは正常に機能し、画像の RGB 値から深度を読み取ることができます。

今、さまざまな種類の認識を行うためにどのライブラリがあるのか​​ 疑問に思っています。手認識、顔認識、骨格、感情、物体などを見てきました。

画像処理ライブラリは、Kinect 用である必要はありません (それは良いことですが) .Net 用である必要もありません (それは良いことですが)。例: どんなオブジェクト トラッキング ライブラリでも機能しますが、Kinect の 3D ヒートマップを適切に使用できる場合は、はるかにうまく機能します。

4

6 に答える 6

16

Kinect によって生成された一連の RGB マトリックスを取得し、標準の画像処理アルゴリズムで実行できます。実際には、通常、画像処理アルゴリズムを組み合わせて意味のある結果を生成します。以下に、.net で簡単に実装 (および組み合わせ) できる標準的な手法をいくつか示します。

テンプレート マッチング - テンプレート画像と一致する画像の小さな部分を見つけるためのデジタル画像処理の技術http://en.wikipedia.org/wiki/Template_matching

形態学的画像処理 - 集合論、格子理論、トポロジー、およびランダム関数に基づく、幾何学的構造の分析と処理のための理論と技術 http://ashleyaberneithy.wordpress.com/2011/08/08/automating-radiology-形態学的画像処理を使用した肺結節の検出/

顔認識や機械学習によるパターンマッチングなど、特定のシナリオで使用できるより高度な画像処理技術もあります。

主成分分析 - 私は過去にこの手法を使用したことがあり、最新の消費者向けカメラで顔認識を実行するために使用されていると思いますhttp://en.wikipedia.org/wiki/Principal_component_analysis

機械学習のパターン マッチング - 過去にサポート ベクター マシンとニューラル ネットワーク ベースの学習アルゴリズムを使用して、画像マトリックスのパターンを検出しました。トレーニング データを n 次元構造にうまくマッピングする方法と、データを分類する構造内の超平面をモデル化すると、このモデルに基づいて新しいデータを分類できます。LibSVM と呼ばれるライブラリも存在し、これは便利だと思います。http://www.csie.ntu.edu.tw/~cjlin/libsvm/

余談ですが、これらのアルゴリズムのいくつかを実装するには、.net の世界で F# を使用する方がおそらく自然でしょう。

編集:もう1つの本当に良い本は「デジタル画像処理」です

于 2011-01-30T13:00:56.623 に答える
2

コンピューター ビジョンと機械学習に役立つ .Net ライブラリは、AForge.NET です。

Kinect で使用しているコード サンプルとビデオを次に示します。

于 2011-01-31T16:15:36.500 に答える
2

OpenCVを学びます。これは、今日のコンピュータ ビジョン ラボ/学習の標準フレームワークです。等高線検索機能、K 最近隣などを試してみてください。ただし、最初に、そのインターフェイス (データ構造、関数) を学びます。

于 2011-04-12T16:18:31.640 に答える
1

そして、義務的な OpenCV と私のお気に入りの C# への移植http://www.emgu.com/wiki/index.php/Main_Page

于 2011-02-20T12:19:26.793 に答える
0

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/

于 2011-07-14T07:28:40.530 に答える
0

これについては Kennyの側に立つ - OpenCV への Emgu C# ラッパーは、私が求めるものです。OpenCV (通常は C++ ベース) は、最も広く使用されているコンピューター ビジョン フレームワークであり、Intel によって部分的に保守/最適化されています。現在、多くの研究者やエンジニアが独自のプロジェクトを作成するために使用しており、Emgu ラッパーは、C# でそのライブラリを利用し始めるための優れた翻訳を提供します。Kinect 分野でのオープンソースの革新の多くは、libfreenect ラッパー (Linux/C++ で使用するのが最適) を使用して行われていると感じています。やっている。

于 2011-05-13T23:49:38.550 に答える