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

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

RealSense TOP の深度・カラー画像取得機能を示すサムネイル

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

概要 📖 – 深度と色映像を取り込む

RealSense TOPは、Intel RealSense センサーから深度・カラー・赤外線・点群を画像として取り込む TOPです。Model パラメータでカメラ機種を切り替え、Image パラメータで取得モードを選択することで、用途に応じた画像 (カラー映像・深度マップ・赤外線・3D 点群) を 1 つの TOP から取り出せます。

主な用途 🎯

  • Intel RealSense センサーから深度マップ (Depth) を画像として取り込み、距離情報を後段処理に流用
  • RealSense のカラー映像を取り込み、合成・トラッキングの参照映像として利用
  • 赤外線 (Infrared) 画像を取得し、暗所トラッキング・マーカーレス検出に活用
  • 点群 (Point Cloud) の 32-bit float テクスチャを取得し、3D 空間データを GPU 上で処理
  • 深度とカラーを画素単位で位置合わせ (Depth Aligned to Color 等) して、距離付きカラー映像を生成

データフロー 🔄

入力: Intel RealSense センサー (USB 接続)

Model でカメラ機種を選択

Image で取得モード (Color / Depth / Infrared / Point Cloud 等) を選択

解像度・最大深度・ミラー等の整形

出力: TOP テクスチャ (モードに応じたチャンネル数・ビット深度)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Setup Page 📋

Active .active

RealSense からの映像取り込みオン/オフ:

  • Active: Active (有効) を 1 にすると、TOP がカメラからの映像ストリームのキャプチャを開始します。オフにすると取り込みを停止し、GPU / USB 帯域を節約できます

Model .model 📷

使用する RealSense デバイスの機種

項目 内部名 説明
F200 .f200 F200 (初期世代の近距離用カメラ)
R200 .r200 R200 (初期世代の長距離用カメラ)
ZR300 .zr300 ZR300 (開発者向けカメラ)
SR300 .sr300 SR300 (近距離用カメラ)
SR305 .sr305 SR305 (近距離用カメラ)
D415 .d415 D415 (ステレオ深度カメラ、狭視野)
D435 .d435 D435 (ステレオ深度カメラ、広視野)
D435i .d435i D435i (IMU 内蔵のステレオ深度カメラ)
D455 .d435i D455 (長距離向けステレオ深度カメラ)
T265 .t265 T265 (トラッキングカメラ)
L515 .l515 L515 (LiDAR 方式の深度カメラ)

Sensor .sensor 🎚️

複数台接続時に使うデバイスの選択:

  • Sensor: Sensor (センサー選択) — RealSense を複数台接続している場合に、どのデバイスを使うかを指定します

Image .image 🖼️

RealSense から取得する画像モードの選択

項目 内部名 説明
Color .color カラーセンサーの映像を取得します
Depth .depth 各ピクセルの計算済み深度値を取得します。値は 0 から Max Depth (メートル指定) の範囲に再マッピングされ、ピクセル値 0 はカメラから 0m、値 1 は Max Depth 以上を意味します
Raw Depth .rawdepth SDK から得られる生の深度値を取得します。値は 0 から Max Depth (メートル指定) の範囲に再マッピングされます
Depth Aligned to Color .depthalignedtocolor カラー画像の UV に合わせて調整した深度画像を出力します (RealSense Cross Platform API でのみ利用可)
Color Aligned to Depth .coloralignedtodepth 深度画像の UV に合わせて調整したカラー画像を出力します (RealSense Cross Platform API でのみ利用可)
Infrared .infrared 赤外線センサーの生の映像を取得します
Point Cloud .pointcloud RealSense カメラのスキャナが生成した 3D 空間の点群 (X, Y, Z 座標) を取得します
Point Cloud Color UVs .pointcloudcoloruv 各点の色をカラー画像ストリームから取得するために使う UV 値を出力します
Visualized Depth .visualizeddepth RGBA 画像として SDK が出力する深度の可視化です。深度の見える化には有用ですが、ピクセル値が SDK によって動的に再レンジされるため、実際の距離の判定には使えません (RealSense SDK for Windows でのみ利用可)
Depth To Color UV Map .depthtocoloruv 深度画像をカラー画像に合わせて再マッピングするための UV 値を持つ RG 32-bit float テクスチャです。Remap TOP でこれと深度画像を使うと、カラー画像と位置合わせした出力が得られます (RealSense SDK for Windows でのみ利用可)
Color To Depth UV Map .colortodepthuv カラー画像を深度画像に合わせて再マッピングするための UV 値を持つ RG 32-bit float テクスチャです。Remap TOP でこれとカラー画像を使うと、深度画像と位置合わせした出力が得られます (RealSense SDK for Windows でのみ利用可)
Segmented Color (with Alpha) .segmentedcolor カメラ前の検出された人物のマスク付きカラー画像を出力します (RealSense SDK for Windows でのみ利用可)
Fisheye .fisheye 魚眼レンズの映像を取得します (RealSense SDK for Windows でのみ利用可)

