🤖

画像から3Dモデルを生成する技術(Image-to-3d)を触ってみた感想

2024/09/13に公開

0. はじめに

こんにちは、AILab所属AIエンジニアの村上です。

今回は弊社AI Labで実施したプロジェクトで扱った技術の1つである、3D生成・復元技術についてご紹介したいと思います。

本ブログでは、3D生成技術の基本的な概念から、最新の研究成果、応用例、そして未来の展望までをご紹介します。
技術の内容はともかく、実際に手を動かして触ってみたい!という方は、是非#参考最下部のGithubリポジトリを参考に目的に合ったモデルを探してみてください。非常に網羅的にまとめられていると思います。

1. 3D生成技術の概要

3次元空間をデータ化する技術は、現代の我々にとって身近になりつつありますが、その歴史は意外と古く、1800年代に写真測量の技術として誕生したフォトグラメトリにまで遡ります。初期のフォトグラメトリは、主に地図作成や建築物の記録に用いられていました。

その後、コンピュータの進化に伴い、Structure from Motion (SfM) と呼ばれる技術が登場しました。SfMは、複数の画像からカメラの位置や向き、そして3次元構造を推定する技術であり、フォトグラメトリを自動化する画期的なものでした。

2000年代に入ると、LiDARと呼ばれる3Dレーザースキャン技術が台頭しました。LiDARは、レーザー光を用いて対象物までの距離を測定することで、高精度な3次元点群データを取得できます。しかし、LiDARは高価であるため、その利用は一部に限られていました。

2010年代後半からは、深層学習の進化を背景に、再びカメラを用いた3D再構成技術が注目を集めるようになりました。2020年には、NeRF (Neural Radiance Fields) が登場し、高品質な3Dシーン表現を少ないデータ量で実現できるとして話題となりました。

そして2023年、NeRFの登場からわずか数年で、3D再構成技術はさらなる進化を遂げます。3D Gaussian Splatting は、NeRFを超える高速なレンダリング速度を実現し、リアルタイムアプリケーションへの応用可能性を広げました。

さらに、拡散モデルを用いた3D再構成技術も登場しました。コロンビア大学とToyota Research Instituteが発表したZero1-to-3は、テキストから3Dモデルを生成するなど、従来技術では不可能であったタスクを可能にしました。Stability AIは、Zero1-to-3をさらに発展させたStable Zero123を発表し、その可能性に注目が集まっています。Googleもまた、CAT3Dと呼ばれる拡散モデルベースの3D再構成技術を発表し、高品質な3Dモデル生成を実現しています。

3D技術年表

年表として表すと以下のようになります。

年代 技術 概要 イメージ
1850~ 地上写真測量 地上に設置されたカメラで水平に物体を撮影する測量方法
1900~ 空中写真測量 航空機を用いて空中から対象物を撮影する測量方法
1970~ LiDAR 対象の物体や空間にレーザー光を照射する測量方法
1980~ SfM 複数の画像から物体の3D形状とカメラの動きを同時に推定する方法
2020~ NeRF ニューラルネットワークを応用した3Dシーンの表現
2023~ 3DGS ガウス分布を応用した3Dシーンの表現
2023~ Diffusion Model 多角画像をDiffusionモデルによって生成し、NeRFや3DGSと組み合わせる手法

SfMイメージ出典, NeRFイメージ出典, 3DGSイメージ出典

2. 注目技術の詳細:より深く理解する

ここでは、1章でご紹介した各手法について詳しく紹介します。
数式的な解説は省いているため、興味がある方は参考文献として貼っている論文やリポジトリを確認いただけると幸いです。

従来手法:フォトグラメトリ、SfM:Structure from Motion、LiDAR(Light Detection And Ranging)


画像出典

フォトグラメトリとは?

フォトグラメトリは、複数の画像を元にして3Dモデルを生成する技術です。複数のオーバーラップする画像を撮影し、それらを解析・処理することで精密な3D空間モデルを作ります。この技術は、遡ると19世紀ごろのカメラの発明と同時期から存在していました。その後、気球や航空機の発明により空上からより広域な対象を3次元データ化できるようになりました。そして、現在はドローンと地上撮影を組み合わせることが一般的で、犯罪現場の検証や精密農業など、さまざまな分野で利用されています。

LiDARとは?

