(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-10
(45)【発行日】2023-11-20
(54)【発明の名称】情報処理装置、情報処理方法、プログラムおよび車両制御システム
(51)【国際特許分類】
G06T 7/70 20170101AFI20231113BHJP
【FI】
G06T7/70 Z
(21)【出願番号】P 2020129662
(22)【出願日】2020-07-30
【審査請求日】2022-08-25
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】杉浦 貴行
(72)【発明者】
【氏名】関 晃仁
【審査官】笠田 和宏
(56)【参考文献】
【文献】国際公開第2019/171984(WO,A1)
【文献】中国特許出願公開第110296691(CN,A)
【文献】特表2000-502447(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
(57)【特許請求の範囲】
【請求項1】
1以上の検知装置により相互に異なる検知位置で電磁波を用いて対象を検知して得られる、2次元の位置ごとの検知結果を含む情報であって、前記検知装置と前記対象との間に存在し、前記電磁波を透過する透過体による歪みを含む複数の検知情報を取得する取得部と、
複数の前記検知情報それぞれから特徴点を検出する検出部と、
2次元の位置ごとの歪みを表す歪みマップに基づいて補正した前記特徴点の検出位置と、前記特徴点に対応する3次元位置と、の誤差を最小化することにより、前記歪みマップと、前記3次元位置と、前記検知位置と、を推定する推定部と、
を備え、
前記歪みマップは、前記検知情報より小さい解像度の複数の格子点ごとの前記歪みを示すフローを含み、
格子内の前記特徴点は、前記特徴点の周辺の複数の前記格子点のフローを補間して求められるフローの値を用いて補正される、
情報処理装置。
【請求項2】
前記歪みは、2次元の位置ごとの変位量である、
請求項1に記載の情報処理装置。
【請求項3】
取得された複数の前記検知情報を、歪みが相互に類似する複数の検知情報を含む複数のグループに分類する分類部をさらに備え、
前記推定部は、複数の前記グループごとに、前記歪みマップと前記3次元位置と前記検知位置とを推定する、
請求項1に記載の情報処理装置。
【請求項4】
前記分類部は、前記検知装置と前記透過体との相対的な位置が類似する複数の検知情報を同一のグループに分類する、
請求項3に記載の情報処理装置。
【請求項5】
前記分類部は、状態が類似する前記透過体による歪みを含む複数の検知情報を同一のグループに分類する、
請求項3に記載の情報処理装置。
【請求項6】
前記歪みマップを推定する領域を示すマスクを生成するマスク生成部をさらに備え、
前記推定部は、前記マスクが示す領域に含まれる位置ごとの前記歪みを表す前記歪みマップに基づいて前記特徴点を補正する、
請求項1に記載の情報処理装置。
【請求項7】
前記マスク生成部は、前記検知情報に含まれる領域のうち、前記透過体を透過した前記電磁波により検知された検知結果を含む領域を示す前記マスクを生成する、
請求項6に記載の情報処理装置。
【請求項8】
前記マスク生成部は、前記検知情報内の特定の対象が含まれる領域を示す前記マスクを生成する、
請求項6に記載の情報処理装置。
【請求項9】
前記マスク生成部は、他の領域より多い前記特徴点を含む領域を示す前記マスクを生成する、
請求項6に記載の情報処理装置。
【請求項10】
前記推定部は、前記誤差を表す関数であって、隣接する複数の前記格子点のフローの平滑化項を含む誤差関数を最小化することにより、前記歪みマップと、前記3次元位置と、前記検知位置と、を推定する、
請求項1に記載の情報処理装置。
【請求項11】
前記推定部は、前記誤差を表す関数であって、特定のモデルからのフローの変位をパラメータとするバイアス項を含む誤差関数を最小化することにより、前記歪みマップと、前記3次元位置と、前記検知位置と、を推定する、
請求項1に記載の情報処理装置。
【請求項12】
前記検知装置がカメラであり、前記透過体が可視光を透過する透明体である
請求項1乃至
請求項11のいずれか1項に記載の情報処理装置。
【請求項13】
1以上の検知装置により相互に異なる検知位置で電磁波を用いて対象を検知して得られる、2次元の位置ごとの検知結果を含む情報であって、前記検知装置と前記対象との間に存在し、前記電磁波を透過する透過体による歪みを含む複数の検知情報を取得する取得ステップと、
複数の前記検知情報それぞれから特徴点を検出する検出ステップと、
2次元の位置ごとの歪みを表す歪みマップに基づいて補正した前記特徴点の検出位置と、前記特徴点に対応する3次元位置と、の誤差を最小化することにより、前記歪みマップと、前記3次元位置と、前記検知位置と、を推定する推定ステップと、
を含み、
前記歪みマップは、前記検知情報より小さい解像度の複数の格子点ごとの前記歪みを示すフローを含み、
格子内の前記特徴点は、前記特徴点の周辺の複数の前記格子点のフローを補間して求められるフローの値を用いて補正される、
情報処理方法。
【請求項14】
コンピュータに、
1以上の検知装置により相互に異なる検知位置で電磁波を用いて対象を検知して得られる、2次元の位置ごとの検知結果を含む情報であって、前記検知装置と前記対象との間に存在し、前記電磁波を透過する透過体による歪みを含む複数の検知情報を取得する取得ステップと、
複数の前記検知情報それぞれから特徴点を検出する検出ステップと、
2次元の位置ごとの歪みを表す歪みマップに基づいて補正した前記特徴点の検出位置と、前記特徴点に対応する3次元位置と、の誤差を最小化することにより、前記歪みマップと、前記3次元位置と、前記検知位置と、を推定する推定ステップと、
を実行させ、
前記歪みマップは、前記検知情報より小さい解像度の複数の格子点ごとの前記歪みを示すフローを含み、
格子内の前記特徴点は、前記特徴点の周辺の複数の前記格子点のフローを補間して求められるフローの値を用いて補正される、
プログラム。
【請求項15】
車両を制御する車両制御システムであって、
対象の3次元位置を推定する情報処理装置と、
前記3次元位置に基づき車両を駆動するための駆動機構を制御する車両制御装置と、
を備え、
前記情報処理装置は、
1以上の検知装置により相互に異なる検知位置で電磁波を用いて前記対象を検知して得られる、2次元の位置ごとの検知結果を含む情報であって、前記検知装置と前記対象との間に存在し、前記電磁波を透過する透過体による歪みを含む複数の検知情報を取得する取得部と、
複数の前記検知情報それぞれから特徴点を検出する検出部と、
2次元の位置ごとの歪みを表す歪みマップに基づいて補正した前記特徴点の検出位置と、前記特徴点に対応する前記3次元位置と、の誤差を最小化することにより、前記歪みマップと、前記3次元位置と、前記検知位置と、を推定する推定部と、
を備え、
前記歪みマップは、前記検知情報より小さい解像度の複数の格子点ごとの前記歪みを示すフローを含み、
格子内の前記特徴点は、前記特徴点の周辺の複数の前記格子点のフローを補間して求められるフローの値を用いて補正される、
車両制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法、プログラムおよび車両制御システムに関する。
【背景技術】
【0002】
自動運転および運転者支援において、カメラ画像を用いて周辺領域および障害物などを検出する技術が知られている。例えばステレオカメラにより撮像された画像、または、移動体に搭載されたカメラにより撮像された時系列画像のように、複数の異なる位置で撮像された複数の画像を用いて、対象の位置または対象までの距離を推定する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-068272号公報
【文献】米国特許出願公開第2017/0019657号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術では、カメラと対象との間にガラス等の透過体が存在する場合には、対象の位置などを高精度に推定できない場合があった。
【課題を解決するための手段】
【0005】
実施形態の情報処理装置は、取得部と、検出部と、推定部と、を備える。取得部は、1以上の検知装置により相互に異なる検知位置で電磁波を用いて対象を検知して得られる、2次元の位置ごとの検知結果を含む情報であって、検知装置と対象との間に存在し、電磁波を透過する透過体による歪みを含む複数の検知情報を取得する。検出部は、複数の検知情報それぞれから特徴点を検出する。推定部は、2次元の位置ごとの歪みを表す歪みマップに基づいて補正した特徴点の検出位置と、特徴点に対応する3次元位置と、の誤差を最小化することにより、歪みマップと、3次元位置と、検知位置と、を推定する。
【図面の簡単な説明】
【0006】
【
図4】第1の実施形態における推定処理のフローチャート。
【
図5】フロントガラスの影響による画像の歪みの例を示す図。
【
図6】画像歪みにより生じ得る誤差を説明するための図。
【
図7】画像歪みにより生じ得る誤差を説明するための図。
【
図8】画像歪みにより生じ得る誤差を説明するための図。
【
図9】画像歪みにより生じ得る誤差を説明するための図。
【
図10】画像歪みフローによる補正および最適化処理を説明するための図。
【
図12】第2の実施形態における推定処理のフローチャート。
【
図14】第3の実施形態における推定処理のフローチャート。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0008】
上記のように、複数の画像を用いて対象の位置または対象までの距離などを推定する技術が知られている。例えばステレオカメラを用いる技術では、水平に左右に配置された2台のカメラを用いて、2台のカメラ間の相対的な位置関係は既知とした上で、ピクセルの対応付けから算出した視差(ステレオ視差)によりカメラからの対象までの距離が推定される。また、SfM(Structure From Motion)は、複数の画像への3次元点の再投影位置と、画像から検出された特徴点の位置との差である再投影誤差を最小化することで、カメラモーションから対象の3次元形状を再構成する技術(3次元再構成)である。
【0009】
このような技術では、3次元の幾何計算により光線を辿ることで3次元点の画像平面への投影を算出することが必要である。
【0010】
一方、自動車の走行環境を鑑みてカメラは車内に設置されることが多い。このため、カメラは、フロントガラスを介して画像を撮像することになる。フロントガラスを介して撮像することで光が屈折して画像が歪む。この歪みを考慮しない場合、ステレオ視差およびSfMによる3次元再構成に誤差が生じる。例えば、カメラの焦点距離および光学中心とともに、レンズ等による画像の歪みを補正するカメラキャリブレーションが知られている。カメラキャリブレーションは、例えば、サイズが既知であるチェッカパターンが印刷されたボードのような既知の対象を撮像した画像から予めオフラインで実行される。しかしこのような方法では、特殊な装置および前処理が必要となる。
【0011】
ガラスによる画像歪みによる3次元再構成の誤差を軽減する技術として、以下のような方法がある。
(T1)ガラスを介して撮像された画像を、光学的な歪み分布で補正し、補正した画像を用いてガラス歪みを考慮しない既知の手法により対象までの奥行距離を推定する。
(T2)ステレオカメラの一方のカメラのモーションから推定した3次元点に対応付けることで、他方のカメラの相対的な位置関係とカメラパラメータを画像歪みパラメータを含めて推定する。
【0012】
(T1)では、光学的な歪み分布で補正画像を生成するため、ガラス歪みを考慮していない後段の奥行推定手法の精度に、歪み分布の誤差が大きく影響する。また、画像ごとに補正を行うため複数の画像間で対象の幾何的な一貫性が保証されない。(T2)では、ステレオカメラの一方のカメラモーションで推定した3次元点はカメラの歪みを含むため、他方の歪みパラメータの推定精度に影響を及ぼす。
【0013】
(第1の実施形態)
第1の実施形態にかかる情報処理装置は、ガラスの歪みに起因する画像の歪みを画像上の各位置でのフローで近似した歪みマップを用いる。そして本実施形態にかかる情報処理装置は、カメラモーション、3次元特徴点の位置、および、歪みマップを同時に推定するように3次元再構成を行う。これにより、より精度の高い推定が可能となる。
【0014】
なお、以下では、推定の対象の情報を検知する検知装置、および、検知装置による検知結果を含む検知情報として、それぞれカメラ(撮像装置)および画像を用いる例を説明する。検知装置は、電磁波を用いて対象を検知し、2次元の位置ごとの検知結果を含む情報を検知情報として出力する装置であれば、カメラ以外の装置であってもよい。2次元の位置ごとの検知結果を含む情報は、2次元の位置ごとに画素値を含む2次元画像のように、2次元の位置ごとに検知結果が値として含まれる情報である。例えば、2次元の位置ごとに、検知装置から対象までの距離を示す値を含む距離画像を検知情報として使用しうる。
【0015】
例えば、赤外線を用いて対象を撮像し赤外線画像を検知情報として出力する赤外線カメラ、および、レーザー光を用いて対象を撮像し距離画像を検知情報として出力するLiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)を検知装置として用いてもよい。いずれの検知装置を用いる場合も、使用する電磁波を透過する物体である透過体を介して電磁波が検知されうることを前提とする。
【0016】
透過体は、フロントガラスなどの透明体を含む。以下では、透過体として可視光を透過する透明体を用いる例を説明する。透明体はフロントガラスに限定されず、例えばサイドガラスおよびリアガラスのように進行方向と異なる方向に備えられるガラスでもよい。また透明体は、カメラを保護する目的で設置されているガラスケースのような形態でもよい。また透明体はガラスに限られるものではない。透明体は、空気以外であって、カメラが透明体を介して対象を撮像できれば、例えば水およびアクリルなどでもよい。ここでは透過体として可視光を透過する透明体を用いた例で説明しているが、検知装置が検知する対象に応じて電磁波等を透過する透過体であってもよい。
【0017】
図1は、第1の実施形態の情報処理装置が搭載される移動体10の例を示す図である。
【0018】
移動体10は、情報処理装置20、フロントガラス30、出力部10A、カメラ10B、センサ10C、動力制御部10Gおよび動力部10Hを備える。
【0019】
移動体10は、例えば車両、台車、鉄道、移動ロボット、飛行体、および、人間等であるが、これらに限定されない。車両は、例えば自動二輪車、自動四輪車および自転車等である。また、移動体10は、例えば人による運転操作を介して走行する移動体でもよいし、人による運転操作を介さずに自動的に走行(自律走行)可能な移動体でもよい。
【0020】
情報処理装置20は、例えば専用または汎用のコンピュータハードウェアにより実現される。情報処理装置20は、カメラ10Bで撮像された画像から、道路上の物体(他の車両、障害物など)などの対象の位置を推定する。
【0021】
なお、情報処理装置20は、移動体10に搭載された形態に限定されない。情報処理装置20は、静止物に搭載されていてもよい。静止物は、例えば地面に固定された物等の移動不可能な物である。地面に固定された静止物は、例えばガードレール、ポール、駐車車両および道路標識等である。また例えば、静止物は、地面に対して静止した状態の物である。また、情報処理装置20は、クラウドシステム上で処理を実行するクラウドサーバに搭載されていてもよい。
【0022】
動力部10Hは、移動体10に搭載された駆動機構である。動力部10Hは、例えば、エンジン、モータおよび車輪等である。
【0023】
動力制御部10G(車両制御装置の一例)は、動力部10Hを制御する。動力制御部10Gの制御によって動力部10Hが駆動する。
【0024】
出力部10Aは情報を出力する。例えば、出力部10Aは、情報処理装置20により推定された対象の位置の推定結果を示す推定結果情報を出力する。
【0025】
出力部10Aは、例えば、推定結果情報を送信する通信機能、推定結果情報を表示する表示機能、および、推定結果情報を示す音を出力する音出力機能等を備える。出力部10Aは、例えば通信部10D、ディスプレイ10Eおよびスピーカ10Fの少なくとも1つを備える。以下では、出力部10Aは、通信部10D、ディスプレイ10Eおよびスピーカ10Fを備えた構成を例にして説明する。
【0026】
通信部10Dは、推定結果情報を他の装置へ送信する。例えば、通信部10Dは、通信回線を介して推定結果情報を他の装置へ送信する。ディスプレイ10Eは、推定結果に関する情報を表示する。ディスプレイ10Eは、例えばLCD(Liquid Crystal Display)、投影装置およびライト等である。スピーカ10Fは、推定結果に関する情報を示す音を出力する。
【0027】
カメラ10Bは、例えば単眼カメラ、ステレオカメラ、魚眼カメラおよび赤外線カメラ等である。カメラ10Bの数は限定されない。また、撮像される画像はRGBの3チャネルで構成されたカラー画像であってもよく、グレースケールで表現された1チャネルのモノクロ画像であってもよい。カメラ10Bは、移動体10周辺の時系列の画像を撮像する。カメラ10Bは、例えば移動体10の周辺を時系列に撮像することにより、時系列の画像を出力する。移動体10の周辺は、例えば当該移動体10から予め定められた範囲内の領域である。この範囲は、例えばカメラ10Bの撮像可能な範囲である。
【0028】
以下では、カメラ10Bが、フロントガラス30を介して移動体10の前方を撮像方向として含むように設置されている場合を例にして説明する。すなわち、カメラ10Bは、移動体10の前方を時系列に撮像する。
【0029】
センサ10Cは、測定情報を測定するセンサである。測定情報は、例えば移動体10の速度、および、移動体10のハンドルの舵角を含む。センサ10Cは、例えば慣性計測装置(IMU:Inertial Measurement Unit)、速度センサおよび舵角センサ等である。IMUは、移動体10の三軸加速度および三軸角速度を含む測定情報を測定する。速度センサは、タイヤの回転量から速度を測定する。舵角センサは、移動体10のハンドルの舵角を測定する。また例えば、センサ10Cは、LiDARのように物体までの距離を計測する奥行距離センサである。
【0030】
次に、第1の実施形態の移動体10の機能構成の例について詳細に説明する。
【0031】
図2は第1の実施形態の移動体10の機能構成の例を示す図である。
【0032】
移動体10は、情報処理装置20、出力部10A、カメラ10B、センサ10C、動力制御部10Gおよび動力部10Hを備える。情報処理装置20は、処理部20Aおよび記憶部20Bを備える。出力部10Aは、通信部10D、ディスプレイ10Eおよびスピーカ10Fを備える。
【0033】
処理部20A、記憶部20B、出力部10A、カメラ10B、センサ10Cおよび動力制御部10Gは、バス10Iを介して接続されている。動力部10Hは、動力制御部10Gに接続されている。
【0034】
なお、出力部10A(通信部10D、ディスプレイ10Eおよびスピーカ10F)、カメラ10B、センサ10C、動力制御部10Gおよび記憶部20Bは、ネットワークを介して接続されていてもよい。接続に使用されるネットワークの通信方式は、有線方式であっても無線方式であってもよい。また、接続に使用されるネットワークは、有線方式と無線方式とを組み合わせることにより実現されていてもよい。
【0035】
記憶部20Bは、例えば半導体メモリ素子、ハードディスクおよび光ディスク等である。半導体メモリ素子は、例えばRAM(Random Access Memory)およびフラッシュメモリ等である。なお、記憶部20Bは、情報処理装置20の外部に設けられた記憶装置であってもよい。また、記憶部20Bは、記憶媒体であってもよい。具体的には、記憶媒体は、プログラムおよび各種情報を、LAN(Local Area Network)またはインターネットなどを介してダウンロードして記憶または一時記憶したものであってもよい。また、記憶部20Bを、複数の記憶媒体から構成してもよい。
【0036】
図3は、処理部20Aの機能構成の一例を示すブロック図である。
図3に示すように、処理部20Aは、取得部101と、検出部102と、推定部103と、を備える。
【0037】
取得部101は、異なる撮像位置(検知位置の一例)で撮像された複数の画像(検知情報の一例)を取得する。撮像位置とは、画像を撮像したときのカメラ10Bの位置を表す。1つのカメラ10Bを用いる場合は、取得部101は、例えば移動体10の移動に伴い変動する複数の撮像位置それぞれでカメラ10Bにより撮像された複数の画像を取得する。カメラ10Bがステレオカメラである場合は、ステレオカメラを構成する左右のカメラの撮像位置が相互に異なると解釈してもよい。例えば取得部101は、ある時刻で左右のカメラそれぞれで撮像された2つの画像を取得してもよい。
【0038】
上記のように、カメラ10Bは、フロントガラス30を介して撮像を行うため、画像は、フロントガラス30による歪みを含みうる。以下では、取得部101により取得された画像を歪み画像という場合がある。
【0039】
検出部102は、取得された複数の歪み画像それぞれから特徴点を検出する。特徴点の検出方法は、どのような検出方法であってもよい。例えば検出部102は、Harris検出器を用いて特徴点を検出することができる。検出部102は、フロントガラス30によって歪んでいる画像であることを考慮した検出方法を用いてもよい。例えば検出部102は、歪んでいる画像であることを考慮しない場合よりも特徴点と判定する閾値を緩く設定してもよい。
【0040】
推定部103は、検出された特徴点から、画像内に撮像された対象の位置を推定する。例えば推定部103は、複数の歪み画像それぞれに対して検出された複数の特徴点から、歪み画像を撮像したときのカメラ10Bのポーズと、特徴点の3次元の位置(3次元位置)と、歪み画像に対応する歪みマップと、を推定して出力する。カメラ10Bのポーズは、例えば、カメラ10Bの位置および姿勢を含む。推定部103は、例えば、歪みマップに基づいて補正した特徴点の検出位置と、3次元位置と、の誤差を最小化することにより、歪みマップと3次元位置と検知位置とを推定する。歪みマップは、2次元の位置ごとの変位量を歪みとして含む情報である。
【0041】
処理部20Aは、例えばCPU(Central Processing Unit)等のプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現されてもよい。また例えば、処理部20Aは、専用のIC(Integrated Circuit)等の1または複数のプロセッサ、すなわちハードウェアにより実現されてもよい。また例えば、処理部20Aは、ソフトウェアおよびハードウェアを併用することにより実現されてもよい。
【0042】
なお、実施形態において用いられる「プロセッサ」の文言は、例えば、CPU、GPU(Graphical Processing Unit)、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、および、プログラマブル論理デバイスを含む。プログラマブル論理デバイスは、例えば単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、および、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)等を含む。
【0043】
プロセッサは、記憶部20Bに保存されたプログラムを読み出し実行することで、処理部20Aを実現する。なお、記憶部20Bにプログラムを保存する代わりに、プロセッサの回路内にプログラムを直接組み込むよう構成してもよい。この場合、プロセッサは回路内に組み込まれたプログラムを読み出し実行することで、処理部20Aを実現する。
【0044】
なお、
図2に示す移動体10の機能の一部は、他の装置に備えられていてもよい。例えば、カメラ10Bおよびセンサ10C等が移動体10に搭載され、情報処理装置20は移動体10の外部に設置されたサーバ装置として動作させてもよい。この場合、通信部10Dが、カメラ10Bおよびセンサ10C等によって観測されたデータをサーバ装置に送信する。
【0045】
次に、このように構成された第1の実施形態にかかる情報処理装置20による推定処理について説明する。
図4は、第1の実施形態における推定処理の一例を示すフローチャートである。以下では、移動体10を車両とし、カメラ10Bを車両前方に向けて設置し、フロントガラス30を通して、車両前方を撮像する例を説明する。
【0046】
取得部101は、フロントガラス30を介して異なる位置で撮影された複数の画像を取得する(ステップS101)。まず、取得部101は、ある時点でカメラ10Bが車両前方を撮像して得られた画像を取得する。
【0047】
カメラ10Bは、フロントガラス30に対して車両の内部側に固定されている。従って、画像は、フロントガラス30を介して撮像される。フロントガラス30には歪みが生じており、フロントガラス30を介して撮像される画像には、ガラスの歪みに起因する歪みが生じる。フロントガラス30の歪みとは、光の屈折により入射光からずれが生じることを指す。歪みには、例えば以下のような種類がある。
・厚みの違い、および、曲面形状のような設計上の大域的な歪み
・周囲を固定されていることによる変曲および波状の凹凸
・温度変化による時間的な変化のような細かい局所的な歪み
【0048】
図5は、フロントガラス30の影響による画像の歪みの例を示す図である。左側の図に示すように、フロントガラス30がない場合は、3次元点501とカメラ10Bの中心とを結ぶ直線、および、画像平面の交点511が観測点となる。
【0049】
フロントガラス30が存在する場合は、フロントガラス30の厚み、および、光の入射角に応じて屈折が生じる。このため、同じ3次元点501に対応する交点512は、画像上の交点511とは異なる位置で観測される。このように、フロントガラス30を介した屈折によるずれ513が画像の歪みとして観測される。また、カメラ10Bとフロントガラス30との相対的な位置関係に応じて画像に歪みが生じ得る。例えばカメラ10Bの撮像面に対してフロントガラス30が傾きを持っている場合に画像に歪みが生じる。このようにフロントガラス30を介して撮像される画像は画像上の各位置で異なる歪みが生じる。
【0050】
取得部101は、移動体10が異なる位置に移動された後にフロントガラス30を介して撮像された画像をさらに取得する。このような処理が繰り返されることにより、取得部101は、異なる位置で撮影された複数の画像を取得する。
【0051】
例えば、カメラ10Bは、走行中の車両内で、一定の時間間隔で画像を撮像し時系列画像を出力する。移動体10に搭載されたカメラ10Bは1台とすると、少なくとも2つの異なる位置で歪み画像が必要である。
【0052】
これまでは移動体10とカメラ10Bの相対的な位置関係が固定されている場合について述べた。移動体10の基準点に対してカメラ10Bが相対的に移動可能な場合、移動体10の移動とは別にカメラ10Bを移動させる構成としてもよい。例えばカメラ10Bがアームの先端に設置されている場合にアームだけを移動させてもよい。
【0053】
図4に戻り、検出部102は、取得部101で取得された複数の歪み画像について、特徴点を検出する(ステップS102)。推定部103は、複数の歪み画像それぞれで検出された特徴点のうち、同一である特徴点を対応付ける(ステップS103)。
【0054】
例えば推定部103は、SIFT(Scale Invariant Feature Transform)特徴量を用いる対応付けを行う。対応付け方法はこれに限定されず、どのような方法であってもよい。推定部103は、フロントガラス30によって歪んでいる画像であることを考慮した方法を用いてもよい。例えば推定部103は、特徴線の周辺の領域を分割するときに、歪みの影響が少ない領域に限定してもよい。
【0055】
次に、推定部103は、カメラ10Bのポーズの初期値、および、特徴点の3次元位置の初期値を推定する(ステップS104)。例えば推定部103は、画像歪みを考慮せずにカメラ10Bのポーズおよび特徴点の3次元位置を推定し、初期値とする。初期値の推定には、例えば特徴点を用いてSfMなどを用いればよい。
【0056】
また推定部103は、ポーズの推定には特徴点を用いず、外部の別のセンサ(例えばIMU、ホイールエンコーダなど)で検知されるセンサデータを用いてポーズの初期値を推定してもよい。また推定部103は、フロントガラス30を介さない別のカメラにより撮像された画像を用いてもよい。
【0057】
フロントガラス30による画像歪みを考慮しない3次元再構成には誤差が生じる。
図6から
図9は、画像歪みにより生じ得る誤差を説明するための図である。
図6から
図9では、対象に相当する1つの特徴点を、フロントガラス30を介して2つのポーズで撮像した例を示す。
【0058】
図6は、フロントガラス30が存在しない場合の3次元再構成の例である。この場合、画像歪みを考慮する必要がないため、カメラ10Bの中心と、観測点611、612それぞれと、を結んだ2つの直線の交点が3次元点601として再構成される。
【0059】
図7は、フロントガラス30による光の屈折を考慮する場合の3次元再構成の例である。3次元点701は、屈折を考慮することにより再構成された点を示す。
【0060】
図8は、フロントガラス30が存在するが、画像歪みを考慮せずに3次元再構成を行った例を示す。この場合、誤った3次元点601が再構成される。ポーズについても、例えば外部のセンサを用いず特徴点を基準としてポーズを推定する場合、画像歪みによる誤差が含まれたポーズが推定される。
【0061】
図9は、本実施形態により、画像歪みを、画像上のずれを示す画像歪みフロー911、912として考慮する例を示す。
図9の詳細は後述する。
【0062】
図4に戻り、推定部103は、推定された初期値を用いて、特徴点の検出位置を画像上の位置ごとに画像歪みを示すフロー(画像歪みフロー)で補正して最適化することにより、ポーズと特徴点の3次元位置と歪みマップとを推定する(ステップS105)。
【0063】
推定処理の詳細について
図9を用いて説明する。フロントガラス30による屈折を考慮した3次元再構成では、カメラ中心から3次元点への光路を1つの直線で表現できない。このため光線の経路を辿る必要があるとともに、フロントガラス30への入射角を考える必要があり、実現は容易ではない。本実施形態では、フロントガラス30の屈折による観測点のずれを、画像歪みフロー911、912に置き換える。そして、画像上の観測点611、612、すなわち特徴点の検出位置を画像歪みフロー911、912で補正した点と、カメラ10Bの中心と、を結ぶ直線の交点を3次元点701として推定する。
【0064】
図10は、画像歪みフローによる補正および最適化処理を説明するための図である。推定部103は、特徴点iの3次元位置と、カメラ10Bのポーズjと、に基づいて、特徴点iを画像に投影して再投影位置p
ij(点1001)を得る。一方、推定部103は、特徴点の画像上の検出位置q
ijを、歪みマップGから取得した画像歪みフローG(q
ij)(画像歪みフロー911)で補正する。歪みマップGは、指定された検出位置q
ijに対応する画像歪みフローを出力する関数と解釈することができる。推定部103は、補正位置q
ij+G(q
ij)と再投影位置p
ijとの差を再投影誤差(矢印1011)として、以下の(1)式を最小化する。
【数1】
【0065】
(1)式内の和は、特徴点iと、特徴点iを検出した画像に対応するポーズjとのペア(i,j)について算出される。(1)式は再投影誤差の一例であり、補正位置と再投影位置の差を評価する誤差関数であれば(1)式以外の式を用いてもよい。
【0066】
推定部103は、最適化の手法としてどのような手法を用いてもよい。例えば推定部103は、LM(Levenberg Marquardt)法による非線形最適化を用いてもよい。推定部103は、すべての画像に対して1つの歪みマップを推定する。
【0067】
歪みマップは、各ピクセル位置のフローをパラメータとして持ってもよいし、ピクセルよりも疎な格子点のフローをパラメータとして持ってもよい。すなわち、歪みマップは、画像と同じ解像度で表されてもよいし、画像より小さい解像度で表されてもよい。後者の場合、フローは、歪みマップの解像度および検知情報の解像度の差異に応じて修正される。例えば、格子内の検出位置(ピクセル)に対するフローの値は、周辺の格子点のフローを補間して求められる。検出位置が含まれる格子に対するフローの値を、検出位置に対するフローの値として用いてもよい。
【0068】
誤差関数には、歪みマップへの拘束項が追加されてもよい。例えば隣接格子点のフローの平滑化項、および、特定のモデルからのフローの変位をパラメータとするバイアス項が誤差関数に追加されてもよい。
【0069】
上記説明では、画像歪みを考慮せずに推定した結果を初期値としたが、推定部103は、画像歪みを考慮して初期値を推定してもよい。また、特徴点の画像上の検出位置を補正する画像歪みフローを歪みマップとして推定したが、特徴点の3次元点の再投影位置を補正するフローを歪みマップとして推定してもよい。
【0070】
図4に戻り、推定部103は、推定結果を出力する(ステップS106)。推定部103は、例えば、ポーズ、特徴点の3次元位置、および、歪みマップの少なくとも1つを推定結果として出力する。例えば出力された歪みマップは、以降、画像に基づく3次元再構成を実行するときに使用することができる。
【0071】
以上のように、第1の実施形態の情報処理装置は、フロントガラスなどの透明体を介して撮像した歪み画像を取得し、画像から特徴点を検出し、特徴点の検出位置を歪みマップで補正して最適化することで、ポーズ、特徴点の3次元位置、および、画像の歪みを推定する。このとき、ポーズおよび特徴点の3次元位置とともに歪みマップを推定する。これにより、歪みを補正した画像を生成することなく、透明体に起因する画像の歪みを歪みマップとして局所的な画像の各位置のフローで推定することができる。さらに、複数の画像全体で、透明体およびカメラモーションに対して特徴点が一貫し、精度がより高い3次元再構成を実現できる。
【0072】
(第2の実施形態)
第2の実施形態にかかる情報処理装置は、画像が分類される複数のグループごとに歪みマップを推定する。
【0073】
第2の実施形態では、処理部の機能が第1の実施形態と異なる。その他の構成は
図2と同様であるため説明を省略する。
図11は、第2の実施形態にかかる処理部20A-2の構成の一例を示すブロック図である。
図11に示すように、処理部20A-2は、取得部101と、検出部102と、推定部103-2と、分類部104-2と、を備える。
【0074】
第2の実施形態では、推定部103-2の機能、および、分類部104-2を追加したことが第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる処理部20Aのブロック図である
図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0075】
分類部104-2は、取得された複数の画像を、歪みが相互に類似する複数の画像を含む複数のグループに分類する。グループとは、予め定められた条件によって分類した画像の集合である。グループ内に含まれる画像は、類似または同一の歪みを持つように分類されることが望ましい。分類部104-2は、例えば以下のように画像を分類する。
(R1)カメラ10Bとフロントガラス30との相対的な位置が類似する複数の画像を同一のグループに分類する。
(R2)状態が類似するフロントガラス30による歪みを含む複数の画像を同一のグループに分類する。
【0076】
取得部101が、外部の装置でグループに分類された画像を取得するように構成してもよいし、取得部101が画像を取得しながらグループに分類するように構成してもよい。この場合、取得部101が分類部104-2の機能を備えると解釈することができる。
【0077】
推定部103-2は、複数のグループごとに、歪みマップと3次元位置と検知位置とを推定する点が、第1の実施形態の推定部103-2と異なる。推定部103-2は、特徴点の検出位置を歪みマップの対応する位置の歪みフローで補正するときに、特徴点が検出された画像が属するグループに固有の歪みマップを用いる。これによりグループに属する画像ごとに同一の歪みマップを推定する構成とすることができる。
【0078】
以下、グループの分類方法、および、グループごとの推定の具体例を説明する。
【0079】
上記(R1)については、次のような分類方法がありうる。例えば複数のカメラ10Bが備えられる場合、分類部104-2は、複数のカメラ10Bごとにグループを設定し、複数のカメラ10Bそれぞれから得られる画像を、対応するグループに分類する。
【0080】
移動体10が、複数のカメラ10B(カメラ10B-a、カメラ10B-bとする)を搭載しているとする。例えばステレオカメラの左右のカメラが、それぞれカメラ10B-aおよびカメラ10B-bであってもよい。カメラ10B-a、カメラ10B-bは、複数の車両にそれぞれ搭載されたカメラでもよい。カメラ10B-a、カメラ10B-bのうち少なくとも一方は、路側に固定されたカメラであってもよい。
【0081】
分類部104-2は、カメラ10B-aで撮像した歪み画像をグループG-aに分類し、カメラ10B-bで撮像した歪み画像をグループG-bに分類する。
【0082】
推定部103-2は、カメラ10B-aに対応する歪みマップM-aと、カメラ10B-bに対応する歪みマップM-bとの2つの歪みマップを推定する。複数の異なるカメラ10Bを用いる場合は、カメラ10Bごとに異なるフロントガラス30を介して画像が撮像される。本実施形態によれば、フロントガラス30ごとの画像歪みの影響を考慮しつつ、ポーズと特徴点の3次元位置を推定できる。
【0083】
(R1)の他の例として、分類部104-2は、カメラ10Bとフロントガラス30の相対的な位置関係が変化した場合に、変化前後の画像をそれぞれ異なるグループに分類してもよい。例えば分類部104-2は、画像内に撮像される特定の対象(例えば車両のボンネットなど)の位置の変化を画像の解析などにより検知し、位置が変化した場合に、変化前後の画像を異なるグループに分類する。
【0084】
上記(R2)については、例えば、以下のような分類方法がありうる。例えば分類部104-2は、1つのカメラ10Bで取得した複数の画像を移動体10の走行場所に基づいて分類する。例えば分類部104-2は、移動距離を条件として、一定の距離(例えば100m)を移動するごとに新たなグループに分類してもよい。この場合、推定部103-2は、走行区間ごとに歪みマップを推定する。
【0085】
分類部104-2は、取得時間を条件として画像を分類してもよい。例えば分類部104-2は、一定時間(例えば数秒)ごとに、取得された画像を異なるグループに分類する。この場合、推定部103-2は、一定時間ごとに歪みマップを推定する。
【0086】
分類部104-2は、予め定められた複数の時間帯(例えば、朝、昼、晩など)を条件として画像を分類してもよい。これにより、推定部103-2は、外気温および天候の変化によりフロントガラス30の状態が変化し画像歪みが変化しても、時間帯ごとに歪みマップが推定できる。
【0087】
このように、フロントガラス30による画像歪みが徐々に変化する場合でも、フロントガラス30による画像歪みの影響を考慮しつつ、ポーズと特徴点の3次元位置を推定できる。
【0088】
分類部104-2は、フロントガラス30の状態を条件として画像を分類してもよい。例えば、分類部104-2は、フロントガラス30の透明度および色に応じてグループを分類してもよい。分類部104-2は、例えば取得された画像を解析することによりフロントガラス30の透明度および色の変化を検知し、検知結果に応じて画像を分類する。
【0089】
次に、このように構成された第2の実施形態にかかる情報処理装置による推定処理について
図12を用いて説明する。
図12は、第2の実施形態における推定処理の一例を示すフローチャートである。
【0090】
ステップS201は、第1の実施形態にかかる情報処理装置20におけるステップS101と同様の処理である。
【0091】
本実施形態では、分類部104-2が、取得された複数の画像をグループに分類する(ステップS202)。その後のステップS203~ステップS207は、グループごとに実行される点が、第1の実施形態にかかる情報処理装置20におけるステップS102~ステップS106と異なっている。
【0092】
以上、第2の本実施形態では、グループごとに異なる歪みマップが推定される。これにより、画像歪みが異なる複数の画像が含まれる場合でも、歪み補正画像を生成することなく、局所的に独立な画像歪みを画像の各位置のフローとして推定することができる。
【0093】
(第3の実施形態)
第3の実施形態にかかる情報処理装置は、歪みマップを推定する領域を示すマスクを生成し、生成したマスクに従い特徴点を補正して歪みマップを推定する。
【0094】
第3の実施形態では、処理部の機能が第1の実施形態と異なる。その他の構成は
図2と同様であるため説明を省略する。
図13は、第3の実施形態にかかる処理部20A-3の構成の一例を示すブロック図である。
図13に示すように、処理部20A-3は、取得部101と、検出部102と、推定部103-3と、マスク生成部105-3と、を備える。
【0095】
第3の実施形態では、推定部103-3の機能、および、マスク生成部105-3を追加したことが第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる処理部20Aのブロック図である
図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0096】
マスク生成部105-3は、歪みマップを推定する領域を示すマスクを生成する。マスクで示される領域は、画像歪みフローを推定する必要がある、または、推定可能である領域であることが望ましい。具体的なマスクの例は後述する。マスク生成部105-3は、カメラ10Bごとにマスクを生成してもよいし、画像ごとにマスクを生成してもよい。
【0097】
マスクは、歪みマップを推定するか否かの2値で表現されてもよいし、推定する優先度のように連続値で表現されていてもよい。いずれにしてもマスク生成部105-3は、画像中で歪みマップを推定する領域を指定し、それ以外の領域では歪みマップを推定しないような領域を示すマスクを生成する。
【0098】
推定部103-3は、生成されたマスクに基づいて特徴点を補正して、歪みマップを推定する。第1の実施形態とは異なり、本実施形態の推定部103-3は、すべての特徴点の位置は補正せず、マスクによって示される領域に含まれる特徴点のみを補正する。例えば推定部103-3は、マスクによって示される領域では、画像歪みフローを推定して特徴点の位置を補正する。推定部103-3は、それ以外の領域では、画像歪みは生じていないものとしてフローを推定せず、検出された特徴点の位置をそのまま再投影誤差の評価に用いる。
【0099】
上記例は、マスクが2値で表現される場合の例である。すなわち歪みマップを推定することを示す値が指定された領域では、推定部103-3は、特徴点を補正して歪みマップを推定する。マスクが連続値で表現されている場合には、連続値に応じて各特徴点を重みづけるように構成されてもよい。例えば、推定部103-3は、連続値に応じて重みづけた特徴点の情報を用いるように修正した関数Gを(1)式の中で用いてもよい。
【0100】
次に本実施形態におけるマスクの例を示す。マスク生成部105-3は、例えば以下の方法でマスクを生成することができる。
(M1)画像に含まれる領域のうち、フロントガラス30を透過した光により撮像された領域を示すマスクを生成する。
(M2)画像内の特定の対象が含まれる領域を示すマスクを生成する。
(M3)他の領域より多い特徴点を含む領域を示すマスクを生成する。
【0101】
(M1)の詳細について説明する。フロントガラス30がカメラ10Bの全体を覆っておらず、カメラ10Bで撮像される画像の一部のみがフロントガラス30を介して撮像される場合がある。このような場合、マスク生成部105-3は、フロントガラス30を介して撮像された画像の領域を示すマスクを生成する。
【0102】
例えば、可動式の窓を介してカメラ10Bが設置されている場合に、窓の開閉によって画像の一部のみに窓が写りこむ場合がある。このような場合、マスク生成部105-3は、窓の領域のみを示すマスクを生成する。例えばマスク生成部105-3は、画像を解析することにより画像内の領域が窓の領域であるか否かを判定することができる。
【0103】
マスク生成部105-3は、複数のカメラ10Bごとに異なるマスクを生成してもよい。これにより、フロントガラス30を介して対象を撮像するカメラ10Bと、フロントガラス30を介さないで対象を撮像するカメラ10Bとが混在するような構成でも適切な推定処理が可能となる。
【0104】
(M1)の方法により、画像内のフロントガラス30を介して撮像された領域を示すマスクを生成することで、画像中の一部の歪みマップを推定することができる。すなわち、画像の一部にフロントガラス30が写りこんでいる場合においても精度の高い3次元再構成が可能となる。
【0105】
(M2)の詳細について説明する。特定の対象が含まれる領域は、例えば、移動体(移動体10とは異なる他の移動体)以外の対象が含まれる領域である。なお移動体を特定の対象とし、(M2)を、“画像内の特定の対象が含まれない領域を示すマスクを生成する。”と解釈することもできる。
【0106】
推定部103-3は、3次元空間中の各3次元点を画像の異なる位置に投影するが、このときに、異なる位置の画像を撮像する間に3次元点は移動していないことが前提となっている。マスク生成部105-3は、移動体以外を含む領域を示すマスクを生成する。推定部103-3は、移動体に相当する領域の特徴点を歪みマップの推定に使用しない。
【0107】
除外する対象は、移動体の他、例えば繰り返し構造のような特徴点の対応付けが容易に失敗するような対象であってもよい。除外する対象は、例えば、セマンティックセグメンテーションおよび特定物体認識等の検出技術を用いて検出することができる。
【0108】
(M3)の詳細について説明する。マスク生成部105-3は、他の領域より多い特徴点を含む領域、言い換えると、特徴点が十分に検出できている領域をマスクとして生成する。推定部103-3は、複数の画像において同一の位置に検出された特徴点の歪みフローを全体最適化することで歪みマップを推定するが、フローを推定する範囲に特徴点の数が少ないと推定精度が劣化する。従って、マスクを用いて推定精度が担保される領域のみについて歪みマップを推定することが望ましい。
【0109】
他の領域より多い特徴点を含む領域は、例えば、特徴点の数または特徴点の密度が閾値を超えている領域である。例えばマスク生成部105-3は、特徴点の数、または、特徴点の密度を求め、求まった値が閾値を超えている領域を示すマスクを生成する。
【0110】
次に、このように構成された第3の実施形態にかかる情報処理装置による推定処理について
図14を用いて説明する。
図14は、第3の実施形態における推定処理の一例を示すフローチャートである。
【0111】
ステップS301、S302は、第1の実施形態にかかる情報処理装置20におけるステップS101、S102と同様の処理である。
【0112】
本実施形態では、マスク生成部105-3が、マスクを生成する(ステップS303)。
【0113】
ステップS304、S305は、第1の実施形態にかかる情報処理装置20におけるステップS103、S104と同様の処理である。
【0114】
本実施形態では、推定部103-3は、マスクを用いて推定を行う(ステップS306)。例えば推定部103-3は、マスクによって示される領域に含まれる特徴点のみを補正し、フローを推定する。マスクが連続値で表される場合は、推定部103-3は、連続値に応じて各特徴点を重みづけて推定を行ってもよい。
【0115】
ステップS307は、第1の実施形態にかかる情報処理装置20におけるステップS106と同様の処理である。
【0116】
このように、第3の実施形態では、マスクにより歪みマップを推定する領域を限定して特徴点を補正することで、フロントガラス30の歪みの影響を除去した精度の高い3次元再構成が可能となる。
【0117】
以上説明したとおり、第1から第3の実施形態によれば、対象の位置などの推定を、よりを高精度に実行することができる。
【0118】
第1から第3の実施形態にかかる情報処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0119】
第1から第3の実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0120】
さらに、第1から第3の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1から第3の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0121】
第1から第3の実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0122】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0123】
10 移動体
10A 出力部
10B カメラ
10C センサ
10D 通信部
10E ディスプレイ
10F スピーカ
10G 動力制御部
10H 動力部
10I バス
20 情報処理装置
20A、20A-2、20A-3 処理部
30 フロントガラス
101 取得部
102 検出部
103、103-2、103-3 推定部
104-2 分類部
105-3 マスク生成部