デジタルコンテンツ制作のための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 はサプライ チェーンのセキュリティの確保にどのように役立ちますか?

サプライ チェーンは、生産におけるあらゆるリンクの源です。原材料から製造、流通まで、各ステップで最も...

トラフィックを30%削減し、鮮明度を向上: MITが新しいAIビデオキャッシュアルゴリズムを提案

オンラインビデオの読み込み速度と鮮明さに対する人々の要求は常に尽きることがありません。最近、マサチュ...

...

AIが医療画像診断を強化し、潜在的な病気が隠れる場所をなくす

【51CTO.comオリジナル記事】 [[376669]]医療は人々の生活に関わる最も重要な問題の一...

...

画像内のテキストを心配する必要はありません。TextDiffuserは高品質のテキストレンダリングを提供します。

近年、テキストから画像への変換の分野は、特に AIGC (人工知能生成コンテンツ) の時代において大...

...

人工知能はどのようにして新しい世界を創造するのでしょうか?

AI は時間の経過とともにさらに賢くなり、パワーを増していきます。私たちの多くにとって、人工知能 ...

ロボット工学と自動化は医療業界にどのような影響を与えるでしょうか?

ヘルスケアにおけるロボット工学と自動化は業界を変革し、精度、効率、患者ケアを向上させました。これらの...

無料の Python 機械学習コース 7: アルゴリズムのパフォーマンスが低い場合の対処方法

私たちは機械学習アルゴリズムの開発に多くの時間を費やしました。しかし、導入後にアルゴリズムのパフォー...

100 以上の自然言語処理データセットが無料で、データの検索に困ることはありません。

[[228774]]ビッグデータ概要編集者: Wanjun、VVN、Zhang Lijun、Yun...

...

人工知能は目覚めたのか?アマゾンのAIは人間の命令を聞かず不気味な笑い声を上げる

人類が人工知能の開発に熱心に取り組み始めて以来、著名な科学者ホーキング博士をはじめ、疑問や反対の声が...

AmazonのAI研究開発はファッショントレンドをリードするために異なるアプローチを採用しています

テクノロジーサイトEngadgetが北京時間8月25日に報じたところによると、人工知能は現在、ほとん...