デジタルコンテンツ制作のための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.

<<:  スマートカーのステアバイワイヤ技術の詳細な説明

>>: 

推薦する

...

OpenAI: ニューヨークタイムズは私を攻撃するためにハッカーを雇った

新聞社が雇ったハッカーが AI の巨人を攻撃するのはなぜでしょうか?ニューヨーク・タイムズがOpen...

2021 年に注目すべき 4 つの自動化問題

[[377158]]研究によれば、コロナウイルスのパンデミック中に組織が確立したビジネス規範は、パン...

AIがメディア業界を変革、フェニックスTVがAIデータトラックに参入

メディア専門家は、2023年の「失業」について多かれ少なかれ不安を抱いています。メディア専門家は、C...

日本政府はAI規制に対して緩やかなアプローチを好んでいるが、日本企業は厳格なEU規則に従う可能性がある

日本は、急速に減少する日本の人口によって引き起こされる問題のいくつかに対処するために、人工知能(AI...

北京、宜荘市の111の道路で初の自動運転試験を開始

本日、北京市は有人自動運転試験を正式に開始した。北京経済技術開発区は40平方キロメートルのエリアを自...

「怠け者」を助ける掃除ロボットの規模は600億台を超える

近年、世界経済の発展に伴い、人間の生活環境は徐々に改善され、人口も増加傾向にありますが、急速な人口増...

IT プロフェッショナルが CIO に人工知能について知ってほしい 9 つのこと

[51CTO.com クイック翻訳] 最高情報責任者 (CIO) と IT リーダーは、人工知能の実...

...

...

...

...

持続可能なスマートシティの開発におけるスマートビルの重要な役割

[[388162]]画像ソース: https://pixabay.com/images/id-158...