Skip to content

Latest commit

 

History

History
626 lines (371 loc) · 35.9 KB

File metadata and controls

626 lines (371 loc) · 35.9 KB

iw3-gui

iw3-guiはあらゆる画像・動画を3D画像・3D動画に変換するソフトウェアです。 VRで本当に見たかった画像・動画をVRデバイスで3Dメディアとして見れるようになります。

インストールについてはnunif windows packageを参照してください。

iw3-gui-ja

このソフトウェアはよい設定値が入力に依存していて調節が難しいソフトウェアです。前半に各項目の説明を記述して、後半に応用的な説明を記述します。

処理の概要は以下です。

  • 入力画像(動画フレーム)から深度(各ピクセルの奥行き)を推定します
  • 入力画像と推定した深度からステレオ画像(左右それぞれの目に映す画像)を生成します

深度推定には以下の事前学習済みモデルが使用できます。

ZeoDepth or Depth-Anything or Depth-Anything-V2 or Depth Pro or Distill Any Depth or Video-Depth-Anything or Depth Anything 3

入力

処理対象のファイルまたはフォルダを選択します。最初のボタンがファイル選択で、次のボタンがフォルダ選択です。ファイルひとつの場合はドラッグアンドドップもできます。

フォルダを選択した場合はフォルダ直下の画像ファイルと動画ファイルが対象になります。

処理を再開にチェックをつけるとすでに出力が存在するファイルをスキップします。

すべてのサブフォルダを処理にチェックをつけると指定フォルダより下の階層にあるすべてのファイルが対象になります。ただし出力フォルダ内は除外されます。 指定したフォルダによっては非常に多くのファイルが対象になるので注意してください。

再生ボタンをクリックすると選択したファイルまたはフォルダが表示されます。

出力

出力フォルダを選択します。

入力がファイルの場合は出力ファイル名を直接入力することもできます。画像の場合は.jpg, .png, webp、動画の場合は.mp4の拡張子を使用してください。 またVRで3Dメディアとして認識させるためにファイル名ルールも必要です。

同じフォルダを設定ボタンでは、入力と同じフォルダの下にiw3フォルダを作ってそこに出力します。

再生ボタンをクリックすると出力結果があればそれを表示します。なければ出力フォルダを表示します。

ステレオ生成

3D化の設定です。

3Dの強さ

奥行きの強さ(深さ)です。

divergence

(--divergenceがこの設定値です)

基本は2.0です。

このパラメータは、スクリーン位置の適切な距離を変えます。

低い値では、スクリーン位置の適切な距離は遠くなります。高い値では、スクリーン位置の適切な距離は近くなります。 近くで見たい場合は高い値が適切ですが、高い値ではゴーストアーティファクトが発生しやすくなります。ゴーストアーティファクトは、深度の差が大きいところに発生するノイズのようなものです。人物と背景の境界が2重に見えて焦点が合わせづらくなります。

スクリーン位置はVR動画プレイヤー上のズームイン/ズームアウトで調節できます。

収束平面

スクリーンに対する3Dの奥行きが出る位置・方向です。

convergence

(--convergenceがこの設定値です)

0では、スクリーン位置から前に向かって表示されます。おそらくもっとも一般的な設定です。ただし、スクリーンの端のほうで左右の目で見える範囲が変わるので焦点が合わせづらくなります。

1では、スクリーン位置から奥に向かって表示されます。おそらくもっとも問題の発生しない設定です。曲面スクリーンにも適しています。ただし、表示位置が遠くみえます。

0.5は、01の中間です。デフォルト値です。

自分の大きさ

スクリーンに対する自分の大きさです。

ipd-offset

(--ipd-offsetがこの設定値です)

人物を等身大で見たい等の理由で細かく調節するモチベーションがある場合に調節してください。

VR Player側で設定できる場合もあります。通常は0を選択してください。

合成ビュー

bothでは両方の目のビューを生成します。leftまたはrightでは片側の目のビューのみを生成します。もう片方の目のビューはオリジナル画像/フレームになります。

bothを指定した場合、左右の目でアーティファクト/歪みを分散します。それによってアーティファクト自体は軽減しますが、両方の目にアーティファクトが発生する可能性があります。

