ホームページ >テクノロジー周辺機器 >AI >人工知能テクノロジーに基づいて 3D モデルを迅速に構築

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

PHPz
PHPz転載
2023-04-08 23:11:021543ブラウズ

翻訳者|Zhu Xianzhong

査読者|Sun Shujuan

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

図 1: 表紙

3D モデルの生成には時間がかかる場合があります。を消費するか、多数の参照イメージが必要になります。この問題を解決する 1 つの方法は、人工知能による画像生成方法である Neural Radiance Field (NeRF) を使用することです。 NERF の主なアイデアは、撮影したオブジェクトまたはシーンの 2D 画像の小さなセットを取得し、これらの 2D 画像を使用して 3D 表現を効率的に構築することです。これは、既存の画像間の変換を学習することで実現されます。このジャンプ (「補間」とも呼ばれる) テクニックは、オブジェクトに対する新しい視点のイメージを作成するのに役立ちます。

いいですね?小さな画像セットを使用して、3D モデルを作成できます。これは、写真を生成するために膨大な画像ライブラリを必要とする標準の写真測量よりもうまく機能します (あらゆる角度からのショットが必要です)。ただし、NVIDIA は当初、NeRF が高速であると約束していましたが、最近までそうではありませんでした。以前は、NeRF は一連の画像を 3D モデルに変換する方法を学習するのに長い時間がかかる傾向がありました。

しかし今日では、これは当てはまりません。最近、NVIDIA は、GPU ハードウェアを利用して必要な複雑な計算を実行するインスタント NeRF ソフトウェアを開発しました。このアプローチにより、モデルの作成に必要な時間が数日から数秒に短縮されます。 NVIDIA は、Instant-NGP ソフトウェアの使いやすさと速度について、多くの刺激的な主張を行っています。さらに、彼らが提供した結果と例も非常に印象的です。

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

##図 2: NeRF 画像表示 - NVIDIA には素晴らしいロボティクス ラボがあります

このデモに感銘を受けないわけにはいきません。素晴らしく見えます。そこで、これを自分の画像に転送して、独自の NeRF モデルを生成することがどれほど簡単になるかを確認したいと思いました。そこで、このソフトウェアを自分でインストールして使用することにしました。この記事では、私の実験体験と、私が作成したモデルの詳細について説明します。

主な任務部門

それでは、どうすればいいでしょうか?大まかに段階的に設定されたタスクは次のように分類されます。

    まず最初に、いくつかの映像を引用する必要があります。 3D で作りたいビデオを録画しましょう!
  • 次に、シーンの撮影を開始し、キャプチャしたビデオを複数の静止画像に変換します。
  • 上記で取得した連続画像データをinstant-ngpに渡します。次に、AI は、生成された画像間の空間を理解するようにトレーニングされます。これは実際には 3D モデルを作成するのと同じです。
  • 最後に、私たちの作品を紹介するビデオを作成したいと思いました。 NVIDIA が開発したソフトウェアでは、パスを描画し、作成したモデルをカメラで撮影して、ビデオをレンダリングします。
これがどのように機能するかについては詳しく説明しませんが、役立つと思われる多くのリソースへのリンクを提供します。そこで、次に、私が作成したビデオと、途中で偶然見つけたいくつかの知識に焦点を当てたいと思います。

実験を開始してください

NVIDIA のインスタント NeRF ソフトウェアのインストールは簡単ではありません。ソフトウェアの説明書は明確ですが、人が必要とするソフトウェアの特定のバージョンに関しては、説明書の必須部分にはあまり調整の余地がないと感じます。 CUDA 11.7 または VS2022 を使用するのは不可能に思えましたが、CUDA 11.6 バージョンと VS2019 に切り替えたことで、最終的にインストールが成功したと思います。その中には、「CUDA_ARCHITECTURES がターゲットに対して空です」などのエラーが多数発生しました。これは、CUDA と Visual Studio の連携が良好ではないためです。したがって、興味のある読者には、すべてをスムーズにセットアップできるよう、Github の

ビデオ warehouse リソース を参照することを心からお勧めします。