LiDAR(ライダー)は、「Light Detection And Ranging(光による検知と測距)」の略称であり、3Dレーザースキャンとも呼ばれる技術です。LiDARでは、対象の物体や空間にレーザー光を照射し、反射された光がセンサーで捉えられるまでの時間を測定して、高精度な距離情報を得ることができます。

主な違い—天候の影響・コスト・色

LiDARとフォトグラメトリーの大きな違いの一つは、LiDARが独自の光源を使用する点です。そのため、LiDARは天候の影響を受けにくい特長があります。対照的に、フォトグラメトリーは自然光に依存するため、曇りや日照条件の変動によってデータの質が左右されます。LiDARは特に植生や細いケーブルなど、フォトグラメトリーでは難しい物も高精細にキャプチャできます。

また、LiDARは高コストであることが課題です。多くの場合、専門企業に依頼する必要があります。一方フォトグラメトリーはコストの調整が可能であり、業務用カメラだけでなく、一般用のカメラを使うことも可能です。

加えて、フォトグラメトリーはカラー化された点群やテクスチャメッシュ、オルソモザイクなど多様なアウトプットを得ることができますが、LiDARで得られるのは基本的に点群データのみです。

SfMとは?

SfMは、複数の画像を元にして3Dモデルを生成する技術です。複数のオーバーラップする画像を撮影し、それらを解析・処理することで精密な3D空間モデルを作ります。この技術は、遡ると19世紀ごろのカメラの発明と同時期から存在していました。その後、気球や航空機の発明により空上からより広域な対象を3次元データ化できるようになりました。そして、現在はドローンと地上撮影を組み合わせることが一般的で、犯罪現場の検証や精密農業など、さまざまな分野で利用されています。

Neural Network Radiance Field(NeRF)とは?


画像出典
概要

NeRFは、ニューラルネットワーク(人間の脳の神経細胞を模倣した仕組み)を使って3Dシーンの光場(色と輝度)を表現・再構築する技術です。人間の目に見える形でシーンの各点がどのように光を反射するかをモデル化するため、自由な視点からの高解像度画像を生成することが可能です。

https://arxiv.org/abs/2003.08934

基本原理:

  1. 入力:
    • 2D画像(異なる視点から撮影された画像セット)
  2. ニューロンネットワークの訓練:
    • これらの画像を基にして、シーン内の各点の位置(Position: 上図x, y, z)と視点(Directtion: 上図θ, Φ)、ある視点からの色(上図Color)と密度(上図Density)(≒透過具合)を推測したデータをネットワークに投入し、光の挙動を学習させます。
  3. 出力:
    • モデル化された3Dシーンから新しい視点の画像を生成

メリット

  • 高精度な3D再構築が可能
  • 限られた数の2D画像からでも、リアルな3Dモデルを作成
  • 動的に視点や光源を変えてもリアルな画像を生成可能

デメリット

  • 最低でも30秒程度描画に時間がかかってしまうため、リアルタイムレンダリングとして使うには厳しい。
  • 学習に最低でも数時間かかってしまう。
  • 学習のために画像が複数枚必要。
    • 画像は多ければ多いほど良いが、画像によってはノイズになってしまうため、調整が困難。

3D Gaussian Splatting(3DGS)とは?

3D Gaussian Splatting
画像出典

概要

3D Gaussian Splattingは、物体やシーンを3次元空間内で効果的に表現し、視覚的に描写する手法の一つです。この手法は3Dデータを視覚的にレンダリングする際に使用され、Gaussian(ガウス)分布を利用してリアルな画像を生成します。

https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_high.pdf

基本原理

3D Gaussian Splattingの基本原理は、3Dポイントクラウド(点群データ)を一連のガウス分布で近似し、それをレンダリングすることにあります。各点は、画素の色と透明度をガウス関数に基づいて広げることで、スムーズなレンダリングを実現します。具体的には以下のステップを踏みます:

  1. 入力: 2D画像(異なる視点から撮影された画像セット)
  2. データ収集: 入力画像を元にSfMにより点群データを取得します。
  3. ガウスフィッティング: 各点に対してガウス分布を割り当てます。
  4. 出力: ガウス分布を利用して、3D点群を画像平面に投影し、リアルなビジュアルエフェクトを生成します。