leftまたはrightを指定した場合は、片方の目はオリジナル画像なのでアーティファクト/歪みは発生しませんが、逆側の目に2倍のアーティファクト/歪みが発生します。 leftrightどちらがいいかは利き目によります。

今のところは、bothをオススメします。デフォルトはbothです。

メソッド

深度からステレオ画像(左右の画像)を生成する手法です。

Short Name
row_flow_v3 逆方向ワーピング(grid_sample)のパラメータを機械学習モデルで算出します。0.0 <= divergence <= 5.0の範囲でforward_fillで生成した合成データで学習されています。デフォルトメソッド。
mlbw_l2 2レイヤー逆方向ワーピングのパラメータを機械学習モデルで算出します。0.0 <= divergence <= 10.0の範囲で学習されています。
mlbw_l4 4レイヤー逆方向ワーピングのパラメータを機械学習モデルで算出します。0.0 <= divergence <= 10.0の範囲で学習されています。
mlbw_l2s mlbw_l2の小さいモデルです. 0.0 <= divergence <= 5.0の範囲で学習されています。4.0 < divergenceの場合はmlbw_l2と同じモデルが使われます。
mlbw_l4s mlbw_l4の小さいモデルです. 0.0 <= divergence <= 5.0の範囲で学習されています。4.0 < divergenceの場合はmlbw_l4と同じモデルが使われます。
mlbw_l2_inpaint mlbw_l2を使ったインペイントモデル。
row_flow_v2 以前のデフォルトメソッド。0.0 <= divergence <= 2.5の範囲でstable-diffusion-webui-depthmap-scriptで生成した合成データで学習されています。
forward_fill 深度順の順方向ワーピング(ソース側からのサンプリングは行わず穴は隣接ピクセルで埋める+重なった領域は深度的に前にあるほうで上書き)。非機械学習の率直なメソッド。
forward_inpaint forwardを使ったインペイントモデル。
row_flow_v3_sym row_flow_v3の左右対称制約版。左と右のワープパラメータは完全に左右対称になります。row_flow_v3より2倍速い。実験用。
forward 穴を埋めないforward_fill。実験用。
grid_sample,backward 素朴な逆方向ワーピング。ひどいゴーストアーティファクトが発生します。実験用。

インペイントについては #484 を参照。

ステレオ処理幅

ステレオ生成を実行する深度画像の解像度(画像の横幅)を指定します。

これはExport/Import時に使用する高度な設定です。通常は、Defaultを選択してください。

Defaultが指定されている場合は、何もしません。 Default以外が指定されている場合は、指定サイズに深度画像をリサイズしてから処理します。

Exportした深度画像を別のソフトウェアで処理するときにフレーム画像と画像サイズを合わせることがあり、その場合に深度画像が4Kや8Kになることがあります。iw3のステレオ生成モデルは、深度画像の最大横幅=1920pxで学習されているので、巨大な深度画像をImportすると出力が壊れます。その場合に指定サイズにダウンスケーリングしてから処理するための機能です。 (この制限は深度画像の解像度についてであり、フレーム画像の解像度に制限はありません)

深度推定モデル

深度を推定する学習済みモデルを指定します。

深度推定にはZoeDepthまたはDepth-AnythingDepth-Anything-V2を使用しています。

