計測自動制御学会東北支部第295回研究集会(2015.6.26)
資料番号295-7

ステレオマッチングによる物体形状の取得
Acquisition of an Object Shape Using Stereo Matching∗∗○吉田寛和 , 釜谷博行
○Hirokazu Yoshida∗, Hiroyuki Kamaya∗*八戸工業高等専門学校*National Institude of Technology, Hachinohe College
キーワード: ステレオカメラ(Stereo Camera), 三角測量(Triangulation),OpenCV(Open Source Computer Vision)

連絡先: 〒039-1192 八戸市田面木字上野平 16-1 八戸工業高等専門学校 産業システム工学科
釜谷博行，Tel.: 0178-27-7283，E-mail: kamaya-e@hachinohe-ct.ac.jp____________________________
れた視覚情報から三角測量の原理で物体

1. はじめに
近年、3Dプリンタや車の自動ブレーキの距離を判断する。ステレオカメラはこの普及により、三次元形状を取得する技

れと同様の原理で、物体の距離を計測す術が注目されている。三次元形状を計測ることができる。ここでは、三角測量をする手法として、２台のカメラにより構用いた平行ステレオカメラの原理につい成されるステレオカメラが挙げられる。て説明する。Fig.1 にカメラと物体の関係

ステレオカメラに要求される性能として、 図を示す。
画像の歪みが少ないこと、左右カメラのレンズの中心を通り、レンズ面と直交光軸のずれが小さいこと、正確に同期がするようにしたｚ軸を光軸と呼ぶ。光軸とれていることなどがある。このため、は画像面に垂直になるよう配置されるのステレオカメラは高価になってしまう。

で、x-y 平面と画像平面が平行になる。こ

本研究では、一般の人が入手しやすいのような座標系をカメラ座標系と呼ぶ。

安価なステレオカメラを用いることで、ステレオカメラでは、カメラを２台使用三次元形状を計測するシステムについてするのでカメラ座標も右と左の２つ存在検討する。

する。２つのカメラ座標を平行に並べる
ものとすると、右カメラのレンズ中心を原点とした座標(Pxr,Pyr,Pzr)は、左カメラ

2. ステレオカメラの原理
人間は、物を見るとき２つの目で得らのレンズ中心を原点とした座標
1

