kinect SDKツールで提供されたDiscreteGestureBasicsプロジェクトとRecordAndPlaybackBasicsを組み合わせようとしています。 RecordAndPlaybackBasicsコードには、.xefファイルを再生して.xefを記録する2つの主要なメソッドがあります。私は.xefファイルを読み込み、DiscreteGestureBasicsのコードを使ってジェスチャを評価したいと思います。 DiscreteGestureBasicsでは、RecordAndPlaybackBasicsのコードを使用して再生.xefファイルの機能を入力します。.xefファイルから視覚的なジェスチャーをオフラインで検出する
private void PlaybackClip(string filePath)
{
using (KStudioClient client = KStudio.CreateClient())
{
client.ConnectToService();
using (KStudioPlayback playback = client.CreatePlayback(filePath))
{
playback.LoopCount = this.loopCount;
playback.Start();
while (playback.State == KStudioPlaybackState.Playing)
{
Thread.Sleep(100);
}
}
client.DisconnectFromService();
}
// Update the UI after the background playback task has completed
this.isPlaying = false;
this.Dispatcher.BeginInvoke(new NoArgDelegate(UpdateState));
}
IはplaybackClip関数内GestureDetector.csのコード(DiscreteGestureBasicsからスクリプト)を追加しようとした:再生ファイルのコードは以下の通りです。私は再生機能を持つボタンを追加するので、ボタンを押すと.xefファイルが再生を開始します。 xefは正常に視覚化されますが、検出器の信頼スコアは常にゼロです。 GestureDetector.csの次のコードでは、scirptのdiscreteResultsは常にnullです。どのようなアイデアがここで何が間違っているかもしれない?
VisualGestureBuilderFrameReference frameReference = e.FrameReference;
using (VisualGestureBuilderFrame frame =frameReference.AcquireFrame())
{// frame return always null
if (frame != null)
{
IReadOnlyDictionary<Gesture, ContinuousGestureResult> discreteResults = frame.ContinuousGestureResults;
if (discreteResults != null) //discreteResults is always null.
{
}
}
}
gestureDetectorの初期化がメインウィンドウ()に見出すことができる:私は再生機能System.Diagnostics.Process.Start("VgbView.exe");
からVgbView.exeを実行するとき
int maxBodies = this.kinectSensor.BodyFrameSource.BodyCount;
for (int i = 0; i < maxBodies; ++i)
{
GestureResultView result = new GestureResultView(i, false, false, 0.0f);
GestureDetector detector = new GestureDetector(this.kinectSensor, result);
this.gestureDetectorList.Add(detector);
ContentControl contentControl = new ContentControl();
contentControl.Content = this.gestureDetectorList[i].GestureResultView;
...
}
はまた、視聴者が通常ジェスチャーを評価します。なぜ私の場合、私はContinuousGestureResults
にアクセスできませんか?週末のうちに私は何かを変え、自分のスコープ(xxからの繰り返しを数える)で成功しましたが、今は私が何を変えたのか覚えていません。なぜIReadOnlyDictionary<Gesture, ContinuousGestureResult> discreteResults = frame.ContinuousGestureResults;
ジェスチャーとContinuousGestureResultは常にnullですか?すべてのフレームについて、私は次のメソッドを受け取っています。IsTrackingIdValidは常にfalseです。
をはいオフコース私が保存され.xefています。レコーディング機能(RecordAndPlaybackBasicsのものは魅力的です)。私の問題は、再生ファイルを再生すると、gestureDetectorで評価できないということです。それはnullジェスチャーフレームを持っているようだ。 xefファイルからの情報は問題ありません。 –
私は自分の問題がtrackingId機能にあると思う。たぶん私はtrackingIdを適切に比較しないでしょう。 –