Short Name
ZoeD_N ZoeDepth model NYUv2(屋内シーンのデータ)
ZoeD_K ZoeDepth model KITTI(屋外シーンのデータ)
ZoeD_NK ZoeDepth model NYUv2 and KITTI
ZoeD_Any_N Depth-Anything metric depth model NYUv2
ZoeD_Any_K Depth-Anything metric depth model KITTI
Any_S Depth-Anything model small. 一番速い
Any_B Depth-Anything model base.
Any_L Depth-Anything model large.
Any_V2_S Depth-Anything-V2 model small. 一番速いV2
Any_V2_B Depth-Anything-V2 model base. (cc-by-nc-4.0)
Any_V2_L Depth-Anything-V2 model large. (cc-by-nc-4.0)
Any_V2_N_S Depth-Anything-V2 Metric Depth model Hypersim small. Tuned for indoor scenes.
Any_V2_N_B Depth-Anything-V2 Metric Depth model Hypersim base. Tuned for indoor scenes
Any_V2_N_L Depth-Anything-V2 Metric Depth model Hypersim large. Tuned for indoor scenes. (cc-by-nc-4.0)
Any_V2_K_S Depth-Anything-V2 Metric Depth model VKITTI small. Tuned for outdoor scenes (dashboard camera view).
Any_V2_K_B Depth-Anything-V2 Metric Depth model VKITTI base. Tuned for outdoor scenes (dashboard camera view).
Any_V2_K_L Depth-Anything-V2 Metric Depth model VKITTI large. Tuned for outdoor scenes (dashboard camera view). (cc-by-nc-4.0)
Any_V3_Mono Depth-Anything-3 Monocular Depth large. VRデバイス用
Any_V3_Mono_01 Depth-Anything-3 Monocular Depth large. 3D TV・アナグリフ用
DepthPro Depth Pro model. 1536x1536 resolution. For image use.
DepthPro_S Depth Pro model. 1024x1024 modified resolution. For image use.
Distill_Any_S Distill Any Depth model small.
Distill_Any_B Distill Any Depth model base.
Distill_Any_L Distill Any Depth model large.
VDA_S Video Depth Anything small.
VDA_B Video Depth Anything base. (cc-by-nc-4.0)
VDA_L Video Depth Anything large. (cc-by-nc-4.0)
VDA_Metric_S Video Depth Anything metric depth small model.
VDA_Metric_B Video Depth Anything metric depth base model. (cc-by-nc-4.0)
VDA_Metric_L Video Depth Anything metric depth large model. (cc-by-nc-4.0)
VDA_Stream_S Video Depth Anything streaming model small.
VDA_Stream_B Video Depth Anything streaming model base. (cc-by-nc-4.0)
VDA_Stream_L Video Depth Anything streaming model large. (cc-by-nc-4.0)

たくさんありますが、個人的には、ZoeD_Any_NVDA_BAny_V3_Monoのどれかをオススメします。

Any_V2_B ,Any_V2_L, Any_V2_N_L, Any_V2_K_L について

これらのモデルはcc-by-nc-4.0(非商用)の下で配布されています。nunifのMITライセンスと衝突するためデフォルトでは利用できません。

使用したい場合は、それらのライセンスに同意して自分でファイルを配置してください。

Short Name ファイル
Any_V2_B iw3/pretrained_models/hub/checkpoints/depth_anything_v2_vitb.pth
Any_V2_L iw3/pretrained_models/hub/checkpoints/depth_anything_v2_vitl.pth
Any_V2_N_L iw3/pretrained_models/hub/checkpoints/depth_anything_v2_metric_hypersim_vitl.pth
Any_V2_K_L iw3/pretrained_models/hub/checkpoints/depth_anything_v2_metric_vkitti_vitl.pth

これらのファイルは https://huggingface.co/depth-anything のModelsセクションからダウンロードできます。開いたページのFiles and versionsタブにあります。 ファイルが存在する場合のみGUI上に表示されます。

Distill_Any_B, Distill_Any_L について

これらのモデルはApache License 2.0とされていますが、cc-by-nc-4.0(非商用)であるDepth-Anythin V2を初期重みとして使用しています。

使用したい場合は、自分でファイルを配置してください。

Short Name ファイル
Distill_Any_B iw3/pretrained_models/hub/checkpoints/distill_any_depth_vitb.safetensors
Distill_Any_L iw3/pretrained_models/hub/checkpoints/distill_any_depth_vitl.safetensors

これらのファイルは https://github.com/Westlake-AGI-Lab/Distill-Any-Depth のPre-trained Modelセクションからダウンロードできます。

これらのファイルは.safetensors形式です。.pthへの変換は必要ありませんが、上記のファイル名にリネームする必要があります。

Video-Depth-Anythingについて

VDA_B, VDA_L, VDA_Metric_B, VDA_Metric_L

これらのモデルはcc-by-nc-4.0(非商用)の下で配布されています。 使用したい場合は、それらのライセンスに同意して自分でファイルを配置してください。

