1

私はARToolkitマーカーオブジェクトをタンゴアプリケーションにトラッキングするように統合しようとしています。ARToolkitマーカートラッキングをタンゴに追加

これまでのところ、タンゴアプリケーションがARToolkitネイティブライブラリやARToolkit Unityラッパーにアクセスして使用できるようにビルドを作成しました。 しかし、両方ともデフォルト設定でカメラに排他的にアクセスする必要があります。

どのように両方のライブラリに同じAndroidの動画フィードを供給できますか?

  • フィードを2倍にするダミーカメラデバイスを作成できますか?
  • あなたは通常通りタンゴフィードを取り、その後、特別VideoConf

でARToolkitにそれを再送し、[編集]
ARToolkitが古いカメラ1のAPIを使用して、onPreviewFrame()コールバックを取り、でしたそのbyte []データを実際の作業を行う独自のネイティブライブラリ呼び出しに渡します。

第2の箇条書きの行に沿って、タンゴは、iTangoVideoOverlayのようなものを使用して、各フレーム生のカメラデータのコピーを提供することができます。
(ARToolkits NDK機能はNV21を期待しているようだが、また、other formats受け入れることができます)、データがタンゴから抽出した場合

を、私はARToolkit NDKの機能は、実際にカメラを所有することなく使用することができると信じています。

+0

ITangoVideoOverlayを使用してTangoから画像データを取得し、それをアクティビティまで渡してからARToolkitに送信してから、JNI呼び出しを行います(直接ライブラリ呼び出しはC#から利用できませんでした)。私は、タンゴが提供するフォーマットとARToolkitが受け入れるフォーマットをどのように変更するかを考え出す必要があります。 – Jethro

答えて

0

このblogは、2つを統合した例です。

これはサンプルソースコードにもリンクしていますが、テスト後にはまったく整頓していません。慎重に進んでください。

両方のライブラリ(最初の箇条書きポイント)に同じカメラソースを供給することはできませんが、タンゴ(ITangoVideoOverlay)からのカメラフィードをARToolkit([AcceptVideoImage] [2])(2番目の箇条書きポイント)に転送できます。
これは理想的ではありません。なぜなら、C#からJavaにデータを送信するのはかなり非効率的なためです。 Phab 2 Proは、適切なフレームレートを実現するためにビデオX4をダウンサンプリングする必要があります。
もっと良い答えは、AndroidJavaClassの呼び出しをパイプ/ソケットで置き換えることです。 また、多くの小さな問題があります - それは非常にハックリーな回避策です。

1

あなたが言及した方法のどちらもうまくいかないと私は恐れています。タンゴはカメラへの排他的アクセス権を持っています。私はARToolkitもカメラ2 APIだけでカメラを占有していると信じています。現在のTangoSDKでは、カメラのレンダリングにはARToolkitを使用し、ポーズトラッキングにはTangoを使用します。

しかし、これはTangoとARToolkitのタイムスタンプが異なるタイムスタンプの問題を引き起こす可能性があります。これを解決するには、アプリケーションが開始されたときの最初のタイムスタンプオフセットを取得し、タイムスタンプに基づいてTangoからポーズをクエリするときに、そのオフセットを常に適用します。

+0

ありがとう!私はもっ​​と研究し、ポーズ/トラッキングの分割とレンダリングの提案を見ていきます。 ARToolkitのNDKライブラリに画像データを取得するためのアイデアを更新しました。実現可能かどうか、時間を無駄にしているかどうか教えてください。非常に感謝しています。 – Jethro

関連する問題