それ以外は、このプロセスは順調に進んでいます。公式は、キャプチャしたビデオを画像に変換し、その後モデルとビデオに変換する手順をガイドする Python スクリプトも提供しています。

実験1: レゴカー

最初に、オフィスにある小さなレゴカーをNeRF化してみました。意味のある画像をまったく作成できず、自分の写真スキルが十分ではないと感じました。ただの奇妙な3Dの傷です。それは忘れて、NVIDIA が提供する例を見てみましょう。写真内のカメラの位置に注意してください:

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

図 3: NVIDIA が提供する掘削機のデフォルト NeRF モデルの「カメラ」位置

トレーニングに適した準備設定の 1 つは、シーン内に「カメラ」を配置することです。上の図に記載されています。これらのカメラは、ビデオを撮影するときにソフトウェアが向いていると判断する角度です。素敵なサークルになるといいですね。もちろん、私が最初に作ったレゴ車はまったくこんな形ではなく、潰れた半円でした。

実験 2: わずかに大きなレゴ カー

最初の実験から学ぶために、完全に可動性のあるテーブルを見つけ、より大きなレゴ カーを見つけました。私も、以前よりも長時間写真を撮るように心がけています。最後に、あらゆる角度から滑らかな 1 分間のビデオを撮影しました。モデルのトレーニングにかかる​​時間は合計 30 秒もかかりませんでした。 720p で 4 時間レンダリングして作成したビデオは次のとおりです:

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

図 4: 2 番目の NeRF モデル – レゴ テクニック カー!

実験 3: 植物

結果は、上記の実験 2 がより優れており、少なくとも技術的には実現可能であることを証明しています。しかし、まだ奇妙な霧があり、それは確かに非常に厄介ではありません。次の実験では、さらに後方から撮影してみました(霧は、AI がそこにあるものについて「混乱」していることが原因であると推測しています)。 aabc_scale パラメーター (シーンの大きさを測定する) をより詳細に制御して、数分間トレーニングしようとしています。レンダリングの最後に、以下に示すビデオ結果が得られます。

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

図 5: リビング ルームのテーブル上の植物から作成した NeRF モデル

### ずっといい!かぎ針編みの植木鉢や木の溝、葉などの繊細な表現がとても緻密に表現されているのが印象的です。木の葉の上を急降下するカメラを見てください!

テスト 4:

さて、テスト結果はますます良くなってきています。でも、屋外の動画が欲しいです。私はアパートの外で 2 分未満のビデオを撮影し、処理を開始しました。これは、レンダリング/トレーニングの場合に特に面倒です。ここでの私の推測では、aabc_scale 値がかなり高い (8) ため、レンダリング「レイ」が非常に遠くまで到達する必要がある (つまり、レンダリングしたいものの数がより多くなる) と考えられます。そのため、480p に切り替え、レンダリング FPS を 30 から 10 に下げる必要がありました。設定パラメータの選択がレンダリング時間に影響を与えることがわかりました。 8 時間のレンダリングの後、最終的に次のようになりました。

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

図 6: アパートの外で使用した NeRF モデル

ただし、私は次のように考えています。 3番目のトライアルは今でも私のお気に入りです。 4回目のトライアルはもう少しうまくできたと思います。ただし、レンダリング時間が非常に長くなると、バージョンを繰り返したり、さまざまなレンダリング設定やトレーニング設定を試したりすることが困難になります。レンダリングのためのカメラアングルを設定することさえ難しくなり、プログラムが非常に遅くなってしまいました。

ただし、使用したビデオ データは 1 ~ 2 分だけなので、これは本当に驚くべき出力です。ついに、詳細でリアルな 3D モデルが完成しました。

メリットとデメリットの分析

最も印象的だったのは、写真測量のトレーニングを全く受けていない人 (私) でも、1 ~ 2 分の撮影で実用的な 3D モデルを作成できたことです。このプロセスにはある程度の技術的なノウハウが必要ですが、すべてをセットアップしてしまえば、簡単に使用できます。 Python スクリプトを使用してビデオを画像に変換すると、うまく機能します。これが完了するとAIへの入力がスムーズに進みます。

