2016/06/16 16:00-17:30
主催 中京⼤学⼤学院情報科学研究科／ 企画・運営 橋本研究室

第19回 知的センシングセミナー

Kinect等の色距離センサを用いた
点群処理と3D物体認識
産業技術総合研究所 人工知能研究センター

金崎 朝子

Ubuntu PCをお持ちの方は本チュートリアルをより楽しむために…

1. ROSをインストール
http://wiki.ros.org/kinetic/Installation/Ubuntu ※Desktop-Full推奨
2. 必要なファイルをダウンロード
mydesk.bag（453MB）
https://www.dropbox.com/s/sn0w59sg81bhzm9/mydesk.bag?dl=0
save_pcd.cpp
https://github.com/kanezaki/ssii2016_tutorial/blob/master/save_pcd.cpp
convertpcd2ply.cpp
https://github.com/kanezaki/ssii2016_tutorial/blob/master/convertpcd2ply.cpp
milk.pcd
https://github.com/PointCloudLibrary/pcl/blob/master/test/milk.pcd?raw=true
milk_cartoon_all_small_clorox.pcd
https://github.com/PointCloudLibrary/pcl/blob/master/test/milk_cartoon_all_small_clorox.pcd?raw=true
correspondence_grouping.cpp
https://github.com/kanezaki/ssii2016_tutorial/blob/master/correspondence_grouping.cpp

自己紹介• 2008年3月 東京大学 工学部機械情報工学科 卒業• 2008年4月 東京大学 大学院情報理工学系研究科 修士課程進学• 2010年3月 同学 修士課程修了（情報理工学）• 2010年4月 同学 博士課程進学• 2013年3月 同学 博士課程修了（情報理工学）• 2013年4月 （株）東芝研究開発センター 正規職員

• 2013年12月 東京大学 大学院情報理工学系研究科 助教• 2016年4月 産業技術総合研究所 人工知能研究センター 研究職員

（最近の研究）自律移動ロボットの物体認識• person, chair等の20種類の物体を検出• 物体候補抽出法：
3D Selective Search [Kanezaki+, 2015]
https://github.com/kanezaki/selective_search_3d目的とするロボットアプリケーションシステム

大目標： 実物体インターネット≒実世界G○○gle？

RGBD画像と3D点群

RGB画像
（色画像）

Depth画像（距離画像、深度画像）
３D点群（ポイントクラウド）

Kinectセンサ活用事例研究
医療https://i.ytimg.com/vi/wUEEsYH0zUE/
maxresdefault.jpg

農業
通販

https://i.ytimg.com/vi/Mr71jrkzWq8/maxresdefault.jpg

http://agrifood.jp/2015/12/362/

RGBDデータ活用事例―研究―活用事例(1) 3Dモデリング
DynamicFusion: Reconstruction and Tracking of Non-rigid Scenes in Real-Time.
R. Newcombe, D. Fox, and S. Seitz, CVPR 2015 Best Paper

動画

https://www.youtube.com/watch?v=i1eZekcc_lM

活用事例(2) SLAM
ElasticFusion: Dense SLAM Without A Pose Graph. T. Whelan, S. Leutenegger, B.
Glocker, R. F. Salas-Moreno, and A. Davison, Robotics: Science and Systems (RSS), 2015.

動画

https://www.youtube.com/watch?v=-dz_VauPjEU

活用事例(3) 室内環境モデリング
Structured Indoor Modeling. S. Ikehata, H. Yan, and Y. Furukawa, ICCV 2015 (oral)

動画

https://www.youtube.com/watch?v=RZU8w3uvenU

活用事例(4) 遠隔コミュニケーション
holoportation: virtual 3D teleportation in real-time (Microsoft Research)

動画

http://msrvideo.vo.msecnd.net/galleries/264043/3/264043-000001.jpg
https://www.youtube.com/watch?v=7d59O6cfaM0

お品書き
1. RGBDの歴史– 3D特徴量の紹介– RGBD研究の分類と研究例

2. チュートリアル– 3Dデータの読み込みと表示– Point Cloud Library (PCL)の使い方– その他のオープンソースライブラリの紹介

3. 3D物体認識の最新動向–

ディープラーニングと大規模データセット

4. まとめ3D特徴量の紹介

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース↑
主にPCLに入っているものを紹介する

参考：
3D Model Retrieval Using Probability Density-Based Shape
Descriptors. C. B. Akgül, B. Sankur, Y. Yemez, and F. Schmitt, PAMI, 2009

3D特徴量の紹介
 l• 変換ベースf ( ,  )    clmYl m ( ,  )• 2Dベースl 0 m   l• ヒストグラムベース

Spherical Harmonic Representations
Kazhdan, M., Funkhouser, T., & Rusinkiewicz, S. Rotation
invariant spherical harmonic representation of 3D shapedescriptors. In Proceedings of the Eurographics/ACM SIGGRAPH
symposium on Geometry processing (pp. 156-164), 2003.

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

3Dモデル検索→ http://3d.csie.ntu.edu.tw/~dynamic/

Light Field Descriptor
Ding-Yun Chen, Xiao-Pei Tian, Yu-Te Shen and Ming Ouhyoung, "On Visual Similarity
Based 3D Model Retrieval", Computer Graphics Forum (EUROGRAPHICS'03), Vol. 22,
No. 3, pp. 223-232, Sept. 2003.

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

3D Shape Histograms
Ankerst, M., Kastenmüller, G., Kriegel, H. P., & Seidl, T. (1999, January). 3D shape histogramsfor similarity search and classification in spatial databases. In Advances in Spatial
Databases (pp. 207-226), 1999.

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

Spin Image
Johnson, Andrew E., and Martial Hebert. "Using spin
images for efficient object recognition in cluttered 3D
scenes." Pattern Analysis and Machine Intelligence,
IEEE Transactions on 21.5 (1999): 433-449.

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

ni

n
pi

各点に対して、小球領域に含まれる𝑘近傍点を求め、全ペアの二点間のパラメータ𝛼, 𝜙, 𝜃を求めてヒストグラムを作る。

  ( pi  n)  ni
  (n  pi) / pi  arctan((n  ( pi  n)  ni ), n  ni )PFH

Point Feature Histogram

