ホームページ > 記事 > テクノロジー周辺機器 > AI技術を活用したDIYデジタルコンテンツ制作
今年、chatgpt に代表される大規模モデルの驚異的なパフォーマンスにより、AICG の分野は完全に活性化されました。雨後の筍のように、さまざまな gpt および AI マッピング製品が登場しています。すべての成功した製品の背後には絶妙なアルゴリズムがあり、この記事では、携帯電話を使用して同じシーンの写真を複数枚撮影し、新しい視点を合成してビデオを生成する方法のプロセスとコードを詳しく紹介します。この記事で使用する技術は、2020年から登場した深層学習に基づく3次元再構成手法であるNeRF(Neural Radiance Fields)です。光の透過と放射を学習することで高画質な画像を生成できます。シーンの転送、シーンのレンダリング画像と 3D モデル。その原則と文献に関しては、誰もが学ぶことができるよう、最後に参考文献リストを用意しました。この記事では主にコードの使い方や環境構築という新たな視点から紹介します。
この記事で使用するハードウェア環境はGPU RTX3090、OSはWindows 10です。使用されるソフトウェアはオープンソースの NeRF 実装 (https://github.com/cjw531/nerf_tf2) です。 RTX 3090 は CUDA 11.0 以降のサポートを必要とし、TensorFlow-gpu は 2.4.0 以降のサポートを必要とするため、bmild 環境では tensorflow を使用するため、公式 https://github.com/bmild/nerf は選択しませんでした。 gpu==1.15、バージョンが古すぎます。 https://github.com/bmild/nerf/issues/174#issue-1553410900 を実行すると次の問題が発生するため、2.8 にアップグレードする必要があるとこの tt でも回答しました。ただし、https://github.com/cjw531/nerf_tf2 を使用する場合でも、その環境には多少問題があります。まず、外部の conda チャネルに接続しているため、速度が非常に遅いです。次に、その環境では tensorflow==2.8 が使用されており、tensorflow-gpu のバージョンが指定されていません。この 2 つの質問に対して。環境.ymlを変更しました。
# To run: conda env create -f environment.ymlname: nerf_tf2channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- conda-forgedependencies:- python=3.7- pip- cudatoolkit=11.0- cudnn=8.0- numpy- matplotlib- imageio- imageio-ffmpeg- configargparse- ipywidgets- tqdm- pip:- tensorflow==2.8- tensorflow-gpu==2.8- protobuf==3.19.0- -i https://pypi.tuna.tsinghua.edu.cn/simple
cmd を開いて次のコマンドを入力します。
conda env create -f environment.yml
jupyter に nerf_tf2 を追加して、jupyter がシステムの実行結果を簡単に表示できるようにします。
// 安装ipykernelconda install ipykernel
//是该conda环境在jupyter中显示python -m ipykernel install --user --name 环境名称 --python -m ipykernel install --user --name 环境名称 --display-name "jupyter中显示名称"display-name "jupyter中显示名称"
//切换到项目目录cd 到项目目录//激活conda环境activate nerf_tf2//在cmd启动jupyterjupyter notebook
これで conda 環境と jupyter の準備が整いました。
#携帯電話で撮影したサンプル写真
feature_extractor_args = ['colmap', 'feature_extractor','--database_path', os.path.join(basedir, 'database.db'),'--image_path', os.path.join(basedir, 'images'),'--ImageReader.single_camera', '1',# '--SiftExtraction.use_gpu', '0',]
python imgs2poses.py
imgs2poses.py ファイルを実行すると、生成されたスパース ディレクトリ、colmap_out.txt、database.db、poses_bounds.npy を作成し、nerf_tf2 プロジェクトの下に新しいディレクトリ data/nerf_llff_data/ll を作成し、上記のスパース ディレクトリとposes_bounds.npyをこのディレクトリにコピーしました。最後に、新しいファイル config_ll.txt を構成します。この時点で、データの準備作業は完了です。
expname = ll_testbasedir = ./logsdatadir = ./data/nerf_llff_data/lldataset_type = llfffactor = 8llffhold = 8N_rand = 1024N_samples = 64N_importance = 64use_viewdirs = Trueraw_noise_std = 1e0
トレーニング
このオープンソース ソフトウェアは主に Mac と Linux をサポートしているため、Windows 上では実行できず、load_llff.py の修正が必要です。
load_llff コードの移行
バッチ トレーニングを 300,000 回実行します。
activate nerf_tf2python run_nerf.py --config config_ll.txt
テスト
##Render_demo running
Effect使用する入力画像は 10 個だけなので、効果はあまり良くありませんが、全体的なプロセスは同じです。ヒント: 公式コードの半分では、30 枚、場合によっては 100 枚の画像が使用されています。 私たちの結果 #新しい視点からのレンダリング公式エフェクト シダ新しい視点エフェクトの公式合成参考文献https://zhuanlan.zhihu.com/p/554093703。 https://arxiv.org/pdf/2003.08934.pdf。 https://zhuanlan.zhihu.com/p/593204605。 https://inst.eecs.berkeley.edu/~cs194-26/fa22/Lectures/nerf_lecture1.pdf。以上がAI技術を活用したDIYデジタルコンテンツ制作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。