(Px,Py,Pz)とカメラ間隔 h を用いて
Pxr = Px − h(1){ Pyr = PyPzr = Pzと表すことができる。このとき、レンズを通して対象物 p をスクリーンに投影すると、実像となるので上下が逆転し、非Xl常にわかりづらい。そこで、仮想的に画像面をレンズ中心の前に置くと、像が上下逆転せずに投影されるので、扱いやすくなる。実像と大きさを等しくするため(a)に、画像平面は焦点距離 f に置かれる。
画像平面に投影された対象物 p の座標を左は(x,y)、右は(xr,yr)とすると、相似三角関係より
PxPx=fPzPz
{PyPyy = z P = f Pzz(2)

Pxr
Pxr
=fPzr
Pzr
{PyrPyryr = zr P = f Pzrzr(3)x = zxr = zr(b)が得られる。ここで式(1)を式(3)に代入す

Fig.1 The principle of stereo camera

ると、
Px−hPxhhxr = f P = f P − f P = x − f Pzzzz
(4){Pyyr = f P = y

3. 開発環境
3-1.システム構成zとなり、式(4)よりfhP𝑧 = x −x

本研究を行うにあたって、使用したシムテム構成をFig.2に示す。本システムは(5)

パソコン1台とステレオカメラ1台から構rが得られ、対象物までの距離が求められ成される。

る。分母 x−xｒは視差を表している。視差使用したパソコンはSONY VAIOとは、左右のカメラで見える同じ特徴点(Windows7(64bitOS),Intel® CORE™の画像平面の x 座標の差である。

i5-2430M,メモリ 4GB,クロック 2.4GHz)である。

2

みがあると、マッチングに失敗する。また、式(5)より距離を計算するためには、カメラの焦点距離を求める必要がある。
USB

そこで、カメラキャリブレーションを行

Fig.2 System configuration

う。キャリブレーションとは、カメラの特性を表す内部パラメータと、外部の世3-2.ハードウェア界に基づいた座標系（ワールド座標系）

ステレオカメラには、安価なとカメラ座標系の関係を表す外部パラメ[1]

Ovrvision1 を使用した。このカメラのータを求める手法である。具体的なパラ性能を以下に示す。

メータの内容をTable 1に示す[3]。

画素数：1280×480ピクセル

Table 1 Parameter（640×480ピクセル×2）

内部パラメータ

カメラ自体の特性最大フレームレート：60fps・焦点距離

インターフェース：USB2.0・レンズ歪み係数

カメラ間距離：50mm

𝑘1 、𝑘2 、p1 、p2 、𝑘3

大きさ：86×36

・画像中心 (u0,v0)

画角（対角）：135°

外部パラメータf

カメラの位置と姿勢・回転 R

3-3.ソフトウェア

・平行移動tソフトウェアの開発にはMicrosoft
Visual C++ 2010 Expressを使用した。コ

キャリブレーションには、ワールド座

ンピュータービジョンライブラリには、標の三次元空間中の物体を二次元画像にOpenCV2.4.9を使用した。カメラキャリブマッピングするモデルが必要である。本

レーションや色の識別、座標の取得には研究ではキャリブレーション用の物体と[2]OpenCVの関数を使用した 。ステレオカ

して、Fig.3に示す６×９のチェスボード

メラからの画像の取得には、Ovrvision（白黒の正方形が交互に並んだパターン）[1]

SDK Version 2.15 を使用した。

を使用した。

4. 前処理前処理としてキャリブレーションと画像の平行化について説明する。
4-1.キャリブレーション
ステレオマッチングを行うにあたって、Y軸上のずれやレンズによる特徴点の歪Fig.3 Chessboard
34-2.画像補正

右カメラのカメラ座標

キャリブレーションより得られたパラfx[00メータを用いて、レンズによる画像の歪み補正と左右画像の平行化を行った。
Fig.4に補正前の画像、Fig.5に補正後

0fy
0u0312.0 0 309.6v0 ] = [0 312.2 259.1 ]0011

平行化より得られた新しいカメラ座標の画像を示す。

fx[000fy0u0381.5 0 278.6v0 ] = [0 381.5 229.3 ]0011となった。
次に、対象物体をカメラの前に置き、Fig.4 Before paralleled

カメラからの距離を変化させて画像を取得した。カメラからの距離は150mm～450mmを50mm間隔で行った。対象物体にはあらかじめカラーマーカーを取り付けておき、画像上におけるマーカーの座標を取得することでカメラからマーカーまでFig.5 After paralleledの距離を計測する。対象物体（一辺100[mm]の立方体）とマーカーをFig.6に示す。

5. 実験内容
5-1.準備実験を行うにあたって、以下の準備を行った。
まず、OpenCVの関数を用いてステレオカメラのキャリブレーションを行い、左右のカメラのパラメータを取得した[4]。
取得したパラメータより、レンズによる画像の歪み補正、左右画像の平行化を行

Fig.6 Target object and marker

った。キャリブレーションにより取得した内部パラメータの結果は、5-2.人間による対応点の指定初めに、左右画像の対応点を人間がそれぞれマウスで指定することで距離を計

左カメラのカメラ座標

fx[000fy0測する実験を行った。実験手順は以下のu0309.8 0 319.9v0 ] = [ 0 313.4 276.7 ]0011通りである。
1. 取得画像の読み込み
42. 画像の補正

10Error rate[%]

3. 左画像における対応点の選択（マウスでのクリックにより指定）
4. 右画像における対応点の選択（マウスでのクリックにより指定）
5. 各対応点のx座標、y座標を表示

50-5150-10

250

350

450

True Distance[mm]6. 手順5で得たx座標より式(5)を用いて距離を計算
7. 結果の表示

Fig.8 Error rate(red marker)

今回は、赤色と黄色のマーカーを使用し、500対応点としてマーカーの左端を選択した。
Ditance[mm]実験結果をFig.7からFig.10に示す。誤差率のFig.8とFig.10には、読み取り誤差を考慮して±１ピクセルのずれがあった場合についてエラーバーで示した。誤差率の平均は、赤色1.6%、黄色1.3％となった。

400300200
100150500

Distance[mm]250350450

True Distance[mm]Theoretical value

400

Experimental value300

Fig.9 Comparison result (yellow200marker)

100250350

450

True Distance[mm]10Theoretical value

5Error rate[%]

150

Experimental value

Fig.7 Comparison result (red marker)

0-5-10

150

250

350

450

True Distance[mm]Fig.10 Error rate (yellow marker)

55-3.対応点探索の自動化

く認識することができた。このときの誤自動で対応点を探索し、対象物体まで差率の平均は2.2％となった。一方、黄色の距離を計測する実験を行った。のマーカーは、減算処理より抽出されたマーカーの色認識をすることで対応点領域面積が小さすぎたため、正しく認識を決定した。色認識の手法には色の減算することができない場合もあった。

処理を用いた。この処理は取得画像をRGBに分割し、次の式にあてはめることによ500

Distance[mm]り行った。左辺が色を減算した結果である。
R’ = R − G
B’ = B − R（6）{Y’ = G − B
G’ = G − R(R：red, B:blue, G:green, Y:yellow)

400
300
200
100
150250350

450

True Distance[mm]Theoretical value

この減算処理を行った画像を二値化す

Experimantal value

ることで色領域を抽出する。このときの閾値は100とした。

Fig.11 Comparison result (red marker)

実験手順を以下に示す。
10Error rate[%]1. 取得画像の読み込み
2. 画像の補正
3. 色の減算処理
4. 画像の二値化（閾値：100）

50-5150-10

5. 領域面積が最大の部分のみ選択

250

350

450

Ture Distance[mm]6. 左画像における対応点の探索
7. 右画像における対応点の探索

Fig.12 Error rate (red marker)

8. 各対応点のx座標、y座標を表示
9. 手順8で得たx座標より式(5)を用いて6. リアルタイム形状取得

距離を計算

対応点探索の自動化により、リアルタ

10. 結果の表示イムでの対象物体の形状取得を行った。
マーカーには、黄色、赤色、青色、緑色

実験結果をFig.11、Fig.12に示す。人を用いた。それぞれの色の検出には式（6）間が対応点を指定する実験と同様、赤色を用いた。

マーカーと黄色マーカーを認識して対応この実験で得られたマーカー座標を点の探索を行った。赤色マーカーは正しTable 2に示す。
6

Table 2 Acquisition of an Object Shape

ーカーの領域面積が小さくなり、対応点

Color

X[mm]

Y[mm]Z[mm]を取得できない問題も生じた。

Red

164.4

132.7

134.3

Yellow

75.7

134.9

140.3

マーカーの取り付け位置が悪いなどが原Blue

155.6

180.6

238.4

因で、あまり精度が良くなかった。

Green237.2

170.9

221.8

リアルタイムでの物体形状の取得では、8. 今後の展望ユークリッド距離を計算したところ、今回、物体形状の取得を行うために4色Fig.13のようになり、精度があまり良くのマーカーを用いて対応点を探索した。

なかった。この原因として、取り付け時対応点として領域面積の左端を選択した。のマーカーの位置ずれ、緑色マーカーの誤差率を小さくするためには、重心座標ｘ座標取得の失敗などが考えられる。なを計測すべきであると考えられる。また、

お、取得にかかった平均時間123.9 [ms]

複数色のマーカーを使用する方法では、となった。

複雑な形状を取得する際にマーカーの種類が増えてしまい、形状の取得が困難となることが予想される。そこで、マーカーの色を単色にし、同じY座標内で領域面積を比較することで対応点を探索する方法を検討している。リアルタイムでの形状取得では、座標の取得はできたが、処理速度が遅く、精度もあまり良くなかった。今後は、処理速度の高速化と精度の向上について検討していきたい。

Fig.13 Measured object shape
参考文献[1] しのびや.com,

7. まとめhttp://dev.ovrvision.com/doc_ja/

安価なステレオカメラを用いて、左右(2015の画像でのマーカーの視差よりカメラか年６月)

ら対象物体までの距離を求めた。人間に[2] OpenCV.jp, http://opencv.jp/

より対応点を指定した場合は、誤差率が年 6月)平均で1.6[％]以内となった。

[3] 出口光一郎、ロボットビジョンの基礎、(2015コロナ社 (2000)

対応点探索の自動化では、赤色マーカ[4] Gray Bradski and Adrian Kaebler，詳解ーについては、人間による対応点の指定と同程度の精度で取得することができた。 OpenCV –コンピュータビジョンライブラリを使った画像処理・認識 (2009)

しかし、黄色のマーカーについては、対象物までの距離が離れるにしたがってマ7