R. B. Rusu, N. Blodow, Z. C. Marton, and M. Beetz,“Aligning point cloud views using persistent feature
histograms,” in Proc. Int. Conf. Intelligent Robots andSystems (IROS), 2008.

計算量は𝑂(𝑁𝑘 2 )𝑁: 点の数

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

ni

n
pi

各点𝑝に対して、小球領域に含まれる𝑘近傍点を求め、点𝑝と近傍点の二点間のパラメータ𝛼, 𝜙, 𝜃を求めてヒストグラムを作る。

SPFH 𝑝  ( pi  n)  ni
  (n  pi) / pi  arctan((n  ( pi  n)  ni ), n  ni )FPFH Fast Point Feature Histogram
R. B. Rusu, N. Blodow, and M. Beetz, “Fast point
feature histograms (FPFH) for 3-D registration,” inProc. Int. Conf. Robotics and Automation (ICRA),
2009.

計算量は𝑂(𝑁𝑘)
𝑁: 点の数FPFH( p) 
SPFH( p) 1 k 1
  SPFH( pi )k i 1 i

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

視点に依る特徴量⇒姿勢推定に利用②GlobalなFPFH（Extended FPFH）①各点の法線ベクトルと視線方向とのなす角のヒストグラム

VFH

Viewpoint Feature Histogram

R. B. Rusu, G. Bradski, R. Thibaux, and J. Hsu, “Fast 3D recognition and pose using the viewpoint feature
histogram,” in Proc. Int. Conf. Intelligent Robots andSystems (IROS), 2010.

①②

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース

CVFH(1) 物体をパーツ領域に分け、CVFH Clustered Viewpoint Feature Histogram
A. Aldoma, N. Blodow, D. Gossow, S. Gedikli, R. Rusu,
M. Vincze, and G. Bradski, “CAD-model recognition
and 6 DOF pose estimation using 3D cues,” in Proc.
ICCV workshop on 3dRR, 2011

CVFH(2) 各パーツ領域からVFHと同様のヒストグラム（ただし中心点と中心法線ベクトルは各パーツ領域のもの）
を計算し、
CVFH
(3) Shape Distribution
Component (SDC) を計算してヒストグラム化し、VFHと連結する
VFH
SDC
CVFH

3D特徴量の紹介• 変換ベース• 2Dベース• ヒストグラムベース
SGURFを求める：
パーツ領域の中心法線ベクトルから遠い点を削除

OUR-CVFH
SGURFから
viewpoint
法線
空間
ヒストグラム ヒストグラム component

CVFH

SGURF
Oriented, Unique and Repeatable
OUR-CVFH Clustered Viewpoint Feature Histogram
A. Aldoma, F. Tombari, R. Rusu, and M. Vincze, “OUR-CVFH –Oriented, Unique and Repeatable Clustered Viewpoint Feature
Histogram for Object Recognition and 6DOF Pose Estimation”,
in Joint DAGM-OAGM Pattern Recognition Symposium, 2012.

OUR-CVFH
VFH
CVFH

SDC

SGURF

（※厳密ではない）

RGBD研究の分類と研究例

RGBD研究の分類と研究例
修士研究（ロボット学会2008～ICRA2011）はデータ取得に苦労した。
※ICRA2011の論文投稿〆切は2010年9月

MESA SR-4000 TOF sensor
PointGray Flea2
camera176×144 pixel、約100万円
RGBDがタイトルに入っている論文数
250
200

211

急増

150

142

100
75

50
0

2010年11月 Kinect登場
640×480 pixel

0

8

38

2010 ～2011 ～2012 ～2013 ～2014 ～2015

RGBD研究の分類と研究例• ROS 3D Contest

http://www.ros.org/news/2011/02/ros-3d-contest-the-results.html
http://wiki.ros.org/openni/Contests/ROS%203D

Overall:
1st Place ($3000): Customizable Buttons
2nd Place ($2000): Quadrotor Altitude and Obstacle Avoidance
3rd Place ($1000): Humanoid Teleoperation
4th Place ($500): Person Tracking and Reconstruction from a Mobile Base with a 7 DOF Manipulator
Most Useful:
1st Place ($2000): RGBD-6D-SLAM
2nd Place ($1000): Automatic Calibration of Extrinsic Parameters• ICRA2011
Best Vision Paper: Sparse Distance
Learning for Object Recognition
Combining RGB and Depth Information
Kevin Lai, Liefeng Bo, Xiaofeng Ren, and Dieter Fox

初のRGBDデータセット

RGBD研究の分類と研究例
2次元

2.5次元

線画

距離データ Robot

3次元

色なし

Vision

形状データ Graphics

色が
ついた
D次元が
増えた

Partial
data

色あり

RGB画像

RGBD画像

テクスチャ付形状データ

RGBD研究の分類と研究例①

マルチモーダルフュージョン（1/2）
Multimodal templates for real-time detection of
texture-less objects in heavily cluttered scenes
Stefan Hinterstoisser, Stefan Holzer, Cedric Cagniart, Slobodan Ilic,
Kurt Konolige, Nassir Navab, and Vincent Lepetit. IEEE ICCV, 2011.

テクスチャレスな物体を表現するのに表面形状の情報（法線）で補おう

輝度勾配 in 色画像

法線 in 距離画像

テンプレートcan parse a VGA
image with over3000 templateswith about 10 fps
on the CPU

RGBD研究の分類と研究例①

マルチモーダルフュージョン（2/2）
MMSS: Multi-modal Sharable and Specific Feature
Learning for RGB-D Object Recognition
Anran Wang, Jianfei Cai, Jiwen Lu, and Tat-Jen Cham.
IEEE ICCV, 2015.

pre-training

R
G
B

D

multi-modal
feature learning

R
G
B

D

最後のfully-connected層でRGBとDepthが共通部分を持つよう
Deep CNNを学習する

RGBD研究の分類と研究例②

Combining color and shape descriptors for 3Dmodel retrieval. Pasqualotto et al., Signal Processing:Image Communication 28.6, 2013.

点群特徴量＋カラー（1/2）
Color Spin Image

Quantization level:

カラースペースを𝑙段階に分割し各段階の色を持つ点だけを抽出してSpin Imageを作る。
色分けしない点群から抽出する
Spin Imageとあわせて計(𝑙 + 1)個のSpin Imageを抽出し、（各々PCAをかけて）連結する。

