ステレオカメラを用いた自律走行

䣔䣕䣌䢴䢲䢳䢳䣃䣅䢵䣋䢴䢯䢵
ステレオカメラを用いた自律走行
○岡雄平(東工大) 岩田啓明(東工大) 西久保直輝(東工大) 実吉敬二(東工大)
1. はじめに
自律走行を実現するために GPS・オドメトリ・カ
メラ・レーザー等の様々なセンサを利用することが
できる.各センサには長所短所があり,短所を補う
ために複数のセンサを組み合わせて用いることが
主流である.しかし多くのセンサを用いることはシ
ステムの肥大化に繋がり,コスト面でのデメリット
が大きくなる.また各センサの結果が異なる場合に
どのセンサが正しい結果を出力しているかの判断
を誤ると却って結果が悪くなってしまう.
そこで我々はシンプルなシステムを目指し,ステ
レオカメラのみをセンサとして用いて自律走行を
行うことを考えている.ステレオカメラにはパッシ
ブセンサであり互いのセンサが干渉しないこと,横
方向に高い分解能があり物体の幅が正確にわかる
ことなどの利点がある[1].
本研究では走行すべき経路・環境は既知であると
し,予め作成されたマップデータを利用する.ただ
し実環境を走行するものとし,マーカーを設置する
など自律走行のために環境を改変してはならない
ものとする.
図1
ステレオカメラと FPGA 基板
2. ステレオカメラ
ステレオカメラは左右に並べた2台のカメラで
同一の対象を観測し,それぞれの画像上の位置のず
れ(視差)から対象の三次元座標を得るものである.
使用するステレオカメラは本研究用に開発した
ものであり,解像度 2048x2048,フレームレート
8.3fps,基線長 50mm,焦点距離 6mm である(図 1).
結果として得られる三次元情報(距離画像)は赤色
ほど近くに,青色ほど遠くに物体が存在することを
表している(図 2).
ステレオカメラ処理は計算量が多く CPU ではリア
ルタイム処理が難しいため,並列処理・パイプラン
処 理 に よ る 高 速 処 理 が 可 能 な FPGA (Field
Programmable Gate Array:論理回路を書き換え可
能な集積回路)を用いて処理をしている.
遠
近
図2
元画像(上)と距離画像(下)
3. 車体
自律走行に用いる車はラジコンを改造した前輪
操舵後輪駆動のものであり,全長 70cm 程度の大き
さである(図 3).周囲環境認識装置としてステレオ
カメラ,処理装置として FPGA(Stratix III)を搭載
している.
センサとしてステレオカメラのみ使用して自律
➨䢴䢻ᅇ᪥ᮏ兑兀儧儬Ꮫ఍Ꮫ⾡ㅮ₇఍凚䢴䢲䢳䢳ᖺ䢻᭶䢹᪥ࠥ䢻᪥凛
図3
車体外観
䣔䣕䣌䢴䢲䢳䢳䣃䣅䢵䣋䢴䢯䢵
自己位置
頻度
路面
立体物
立体物なし
予測位置
マップ
データ
フレーム間
マッチング
路面位置
立体物あり
操舵
マップ
マッチング
立体物位置
路面検出
左カメラ
立体物検出
右カメラ
三次元情報
閾値
立体物位置
近
図4
視差
遠
処理の流れ
図5
走行を行い,加速度センサ・オドメトリ・GPS・測
域センサなど他のセンサ類は搭載していない.
FPGA はステレオカメラ処理との共用である.軽量
化・低消費電力化のため PC は搭載しておらず,す
べての処理は FPGA 上で行う.
立体物検出
の高さでも区切ることで任意の高さの立体物のみ
を検出することができる.
本研究では高さ 0~0.5m,1~1.5m,2~2.5m の 3
種類の立体物を検出している.特に 2~2.5m の立体
物情報は通行人が映らないため,人垣の中でも後述
のマップマッチングが行いやすい利点がある.
4. 自律走行処理の流れと詳細
4.3 自己位置算出
自律走行のための処理の流れは以下の通りであ
4.3.1 フレーム間マッチングとマップマッチング
る(図 4).(1)路面検出により路面位置を求める.(2)
自己位置算出は立体物の位置から現在いる位置
立体物検出で路面からの高さ別に立体物の位置を
と向いている方向を算出する.この処理はフレーム
求める.(3)現在見えている立体物の位置と予め作
間マッチングとマップマッチングに分けられる.
成しておいたマップデータの立体物の位置を比較
フレーム間マッチングでは 1 フレーム前の立体物
し,現在いる位置と方向を求める.(4)目標座標に
の位置と現在のフレームの立体物の位置を比較し,
向かうように操舵を行う.
1 フレームでの移動量を求める.
4.1 路面検出
マップマッチングでは現フレームの立体物位置
後述する立体物検出のために路面の位置や傾き
とマップデータの立体物位置を比較し,マップ上で
を求める必要がある.ここでは路面を平面と仮定し, の自己位置を求める.ここで,マップデータは事前
(X,Y,Z)空間での平面の方程式
にコースを走行し,保存した画像から得られた立体
物位置の座標のテーブルである.マップマッチング
Y = αX + β Z + y 0
はフレーム間マッチングと共通の処理回路を使用
のパラメータ(α,β,y0)を求め,路面の方程式と
することでリソースを削減している.
する.
マップマッチングではフレーム間マッチングか
本研究では路面の方程式を求めるために,3 次元
ら求めた移動量を推定値として重み付けする.こう
ハフ変換を用いる.路面付近の画素のデータを実座
することでフレーム間マッチングは精度が良いも
標(X,Y,Z)に変換し,(α,β)を変えながら対応する
のの累積誤差がたまる,マップマッチングは累積誤
y0 を求めハフ空間(α,β,y0)に投票する.投票数が
差がたまらない代わりに精度が悪く間違った自己
最大となった(α,β,y0)を路面の方程式として採用
位置を算出しやすいという短所を克服している.
する.
4.3.2 処理の詳細
4.2 立体物検出
立体物位置の比較は以下の手順で行う(図 6).ま
立体物検出は画像を縦に区切って考える.画像を
ず現フレームの立体物位置を画像横座標 i と視差 d
縦にみると,立体物がない領域は視差(距離)が連続
で表される(i,d)座標から実座標に変換する.次に
的に変化しており,立体物がある領域は一定の視差
並進回転を加え,(i,d)座標に再度変換する.これ
が得られている(図 5).この特性を利用し,縦に区
と前フレーム/マップデータの立体物位置を比較し,
切った領域ごとに視差の分布を求め,頻度が閾値を
一致度を求める.ここで一致度として視差に応じた
越えた視差の位置に立体物があると判断する.
誤差の範囲内で座標が一致しているデータの総数
さらに,画像を縦に区切るだけでなく,路面から
を用いる.
➨䢴䢻ᅇ᪥ᮏ兑兀儧儬Ꮫ఍Ꮫ⾡ㅮ₇఍凚䢴䢲䢳䢳ᖺ䢻᭶䢹᪥ࠥ䢻᪥凛
䣔䣕䣌䢴䢲䢳䢳䣃䣅䢵䣋䢴䢯䢵
並 進回 転を
変えながら
一致 度を
最大 化
自己位置算出
図8
並進
(i,d)座標
一致度
並進
(i,d)座標
一致度
並進
(i,d)座標
一致度
並進
(i,d)座標
一致度
最大化
回転
実座標に
変換
現在見えている
立体物
ルックアップ
テーブル
誤差の付与
セレクタ
図7
一 致度 計算
図6
マップデータ
の立体物
誤差の付与
セレクタ
マップデータ
の立体物
1フレーム前
の立体物
(i,d)座標に
変換
並 進回 転
実座 標に
変換
現在見えている
立体 物
1フレーム前
の立体物
テストコースでの走行
開けた場所に移動した結果,近くに立体物が見えな
くなってしまったためと考えられる.
実験の結果,近く(~10m)に立体物が存在する環
境では安定して自律走行を行うことができた.しか
し,近くに立体物が存在しない環境では自己位置算
出が正常に動作しなかった.これは遠くのものほど
ステレオカメラの距離精度が悪くなることが原因
と考えられる.
並列化された自己位置算出
6. まとめと今後
加える並進回転の量を変えながら一致度が最大
となる並進回転を求める.この並進回転がフレーム
間マッチングでは1フレームの移動量に,マップマ
ッチングではマップ上での自己位置に対応する.
4.3.2 FPGA で処理する際の最適化
一致度の計算は前フレーム/マップデータの立体
物が誤差の範囲内にある('1')かない('0')かを記
述したルックアップテーブルを予め作成しておき,
それを参照することで高速化を行った.
また,処理を 4 並列で動かすことで高速化を図っ
ている(図 7).この際,計算コストの高い回転を加
える処理までを共通部分とし,並進を加える処理以
降を並列化することでリソースを削減している.
4.4 操舵
マップデータに走行させたい経路に沿った目標
座標点を列挙しておく.各目標点を順番に巡ること
で自律走行を行う.目標点への操舵は自己位置・向
きと目標座標を用いて目標点へ向かうための角度
を算出し,それに従い操舵を行っている.
5. 結果
緑色の線のように走行するよう設定し,実験走行
を行った(図 8).緑色実線部は想定通りの経路を自
律走行したが,その後緑色の点線のように進むべき
ところを赤色の線のように進んでしまった.これは
➨䢴䢻ᅇ᪥ᮏ兑兀儧儬Ꮫ఍Ꮫ⾡ㅮ₇఍凚䢴䢲䢳䢳ᖺ䢻᭶䢹᪥ࠥ䢻᪥凛
10m 以内に立体物が存在する環境下でステレオカ
メラのみをセンサとして自律走行を行えるように
なった.今後は近くに立体物が存在しない環境でも
動作するよう,精度を良くしていくことを目指す.
また,通行人などの障害物が多い環境での動作のた
めに頑強性を上げていく.
参
考 文
献
[1] 実吉敬二: “ステレオ法による立体画像認識の基礎と
車載カメラへの応用”, 株式会社トリケップス, 2007.
[2] 岩田啓明,実吉敬二: “ステレオカメラによるビジュア
ルドトリおび自己位置認識”, 第 11 回 計測自動制御
学会 システムインテグレーション部門講演会, 2010.