Color Camera Resolution .colorres 📐

カラー映像のキャプチャ解像度:

  • Color Camera Resolution: Color Camera Resolution (カラー解像度) — 映像の解像度を選択します。現状はカラー画像でのみ有効です

Max Depth .maxdepth 📏

深度値 1 に割り当てる最大距離 (メートル):

  • Max Depth: Max Depth (最大深度) — ピクセル値 1 に対応する深度をメートルで指定します。これより遠いピクセルは、固定小数点テクスチャ出力では 1 にクランプされ、浮動小数点出力では 1 を超えます

Mirror Image .mirrorimage 🔄

画像を左右 (水平) に反転:

  • Mirror Image: Mirror Image (ミラー反転) — 画像を水平方向に反転します。鏡像表示インスタレーションで「自分が画面の同じ側に映る」体験を作るのに便利です

Use Default Tradeoff .defaulttradeoff ⚖️

デバイス既定の動き/距離トレードオフを使用:

  • Use Default Tradeoff: Use Default Tradeoff (既定トレードオフを使用) — デバイスが指定する既定の動き/距離トレードオフ (Motion Range Tradeoff) を使用します

Motion Range Tradeoff .tradeoff 🎯

動きと距離のトレードオフ値:

  • Motion Range Tradeoff: Motion Range Tradeoff (動き/距離トレードオフ) — 動きと距離のトレードオフを指定します。値は 0 (短い露光・短距離・動きに強い) から 100 (長い露光・長距離) までです

Options CHOP .optionschop 🎛️

CHOP のチャンネルでカメラ詳細オプションを設定:

  • Options CHOP: Options CHOP (オプション CHOP) — ここで指定した CHOP のチャンネルにより、RealSense カメラがサポートする全オプションを設定できます。チャンネル名は C の列挙名から RS2_OPTION_ 接頭辞を除き、すべて小文字にした名前にします。例えば RS2_OPTION_ENABLE_AUTO_EXPOSUREenable_auto_exposure という名前のチャンネルで設定します

Skeleton Tracking .skeltracking 🦴

Cubemos によるスケルトン追跡:

  • Skeleton Tracking: Skeleton Tracking (スケルトン追跡) — 有効にすると Cubemos Skeleton Tracking API でスケルトン追跡を行います。結果は RealSense CHOP から取得できます。利用には Cubemos のライセンスが必要です (試用版あり)

Use Default Paths .usedefaultpaths 📂

ライセンス/モデルファイルを既定の場所から検索:

  • Use Default Paths: Use Default Paths (既定パスを使用) — 有効にすると、ライセンスとモデルファイルを既定の場所 (LOCALAPPDATA) から検索します。これらのファイルを配置するには Cubemos SDK のインストールが必要です。特定のライセンスディレクトリやモデルファイルを使いたい場合はこれをオフにします

License Directory .licensedir 🔑

スケルトン追跡用ライセンスの保存場所:

  • License Directory: License Directory (ライセンスディレクトリ) — ライセンスファイル (activation_key.json と cubemos_license.json) があるディレクトリを指定します

Skeleton Tracking Model File .modelfile 🧩

スケルトン追跡用のモデルファイル:

  • Skeleton Tracking Model File: Skeleton Tracking Model File (モデルファイル) — スケルトン追跡用のモデルファイル (.cubemos) を指定します

Common Page 🔧

項目 内部名 説明

実践アイデア 💡

Example 1: 深度マスクで人物切り抜き合成 🎭

RealSense TOP (Depth) → Threshold TOP → Composite TOP (背景映像と Over 合成)

RealSense TOP を Depth モードで動かし、近距離の人物だけが残るように Threshold TOP で 2 値マスクを作成、別の背景映像と Composite TOP の Over 合成で重ねると、グリーンバック無しのリアルタイム人物切り抜き合成が実現できます。

  1. RealSense TOP を配置し、Model を接続しているカメラ機種に、ImageDepth に設定
  2. Max Depth を被写体が立つ距離に合わせて設定し、Mirror Image をオンにして鏡像表示にする
  3. Threshold TOP を接続し、人物が立つ距離でしきい値を切ってマスクを作成
  4. 背景映像 (Movie File In TOP 等) と Composite TOP の Over モードでマスクを使って合成

Example 2: 3D点群をリアルタイム可視化 🌌

RealSense TOP (Point Cloud) → TOP to CHOP (XYZ 取り出し) → Geometry COMP (Instancing で点描画)

RealSense の Point Cloud モードを使うと、各ピクセルが XYZ 座標を持つ 32-bit float テクスチャが得られます。これを TOP to CHOP で取り出して Geometry COMP の Instance Translate に渡せば、RealSense が見ている空間を 3D 点群としてリアルタイム可視化できます。

  1. RealSense TOP を配置し、ImagePoint Cloud に設定
  2. Max Depth を可視化したい奥行きに合わせて調整する
  3. TOP to CHOP で点群テクスチャを XYZ チャンネルとして取り出す
  4. Geometry COMP の Instancing で取り出した XYZ を Instance Translate に接続して点描画する

