21. Aoki Media Sensing Lab., Keio Univ.
RGBD 画像の作り方
透視投影モデルを利用
実世界の Pworld と画像平面への射影Pimg の関係は下記の通り
21
X
Y
Z
レンズ中心
x
y
Pworld( X, Y, Z )
Pimg= (i, j)
画像平面
内部パラメータ
f : 焦点距離
ここではx,y共通の値とする
ci, cj:画像中心
多くのRGBDカメラでは
内部パラメータを知る
ための機能がある.
22. Aoki Media Sensing Lab., Keio Univ.
RGBD 画像の作り方
画像としてレンダリングする際は画像中心 (ci, cj) を考慮して
オフセットする.
画素値についてはデータセットによって異なるので注意.
ほとんどの文献ではそこまで触れていない.
ミリメートルをそのまま画素値にする,[0,255]で正規化,など.
22
jc
Z
Y
fj ic
Z
X
fi
このまま点群を投影するとずれが発生する場合がある.
投影先の画像(RGB画像)の原点と点群の原点が一致して
いるかどうか確認.
一致していない場合:
点群データをずれの量だけオフセットさせる.
Intel Realsense SR300だと,約 2.6 cmずれている.
26. Aoki Media Sensing Lab., Keio Univ.
Statistical Outlier Removalによるノイズ除去
計測結果が不安定になる点を除去する(距離センサによくあ
るノイズ)
不安定な点は周囲の点に対して孤立しやすい
→「孤立性」を指標としたフィルタリングをおこなう
26
1. 点piに対して周囲 k 点との平均距離
diを計算.(※ diは正規分布に従う
と仮定)
2. 下記の条件をチェックしてインライ
アとアウトライアを決める.
outlieriselse
inlierisdthdif
i
ii
p
p)(
1
1
,
i
k
id
k
d
距離センサに起きやすい突発的
なノイズを削除できる
処理結果:赤点が削除された点群
27. Aoki Media Sensing Lab., Keio Univ.
フィルタリング(クロッピング)
Region of Interest (ROI) の設定に相当.指定範囲のデータを
取り出して,その範囲だけに処理を適用する.
3次元的なボリュームを指定する方法.
関数フィッティングによる方法.
27
31. Aoki Media Sensing Lab., Keio Univ.
近傍点探索2
kd tree
2分木で構成された空間分割のためのデータ構造
kd treeで使われる探索方法
KNN:k近傍をサーチ
RNN:特定の距離内をサーチ
RKNN:上記を混ぜた方法
特定の範囲内で列挙する点数に
上限を設けることができる.
31
赤:クエリ点
緑:クエリ点の
半径0.01m内の点
F
C
H
E
A
B
G
A
B
C
EF
G
H
x軸分割
y軸分割
x軸分割
2次元データ(左)の kd tree の例(右)
32. Aoki Media Sensing Lab., Keio Univ.
法線推定1
PCA を利用した方法
共分散行列の最小固有値の固有ベクトルが法線
32
共分散行列
近傍点の総数
固有ベクトル
k
k
i
k
k
T
ii
kk 11
1
,))((
1
ppppppC
}2,1,0{, jjjj vvC 固有ベクトル v1 , v2
固有ベクトル v2= 法線
012
33. Aoki Media Sensing Lab., Keio Univ.
法線推定2
固有ベクトルの向きは不定なので,法線方向を修正する
33
法線をそのまま表示した例
修正後の法線分布
裏向きの部分
(失敗) 表向きの部分
(成功)
“視点位置”を設定し,そちらに向く方向を正とする
視点位置 v
0)( ii npv
この条件を満たす法線 ni の方向を正とする
51. Aoki Media Sensing Lab., Keio Univ.
Open3D : A Modern Library for 3D Data Processing
Python, C++両方から扱える3Dデータ処理ライブラリ
51
Qian-Yi Zhou, Jaesik Park, Vladlen Koltun, Open3D: A Modern Library for 3D Data Processing, arXiv2018.
Core features
Basic 3D data structures
Basic 3D data processing algorithms
Scene reconstruction
Surface alignment
3D visualization
Python binding
Supported compilers
GCC 4.8~ on Linux
XCode 8.0~ on OS X
Visual Studio 2015~
on Windows