Short Name Path
VDA_L iw3/pretrained_models/hub/checkpoints/video_depth_anything_vitl.pth
VDA_B iw3/pretrained_models/hub/checkpoints/video_depth_anything_vitb.pth
VDA_Metric_B iw3/pretrained_models/hub/checkpoints/metric_video_depth_anything_vitb.pth
VDA_Metric_L iw3/pretrained_models/hub/checkpoints/metric_video_depth_anything_vitl.pth

これらのファイルは https://huggingface.co/depth-anything のモデルセクションからダウンロードできます。

VDA_Stream_*VDA_*と同じチェックポイントファイルを使用します。

VDAの実装ノート

以下のオプションが推奨されます。

  • シーン境界検出 (--scene-detect)
  • ちらつき軽減 (--ema-normalize)

以下のオプションは無視されます。

  • 低VRAM (--low-vram)
  • TTA (--tta)
  • ワーカースレッド (--max-workers)
  • Stream (--cuda-stream)

バッチサイズ(--batch-size)も深度推定時は無視されます (32が使用されます)。しかし全処理やステレオ生成などでは使用されます。

またオリジナル実装ではグローバルのMin-Maxを正規化に使用しますが、iw3のオンライン処理実装ではそれらの移動平均を使用します。

深度解像度

深度推定時の解像度を上げることができます。解像度が高いほど処理時間がかかります。

ZoeDepthモデルでは、モデル自体が高解像度に対応していないため、結果がよくなるかは分かりません。縦長の画像はデフォルトで大きめの解像度で計算されているので効果はありません。

DepthAnythingシリーズでは512(518)で適切な解像度になり深度の精度が上がります。DepthAnything V3では504です。

前景拡大

正の値で、遠くほど立体感をなくしてその分の立体感を近い方に割り当てます。(背景の厚みを縮小して前景の厚みを拡大します)

foreground-scale

屋外写真で前景(人物)の奥行きが圧縮されて平面に見える場合は3を試してみてください。動画では0をオススメします。

負の値では、逆の効果になります。背景が激しく揺れ動くことがあるので動画ではオススメはしません。

foreground-scale-negative

境界修正

この設定はDepthAnythingモデルでのみ有効になります。チェックをつけるとZoeD_Any_Nでも使用できます。

DepthAnythingの出力は精度が高いですが、ステレオ生成においては前景と背景の境界に歪みやアーティファクトが発生しやすくなります。このアプローチでは、前景側のセグメントを膨張させることでその問題を軽減します(歪む領域が前景から背景に移動します)。

edge-dilation

0では無効になります。2がデフォルトです。4はもっとも目に優しい結果になりますが深度の解像度が落ちます。

フォーマット

出力形式を指定します。またVR動画プレイヤーにメディアの形式を認識させるためにファイル名にそれぞれ識別子を追加します。ファイル名ルール

Full SBSは、フル解像度のサイド・バイ・サイドです。

Half SBSは、ハーフ解像度のサイド・バイ・サイドです。画像の横幅が半分に圧縮されます。古いVR機器ではこのフォーマットしかサポートしていないことがあります。

Full TB,Half TBはトップ・ボトムです。3DTV(Polarized/Passive 3D system)では、トップ・ボトムのほうがサイド・バイ・サイドよりも高い解像度で再生できることがあります。

VR90は、正面90°のみを描画したVR180フォーマット(Equirectangular)です。再生時の操作が制限されるので通常はオススメしません。使用しているVR機器や投稿サイト等の都合で使いたい場合に指定してください。Youtubeのメタデータ設定は #268 を見てください。

Cross Eyedは交差法用のSBSです。専用デバイスがなくても寄り目で画像を重ねると立体に見えます。通常のSBSと左右の画像が逆になっています。

Anaglyph *は、Red-Cyan Anaglyph 3D formatです。

ExportExport Disparityは、深度画像とフレーム画像を画像シーケンスとして出力/再入力する機能です。詳しくは #97 (comment) を見てください。

ちらつきを軽減

この機能は、深度の範囲(最大値と最小値)が振動するのを指数平滑移動平均を使って安定化させます。

これには2つのパラメーターがあります。

  • 減衰率
  • 先読みバッファ

減衰率は、0-1の値です。大きい値でフレーム間での深度範囲の変化が小さくなります。しかし小さすぎる急に深度範囲が大きく変動したときにクリッピングが発生します。適切な範囲は0.75-0.99です。

先読みバッファは、深度範囲を計算する現在フレームから未来にかけてのフレーム数です。例えば先読みバッファ=30は、30FPSのときに1秒先までを意味します。先読みバッファ=150では5秒先です。先読みバッファ=1は以前の動作と同じです。

シーン境界検出

最初にTransNetV2を使ってシーン/ショットの境界検出を行います。 シーン境界のフレームでは、必要に応じて状態のリセットが行われます。

これには以下が含まれます。

  • VideoDepthAnythingの状態
  • ちらつきを軽減 (深度の正規化)の状態

動画圧縮

動画出力時の設定です。主にlibx264の設定です。 より詳しい情報は https://trac.ffmpeg.org/wiki/Encode/H.264 を参照してください。

最大フレームレート

動画のフレームレート(一秒間のフレーム数)が最大フレームレートを超えているときは最大フレームレートに制限します。 超えていないときはオリジナルの(平均)フレームレートで出力します。

デフォルトで30FPSに制限されていることに注意してください。

60FPS動画の処理には30FPS制限の2倍の処理時間がかかることにも注意してください。

ピクセルフォーマット

出力動画のピクセルフォーマットを指定します。通常はyuv420pを指定してください。 詳しい人は他の設定も使えます。色空間とも関連しています。

動画形式

コンテナ形式を指定します。

mp4は互換性の高い形式です。

mkvは変換中に視聴できます。変換速度が30FPSを超えていればリアルタイムで視聴できます(シークは変換済み範囲しかできません)。

aviはロスレス動画用に用意しています。自分で再エンコードする場合などに指定します。

動画コーデック

libx264はH.264用です。互換性の高い形式です。4Kなどの大きい動画ではファイルサイズ/ビットレートが大きくなり、再生に問題が起こることがあります。

libx265はH.265用です。通常はH.264よりもファイルサイズが小さくなります。ただし古い機器では対応していないことがあります。

utvideoはロスレス動画コーデックです。再生にはUt Video Codec Suiteのインストールが必要かもしれません。

h264_nvenc, hevc_nvenc(H.265)は、NVIDIAのハードウェアエンコーダーです。

ffmpegが対応しているコーデックを直接指定することもできますが、追加のオプションが指定できないのでうまく使えないかもしれません。

色空間

出力動画のYUVカラースペースとダイナミックレンジを指定します。

詳細は色空間についてを参照してください。

CRF

品質設定です。小さい値ほど品質が高くファイルサイズが大きくなります。0など選択より小さい値を直接入力することもできます。

レベル

H.264/H.265のレベルを指定できます。通常はautoをオススメします。

libx264では単にメタデータを設定するだけだと思います。

libx265ではより厳密でレベルの範囲外のサイズの動画に対して誤ったレベルを指定するとエラーになります。

関連するプロファイルに関しては、現在使っているライブラリの関係で指定する方法がありません。 ただ、libx264では、preset=ultrafastのときにConstrained Baselineになり、preset=ultrafast以外ではHighになるようです。

プリセット

処理速度と圧縮率のバランスを決めるオプションです。 遅い設定のほうが圧縮率が高くファイルサイズが小さくなります。

高解像度の動画にslower,veryslow,placeboを使用するとハードウェアデコーダーで正常に再生できない(ひどいアーティファクトが発生する)動画が生成されることがあるようです。 slowより遅い設定は使わないのが安全です。mediumをオススメします。

チューニング

入力にあった設定のセットを使用できます。

  • animation: アニメ
  • film: 映画 実写
  • stillimage: スライドショー
  • grain: アナログフィルム (粒子状ノイズの維持)
  • fastdecode: いくつかのフィルタを無効にすることで再生時の負荷を減らします
  • zerolatency: シークが速くなります。

よくわからない場合は選択しません。

ビデオフィルタ

動画の追加処理です。

開始時間, 終了時間

入力動画内の処理する時間範囲を指定します。指定された時間範囲のみ出力します。 チェックを付けなければすべて処理されます。

デインターレース

入力ストリームに対してデインターレースフィルタを適用します。インターレース方式の動画に使用します。 (動画に細かい横線が点滅するやつを消します)

現在は、yadifが選択できます。 他のフィルタやより高度なオプションを使いたい場合は、下記のvfオプションを使用してください。

vf

入力動画ストリームに対してffmpegのビデオフィルター(-vfオプション)を適用します。この処理は深度推定よりも前に適用されます。

ブランチを含む複雑な式は動作しません。フィルタ名1,フィルタ名2=パラメータ1:パラメータ2,...形式の直列な式のみ対応しています。パラメータ内の,\,にエスケープしてください。 式の解析が独自実装なのでうまくいかない式があるかもしれません。

回転

入力フレームを90°回転させます。スマホで撮影した動画など横向きになっている動画を処理前に修正する機能です。

AutoCrop

映画の黒帯(レターボックス)や画像の枠を削除します。

動画では、video filter(crop filter)として適用されます。ユーザーが指定したvfよりも後に適用されます。

黒帯を復元して16:9にしたい場合は、Padding = 16:9 (--pad-mode 16:9)オプションを使ってください。

Mode
BLACK_TB 上下の黒帯だけを削除します。
BLACK 自動で全方向の黒帯を削除します。
FLAT_TB 上下の単色の枠を削除します。
FLAT 単色の枠を削除します。

FLAT*モードは主に画像用です。これは黒色以外の枠も削除します。アニメなど写真以外のアートではうまく動作しないことがあります。

パディング

出力フレーム内に黒の余白を追加します。通常はオススメしません。 人物サイズやスクリーンの表示位置など細かく調節したい場合に使用してください。

出力サイズ制限

出力サイズを指定解像度内に制限します。スマホを使ったCardboard(安価なVRメガネ)で、解像度の大きい動画が再生できない場合に使用してください。

アスペクト比を維持にチェックがない場合は、指定されたサイズにフィットするようにリサイズします。VRプレイヤー側でアスペクト比を修正できる場合にチェックを外します。

プロセッサ

計算に関連する設定です。

デバイス

計算に使用するGPUまたはCPUを指定します。

GPUにはCUDAに対応しているグラフィックボードが表示されます。事実上NVIDIA製になります。

CPUでも動作はしますが、信じがたい遅さになります。

深度バッチサイズ

深度推定を同時に処理するフレーム数です。主に動画用です。画像は1フレームなので基本的には1で処理されます(TTAを使ったときは最大で2になります)。

一般的には、大きい値ほど多くのVRAM(グラフィックボードのメモリ)を使用して処理が速くなります。環境によっては小さい値のほうが速いこともあります。

VRAMが少ないGPUでは小さい値にしないとメモリ不足エラーになります。

ワーカースレッド

0以外で深度推定とステレオ生成をスレッドプール上で行います。

一般的には、デフォルトの0よりも2が速いです。ただし0以外にするとVRAM使用量が増えます。その分、深度バッチサイズを小さくする必要があるかもしれません。

Windowsや遅いディスクの環境では、小さいバッチサイズに大きいワーカースレッド数が速いことがあります。

低ビデオメモリ

すべての条件下で深度バッチサイズを1に制限にします。どうやってもVRAMのメモリ不足になる場合に試してみてください。

TTA

深度推定を左右反転してた2パターンの画像に対して行い結果を平均して品質を改善します。ただし処理時間が2倍になります。

FP16

計算に半精度浮動小数点(16bit float)を使用します。 Turing(RTX20シリーズ)以降のGPUでは有効にすることで処理が速くなりVRAMの使用量が減ります。

古いGPUでは遅くなったりエラーになったりするかもしれません。その場合はOFFにできます。

開始・キャンセル

開始ボタンで処理を開始します。キャンセルボタンで実行中の処理をキャンセルします。

応用

VR動画プレイヤー

Meta Quest 2上の以下の2つのソフトウェアで動作確認しています。

Pigasus VR Media Player

Pigasusは、3D動画、3D画像、SMB(共有ドライブ)すべてで完璧に動作します。 ただし、個人的にはUIや操作があまり好きではありません。

SKYBOX VR Video Player

最近の更新でFull SBSの大体の機能は動作するようになりました。 まだ以下の機能はありません。

  • 画像の送りがコントローラーでできません

スクリーン位置を調節するには、シネマシーン設定でVOIDを設定してください。 (Cinema Scene > SELECT THEATER > VOID)

ファイル名ルール

VR動画プレイヤーはファイル名によってメディアの形式を認識しています。

ファイル名の末尾に以下の識別子をつけると正しいフォーマットで認識されます。

  • _LRF_Full_SBS: Full SBS
  • _LR: Half SBS
  • _180x180_LR: VR180 (VR90)

出力にフォルダを指定した場合、上記の識別子が自動で追加されます。ファイル名を直接指定する場合は、手動で追加してください。

参考:

_LRF_Full_SBSは上記のソフト全てで動作します。

SKYBOXは何か別の条件(ファイル名が長すぎる?)で認識しないことがあります。その場合はメニューから3D Full-SBS Matchingを有効にできます。

トラブルシューティング

出力動画がSBSになっていない

Windows Photoなどいくつかのソフトウェアはサイドバイサイドの片側だけを表示します。 他の動画プレイヤーで確認してみてください。

(表示上だけの問題です)

前景(人物)が平面になる

屋外シーンの写真で発生しやすいです。

この問題と戦ういくつかの方法があります。

  • 前景拡大3にする
  • それらの組み合わせ

この問題の原因のひとつは、iw3ではあらゆるシーンを同じ厚さ内に表示していることです。 壁まで2メートルのシーンと空が宇宙まで続いているシーンでは、人物の厚みに使える範囲が大きく変わります。 iw3では、遠くほど厚みを無くしてその分を近くに割り当てることでこの問題を軽減していますが、汎用的な設定では限界があります。

前景拡大の値を上げるほど、遠くほど厚みをなくしてその分を近くに割り当てます。

動画エンコード・デコードエラー

フォーマットをissueに投稿してもらえれば解決できるかもしれません。 単純にファイルが壊れている場合は、他の方法で修正してください。

巨人!!

これはSBS 3D動画では原寸大を表現できないという根本的な問題です。

写真やシーンが動かない動画では、手動でサイズ感を調節できます。

  • VR動画プレイヤーの設定で調節
  • 自分の大きさで調節
  • パディングで調節
  • 組み合わせ

SKYBOX Playerでは、3D Effectを-0.3などマイナス側に動かすと対象が小さく見えます。

Pigasusでは、設定 > 高度な設定 > IPDのスライダーを大きくすると対象が小さく見えます。またトリガーボタンをダブルクリックすると画像内の一部を拡大・移動できます。

自分の大きさ設定では、それらよりも更に小さくできます。 ただし、小さくするほど厚みがなくなります。この場合、3Dの強さを大きくできますが、大きくしぎるとゴーストアーティファクトが発生します。

また曲面スクリーンを使っているとサイズが大きく見えるので注意してください。

また収束平面01では大きさの見え方も変わるので注意してください。1のほうが大きく見えます。

CUDA Out of Memory

GPUのメモリ不足です。深度バッチサイズを小さくするか低VRAMを有効にしてみてください。

また一度のこのエラーになると再度発生しやすくなるかもしれません。一度プログラムを終了してみてください。

作者はこのソフトウェアをRTX 3070 Ti(8GB VRAM, Linux)とGTX 1050 Ti(4GB VRAM, ノートPC, Windows)で動作確認していますが、どちらもデフォルトの設定で動作しています。

ちなみに上記の環境では、RTX 3070 TiのマシンがGTX 1050 Tiのマシンの10倍速いので、もしこのソフトウェアを気に入って古いGPUを使っている場合はRTX 3070 Ti以上の購入をオススメします。10時間かかる動画変換処理が1時間で終わるかもしれません。(OSや本体の違いもあるので言い切ることはできません)

NVENC(h264_nvenc hevc_nvenc)が動作しない

NVIDIA Driver 570 以降をインストールしてください。

また、ハードウェアエンコーダーには解像度の制限があり、大きすぎる動画はエラーになります。 この問題はVR90で特によく発生します。VR90は生成される動画の解像度が非常に大きくなり、ハードウェアエンコーダーがサポートするの解像度を超えやすいからです。

サブプロジェクト

  • iw3-desktop はPCのデスクトップ画面を3D変換してWiFi経由でストリーミング配信するツールです。
  • iw3-player はセルフホストのステレオメディア再生環境です。WebXRのプレイヤーです。