カフェチームの山本です。

現在、カフェチームでは、商品にいる人物を撮影し、機械学習を用いて人物の骨格を検出することで、どの商品を取り出したかを判定しています。そのために、Depthカメラ(RGB画像とDepth画像を取得できるカメラ)を用いてユーザを撮影し、骨格の3次元位置を推定しています。

今後、エッジ側の機器のコストを下げるために、通常のカメラ(RGB画像のみ)を用いることを検討しています。そのためには、RGB画像のみで、カメラのキャリブレーション(外部パラメータを推定する)をする必要があります。以前の記事では、Depthカメラを前提としていたため、画像中の「スクリーン座標+奥行き」と、空間の「ワールド座標」との間を変換するための計算方法を記載しました。

カメラの外部パラメータ行列を最小二乗法で推定する

今回は、RGBカメラを用いること考え、画像中の「スクリーン座標」と、空間の「ワールド座標」との間の変換する計算方法について記載します。

お詫び

本ページの数式が正しく表示されていません。現在、修正中です。数式まで見たい方はこちらのページをご覧ください。

カメラの外部パラメータを推定する(2Dカメラ)

0.定義

今回用いる定義などは、以下の記事のものをそのまま使用します。

画像の座標を空間の座標に変換する

$R = \left( \begin{matrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{matrix} \right)$

$t=\left( \begin{matrix} t_{1} \\ t_{2} \\ t_{3} \end{matrix} \right)$