Example 3: 距離付きカラー映像を作る 🎨

RealSense TOP (Depth Aligned to Color) + RealSense TOP (Color) → Math TOP (深度の正規化)

RealSense TOP の Depth Aligned to Color モードは、深度画像をカラー画像の UV に合わせて出力します。同じカメラの Color 出力と画素単位で重ねれば、各ピクセルに距離情報を持つカラー映像が作れ、後段の Math TOP で深度レンジを整えれば距離に応じたエフェクトに使えます。

  • RealSense TOP を 2 つ配置し、片方の ImageColor、もう片方を Depth Aligned to Color に設定
  • Math TOP で深度画像のレンジを用途に合わせて正規化する
  • カラー画像と位置合わせ済み深度を画素単位で組み合わせ、距離に応じたエフェクトをかける

関連オペレータ 🔗

類似機能OP 🔍

  • Kinect TOP — Microsoft Kinect 用の深度・カラー取得 TOP。類似の深度センサー用途
  • Kinect Azure TOP — Azure Kinect 用の深度・カラー取得 TOP。類似の深度センサー用途
  • Video Device In TOP — 一般 USB カメラ・キャプチャデバイスからの映像取得用。RealSense の RGB だけが欲しい時の代替
  • RealSense CHOP — RealSense TOP は画像取得、RealSense CHOP は同センサーのスケルトン関節座標取得を担当

組み合わせ推奨OP 🔄

  • Threshold TOP — 深度画像をしきい値でマスク化、距離フィルタとして利用
  • Composite TOP — RealSense 映像と背景映像のレイヤ合成
  • Math TOP — 深度値のレンジ変換・正規化、赤外線画像の露出調整
  • Remap TOP — Depth To Color UV Map 等の UV テクスチャを使って深度とカラーを位置合わせ
  • Crop TOP — RealSense 視野の特定領域だけを切り出して後段処理コストを下げる
  • Cache TOP — RealSense 入力を一定フレーム蓄積してフレーム間差分・残像演出

前処理・後処理TOP 🎯


Info CHOP情報 📊

RealSense TOPは Info CHOP による詳細情報取得に対応しています。

TOP固有情報 🖼️

  • resx: TOP の出力解像度 X (ピクセル単位)
  • resy: TOP の出力解像度 Y (ピクセル単位)
  • aspectx: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)
  • gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

代表的な取得チャンネル 📡

  • resolution_x / resolution_y: 出力テクスチャの幅・高さ (ピクセル)
  • aspectx / aspecty: 出力テクスチャのアスペクト比 (横 / 縦)
  • depth: ピクセルフォーマットのビット深度 (8 / 16 / 32)
  • num_components: 出力チャンネル数 (Color=4 / Depth=1 等、Image モードに依存)
  • gpu_mem_used: GPU メモリ使用量 (バイト)、Point Cloud 等の重いモードでの負荷確認に有用

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

よくある問題と解決策 🔧

❌ Problem: RealSense から何も取り込めない / テクスチャが真っ黒
✅ Solution:

  • Active が 1 (オン) になっているか確認
  • Model が接続しているカメラ機種と一致しているか確認
  • RealSense SDK と該当ドライバが OS にインストール済みか、USB 3.0 必須のセンサーが USB 2.0 ポートに挿さっていないか確認

❌ Problem: 深度画像とカラー画像が画素ずれする
✅ Solution:

  • ImageDepth Aligned to Color または Color Aligned to Depth に切り替えて位置合わせ済みの画像を取得
  • Depth To Color UV Map / Color To Depth UV Map を取得し、後段の Remap TOP で位置合わせ (RealSense SDK for Windows 利用時)
  • 位置合わせ後は視野外の領域が黒で埋まるため、後段のマスク処理でその領域を無視する

❌ Problem: 一部の Image モードが機能しない
✅ Solution:

  • Visualized Depth / Depth To Color UV Map / Segmented Color / Fisheye は RealSense SDK for Windows 専用のため、利用中の SDK 種別を確認
  • Depth Aligned to Color / Color Aligned to Depth は RealSense Cross Platform API 専用のため、SDK 種別を確認
  • 深度値を距離として使う場合は Visualized Depth ではなく Depth / Raw Depth を使う (Visualized Depth は SDK が動的に再レンジするため距離判定に使えない)

❌ Problem: 深度が遠くまで取れない / クランプされる
✅ Solution:

  • Max Depth をより大きい値 (メートル) に設定して取得レンジを広げる
  • 固定小数点フォーマットでは Max Depth を超える深度は 1 にクランプされるため、レンジを超える距離を扱うときは浮動小数点フォーマットを使う
  • Use Default Tradeoff をオフにして Motion Range Tradeoff を長距離寄り (値を大きく) に調整

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました