背景透過等の画像処理の完成版です。メインプレイヤーで再生している動画の(動かない)背景部を透明にします。SDKがハンドトラッキングへ対応したのでパススルー機能と同時に使えるようになりました。コメント欄で公開したクロマキー合成も含まれます。一歩踏み込んだミックスドリアリティ体験が可能となります。手前にVR動画といった構成が可能になっています。背景をVR動画、手前もVR動画も可能です。VR動画の背景を透明にする仕組みです。Mattingを使って背景を緑にした動画を作成し、アマレコVRのクロマキー合成を使っています。Matting程ではありませんが、簡易的に済ます場合はアマレコVRの背景透過処理を使うこともできます。次の記事と合わせて見てください。オンラインヘルプを見てください。・ベータ版、アルファ1、アルファ2、アルファ3とは異なるアプリとしてインストールされます。・アマレコVRサーバーはアルファ3と同じです。ベータ版2.1.画像処理メイン画面設定の画像処理メニューから設定します。アマレコVR設定のボタン機能で[メイン画面設定を表示]を割り当てることをお勧めします。より映像内の(動かない)背景部を透明にします。画像処理により指定した背景色を透明にします。・背景バッファクリア現在の画像処理の解析結果を破棄し、ゼロから構築しなおします。クロマキー合成の背景色をクリアします。・シルエットモードメイン画面の映像を単色で塗りつぶします。メイン画面設定の透明度が反映されます。何が表示されているかわからないので、クロマキー合成か背景透過の輪郭解像度を1024にして使って下さい。色はサーバー側の設定ファイルで変更できます(後述)。Playerを選択してください。動きの少ない部分(前のフレームからの変化が少ない領域)を検出し背景画像を作成します。一度のサンプリングでは背景画像の信頼性が低いので数秒間解析を続けて信頼性の高まった背景画像と現在のフレームを比較して透明にします。家具の位置が変わったり、シーンチェンジすると背景画像もアップデートされます。基本的に被写体が映った映像から背景画像を作成しますので被写体と被写体の周辺領域については背景画像の信頼性が高まるまで時間がかかります。そのため、被写体周辺の背景が表示されてしまったり、被写体が退いた後もしばらく背景が表示されることがあります。固定カメラで撮影されたVR映像であることが前提となります。・ぼかし(時間)過去のフレームと加算し映像をぼかす度合いを設定します。ノイズや画質、照明の影響を軽減し安定した処理結果が期待できます。数値が小さいと背景画像の作成に時間がかかるため、なかなか背景が透明になりません。数値が大きいほど映像のノイズや不安定な照明、差分フレームとキーフレームの画質差などを軽減し背景の判定がやり易くなります。動きの少ない被写体も背景と誤判定され消え易くなってしまいます。タイムラグが生じます。低いほど被写体に有利な判定になります。代わりに背景の判定が上手くできず透明になりません。被写体が誤判定され消えやすくなります。3秒間変化が少ない領域を背景として拾います。素早く背景画像を構築できますが、動きの少ない被写体も背景として拾ってしまいます。(透明、不透明のマスクパターン)の解像度を選択します。輪郭を強くぼかして使います。1024は解像度が高く輪郭をくっきり表示したい場合に使います。他の機能と併用すると60fpsを下回ります。fpsの低下が目立つ場合は256を使って下さい。解像度256のみでも約48fpsとなります。輪郭サイズ処理結果(マスクパターン)の輪郭を調整します。お好みで調整してください。する背景色を指定します。画像処理により指定した色に属する画面内で多く使われている色を検出し、透明にします。自動は色を指定せず画面内で最も多く使われている色を背景色とします。そのため、赤い服を着た人がカメラへ近づいて画面全体が赤くなると背景色が赤と判断されてしまう場合があります。Ver2.1.6の青緑は廃止しました。近い色を透明にする際の閾値です。影が見えてしまいます。高いと被写体の一部が透明になってしまいます。・輪郭サイズ輪郭処理を行う大きさを指定します。輪郭部は背景色の成分を除いて半透明にします。Questのハンドトラッキングが「OpenXR」に正式対応したのでパススルー機能とハンドトラッキング機能を同時に利用できるようになりました。アマレコVRのハンドトラキング機能に関する基本的な使い方はオンラインヘルプを参照してください。手のグラフィックを選択できます。手の形で穴を開け後ろのパススルー映像を見えるようにします。スクリーンオブジェクトと干渉します(メイン画面を触れる)。カラーの場合は、手の形でパススルー映像を着色します。半透明:黒、青メインスクリーン等の上に半透明で手を表示します。スクリーンオブジェクトとは干渉しません(常に手前に表示されます)。各色はサーバー側の設定ファイルで変更できます(後述)。【ハンドトラッキングとVR動画の視差】VR(3D映像)の仕組み上、VR動画やハンドトラッキングの手の表示、パススルー映像それぞれに視差があります。アマレコVRではメイン画面設定のステレオ調整で視差の調整が可能です。30cmから50cmほど手を伸ばしたあたりで視差が合いました。メインスクリーンのスケールを50程度(50cm先にスクリーンを配置)にすると、両手を前に伸ばしたあたりでハンドトラッキングの手とメインスクリーンが干渉します。(パススルー映像を使う場合はポジショントラッキングをONにします。何センチ先で合わせるかで変わります。非透過ではスクリーンオブジェクトと干渉しません。■サブカメラ画面へ横型を追加16:9よりさらに横に広い視野の[横型]を追加しました。AmaRecVRServer.iniをメモ帳で編集して変更できます。変更した後はアプリを再起動しなくても、選択項目を変更した際に再度設定値をサーバーから読み込みます。[メインスクリーンを半透明にする]をONにして、透明度を調整することができるようになりました。半透明にすることでVRonVRの奥で再生している動画が見えなくなるのを防ぐことができます。メイン画面の表示範囲を制限することができます。画像処理を改善しレスポンスの向上と背景と判断する部分が増えました。赤い輪郭のマスクパターンを作成したいけど、緑の領域が加わっていたのが改善されます。アルファ3を使っていることが前提です。人はアルファ3の記事も合わせて観てください。今回はアルファ5としてインストールされます。アルファ3、アルファ4とは別アプリとしてインストールされます。2.使い方メイン画面設定の[画像処理]メニューから[自動背景透過]を選択してください。あとはメインプレイヤーで再生されている映像を自動で処理します。Playerを選択してください。Playerなので通常はそのままでOKです)AVProでは利用できません。画像処理の設定が初期値の[処理なし]に戻っています。再度、[自動背景透過]を選択してください。■画像処理メニュー[ぼかし(時間)]過去のフレームと加算し映像をぼかす度合いを設定します。数値が大きいほど映像のノイズや不安定な照明、差分フレームとキーフレームの画質差などを軽減し背景の判定がやりやすくなります。動きの少ない被写体も背景と誤判定され消えやすくなってしまいます。タイムラグが生じます。[背景閾値]低いほど被写体に有利な判定になります。代わりに背景の判定が上手くできず消えにくくなります。被写体が誤判定され消えやすくなります。[輪郭ぼかし]と[輪郭サイズ]判定結果(マスクパターン)の輪郭を調整します。お好みで調整してください。[背景バッファクリア]現在の解析結果を破棄し、ゼロから構築しなおします。設定の変更が反映されない場合にクリアしてください。Ver2.1.7が公開されています。0あまラボへようこそこのブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。