Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deep 3D Reconstruction / Completion

neno
June 04, 2021

Deep 3D Reconstruction / Completion

深層学習ベースの3D Reconstruction / Completionの手法およびデータセットの紹介。過去の有名どころから最新の手法まで。

データセット

NYU (ECCV 2012)
ShapeNet (arxiv only)
ModelNet (CVPR 2015)
SUN CG (CVPR 2017)
ScanNet (CVPR 2017)
Pix3D (CVPR 2018)
Scan2CAD (CVPR 2019 Oral)

手法

3D ShapeNets: A Deep Representation for Volumetric Shapes (CVPR 2015)
3D-R2N2 (ECCV 2016)
Semantic Scene Completion from a Single Depth Image (CVPR 2017)
Pixel2mesh (ECCV 2018)
Im2struct (CVPR 2018)
Occupancy Networks (CVPR 2019)
Mesh R-CNN (ICCV 2019)
PIFu (ICCV 2019)
RevealNet (CVPR 2020)
CoReNet (ECCV 2020)
RfD-Net (CVPR 2021)

neno

June 04, 2021
Tweet

More Decks by neno

Other Decks in Technology

Transcript

  1. 自己紹介 1 • 電気通信大学大学院 修士2年 • 研究テーマ : 食事の3次元復元 などなど。

    • 好き: ドール, 一眼レフ, C# 何縫ねの。 Hungry networks: 3D mesh reconstruction of a dish and a plate from a single dish image for estimating food volume (ACM MM Asia 2020) https://dl.acm.org/doi/10.1145/3444685.3446275 とかやってます。 GitHub: github.com/nenoNaninu blog : blog.neno.dev
  2. 目次 2 • タスク • Object reconstruction/completion • Semantic Scene

    completion • Semantic instance completion • 指標 • IoU/Chamfer distance/AP/mAP • データセット • NYU (ECCV 2012) • ShapeNet (arxiv only) • ModelNet (CVPR 2015) • SUN CG (CVPR 2017) • ScanNet (CVPR 2017) • Pix3D (CVPR 2018) • Scan2CAD (CVPR 2019 Oral) • 手法 • 3D ShapeNets: A Deep Representation for Volumetric Shapes (CVPR 2015) • 3D-R2N2 (ECCV 2016) • Semantic Scene Completion from a Single Depth Image (CVPR 2017) • Pixel2mesh (ECCV 2018) • Im2struct (CVPR 2018) • Occupancy Networks (CVPR 2019) • Mesh R-CNN (ICCV 2019) • PIFu (ICCV 2019) • RevealNet (CVPR 2020) • CoReNet (ECCV 2020) • RfD-Net (CVPR 2021)
  3. Object reconstruction/completion 4 • 物体の三次元再構成。 • 0から復元する手法/不完全なスキャンや欠損のある物体の穴埋めする手法が存在。 • 入力はRGB/RGB-D/Depth/voxel/point cloudなどいろいろ。

    • 手法の大まかな分類。 • volumetric space (三次元空間上の場)の 何某かを予測するもの。 • differentiable renderingを用いるもの。 • Mesh templateを用いるもの。 • オブジェクトのクラスは分類したり しなかったり。 [16]から引用
  4. Semantic Scene completion 5 • シーンの三次元再構成。 • シーン内の物体はもちろん、壁や床なども。 • 入力はRGB/RGB-D、もしくは複数のRGB-DをFusionしたもの

    が多い。 • Object completionと違って クラス分類は必須。 • 出力はだいたいボクセル。 • Retrievalやalignmentなどが 結構身近なところにある。 [5]から引用
  5. Semantic instance completion 6 • Semantic Scene completionはインスタンスは区別しない。 • Semantic

    instance completionはインスタンスレベルで認識。 • オブジェクトの向きなども推論したりする。 [17]から引用
  6. 指標 7 • Volumetric IoU • 3D objectの重なり具合。 • 2DのIoUのそのままんま3次元版。

    • Chamfer distance • 一方のobjectの表面からもう一方のmeshの表面までの最短距離の平均。 • 距離、と言っているわりに計算方法の都合上、 object表面AからBとBからAで値が一致しなかったりする。 • AP/mAP • 良くある他のタスクと同じ。
  7. NYU (ECCV 2012) [1] 9 • アノテーション付き1449枚のRGB-D屋内画像。 • ピクセルレベルのオブジェクトレベルのクラスアノテーション。 •

    [R i , R j , type]という形でsupport もアノテーションされている。 • R i がサポートされているオブジェクト • R j がサポートしているオブジェクト • typeがサポートのされ方:below(e.g. cup on table), behind(e.g. picture on a wall) • https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html [1]から引用
  8. ShapeNet (arxiv 2015) [2] 10 • https://shapenet.org/ • 大量のラベル付きCADモデル。 •

    デファクトスタンダード。Object completionの場合はだいたいコレ。 • ベンチには3D-R2N2でvolumetric/renderingしたものが良く 使われる。 [2]から引用
  9. ModelNet (CVPR 2015) [3] 11 • https://3dshapenets.cs.princeton.edu/ • 3D ShapeNets(CVPR

    2015)の論文で発表されたデータセット。 • あんまり使われている印象がない。 [3]から引用 [3]から引用
  10. SUNCG (CVPR 2017) [4] 12 • Semantic Scene Completion from

    a Single Depth Imageのために構築 された屋内CGデータセット。 • ひと昔前の論文ではよく使用されているものの、公開停止されている。 [4]から引用
  11. Scan2CAD (CVPR 2019 Oral) [7] 15 • ScanNetのシーンデータセット中の家具領域にShapeNetの CADモデルを手動でalignしたデータセット。 •

    シーン内のモデルとCADモデルは完全に一致してはいない。 • depthの表面だけではないのでcompletion系にも使われたり。 • https://youtu.be/PiHSYpgLTfA&t=59s [7]から引用
  12. 3D ShapeNets: A Deep Representation for Volumetric Shapes (CVPR 2015)[3]

    17 • Task: 深度画像からのcompletion, recognition • Convolutional Deep Belief Networkを使用。 • 損失関数じゃなくてエネルギー関数が登場する。 • 深度画像から表面、見えてない領域、空っぽの領域で ある事を示すvolumetric grid表現を生成。 • このあたりは今でも通じる所がある。 • 引用数: 2646 [3]から引用 [3]から引用
  13. 3D-R2N2 (ECCV 2016) [8] 18 • Task: object completion •

    初のDeep Conv Netを使った、object completionを行う研究。 • RNNベース。 • 1枚以上の画像を入力にとり、精度向上を図る。 • 最終的な出力はvoxel occupancy map • 引用数: 897 [8]から引用
  14. 3D-R2N2 (ECCV 2016) [8] 19 • 2D Convで得られた特徴量は各セルに入力される。 • 3D-LSTMは各セルの数だけ存在する。

    • つまり、解像度がN3の場合、N3個の3D-LSTMが存在する。 • ロスはvoxel-wise cross entropy • 実質binary cross entropy [8]から引用
  15. Semantic Scene Completion from a Single Depth Image (CVPR 2017)

    [4] 20 • Task: Semantic Scene completion • 入力: 深度画像のみ。 • 出力: ボクセル。 • Occupancy + semantic labels • Semantic Scene completionを行った 最初の研究。 • 学習のためにSUNCGデータセットを作成。 • 公開停止に。 • 引用数: 696 [4]から引用
  16. Semantic Scene Completion from a Single Depth Image (CVPR 2017)

    [4] 21 深度画像を 3D volumeに エンコードしてから入力 Camera view frustum内の Occupancy, class probability を推論 RGBは使わない。 [4]から引用
  17. Semantic Scene Completion from a Single Depth Image (CVPR 2017)

    [4] 22 • depthのエンコードもただ単にTSDFを使うだけではない。 • Flipped TSDFの提案。 • 値の変化が物体表面だけで起こるように工夫。勾配的にはこっちのほ うが良いでしょう。 [4]から引用
  18. Semantic Scene Completion from a Single Depth Image (CVPR 2017)

    [4] 23 • dilation-based 3D Convを使って受容野を拡大し、より多くの コンテキストを拾えるようにすることで精度を向上させる。 [4]から引用
  19. Pixel2mesh (ECCV 2018) [9] 24 • Task: object completion •

    入力: RGB画像, カメラパラメータ • GCNを使って、Mesh templateの頂点位置を移動させる事で 再構成を行う。 • Meshはエッジとノードから成るので実質グラフ。 • ノードの数を増やしてmeshとしての解像度を高める。 • 引用数: 460 [9]から引用
  20. Pixel2mesh (ECCV 2018) [9] 25 • 頂点の位置に対応した画像の特徴量と、前のレイヤーのグラフ の頂点の位置と特徴量を使って変形。 • 頂点と画像の位置合わせにカメラパラメータが必要。

    Image featureから poolingしてきたもの 前のレイヤからの ノードの座標 前のレイヤの ノードの特徴量 ノードに対応する画像の 座標から特徴量をpool [9]から引用
  21. Im2struct (CVPR 2018) [10] 27 • Task: 単一画像からの3Dの構造の復元。 • 3Dの構造物を立方体の組み合わせで表現。

    • 階層構造になった表現で復元されるため、パーツ間の関係が分かる。 • 階層的に復元する部分はGRASS (SIGGRAPH 2017) という研究がベース • RvNNと呼ばれるデコーダ部分の基本的な作りは同じ。 • この研究はエンコーダ部分を画像用に挿げ替えた感じ。 • 引用数 53 失敗例 [10]から引用
  22. Im2struct (CVPR 2018) [10] 28 マスクを推論することで 構造を理解しやすくなる Domain-adaptationが しやすくなる効果も。 全体の特徴量と

    細かな特徴を別々に抽出。 RvNNを使って、画像から抽出された特徴量から 再帰的に階層構造のグラフを作成 ネットワーク [10]から引用
  23. Im2struct (CVPR 2018) [10] 30 RvNNの構造 Boxのパラメータ。 これだけ葉 次のノードに伝播する特徴量と 対称性を示すパラメータ

    [11]から引用 となりあう要素 それぞれの特徴量 葉にたどり着くまで 再帰的に推論 [10]から引用
  24. Occupancy Networks (CVPR 2019) [12] 31 • Task: object completion

    • 入力: RGB/point cloud/voxel • Latent spaceに落とし込めればOK。 • 今まで3D Convでvoxelのような離散化した形でoccupancyを 推論していたが、この研究では実数値(連続)を入力に occupancyを推論。 • 引用数: 430 連続的 実質2値分類 離散的 Occupancy flow(ICCV 2019), Convolutional Occupancy Networks (ECCV2020 spotlight) などいろいろやってるグループ。 [12]から引用
  25. Occupancy Networks (CVPR 2019) [12] 32 • ネットワークは極めてシンプルなencoder decoderモデル。 観測値

    (要するに画像等) 観測と三次元の座標から Occupancyを推論 0: オブジェクトの外側 1: オブジェクトの内側
  26. Occupancy Networks (CVPR 2019) [12] 33 • 連続的なvolumetric spaceからどうやって3D objectを取り出

    すか。 • 閾値に従って境界面を見つけていく。 • 最終的にはMarching Cube 一番最初は粗い解像度 赤い点は閾値以上 (つまり物体の内側) 赤い点と緑の点の間に 境界面があると分かる オブジェクトの境界面の 解像度のみを高めて再度推論 新たな境界面が判明… というのをN回やる。 最終的に高い解像度での 境界面が得られる。 [12]から引用
  27. Occupancy Networks (CVPR 2019) [12] 34 • パラメータ数と精度 精度もさる事ながら、 パラメータ数が解像度に

    影響されないので素敵 3D Convでボクセルを出力する場合 普通パラメータ数が爆発する [12]から引用
  28. Mesh R-CNN (ICCV 2019) [13] 36 • Task: Object completion

    + Detection • 入力: RGB/camera intrinsic • リアル画像に適用していい感じの精度が得られている。 • 今までの研究はShapeNetなどの単体オブジェクトの合成画像 • Mesh R-CNNはPix3Dでも実験。 • 動的にMesh Templateを作成、 それをPixel2Meshと同様にGCNに通し、 詳細なMeshを生成。 • 引用数: 130 [13]から引用
  29. Mesh R-CNN (ICCV 2019) [13] 37 動的にMesh templateを生成 Pixel2Mesh同様 GCNで頂点位置をrefine

    Pixel2Mesh同様 Meshの頂点位置に対応する 画像の特徴量を活用 Pixel2Meshを知っていれば理解は簡単。 [13]から引用
  30. Mesh R-CNN (ICCV 2019) [13] 38 • Triangle meshでlossを取るのは難しいので、Mesh表面から点 群をサンプリングしてロスを取る。

    Mesh Loss 2つの点群から最小距離の 点のペアの集合を定義 Chamfer-distanceの損失項 法線の損失項 エッジの損失項 これが面白い
  31. Mesh R-CNN (ICCV 2019) [13] 39 • エッジ損失を加える事でself-intersectionがだいぶ防げる。 • 最高精度出すにはエッジ損失

    は邪魔。だけどアプリとかに 使うにはbestじゃなくて prettyの方が良い。 [13]から引用
  32. PIFu (ICCV 2019) [14] 41 • Task: 人型限定のcompletion. • PIFuHDとかHuman

    Digitization系で続編(?)がいろいろある。 • http://www-scf.usc.edu/~saitos/ • 手法は別に人型に限定したものではない(Skelton必要としたりしない) • 一枚の画像から3D surfaceとtexture(頂点カラー)の両方を推論。 • Occupancy Networksと同様の陰関数表現。 • meshの抽出とかは概ね同じ。概ね。 • 複数画像の入力にシンプルに対応。 • 引用数: 236 [14]から引用
  33. RevealNet(CVPR 2020) [15] 46 • Task: semantic instance completion •

    入力: RGB-D/ RGB-DをFusionしたもの • Completionを同時に学習する事でdetectionの精度を超える。 • 引用数: 8 • 3D-SISは146 3D-SIS(CVPR2019 oral)と同じ著者。 [15]から引用
  34. RevealNet(CVPR 2020) [15] 47 1. RGB-Dを入力 2. object bounding boxesの回帰

    3. クラス分類 4. complete object geometryの推論 おおよその処理の流れ。 [15]から引用
  35. RevealNet(CVPR 2020) [15] 48 おおよその処理の流れ。 DepthはTSDFにエンコード RGBは2D convで特徴量を 抽出した後、back-projectで 3D

    volume gridに射影 anchor baseの物体検出 2回のRPNはそれぞれAnchorの サイズが違う。 検出されたbboxの領域から クラス分類 要するに各グリッドに 対応するピクセルを カメラ行列を用いて計算。 微分可能 Cropした領域のボクセル単位の occupancyを推論。 Geometry全体のloss [15]から引用
  36. CoReNet(ECCV 2020) [16] 50 • Task: object completion • 入力:

    RGB画像, camera intrinsic • One stageで複数オブジェクトの再構成を達成。 • 既存の研究では単一オブジェクトを オブジェクト座標系で復元していた。 • CoReNetではRoI Poolingなど無しに 相対位置を保持したまま復元。 • OccNetなどの良さと3D Convの 良さがいい感じに融合してる。 • 引用数: 4 [16]から引用
  37. CoReNet(ECCV 2020) [16] 52 Ray traced skip connections • いままで3D->2Dの逆変換をエンコーダに頼っていた。

    • 3D->2Dの逆変換は定式化されている • その知識をネットワークに利用。 発想はPixel2MeshやPIFuと ほとんど同じ。 (だと勝手に思っている) [16]から引用
  38. RfD-Net (CVPR 2021) [17] 56 • Task: semantic instance completion

    • 入力: point cloud • 既存の研究ではdepthやpoint cloudをTSDFなどのvolumeに 変換してから3D Convをしていた。 • 点群を直接扱う。ボクセル化しない。 Total3DUnderstanding(CVPR2020 oral)と同じ著者。 Total3DUnderstandingと比較するとだいぶスッキリな手法 [17]から引用
  39. RfD-Net (CVPR 2021) [17] 57 VoteNet(CVPR2020) ベースの検出器 ネットワーク 最終的な出力は Occupancy

    学習時は検出した オブジェクトの 上位いくつかだけを ピックアップ。 領域内の点群の Alignment/正規化 推論時は 3D NMS [17]から引用
  40. RfD-Net (CVPR 2021) [17] 58 Shape Generation M p はクラスタ内の点の数

    D p は特徴量の次元 N d はobject proposalの数 背景とかの余計な 情報を削ぐ Occupancy Networks とほぼ同じ。 検出器で得られたproposal毎の 特徴量をskip connectionで伝播 [17]から引用
  41. References 60 • [1] N. Silberman, D. Hoiem, P. Kohli,

    and R. Fergus, “Indoor segmen-tation and support inference from rgbd images,” Proc. of EuropeanConference on Computer Vision, 2012. • [2] A.X. Chang, F. T., L. Guibas, P. Hanrahan, Q. Huang, Z. Li,S. Savarese, M. Savva, S. Song, H. Su, J. Xiao, L. Yi, and F. Yu,“Shapenet: An information- rich 3d model repository,” 2015. • [3] Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang, and J. Xiao, “3D ShapeNets: A deep representation for volumetric shapes,” Proc.of IEEE Computer Vision and Pattern Recognition, 2015 • [4] S. Song, F. Yu, A. Zeng, A.X. Chang, M. Savva, and T. Funkhouser,“Semantic scene completion from a single depth image,” Proc. ofIEEE Computer Vision and Pattern Recognition, 2017 • [5] A. Dai, A.X. Chang, M. Savva, M. Halber, T. Funkhouser, andM. Niessner, “Scannet: Richly-annotated 3d reconstructions of in-door scenes,” Proc. of IEEE Computer Vision and Pattern Recogni-tion, 2017 • [6] S. Xingyuan, W. Jiajun, Z. Xiuming, Z. Zhoutong, Z. Chengkai,X. Tianfan, J.B. Tenenbaum, and W.T. Freeman, “Pix3d: Datasetand methods for single-image 3d shape modeling,” Proc. of IEEEComputer Vision and Pattern Recognition, 2018 • [7] A. Avetisyan, M. Dahnert, A. Dai, M. Savva, A.X. Chang, andM. Niessner, “Scan2cad: Learning cad model alignment in rgb-dscans,” Proc. of IEEE Computer Vision and Pattern Recognition,2019. • [8] C.B. Choy, D. Xu, J. Gwak, K. Chen, and S. Savarese, “3D-R2N2: Aunified approach for single and multi-view 3d object reconstruction,”Proc. of European Conference on Computer Vision, 2016 • [9] N. Wang, Y. Zhang, Z. Li, Y. Fu, W. Liu, and Y.G. Jiang,“Pixel2mesh: Generating 3d mesh models from single rgb images,”Proc. of European Conference on Computer Vision, pp.52–67, 2018. • [10] C. Niu, J. Li, and K. Xu, “Im2struct: Recovering 3d shape structurefrom a single rgb image,” Proc. of IEEE Computer Vision and PatternRecognition, 2018. • [11] J. Li, K. Xu, S. Chaudhuri, E. Yumer, H. Zhang, and L. Guibas,“Grass: Generative recursive autoencoders for shape structures,”ACM Transactions on Graphics (Proc. of SIGGRAPH), 2017 • [12] L. Mescheder, M. Oechsle, M. Niemeyer, S. Nowozin, and A. Geiger,“Occupancy Networks: Learning 3d reconstruction in functionspace,” Proc. of IEEE Computer Vision and Pattern Recognition,pp.4460–4470, 2019. • [13] G. Gkioxari, J. Malik, and J. Johnson, “Mesh R-CNN,” Proc. of IEEEInternational Conference on Computer Vision, pp.9785–9795, 2019 • [14] S. Saito, Z. Huang, R. Natsume, S. Morishima, A. Kanazawa, andH. Li, “PIFu: Pixel-aligned implicit function for high-resolutionclothed human digitization,” Proc. of IEEE International Conferenceon Computer Vision, 2019 • [15] J. Hou, A. Dai, and M. Nießner, “Revealnet: Seeing behind ob-jects in rgb-d scans,” Proc. of IEEE Computer Vision and PatternRecognition, 2020 • [16] S. Popov, P. Bauszat, and F. V., “Corenet: Coherent 3d scene recon-struction from a single rgb image,” Proc. of European Conference onComputer Vision, 2020 • [17] Y. Nie, J. Hou, X. Han, and M. Niessner, “Rfd-net: Point sceneunderstanding by semantic instance reconstruction,” Proc. of IEEEComputer Vision and Pattern Recognition, 2021.