デジタルコンテンツ制作のためのDIY AI

デジタルコンテンツ制作のためのDIY AI

背景

今年、chatgpt に代表される大型モデルの驚異的なパフォーマンスは、AICG の分野に完全に火をつけました。さまざまな種類の gpt および AI マッピング製品が雨後の筍のように出現しました。あらゆる成功した製品の背後には、洗練されたアルゴリズムがあります。この記事では、携帯電話を使用して同じシーンの写真を複数枚撮影し、新しい視点を合成してビデオ プロセスとコードを生成する方法について詳しく説明します。この記事で使用されている技術はNeRF( Neural Radiance Fields)であり、2020年から登場したディープラーニングベースの3D再構成手法です。シーンの光透過と放射伝達を学習することで、高品質のシーンレンダリング画像と3Dモデルを生成できます。その原理と文献に関しては、誰もが学べるように最後に参考文献リストを掲載しました。この記事では主にコードの使い方や環境構築といった新しい観点から紹介します。

環境構築

environment.yml の変更

この記事で使用したハードウェア環境は GPU RTX3090、OS は Windows 10 です。使用したソフトウェアはオープンソースの NeRF 実装 (https://github.com/cjw531/nerf_tf2) です。 RTX 3090 には CUDA 11.0 以上のサポートが必要であり、TensorFlow-gpu には 2.4.0 以上のサポートが必要であるため、bmild 環境では古すぎる tensorflow-gpu==1.15 が使用されているため、公式の https://github.com/bmild/nerf を選択しませんでした。 https://github.com/bmild/nerf/issues/174#issue-1553410900 を実行すると以下の問題が発生します。2.8 へのアップグレードが必要であることもこの tt で回答しました。しかし、https://github.com/cjw531/nerf_tf2 を使用したとしても、その環境にいくつか問題があります。まず、海外のcondaチャンネルに接続しているため、速度が非常に遅いです。次に、その環境では、tensorflow-gpu のバージョンを指定せずに tensorflow==2.8 を使用します。これら2つの問題に関して。 environment.yml に変更を加えました。

 # To run: conda env create -f environment.yml name: nerf_tf2 channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ - conda-forge dependencies: - 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

conda環境を起動する

cmdを開き、次のコマンドを入力します。

 conda env create -f environment.yml

jupyter に nerf_tf2 を追加すると、jupyter を使用してシステムの実行結果を簡単に表示できるようになります。

 // 安装ipykernel conda 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启动jupyter jupyter notebook

この時点で、conda 環境と jupyter の準備が整いました。

データ準備

  1. colmap をダウンロードしてインストールします。私の環境は Windows です (https://demuc.de/colmap/#download)
  2. https://github.com/fyusion/llff で提供されている imgs2poses.py を使用して、自分のカメラで撮影したカメラの内部パラメータと外部パラメータを取得します。たとえば、10 枚の写真を撮影しましたが、それらが配置されるディレクトリの場所は非常に特殊で、D:/LanJing/AI/LLFF/data/images です。つまり、それらは images サブディレクトリの下に配置する必要があります。渡したパラメータは python imgs2poses.py D:/LanJing/AI/LLFF/data です。コード内の images_path は次のように記述されているためです (https://github.com/Fyusion/LLFF/blob/master/llff/poses/colmap_wrapper.py#L28)

携帯電話で撮影した写真の例

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_test basedir = ./logs datadir = ./data/nerf_llff_data/ll dataset_type = llff factor = 8 llffhold = 8 N_rand = 1024 N_samples = 64 N_importance = 64 use_viewdirs = True raw_noise_std = 1e0

電車

オープンソース ソフトウェアを Windows プラットフォームに移行します。

このオープンソースソフトウェアは主に Mac と Linux をサポートしているため、Windows では実行できず、load_llff.py を変更する必要があります。

load_llff コードの移行

トレーニングバッチを 300,000 回実行します。

 activate nerf_tf2 python run_nerf.py --config config_ll.txt

テスト

render_demoを実行する

効果

使用した入力画像は 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脳を搭載したドローン:群衆の中の暴力的な人々を正確に識別できる

[[233174]]もしある日私を殴りたくなったら、ただ殴って終わりにできると思いますか?今はそんな...

ビッグデータマイニング機械学習人工知能ベン図戦争

半期会議がもうすぐ開かれますが、上司はみんなでしっかり計画を立てるように言いました。私たちの将来の方...

人工知能の革新はいかにしてより賢いロボットの進化につながるのか

ロボットはコンピューターによってプログラムされた機械です。人間の介入なしに一連の複雑なアクションを自...

...

Googleは、ニュースコンテンツを作成するために生成AIツールを使用するためにいくつかの出版社と提携していると報じられている。

2月28日、Adweekは、Googleがいくつかの出版社と、ニュースコンテンツを作成するための新...

Langchain、ChromaDB、GPT 3.5 に基づく検索強化型生成

翻訳者|朱 仙中レビュー | Chonglou概要:このブログでは、検索拡張生成と呼ばれるプロンプト...

...

...

ヘルスケアにおける6つの新たなテクノロジートレンド

ヘルスケア業界におけるテクノロジーの浸透は、この分野の専門家のほぼすべての業務に影響を及ぼしています...

...

これらのよく知られた VR 音声テクノロジー ソリューションをご存知ですか?

最近、Oculus は、VR デバイスを使用する際にユーザーがよりインタラクションできるようにするこ...

人工知能 (AI) は、研究室から実際のアプリケーションまでどのように異なるのでしょうか?

人工知能が実際の応用に入ると、遭遇する問題のほとんどは複雑になります。 しかし、現段階では、人工知能...

...