ビデオとバーチャル背景

ビデオ通話のためのリアルタイム3D仮想背景

Voxalの3D仮想背景は、端末上でリアルタイムに描画され、あなたに合わせてライティングされるライブシーンです。ダイレクト通話では相手側で再描画します。仕組みと制約を解説します。

  • 著者:Voxal
  • 更新日
  • 読了目安 10 分
デスクでVoxalを使っている人と、南国の島の仮想背景の前に映るビデオ参加者。

Voxalの3D仮想背景は、あなたの後ろの部屋を、静止画ではなく端末がリアルタイムに描画するシーンに置き換えます。光と影もあなたに合わせて調整されます。 対応しているダイレクトのビデオ接続では、相手の端末が同じシーンを自分で描画できるため、完成した背景を映像として送る必要がありません。

この記事では、機能の概要、仕組み、これまでに測定した内容と未測定の内容、そして利用前に知っておきたい制約を紹介します。

Voxalとは:余計な手間のないプッシュ・トゥ・トーク

Voxalは、会話をすぐに始められること、プラットフォームを問わず使えること、不要なインフラを避けることを原則に作られたプッシュ・トゥ・トーク(押して話す方式)のアプリです。アカウントなしでボイスルームを作成・参加でき、Webアプリはインストール不要です。デスクトップ版とモバイル版もあり、ノイズ抑制、マイク操作、ハンズフリーモード、ビデオ、画面共有に対応しています。

ルームを開き、友人やチームメンバーと合流して、話したいときに押している間だけ話します。ハンズフリーを使いたい場合も大丈夫です。

音声は常にピア・ツー・ピアです。Voxalが音声をメディアサーバー経由で送ることはありません。

ビデオと画面共有は別扱いです。ダイレクト接続を使うこともあれば、設定によっては大人数のルームでオプションのビデオリレーを使うこともあります。どちらの場合でも、音声はピア・ツー・ピアのままです。

この軽量さこそがVoxalの面白いところです。あらゆる会話を重い会議に変えようとはしていません。そしてカメラをオンにするなら、背景も後回しにする必要はありません。

画像だけではない背景

多くの仮想背景は同じ方法で作られています。ソフトウェアがカメラの前の人物を見つけ、部屋から切り離し、静止画や動画と合成します。

Voxalにもおなじみの選択肢があります。カメラ映像をそのまま使う、背景をぼかす、自分の画像を選ぶ、のいずれかです。

アニメーション背景は仕組みが違います。事前にレンダリングされた動画を再生するのではなく、Voxalは3次元のシーンを組み立て、端末上でリアルタイムに描画します。シーンはジオメトリ、マテリアル、光、アニメーションで構成されており、あなたの後ろで動画が流れているわけではありません。

Voxalには6つの組み込みシーンがあります。

  • Office: 10月の朝、背の高い窓から低い日差しが差し込むコペンハーゲンの建築家のスタジオ。
  • Island: ラグーンに浮かぶ水上バンガローの日陰のデッキ。ターコイズブルーの浅瀬と傾いたヤシの木があります。
  • Cyber café: リスボンにある、90年代のインターネットカフェを改装したエスプレッソバー。アズレージョと古い端末が並びます。
  • Mountain: 石灰岩の尖峰の下に広がる鏡のような湖。黄金色のカラマツと、対岸の水面に漂う霧。
  • Countryside: 6月の夕方、トスカーナの丘陵に広がる黄金色の麦畑。
  • Neon rain: 港町の夜景を見下ろす高層ペントハウス。ガラスには雨が伝い、床は鏡のように磨かれています。
6つのイラスト環境:建築家のオフィス、南国の島のデッキ、リスボンのサイバーカフェ、アルプスの湖、トスカーナの田園、雨の街のペントハウス。
6つのシーンテーマのイメージイラストです。実際にレンダリングされた背景のスクリーンショットではありません。左から順に、Office、Island、Cyber café、Mountain、Countryside、Neon rain。

各シーンは、お使いの端末のグラフィックスハードウェアで描画されます。アプリに背景用の画像や動画を同梱する必要はありません。

これは見た目以上の違いを生みます。シーンは再生ではなく生成されるため、ライティングを調整でき、あなたの影を落とせ、動きにも反応できます。スマートフォンでは、端末を傾けるとシーンがわずかに回転します。

背景があなたに反応する

説得力のある仮想空間には、見栄えの良さだけでは足りません。自分がそこにいるように感じられることが大切です。

Voxalのパイプラインは、ローカルでの人物セグメンテーションを使って、カメラ映像からあなたを切り出します。そして、そのシルエットを3Dシーンと合成します。

さらに、あなたに当たっている光を推定し、シーンの露出、色味、光の方向を設定します。目標は、ひとつにまとまった映像です。あなたと環境が似たライティングの雰囲気を共有し、無関係な2枚のレイヤーに見えないようにします。

あなたのシルエットはシーンに柔らかい影も落とし、その空間にいる感覚を高めます。

お好みで、ライティングを自分で選ぶこともできます。時間帯を固定する(朝、昼、午後、夕方、夜)、端末のローカル時計に合わせる、画面のテーマに合わせる、といった選択肢があります。

自分だけの世界を持ち込む

組み込みシーンは出発点にすぎません。設定 → ビデオ → 背景では、次のものを追加できます。

  • 360°パノラマ。 正距円筒図法の写真であれば何でも使えます。スマートフォンのパノラマモードや360°カメラで撮影したものなどです。あなたはその中に立つ形になり、プレビューをドラッグするかスマートフォンを回すと、景色も回ります。
  • 3Dモデル(.glbファイル、glTFのバイナリ形式)。たとえばBlenderから書き出したものです。Voxalは、モデル自身のカメラ、ライト、アニメーションを使います。

カスタムシーンはサーバーにアップロードされず、端末内にローカル保存されます。最大12個まで保存できます。

工夫のポイント:友人があなたの背景を描画する

従来のビデオ通話では、送信側が完成した映像を送ります。あなた、背景、その他すべてがひとつのフレームに合成されています。

Voxalの組み込みシーンには、別の方法があります。Let others draw my sceneをオンにしていて、対応する参加者があなたと直接つながっている場合、その相手には完成した映像ではなく、単色のグリーンの背景に映ったあなたが届きます。相手の端末はフレーム内の小さな角のマーカーを見つけ、あなたを切り出し、対応するシーンをあなたの後ろに描画します。

つまり、2台の端末がそれぞれ独立して同じ世界を描画しているのです。

送信側が単色のグリーンの背景に映った人物とシーン設定をダイレクト接続で送り、受信側がIslandの背景をローカルで描画する様子を示した図。
ダイレクトのビデオ接続と組み込みシーンを使う対応端末で、ピア描画がどのように動作するかを示しています。

この設定はデフォルトでオンで、設定 → ビデオからオフにできます。アニメーションシーンを選んでいて、対応するピアが接続されている場合にのみ動作します。

なぜ重要なのでしょうか。単色の背景は、細部まで描き込まれたアニメーションシーンよりも、ビデオエンコーダーにとってずっと軽い処理で済みます。しかもシーン自体はネットワークを流れる必要がありません。どのシーンか、どれくらいの明るさか、光がどこから来るか、というわずかな数値から組み立てられるからです。

測定したこと、していないこと

制御されたオフラインテスト(品質固定のVP9、1280 × 720、30フレーム/秒、動く代役の被写体)では、組み込みシーンと合成した映像は約130〜287 kb/s、単色グリーンの上の人物は約96 kb/sでした。同じ品質で、ビット数が26〜67%少なくなる計算です。

これらの数値は、制約を踏まえて読んでください。

  • これらは、実際の通話ではなく、代役の被写体を使ったオフラインテストによるものです。
  • 実際の通話は品質固定では動作しません。エンコーダーは、与えられたビットレート上限をそのまま使い切ります。実際の通話での利点は、送信側のビットレート上限を下げられることですが、それは実際の通話ではまだ測定していません。
  • 削減効果は、シーン、エンコーダー、接続、関係する端末によって変わります。

この仕組みが使える条件にも制約があります。

  • ダイレクト(ピア・ツー・ピア)のビデオ接続が必要です(ピア・ツー・ピアとはを参照)。デフォルトのルーティングでは、2人のルームが対象になります。ビデオがリレー(SFU)を経由する場合、リレーには常に完成した映像が届きます。
  • 受信側の端末がシーンを描画できる必要があります。WebGL2、Chromiumベースのエンジン、ハードウェアGPUが必要です。条件を満たさない場合、送信側は通常の完成した映像を送り続けます。
  • 頭がマーカーを隠すなど、問題が起きた場合も、Voxalは通常のビデオに切り替えます。
  • 自作のカスタムシーンには適用されません。あなたのファイルを他の誰も持っていないためです。

他社製品との帯域幅の比較については、何も測定していないため、主張しません。

ローカルで完結する設計

背景のための画像処理は、あなたの端末上で行われます。小さな機械学習モデルがWebAssemblyを通じてローカルで動作し、カメラ映像からあなたを見つけます。背景は描画され、ビデオが送信される前にあなたと合成されます。背景の計算のためにカメラのフレームがサーバーへ送られることはありません。

カスタムパノラマや.glbファイルは、端末のローカルストレージに保存されます。アップロードされることも、他の端末と共有されることもありません。

これらを使う必要は一切ありません。背景をNoneに設定すると、Voxalはカメラの生のストリームを送信し、背景処理のパイプラインはまったく動作しません。

ひとつ、はっきりさせておきたい点があります。音声は常にピア・ツー・ピアのままです。カメラ映像には独自のルーティングオプションがあり、大人数のルームではオプションのリレーを経由することがあります。リレーは、転送する映像を技術的には見ることができます。この記事は、機能の作りを説明するものであり、完全なプライバシーを約束するものではありません。通話の相手には、あなたの映像が見えています。

開発者向け:シーンは小さなプログラム

組み込みシーンは、Voxalリポジトリ内の小さな1つのモジュールです。シーンは決定論的でなければなりません(時間とシード付き乱数関数で動きます)。そうすることで、別の端末が、名前といくつかの数値だけから、まったく同じ世界を再構築できます。シーンエンジンのドキュメントではモジュールの形式を説明しており、カスタムシーンでは自分で用意できるファイルを扱っています。

ユーザーにとっては、通話をパーソナライズする方法が増えることを意味します。開発者にとっては、背景が大きなメディアファイルではなく、小さく再現可能なプログラムになりうることを意味します。

Voxalを試す

シンプルなぼかしを使うことも、アニメーションの3Dシーンを選ぶことも、画像をアップロードすることも、360°パノラマを探索することも、自分の3Dモデルを試すこともできます。

仮想背景は、あなたの後ろにある静止画である必要はありません。端末がリアルタイムに作り、照らし、動かす世界にできます。条件が整えば、通話の相手の端末も一緒に作る世界になります。

VoxalはMITライセンスのオープンソースです。機能やプラットフォームのサポートは、端末や接続によって異なる場合があります。

ブログに戻る