HOME

mkama
ニックネーム mkama
自己紹介 MSDNは、Visual Studio .net 2003からの付き合いです。
  • やってみよう!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アプリ開発 - 第1回 Kinect(キネクト)の紹介 2012-05-31 12:54 kinection.jp管理人 本連載では Kinect for Windows SDK を用いた Kinect 用 Windows® アプリケーションの開発を紹介します。コンセプトは、一人でも多くの人が、Kinect (キネクト)を利用したアプリケーション開発を手軽に体験できることを目指します。これまで Microsoft® 社のテクノロジーにあまりなじみがなく、「Visual Studioは触ったことがない」「C# は書いたことがない」という人も対象とし、適宜必要な説明を加えながら進めます。また、手軽に使い方を理解できるよう、はじめのうちは必要なエラー処理なども省き全体像を把握することを目指します。 続きを見る
    4件の質問スレッド
    • 記事の並びについて lezi 2012-08-30 11:29 いつも参考にさせていただいてます。
      Contentsの内容には関係ないのですが、記事の並びを「第○回」順に出来ませんか?
      第1回から順を追って勉強している方もいらっしゃるでしょうから
      最新の質問スレ順での並べ方では見にくいと思います。
      3件のコメント (すべて表示)
      • lezi なるほど!これは思いつきませんでした。。。
        ありがとうございます。
        2012-09-06 10:46
      • かおるん 並べてみました
        http://kinection.jp/post/100

        #なければ作るのがプログラマですね
        2012-09-05 09:11
      • 某支配人 右側のバナーエリアの空いてる部分に、各回が順番にリンクされているだけでも助かりますよね。

        質問して順番を変えてしまってる元凶の一人からでした。
        2012-08-31 10:54
    • 開発環境について ファズ 2012-06-06 00:00 開発環境の所でWindows® 7と記載されていましたが、
      それはつまりOSがVistaであると、今回のアプリ開発の企画に参加する事は難しいと捉えてて宜しいのでしょうか?
      Vistaでも開発自体はネットで検索すると可能のようですが、今回の企画での開発環境を満たしていないので応募する事を躊躇っている状況です...
      ご返答をお待ちしております。
      5件のコメント (すべて表示)
      • mkama kinection.jp管理人様
        回答、有り難うございます。
        手元の開発環境が64bitだったので質問させていただきました。
        アイデア浮かんだら、応募してみます。
        2012-06-11 17:48
      • kinection.jp管理人 > mkamaさん
        この制限は、SDKのβ版のころの"Speech Sample"というサンプルアプリケーションの制限のようです。
        v1.5付属のSpeech機能のサンプル("Speech Basics"など)は、64bitでも問題なく動作することを確認しています。
        2012-06-11 10:10
      • mkama 開発環境で32/64bitの区別はありますか?

        @IT「連載:Kinect for Windows SDK(ベータ版)開発入門」には
        「スピーチ(Speech)機能を利用するには、以下が必要である。だが、これらは32bit版のみで利用できる。」
        とありますが、今は64bitでも使えますか?

        Speech関係のサンプルプログラムは、64bit環境で動作しますか?
        2012-06-11 05:30
      • ファズ 迅速なご返答、ありがとうございました。現状で私の環境にはWindows7が無いので今回のレビューへの応募は残念ながら辞退するという結論に至りました。Vistaでの開発手段のレビューなどのアイデアのご提案など親身に答えて下さってありがとうございました。
        レビューへ参加はしませんが手持ちのアイデア等はこちらのサイトに投稿していきたいと思います。
        これから連載される「やってみよう!Kinect(キネクト)開発」や皆様のレビューを楽しみに待ちたいと思います。どうもありがとうございました。
        2012-06-07 08:43
      • kinection.jp管理人 レビューテーマが満たせるのであれば、必ずしもWindows7である必要はありません。しかし、現状Kinect for Windows SDKはVistaのサポート予定はなく( http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/cc371fef-1a8e-4c20-91cf-1ee8a78c02d6 )、VistaにSDKをインストールする手段はあるものの、音声認識など一部の機能は動かないと聞きます。このため、申し訳ありませんが、やはりVistaのみでの参加は難しいと考えていただくのがよろしいかと思います。
        ただし、通常のレビューに加えてVistaでの開発手段のレビューを追加するのであれば、非常に有用なレビューになるのではないかと思います。
        2012-06-06 10:28
    • カメラの映像について ガトー 2012-06-08 11:16 kinectのカメラの映像を作成したアプリ上で表示する事は可能なのでしょうか?
      ゲームのようにモニターの全画面に映像を表示して、それに被せるようにパーツを表示して表示位置にタッチするような動作で操作させてみたいと思っているのですが・・・
      2件のコメント
      • ガトー ご回答ありがとうございます!
        生画像も問題無く取得出来るのですね。色々と面白い使い方が出来そうな気がして来ました!!
        まぁ、私に作れるのかは別の話として・・・・(;・∀・)
        2012-06-08 14:08
      • kinection.jp管理人 Kinectのカメラが撮影した画像はアプリケーションから取得できますので、それをそのまま、あるいは加工して表示することも可能です。
        たとえば http://www.microsoft.com/en-us/kinectforwindows/develop/ こちらのページのノートパソコンに表示されているのは、Kinectセンサーから取得した画像情報・骨格情報・深度情報をそれぞれ表示しているアプリケーションのようです。
        2012-06-08 13:29
    • 素人でも開発できますか? リーダー 2012-06-04 15:32 Visual Studio は触ったことありません。
      C# は書いたことがありません。
      HTML の記述も既存のソースをいじる程度しかできません。
      HTML を抜けば、プログラミングそのものに関わったことがありません。
      そこまでのずぶの素人でも開発できますでしょうか?
      2件のコメント
      • リーダー ご返信ありがとうございます。
        やはり何かしらの言語でプログラミングの経験があることが前提のようですね。
        現時点では開発はとても無理だということがわかりました。
        連載3回を見て、できそうだなと思ったら改めて検討したいと思います。
        ありがとうございました。
        2012-06-07 12:45
      • kinection.jp管理人 本来はJava、Ruby、C言語などの何かのプログラミング言語の経験があることを想定しています。ただ、これから学習するのでも(厳しいとは思いますが)可能かもしれません。
        連載の第3回で実際の開発に入りますので、それを見ていただいて、できそうか判断していただくのもよいかと思います。
        2012-06-05 14:52
  • やってみよう!Kinectアプリ開発 - 第8回 初期化・終了処理 2012-07-20 18:01 kinection.jp管理人 前回までの基本編では、Kinect™ for Windows® SDKの各機能を紹介してきました。今回からは応用編として、それらの機能を使った、より実用的なアプリケーションの開発で必要な要素を説明していきます。 今回は、実際のアプリケーションを開発するうえで必要となる、初期化・終了処理などのトピックを紹介します。 続きを見る
    2件の質問スレッド
    • ElevationAngleについて mkama 2012-08-29 07:47 >なおSDKのドキュメントによると「Kinectセンサーのモーターは継続した操作を想定していないので、モーターの操作をできるだけ少なくすること」と注意書きがありますので注意しましょう。(目安としては、「1秒間に操作は1回まで」、また「15回操作した後は最低20秒間をあけること」とあります)

      知らなかったので、目一杯モーターを動かしていました。(~_~;)

      モータ保護用の判定ルーチンを作ってみました。
      一つ質問ですが、20秒間隔が空けば、15回の回数制限は解除して良いのですか?

      // モータ保護用の判定ルーチン
      private const int MaxElevation = 15;
      private DateTime dtNextElevation = DateTime.Now;
      private int intCountElevation = MaxElevation;

      private bool CheckElevation()
      {
        if (intCountElevation-- <= 0)
        {
          intCountElevation = MaxElevation;
          dtNextElevation = DateTime.Now.AddSeconds(20);
          return false;
        }
        else
        {
          TimeSpan ts = DateTime.Now - dtNextElevation;
          if (ts.TotalSeconds >= 1)
          {
            if (ts.TotalSeconds >= 20)
              intCountElevation = MaxElevation;

            dtNextElevation = DateTime.Now;
            return true;
          }
          else
            return false;
        }
      }
      1件のコメント
      • kinection.jp管理人 すみません、我々もSDKのドキュメントに書いてあること以上には情報を持っていません。
        ただ、ドキュメントを読む限りでは、20秒間隔が空けば、15回の回数制限は解除して良いと思われます。
        2012-08-29 16:02
    • ヘルプについて kazgb 2012-08-16 22:56
      さぁがんばろう!
      と思って始めたらいきなり挫折しそうになりました><。

      ヘルプ・・・普通に表示された方いらっしゃるでしょうか?
      もしかしたら自分だけかもしれませんが、表示されずに悩んでしまいました。

      一応解決しましたが、同じ人が”もし”いたら役立つかもしれないのでカキカキ。

      色々見比べてみたところ、
      自分の環境には
      「Microsoft ヘルプ ビューアー 1.1」がインストールされていないようでした。
      いや・・・もしかしたら別の理由があったかもしれませんが、
      上記を解消するためにサービスパック1を適用しました。

      http://www.microsoft.com/ja-jp/download/details.aspx?id=23691

      こんなのあったんですね。。。皆さん適応されているのでしょうか?
      (もしかしたら自分が見落としているだけかもしれませんが・・・)
      1件のコメント
      • kinection.jp管理人 ご指摘ありがとうございます。連載第2回では「Service Pack などの更新プログラムを適用しておきましょう」とさらっと書いただけでした。追記しておきます。 2012-08-29 15:53
  • 1~3回分のレビューをアップしました。 2012-06-23 09:26 mkama エラー処理と終了処理、チルト(エレベータ)制御を追加しました。 続きを見る
  • 店舗来店の顧客データ収集&認識 2012-06-11 19:10 mkama 店舗の入り口にkinectを設置して、kinectに搭載しているセンサを総動員して、来店した顧客のデータを収集し、認識させ顧客データベースに登録する。POSデータと連携させれば、次回、店舗の入り口を通 続きを見る
    2件のコメント
    • 山田マン それすごく興味があります。
      データを売り歩きたいです!
      2012-06-15 17:12
    • 某支配人 折角のマイクなので、入店時に「●●さんお願い」などと音声入力が有ったら、ダイレクトに担当さんの端末に連絡が届くのはどうでしょう。 2012-06-13 01:32
  • インストールするソフト、用意しました。 2012-06-13 21:49 mkama 明日、Samsung SSD830 128GBが届いたら、Windows 7 Ultimate 64bitのインストールからはじめます。 今回、用意したものマイクロソフト)・ja_windows_7 続きを見る
  • 3Dメガネ仮想試着 2012-06-11 18:56 mkama メガネの仮想試着のkinect版 続きを見る

アーカイブ

ジグソープレミアムレビュー

  • やってみようKinect(キネクト)アプリ開発 - ラボクルー集まれ!