あらいさん日記(仮)

あらい日記

活動の記録

レンジファインダによる3次元計測

概要

カメラとプロジェクタのペアを使って,物体の3次元計測を行いました.プロジェクタから投影するパターンはグレイコードを使いました.

レンジファインダ

3次元計測を行う手法としては2台のカメラを用いたステレオ法が有名です.2台のカメラの視差を利用することで,三角測量の原理に基づき距離を算出することができます.この手法では,テクスチャのない部分では対応点付けが困難なため,距離計測が不安定になります.

レンジファインダは,カメラとプロジェクタのペアで距離を計測できます.プロジェクタから光のパターンを投影して,カメラで撮影します.すると,テクスチャのない物体でも,対応点付け問題が簡単になります. 

f:id:raccoon15:20190503210716p:plain

パターン投影することで距離を計測できる(グレイコードの例)

3次元計測の手順

カメラとプロジェクタの対応関係の獲得

3次元計測を行うためには,プロジェクタから出力された光によって光っている物体上の点が,カメラの画像上のどの座標で撮影されるかという対応関係を求める必要があります.

もっとも簡単な方法は,プロジェクタからある1点だけを光らせ,カメラで撮影することです.これを全ての点に対して行うことで,プロジェクタとカメラの対応関係が求まります(スポット光投影法).しかし,この方法では非常に時間がかかります.

計測時間を短縮するための手法として,グレイコードパターンを投影する方法があります.この手法では白黒のパターンを複数枚投影して撮影し,デコードを行うことで,カメラとプロジェクタの対応関係を求めることができます.例えば,横幅が1024ピクセルのプロジェクタであれば,最低10枚(反転パターンを含めると計20枚)のパターンを投影して撮影することで対応関係(カメラの2次元座標とプロジェクタの1次元座標との対応)を求めることができます.

blog.k-tanaka.me

カメラとプロジェクタのキャリブレーション

カメラのキャリブレーションをすると,次式で表せられるカメラパラメータCを獲得できます.(X, Y, Z)は世界座標系でのある点で,(X_{c}, Y_{c})はその点に対応するカメラ座標系での画像の二次元座標です.

h \begin{pmatrix} X_{c} \\ Y_{c} \\ 1 \end{pmatrix} = \begin{pmatrix} C_{11}  C_{12}  C_{13}  C_{14} \\ C_{21}  C_{22}  C_{23}  C_{24} \\ C_{31} C_{32} C_{33} C_{34} \end{pmatrix}\begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix}

プロジェクタのキャリブレーションをすると,次式で表されるプロジェクタパラメータPを獲得できます.(X, Y, Z)は世界座標系でのある点で,X_{p}はその点に対応するプロジェクタ座標系でのx軸方向の座標です.

h \begin{pmatrix} X_{p} \\ 1 \end{pmatrix} = \begin{pmatrix} P_{11}  P_{12}  P_{13}  P_{14} \\ P_{21}  P_{22}  P_{23}  P_{24}\end{pmatrix}\begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix}

raccoon15.hatenablog.com

距離の計算 

カメラパラメータCとプロジェクタパラメータPを用いて,行列FQVを定義します.

F = \begin{pmatrix}C_{34}X_{c}-C_{14} \\ C_{34}Y_{c}-C_{24} \\ P_{24}X_{p}-P_{14}\end{pmatrix}

Q = \begin{pmatrix}C_{11}-C_{31}X_{c} \ C_{12}-C_{32}X_{c} \ C_{13}-C_{33}X_{c} \\ C_{21}-C_{31}Y_{c} \ C_{22}-C_{32}Y_{c} \ C_{23}-C_{33}Y_{c} \\ P_{11}-P_{21}X_{p} \ P_{12}-P_{22}X_{p} \ P_{13}-P_{23}X_{p}\end{pmatrix}

V = \begin{pmatrix}X \\ Y \\ Z\end{pmatrix} 

カメラ座標(X_{c}, Y_{c})とプロジェクタ座標X_{p}に対応する物体座標(X, Y, Z)は次式で計算できます.

V=Q^{-1}F

この計算を画像上の全ての座標で行うことで,物体の3次元座標を求めることができます.

実験結果

グレイコードパターンを投影することで,プロジェクタとカメラの対応点を求め,物体の3次元計測を行いました.グレイコードは,ポジのパターンを11枚とネガのパターンを11枚投影しました.

f:id:raccoon15:20190509185411j:plain

実験の様子

対象物体は,紙コップとキャリブレーションボックスです.

f:id:raccoon15:20190509185446j:plain
f:id:raccoon15:20190509185451j:plain
対象物体

3次元計測を行なった結果です.

f:id:raccoon15:20190509190303p:plain
f:id:raccoon15:20190509190445p:plain
計測結果


Active Stereo Result