1

2

3

…

𝑙

RGBD研究の分類と研究例
Unique signatures of histograms for local surface
description [Tombari et al., ECCV2010]• SHOT記述子②– デファクトスタンダードな3D点群記述子– PCLにも実装されている
各点まわりの局所領域を 8 x 2 x 2 に分割
各領域の法線ベクトル𝒏𝑣𝑖 と点の法線ベクトル𝒏𝑢 の内積𝑐𝑜𝑠𝜃𝑖 = 𝒏𝑣𝑖 ∙ 𝒏𝑢のヒストグラム

A combined texture-shape descriptor forenhanced 3D feature matching[Tombari et al., ICIP2011]• CSHOT記述子– SHOTのカラー版

点群特徴量＋カラー（2/2）

RGBD研究の分類と研究例
The Partial View Heat Kernel Descriptor for 3D
Object Representation [Brandao et al., ICRA2014]– Heat Kernel Signature (HKS) 記述子を、Partial Viewなデータの記述向けに拡張した。
＋テクスチャも考慮cf.) Heat Kernel Signature (HKS)
全周モデル向け。（non-rigidにもrigidにも使える）
各点の記述子は、物体全体の表面形状から計算される。
⇒ 視点が変わると見えてる部分が変わるので、HKSも変わる𝑁

𝑘 𝑣𝑗 , 𝑣𝑠 , 𝑡 = ෍ 𝑒 −𝜆𝑖𝑡 𝜙𝑖,𝑗 𝜙𝑖,𝑠𝑖=1

物体全体表面のLaplace-Beltrami作用素の固有値と固有ベクトル←partial viewになると変化。

③

RGBD研究の分類と研究例
Learning Similarities for Rigid and Non-Rigid
Object Detection [Kanezaki et al., 3DV2014]③– QAPによるグラフマッチングに用いる類似度行列の学習手法を提案した。
– RGBD画像を用いた剛体物体検出と人工モデルの非剛体物体検出を統一的なフレームワークで扱う。

true positive(a) Initial correspondences (b) Selected correspondences (c) Selected correspondences

true positive

false positive

false positive

お品書き
1. RGBDの歴史– 3D特徴量の紹介– RGBD研究の分類と研究例

2. チュートリアル– 3Dデータの読み込みと表示– Point Cloud Library (PCL)の使い方– その他のオープンソースライブラリの紹介

3. 3D物体認識の最新動向–

ディープラーニングと大規模データセット

4. まとめチュートリアル

1. 3Dデータの読み込みと表示

3Dモデルをダウンロードしてみる
http://shapenet.cs.stanford.edu/

たとえばこれとか3Dモデルをダウンロードしてみる
http://shapenet.cs.stanford.edu/

3Dモデルをダウンロードしてみる

3Dモデルをダウンロードして見る• SketchUpをダウンロードして https://www.sketchup.com/ja/download• 先ほどダウンロードした3Dモデル（x-wing.skp）を開く

3Dモデルをダウンロードして見る• ファイル＞エクスポート＞3Dモデル を選択し• ファイルの種類は「OBJファイル(*.obj)」を選んでエクスポートする（x-wing.obj）

3Dモデルをダウンロードして見る• MeshLabをダウンロードして http://meshlab.sourceforge.net/• 先ほどエクスポートしたモデル（x-wing.obj）をドラッグ&ドロップする

3Dモデルをダウンロードして見る• OBJファイル（x-wing.obj）をワードパッド等で開いて見る

マテリアルファイル名

x-wing.mtl
頂点（vertex）
頂点座標
テクスチャ座標
法線ベクトル面（face）
頂点情報

頂点座標値番号/テクスチャ座標値番号/頂点法線ベクトル番号

3Dモデルをダウンロードして見る• OBJファイル（x-wing.obj）をワードパッド等で開いて見る

メッシュ（ポリゴン）：
面にテクスチャが貼られる点群（Point Cloud）：
点に色情報がついている
マテリアルファイル名

x-wing.mtl
頂点（vertex）
頂点座標
テクスチャ座標
法線ベクトル面（face）
頂点情報

頂点座標値番号/テクスチャ座標値番号/頂点法線ベクトル番号

3Dモデルをダウンロードして見る• 点群（Point Cloud）フォーマットはPCLで用いられる.pcdファイル等がメジャー# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z rgb
SIZE 4 4 4 4TYPE F F F F
COUNT 1 1 1 1
WIDTH 640
HEIGHT 480
VIEWPOINT 0 0 0 1 0 0 0
POINTS 307200
DATA ascii
0.93773 0.33763 0 4.2108e+06
0.90805 0.35641 0 4.2108e+06
0.81915 0.32 0 4.2108e+06
0.97192 0.278 0 4.2108e+06
0.944 0.29474 0 4.2108e+06
0.98111 0.24247 0 4.2108e+06
0.93655 0.26143 0 4.2108e+06
0.91631 0.27442 0 4.2108e+06
0.81921 0.29315 0 4.2108e+06
0.90701 0.24109 0 4.2108e+06
0.83239 0.23398 0 4.2108e+06
0.99185 0.2116 0 4.2108e+06
0.89264 0.21174 0 4.2108e+06
0.85082 0.21212 0 4.2108e+06
0.81044 0.32222 0 4.2108e+06
0.74459 0.32192 0 4.2108e+06

注：ASCII版はバグがある
ので、BINARY版を使ってくださいKinectからのRGBD画像・点群を扱う
ここからはROSを使います！
環境• OS：
Ubuntu 16.04• センサ： Kinect v1• 言語： C++

Pythonも使えるので興味のある
人はどうぞ。
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

リアルタイム処理に便利だから

ROSは基本的にUbuntuしかサポートしてないから
14.04でSSIIでは痛い目にあったから

