T.TAO
Back to Blog
/5 min read/Others

CG論文 #2 KinectFusion: Real-time 3D Reconstruction

CG論文 #2 KinectFusion: Real-time 3D Reconstruction

CG Paper #2 KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera

  • Lingheng Tao
  • 2024年10月30日
  • 読了時間 5 分

CG Paper #1 RenderMan: An Advanced Path Tracing Architecture for Movie Rendering CG Papers Content List

#CGPapers#ComputerGraphics#ComputerScience#Research

本稿は Izadi1 et al. の『KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera』の論文共有です。

KinectFusion はユーザーが Kinect カメラを持って室内シーンを素早く再構築できる技術。本論文はマイクロソフトチームが深度カメラで高精度3Dシーン再構築を実現した方法を紹介する。

KinectFusion

このシステムはユーザーが Kinect カメラを動かすことで室内シーンを3Dスキャンし、リアルタイムで幾何学的に正確な3Dモデルを生成する。カメラの6自由度(6DOF)位置を継続的に追跡し、各視点の深度データをグローバル3Dモデルに融合。多視点再構築で画像解像度を向上。元の深度データにノイズや不完全な情報が含まれていても、画像超解像に似たプロセスで補完する。

低コスト手持ちスキャン

Kinect カメラ自体は低コスト。KinectFusion の可搬性とリアルタイム性により、低コストのオブジェクトスキャンツールとして利用可能。ユーザーは異なる角度から素早く物体をキャプチャし、画面上で即座にフィードバックを確認。生成された3Dモデルは CAD や 3D プリントに使用可能。

直接インタラクションによる物体分割

ユーザーは物体を動かすことでシーン内の特定オブジェクトを分割できる(例:テーブル全体ではなく茶碗だけをスキャンしたい場合)。システムはモデルの変化をリアルタイムで監視し、大きな変化を検出すると移動したオブジェクトをマークして分割する。

幾何知覚AR

KinectFusion は幾何知覚の拡張現実をサポート。仮想オブジェクトを3Dモデル上に直接オーバーレイし、実環境と正確に整列。仮想オブジェクトのオクルージョン処理と実シーンの反射の詳細を含む。オクルージョン処理は AR において極めて重要。仮想オブジェクトと実物体のオクルージョンを適切に処理できるかが、仮想オブジェクトの信頼性を決める。

物理シミュレーション

物理シミュレーションにより、KinectFusion は仮想オブジェクトが3Dモデル上で動的にインタラクトすることをサポート。剛体衝突シミュレーションをリアルタイムで実行可能。数千の粒子がシーンモデルとリアルタイムでインタラクトできる。

GPU 実装

メインのシステムパイプラインは4段階:深度図変換 → カメラ追跡 → ボリューム統合 → レイキャスティング。各段階は GPU 上で CUDA によりプログラミングされる。

深度図変換

リアルタイム深度図を画像座標から3D点(vertex)とカメラ座標空間の法線に変換。各ピクセルの深度データを3D空間に投影。Kinect の内部パラメータ行列で深度データを3D空間に再投影。

カメラ追跡

GPU 実装の ICP(Iterative Closest Point)アルゴリズムでカメラの6自由度変換を計算。現在フレームの点を前フレームと整列。この相対変換をグローバル変換行列に逐次適用し、Kinect のグローバル位置を定義。

ボリューム表現と統合

ボクセルグリッドでサーフェス再構築を実現。点群の単純な融合やメッシュ作成ではなく、各ボクセルに物理サーフェスまでの距離値を格納。TSDF(Truncated Signed Distance Function)で格納。512^3 解像度のボクセルグリッドは 512MB のメモリを必要とするが、メモリアライメントにより各 GPU スレッドが結合アクセスでメモリにアクセスでき、スループットが向上。512^3 解像度で約 2ms でボクセルグリッドを更新可能。

レイキャスティング

レイキャスティングでボクセルグリッドから陰的サーフェスを抽出し、ユーザー表示用のビューを生成。各 GPU スレッドがボクセルグリッドに沿って光線を走査し、符号値がゼロになる位置を検出したらサーフェス交点と法線を計算。ライティングレンダリングをサポート。

参考文献:

  1. Paper 原文:https://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15869-f11/www/readings/izadi11_kinectfusion.pdf