ただし、この点で Nvidia を責めるのは難しいですが、この点については取り上げるべきだと思います。これにはかなり強力な GPU が必要です。私のラップトップには T500 が入っていますが、このタスクはそれを絶対的な限界まで押し上げただけです。実際、トレーニング時間は宣伝されている 5 秒よりもはるかに長く、1080p でレンダリングしようとするとプログラムがクラッシュします (私は 135*74 インジケーター付近で動的にレンダリングすることにしました)。以前の NeRF モデルの実験には数日かかったため、これは依然として大幅な改善です。

このようなプロジェクトでは、誰もが 3090p デバイスを持っているわけではないと思うので、簡単に説明する価値があります。コンピューターのパフォーマンスが低いため、特にビデオのレンダリングに適したセットアップを行うためにカメラを「飛行」させようとした場合に、プログラムの使用が困難になりました。それでも、このプロセスの結果は印象的です。

また、私が直面したもう 1 つの問題は、レンダリング ファイル render.py が見つからないことでした (ご想像のとおり、これはビデオのレンダリングに重要です)。非常に奇妙なことに、ほとんどの広告記事やその他のドキュメントで頻繁に言及されているにもかかわらず、公式に提供されているオープン ソース コード リポジトリには含まれていません。したがって、リンク https://www.php.cn/link/b943325cc7b7422d2871b345bf9b067f からこの宝を掘り出さなければなりません。

最後に、上記の 3D モデルを .obj ファイルに変換したいと思います。もしかしたら今ならそれが可能かもしれません。

人工知能テクノロジーに基づいて 3D モデルを迅速に構築

図 7: キツネの GIF アニメーション - これは私が作ったものではなく、NVIDIA が作成したものです。悪くないですよね?

まとめと次の考察

上記の実験プロセスは、OpenAI が開発した DALL-E を思い出させます。これも、画像を生成する人工知能技術の手法です。今日、このテクノロジーは非常に普及しています。その理由の 1 つは、非常にアクセスしやすいことです。さらに、DALL-E は、人工知能モデルができることとその制限についての非常に優れた例を示しています。それは今ではポップカルチャー現象になっています(少なくとも私のTwitterフィードでは大きく取り上げられています) - 人々は自分の奇妙なDALL-E写真を作成し、それを互いに共有しています。このテクノロジーでも同様のことが起こると想像できます。誰でもビデオをアップロードし、友人と共有できる 3D モデルを作成できる Web サイトのバイラルな可能性は非常に大きいです。いつかは誰かがそれをやるに違いない!

個人的には、この分野でのさらなる実験結果を期待しています。超現実的なモデルを生成して、それを AR/VR にダンプできるようにしたいと考えています。これらのテクノロジーに基づいて、Web 会議を主催することもできます。それは楽しいと思いませんか?なぜなら、この目標を達成するには携帯電話のカメラを使用するだけでよく、ほとんどのユーザーは現在すでに携帯電話にこのハードウェア構成を備えているからです。

全体的に、私は感銘を受けました。携帯電話で 1 分間のビデオを録画し、それをステップ実行できるモデルに変換できるのは素晴らしいことです。レンダリングに時間がかかり、インストールが少し難しいですが、うまく機能します。いくつかの実験を行った結果、非常に素晴らしい出力が得られました。さらなる実験を楽しみにしています!

参考文献

NVIDIA Git

NVIDIAブログ

補足 Git

翻訳者紹介

Zhu Xianzhong、51CTO コミュニティ編集者、51CTO エキスパートブロガー、講師、濰坊の大学のコンピューター教師、フリーランスのベテランプログラミング業界 ワンピース。初期の頃は、さまざまな Microsoft テクノロジに焦点を当てていました (ASP.NET AJX および Cocos 2d-X に関連する 3 冊の技術書籍を編集しました)。過去 10 年間は、オープンソースの世界に専念してきました (人気のある完全なソースに精通しています)。スタックWeb開発技術)を学び、OneNet/AliOS Arduino/ESP32/Raspberry PiなどのIoT開発技術やScala Hadoop Spark Flinkなどのビッグデータ開発技術について学びました。

原題: Using AI to Generate 3D Models, Fast! 、著者: Andrew Blance

以上が人工知能テクノロジーに基づいて 3D モデルを迅速に構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。