キャリブレーションなくてもそこ
そこ綺麗だから
Kinect v2は境界がボソボソになるから（v2も使えるけどちょっと面倒です）
ASUS XtionでもOKですKinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する
http://wiki.ros.org/kinetic/Installation/Ubuntu に書いてあるとおりにやればよい。
# kineticはROSのバージョンの名前。
# バージョンのサポート情報はこちら http://www.ros.org/reps/rep-0003.html$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >/etc/apt/sources.list.d/ros-latest.list'$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116$ sudo apt-get update$ sudo apt-get install ros-kinetic-desktop-full$ sudo rosdep init
$ rosdep update$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc$ source ~/.bashrc.bashrcに妙なものを書きたくない人は、ターミナル起動するたびに$ source /opt/ros/kinetic/setup.bash を実行すればよい。

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する
KinectドライバをラップしたROSパッケージをインストールする。
$ sudo apt-get install ros-kinetic-openni-launch※最近はOpenNIが提供終了したせい？か、普通には動かない模様。
$ sudo apt-get install ros-kinetic-freenect-launch# 豆知識
Ubuntuパッケージ名は-（ハイフン）、ROSパッケージ名は_（アンダーバー）
Xtionをお使いの方はこちら$ sudo apt-get install ros-kinetic-openni2-launchKinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する
Kinectを挿して、データの取り込みを開始する。
$ roslaunch freenect_launch freenect.launch

Xtionをお使いの方はこちら$ roslaunch openni2_launch openni2.launch

これはこのまま放置して、別のターミナル（ウィンドウ or タブ）を開く。

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する
このチュートリアルでは既に録ってあるデータを再生します。
Kinectを挿して、データの取り込みを開始する。
$ roslaunch$ roscorefreenect_launch freenect.launch

放置して、別のターミナル（ウィンドウ or タブ）を開いて、
Xtionをお使いの方はこちら$ rosbag play mydesk.bag -l$ roslaunch openni2_launch openni2.launch

詳しくは$ rosbag -h

これはこのまま放置して、別のターミナル（ウィンドウ or タブ）を開く。
mydesk.bag（453MB）→

https://www.dropbox.com/s/sn0w59sg81bhzm9/mydesk.bag?dl=0

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

新しいターミナルで、ROSトピックを確認する。
$ rostopic list

たとえばカラー画像のROSトピックがpublishされていることを確認する。
$ rostopic hz /camera/rgb/image_color

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

新しいターミナルで、ROSトピックを確認する。

注：Xtion＋openni2.launchをお使いの方は、カラー画像のROS
トピックが/camera/rgb/image_raw
なので、以下、image_colorを
すべてimage_rawに読み替えてください。

$ rostopic list

たとえばカラー画像のROSトピックがpublishされていることを確認する。
$ rostopic hz /camera/rgb/image_color

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

カラー画像を表示する。
$ rosrun image_view image_view image:=/camera/rgb/image_color

デプス画像を表示する。
$ rosrun image_view image_view image:=/camera/depth/image_raw# rosrun構文
rosrun ＜パッケージ名＞ ＜実行ファイル名＞ ＜コマンドライン引数＞（指定したパッケージの中の実行ファイルを実行しているだけ。）

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

ビジュアライゼーションツールのrvizを起動する。
$ rosrun rviz rviz

$ rosrun rviz rviz

1. Fixed Frameを選ぶ。
camera_depth_frameなど。
3. Topicを選ぶ。
/camera/depth_registered/pointsかな。

4. Styleを選ぶ。Pointsだと軽い。

2. Addをクリックする。
PointCloud2を選択する。

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

自分でROSパッケージを作る。
$ mkdir ~/ros$ export ROS_PACKAGE_PATH=~/ros:$ROS_PACKAGE_PATH

こうすることで~/rosディレクトリ以下のディレクトリがROSのパスに加わる。
$ cd ~/ros$ roscreate-pkg save_pcd pcl_ros cv_bridge$ cd save_pcd~/ros/save_pcdというディレクトリができる。これがsave_pcdパッケージの雛形。
# roscreate-pkg構文
roscreate-pkg ＜今作るパッケージ名＞ ＜依存するパッケージ名＞

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

CMakeLists.txtに下記の一文を加える。
rosbuild_add_executable(save_pcd save_pcd.cpp)

こんなかんじで。

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

save_pcd.cppを置く。
下記からダウンロードしてください。
↓
https://github.com/kanezaki/ssii2016_tu
torial/blob/master/save_pcd.cpp

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する$ make./binフォルダ以下にsave_pcdという実行ファイルができる。

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する$ rosrun save_pcd save_pcd

あるいは$ ./bin/save_pcd

画像（.png）と点群（.pcd）がカレントディレクトリに保存され続けるので、はやめに Ctrl+C して止めてください。

KinectからのRGBD画像・点群を扱う
手順
1. ROSをインストールする
2. Kinect画像を表示する
3. Kinect点群を描画する
4. Kinect点群を保存する
5. 保存したKinect点群を描画する

注：Kineticでは下記をする必要あり！
$ sudo aptitude install pcl-tools

これで/usr/bin/以下にpcl_viewer等が入る$ pcl_viewer 0.pcd“r”キーを押して“5”キーを押すと色付き点群が現れる。
詳しい使い方（ヘルプ）は“h”キーを押す。

PCDファイルを（無理やり）PLYファイルにする
CMakeLists.txtに下記の一文を加える。
rosbuild_add_executable(convertpcd2ply convertpcd2ply.cpp)

実行→$ make$ rosrun save_pcd convertpcd2ply 0.pcd 0.ply

MeshLabでインポート→点群表示→光源OFF
convertpcd2ply.cppを置く。
下記からダウンロードしてください。

↓
https://github.com/kaneza
ki/ssii2016_tutorial/blob/m
aster/convertpcd2ply.cpp

クリック

クリック

真のチュートリアル

2. Point Cloud Library (PCL)の使い方

UbuntuでPCLのインストール• ROSを使わず、PCLだけインストールして使いたい人はこちら。
$ sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl$ sudo apt-get update$ sudo apt-get install libpcl-all• PCLをソースからコンパイルして使いたい人はこちら。
$ git clone https://github.com/PointCloudLibrary/pcl$ cd pcl; mkdir build; cd build$ cmake ..
$ make参考http://pointclouds.org/downloads/linux.html

PCLの公式サイトのチュートリアル
http://pointclouds.org/documentation/tutorials/
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

Basic Usage
Advanced Usage
Applications
Features
Filtering
I/O
Keypoints
KdTreeOctreeRange Images
Recognition
Registration
Sample Consensus
Segmentation
Surface
VisualizationGPU

今回はこれをやってみます。

