OAK Select POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

OAK Select POP の点群ストリーム取得を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 深度ストリームを点群化

OAK Select POPは、OAK Device CHOP の depthai パイプラインから特定ストリームを取出し、点群・ジオメトリ形式の POP データとして出力する POPです。Active で取得の有効化、OAK Device CHOP で上流の参照、Stream でパイプラインが公開するストリーム名、Cache Size で非同期書込みバッファのサイズを制御します。

主な用途 🎯

  • OAK 深度カメラからの点群 (point cloud) データの受信と TouchDesigner 取込み
  • depthai パイプラインで生成したジオメトリストリームの POP データへの変換
  • 物体検出のバウンディングボックスやランドマークをポイント群として取得
  • リアルタイム 3D 点群ビジュアライゼーションのソース供給
  • Cache Size による非同期書込みバッファ制御で安定したフレーム取得

データフロー 🔄

入力: OAK Device CHOP の depthai パイプライン

Stream 名で対象ストリームを選択

Cache Size の内部バッファに非同期書込み

出力: POP データ (点群・ジオメトリ)

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

OAK Page 📋

Active .active

Active .active 🔘
Active (有効化) — オンの間だけ指定 OAK Device CHOP からのデータを受信する
– オフにするとストリーム取込みが停止し CPU/GPU 負荷を抑制可能

OAK Device CHOP .chop 🎥

OAK Device CHOP .chop 🔗
OAK Device CHOP (上流参照) — depthai パイプラインを実行している OAK Device CHOP のパスを指定
– OAK カメラと接続する側の CHOP を参照する形でストリームを取得する

Stream .stream 📡

Stream .stream 🏷️
Stream (ストリーム名) — OAK Device CHOP 側の depthai パイプラインが公開しているストリーム名を文字列で指定
– 深度マップ・点群・物体検出結果など、パイプラインで定義したストリーム識別子と完全一致させる必要がある

Cache Size .cachesize 📦

Cache Size .cachesize 🔢
Cache Size (バッファ長) — OAK Select POP が保持する内部バッファのサイズを整数で指定
OAK Select CHOP の Queue Size パラメータと同じ役割を持つ
– デフォルト 2 が推奨値。TouchDesigner が画像を表示している裏で、残りのバッファに新しいデータを非同期で書込めるため


Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
  • 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用

Free Extra GPU Memory .freeextragpumem 🧠

蓄積した GPU メモリの解放:

  • Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
  • 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約

Delete Input Attributes .delinputattrs 🗑️

出力属性の絞り込みパターン:

  • Delete Input Attributes パターン: 出力に残したい属性名のパターン (例: P N Cd) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

実践アイデア 💡

Example 1: 深度カメラから点群取得 📡

OAK Device CHOP (depth pipeline) → OAK Select POP (Stream=depth_pointcloud) → Geometry COMP → Render TOP

OAK-D など Luxonis の深度カメラから取得した点群を、TouchDesigner の Geometry COMP 経由でレンダリングに渡す基本パターンです。Cache Size はデフォルト 2 のままで非同期書込みが安定します。

  1. OAK Device CHOP に深度ストリームを公開する depthai パイプラインを設定
  2. OAK Select POP の OAK Device CHOP に対象 OAK Device CHOP のパスを指定
  3. Stream に depthai パイプラインが公開している点群ストリーム名を入力
  4. Active をオンにしてストリーム受信を開始
  5. Geometry COMP に OAK Select POP を割当ててレンダリング

Example 2: 物体検出結果を取込み 🎯

OAK Device CHOP (detection pipeline) → OAK Select POP (Stream=detections) → Transform POP → Geometry COMP

depthai のニューラル推論で得た検出結果 (バウンディングボックス・ランドマーク等) をポイント / ジオメトリ群として受取り、後段の POP チェーンで TouchDesigner シーンに統合します。

  1. OAK Device CHOP に物体検出 NN を組込んだ depthai パイプラインを設定
  2. OAK Select POP の Stream に検出結果ストリーム名 (例: detections) を指定
  3. Cache Size を 2 のまま保持し、検出フレームの取り逃しと遅延のバランスを取る
  4. 後段の Transform POP で検出座標をワールド空間に配置

関連オペレータ 🔗

類似機能OP 🔍

  • OAK Select CHOP — 同じ OAK ストリーム選択を CHOP (チャンネルデータ) として取得する CHOP バリアント
  • OAK Select TOP — 同じ OAK ストリーム選択を TOP (画像データ) として取得する TOP バリアント

組み合わせ推奨OP 🔄

  • OAK Device CHOP — OAK Select POP の上流。depthai パイプラインを実行する側
  • Transform POP — 受信した点群をワールド空間に平行移動・回転・拡縮で配置
  • Convert POP — 点群を別ジオメトリ形式 (メッシュ・パーティクル等) に変換

前処理・後処理POP 🎯


Info POP情報 📊

OAK Select POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数

出力ジオメトリ情報 🧬

  • num_points: 受信した点群 / ジオメトリの出力ポイント数
  • num_point_attribs: 出力 POP の point 属性数 (位置・色・法線等)
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数
  • num_prims: 出力プリミティブ数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: ストリームから点群データが取得できない
✅ Solution:

  • OAK Device CHOP パラメータに正しい OAK Device CHOP のパスを設定しているか確認
  • Stream 名が depthai パイプライン側で公開しているストリーム識別子と完全一致しているか確認
  • Active がオンで、OAK Device CHOP 側もクックされ OAK ハードウェアと接続済みか確認

❌ Problem: 出力ジオメトリの形式が想定と異なる
✅ Solution:

  • depthai パイプライン側のストリーム出力タイプ (深度マップ / 点群 / 検出結果) が POP として解釈可能な形式か確認
  • 後段に Convert POP を挿入し、別ジオメトリ形式へ変換して扱う
  • depthai 公式ドキュメントでストリーム出力のデータ仕様を確認し、適切なバリアント (CHOP / TOP / POP) を選択

❌ Problem: フレームの取り逃しや遅延が発生する
✅ Solution:

  • Cache Size をデフォルト 2 から増やし、非同期書込みのバッファ余裕を確保
  • ただし Cache Size を過大にすると最新フレームまでの遅延が増えるため、用途に応じて調整
  • OAK Device CHOP 側のパイプラインフレームレートと TouchDesigner プロジェクトの fps を整合させる

❌ Problem: VRAM 消費が増え続ける
✅ Solution:

  • Common Page の Free Extra GPU Memory パルスを実行して未使用 GPU メモリを解放
  • Common Page の Delete Input Attributes で下流に不要な属性を絞り込み、メモリと帯域を節約
  • Cache Size を必要最小限 (デフォルト 2) に維持してバッファ起因のメモリ占有を抑制

参考資料 📚

その他 🔗

公式リソース 📖

ハードウェア情報 🔧

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました