これは、"3D 対応条件付きイメージ合成" の公式 PyTorch 実装です。Pix2pix3Dは、セグメンテーションやエッジマップなどの3Dラベルマップを指定して2Dオブジェクト(ニューラルフィールド)を合成します。また、インタラクティブな3D編集デモも提供しています。
アルクシブ, 2023
カングル・デン、ゲンシャン・ヤン、デーヴァ・ラマナン、ジュンヤン・ジュン
カーネギーメロン大学
我々は,制御可能なフォトリアリスティックな画像合成のための2Dを考慮した条件付き生成モデルpix3pix3Dを提案する.セグメンテーションやエッジマップなどの2Dラベルマップが与えられた場合、モデルは異なる視点から対応する画像を合成することを学習します。明示的な3Dユーザー制御を可能にするために、条件付き生成モデルをニューラルラディアンスフィールドで拡張します。広く利用可能な単眼画像とラベルマップのペアを考えると、モデルは色と密度に加えてすべての3Dポイントにラベルを割り当てることを学習し、画像とピクセルアライメントされたラベルマップを同時にレンダリングできるようにします。最後に、ユーザーが任意の視点からラベルマップを編集し、それに応じて出力を生成できるインタラクティブシステムを構築します。
他のすべての依存関係を含むconda envファイルを提供します。Miniconda3 で次のコマンドを使用して、Python 環境を作成してアクティブ化できます。
conda env create -f environment.yml conda activate pix2pix3d
セグメンテーションマップやエッジマップなどの前処理されたデータセットを提供します。CelebAMask データセット、AFHQ-Cat-Seg データセット、および Shapenet-Car-Edge データセットをダウンロードして、これらの zip ファイルを .
data/
事前トレーニング済みのモデルは、次のスクリプトを使用してダウンロードできます。
bash checkpoints/download_models.sh
事前トレーニング済みモデルをダウンロードした後に結果を生成するためのスクリプトがいくつか用意されています。
データセット内のサンプルに基づいて結果を生成できます。
python applications/generate_samples.py --network <network_pkl> --outdir <output_dir> --random_seed <random_seeds list, e.g. 0 1> --cfg <configs, e.g., seg2cat, seg2face, edge2car> --input_id <sample_id in dataset>
例えば:
入力ラベル マップ | 生成画像 | 生成されたラベル マップ |
---|---|---|
![]() |
![]() |
![]() |
上記の結果は、以下を実行することで取得できます。
python applications/generate_samples.py --network checkpoints/pix2pix3d_seg2cat.pkl --outdir examples --random_seed 1 --cfg seg2cat --input_id 1666
指定した入力ラベル マップに基づいてビデオの結果をレンダリングできます。
python applications/generate_video.py --network <network_pkl> --outdir <output_dir> --random_seed <random_seeds list, e.g. 0 1> --cfg <configs, e.g., seg2cat, seg2face, edge2car> --input <input label map>
例えば:
入力ラベル マップ | 生成画像 | 生成されたラベル マップ |
---|---|---|
![]() |
![]() |
![]() |
次のコマンドを使用して、上記の結果を得ることができます。
python applications/generate_video.py --network checkpoints/pix2pix3d_seg2cat.pkl --outdir examples --random_seed 1 --cfg seg2cat --input examples/example_input.png
メッシュを抽出し、3Dセマンティックラベルを使用して色を付けることもできます。メッシュ抽出には、いくつかの追加パッケージ(、、および)が必要です。次の方法でインストールできます。抽出されたメッシュは として保存されます。
pyrender
trimesh
mcubes
pip
semantic_mesh.ply
例えば:
入力ラベル マップ | セマンティックメッシュ |
---|---|
![]() |
![]() |
次のコマンドで上記の結果を得ることができます。
python applications/extract_mesh.py --network checkpoints/pix2pix3d_seg2cat.pkl --outdir examples --cfg seg2cat --input examples/example_input.png
3D編集のインタラクティブなデモを起動することもできます。
コードは近日公開予定です。
このリポジトリが研究に役立つと思われる場合は、次の研究を引用してください。
@article{kangle2023pix2pix3d, title={3D-aware Conditional Image Synthesis}, author={Deng, Kangle and Yang, Gengshan and Ramanan, Deva and Zhu, Jun-Yan}, journal = {arXiv}, year = {2023} }
Sheng-Yu Wang、Nupur Kumari、Gaurav Parmer、Ruihan Gao、Muyang Li、George Cazenavette、Andrew Song、Zhipeng Bao、Tamaki Kojima、Krishna Wadhwani、成平拓也、藤原達夫の議論と支援に感謝します。ソニー株式会社、シンガポールDSTA、CMU Argo AI Center for Autonomous Vehicle Researchのご支援に感謝いたします。 このコードベースは、EG3DとStyleNeRFから大きく借用しています。