PCLの公式サイトのチュートリアル
http://pointclouds.org/documentation/tutorials/correspondence_grouping.php#c
orrespondence-grouping
3D Object Recognition based on Correspondence Grouping

シーンから所望の物体を、対応点探索により発見する。

3D Object Recognition based on Correspondence Grouping
手順
1. 自分のROSパッケージを作る
2. 必要なファイルをダウンロードする
3. ちょっとコードを修正してコンパイル
4. 実行
correspondence_groupingという名のパッケージを作る。
$ cd ~/ros$ roscreate-pkg correspondence_grouping pcl_ros$ cd correspondence_grouping

CMakeLists.txtに下記の文を加える。
find_package(PCL 1.7 REQUIRED)
rosbuild_add_executable(correspondence_grouping correspondence_grouping.cpp)
target_link_libraries(correspondence_grouping ${PCL_LIBRARIES})

注） 別にROSを使わなくてもOKです。
その場合はPCL公式チュートリアルページを参考にしてください。

3D Object Recognition based on Correspondence Grouping
手順
1. 自分のROSパッケージを作る
2. 必要なファイルをダウンロードする
3. ちょっとコードを修正してコンパイル
4. 実行

点群ファイル• milk.pcd
https://github.com/PointCloudLibrary/pcl/blob/master/test/milk.pcd?raw=true• milk_cartoon_all_small_clorox.pcd
https://github.com/PointCloudLibrary/pcl/blob/master/test/milk_cartoon_all_small_clorox.pcd?raw=true

ソースコード• correspondence_grouping.cpp
http://pointclouds.org/documentation/tutorials/_downloads/correspondence_grouping.cpp

3D Object Recognition based on Correspondence Grouping
手順
1. 自分のROSパッケージを作る
2. 必要なファイルをダウンロードする
3. ちょっとコードを修正してコンパイル
4. 実行#include <pcl/features/board.h>-#include <pcl/filters/uniform_sampling.h>+#include <pcl/filters/voxel_grid.h>#include <pcl/recognition/cg/hough_3d.h>#include <pcl/recognition/cg/geometric_consistency.h>- pcl::UniformSampling<PointType> uniform_sampling;+ pcl::VoxelGrid<PointType> uniform_sampling;
uniform_sampling.setInputCloud (model);- uniform_sampling.setRadiusSearch (model_ss_);+ uniform_sampling.setLeafSize (model_ss_,model_ss_,model_ss_);
uniform_sampling.filter (*model_keypoints);
std::cout << "Model total points: " << model->size () << "; Selected Keypoints: " << model_keypoints->size () << std::endl;
uniform_sampling.setInputCloud (scene);- uniform_sampling.setRadiusSearch (scene_ss_);+ uniform_sampling.setLeafSize (scene_ss_,scene_ss_,scene_ss_);
uniform_sampling.filter (*scene_keypoints);
std::cout << "Scene total points: " << scene->size () << "; Selected Keypoints: " << scene_keypoints->size () << std::endl;

修正済みのcorrespondence_grouping.cppはこちら→
https://github.com/kanezaki/ssii2016_tutorial/blob/master/correspondence_grouping.cpp

3D Object Recognition based on Correspondence Grouping
手順
1. 自分のROSパッケージを作る
2. 必要なファイルをダウンロードする
3. ちょっとコードを修正してコンパイル
4. 実行$ rosrun correspondence_grouping correspondence_grouping milk.pcd ¥milk_cartoon_all_small_clorox.pcd -k -c

あるいは$ ./bin/correspondence_grouping milk.pcd milk_cartoon_all_small_clorox.pcd -k -c

3D Object Recognition based on Correspondence Grouping
処理内容の概要
点群

法線ベクトル計算 キーポイント抽出

デスクリプタ抽出

最近傍探索

SHOT

FLANN

クラスタリング

モデル

シーン

サンプルプログラムの実装

Uniform Sampling

Hough 3DorGeometric Consistency (GC)3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）
162行目～
pcl::PointCloud<PointType>::Ptr model (new pcl::PointCloud<PointType> ());
pcl::PointCloud<PointType>::Ptr model_keypoints (new pcl::PointCloud<PointType> ());
pcl::PointCloud<PointType>::Ptr scene (new pcl::PointCloud<PointType> ());
pcl::PointCloud<PointType>::Ptr scene_keypoints (new pcl::PointCloud<PointType> ());
pcl::PointCloud<NormalType>::Ptr model_normals (new pcl::PointCloud<NormalType> ());
pcl::PointCloud<NormalType>::Ptr scene_normals (new pcl::PointCloud<NormalType> ());
pcl::PointCloud<DescriptorType>::Ptr model_descriptors (new pcl::PointCloud<DescriptorType> ());
pcl::PointCloud<DescriptorType>::Ptr scene_descriptors (new pcl::PointCloud<DescriptorType> ());

モデル（検出対象物体）とシーン（環境）の点群いろいろ。
色付き点群全体、キーポイント点群、法線ベクトル、デスクリプタのすべてのデータを点群形式で持っている。
点群タイプはpcl::PointXYZRGBA等、さまざまある。
このソースコード内での定義は16行目～（下記）typedef pcl::PointXYZRGBA PointType;typedef pcl::Normal NormalType;typedef pcl::ReferenceFrame RFType;typedef pcl::SHOT352 DescriptorType;3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）
213行目～//// Compute Normals//
pcl::NormalEstimationOMP<PointType, NormalType> norm_est;
norm_est.setKSearch (10);norm_est.setInputCloud (model);norm_est.compute (*model_normals);
norm_est.setInputCloud (scene);
norm_est.compute (*scene_normals);

法線ベクトルの計算。
なにか三次元点群処理しようと思ったら大抵はこれが必要。
今回はデスクリプタの計算のために必要。

3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）
225行目～//// Downsample Clouds to Extract keypoints//
pcl::VoxelGrid<PointType> uniform_sampling;
uniform_sampling.setInputCloud (model);uniform_sampling.setLeafSize (model_ss_,model_ss_,model_ss_);
uniform_sampling.filter (*model_keypoints);
std::cout << "Model total points: " << model->size () << "; Selected Keypoints: " << model_keypoints>size () << std::endl;

uniform_sampling.setInputCloud (scene);
uniform_sampling.setLeafSize (scene_ss_,scene_ss_,scene_ss_);
uniform_sampling.filter (*scene_keypoints);
std::cout << "Scene total points: " << scene->size () << "; Selected Keypoints: " << scene_keypoints>size () << std::endl;

キーポイントの抽出だが、今回は単純に等間隔にダウンサンプリングした点群をキーポイント点群とする。
（もっとちゃんとキーポイント抽出するなら、たとえばISS等がPCLに実装されている。）

3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）
240行目～//// Compute Descriptor for keypoints//
pcl::SHOTEstimationOMP<PointType, NormalType, DescriptorType> descr_est;
descr_est.setRadiusSearch (descr_rad_);descr_est.setInputCloud (model_keypoints);
descr_est.setInputNormals (model_normals);
descr_est.setSearchSurface (model);descr_est.compute (*model_descriptors);
descr_est.setInputCloud (scene_keypoints);
descr_est.setInputNormals (scene_normals);
descr_est.setSearchSurface (scene);descr_est.compute (*scene_descriptors);

各キーポイントまわりのデスクリプタの抽出。
今回はSHOT記述子を抽出する。

3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）
256行目～//// Find Model-Scene Correspondences with KdTree//
pcl::CorrespondencesPtr model_scene_corrs (new pcl::Correspondences ());
pcl::KdTreeFLANN<DescriptorType> match_search;match_search.setInputCloud (model_descriptors);// For each scene keypoint descriptor, find nearest neighbor into the model keypoints descriptor cloud
and add it to the correspondences vector.
for (size_t i = 0; i < scene_descriptors->size (); ++i){
std::vector<int> neigh_indices (1);
std::vector<float> neigh_sqr_dists (1);….
(省略)

FLANNによる最近傍探索により、対応点集合を得る。

3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）
282行目～//// Actual Clustering//
std::vector<Eigen::Matrix4f, Eigen::aligned_allocator<Eigen::Matrix4f> > rototranslations;
std::vector<pcl::Correspondences> clustered_corrs;// Using Hough3D
if (use_hough_){//// Compute (Keypoints) Reference Frames only for Hough
//
…
(省略)

クラスタリングにより正解の物体の点集合を得る。（２種類の手法が選べる。）

Hough:GC:

F. Tombari and L. Di Stefano: “Object recognition in 3D scenes with occlusions and clutter
by Hough voting”, 4th Pacific-Rim Symposium on Image and Video Technology, 2010.
H. Chen and B. Bhanu: “3D free-form object recognition in range images using local
surface patches”, Pattern Recognition Letters, vol. 28, no. 10, pp. 1252-1262, 2007.

3D Object Recognition based on Correspondence Grouping
ソースコードの説明（コアなところだけ。）

最後にPCLVisualizerを使って結果を描画する。
(省略)

余談：点群を表示させたいだけならCloudViewerクラスで数行で書ける。
The CloudViewer
http://pointclouds.org/documentation/tutorials/cloud_viewer.php

真のチュートリアル

3.その他のオープンソースライブラリの紹介本日紹介するオープンソース
1. LSD-SLAM

Ubuntu 16.04では残念ながら動かず。
Ubuntu 14.04では動くことが確認済みです。

http://vision.in.tum.de/research/vslam/lsdslam
https://github.com/tum-vision/lsd_slam
J. Engel, T. Schöps, D. Cremers
LSD-SLAM: Large-Scale Direct Monocular SLAM
European Conference on Computer Vision (ECCV), 2014
RGB-Dではないが、単眼カメラでvisual SLAMをするコード
ROSで動く。

2. ProjectInSeg
http://campar.in.tum.de/Chair/ProjectInSeg
K. Tateno , F. Tombari, N. NavabWhen 2.5D is not enough: Simultaneous Reconstruction, Segmentation and
Recognition on dense SLAMIEEE International Conference on Robotics and Automation (ICRA), 2016
RGB-D画像を入力とし、dense SLAMをしながらセグメンテーションと認識を行う。
※公開されてるコードではセグメンテーションまで

(2) ProjectInSeg
K. Tateno , F. Tombari, N. NavabWhen 2.5D is not enough: Simultaneous Reconstruction, Segmentation and
Recognition on dense SLAMIEEE International Conference on Robotics and Automation (ICRA), 2016
http://campar.in.tum.de/Chair/ProjectInSeg
1. ソースのダウンロード$ wget http://campar.in.tum.de/personal/tateno/IROS2015/InSeg.zip$ unzip InSeg.zip

2. コンパイル$ mkdir InSeg/buildLinux/$ cd InSeg/buildLinux/$ cmake ..
$ make3. 実行$ cd InSegTest$ ../../bin/InSegTest

(2) ProjectInSeg
K. Tateno , F. Tombari, N. NavabWhen 2.5D is not enough: Simultaneous Reconstruction, Segmentation and
Recognition on dense SLAMIEEE International Conference on Robotics and Automation (ICRA), 2016
http://campar.in.tum.de/Chair/ProjectInSeg
こんな感じになりますその他のオープンソース情報
Kinect Fusion
https://msdn.microsoft.com/en-us/library/dn188670.aspx
3Dスキャン（三次元再構成）するKinect for Windowsの公式アプリ。

Ubuntu+PCLでの動作状況（2016年5月 金崎調べ）
OpenNIサポート終了の影響か、Kinect v1では動かなかったが、Xtionでは動いた。
CUDAをインストール後、下記のとおりPCLをソースからコンパイルして使用。
コンパイル$ git clone https://github.com/PointCloudLibrary/pcl$ cd pcl; mkdir build; cd build$ cmake -DCMAKE_BUILD_TYPE=Release .. -DWITH_CUDA=ON -DBUILD_GPU=ON$ make実行$ ./bin/pcl_kinfu_app

3D物体認識の最新動向－ディープラーニングと大規模データセット－3D物体認識の最新動向
1999

Spin Imageによる3D物体認識2010.11

Kinect登場

2012.102015.6

RGBDの流行大規模画像認識でDeep Learning登場

Deepの流行大規模RGBDデータセット＋
3D物体のDeep Learning
＠CVPR2015

3D物体認識の最新動向
3D ShapeNets: A Deep Representation for Volumetric Shapes
Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang, X. Tang, and J. Xiao. In CVPR 2015.

•••

151,128 3D CAD models belonging to 660 unique object categories を
30 x 30 x 30のボクセルデータに変換して、Deep Learningで学習。
Light Field descriptor [Chen et al. 2003], Spherical Harmonic descriptor [Kazhdan et al. 2003]と比較して高性能。

3D物体認識の最新動向• トレンド＝大規模化ex.) SUN 3D [J. Xiao et al. 2013], SUN RGB-D [S. Song et al. 2015]
ディープラーニングを行うには大規模データセットが必要。

部屋を撮影してから物体のラベルをつける流れなので、物体のカテゴリレベル
で整理されていない

J. Xiao, A. Owens, and A. Torralba. SUN3D: A Database of Big Spaces Reconstructed using SfM and Object Labels. ICCV 2013.

3D物体認識の最新動向• トレンド＝大規模化ex.) SUN 3D [J. Xiao et al. 2013], SUN RGB-D [S. Song et al. 2015]
ディープラーニングを行うには大規模データセットが必要。
CADモデル等の人工データ

Shapenet [Chang+, 2015]
http://shapenet.cs.stanford.edu/

RGBDセンサで撮影した実データ

SUN3D [Xiao+, 2013]

Large Dataset of Object Scans[Choi+, 2015]

recruited 70 operators

3D物体認識の最新動向• トレンド＝大規模化ex.) SUN 3D [J. Xiao et al. 2013], SUN RGB-D [S. Song et al. 2015]
ディープラーニングを行うには大規模データセットが必要。
CADモデル等の人工データ

RGBDセンサで撮影した実データ

vs.

集めるのは（比較的）簡単

集めるのは大変テクスチャ・形状・光源・（背景）の変化を加え、リアリスティックな合成をすれば、大規模データは作れる
SUN3D [Xiao+, 2013]
Large Dataset of Object Scans

Shapenet [Chang+, 2015]
http://shapenet.cs.stanford.edu/[Choi+, 2015]

recruited 70大規模データは正義
operators

3D物体認識の最新動向
Learning Analysis-by-Synthesis for 6D Pose Estimation in RGB-D Images
A. Krull, E. Brachmann, F. Michel, M. Y. Yang, S. Gumhold, and C. Rother, in ICCV, 2015.

•
•
•
•

3Dモデルを姿勢𝐻でレンダリングして、実際の観測との誤差を計算
その誤差を入力としエネルギー関数𝐸(𝐻)を出力するCNNを学習
学習したCNNを使って姿勢の事後分布𝑝(𝐻|𝒙; 𝜽)を計算
オクルージョンの激しい環境下でも物体の姿勢推定が高精度に可能

3D物体認識の最新動向
Semantic Pose using Deep Networks Trained on Synthetic RGB-D
Jeremie Papon and Markus Schoeler, in ICCV, 2015.

•••

ModelNet10の3Dモデルを使って7,000のRGBDシーンをランダムに生成シーン中の物体のクラスラベル、位置、姿勢を出力するDeep CNNを学習
多物体の識別と姿勢推定を一度にやってしまうので、1シーンの処理時間はGPUで数秒程度

3D物体認識の最新動向
他にも…
Render for CNN: Viewpoint Estimationin Images Using CNNs Trained withRendered 3D Model Views. H. Su, C. R.
Qi, Y. Li, and L. J. Guibas, in ICCV, 2015.

Learning Deep Object Detectors from 3D
Models. X. Peng, B. Sun, K. Ali, and K.
Saenko, in ICCV, 2015.

•

•

•
•

スタンフォード大のshapenetを使用
http://shapenet.cs.stanford.edu/
1度刻みのカメラ姿勢(𝜃, 𝜙, 𝜓)を出力する
CNNを学習PASCAL 3D+で物体検出＆姿勢推定精度
を評価

•
•

3D Warehouseの3Dモデルを使用
https://3dwarehouse.sketchup.com/
object texture, color, 3D pose, 3D shape,background scene texture and colorを合成
synthetic varianceによってinvarianceを獲得

etc.

まとめ
•
•
•
•

3D特徴量の紹介
RGBD研究の分類と紹介
3D点群等の扱い方（チュートリアル）
3D物体認識の最新動向

Take-Home Message(1) Robotics, Computer Vision, Computer Graphics等
さまざまな分野の知識がRGBDに活かされる(2) 大規模データは作れる（人工データ vs. 実データ）

参考文献
1. Kanezaki, Asako, and Tatsuya Harada. "3D Selective Search for obtaining object candidates."
Intelligent Robots and Systems (IROS), 2015 IEEE/RSJ International Conference on, 2015.
2. Newcombe, Richard A., Dieter Fox, and Steven M. Seitz. "DynamicFusion: Reconstruction
and tracking of non-rigid scenes in real-time." Proceedings of the IEEE Conference on
Computer Vision and Pattern Recognition, 2015.
3. Whelan, Thomas, Stefan Leutenegger, Renato F. Salas-Moreno, Ben Glocker, and Andrew J.
Davison. "ElasticFusion: Dense SLAM without a pose graph." In Proceedings of Robotics:
Science and Systems (RSS), 2015.
4. Ikehata, Satoshi, Hang Yang, and Yasutaka Furukawa. "Structured Indoor Modeling." In
Proceedings of the IEEE International Conference on Computer Vision, pp. 1323-1331. 2015.
5. Akgul, Ceyhun Burak, Bülent Sankur, Yücel Yemez, and Francis Schmitt. "3D model retrieval
using probability density-based shape descriptors." Pattern Analysis and MachineIntelligence, IEEE Transactions on 31, no. 6 (2009): 1117-1133.
6. Kazhdan, Michael, Thomas Funkhouser, and Szymon Rusinkiewicz. "Rotation invariant
spherical harmonic representation of 3 d shape descriptors." In Symposium on geometry
processing, vol. 6, pp. 156-164. 2003.
7. Chen, Ding‐Yun, Xiao‐Pei Tian, Yu‐Te Shen, and Ming Ouhyoung. "On visual similarity
based 3D model retrieval." In Computer graphics forum, vol. 22, no. 3, pp. 223-232, 2003.
8. Ankerst, Mihael, Gabi Kastenmüller, Hans-Peter Kriegel, and Thomas Seidl. "3D shapehistograms for similarity search and classification in spatial databases." In Advances in
Spatial Databases, pp. 207-226. Springer Berlin Heidelberg, 1999.
9. Johnson, Andrew E., and Martial Hebert. "Using spin images for efficient object recognition in
cluttered 3D scenes." Pattern Analysis and Machine Intelligence, IEEE Transactions on 21.5
(1999): 433-449.

参考文献
10. Rusu, Radu Bogdan, Nico Blodow, Zoltan Csaba Marton, and Michael Beetz. "Aligning point
cloud views using persistent feature histograms." In Intelligent Robots and Systems, 2008.
IROS 2008. IEEE/RSJ International Conference on, pp. 3384-3391. IEEE, 2008.
11. Rusu, Radu Bogdan, Nico Blodow, and Michael Beetz. "Fast point feature histograms (FPFH)
for 3D registration." In Robotics and Automation, 2009. ICRA'09. IEEE International
Conference on, pp. 3212-3217. IEEE, 2009.
12. Rusu, Radu Bogdan, Gary Bradski, Romain Thibaux, and John Hsu. "Fast 3d recognition andpose using the viewpoint feature histogram." In Intelligent Robots and Systems (IROS), 2010
IEEE/RSJ International Conference on, pp. 2155-2162. IEEE, 2010.
13. Aldoma, Aitor, Markus Vincze, Nico Blodow, David Gossow, Suat Gedikli, Radu Bogdan
Rusu, and Gary Bradski. "CAD-model recognition and 6DOF pose estimation using 3D cues."
In IEEE International Conference on Computer Vision Workshops (ICCV Workshops), 2011.
14. Aldoma, Aitor, Federico Tombari, Radu Bogdan Rusu, and Markus Vincze. “OUR-CVFH–
oriented, unique and repeatable clustered viewpoint feature histogram for object recognition
and 6DOF pose estimation.” In Joint DAGM-OAGM Pattern Recognition Symposium, 2012.
15. Lai, Kevin, Liefeng Bo, Xiaofeng Ren, and Dieter Fox. "Sparse distance learning for object
recognition combining rgb and depth information." In Robotics and Automation (ICRA), 2011
IEEE International Conference on, pp. 4007-4013. IEEE, 2011.
16. Hinterstoisser, Stefan, Stefan Holzer, Cedric Cagniart, Slobodan Ilic, Kurt Konolige, Nassir
Navab, and Vincent Lepetit. "Multimodal templates for real-time detection of texture-lessobjects in heavily cluttered scenes." In IEEE ICCV, pp. 858-865, 2011.
17. Wang, Anran, Jianfei Cai, Jiwen Lu, and Tat-Jen Cham. "MMSS: Multi-modal Sharable andSpecific Feature Learning for RGB-D Object Recognition." In Proceedings of the IEEE
International Conference on Computer Vision, pp. 1125-1133. 2015.

参考文献
18. Pasqualotto, Giuliano, Pietro Zanuttigh, and Guido M. Cortelazzo. "Combining color andshape descriptors for 3D model retrieval." Signal Processing: Image Communication 28, no. 6(2013): 608-623.
19. Tombari, Federico, Samuele Salti, and Luigi Di Stefano. "Unique signatures of histograms for
local surface description." In Computer Vision–ECCV 2010, pp. 356-369, 2010.
20. Brandao, Simao, Joao P. Costeira, and Marco Veloso. "The partial view heat kernel descriptor
for 3d object representation." In Robotics and Automation (ICRA), 2014 IEEE International
Conference on, pp. 1054-1059. IEEE, 2014.
21. Kanezaki, Asako, Emanuele Rodola, Daniel Cremers, and Tatsuya Harada. "Learningsimilarities for rigid and non-rigid object detection." In 3D Vision (3DV), 2014 2nd International
Conference on, vol. 1, pp. 720-727. IEEE, 2014.
22. Wu, Zhirong, Shuran Song, Aditya Khosla, Fisher Yu, Linguang Zhang, Xiaoou Tang, andJianxiong Xiao. "3d shapenets: A deep representation for volumetric shapes." In Proceedingsof the IEEE Conference on Computer Vision and Pattern Recognition, pp. 1912-1920. 2015.
23. Xiao, Jianxiong, Andrew Owens, and Antonio Torralba. "SUN3D: A database of big spaces
reconstructed using sfm and object labels." In Proceedings of the IEEE International
Conference on Computer Vision, pp. 1625-1632. 2013.
24. Song, Shuran, Samuel P. Lichtenberg, and Jianxiong Xiao. "Sun rgb-d: A rgb-d scene
understanding benchmark suite." In Proceedings of the IEEE CVPR, pp. 567-576. 2015.
25. Chang, Angel X., Thomas Funkhouser, Leonidas Guibas, Pat Hanrahan, Qixing Huang, Zimo
Li, Silvio Savarese et al. "ShapeNet: An Information-Rich 3D Model Repository." arXiv
preprint arXiv:1512.03012 (2015).
26. Choi, Sungjoon, Qian-Yi Zhou, Stephen Miller, and Vladlen Koltun. "A Large Dataset of
Object Scans." arXiv preprint arXiv:1602.02481 (2016).

参考文献
27. Krull, Alexander, Eric Brachmann, Frank Michel, Michael Ying Yang, Stefan Gumhold, andCarsten Rother. "Learning Analysis-by-Synthesis for 6D Pose Estimation in RGB-D Images."
In Proceedings of the IEEE International Conference on Computer Vision, pp. 954-962. 2015.
28. Papon, Jeremie, and Markus Schoeler. "Semantic Pose using Deep Networks Trained on
Synthetic RGB-D." In Proceedings of the IEEE International Conference on Computer Vision,
pp. 774-782. 2015.
29. Su, Hao, Charles R. Qi, Yangyan Li, and Leonidas J. Guibas. "Render for cnn: Viewpoint
estimation in images using cnns trained with rendered 3d model views." In Proceedings of theIEEE International Conference on Computer Vision, pp. 2686-2694. 2015.
30. Peng, Xingchao, Baochen Sun, Karim Ali, and Kate Saenko. "Learning Deep Object
Detectors from 3D Models." In Proceedings of the IEEE International Conference on
Computer Vision, pp. 1278-1286. 2015.