メリット

  • リアルタイムレンダリング: ガウス分布を使用した点群レンダリングは効率的であり、リアルタイム処理が可能です。
  • スムーズな描写: 個々の点を一連のガウス分布で広げることで、画像のスムーズな描写を実現します。
  • 汎用性: 3D Gaussian Splattingはさまざまな3Dレンダリング用途に適用可能です。

Multi-view Diffusion Model ベースの手法とは?


画像出典

Multi-view Diffusion Modelをベースとしたモデルは、様々な視点からの画像データをサンプルとして生成し、3D生成モデルの性能を向上させる手法です。この手法は論文毎に表記が異なり、まだ決まった名称はつけられていない認識です。画像ではGoogleより発表されたCAT3Dを一例として出しています。他にもZero-1-to-3やその派生モデルなどがあります。
以下に各項目について詳しく説明します。

概要

  • 訓練済みStable Diffusionを使い、単一画像から新たな視点画像を合成し、3次元復元を行う研究
  • 大規模拡散モデルにカメラビューを取り込み、強いゼロショット性能を活用することで未知の視点を外挿する
  • 3次元復元として明示的に訓練されていないにもかかわらず、従来の手法よりを凌駕する結果。動画生成やグラフィックスに応用可能

Multi-view Diffusion Model(多視点拡散モデル)は、異なる視点から取得された複数の画像データセットを利用して、高精度な予測や生成タスクを達成するための深層学習モデルの一種です。この手法は、単一視点では得られない情報を統合し、よりリッチな特徴を抽出することができるため、特に複雑な三次元構造を持つ物体の認識や生成において有効です。

基本原理

基本原理は、複数の視点から取得されたデータを取り込み、それらを統合して、三次元情報の理解を深める点にあります。拡散モデルは、この統合プロセスにおいて、有向グラフのノードとして各視点を扱い、ノード間の情報の伝搬(拡散)を通じて最適な予測を行います。

  1. 入力: 2D画像(異なる視点から撮影された画像セット)
  2. 前処理と特徴抽出: 各視点からのデータの前処理を行い、それぞれの視点からの特徴を抽出。
  3. データ統合: 拡散モデルによって、異なる視点の情報を統合し、リッチな三次元特徴空間を構築する。
  4. 学習と予測: 三次元特徴空間を基に最適なモデルを学習し、予測を行う。

メリット

  • 高精度な予測: 複数の視点から情報を取り込むため、単独の視点よりも正確な予測が可能。
  • リッチな特徴抽出: 3D構造を捉えやすく、高次特徴空間を形成。
  • 応用が広い: さまざまな分野での利用が進んでいる(例:医療、エンターテインメント、画像解析)。
  • ロバスト性:異なる視点からのデータを利用することで、ノイズに対するロバスト性が向上します。

デメリット

  • 高い計算コスト: 複数の視点から得られるデータを統合するため、計算コストが高くなる。
  • 多数のデータを必要とする: 多視点データの収集が求められるため、データ収集のコストや手間がかかる。
  • 複雑なモデル構築: モデル構築が複雑で、設定や調整に多くの労力が必要。

定量評価指標について

プロジェクトでは、定量評価指標によって評価していたため、そちらもいくつかご紹介したいと思います。3次元復元関連の論文を調査した結果、基本的には点群間距離の誤差を算出するような指標が使われていました。その中でもいくつかの指標をピックアップし、その概要、メリットとデメリットを表形式でまとめてご紹介します。

Root-Mean-Squared-Error (RMSE) Wasserstein Distance Hausdorff Distance
概要 二乗平均平方根誤差。
点群間の誤差を算出する指標。
3次元空間を扱う際にはスタンダードな評価指標。
別名Earth Mover's Distance (EMD)。
分布間の距離を測る指標。
集合間の距離を算出する関数。
メリット 計算量が少ない。 可変長の点群を比較可能。 スタンダードな評価指標。
可変長の点群を比較可能。
Wasserstein Distanceよりは計算量が少ない。
デメリット 外れ値の影響を受けやすい。 計算量が非常に多い。
点群を適切かつ慎重に前処理する必要がある。
計算量が多い。

3. 事例紹介:現実世界での応用事例

現実世界で応用されている事例をいくつか列挙します。


自動運転のためのNeRFとGaussian Splattingの応用
日本において自動運転の研究開発で有名なTuringさんの記事です。
自動運転分野における、NeRF・3DGSの応用についてまとめられています。


バーチャルプロダクションの映像制作時間を大幅に短縮
ソニーさんでは、AI技術「NeRF」を用いることで、従来のフォトグラメトリーに比べ大幅に少ない画像枚数と時間で、任意の視点から見た映像を制作するバーチャルプロダクションを実現しました。


ECサイトでの3D新技術を用いたCX向上
生協宅配事業の全国の組合員様向けのECサイトにおいて、3Dモデルの新技術「3D Gaussian Splatting」を活用した事例です。この技術により、人間が着用した状態のトータルコーディネートを再現することが可能となり、顧客体験(CX)の向上を図っています。

4. 所感と今後の展望

所感

NeRF、3DGS、Diffusion Modelを応用したモデルの比較を表形式でまとめました。

精度 速度 入力画像の枚数 対象 実際の出力
NeRF ★★★ ★★☆ ★☆☆ 単一・3Dシーン
3DGS ★★☆ ★★★ ★☆☆ 3Dシーン
Diffusion Model ★★★ ★★★ ★★★ 単一・3Dシーン

※対象:オブジェクト(単一)生成、背景込み(3Dシーン全体)生成のどちらが得意か。

どの手法・モデルでも出力の質が入力データに左右される

  1. 単一のオブジェクトを3次元化したい時は背景を除去した方が良い
    複雑な背景のシーンを3次元化するのはまだ難しそうでした。そのため、試しに入力として背景を除去した画像を渡したときは、良さそうな出力が得られていました。
  2. 入力として与える画像は、特定の角度の方が良い
    斜め方向ではなく、前後左右方向の画像の方が良い結果が得られました。
  3. 誤差は数センチ程度
    実寸大換算で数センチ単位の誤差は出てしまうため、ミリ単位の誤差が許されないようなシーンでの活用には適していないと思いました。

推論時間とクオリティがトレードオフになりがち
これは一般的な機械学習モデルでも同様ですが、やはり推論時間とクオリティを同時に担保するのは難しかったです。実際に、現状の3D生成・復元モデルの推論には、それなりのGPU環境でなければ実用性のある速度は出せなかったです。

元画像があった方がイメージに近い
Text-to-3dよりもImage-to-3dの方がイメージに近いものが生成されていました。これは、text-to-imageよりもimage-to-imageの方がイメージに近いものが生成されるのと似ていて、割と腑に落ちる結果だと思っています。

今後の展望

ディティールも表現できるようになりつつある

従来の3D表現手法は、オブジェクトの形状やテクスチャを詳細にモデリングする必要があり、膨大な時間と労力を要しました。しかし近年、NeRF (Neural Radiance Fields) や Gaussian Splatting、さらにはDiffusion Model といった技術が登場し、それらを組み合わせることで、より高精細な3Dシーンを効率的に表現することが可能になりつつあります。

スピードと精度のトレードオフがなくなりつつある

先月発表されたStableFast3Dのように、3Dシーン表現におけるレンダリング速度と精度のトレードオフを大きく改善しつつあります。3D生成技術はまさに進化し続けている技術であり、今後さらなる高速化・高精度化が期待されます。

5. まとめ

AI技術は確固たる進展を見せ、我々の未来の可能性を広げ続けています。特にText to 3DやImage to 3Dの発展は、さまざまな分野における次世代のクリエイティビティと効率化を推進する鍵になると感じています。この3D表現技術の革命がどのように日常を変革していくのか、これからの発展に期待しています。

生成AIを活用したPoCや支援にご興味があれば、以下リンクよりお問い合わせください。
https://givery.co.jp/lp/ai-lab/

参考

フォトグラメトリ

https://www.jstage.jst.go.jp/article/jsprs/60/3/60_92/_pdf
https://www.jstage.jst.go.jp/article/jsprs/60/3/60_95/_pdf/-char/ja
https://www.jstage.jst.go.jp/browse/jsprs/60/3/_contents/-char/ja

関連技術

https://github.com/Stability-AI/stable-fast-3d
https://machinelearning.apple.com/research/single-stage-diffusion
https://arxiv.org/pdf/2310.15110
https://github.com/cvlab-columbia/zero123

網羅的なサーベイ論文・GitHubリンク

https://arxiv.org/pdf/2407.08137
https://github.com/cwchenwang/awesome-3d-diffusion
https://github.com/ActiveVisionLab/Awesome-LLM-3D

Givery AI Lab

Discussion