本開示において「ワールド座標系」とは、カメラの外部の実空間に基づいて設定された3次元座標系である。本開示において「カメラ座標系」は、カメラの位置を基準として設定される3次元座標系である。カメラ座標系とワールド座標系との間の変換は、カメラの外部パラメータによって規定される。本開示において「カメラの外部パラメータ」は、カメラの位置姿勢を意味する。本開示において「カメラの位置姿勢」とは、ワールド座標系において、基準となる位置に対するカメラの位置及び基準となる方向に対するカメラの傾き(姿勢)を意味する。
本開示において「画像座標系」とは、カメラが生成した画像において設定される2次元座標系である。本開示において「カメラの内部パラメータ」は、カメラの焦点距離及び画像座標系の画像中心の情報を含む。
本開示において「正規化画像座標系」とは、カメラの画像座標系を正規化した2次元座標系である。正規化画像座標系は、カメラの光軸上の点が原点となり、カメラの焦点距離が1となるように正規化される。正規化画像座標系を構成する2つの軸は、カメラの光軸に直交する。
以下、本開示に係る実施形態について、図面を参照して説明する。
(システム構成)
図1に示すように、ステレオカメラシステム1は、ステレオカメラ10と、画像処理装置20とを含む。図2及び図3に示すように、ステレオカメラシステム1は、移動体30に搭載される。
移動体30は、路面上を走行する。路面は、例えば、道路又は滑走路等を含む走行路の表面である。移動体30は、例えば、自動車、産業車両、鉄道車両又は生活車両等の車両である。ただし、移動体30は、車両に限定されない。他の例として、移動体30は、航空機、船舶又はドローン等であってもよい。航空機は、例えば、固定翼機又は回転翼機等である。
ステレオカメラ10と画像処理装置20とは、有線又は無線通信により通信可能である。ステレオカメラ10と画像処理装置20とは、ネットワークを介して通信してよい。ネットワークは、例えば、有線LAN(Local Area Network)、無線LAN又はCAN(Controller Area Network)等である。ステレオカメラ10及び画像処理装置20は、移動体30内の電子制御ユニット(ECU:Electronic Control Unit)と通信可能に構成されてよい。
ステレオカメラ10は、移動体30の種々の箇所に搭載されてよい。複数の実施形態のうちの1つにおいて、ステレオカメラ10は、車両である移動体30の内部に搭載され、ウインドシールドを介して移動体30の外部を撮像してよい。例えば、ステレオカメラ10は、ルームミラーの前方、又は、ダッシュボード上に配置される。複数の実施形態の1つにおいて、ステレオカメラ10は、車両のフロントバンパー、フェンダーグリル、サイドフェンダー、ライトモジュール及びボンネットの何れかに固定されてよい。
画像処理装置20は、移動体30の種々の箇所に搭載されてよい。例えば、画像処理装置20は、移動体30のダッシュボード内に搭載されてよい。
図2及び図3では、ステレオカメラ10と画像処理装置20とは、離れて位置する。ただし、ステレオカメラ10と画像処理装置20とは、同じ筺体内に収納され、一体的に構成されてよい。ステレオカメラ10と画像処理装置20とを同じ筺体に収納させた装置は、ステレオカメラ装置とも呼ばれる。
ステレオカメラ10は、互いに視差を有し、互いに協働する複数のカメラを含む。ステレオカメラ10は、少なくとも2つ以上のカメラを含む。本実施形態では、ステレオカメラ10は、第1カメラ11と、第2カメラ12とを含む。ステレオカメラ10は、複数のカメラを協働させて、複数の方向から対象を撮像することが可能である。ステレオカメラ10は、同じ筐体に複数のカメラが含まれる機器であってよい。ステレオカメラ10は、互いに独立し、且つ、互いに離れて位置する2台以上のカメラを含む機器であってよい。ただし、ステレオカメラ10は、互いに独立した複数のカメラに限定されない。本開示のステレオカメラ10には、例えば、離れた2箇所に入射される光を1つの受光素子に導く光学機構を有するカメラを採用することもできる。本開示では、同じ被写体を異なる視点から撮像して生成された複数の画像は、「ステレオ画像」とも記載される。
第1カメラ11は、光軸ОX1を規定する光学系と、撮像素子とを備える。第2カメラ12は、光軸OX2を規定する光学系と、撮像素子とを備える。第1カメラ11の光軸OX1と第2カメラの光軸OX2とは、異なる。光学系は、レンズ又はミラーを含む。光学系は、被写体像を撮像素子の受光面に結像させてよい。第1カメラ11及び第2カメラ12のそれぞれの光学系は、魚眼レンズ等の広角レンズを含んでよい。ただし、第1カメラ11及び第2カメラ12のそれぞれの光学系は、広角レンズに限定されず、任意のレンズを含んでよい。撮像素子は、CCDイメージセンサ(Charge-Coupled Device Image Sensor)及びCMOSイメージセンサ(Complementary MOS Image Sensor)を含む。第1カメラ11及び第2カメラ12のそれぞれの撮像素子は、それぞれ、光軸OX1及び光軸OX2に垂直な同じ面内に存在してよい。第1カメラ11及び第2カメラ12は、画像のデータを生成する。画像のデータは、撮像素子で結像された画像を表すデータである。
第1カメラ11及び第2カメラ12は、例えば、互いに固定される。第1カメラ11と第2カメラ12との間では、例えば第1カメラ11と第2カメラ12とが互いに固定されることにより、相対的な位置姿勢が互いに定められている。
第1カメラ11の光軸OX1と第2カメラ12の光軸OX2とは、互いに同じ被写体を撮像可能な方向を向いている。第1カメラ11及び第2カメラ12がそれぞれ撮像した画像に少なくとも同じ被写体が含まれるように、第1カメラ11の位置及び光軸OX1と、第2カメラ12の位置及び光軸ОX2とが定められる。第1カメラ11の光軸OX1と第2カメラ12の光軸OX2とは、互いに平行になるように向けられる。この平行は、厳密な平行に限定されず、組み立てのずれ、取付けのずれ及びこれらの経時によるずれを許容する。第1カメラ11の光軸OX1と第2カメラ12の光軸OX2とは、平行に限定されず、互いに異なる方向を向いてよい。第1カメラ11の光軸OX1と第2カメラ12の光軸OX2とが互いに平行でない場合でも、ステレオカメラ10又は画像処理装置20内で、画像を変換することによりステレオ画像を生成可能である。基線長は、第1カメラ11の光学中心と第2カメラ12の光学中心との間の距離である。基線長は、第1カメラ11と第2カメラ12との間のレンズの中心の距離に相当する。基線長方向は、第1カメラ11の光学中心と第2カメラ12の光学中心とを結ぶ方向である。
図2に示すように、第1カメラ11及び第2カメラ12は、移動体30の前方を撮像可能となるように配置される。例えば、第1カメラ11の光軸ОX1及び第2カメラ12の光軸OX2が移動体30の前方と平行となるように、第1カメラ11及び第2カメラ12が配置される。
第1カメラ11及び第2カメラ12は、光軸OX1及び光軸ОX2に交わる方向において離れて位置する。複数の実施形態のうちの1つにおいて、第1カメラ11及び第2カメラ12は、移動体30の左右方向に沿って位置する。第1カメラ11は、前方を向いたときに第2カメラ12の左側に位置する。第2カメラ12は、前方を向いたときに第1カメラ11の右側に位置する。
第1カメラ11は、被写体を撮像して基準画像を生成する。基準画像が撮像により生成される位置すなわち第1カメラ11の位置は、「基準位置」とも記載される。第2カメラ12は、被写体を撮像して参照画像を生成する。参照画像が撮像により生成される位置すなわち第2カメラ12の位置と第1カメラ11の位置とは、異なる。第1カメラ11の位置と第2カメラ12の位置とが異なることにより、同じ被写体であっても、基準画像における被写体の位置と参照画像における被写体の位置とは、異なる。基準画像及び参照画像は、異なる視点から被写体を撮像して生成されたステレオ画像となる。第1カメラ11及び第2カメラ12は、所定のフレームレート(例えば30fps)で被写体を撮像してよい。
図1に示すように、画像処理装置20は、取得部21と、出力部22と、記憶部23と、制御部24とを備える。
取得部21は、画像処理装置20の入力用インタフェースである。取得部21は、ステレオカメラ10及び他の装置から情報の入力を受け付け可能である。取得部21には、物理コネクタ、及び、無線通信モジュールが採用可能である。物理コネクタには、電気信号による伝送に対応した電気コネクタ、光信号による伝送に対応した光コネクタ、及び、電磁波による伝送に対応した電磁コネクタが含まれる。電気コネクタには、IEC60603に準拠するコネクタ、USB規格に準拠するコネクタ、RCA端子に対応するコネクタ、EIAJ CP-1211Aに規定されるS端子に対応するコネクタ、EIAJ RC-5237に規定されるD端子に対応するコネクタ、HDMI(登録商標)規格に準拠するコネクタ、及び、BNCを含む同軸ケーブルに対応するコネクタが含まれる。光コネクタには、IEC 61754に準拠する種々のコネクタが含まれる。無線通信モジュールには、Bluetooth(登録商標)、及び、IEEE802.11を含む各規格に準拠する無線通信モジュールが含まれる。
取得部21は、第1カメラ11が生成した基準画像のデータと、第2カメラ12が生成した参照画像のデータとを取得する。取得部21は、取得した基準画像のデータ及び参照画像のデータを、制御部24に出力する。取得部21は、ステレオカメラ10のデータの伝送方式に対応してよい。取得部21は、ネットワークを介してステレオカメラ10の出力用インタフェースに接続されてよい。取得部21は、ネットワークを介して移動体30内の電子制御ユニットに接続されてよい。
出力部22は、画像処理装置20の出力用インタフェースである。出力部22は、画像処理装置20の処理結果を、移動体30内の他の装置又は移動体30外の他の装置に出力可能である。移動体30内の他の装置は、オートクルーズコントロール等の走行支援装置、及び、自動ブレーキ装置等の安全装置を含んでよい。移動体30外の他の装置は、他車両及び路測機等を含んでよい。移動体30内の他の装置又は移動体30外の他の装置は、画像処理装置20から受信した情報を適宜使用することができる。出力部22は、取得部21と同じ又は類似に、有線及び無線の通信に対応した種々のインタフェースを含んでよい。
記憶部23は、少なくとも1つの半導体メモリ、少なくとも1つの磁気メモリ、少なくとも1つの光メモリ又はこれらのうちの少なくとも2種類の組み合わせを含んで構成される。半導体メモリは、例えば、RAM(Random Access Memory)又はROM(Read Only Memory)等である。RAMは、例えば、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等である。ROMは、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)等である。記憶部23は、主記憶装置、補助記憶装置又はキャッシュメモリとして機能してよい。記憶部23は、画像処理装置20の動作に用いられるデータと、画像処理装置20の動作によって得られたデータとを記憶する。
記憶部23は、第1カメラ11及び第2カメラ12の内部パラメータを記憶する。記憶部23は、第1カメラ11及び第2カメラ12の外部パラメータを記憶する。記憶部23は、後述する回転行列R及び並進ベクトルtを記憶する。
制御部24は、少なくとも1つのプロセッサ、少なくとも1つの専用回路又はこれらの組み合わせを含んで構成される。プロセッサは、CPU(Central Processing Unit)若しくはGPU(Graphics Processing Unit)等の汎用プロセッサ又は特定の処理に特化した専用プロセッサである。専用回路は、例えば、FPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit)等である。制御部24は、画像処理装置20の各部を制御しながら、画像処理装置20の動作に関わる処理を実行する。
制御部24は、取得部21から、基準画像及び参照画像のデータを取得する。制御部24は、基準画像及び参照画像に対して歪み補正処理を実行する。歪み補正処理は、レンズの歪曲収差を補正する処理である。制御部24は、歪み補正処理に加えて、明度調整処理、コントラスト調整処理及びガンマ補正処理等の任意の画像処理を実行してもよい。以下、歪み補正処理等を実行した後の基準画像は、「基準画像40」とも記載される。また、歪み補正処理等を実行した後の参照画像は、「参照画像41」とも記載される。
制御部24は、以下に説明するように、参照画像41を第1仮想画像42及び第2仮想画像43に変換する。制御部24は、以下に説明するように、基準画像40における被写体の位置と、第1仮想画像42又は第2仮想画像43における被写体の位置とを比較した結果に基づいて、基準位置から被写体までの距離を算出する。
<第1方向における距離の取得>
制御部24は、参照画像41を第1仮想画像42に変換する。第1仮想画像42は、図4に示すような実空間上の仮想点X1q(q=1,…,m1)(m1は1以上の整数)を基準位置で撮像したと仮想した画像である。仮想点X1qは、実空間において第1方向D1に沿って基準位置から第1距離d1qだけ離れて位置する。第1方向D1は、第1カメラ11の光軸ОX1に沿う方向すなわち第1カメラ11の光軸方向である。第1方向D1の情報は、カメラ座標系に対応付けられて記憶部23に予め記憶されてよい。制御部24は、記憶部23からカメラ座標系に対応付けられた第1方向D1の情報を取得することにより、第1方向D1を特定してよい。以下、第1距離d1qに対応する第1仮想画像42は、「第1仮想画像42q」とも記載される。
制御部24は、参照画像41を第1仮想平面V1
qに射影変換し、射影変換後の参照画像41を第1仮想画像42
qとして取得する。第1仮想平面V1
qは、仮想点X1
qが位置する仮想的な平面である。第1仮想平面V1
qは、第1方向D1に沿って基準位置から第1距離d1
qだけ離れて位置する。つまり、第1距離d1
qに対応する第1仮想画像42
qとは、第1方向D1に沿って基準位置から第1距離d1
qだけ離れて位置する第1仮想平面V1
qに参照画像41を射影変換した後の画像とも言える。第1仮想平面V1
qの法線方向は、第1方向D1と一致する。参照画像41を第1仮想平面V1
qに射影変換して第1仮想画像42
qを取得する処理は、プレーンスイープ法(Plane Sweep)による処理とも言える。ここで、図4において、正規化画像座標x1は、基準画像40の正規化画像座標系C1における仮想点X1
qの座標である。正規化画像座標x2は、参照画像41の正規化画像座標系C2における仮想点X1
qの座標である。正規化画像座標x1と正規化画像座標x2との関係は、平面射影変換H
qによって「x2=H
qx1」と表される。つまり、制御部24は、平面射影変換H
qによって参照画像41を第1仮想画像42に変換することができる。平面射影変換H
qは、式(1)によって表される。
式(1)において、回転行列Rは、第1カメラ11を基準とする第2カメラ12の回転を示す回転行列である。並進ベクトルtは、第1カメラ11を基準とする第2カメラ12の並進を示すベクトルである。回転行列Rと並進ベクトルtは、第1カメラ11と第2カメラ12との間で相対的な位置姿勢が互いに定められていることにより既知である。制御部24は、記憶部23から回転行列R及び並進ベクトルtの情報を取得する。法線ベクトルn
qは、第1仮想平面V1
qの法線ベクトルである。第1距離d1
qは、第1方向D1における第1仮想平面V1
qの基準位置からの距離である。
制御部24は、式(1)の第1距離d1qを変化させていきながら、複数の第1仮想画像42qを取得する。ここで、被写体が第1被写体である場合、制御部24は、第1仮想画像42qによって、実空間上の第1被写体までの距離を取得することができる。第1被写体は、第1仮想平面V1qに平行な面を含む。つまり、第1被写体の少なくとも一部の面の法線方向は、第1仮想平面V1qの法線方向すなわち第1方向D1と一致する。第1被写体に含まれる面の法線方向が第1方向D1と一致することにより、第1方向D1に沿う第1距離1qを変化させながら複数の第1仮想画像42qを取得した場合、第1仮想画像42qにおける第1被写体の位置は、第1距離d1qに応じて変化する。さらに、第1距離d1qが第1方向D1における基準位置から第1被写体までの距離と一致する場合、第1仮想画像42qにおける第1被写体の位置は、基準画像40における第1被写体の位置と一致する。
そこで、制御部24は、基準画像40における第1被写体の位置と第1仮想画像42qにおける第1被写体の位置とを比較した結果に基づいて、第1被写体までの距離を算出する。例えば、制御部24は、基準画像40における第1被写体の位置と、複数の第1仮想画像42qのそれぞれにおける第1被写体の位置とを比較する。制御部24は、複数の第1仮想画像42qのうちから、その第1仮想画像42qにおける第1被写体の位置が基準画像40における第1被写体の位置に最も近い第1仮想画像42qを特定する。制御部24は、特定した第1仮想画像42qに対応する第1距離d1qを、実空間上の第1方向D1における基準位置から第1被写体までの距離として取得する。
図5に、基準画像40a及び参照画像41aを示す。基準画像40aは、部分画像40оb1を含む。部分画像40оb1は、第1カメラ11が第1被写体оb1を撮像して生成した画像である。参照画像41aは、部分画像41оb1を含む。部分画像41оb1は、第2カメラ12が第1被写体оb1を撮像して生成した画像である。第1被写体оb1の正面の法線方向は、第1方向D1に一致する。
図5では、q=1,2,3とする。参照画像41aの右側に、第1仮想画像42a1、第1仮想画像42a2及び第1仮想画像42a3を示す。制御部24は、第1仮想画像42a1を、第1距離d11=10cmとして参照画像41aを第1仮想平面V11に射影変換して取得する。制御部24は、第1仮想画像42a2を、第1距離d12=20cmとして参照画像41aを第1仮想平面V12に射影変換して取得する。制御部24は、第1仮想画像42a3を、第1距離d13=30cmとして参照画像41aを第1仮想平面V13に射影変換して取得する。
図5において、制御部24は、基準画像40aにおける第1被写体оb1の位置例えば部分画像40оb1の位置と、第1仮想画像42a1~42a3のそれぞれにおける第1被写体оb1の位置例えば部分画像41оb1の位置とを比較する。図5では、説明のため、第1仮想画像42a1~42a3のそれぞれにおいて、基準画像40aの部分画像40оb1を破線で示す。第1仮想画像42a1~42a3のそれぞれにおける第1被写体оb1の位置うち、第1仮想画像42a2における第1被写体оb1の位置が基準画像40aにおける第1被写体оb1の位置に最も近い。制御部24は、第1仮想画像42a1~42a3のうちから、基準画像40aにおける第1被写体оb1の位置と第1被写体оb1の位置が最も近い第1仮想画像42a2を特定する。制御部24は、特定した第1仮想画像42a2に対応する第1距離d12=20cmを、実空間上の第1方向D1における基準位置から第1被写体оb1までの距離として取得する。
制御部24は、基準画像40における第1被写体の位置と複数の第1仮想画像42qのそれぞれにおける第1被写体の位置との比較を、基準画像40と複数の第1仮想画像42qとを用いた特徴量マッチングによって実行してもよい。この場合、制御部24は、基準画像40及び複数の第1仮想画像42qのそれぞれの各画素から、特徴量を抽出する。特徴量は、例えば、画素の輝度及び色の少なくとも何れかを含む。制御部24は、AKAZE(Accelerated-KAZE)、ORB(Oriented FAST and Rotated BRIEF)又はSIFT(Scale-Invariant Feature Transform)等の任意のアルゴリズムによって、特徴量を抽出してよい。特徴量は、AKAZE、ORB又はSIFT等の形式で表されてもよいし、他の種々の形式で表されてもよい。制御部24は、基準画像40と、複数の第1仮想画像42qのそれぞれとにおいて、同じ座標の画素の特徴量を比較する。制御部24は、複数の第1仮想画像42qのうちから、基準画像40の同じ座標の画素の特徴量と最も類似度が高い第1仮想画像42qを特定する。特徴量の類似度の評価として、制御部24は、基準画像40と複数の第1仮想画像42qのそれぞれとにおいて同じ座標の画素の特徴量の評価値をZNCC(Zero means Normalized Cross Correlation)によって算出してもよい。制御部24は、複数の第1仮想画像42qのうちから、評価値が最も小さい第1仮想画像42qを、基準画像40の同じ座標の画素の特徴量と最も類似度が高い第1仮想画像42qとして特定してよい。制御部24は、特定した第1仮想画像42qに対応する第1距離d1qを、特徴量を比較した画素に対応付ける。画素に対応付けられた第1距離d1qは、その画素に写る被写体までの第1方向D1における基準位置からの距離となる。つまり、後の処理等において、制御部24は、被写体が写る画素に対応付けられた第1距離d1qを取得することにより、第1方向D1における基準位置からその被写体までの距離を取得することができる。画素に限定されず、制御部24は、基準画像40と複数の第1仮想画像42qのそれぞれとにおいて、同じ位置のブロックの特徴量を比較してもよい。ブロックは、少なくとも1つの画素を含む。ブロックの特徴量は、ブロックに含まれる画素の特徴量の平均値であってよい。
制御部24は、取得した第1距離d1
qすなわち第1方向D1における基準位置から第1被写体までの距離によって、基準位置から第1被写体までの距離を算出する。制御部24は、式(2)によって、基準位置から第1被写体までの直線距離Zを算出してよい。
式(2)において、単位ベクトルbは、正規化画像座標系C1の原点から第1被写体が写る画素に向かう方向に対応するカメラ座標系の方向の単位ベクトルである。
<第2方向における距離の取得>
制御部24は、参照画像41を第2仮想画像43に変換する。第2仮想画像43は、図6に示すような実空間上の仮想点X2q(q=1,…,m2)(m2は1以上の整数)を基準位置で撮像したと仮想した画像である。仮想点X2qは、実空間において第2方向D2に沿って基準位置から第2距離d2qだけ離れて位置する。第2方向D2は、第1方向D1とは異なる方向である。例えば、第2方向D2におけるベクトルと、第1方向D1におけるベクトルとの内積は、0以外となる。第2方向D2は、水平面の法線方向であってよい。以下、第2方向D2は、路面の法線方向であるものとする。ただし、第2方向D2は、第1方向D1とは異なる方向であればよく、路面の法線方向に限定されない。第2方向D2の情報は、カメラ座標系に対応付けられて記憶部23に予め記憶されてよい。制御部24は、記憶部23からカメラ座標系に対応付けられた第2方向D2の情報を取得することにより、第2方向D2を特定してよい。以下、第2距離d2qに対応する第2仮想画像43は、「第2仮想画像43q」とも記載される。
制御部24は、参照画像41を第2仮想平面V2qに射影変換し、射影変換後の参照画像41を第2仮想画像43qとして取得する。第2仮想平面V2qは、仮想点X2qが位置する仮想的な平面である。第2仮想平面V2qは、基準位置から第2距離d2qだけ離れて位置する。つまり、第2距離d2qに対応する第2仮想画像43qとは、第2方向D2に沿って基準位置から第2距離d2qだけ離れて位置する第2仮想平面V2qに参照画像41を射影変換した後の画像と言える。第2仮想平面V2qの法線方向は、第2方向D2に一致する。第1方向D1と同じ又は類似に、制御部24は、式(1)の平面射影変換Hqによって参照画像41を第2仮想画像43qに変換することができる。第2仮想画像43qの変換では、式(1)の第1距離d1qの代わりに、第2距離d2qが用いられる。また、式(1)の法線ベクトルnqは、第2仮想平面V2qの法線ベクトルとなる。
制御部24は、式(1)の第2距離d2qを変化させていきながら、複数の第2仮想画像43qを取得する。ここで、被写体が第2被写体である場合、制御部24は、第2仮想画像43qによって、実空間上の第2被写体までの距離を取得することができる。第2被写体は、第2仮想平面V2qに平行な面を含む。つまり、第2被写体の少なくとも一部の面の法線方向は、第2仮想平面V2qの法線方向すなわち第2方向D2と一致する。第2被写体の例として、車止め及び路面の凹凸等が挙げられる。第2被写体は、第1被写体と同じ物体であってもよいし、第1被写体とは異なる物体であってもよい。第2被写体が第1被写体と同じ物体である場合、第2被写体は、第1仮想平面V1qに平行な面と、第2仮想平面V2qに平行な面とを含む。第2被写体に含まれる面の法線方向が第2方向D2と一致することにより、第2方向D2に沿う第2距離2qを変化させながら複数の第2仮想画像43qを取得した場合、第2仮想画像43qにおける第2被写体の位置は、第2距離d2qに応じて変化する。第2距離d2qが第2方向D2における基準位置から第2被写体までの距離と一致する場合、第2仮想画像43qにおける第2被写体の位置は、基準画像40における第2被写体の位置と一致する。
そこで、制御部24は、基準画像40における第2被写体の位置と第2仮想画像43qにおける第2被写体の位置とを比較した結果に基づいて、第2被写体までの距離を算出する。例えば、制御部24は、基準画像40における第2被写体の位置と、複数の第2仮想画像43qのそれぞれにおける第2被写体の位置とを比較する。制御部24は、複数の第2仮想画像43qのうちから、その第2仮想画像43qにおける第2被写体の位置が基準画像40における第2被写体の位置と最も近い第2仮想画像43qを特定する。制御部24は、特定した第2仮想画像43qに対応する第2距離d2qを、実空間上の第2方向D2における基準位置から第2被写体までの距離として取得する。この処理について図7を参照して説明する。
図7に、基準画像40b及び参照画像41bを示す。基準画像40bは、部分画像40оb2を含む。部分画像40оb2は、第1カメラ11が第2被写体оb2を撮像して生成した画像である。参照画像41bは、部分画像41оb2を含む。部分画像41оb2は、第2カメラ12が第2被写体оb2を撮像して生成した画像である。第2被写体оb2の上面の法線方向は、第2方向D2と一致する。
図7では、q=1,2,3とする。参照画像41bの右側に、第2仮想画像43b1、第2仮想画像43b2及び第2仮想画像43b3を示す。制御部24は、第2仮想画像43b1を、第2距離d21=10cmとして参照画像41bを第2仮想平面V21に射影変換して取得する。制御部24は、第2仮想画像43b2を、第2距離d22=20cmとして参照画像41bを第2仮想平面V22に射影変換して取得する。制御部24は、第2仮想画像43b3を、第2距離d23=30cmとして参照画像41bを第2仮想平面V23に射影変換して取得する。
図7において、制御部24は、基準画像40bにおける第2被写体оb2の位置例えば部分画像40оb2の位置と、第2仮想画像43b1~43b3のそれぞれにおける第2被写体оb2の位置例えば部分画像41оb2の位置とを比較する。図7では、説明のため、第2仮想画像43b1~43b3のそれぞれにおいて、基準画像40bの部分画像40оb2を破線で示す。第2仮想画像43b1~43b3のそれぞれにおける第2被写体оb2の位置うち、第2仮想画像43b2における第2被写体оb2の位置が基準画像40bにおける第2被写体оb2の位置に最も近い。制御部24は、第2仮想画像43b1~43b3のうちから、基準画像40bにおける第2被写体оb2の位置と第2被写体оb2の位置が最も近い第2仮想画像43b2を特定する。制御部24は、特定した第2仮想画像43b2に対応する第2距離d22=20cmを、実空間上の第2方向D2における基準位置から第2被写体оb2までの距離として取得する。
制御部24は、基準画像40における第2被写体の位置と複数の第2仮想画像43qのそれぞれにおける第2被写体の位置との比較を、基準画像40と複数の第2仮想画像43qとを用いた特徴量マッチングによって実行してもよい。この場合、制御部24は、基準画像40及び複数の第2仮想画像43qのそれぞれの各画素から、特徴量を抽出する。上述したように、制御部24は、AKAZE、ORB又はSIFT等の任意のアルゴリズムによって、特徴量を抽出してよい。制御部24は、基準画像40と、複数の第2仮想画像43qのそれぞれとにおいて、同じ座標の画素の特徴量を比較する。制御部24は、複数の第2仮想画像43qのうちから、基準画像40の同じ座標の画素の特徴量と最も類似度が高い第2仮想画像43qを特定する。特徴量の類似度の評価として、制御部24は、基準画像40と複数の第2仮想画像43qのそれぞれとにおいて同じ座標の画素の特徴量の評価値をZNCCによって算出してもよい。制御部24は、複数の第2仮想画像43qのうちから、評価値が最も小さい第2仮想画像43qを、基準画像40の同じ座標の画素の特徴量と最も類似度が高い第2仮想画像43qとして特定してよい。制御部24は、特定した第2仮想画像43qに対応する第2距離d2qを、特徴量を比較した画素に対応付ける。画素に対応付けられた第2距離d2qは、その画素に写る被写体までの第2方向D2における基準位置からの距離となる。つまり、後の処理等において、制御部24は、被写体が写る画素に対応付けられた第2距離d2qを取得することにより、第2方向D2における基準位置からその被写体までの距離を取得することができる。画素に限定されず、第1仮想画像42qと同じ又は類似に、制御部24は、基準画像40と複数の第2仮想画像43qのそれぞれとにおいて、同じ位置のブロックの特徴量を比較してもよい。
制御部24は、取得した第2距離d2qすなわち第2方向D2における基準位置から第2被写体までの距離によって、基準位置から第2被写体までの距離を算出する。制御部24は、式(2)によって、基準位置から第2被写体までの直線距離Zを算出してよい。第2方向D2では、式(2)の法線ベクトルnqは、第2仮想平面V2qの法線ベクトルとなる。また、式(2)の単位ベクトルbは、正規化画像座標系C1の原点から第2被写体が写る画素に向かう方向に対応するカメラ座標系の方向の単位ベクトルである。
(システム動作)
図8は、本開示の一実施形態に係る画像処理方法の手順を示すフローチャートである。本実施形態では、画像処理装置20が図8に示すような画像処理方法を実行する。制御部24は、ステレオカメラ10が撮像を開始すると、ステップS1の処理を開始する。
制御部24は、取得部21から、基準画像及び参照画像のデータを取得する(ステップS1)。制御部24は、基準画像及び参照画像に対して歪み補正処理を実行する(ステップS2)。上述したように、歪み補正処理等を実行した後の基準画像は、「基準画像40」とも記載される。また、歪み補正処理等を実行した後の参照画像は、「参照画像41」とも記載される。
制御部24は、第1距離d1qを変化させていきながら参照画像41を第1仮想平面V1qに射影変換することにより、複数の第1仮想画像42qを取得する(ステップS3)。制御部24は、基準画像40と複数の第1仮想画像42qとを用いて特徴量マッチングを実行する(ステップS4)。制御部24は、実空間上の第1方向D1における基準位置から第1被写体までの距離を取得する(ステップS5)。制御部24は、ステップS5の処理で取得した第1方向D1における距離によって、基準位置から第1被写体までの距離を算出する(ステップS6)。
制御部24は、第2距離d2qを変化させていきながら参照画像41を第2仮想平面V2qに射影変換することにより、複数の第2仮想画像43qを取得する(ステップS7)。制御部24は、基準画像40と複数の第2仮想画像43qとを用いて特徴量マッチングを実行する(ステップS8)。制御部24は、実空間上の第2方向D2における基準位置から第2被写体までの距離を取得する(ステップS9)。制御部24は、ステップS9の処理で取得した第2方向D2における距離によって、基準位置から第2被写体までの距離を算出する(ステップS10)。
このように本実施形態に係る画像処理装置20では、制御部24は、参照画像41を第1仮想平面V1qに射影変換して第1仮想画像42qを取得し、参照画像41を第2仮想平面V2qに射影変換して第2仮想画像43qを取得する。さらに、制御部24は、基準画像40における被写体の位置と、第1仮想画像42q又は第2仮想画像43qにおける被写体の位置とを比較した結果に基づいて、基準位置から被写体までの距離を算出する。ここで、上述したように、参照画像41を第1仮想平面V1qに射影変換して第1仮想画像42qを取得する処理は、プレーンスイープ法による処理とも言える。本実施形態では、制御部24は、プレーンスイープ法による処理に加えてすなわち第1仮想画像42qを取得する処理に加えて、参照画像41を第2仮想平面V2qに射影変換して第2仮想画像43qを取得する。このような構成により、以下に説明するように、被写体までの距離をより精度良く測定することができる。
第1比較例として、制御部24が、プレーンスイープ法による処理すなわち第1仮想画像42qを取得する処理のみを実行し、被写体までの距離を算出することを考える。第1比較例において、制御部24は、図7に示すような第2被写体оb2までの距離を算出する場合、参照画像41bを第1仮想平面V1qに射影変換して第1仮想画像42qを取得する。ここで、第2被写体оb2は、第1仮想平面V1qに平行な面を含まない。つまり、第2被写体оb2の何れの面の法線方向も、第1仮想平面V1qの法線方向すなわち第1方向D1と一致しない。そのため、第1方向D1の第1距離d1qを変化させながら複数の第1仮想画像42qを取得しても、複数の第1仮想画像42qのそれぞれにおける第2被写体оb2の位置は、第1距離d1qに応じて変化しない。複数の第1仮想画像42qのそれぞれにおける第2被写体оb2の位置が第1距離d1qに応じて変化しないことにより、第1仮想画像42qによって基準位置から第2被写体оb2までの距離を取得することができない。
このような第1比較例に対し、本実施形態では、制御部24は、第2方向D2と法線方向が一致する第2仮想平面V2qに参照画像41を射影変換して第2仮想画像43qを取得する。このような構成により、制御部24は、第1仮想平面V1qに平行な面を含まない第2被写体についても、第2仮想画像43qによって基準位置から第2被写体までの距離を取得することができる。よって、本実施形態によれば、被写体までの距離をより精度良く測定することができる。また、上述したように、第2被写体の例として、路面の凹凸が挙げられる。本実施形態では、路面の凹凸までの距離を算出することができるため、路面形状をより高精度に検出することができる。
第2比較例として、魚眼レンズによって撮像された基準画像及び参照画像によって被写体までの距離を測定することを考える。図9に、魚眼レンズによって撮像された画像40Xを説明するための図を示す。画像40Xにおける実線は、路面からの高さが同じになる地点を結んだ線である。画像40Xは、領域R1,R2を含む。領域R1では、領域R2と比較して実線の間隔が広い。領域R1では、実線の間隔が広いため、画像40Xに対して歪み補正を実行した場合、路面からの高さが異なる地点は、異なる画素に対応する。しかしながら、領域R2では、実線の間隔が狭いため、画像40Xに対して歪み補正を実行した場合、路面からの高さが異なる地点が、同じ画素に対応し得る。領域R2では、路面からの高さが異なる地点が同じ画素に対応するため、画像40Xのような基準画像及び参照画像にプレーンスイープ法を適用しても、被写体までの距離を取得できない場合がある。
本実施形態では、制御部24は、プレーンスイープ法による処理に加えてすなわち第1仮想画像42qを取得する処理に加えて、参照画像41を第2仮想平面V2qに射影変換して第2仮想画像43qを取得する。制御部24は、参照画像41を第2仮想画像43qに変換することにより、領域R2に写る被写体までの距離を取得することができる。つまり、本実施形態では、第1カメラ11及び第2カメラ12の光学系に魚眼レンズを採用しても、被写体までの距離を取得することができる。本実施形態では、第1カメラ11及び第2カメラ12の光学系に魚眼レンズを採用することにより、より広い領域に存在する被写体の距離を取得することができる。
(他の実施形態に係るシステム構成)
図10に示すように、他の実施形態に係るステレオカメラシステム101は、ステレオカメラ10と、画像処理装置120とを含む。ステレオカメラシステム101は、図2に示すようなステレオカメラ10と同じ又は類似に、移動体30の種々の場所に搭載されてよい。画像処理装置120は、取得部21と、出力部22と、記憶部23と、制御部24と、センサ部25とを備える。
センサ部25は、慣性計測ユニット(IMU:Inertial Measurement Unit)又は慣性センサを含んで構成される。センサ部25は、互いに直交する3軸方向における加速度及角速度を検出する。センサ部25は、ステレオカメラ10と画像処理装置20とが同じ移動体30に搭載されることにより、ステレオカメラ10の姿勢情報を検出することができる。ステレオカメラ10の姿勢情報は、ワールド座標系において基準となる方向に対するステレオカメラ10の傾き(姿勢)である。
ここで、図11に示すように、ステレオカメラ10を搭載する移動体30が路面上の物体2に乗り上げることにより、ステレオカメラ10の姿勢が傾くことがある。図11では、移動体30の構成要素のうち、移動体30のタイヤのみを示す。物体2は、例えば、路面上の石である。ステレオカメラ10の姿勢が傾くと、ワールド座標系とカメラ座標系との間の相対的な位置関係が変化する。ワールド座標系とカメラ座標系との間の相対的な位置関係が変化すると、例えばカメラ座標系に予め対応付けられた方向を第2方向D2として特定する場合、特定した第2方向D2が路面の法線方向からずれる。特定した第2方向D2が路面の法線方向からずれると、式(1)の第2仮想平面V2qの法線ベクトルnqが路面の法線方向からずれる。法線ベクトルnqが路面の法線方向からずれると、第2仮想画像43qによって第2被写体までの距離を精度良く算出できなくなる可能性がある。
そこで、制御部24は、センサ部25によって、ステレオカメラ10の姿勢情報を取得する。制御部24は、ステレオカメラ10の姿勢情報によって、路面の法線方向を検出する。制御部24は、検出した路面の法線方向を第2方向D2すなわち第2仮想平面2V
qの法線方向とし、参照画像41を第2仮想平面V2
qに射影変換し、射影変換後の参照画像41を第2仮想画像43
qとして取得する。例えば、制御部24は、式(3)によって法線ベクトルn
qCを取得し、式(4)によって第2距離d2
qCを取得する。制御部24は、取得した法線ベクトルn
qCを式(1)の法線ベクトルn
qに代入し、取得した第2距離d2
qCを式(1)の第1距離d1
qに代入し、参照画像41を第2仮想画像43
qに変換する。
式(3)及び式(4)において、回転行列R
W→Cは、ワールド座標系を基準とする第1カメラ11のカメラ座標系の回転を示す行列である。第1カメラ11と第2カメラ12との間の相対的な位置姿勢が既知であることにより、制御部24は、ステレオカメラ10の姿勢情報によって、第1カメラ11の姿勢情報を取得することができる。制御部24は、取得した第1カメラ11の姿勢情報によって回転行列R
W→Cを取得する。
このように路面の法線方向を検出することにより、図12に示すように、検出した路面の法線方向を第2方向D2すなわち第2仮想平面2Vqの法線方向とし、参照画像41を第2仮想画像43qに変換することができる。このような構成により、ワールド座標系とカメラ座標系との間の相対的な位置関係が変化しても、制御部24は、基準画像40と第2仮想画像43qとによって、第2被写体までの距離を精度良く検出することができる。他の実施形態において、第2方向D2が水平面の法線方向である場合、制御部24は、第1カメラ11の姿勢情報によって水平面の法線方向を検出してもよい。
(他の実施形態に係るシステム動作)
図13は、本開示の他の実施形態に係る画像処理方法の手順を示すフローチャートである。画像処理装置120が図13に示すような画像処理方法を実行する。制御部24は、ステレオカメラ10が撮像を開始すると、ステップS21の処理を開始する。
制御部24は、図8に示すようなステップS1,S2の処理と同じ又は類似に、ステップS21,S22の処理を実行する。
制御部24は、センサ部25によってステレオカメラ10の姿勢情報を取得し、取得したステレオカメラ10の姿勢情報によって路面の法線方向を検出する(ステップS23)。
制御部24は、図8に示すようなステップS3~S6の処理と同じ又は類似に、ステップS24~S27の処理を実行する。
ステップS28の処理では、制御部24は、ステップS23の処理で検出した路面の法線方向を第2仮想平面2Vqの法線方向とし、参照画像41を第2仮想平面V2qに射影変換し、射影変換後の参照画像41を第2仮想画像43qとして取得する。
制御部24は、図8に示すようなステップS8~S10の処理と同じ又は類似に、ステップS29~S31の処理を実行する。
他の実施形態に係る画像処理装置120は、センサ部25を備えなくてもよい。この場合、制御部24は、移動体30内の電子制御ユニットから、移動体30の姿勢情報を取得部21によって取得してよい。制御部24は、移動体30の姿勢情報をステレオカメラ10の姿勢情報として用い、路面の法線方向を検出してよい。
他の実施形態に係る画像処理装置120のその他の効果及び構成は、図1に示すような画像処理装置20の効果及び構成と同じ又は類似である。
(さらに他の実施形態に係るシステム構成)
さらに他の実施形態に係るステレオカメラシステムには、図1に示すようなステレオカメラシステム1と同じ構成を採用することができる。以下、図1を参照し、さらに他の実施形態に係るステレオカメラシステムについて説明する。
制御部24は、ステレオカメラ10の姿勢情報を、基準画像40と参照画像41とを用いたバンドル調整によって取得する。バンドル調整は、画像から抽出された特徴点群のそれぞれの座標と、特徴点群から復元された復元点群を画像に再投影させた再投影点群のそれぞれの座標との間のずれが最小化されるような、カメラの姿勢を推定する処理である。例えば、制御部24は、基準画像40及び参照画像41のそれぞれから、特徴点を抽出する。特徴点は、画像に写された被写体の部分のうち、隣接する他の部分から際立っている部分である。特徴点は、例えば、画素値の比較等により抽出可能な部分である。特徴点の一例として、画像に写された被写体の輪郭上の一点、及び、画像において画素値が極大又は極小となる点が挙げられる。制御部24は、AKAZE、ORB又はSIFT等の任意のアルゴリズムによって、特徴点を抽出してよい。特にORBによれば、信頼度の高い特徴点が画像に写された被写体のエッジ部分から抽出され得る。制御部24は、特徴点を抽出すると、基準画像40と参照画像41とにおいて対応する特徴点を特定する。対応する特徴点は、基準画像40と参照画像41とにおいて、同じ対象点を示す特徴点である。対象点は、3次元実空間上の被写体の一部である。制御部24は、基準画像40及び参照画像41に含まれる対応する特徴点に3次元実空間にて対応する点を、復元点とみなして復元する。制御部24は、ステレオカメラ10の姿勢すなわち外部パラメータと、カメラの内部パラメータとを用いた、三角測量の原理を利用することにより、対応する特徴点を復元してよい。制御部24は、復元点のワールド座標系の座標を取得する。制御部24は、復元点を基準画像40及び参照画像41のそれぞれの画像座標系に再投影させて再投影点の2次元座標を取得する。制御部24は、復元点を再投影させて取得された再投影点の2次元座標と、当該復元点の復元に用いた対応する特徴点の2次元座標との間のずれが最小化されるようなステレオカメラ10の姿勢を推定する。制御部24は、ステレオカメラ10の姿勢を推定することにより、ステレオカメラ10の姿勢情報を取得する。
制御部24は、ステレオカメラ10の姿勢情報によって、上述したように、路面の法線方向を検出する。上述したように、制御部24は、検出した路面の法線方向を第2方向D2すなわち第2仮想平面2Vqの法線方向とし、参照画像41を第2仮想平面V2qに射影変換し、射影変換後の参照画像41を第2仮想画像43qとして取得する。
このようなバンドル調整によって、慣性計測ユニットがなくても、制御部24は、ステレオカメラ10の姿勢情報を取得することができる。さらに、制御部24は、ステレオカメラ10の姿勢情報によって路面の法線方向を検出することができる。このような構成により、図12を参照して上述したように、ワールド座標系とカメラ座標系との間の相対的な位置関係が変化しても、制御部24は、基準画像40と第2仮想画像43qとによって、第2被写体までの距離を精度良く検出することができる。さらに他の実施形態において、第2方向D2が水平面の法線方向である場合、制御部24は、第1カメラ11の姿勢情報によって水平面の法線方向を検出してもよい。
(さらに他の実施形態に係るシステム動作)
さらに他の実施形態に係る画像処理方法は、図13に示す手順によって実行可能である。ただし、ステップS23の処理において、制御部24は、基準画像40と参照画像41とを用いたバンドル調整によってステレオカメラ10の姿勢情報を取得し、取得したステレオカメラ10の姿勢情報によって路面の法線方向を検出する。
さらに他の実施形態に係る画像処理装置20のその他の効果及び構成は、上述した実施形態に係る画像処理装置20の効果及び構成と同じ又は類似である。
(さらに他の実施形態に係るシステム構成)
さらに他の実施形態に係るステレオカメラシステムには、図1に示すようなステレオカメラシステム1と同じ構成を採用することができる。以下、図1を参照し、さらに他の実施形態に係るステレオカメラシステムについて説明する。
制御部24は、基準画像40又は参照画像41から、複数の特徴点を抽出する。制御部24は、AKAZE、ORB又はSIFT等の任意のアルゴリズムによって、特徴点を抽出してよい。特にORBによれば、信頼度の高い特徴点が画像に写された被写体のエッジ部分から抽出され得る。制御部24は、抽出した複数の特徴点から、直線性が高い特徴点群を検出する。直線性が高い特徴点群とは、特徴点群に含まれる複数の特徴点から導出される近似直線と、当該複数の特徴点のそれぞれのとの間のずれが閾値よりも小さい特徴点群である。閾値は、被写体までの距離を測定する所望の精度に基づいて、予め設定されてよい。制御部24は、検出した特徴点群に含まれる複数の特徴点に、3次元実空間にて対応する対応点のワールド座標系の座標を取得する。制御部24は、ステレオカメラ10の姿勢すなわち外部パラメータと、カメラの内部パラメータとを用いた、三角測量の原理を利用することにより、対応点のワールド座標系の座標を取得する。制御部24は、対応点のワールド座標系の座標によって、ステレオカメラ10の姿勢情報を検出する。
例えば、制御部24は、図14に示すような基準画像40cから、複数の特徴点44を抽出する。制御部24は、複数の特徴点44のうちから、直線性が高い特徴点群45を検出する。制御部24は、検出した特徴点群45によって、ステレオカメラ10の姿勢情報を検出する。
制御部24は、ステレオカメラ10の姿勢情報によって、上述したように、路面の法線方向を検出する。さらに他の実施形態において、第2方向D2が水平面の法線方向である場合、制御部24は、ステレオカメラ10の姿勢情報によって水平面の法線方向を検出してもよい。上述したように、制御部24は、検出した路面の法線方向を第2方向D2すなわち第2仮想平面2Vqの法線方向とし、参照画像41を第2仮想平面V2qに射影変換し、射影変換後の参照画像41を第2仮想画像43qとして取得する。
このように基準画像40又は参照画像41から直線性が高い特徴点群を検出することにより、慣性計測ユニットがなくても、路面の法線方向を検出することができる。このような構成により、図12を参照して上述したように、ワールド座標系とカメラ座標系との間の相対的な位置関係が変化しても、制御部24は、基準画像40と第2仮想画像43qとによって、第2被写体までの距離を精度良く検出することができる。
(さらに他の実施形態に係るシステム動作)
さらに他の実施形態に係る画像処理方法は、図13に示す手順によって実行可能である。
ただし、ステップS23の処理において、制御部24は、直線性が高い特徴点群を検出することによりステレオカメラ10の姿勢情報を取得し、取得したステレオカメラ10の姿勢情報によって路面の法線方向を検出する。
さらに他の実施形態に係る画像処理装置20のその他の効果及び構成は、上述した実施形態に係る画像処理装置20の効果及び構成と同じ又は類似である。
一実施形態において、(1)画像処理装置は、
基準位置で撮像により生成された基準画像のデータと、前記基準位置とは異なる位置で撮像により生成された参照画像のデータとを取得する取得部と、
前記参照画像を第1仮想平面に射影変換して第1仮想画像を取得し、前記参照画像を第2仮想平面に射影変換して第2仮想画像を取得し、前記基準画像における被写体の位置と前記第1仮想画像又は前記第2仮想画像における前記被写体の位置とを比較した結果に基づいて、前記基準位置から前記被写体までの距離を算出する制御部と、を備え、
前記第1仮想平面の法線方向は、前記基準位置で前記基準画像を生成したカメラの光軸方向である第1方向に一致し、前記第1仮想平面は、前記第1方向に沿って前記基準位置から第1距離だけ離れて位置し、
前記第2仮想平面の法線方向は、前記第1方向とは異なる第2方向に一致し、前記第2仮想平面は、前記第2方向に沿って前記基準位置から第2距離だけ離れて位置する。
(2)上記(1)の画像処理装置では、
前記制御部は、
前記第1距離を変化させながら複数の前記第1仮想画像を取得し、前記第2距離を変化させながら複数の前記第2仮想画像を取得する。
(3)上記(1)又は(2)の画像処理装置では、
前記被写体は、前記第1仮想平面に平行な面を含む第1被写体であり、
前記制御部は、前記基準画像における前記第1被写体の位置と前記複数の第1仮想画像のそれぞれにおける前記第1被写体の位置とを比較した結果に基づいて、前記基準位置から前記第1被写体までの距離を算出する。
(4)上記(1)から(3)までの何れかの画像処理装置では、
前記被写体は、前記第2仮想平面に平行な面を含む第2被写体であり、
前記制御部は、前記基準画像における前記第2被写体の位置と前記複数の第2仮想画像のそれぞれにおける前記第2被写体の位置とを比較した結果に基づいて、前記基準位置から前記第2被写体までの距離を算出する。
(5)上記(1)から(4)までの何れかの画像処理装置では、
前記制御部は、前記基準画像及び前記参照画像に対して歪み補正処理を実行する。
(6)上記(1)から(5)までの何れかの画像処理装置では、
前記第2方向は、水平面の法線方向である。
(7)上記(1)から(6)までの何れかの画像処理装置では、
前記制御部は、前記基準位置で前記基準画像を生成したカメラの姿勢情報に基づいて、水平面の法線方向を検出する。
(8)上記(1)から(7)までの何れかの画像処理装置では、
前記制御部は、前記カメラの姿勢情報を、センサ部によって取得する。
(9)上記(1)から(8)までの何れかの画像処理装置では、
前記制御部は、前記カメラの姿勢情報を、前記基準画像及び前記参照画像を用いたバンドル調整によって取得する。
(10)上記(1)から(9)までの何れかの画像処理装置では、
前記制御部は、前記カメラの姿勢情報を、前記基準画像又は前記参照画像から直線性が高い特徴点群を検出することにより取得する。
(11)画像処理方法は、
基準位置で撮像により生成された基準画像のデータと、前記基準位置とは異なる位置で撮像により生成された参照画像のデータとを取得することと、
前記参照画像を第1仮想平面に射影変換して第1仮想画像を取得し、前記参照画像を第2仮想平面に射影変換して第2仮想画像を取得し、前記基準画像における被写体の位置と前記第1仮想画像又は前記第2仮想画像における前記被写体の位置とを比較した結果に基づいて、前記基準位置から前記被写体までの距離を算出することと、を含み、
前記第1仮想平面の法線方向は、前記基準位置で前記基準画像を生成したカメラの光軸方向である第1方向に一致し、前記第1仮想平面は、前記第1方向に沿って前記基準位置から第1距離だけ離れて位置し、
前記第2仮想平面の法線方向は、前記第1方向とは異なる第2方向に一致し、前記第2仮想平面は、前記第2方向に沿って前記基準位置から第2距離だけ離れて位置する。
本開示を諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は修正を行うことが容易であることに注意されたい。したがって、これらの変形又は修正は本開示の範囲に含まれることに留意されたい。例えば、各機能部に含まれる機能等は論理的に矛盾しないように再配置可能である。複数の機能部等は、1つに組み合わせられたり、分割されたりしてよい。上述した本開示に係る各実施形態は、それぞれ説明した各実施形態に忠実に実施することに限定されるものではなく、適宜、各特徴を組み合わせたり、一部を省略したりして実施され得る。つまり、本開示の内容は、当業者であれば本開示に基づき種々の変形及び修正を行うことができる。したがって、これらの変形及び修正は本開示の範囲に含まれる。例えば、各実施形態において、各機能部、各手段又は各ステップ等は論理的に矛盾しないように他の実施形態に追加し、若しくは、他の実施形態の各機能部、各手段又は各ステップ等と置き換えることが可能である。また、各実施形態において、複数の各機能部、各手段又は各ステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。また、上述した本開示の各実施形態は、それぞれ説明した各実施形態に忠実に実施することに限定されるものではなく、適宜、各特徴を組み合わせたり、一部を省略したりして実施することもできる。
例えば、上述した実施形態では、画像処理装置20の制御部24が基準画像及び参照画像に対して歪み補正処理を実行するものとして説明した。ただし、第1カメラ11が、生成した基準画像に対して歪み補正処理を実行してもよい。第2カメラ12が、生成した参照画像に対して歪み補正処理を実行してもよい。第1カメラ11及び第2カメラ12は、それぞれ、基準画像及び参照画像に対して、歪み補正処理に加えて、明度調整処理、コントラスト調整処理、ガンマ補正処理等の任意の画像処理を実行してもよい。
例えば、上述した実施形態では、図3に示すように、第1カメラ11及び第2カメラ12が移動体30の左右方向に沿って位置するものとして説明した。ただし、第1カメラ11及び第2カメラ12の位置は、これに限定されない。他の例として、第1カメラ11及び第2カメラ12は、移動体30の上下方向に沿って位置してもよい。
例えば、上述した実施形態では、第1カメラ11が基準画像を生成し、第2カメラ12が参照画像を生成するものとして説明した。ただし、基準画像及び参照画像は、1つのカメラによって生成されてもよい。この場合、カメラは、移動することにより、基準位置で撮像により基準画像を生成し、基準位置とは異なる位置で撮像により参照画像を生成する。