(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024092436
(43)【公開日】2024-07-08
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
G06T 7/593 20170101AFI20240701BHJP
G08G 1/16 20060101ALI20240701BHJP
G01C 3/06 20060101ALI20240701BHJP
【FI】
G06T7/593
G08G1/16 C
G01C3/06 110V
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022208354
(22)【出願日】2022-12-26
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001829
【氏名又は名称】弁理士法人開知
(72)【発明者】
【氏名】城戸 英彰
(72)【発明者】
【氏名】入江 耕太
【テーマコード(参考)】
2F112
5H181
5L096
【Fターム(参考)】
2F112AC03
2F112AC06
2F112BA05
2F112BA06
2F112CA05
2F112CA12
2F112DA32
2F112FA03
2F112FA07
2F112FA21
2F112FA35
2F112FA45
5H181AA01
5H181CC04
5H181LL01
5H181LL02
5H181LL04
5L096BA04
5L096CA05
5L096DA02
5L096FA09
5L096FA18
5L096FA26
5L096FA66
(57)【要約】
【課題】少ないデータ伝送量で被写体の三次元位置を推定する。
【解決手段】画像処理装置は、演算装置を備え、演算装置は、複数のカメラで各々撮影された複数の画像毎に物体を検知し、複数の画像毎に物体までの距離を推定し、推定された複数の画像毎の物体までの距離と、複数のカメラのカメラパラメータとを用いて、物体の特徴点のうち複数の画像のいずれにおいても取得可能な特徴点を決定し、複数の画像毎に決定された特徴点の周辺の特徴量を求め、複数の画像の特徴量を照合し、特徴量を照合した結果に基づいて、物体までの距離を測定する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
演算装置を備えた画像処理装置であって、
前記演算装置は、
複数のカメラで各々撮影された複数の画像毎に物体を検知し、
前記複数の画像毎に前記物体までの距離を推定し、
前記推定された前記複数の画像毎の前記物体までの距離と、前記複数のカメラのカメラパラメータとを用いて、前記物体の特徴点のうち前記複数の画像のいずれにおいても取得可能な特徴点を決定し、
前記複数の画像毎に前記決定された特徴点の周辺の特徴量を求め、
前記複数の画像の特徴量を照合し、
前記特徴量を照合した結果に基づいて、前記物体までの距離を測定する、
画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記演算装置は、
複数の画像毎に前記物体を囲う三次元のバウンディングボックスを求め、
前記バウンディングボックスを構成する複数の面のうち、前記複数のカメラにより撮影可能な対象面を決定し、
前記対象面に含まれる前記特徴点の周辺の特徴量を求める、
画像処理装置。
【請求項3】
請求項1に記載の画像処理装置において、
前記演算装置は、
複数の画像毎に前記物体を囲う三次元のバウンディングボックスを求め、
前記バウンディングボックスを構成する複数の面に対して、前記複数のカメラにより撮影された画像間の射影変換を推定し、
前記推定された前記複数の面の射影変換における変形度に基づいて、前記特徴点を取得する対象面を決定し、
前記対象面に含まれる前記特徴点の周辺の特徴量を求める、
画像処理装置。
【請求項4】
請求項1に記載の画像処理装置において、
前記演算装置は、前記物体の検知結果と、物体の種別と当該物体の経時的な形状変化の度合いを対応付けた物体形状情報と、に基づいて、前記物体のうち前記特徴点を取得する位置を決定する、
画像処理装置。
【請求項5】
請求項1に記載の画像処理装置において、
前記演算装置は、
前記複数のカメラのうちの一部のカメラが接続された第1の計算資源と、
前記複数のカメラのうちの一部のカメラとは異なる別の一部のカメラが接続された第2の計算資源とを備え、
前記第1の計算資源および前記第2の計算資源のそれぞれは、
前記物体を検知し、
前記物体までの距離を推定し、
前記特徴点を決定し、
前記決定された特徴点の周辺の特徴量を求める、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関する。
【背景技術】
【0002】
従来、周囲を撮影した画像から物体を検出する技術が知られている。特許文献1には、複数のカメラで物体を撮影して得られた複数の画像データから被写体の三次元位置を推定する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数のカメラが、単一の計算資源ではなく複数の計算資源にそれぞれ接続されている場合、被写体の三次元位置を推定するために特定の計算資源に全ての画像データを集約する必要がある。例えば伝送路の容量や記憶容量等の都合により、他の計算資源から特定の計算資源に全ての画像データを集約することができない場合、特許文献1に記載の技術では被写体の三次元位置を推定することができないという問題があった。
【0005】
本発明は、全ての画像データよりも少ないデータ伝送量で被写体の三次元位置を推定することが可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様による画像処理装置は、演算装置を備え、前記演算装置は、複数のカメラで各々撮影された複数の画像毎に物体を検知し、前記複数の画像毎に前記物体までの距離を推定し、前記推定された前記複数の画像毎の前記物体までの距離と、前記複数のカメラのカメラパラメータとを用いて、前記物体の特徴点のうち前記複数の画像のいずれにおいても取得可能な特徴点を決定し、前記複数の画像毎に前記決定された特徴点の周辺の特徴量を求め、前記複数の画像の特徴量を照合し、前記特徴量を照合した結果に基づいて、前記物体までの距離を測定する。
【発明の効果】
【0007】
本発明によれば、全ての画像データよりも少ないデータ伝送量で被写体の三次元位置を推定することが可能な画像処理装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本発明の第1実施形態に係る画像処理装置のハードウェア構成を模式的に示すブロック図である。
【
図2】
図2は、第1演算部のハードウェア構成を模式的に示すブロック図である。
【
図3】
図3は、本発明の第1実施形態に係る画像処理装置を車両に搭載した例を示す平面図である。
【
図4】
図4は、本発明の第1実施形態に係る画像処理装置の構成を模式的に示すブロック図である。
【
図5】
図5は、カメラから観測される面を例示する模式図である。
【
図7】
図7は、第1カメラおよび第2カメラによる撮影画像を例示する模式図である。
【
図8】
図8は、第1実施形態に係る演算装置が実行するプログラムのフローチャートである。
【
図9】
図9は、第2実施形態に係る演算装置が実行するプログラムのフローチャートである。
【
図10】
図10は、本発明の第3実施形態に係る画像処理装置の構成を模式的に示すブロック図である。
【
図11】
図11は、二次元バウンディングボックスを複数の領域に分割する様子を示す模式図である。
【
図12】
図12は、第3実施形態に係る演算装置が実行するプログラムのフローチャートである。
【
図13】
図13は、本発明の第4実施形態に係る画像処理装置の構成を模式的に示すブロック図である。
【発明を実施するための形態】
【0009】
<第1実施形態>
図1~
図8を参照して、本発明の第1実施形態に係る画像処理装置について説明する。
【0010】
図1は、本発明の第1実施形態に係る画像処理装置のハードウェア構成を模式的に示すブロック図である。画像処理装置10は、演算装置20を備える。演算装置20は、第1演算部21、第2演算部22、第3演算部23、および不揮発性メモリ24を備える。第1演算部21、第2演算部22、第3演算部23、および不揮発性メモリ24は、例えばデータバス等により相互に接続される。第1演算部21には、画像処理装置10の外部に設けられた第1カメラ30が接続される。第2演算部22には、画像処理装置10の外部に設けられた第2カメラ40が接続される。
【0011】
第1演算部21、第2演算部22、および第3演算部23は、例えばSoC(System On Chip)等の計算資源である。第1演算部21、第2演算部22、および第3演算部23の構成については後に詳述する。
【0012】
不揮発性メモリ24は、例えばROM(Read Only Memory)、フラッシュメモリ、ハードディスクドライブ等の記憶媒体である。不揮発性メモリ24には、各種演算が実行可能なプログラムが格納されている。すなわち、不揮発性メモリ24は、本実施形態の機能を実現するプログラムを読み取り可能な記憶媒体(記憶装置)である。不揮発性メモリ24には更に、第1カメラ30および第2カメラ40の取付位置や取付角度、カメラの仕様(焦点距離・光学中心位置・レンズ歪み等)に関する情報が、例えば外部パラメータ行列や内部パラメータ行列等の形式で格納されている。第1演算部21、第2演算部22、および第3演算部23は、不揮発性メモリ24から第1カメラ30および第2カメラ40に関するこれらの情報を読み出して、後述する制御に利用する。
【0013】
図2は、第1演算部21のハードウェア構成を模式的に示すブロック図である。第1演算部21は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)等の処理装置63、所謂RAM(Random Access Memory)と呼ばれる揮発性メモリ62、入出力インタフェース61、および、その他の周辺回路で構成される。これらのハードウェアは、協働して不揮発性メモリ24(
図1)に記憶されているソフトウェアを動作させ、複数の機能を実現する。なお、第1演算部21は、1つのコンピュータで構成してもよいし、複数のコンピュータで構成してもよい。また、処理装置63としては、ASIC(application specific integrated circuit)、FPGA(Field Programmable Gate Array)などを用いることができる。
【0014】
処理装置63は、不揮発性メモリ24(
図1)に記憶されたプログラムを揮発性メモリ62に展開して演算実行する装置であって、プログラムに従って入出力インタフェース61、不揮発性メモリ24および揮発性メモリ62から取り入れたデータに対して所定の演算処理を行う。処理装置63は、入出力インタフェース61、揮発性メモリ62のそれぞれに接続される。
【0015】
入出力インタフェース61の入力部は、各種装置(第1カメラ30等)から入力された信号を処理装置63で演算可能なデータに変換する。また、入出力インタフェース61の出力部は、処理装置63での演算結果に応じた出力用の信号を生成し、その信号を各種装置(第3演算部23等)に出力する。
【0016】
なお、第2演算部22および第3演算部23のハードウェア構成は、第1演算部21のハードウェア構成と同一であるので、説明および図示を省略する。
【0017】
図3は、本発明の第1実施形態に係る画像処理装置10を車両に搭載した例を示す平面図である。画像処理装置10は、道路80を走行する車両90に設置される。第1カメラ30は、例えばルームミラー付近など、車両90の車室内に、車両90の前方(
図3に示す領域31を含む範囲)を撮影可能に設置される。第2カメラ40は、例えばドアミラー付近など、車両90の左前方(
図3に示す領域41を含む範囲)を撮影可能に設置される。ここで、第1カメラ30の撮影範囲と第2カメラ40の撮影範囲は少なくとも一部が重複しているものとする。以下の説明において、車両90の前方には横断歩道81が存在するものとする。また、横断歩道81のある一部が第1カメラ30の撮影範囲と第2カメラ40の撮影範囲に重複して存在するものとする。
【0018】
画像処理装置10は、車両90の周辺に存在する物体の情報を推定して取得する。処理対象となる物体は、移動物(例えば歩行者、車両など)であってもよいし、静止物(例えば白線、路面、標識、建物など)であってもよい。推定される物体の情報は、例えば物体の種類、車両90から物体までの距離、物体のサイズや速度などである。取得した物体の情報は、例えば車両90の制御量を決定する等、車両90の自動運転や運転支援に用いられる。
【0019】
図4は、本発明の第1実施形態に係る画像処理装置10の構成を模式的に示すブロック図である。第1演算部21は、物体検出部21aおよび特徴選択部21cを備える。第2演算部22は、物体検出部22aおよび特徴選択部22cを備える。第3演算部23は、特徴照合部23aおよび距離算出部23bを備える。
【0020】
第1カメラ30は、撮影画像の画像信号を第1演算部21内の物体検出部21aに送信する。物体検出部21aは、撮影画像(画像信号)を解析して目的とする物体を検出する。物体検出部21aは、検出した物体を直方体モデルにより近似する。つまり物体検出部21aは、検出した物体を囲う三次元の直方体により、その物体の位置や向き、サイズを表現する。直方体モデルは、例えば車両等の物体を表現するのに適した方式である。物体検出部21aは、検出結果情報を特徴選択部21cおよび第3演算部23内の特徴照合部23aに出力する。第1実施形態における検出結果情報には、検出した物体を囲う三次元の直方体であるバウンディングボックスを構成する各頂点の、世界座標系における三次元座標が含まれる。三次元のバウンディングボックスが世界座標系における三次元座標で表現されるということはすなわち、検出結果情報には、第1カメラ30から検出された物体までの距離の情報も含まれているということである。つまり第1実施形態において、物体検出部21aは物体を検出するだけではなく、同時に、その物体までの距離も推定している。
【0021】
物体検出部21aは、1つの撮影画像から複数の物体を同時に検出可能に構成される。したがって、検出結果情報には、1つないし複数のバウンディングボックスに関する情報が含まれる。
【0022】
物体検出部21aは、例えば周知のニューラルネットワークモデルを用いて推論を行うことにより物体を検出する。このようなネットワークモデルとしては、例えばYOLO等が知られている。
【0023】
特徴選択部21cは、物体検出部21aが第1カメラ30から検出した物体の各々について、その物体の画像特徴を、第1カメラ30が出力した撮影画像から選択する。第1実施形態において画像特徴とは、検出した物体の画像に設けられた特徴点の位置およびその位置の周辺画素から得た画像特徴量のことを指す。特徴選択部21cは、第1カメラ30が出力した撮影画像から部分画像を切り出し、その部分画像から、コーナーなどの画像特徴の高い画像座標(すなわち特徴点)を探索する。その後、特徴選択部21cは、発見した特徴点の各々について、その位置の周辺画素から画像特徴量を得る。特徴点の探索および画像特徴量の取得手法としては、SIFT(Scale Invariant Feature Transform)、ORB(Oriented FAST and Rotated BRIEF)などを用いることができる。また、深層学習を用いて特徴量化を行う手法を採用してもよい。特徴選択部21cによる部分画像の切り出し方法については後に詳述する。
【0024】
特徴選択部21cは、画像特徴情報を第3演算部23内の特徴照合部23aに出力する。第1実施形態における画像特徴情報には、検出された物体ごとに、複数の特徴点の位置および画像特徴量が含まれる。一般的に、複数の特徴点の位置および画像特徴量のデータ量は、物体の画像データのデータ量に比べて小さい。つまり、特徴選択部21cが出力する画像特徴情報のデータ量は、検出した物体の画像データを直接出力する場合に比べて小さくなる。
【0025】
第2カメラ40は、撮影画像の画像信号を第2演算部22内の物体検出部22aに送信する。第2演算部22が備える物体検出部22aおよび特徴選択部22cは、第2カメラ40によって撮影された撮影画像を対象とすることを除いて、それぞれ第1演算部21が備える物体検出部21aおよび特徴選択部21cと同様に機能する。
【0026】
以上のように、第1演算部21および第2演算部22から第3演算部23には、検出結果情報および画像特徴情報が送信される。これらの情報のデータ量は、第1カメラ30が出力する撮影画像のデータ量および第2カメラ40が出力する撮影画像のデータ量の総和よりも小さい。したがって、第1演算部21、第2演算部22、および第3演算部23の間で為されるデータ通信に要するデータ量は、すべてのカメラの撮影画像を第3演算部23に集約する場合に比べて小さくて済む。換言すると、第1演算部21、第2演算部22、および第3演算部23の間に設けられる通信路の通信容量は、すべてのカメラの撮影画像を第3演算部23に集約する場合に比べて小さくて済む。
【0027】
特徴照合部23aは、第1演算部21から出力された画像特徴情報と第2演算部22から出力された画像特徴情報を照合し、照合結果を距離算出部23bに出力する。特徴照合部23aによる画像特徴情報の照合方法については後に詳述する。
【0028】
距離算出部23bは、特徴照合部23aによる照合の結果、第1演算部21内の物体検出部21aによって検出された物体と第2演算部22内の物体検出部22aによって検出された物体が同一の物体であると判断された場合、その物体までの距離を算出して出力する。距離算出部23bによる距離の算出方法については後に詳述する。
【0029】
特徴選択部21cによる部分画像の切り出し処理について説明する。特徴選択部21cは、検出された物体を近似する直方体の全6面のうち、第1カメラ30および第2カメラ40の両方から観測可能な面を特定する。直方体モデルにより物体を近似する場合、直方体を構成する全6面のうち最大で3面が撮影画像上に投影される。特徴選択部21cは、まず第1カメラ30の撮影画像で当該物体のどの面が観測されたのかを調べる。物体が検出されているのだから、ここでは少なくとも1面が観測されているはずである。
【0030】
次に特徴選択部21cは、他方のカメラ、すなわち第2カメラ40においてそれらの面がどのように観測されるのかを予測する。特徴選択部21cは、第1カメラ30および第2カメラ40の幾何情報と、物体検出部21aが出力した検出結果情報(例えば当該物体のバウンディングボックスを構成する頂点の情報)を用いて、第2カメラ40においてそれらの面がどのように観測されるのかを予測する。例えば、直方体を構成する6面のうち、第2カメラ40から見て他の面に遮蔽されている面は、第2カメラ40から観測できないと判断することができる。また、ある面が第2カメラ40の光軸と平行であった場合、その面は第2カメラ40から観測できないと判断することができる。
【0031】
ここで用いられる第1カメラ30および第2カメラ40の幾何情報とは、第1カメラ30および第2カメラ40の取付位置や取付角度、カメラの仕様(焦点距離・光学中心位置・レンズ歪み等)に関する情報である。第1カメラ30および第2カメラ40の幾何情報は、予め不揮発性メモリ24に格納される。
【0032】
特徴選択部21cは、第1カメラ30および第2カメラ40の両方で観測される(観測可能な)面を特定し、それらの面すべてを含む部分画像を第1カメラ30の撮影画像から切り出す。そして、特徴選択部21cは、切り出した部分画像において、特徴点の探索および画像特徴量の取得を行う。
【0033】
図5は、カメラから観測される面を例示する模式図である。
図5(a)に示すように、第1カメラ30からは車両91を囲うバウンディングボックスの背面92のみが観測されている。
図5(b)に示すように、第2カメラ40からは車両91を囲うバウンディングボックスの背面92および左側面93が観測されている。この場合、特徴選択部21cは、第1カメラ30の撮影画像から背面92の部分画像を切り出し、この部分画像について特徴点の探索および画像特徴量の取得を行う。つまり特徴選択部21cは、車両91の背面92から特徴点の探索および画像特徴量の取得を行う。第2演算部22の特徴選択部22cにおいても第1演算部21の特徴選択部21cと同様の予測が為され、特徴選択部22cも車両91の背面92から特徴点の探索および画像特徴量の取得を行う。したがって、第1演算部21と第2演算部22がそれぞれ出力する特徴点は互いにマッチングされる可能性が高くなる。少なくとも、第1演算部21と第2演算部22のうち一方でしか探索されず(一方のカメラからしか見えず)絶対に正しくマッチングできない無駄な特徴点は排除される。
【0034】
特徴照合部23aによる画像特徴情報の照合方法について説明する。もっとも単純な方法は、ある物体について一方の撮影画像から取得された複数の画像特徴量と他方の撮影画像から取得された複数の画像特徴量同士を総当りでマッチングし、十分に似ている一対の画像特徴量を探すやり方である。ただし、このような処理は画像特徴量の組み合わせの数が莫大になり計算量が大きくなる。また、本当は異なる特徴点同士を同一地点であると判断してしまう誤マッチングも発生する可能性が高くなる。
【0035】
これに対し、エピポール拘束式と呼ばれる式を用いることで、両方の撮影画像に写っている同一位置を効率的に探索できることが知られている。エピポール拘束式は、一方の撮影画像においてある位置が写っている二次元座標を与えた場合に、他方の撮影画像において同一位置が写っている可能性がある場所を直線(エピポーラ線)によって与える。つまり、他方の撮影画像の全体から同一位置を探索する必要はなく、エピポーラ線上だけを探索すればよいという条件を与える。例えば、ある物体について一方の撮影画像から探索された1つの特徴点について、エピポール拘束式によりエピポーラ線を得る。そして、同一の物体について他方の撮影画像から探索された複数の特徴点から、エピポーラ線上に存在する特徴点だけを抽出する。あとは、抽出した特徴点それぞれについて、前述した1つの特徴点と画像特徴量のマッチングを行えばよい。エピポール拘束式で用いられる基本行列は、第1カメラ30の外部パラメータ行列および内部パラメータ行列と、第2カメラ40の外部パラメータ行列および内部パラメータ行列から導かれる。これらのパラメータ行列は、予め不揮発性メモリ24に格納される。
【0036】
また、上記に示したパラメータ行列を適切に用いて、予め撮影画像のペアに対して平行化として知られている前処理を施しておけば、世界座標系における同一地点が2つの撮影画像の両方で同一の高さに並ぶような画像に変換することができる。このように平行化された画像のペアを撮影画像の代わりに第1演算部21および第2演算部22に入力すると、同一地点に対応する特徴点同士は二次元座標の縦方向の値が同一の値となるため、比較的簡易な処理で同一位置の探索が実施できる。これは平行ステレオカメラの原理である。いずれにせよ、特徴照合部23aによる画像特徴情報の照合は、2つのカメラのパラメータや設置条件などの情報から実施することができる。
【0037】
距離算出部23bによる距離の算出方法について説明する。
【0038】
図6は、車両座標系を示す模式図である。以下の説明において、車両90の進行方向をx軸、車両90の水平方向(幅方向)をy軸、車両90の鉛直方向をz軸とする。
【0039】
図7は、第1カメラ30および第2カメラ40による撮影画像を例示する模式図である。第1カメラ30による撮影画像86は、車両90の前方を写した画像である。また、第2カメラ40による撮影画像85は、車両90の左前方を写した画像である。以下の説明において、撮影画像85および撮影画像86内の二次元座標を(u,v)と表記する。
図7に示すように、撮影画像85および撮影画像86の右方向が+u、撮影画像85および撮影画像86の下方向が+vである。
【0040】
車両90から物体までの距離を推定する方法の一例として、複数のカメラにより同一の物体を撮影し、三角測量の原理で計測する方法が知られている。道路80上に存在する世界座標系の任意の点を斉次座標系でX=(x,y,z,1)T、カメラの回転角に関する外部パラメータ行列をR、カメラの設置位置に関する外部パラメータ行列をTとして、外部パラメータ行列をP=(R|T)、カメラの焦点距離や光学中心など内部状態を管理する内部パラメータ行列をK、Xで示す点が撮像された画像座標を斉次座標系でU=(u,v,1)T、スケールパラメータをsとすると、第1カメラ30および第2カメラ40において次式(1)、(2)が成り立つ。なお、ここでは透視投影モデルを仮定している。また、記号上の添え字はカメラの種類を表す。すなわち、添え字0の各記号は第1カメラ30に関する記号を、添え字1の各記号は第2カメラ40に関する記号をそれぞれ表す。
【0041】
【0042】
第1カメラ30の撮影画像85において点X(物体上のある一点に対応する世界座標系の一地点)二次元座標がU0であり、第2カメラ40の撮影画像86における点Xの二次元座標がU1であった場合、例えば次式(3)を用いて最小二乗法を解くことにより、点Xの三次元座標を算出することができる。
【0043】
【0044】
距離算出部23bは、上式(3)を用いて最小二乗法を解くことにより、物体までの距離を算出する。例えば
図7に示す物体87において探索された特徴点88は、
図7(a)に示す撮影画像85と、
図7(b)に示す撮影画像86の両方で観測されている。特徴点88は、物体87の同一箇所を指す点である。換言すると、特徴点88は、世界座標系において同一の三次元座標を有している。この場合、
図7(a)に示す撮影画像85における特徴点88の二次元座標がU
0であり、
図7(b)に示す撮影画像86における特徴点88の二次元座標がU
1である。距離算出部23bは、上式(3)にこれらの二次元座標の値を当てはめ、最小二乗法を解くことにより、車両90から前方で検出された物体87までの距離を算出する。
【0045】
なお、エピポール拘束式で用いられる基本行列Fは、第1カメラ30および第2カメラ40の外部パラメータ行列および内部パラメータ行列から導かれ、次式(4)で表される。
【0046】
【0047】
図8は、演算装置20が実行するプログラムのフローチャートである。
図8に示す処理は、不揮発性メモリ24に格納されている所定のプログラムを演算装置20(第1演算部21、第2演算部22、および第3演算部23)が読み出して実行することにより実現される。
【0048】
ステップS100において、第1演算部21および第2演算部22が第1カメラ30および第2カメラ40に画像を撮影させる。第1カメラ30による撮影画像は画像信号として第1演算部21内の物体検出部21aに送信される。第2カメラ40による撮影画像は画像信号として第2演算部22内の物体検出部22aに送信される。
【0049】
ステップS110において、物体検出部21aが第1カメラ30による撮影画像から1つ以上の物体を検出すると共に、物体検出部22aが第2カメラ40による撮影画像から1つ以上の物体を検出する。
【0050】
ステップS120において、第1演算部21内の特徴選択部21cが物体検出部21aによる物体検出の結果(検出結果情報)および不揮発性メモリ24に格納されている第1カメラ30および第2カメラ40に関する情報に基づき、検出された各物体について、第1カメラ30と第2カメラ40の両方から観測される面を特定する。換言すると、特徴選択部21cは、第1カメラ30と第2カメラ40の両方から可視な面を特定する。
【0051】
ステップS120では更に、第2演算部22内の特徴選択部22cも、物体検出部22aによる物体検出の結果(検出結果情報)および不揮発性メモリ24に格納されている第1カメラ30および第2カメラ40に関する情報に基づき、検出された各物体について、第1カメラ30と第2カメラ40の両方から観測される面を特定する。換言すると、特徴選択部22cは、第1カメラ30と第2カメラ40の両方から可視な面を特定する。
【0052】
ステップS130において、特徴選択部21cが第1カメラ30による撮影画像からステップS120で特定した面に相当する部分画像を切り出す。また、特徴選択部22cが第2カメラ40による撮影画像からステップS120で特定した面に相当する部分画像を切り出す。
【0053】
ステップS140において、特徴選択部21cがステップS130で切り出した部分画像からSIFTやORB等の特徴点を探索する。また、特徴選択部22cがステップS130で切り出した部分画像からSIFTやORB等の特徴点を探索する。
【0054】
ステップS150において、特徴選択部21cがステップS140で探索した特徴点の各々についてSIFTやORB等の画像特徴量を取得する。また、特徴選択部22cがステップS140で探索した特徴点の各々についてSIFTやORB等の画像特徴量を取得する。
【0055】
ステップS160において、第3演算部23内の特徴照合部23aが、ステップS140で特徴選択部21cにより探索された複数の特徴点の画像特徴量と、ステップS140で特徴選択部22cにより探索された複数の特徴点の画像特徴量とを照合する。つまり、特徴照合部23aは、同一地点を指し示している可能性のある特徴点のペアごとに、それらの特徴点に対応する画像特徴量同士を比較してそれらの画像特徴量同士が十分に似ている(近い)かどうかを調べ、同一地点を指し示している特徴量のペアを特定する。
【0056】
ステップS170において、距離算出部23bは、ステップS160で照合した結果を上式(3)に当てはめ、最小二乗法を解くことによりステップS110で検出した物体の距離を算出する。
【0057】
上述した第1実施形態によれば、次の作用効果を奏する。
【0058】
(1)演算装置20は、複数のカメラ(第1カメラ30および第2カメラ40)で各々撮影された複数の画像毎に物体を検知し、複数の画像毎に物体までの距離を推定する。演算装置20は、推定された複数の画像毎の物体までの距離と、複数のカメラ(第1カメラ30および第2カメラ40)のカメラパラメータとを用いて、物体の特徴点のうち複数の画像のいずれにおいても取得可能な特徴点を決定する。演算装置20は、複数の画像毎に決定された特徴点の周辺の特徴量を求め、複数の画像の特徴量を照合する。演算装置20は、特徴量を照合した結果に基づいて、物体までの距離を測定する。このようにしたので、演算装置20を複数の計算資源から構成した場合に、全ての画像データよりも少ないデータ伝送量で被写体の三次元位置を推定することができる。
【0059】
(2)演算装置20は、複数の画像毎に物体を囲う三次元のバウンディングボックスを求め、バウンディングボックスを構成する複数の面のうち、複数のカメラ(第1カメラ30および第2カメラ40)により撮影可能な対象面を決定し、対象面に含まれる特徴点の周辺の特徴量を求める。このようにしたので、特定のカメラからしか観測されない場所にある特徴点を排除し、特徴点の照合精度を向上させることができる。
【0060】
(3)演算装置20は、第1カメラ30が接続された第1演算部21(第1の計算資源)と、第2カメラ40が接続された第2演算部22(第2の計算資源)とを備え、第1演算部21(第1の計算資源)および第2演算部22(第2の計算資源)のそれぞれは、物体を検知し、物体までの距離を推定し、特徴点を決定し、決定された特徴点の周辺の特徴量を求める。このようにしたので、全ての画像データよりも少ないデータ伝送量で被写体の三次元位置を推定することができる。
【0061】
<第2実施形態>
図9を参照して、本発明の第2実施形態に係る画像処理装置10について説明する。なお、第1実施形態で説明した構成と同一もしくは相当する構成には同一の参照記号を付し、相違点を主に説明する。
【0062】
図9は、
図8と同様の図であり、第2実施形態に係る演算装置20が実行するプログラムのフローチャートである。
図9のフローチャートでは、
図8のフローチャートのステップS130の処理に代えて、ステップS200,S210の処理が実行される。
【0063】
ステップS200において、特徴選択部21cがステップS120で特定した全ての面(両方のカメラから観測される全ての面)について、第1カメラ30の撮影画像におけるその面から第2カメラ40の撮影画像におけるその面への射影変換行列を推定する。射影変換行列は3行3列の計9個のスカラー値から成る行列であるが、うち1つは値が「1」で固定なので8パラメータの行列とみなすことができる。射影変換行列は、第1カメラ30の外部パラメータ行列および内部パラメータ行列、ならびに、第2カメラ40の外部パラメータ行列および内部パラメータ行列から推定できることが知られている。
【0064】
ステップS200では、上記の処理と並行して、第2演算部22内の特徴選択部22cも同様の処理を実行する。すなわち、特徴選択部22cがステップS120で特定した全ての面(両方のカメラから観測される全ての面)について、第1カメラ30の撮影画像におけるその面から第2カメラ40の撮影画像におけるその面への射影変換行列を推定する。
【0065】
ステップS210において、ステップS120で特定した面(両方のカメラから観測される全ての面)のうち、カメラ間での変形度合いがもっとも小さい1つの面について、第1カメラ30による撮影画像からその1つの面に相当する部分画像を切り出す。カメラ間での変形度合いは、ステップS200で推定した射影変換行列に基づいて算出することができる。例えば、各面に対応する射影変換行列に対してフロベニウスノルムなどの行列ノルムを計算し、その値を「カメラ間での変形度合い」を示す値として扱う。この場合、行列ノルムの値がもっとも小さい面を、部分画像を切り出す面とする。
【0066】
ステップS210では、上記の処理と並行して、第2演算部22内の特徴選択部22cも同様の処理を実行する。すなわち、特徴選択部22cがステップS120で特定した面(両方のカメラから観測される全ての面)のうち、カメラ間での変形度合いがもっとも小さい1つの面について、第2カメラ40による撮影画像からその1つの面に相当する部分画像を切り出す。
【0067】
カメラ間での変形度合いがもっとも小さい面に相当する部分画像を切り出すのは、変形度合いが大きい場合、同一の地点から取得された画像特徴であっても照合できない可能性が高いからである。つまり、カメラ間での変形度合いが小さい箇所で取得された画像特徴の方が、照合の精度が高いため、そのような箇所を優先的に選択することで照合精度を高めることができる。
【0068】
上述した第2実施形態によれば、次の作用効果を奏する。
【0069】
(1)演算装置20は、複数の画像毎に物体を囲う三次元のバウンディングボックスを求め、バウンディングボックスを構成する複数の面に対して、複数のカメラ(第1カメラ30および第2カメラ40)により撮影された画像間の射影変換を推定する。演算装置20は、推定された複数の面の射影変換における変形度に基づいて、特徴点を取得する対象面を決定し、対象面に含まれる特徴点の周辺の特徴量を求める。このようにしたので、照合精度を高めることができる。
【0070】
<第3実施形態>
図10~
図12を参照して、本発明の第3実施形態に係る画像処理装置110について説明する。なお、第1実施形態で説明した構成と同一もしくは相当する構成には同一の参照記号を付し、相違点を主に説明する。
【0071】
図10は、
図4と同様の図であり、本発明の第3実施形態に係る画像処理装置110の構成を模式的に示すブロック図である。
図10に示した第3実施形態に係る画像処理装置110は、演算装置20に代えて演算装置120を備える。演算装置120は、第1演算部21に代えて第1演算部121を、第2演算部22に代えて第2演算部122を、第3演算部23に代えて第3演算部123を備える。
【0072】
第1演算部121は、物体検出部121a、距離推定部121b、および特徴選択部121cを備える。物体検出部121aは、直方体モデルではなく二次元の矩形モデルを採用する。つまり第3実施形態に係る物体検出部121aは、世界座標系において検出した物体を囲う三次元のバウンディングボックスの代わりに、撮影画像において検出した物体を囲う二次元のバウンディングボックスを用いる。第3実施形態における検出結果情報には、検出した物体の属性(例えば車両、歩行者など物体の種別を表す情報)と、撮影画像において検出した物体を囲う二次元のバウンディングボックスを構成する各頂点の撮影画像における二次元座標が含まれる。
【0073】
距離推定部121bは、第1カメラ30から物体検出部121aが検出した物体までの距離を推定する。距離推定部121bは、物体検出部121aが出力した検出結果情報と、幾何拘束などの条件に基づき、物体までの距離を推定する。
【0074】
幾何拘束とは、第1カメラ30の幾何的条件と観測している環境の幾何的条件に基づいて求められる。例えば検出対象の物体が他車両であった場合の例を以下で説明する。他車両が接地している道路をz=0の平面とすると、他車両が道路に接している点は三次元座標(x,y,0)で表される。第1カメラ30の設置位置や設置角度、第1カメラ30の仕様等が判明していれば、その点が撮影画像上のどの位置に撮像されるかを推定することができる。他車両と道路の接地位置が撮影画像上のどこにあるのかが分かれば、その設置位置の世界座標系の三次元座標(x,y,0)を逆算できる。第1カメラ30の設置位置や設置角度、第1カメラ30の仕様等とは、すなわち第1カメラ30の外部パラメータ行列および内部パラメータ行列である。距離推定部121bは、不揮発性メモリ24から第1カメラ30の外部パラメータ行列および内部パラメータ行列を読み出して、物体までの距離の推定に利用する。
【0075】
なお、距離推定部121bによる距離の推定方法は上述した方法に限らない。距離推定部121bは、距離情報を特徴選択部121cおよび第3演算部123内の特徴照合部123aに出力する。距離情報とは、例えば物体ごとに推定した距離の情報である。距離推定部121bは、他車両以外の物体、例えば歩行者などについても同様の考え方でその物体までの距離を推定する。
【0076】
特徴選択部121cは、検出された物体の属性に基づき、その物体の二次元バウンディングボックスのどの位置が両方のカメラから可視であり、かつカメラ間での変形度合いが少ないかを、第1カメラ30および第2カメラ40の設置位置や設置角度、仕様等に基づき調べる。具体的には、検出された物体の二次元バウンディングボックスを複数の領域に分割し、各領域における変形度合いを算出する。特徴選択部121cは、それらの各領域のうち可視でありかつ変形度合いが小さい領域に対応する領域を部分画像の切り出し対象とする。
【0077】
図11は、二次元バウンディングボックスを複数の領域に分割する様子を示す模式図である。
図11では、物体の属性が歩行者である場合を例示している。
図11に示す二次元バウンディングボックス94が歩行者を囲っているのだとすれば、この二次元バウンディングボックス94を縦方向に所定の比率で3つの領域に分割することにより、頭部、中央部、脚部をそれぞれ含む3つの領域95、領域96、領域97に分割することができる。このとき、中央部の領域96は歩行者の腕部を含んでいると推定されるので、他の領域よりも時系列的な変化が大きいと考えられる。したがって特徴選択部121cは、より確実に照合を行うことができるよう、時系列的な変化の少ない頭部や脚部を含む領域95や領域97を部分画像の切り出し対象とする。このように、第3実施形態に係る特徴選択部121cは、物体の検知結果だけでなく、物体の種別と物体の経時的な形状変化の度合いを対応付けた物体形状情報に基づいて、特徴点を取得する位置を決定する。
【0078】
図10に示す第2演算部122は、物体検出部122a、距離推定部122b、および特徴選択部122cを備える。これらの各部は、それぞれ第1演算部121が有する物体検出部121a、距離推定部121b、および特徴選択部121cと同一の働きをするため、説明を省略する。
【0079】
第3演算部123は、
図4に示した第3演算部23の特徴照合部23aに代えて、特徴照合部123aを備える。特徴照合部123aは、距離推定部121bおよび距離推定部122bが出力する距離情報を用いることを除いて、第1実施形態の特徴照合部23aと同様の処理を実行する。
【0080】
図12は、
図8と同様の図であり、第3実施形態に係る演算装置120が実行するプログラムのフローチャートである。
図12のフローチャートでは、
図8のフローチャートのステップS110~S130の処理に代えて、ステップS220~S250の処理が、ステップS160の処理に代えて、ステップS260の処理が、それぞれ実行される。
【0081】
ステップS220において、物体検出部121aが第1カメラ30による撮影画像から1つ以上の物体を検出すると共に、物体検出部122aが第2カメラ40による撮影画像から1つ以上の物体を検出する。
【0082】
ステップS230において、距離推定部121bが物体検出部121aによる物体検出の結果(検出結果情報)に基づき、検出された各物体について、第1カメラ30からその物体までの距離を推定する。また、距離推定部122bが物体検出部122aによる物体検出の結果(検出結果情報)に基づき、検出された各物体について、第2カメラ40からその物体までの距離を推定する。
【0083】
ステップS240において、第1演算部121内の特徴選択部121cが物体検出部121aによる物体検出の結果(検出結果情報)と、距離推定部121bによる距離推定の結果(距離情報)と、不揮発性メモリ24に格納されている第1カメラ30および第2カメラ40に関する情報とに基づき、検出された各物体について、第1カメラ30と第2カメラ40の両方から観測される面を特定する。換言すると、特徴選択部121cは、第1カメラ30と第2カメラ40の両方から可視な面を特定する。
【0084】
ステップS240では更に、第2演算部122内の特徴選択部122cが物体検出部122aによる物体検出の結果(検出結果情報)と、距離推定部122bによる距離推定の結果(距離情報)と、不揮発性メモリ24に格納されている第1カメラ30および第2カメラ40に関する情報とに基づき、検出された各物体について、第1カメラ30と第2カメラ40の両方から観測される面を特定する。換言すると、特徴選択部122cは、第1カメラ30と第2カメラ40の両方から可視な面を特定する。
【0085】
ステップS250において、特徴選択部121cが第1カメラ30による撮影画像からステップS240で特定した面のうち、時系列的な変化度合いが小さい面に相当する部分画像を切り出す。また、特徴選択部122cが第2カメラ40による撮影画像からステップS240で特定した面のうち、時系列的な変化度合いが小さい面に相当する部分画像を切り出す。
【0086】
ステップS260において、第3演算部123内の特徴照合部123aが、ステップS140で特徴選択部121cにより探索された複数の特徴点の画像特徴量と、ステップS140で特徴選択部122cにより探索された複数の特徴点の画像特徴量とを照合する。
【0087】
上述した第3実施形態によれば、次の作用効果を奏する。
【0088】
(1)演算装置120は、物体の検知結果と、物体の種別と当該物体の経時的な形状変化の度合いを対応付けた物体形状情報と、に基づいて、物体のうち特徴点を取得する位置を決定する。このようにしたので、物体の種別に応じて最適な箇所から特徴点を取得することができ、照合精度が向上する。
【0089】
<第4実施形態>
図13を参照して、本発明の第4実施形態に係る画像処理装置210について説明する。なお、第1実施形態で説明した構成と同一もしくは相当する構成には同一の参照記号を付し、相違点を主に説明する。
【0090】
図13は、
図4と同様の図であり、本発明の第4実施形態に係る画像処理装置210の構成を模式的に示すブロック図である。
図13に示した第4実施形態に係る画像処理装置210は、演算装置20に代えて演算装置220を備える。演算装置220は、第2演算部22および第3演算部23に代えて第2演算部222を備える。
【0091】
第2演算部222は、
図4に示した第2演算部22および第3演算部23を一体に構成したものである。すなわち第2演算部222は、物体検出部22a、特徴選択部22c、特徴照合部23a、および距離算出部23bを備える。
【0092】
このように構成したので、第1実施形態において互いに独立した計算資源である第2演算部22と第3演算部23との間で行われていたデータ伝送は、第4実施形態では単一の計算資源である第2演算部222の内部に閉じた形となる。つまり、第4実施形態における計算資源間のデータ伝送は、第1演算部21と第2演算部222との間でだけ行われる。
【0093】
上述した第4実施形態によれば、次の作用効果を奏する。
【0094】
(1)演算装置220は、第1カメラ30が接続された第1演算部21(第1の計算資源)と、第2カメラ40が接続された第2演算部222(第2の計算資源)とを備え、第1演算部21(第1の計算資源)および第2演算部222(第2の計算資源)のそれぞれは、物体を検知し、物体までの距離を推定し、特徴点を決定し、決定された特徴点の周辺の特徴量を求める。このようにしたので、全ての画像データよりも少ないデータ伝送量で被写体の三次元位置を推定することができる。
【0095】
次のような変形例も本発明の範囲内であり、変形例に示す構成と上述の実施形態で説明した構成を組み合わせたり、上述の異なる実施形態で説明した構成同士を組み合わせたり、以下の異なる変形例で説明する構成同士を組み合わせることも可能である。
【0096】
<変形例1>
上述した各実施形態では、カメラから観測される面について、カメラと処理対象の物体との間に別の物体が存在する可能性を考慮していない。特徴選択部21cや特徴選択部22cが、検出した他の物体によって処理対象の物体が遮蔽されているか否かを判定するように構成してもよい。このようにすることで、一方のカメラからしか観測されない面をより確実に排除できるので、画像特徴の照合をより確実に行うことができる。また、画像特徴の照合が決して成功しないような特徴点を排除することができるので、照合に要する計算量を削減することができる。
【0097】
<変形例2>
画像特徴量の取得に、上述したSIFTやORB以外の手法を用いてもよい。例えばテンプレートマッチングを用いてもよい。テンプレートマッチングは、一方の撮影画像から関心のある画像座標周辺を矩形などの小さい領域で切り出し、その矩形内の画素分布に近い領域を他方の撮影画像から適当なコスト関数を用いて照合する手法である。また、特徴点をSIFTやORBにより取得した後に、SIFTやORBによる特徴量を取得するのではなく、その特徴点近傍から画像の一部領域を切り出して、テンプレートマッチングで照合を行ってもよい。このようにすることで、SIFTやORBが苦手とするシチュエーションであっても確実な照合を行うことができる。
【0098】
<変形例3>
画像処理装置に3台以上のカメラを接続してもよい。この場合において、1つの演算部(すなわち演算資源)に対して2台以上のカメラを接続してもよいし、カメラの台数に応じてより多くの演算部を設けてもよい。1つの演算部に対して2台以上のカメラを接続する場合、各カメラによる撮影画像それぞれに対して物体の検出や距離の推定、特徴点の選択等を行えばよい。例えば物体検出部等を演算部に接続されているカメラの台数分用意してもよいし、1つの物体検出部が演算部に接続されている全カメラの撮影画像から物体を検出するようにしてもよい。このようにカメラの台数が多い場合、本発明を適用することによるデータ伝送量の削減効果は(全てのカメラから画像データを集約する場合に比べて)より大きくなる。
【0099】
<変形例4>
三次元バウンディングボックスは、各頂点の三次元座標による表現を用いなくてもよい。例えば、三次元バウンディングボックスの中心位置の三次元座標と、三次元バウンディングボックスのサイズ(幅、奥行き、高さ)と、三次元バウンディングボックスの向きによる表現を用いてもよい。
【0100】
<変形例5>
カメラ間での面の変形度合いは、上述した射影変換行列の行列ノルムでなくてもよい。例えば、一方のカメラにおける面の各頂点の座標と、他方のカメラにおける対応する面の各頂点の座標との最小二乗和を算出し、その値をカメラ間での面の変形度合いとしてもよい。
【0101】
<変形例6>
カメラ間での面の変形度合いを射影変換行列により算出する際、射影変換行列の全体ではなく一部だけを用いるようにしてもよい。例えばSIFTはスケール変化(拡大・縮小)に対して耐性があるので、射影変換行列に含まれる拡大・縮小成分は無視しても変形度合いの記述には問題ない。そのため、射影変換行列から拡大・縮小成分を除去してから行列ノルムを算出してもよい。
【0102】
<変形例7>
第3実施形態のように、物体の属性(種類)に関する情報を利用可能な場合、より高度にその情報を利用してもよい。例えば検出された物体が歩行者であった場合、人の骨格情報などを推定することで、その歩行者の姿勢を推定することができる。この場合、単に二次元バウンディングボックスを一定比率で分割するのではなく、推定した姿勢に応じて時間的な変化の小さい領域をより精緻に特定することができる。
【0103】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
【符号の説明】
【0104】
10,110,210…画像処理装置、20,120,220…演算装置、21,121…第1演算部(計算資源)、22,122,222…第2演算部(計算資源)、23,123…第3演算部(計算資源)、21a,22a,121a,122a…物体検出部、121b,122b…距離推定部、21c,22c,121c,122c…特徴選択部、23a,123a…特徴照合部、23b…距離算出部、30…第1カメラ(カメラ)、40…第2カメラ(カメラ)