HOME

kinection.jp管理人
ニックネーム kinection.jp管理人
自己紹介
  • やってみよう!Kinectアプリ開発 - 第7回 音声認識 2012-07-13 17:36 kinection.jp管理人 前回はKinect™ for Windows® SDKによる音声処理機能の紹介として、機能の概要と音源の方向の取得方法を説明しました。今回は前回に引き続き、NUI(Natural User Interface)APIの主要な機能の一つとされている音声認識を紹介します。 続きを見る
    3件の質問スレッド
    • サンプルプログラムについて Morihappy 2015-11-05 08:52 すみません。第7回の音声認識の全てのサンプルプログラムをダウンロードしたいのですが、よろしいでしょうか。
    • 起動しません。 haru 2014-02-20 17:58 第6回までのプログラムを参考にさせていただきまして
      こちらの音声認識のプログラムを入力してデバックするとvshost32,exeは動作を停止しました。と出るのですが何か間違えたのでしょうか?よろしければ改善しないといけない場所など教えて頂けると嬉しいです。
    • URL消えました? kazgb 2012-10-31 21:51 >Kinect for Windows Language Packs v1.5.0 日本語用ロケール

      URL飛べなくなっていたので・・・
      http://www.microsoft.com/en-us/download/details.aspx?id=34809
      ここのファイルで大丈夫でしょうか?
      また消えるかな?
  • やってみよう!Kinectアプリ開発 - 第5回 深度情報の利用 2012-06-29 18:31 kinection.jp管理人 前回はKinect™の最大の特長である骨格情報の利用を紹介しました。今回は前回説明を飛ばした深度情報について、Kinect™ for Windows® SDKからの利用方法を紹介します。 続きを見る
    3件の質問スレッド
    • depMaskBuffer 工藝 太郎 2014-11-19 14:22 上に書いてあるプログラムを打って、エラーは出なかったのですが、

      depMaskBuffer[clrIdx ⋇ 4] = 255; の部分に

      「IndexOutOfRangeExceptionはハンドルされませんでした。」 ”インデックスが配列の境界外です。”と出ました。
      どうすればいいのか教えてください。
      トラブルシューティングのヒント:
      リストの最大インデックスが、リストサイズよりも小さくなることを確認します。
      インデックスが負の数でないことを確認します。
      データ列名が適切であることを確認します。
      この例外に関する一般的なヘルプを参照します。
      と書いてありました。
    • マスク画像の拡大縮小のプログラミング のぎむ 2012-08-22 09:17 自分のペースでこちらのkinect開発を進めています!

      前回で行った「第四回の骨格情報」のおまけで頭の傾きをマスク画像に反映させるプログラムを習いました。

      そして、今回その続きからプログラミングをするようになっています。なんとか、今回の第五回目も動作させる事が出来て一安心でした。

      そこで、前回までの復習に、傾きを加えずに拡大縮小させてみようと、第四回目のおまけ前のソースで試してみました。

      しかし、Item1などがエラーが出てしまい、(Mtrix4を追加したら消えたのですが)どこを変えれば動作するのかわかりません。

      どうかご教授いただけたらと思います。よろしくお願いします。
      4件のコメント (すべて表示)
      • のぎむ 某支配人さん、ありがとうございます。

        教えて頂いたおかげで、
        Item1のエラーは消えました。
        しかし、
        //頭の位置を保存
        results.add(head.Position);
        の部分が消えません。

        ListをList<Tuple<SkeletonPoint, Matrix4>> に変更したので、

        // 頭の位置を保存
        results.Add(Tuple.Create(head.Position, 〇〇));

        という形になると思うのですが、Item2を要求され、エラーが出てしまいました。

        実際のサンプルは、Item2に傾きが入っていた為、

        // 頭の位置を保存
        results.Add(Tuple.Create(head.Position, headMtrx));

        となっていたのですが、今回は傾きを入れないのでheadMtrxは出てきていません。
        当然、入力するとエラーがでます。

        // 頭の位置を保存
        results.Add(Tuple.Create(head.Position,   ここ ));
        ここにはなにを入れたらよいのでしょうか?


        度々、申し訳ありません。
        2012-09-09 12:24
      • 某支配人 私も理解出来てるつもりは無い部分なのですが、
        Item1が無いってことなら

        // RGBカメラの画像情報に対して、顔の位置にマスクを上書きして描画する  // 追加 第4回
            private void fillBitmap(KinectSensor kinect,ColorImageFrame imgFrame,
                        List<SkeletonPoint> headList)
            {



        // RGBカメラの画像情報に対して、顔の位置にマスクを上書きして描画する  // 追加 第4回
            private void fillBitmap(KinectSensor kinect, ColorImageFrame imgFrame,
                        List<Tuple<SkeletonPoint, Matrix4>> headList)  //
            {

        このあたりが怪しいと思います。
        合わせて

        private List<Tuple<SkeletonPoint, Matrix4>> getHeadPoints(SkeletonFrame skelFrame)   // 変更

        ここも候補となります。

        きちんとしたアドバイスにならなくてごめんなさいネ
        2012-08-28 23:45
      • のぎむ 返答遅れてしまい、申し訳ありません。

        某支配人さん、丁寧な回答して下さりありがとうございます。
        某支配人さんのレビューを参考にさせて頂いていたので、回答を頂いて驚きました。

        拝見して改めて認識したのですが、
        "Itemの定義が含まれていない"
        とエラーが出てしまいます。


        第四回のP2までに作成したソースで打ち込んだ為、
        必要な文が足りていない事に気づき、
        自分なりに解釈してMatrix4がxとyだけでなくzも取得する構文なのではと考え、
        「処理結果のリストを空状態で作成」(第四回のP3、上段)
        var results = new List<Tuple<SkeletonPoint, Matrix4>>();
        を追加しました。

        しかし、打ち込んでみたところ次々とエラーが出力され、
        すべてのエラーを消す為に頭の向きを取得まで打つ始末。

        Itemのエラーを無くすにはMatrix4を追記する必要があるのでしょうか?

        その場合、
        //頭の位置・向きを保存(第四回のP3)
        results.Add(Tuple.Create(head.Position, headMtrix));

        では、どのように変える必要があるのでしょうか?

        全くの初心者で申し訳ありません。
        よろしくお願いします。
        2012-08-28 17:21
      • 某支配人       // getHeadPointsで取得した、各東部の位置毎にループ    // 追加 第4回2nd
              for (int idx = 0; headList != null && idx < headList.Count; ++idx)
              {
                // 骨格の座標から画像情報の座標に変換
                SkeletonPoint headPos = headList[idx].Item1;    // 追加 第4回2nd
                ColorImagePoint headPt
                  = kinect.MapSkeletonPointToColor(headPos, rgbFormat);  // 追加 第4回2nd

                // 距離に応じてサイズを決定   // 追加 第5回
                int size = (int)(192 / headPos.Z);

                // 頭の位置にマスク画像を描画
                Matrix4 headMtrx = headList[idx].Item2;
                Matrix rot = new Matrix(-headMtrx.M11, headMtrx.M12,
                            -headMtrx.M21, headMtrx.M22,
                            headPt.X, headPt.Y);
                drawContext.PushTransform(new MatrixTransform(rot));
                //Rect rect = new Rect(- 64, - 64, 128, 128);
                Rect rect = new Rect(-size / 2, -size / 2, size, size);  // 変更 第5回
                drawContext.DrawImage(maskImage, rect);
                drawContext.Pop();
              }
              // 画面に表示するビットマップに描画
              drawContext.Close();
              bmpBuffer.Render(drawVisual);

        この部分で// 変更 第5回となっているあたりを参考にしていただければ、サイズの変更は可能だと思います。
        2012-08-23 11:31
    • OutOfMemoryの解決方法 mkama 2012-08-11 19:30 ジグソー運営事務局にお願いして、2週間遅れでレビュー書いています。

      入院2週間目で、やっと抜糸(抜鉤25本)しました。
      kinect + ディスクトップを病室に持ち込んで、やっとレビュー開始しました。

      連載 第5回目レビューでOutOfMemoryが発生して困っていましたが、解決方法がわかりました。

      ガーベージコレクションを強制するとエラーが発生しません。

      レビューアーの方で他の方法で解決された方、いらっしゃいましたか?

      private void fillBitmap()の最後に追加します。

      // 画面に表示するビットマップに描画
      drawConText.Close();
      bmpBuffer.Render(drawVisual);

      GC.Collect(); //★これを追加
      1件のコメント
      • kazgb 自分もこの1行でOutOfMemoryの発生が無くなりました。
        他の方法は良く分かっていないので試せていないのですが・・・
        2012-08-12 10:54
  • やってみよう!Kinectアプリ開発 - 第9回 ポーズ認識 2012-07-27 17:23 kinection.jp管理人 Kinect™ for Windows® SDKを使った実用的なアプリケーションを開発する場合、その入力としてポーズやジェスチャーを利用することが多いでしょう。そこで、今回から数回に分けてこれらのポーズやジェスチャーの認識を考えます。今回はポーズ認識の基本について説明します。 続きを見る
    1件の質問スレッド
    • マスク画像ではなく、音を出すには? matayoshinao 2014-10-14 22:23 初めまして。
      プログラム初心者です。なんとか第9回目のポーズ認証まで進めることができました。

      ポーズ認証について質問です。

      ポーズをとるとマスク画像が2倍になるのではなく、サウンドを出るようにしたい場合どのようなソースコードになりますか?

      よろしくお願いします。
  • やってみよう!Kinectアプリ開発 - 第13回 FaceTracking(後編) 2012-08-24 18:37 kinection.jp管理人 前回は、Kinect™ for Windows® SDK同梱のFace Tracking SDKを使った顔認識の基本について説明しました。今回は引き続き、Face Tracking SDKの他の機能として、画像情報からの顔の検出方法を紹介します。 続きを見る
    4件の質問スレッド
    • ハンドルされていない例外が発生 tokiko 2013-07-05 11:29 いつもお世話になっています。
      いまさらながら、このサイトでKinectについて勉強させていただき、やっと最後のここまでたどり着くことができました。

      ところがこの回まで来て、うまくいかず行き詰っています。
      ビルトして実行し、”顔検出”のボタンをクリックすると、以下のようなエラーが出ます。

      --------------------------------------------------------------------------
      'System.InvalidCastException' のハンドルされていない例外が Microsoft.Kinect.dll で発生しました。

      追加情報: 型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'Microsoft.Kinect.Interop.INuiFrameTexture' にキャストできません。IID '{13EA17F5-FF2E-4670-9EE5-1297A6E880D1}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。
      ---------------------------------------------------------------------------

      MainWindow.xaml.csのbutton1_Clickの中の、
      DepthImageFrame depthFrame
      = kinectChooser.Kinect.DepthStream.OpenNextFrame(1000);

      のところで引っかかっているようです。
      解決方法があればご教示いただければ幸いです。

      ちなみに、Kinect for SDKのバージョンは1.7です。
      ヘルプファイルでは、DepthImageFrame Membersについては、1.5、1.6、1.7共通で書かれているので、違うところに
      原因があるのかな、と考えています。

      よろしくお願いいたします。
      1件のコメント
      • drksugi 私もこの問題で困っています. スレッド絡みの問題で厄介です. 有効な解決法がなく本当に困ります. 2014-09-22 20:09
    • 画面内にボタンで出てこない 某支配人 2012-08-28 23:32 ソースコードの修正(MainWindow.xaml)
      MainWindow.xamlの修正はボタンの追加のみです。


      において、コピペしてもボタンが表示されません。
      1件のコメント
      • kinection.jp管理人 ちょっと見てみないとわからないのですが、例えばVisual C#上で、MainWindow.xamlを開き[デザイン]ビュー上では表示されているでしょうか?表示されていない場合、XAMLソース上で"Button"タグをクリックしてプロパティは表示されているでしょうか?プロパティが見える場合は画面外に出ている可能性もあるので、HorizontalAlignmentとVerticalAlignmentを確認してみてください。 2012-08-29 15:45
    • ソースへの追加場所 某支配人 2012-08-24 23:56 第13回講義に於いて
      FaceTracker.cs (追加部分のみ)のソースへの追加場所がよく解りません。

      {}の数も合わないためにいまいち推測がつきません。

      もしかすると最後の}を2つ消してから、
      今回のソースを全部追加するのでしょうか?

      お手数ですがお教え願います。

      3件のコメント (すべて表示)
      • kinection.jp管理人 ご指摘ありがとうございます。分かりにくかったようで申し訳ありません。
        説明を追加しておきましたが、"}"を1つ削除してソースを貼り付けでいけるかと思いますがいかがでしょうか。
        2012-08-29 15:33
      • 某支配人 自己完結は勘違いでした。
        申し訳ありません。

        とりあえずFaceTracker.cs については問題はなさそうなのですが、正式な回答をいただきたいです。

        また2点、動作がおかしいので別途質問スレッドを建てます。
        2012-08-28 22:29
      • 某支配人 自己完結しました。

        FaceTracker.cs の追加部分は最後の}}を消して、
        掲載されているソースを全部追加で問題なく動作しました。

        私の確認時には}の消し方を間違えていたようでエラーが出まくりでしたが、再度元ソースをいじったら通りました。
        2012-08-27 11:07
    • コンテキストが無い 某支配人 2012-08-28 23:37 MainWindow.xaml.cs
      にて
      名前'InitializeComponent'は現在のコンテキスト内に存在しません。
      名前'rgbImage'は現在のコンテキスト内に存在しません。

      ともでます。


      namespace FaceTrackingSample_01


      この末尾_01を消すとエラーは出なくなります。

      前回のソースの流用ってことですが、フォルダ名の変更指示等が無いため、ネームスペースの方の_01が余分かと思います。

      立て続けに質問して申し訳ありませんが、なにとぞ回答のほどよろしくお願いします。
      1件のコメント
      • kinection.jp管理人 ご指摘ありがとうございます。"_01"は余分です。
        ソースの方を修正しました。
        2012-08-29 15:19
  • 「Kinect™〔キネクト〕」を体感しよう!!2013年4月12日より、Kinect™ 体験デモンストレーション開催 2013-04-12 15:16 kinection.jp管理人 2013年4月12日(金)より秋葉原各ショップ店頭にてKinect™ 体験デモンストレーションを順次開催いたします。Kinect™ でディスプレイに映る自分の顔がアバターに変わ 続きを見る
  • Microsoft® Kinect™ for Windows® SDK v1.7 配布開始 2013-03-19 10:21 kinection.jp管理人 マイクロソフトは「Microsoft® Kinect™ for Windows® SDK v1.7」 の配布を3月18日から開始した。 続きを見る
  • ユニットコム主催2012 AKIBA PC-DIY EXPO 冬の陣開催! NUC+Kinect体験コーナーで“落ちゲー”をプレイ! 2012-12-19 12:11 kinection.jp管理人 2012年12月15日、16日、ユニットコムグループが主催するパソコンイベント「2012 AKIBA PC-DIY EXPO 冬の陣」が、東京・ベルサール秋葉原で開催された。 続きを見る
  • やってみよう!Kinectアプリ開発 - 第10回 ジェスチャー認識 2012-08-03 17:57 kinection.jp管理人 前回はKinect™ for Windows® SDKを使った実用的なアプリケーションのために、ポーズ認識の基本について説明しました。今回はその続きとして、ジェスチャー認識の基本について説明します。 続きを見る
    2件の質問スレッド
    • プログラム hm 2012-11-08 15:15 数日前から愛読させて頂いております。

      現在、大学でkinectを使ってシステム作成を目指しています。
      システムをつく前に、人のある行動をkinectで読み取る仕組みを勉強していて、参考にさせていただいております。

      第10回のプログラム全体を見ることは不可能なのでしょうか。
      何卒、宜しくお願い致します。
    • 修正の元となるソースは? 某支配人 2012-08-07 21:37 第9回なのか教えてください。


      前回のアプリケーションでポーズ認識メソッドの呼び出しを行っていた、骨格情報から頭部の位置を取得するメソッド(getHeadPoints)を、ジェスチャー認識メソッドを呼び出すように変更します。
      の部分で

      // ポーズのチェック // 追加 第9回
      int pose = checkPosture(skeleton);

      を削除して

      // ジェスチャーのチェック // 追加 第10回
      Tuple<int, int> res =
      checkGesture(skeleton,

      を追加って意味での変更します。

      ってことだと思って入力を進めました。


      が、poseが未定義とされてしまいます。

      ここまで来て、実は元ソースが違うのかな?
      と疑問が出たので質問させていただきます。

      初歩にも満たない質問ですみません。
      1件のコメント
      • kinection.jp管理人 お手間を取らせてしまい申し訳ありません、[ジェスチャー認識メソッドの呼び出しの追加]の部分のソースの画像が途中で切れていました。
        正しいものに差し替えましたのでご確認ください。

        また、ご質問の修正元のソースですが、第9回のものです。

        ご指摘どうもありがとうございました。他にも気づいた点などありましたら、コメントをお願いします。
        2012-08-09 12:52
  • やってみよう!Kinectアプリ開発 - 第4回 骨格情報の利用 2012-06-22 17:18 kinection.jp管理人 前回はKinect™ for Windows® SDKを使い、Kinectのカメラから画像情報を取得し画面に表示するアプリケーションを作成しました。今回はこれを修正し、よりKinectらしいアプリケーションにしましょう。通常説明の順序として次は深度センサーなのですが、ここは敢えて飛ばして骨格情報の取得をしてみます。 続きを見る
    4件の質問スレッド
    • バージョンアップで? kazgb 2012-10-31 22:05 SDKがバージョンアップされて、
      警告みたいなのがでていたので気になりました。

      >= kinect.MapSkeletonPointToColor(headPos, rgbFormat);

      大雑把でアレですが上の部分。。。
      一応動くみたい?ですが、[使用しないでください]と記述されていました。

      調べて、以下に書き換えました。

      = kinect.CoordinateMapper.MapSkeletonPointToColorPoint(headPos, rgbFormat);

      動いているので問題なさそうですが、、、大丈夫・・・ですよね? うん。
    • 解説のDrawingVisualについて claw 2012-08-09 17:03 はじめまして。
      現在、大学でプログラミングを学びはじめた者です。

      非常に細かいことで申し訳ないのですが、
      2ページ目、fillBitmapメソッドの解説の部分、

      > DrawingVisualのRenderOpenメソッドでDrawingContextオブジェクトを作成します。

      となっていますが、
      DrawingVisualのRenderOpenメソッドでDrawContextオブジェクトを作成します。
      の間違い(?)ではないでしょうか?

      読んでいて少し混乱してしまったので……
      1件のコメント
      • kinection.jp管理人 clawさん

        ご質問を理解できていないかも知れませんが、RenderOpenメソッドでDrawingContextクラスのオブジェクトを作成しているので、意図通りです(DrawContextというクラスはありません)。
        もし、用語として「<クラス名>オブジェクト」ではなく「<変数名>オブジェクト」とすべき、という意味であれば、例えばgoogleで"DrawingContext-object"で検索すれば普通に使われているのがわかると思います。
        2012-08-10 10:00
    • 保存について 柏木 2012-07-17 10:06 初めまして。
      初心者なのですが、取得した骨格情報というのはテキストなどに保存可能でしょうか?
      全20ポイントのスケルトンのx,y,z座標を30フレームで取得し続け、10分程度のデータを保存することは可能でしょうか?
      続いて、取得したRBG画像を動画として保存することは可能でしょうか?
      環境は
      VisualStudio2010でc#
      Kinect for Windows v.1.5
      Windows7
      です。

      よろしくお願いいたします。
      2件のコメント
      • 柏木 コメントありがとうございます!えと・・・そうなると、たとえば
        (1)
        void kinect_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
        try
        {
        using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
        {
        if (skeletonFrame != null)
        {
        DrawSkeleton(skeletonFrame);
        }
        }
        }
        catch (Exception ex)
        {
        MessageBox.Show(ex.Message);
        }
        }
        private void DrawSkeleton(SkeletonFrame skeletonFrame)
        {
        // スケルトンのデータを取得する
        Skeleton[] skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
        skeletonFrame.CopySkeletonDataTo(skeletons);

        SkeletonCanvas.Children.Clear();

        // スケルトンのジョイントを一つ一つ取得
        foreach (Skeleton skeleton in skeletons)
        {
        // スケルトンがトラッキング状態の場合は、ジョイントを取得
        if (skeleton.TrackingState == SkeletonTrackingState.Tracked)
        {
        // ジョイントを保存する
        foreach (Joint joint in skeleton.Joints)
        {
        // ジョイントがトラッキングされていなければ次へ
        if (joint.TrackingState == JointTrackingState.NotTracked)
        {
        continue;
        }

        // ジョイントの座標を保存する
        JointRecord(joint.Position);
        }
        }
        }
        }
        とでもして、JointRecord部分で・・・どう作ればいいのかわからなくなってしまっております。Console.WriteLineで保存可能なのでしょうか?

        (2)
        void kinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)
        {
        try
        {
        // RGBカメラのフレームデータを取得する
        using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
        {
        if (colorFrame != null)
        {
        // RGBカメラのピクセルデータを取得する
        byte[] colorPixel = new byte[colorFrame.PixelDataLength];
        colorFrame.CopyPixelDataTo(colorPixel);

        // ピクセルデータをビットマップに変換する
        RGBCameraImage.Source = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96,
        PixelFormats.Bgr32, null, colorPixel, colorFrame.Width * colorFrame.BytesPerPixel);
        }
        }
        }
        catch (Exception ex)
        {
        MessageBox.Show(ex.Message);
        }
        }
        たとえばこの状態だとして、GridのImageを動画で保存するにはどのようにすればいいのでしょうか?

        色々検索はしてみたのですが、画像保存の場合くらいしか見つからず、よく分かりませんで。

        どうぞよろしくお願いいたします。
        2012-07-20 10:40
      • 初音玲 (1)
        保存先の書き込みスピードにもよりますがテキストデータとしての保存は可能です。

        (2)
        取得したRGB画像を動画として保存することは可能です。
        2012-07-19 02:19
    • バグ修正 kinection.jp管理人 2012-07-03 09:38 かおるんさんご指摘の画像が反転するバグの修正です。

      Matrix rot = new Matrix(-headMtrx.M11, headMtrx.M12,
      -headMtrx.M21, headMtrx.M22,
      headPt.X, headPt.Y);

      M11 と M12 のところの符号を反転させています。
  • やってみよう!Kinectアプリ開発 - 第12回 FaceTracking(前編) 2012-08-17 17:27 kinection.jp管理人 前回まで3回にわたり、Kinect™ for Windows® SDKを使ったポーズとジェスチャー認識の基本について説明しました。今回からは本連載最後のテーマとして、Kinect for Windows SDK v1.5で追加されたFace Trackingを紹介します。 続きを見る
    1件の質問スレッド
    • Kinect for XboxによるFaceTrackingについて カナタ 2012-09-16 17:36 Kinect for Xboxでこのプログラムを実行した時
      XamlParseExceptionはハンドルされませんでした。とエラーが出たのでWin32に変えたところ
      MainWindow.xaml.csの80行目
      kinect.DepthStream.Range = DepthRange.Near;でSystem.InvalidOperationException はハンドルされませんでした。
      The feature is not supported by this version of the hardware
      とのエラーが表示されてしまいました。

      NearをDefaultに変えても、他のところで上のエラーが出てしまいます。

      Kinect for XboxによってFaceTrackingを行うにはどうしたらいいんでしょうか?
      1件のコメント
      • kinection.jp管理人 >カナタさん

        Xbox用のKinectセンサーをWindowsに接続し、Kinect for Windows SDKでFaceTrackingを行う、ということでしょうか。

        こちらでは試せていませんが、FaceTrackingは基本的にはSDK側の機能に近いのでXbox用のKinectセンサーでも動くと思います。

        ただし、Xbox用のKinectセンサーはNearモードに対応していないので、
        kinect.DepthStream.Range = DepthRange.Near;
        skelStream.EnableTrackingInNearRange = true;
        の2行は削除してください。
        (おそらく「他のところで上のエラーが出る」というのは、この2行目ではないでしょうか?)
        2012-09-25 10:40