特許第5949314号(P5949314)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日本自動車部品総合研究所の特許一覧 ▶ 株式会社デンソーの特許一覧 ▶ トヨタ自動車株式会社の特許一覧

特許5949314視差マップ生成装置および視差マップ生成装置用のプログラム
<>
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000007
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000008
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000009
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000010
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000011
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000012
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000013
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000014
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000015
  • 特許5949314-視差マップ生成装置および視差マップ生成装置用のプログラム 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5949314
(24)【登録日】2016年6月17日
(45)【発行日】2016年7月6日
(54)【発明の名称】視差マップ生成装置および視差マップ生成装置用のプログラム
(51)【国際特許分類】
   G06T 1/00 20060101AFI20160623BHJP
   H04N 13/02 20060101ALI20160623BHJP
【FI】
   G06T1/00 315
   H04N13/02
【請求項の数】8
【全頁数】13
(21)【出願番号】特願2012-181587(P2012-181587)
(22)【出願日】2012年8月20日
(65)【公開番号】特開2014-38546(P2014-38546A)
(43)【公開日】2014年2月27日
【審査請求日】2015年2月3日
(73)【特許権者】
【識別番号】000004695
【氏名又は名称】株式会社日本自動車部品総合研究所
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001128
【氏名又は名称】特許業務法人ゆうあい特許事務所
(72)【発明者】
【氏名】石神 裕丈
(72)【発明者】
【氏名】白井 孝昌
(72)【発明者】
【氏名】今西 勝之
(72)【発明者】
【氏名】竹前 嘉修
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2011−250059(JP,A)
【文献】 特開平10−289315(JP,A)
【文献】 国際公開第2011/033673(WO,A1)
【文献】 松尾琢也, 外2名,”奥行き推定精度向上のための重み付きジョイントバイラテラルフィルタ”,第74回(平成24年)全国大会講演論文集(2) 人工知能と認知科学,2012年 3月 6日,p.(2-243)-(2-244)
【文献】 福嶋慶繁, 外1名,”Depth Image Based Renderingのための奥行画像へのポストフィルタリング”,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2011年12月 1日,第J94−D巻, 第12号,p.1992-1995
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
H04N 13/02
G06T 15/00
(57)【特許請求の範囲】
【請求項1】
カメラ(1、2)によって互いに異なる視点からによって撮影された第1の画像(21)および第2の画像(22)を取得する画像取得手段(31)と、
前記取得された前記第1の画像と前記第2の画像との各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する視差マップ生成手段(32)と、
前記視差マップ中の補正対象画素(41)および前記補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定する重み決定手段(33)と、
決定された前記重みに基づいた加重平均により前記補正対象画素の視差を補正する視差マップ補正手段(34)と、を備え
前記視差マップ生成手段(32)は、前記第1の画像中の注目画素に対応付ける画素を、前記第2の画像中で、注目画素と同じ上下位置において水平に探索し、
前記重み決定手段(33)は、前記重み算出対象画素の位置において検出されるエッジの傾きが水平に近いほど、前記重み算出対象画素の重みを小さくすることを特徴とする視差マップ生成装置。
【請求項2】
カメラ(1、2)によって互いに異なる視点からによって撮影された第1の画像(21)および第2の画像(22)を取得する画像取得手段(31)と、
前記取得された前記第1の画像と前記第2の画像との各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する視差マップ生成手段(32)と、
前記視差マップ中の補正対象画素(41)および前記補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定する重み決定手段(33)と、
決定された前記重みに基づいた加重平均により前記補正対象画素の視差を補正する視差マップ補正手段(34)と、を備え
前記重み決定手段(33)は、重みを算出する対象の重み算出対象画素の位置においてエッジが検出されなかった場合、前記重み算出対象画素の重みをゼロとすることを特徴とする視差マップ生成装置。
【請求項3】
前記重み決定手段(33)は、前記第1の画像における前記補正対象画素の輝度値と重みを算出する対象の重み算出対象画素の輝度値に基づいて、前記重み算出対象画素の重みを決定することを特徴とする請求項1または2に記載の視差マップ生成装置。
【請求項4】
前記重み決定手段(33)は、前記第1の画像における前記補正対象画素の輝度値と重みを算出する対象の重み算出対象画素の輝度値との差が大きくなるほど、前記重み算出対象画素の重みを小さくすることを特徴とする請求項に記載の視差マップ生成装置。
【請求項5】
前記重み決定手段(33)は、前記補正対象画素と重みを算出する対象の重み算出対象画素との画像座標上の距離が長くなるほど、前記重み算出対象画素の重みを小さくすることを特徴とする請求項1ないし4のいずれか1つに記載の視差マップ生成装置。
【請求項6】
前記重み決定手段(33)は、前記補正対象画素の視差と重みを算出する対象の重み算出対象画素の視差との差が大きくなるほど、前記重み算出対象画素の重みを小さくすることを特徴とする請求項1ないし5のいずれか1つに記載の視差マップ生成装置。
【請求項7】
視差マップ生成装置を、
互いに異なる視点から撮影された第1の画像(21)および第2の画像(22)を取得する画像取得手段(31)、
前記取得された前記第1の画像と前記第2の画像との各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成するとともに、前記第1の画像中の注目画素に対応付ける画素を、前記第2の画像中で、注目画素と同じ上下位置において水平に探索する視差マップ生成手段(32)、
前記視差マップ中の補正対象画素(41)および前記補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定するとともに、前記重み算出対象画素の位置において検出されるエッジの傾きが水平に近いほど、前記重み算出対象画素の重みを小さくする重み決定手段(33)、および
決定された前記重みに基づいて加重平均により前記補正対象画素の視差を補正する視差マップ補正手段(34)として機能させるプログラム。
【請求項8】
視差マップ生成装置を、
互いに異なる視点から撮影された第1の画像(21)および第2の画像(22)を取得する画像取得手段(31)、
前記取得された前記第1の画像と前記第2の画像との各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する視差マップ生成手段(32)、
前記視差マップ中の補正対象画素(41)および前記補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定するとともに、重みを算出する対象の重み算出対象画素の位置においてエッジが検出されなかった場合、前記重み算出対象画素の重みをゼロとする重み決定手段(33)、および
決定された前記重みに基づいて加重平均により前記補正対象画素の視差を補正する視差マップ補正手段(34)として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、互いに異なる視点から撮影された複数の画像の各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する視差マップ生成装置、および、当該視差マップ生成装置用のプログラム用のプログラムに関するものである。
【背景技術】
【0002】
従来、上記のような視差マップ生成装置において、ある画素の視差を補正する際、補正対象の画素と色が類似する画素を、補正対象の周辺の画素群から抽出し、抽出した画素群の視差のヒストグラムを生成し、作成したヒストグラムの最頻値となる視差を、当該補正対象画素の視差とする技術が、特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−203811号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記のようなヒストグラムを用いて補正する方法は、以下のような点で問題がある。まず、ヒストグラムの最頻値を決める必要があるため、ビンの区切り幅をある程度大きくする必要があり、その結果、補正後の視差の値がビンの区切り幅に応じて粗くなってしまう。そしてこの結果、例えば、実際には3次元空間中で連続的に配置されているもの(例えば道路上の白線)が、あたかもぶつ切りに配置されているかのように判定されてしまう可能性がある。
【0005】
本発明は上記点に鑑み、視差マップの補正の際、ビンによって補正後の視差の値が粗くなってしまわないようにすることを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するための請求項1に記載の発明は、カメラ(1、2)によって互いに異なる視点からによって撮影された第1の画像(21)および第2の画像(22)を取得する画像取得手段(31)と、前記取得された前記第1の画像と前記第2の画像との各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する視差マップ生成手段(32)と、前記視差マップ中の補正対象画素(41)および前記補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定する重み決定手段(33)と、決定された前記重みに基づいた加重平均により前記補正対象画素の視差を補正する視差マップ補正手段(34)と、を備え、視差マップ生成手段(32)は、第1の画像中の注目画素に対応付ける画素を、第2の画像中で、注目画素と同じ上下位置において水平に探索し、重み決定手段(33)は、重み算出対象画素の位置において検出されるエッジの傾きが水平に近いほど、重み算出対象画素の重みを小さくすることを特徴とする。
【0007】
このように、補正の方法として、加重平均を用いた方法を採用するので、ビンによって補正後の視差の値が粗くなってしまうことがない。なお、この発明は、対象(画像)の物理的性質(互いに異なる視点からカメラによって撮影されている)に基づく情報処理を具体的に行うものであるから、特許法上の発明に該当する。
また、請求項2に記載の発明は、カメラ(1、2)によって互いに異なる視点からによって撮影された第1の画像(21)および第2の画像(22)を取得する画像取得手段(31)と、取得された第1の画像と第2の画像との各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する視差マップ生成手段(32)と、視差マップ中の補正対象画素(41)および補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定する重み決定手段(33)と、決定された重みに基づいた加重平均により補正対象画素の視差を補正する視差マップ補正手段(34)と、を備え、重み決定手段(33)は、重みを算出する対象の重み算出対象画素の位置においてエッジが検出されなかった場合、重み算出対象画素の重みをゼロとすることを特徴とする。
これによると、請求項1に記載の発明と同様の効果を得ることができる。
【0008】
なお、上記および特許請求の範囲における括弧内の符号は、特許請求の範囲に記載された用語と後述の実施形態に記載される当該用語を例示する具体物等との対応関係を示すものである。
【図面の簡単な説明】
【0009】
図1】本発明の実施形態に係る視差マップ生成システムの構成図である。
図2】演算回路が実行する処理のフローチャートである。
図3】ステレオマッチングの概要を示す図である。
図4】視差マップ中の補正対象画素41と周辺画像とを
図5】補正対象画素41と重み算出対象画素の画像座標上の距離に応じた重み設定を概念的に示す図である。
図6】補正対象画素41と重み算出対象画素の輝度差に応じた重み設定の意義を概念的に示す図である。
図7】補正対象画素41と重み算出対象画素の奥行き方向の位置の差に応じた重み設定の意義を概念的に示す図である。
図8】奥行き方向の位置Lと視差dとの関係を示す図である。
図9】重み算出対象画素のエッジの勾配に応じた重み設定を概念的に示す図である。
図10】エッジの傾きと視差誤差edとの関係を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態について説明する。図1に示すように、本実施形態に係る視差マップ生成システムは、右カメラ1、左カメラ2、演算回路3、メモリ4を備えている。
【0011】
右カメラ1および左カメラ2は、互いに異なる位置に配置され、同じ被写体を互いに異なる視点から同時に撮影するようになっている。例えば、視差マップ生成システムが車両に搭載されている場合は、車両のフロントガラスの右端付近および左端付近にそれぞれ右カメラ1および左カメラ2が取り付けられ、右カメラ1および左カメラ2は共に車両前方を撮影するようになっていてもよい。
【0012】
演算回路3(視差マップ生成装置の一例に相当する)は、右カメラ1が撮影した撮影画像および左カメラ2が撮影した撮影画像を取得し、取得した撮影画像に基づいて視差マップを作成する装置である。この演算回路3はメモリ4中のROMに記録されたプログラムを実行することで、後述する図2の処理を実現するようになっている。また、演算回路3は、図2の処理の実行において、メモリ4中のRAMを、計算結果の一時保存用の作業領域として使用する。
【0013】
また、演算回路3は、図2の処理を実行することで、画像取得部31、視差マップ生成部32、重み決定部33、視差マップ補正部34として機能する。
【0014】
画像取得部31は、右カメラ1、左カメラ2によって互いに異なる視点から撮影された2つの画像を取得し、視差マップ生成部32は、取得された2つの画像の各々対応する画素毎の画素位置の差で表される視差を含む視差マップを生成する。
【0015】
重み決定部33は、視差マップ中の補正対象画素41(順に1個ずつ選ばれる)および補正対象画素の周辺に存在する周辺画素に対して補正に対する寄与度となる重みを決定する。画像補正部34は、決定された重みに基づいて加重平均により補正対象画素の視差を補正する。
【0016】
次に、図2の処理について説明する。演算回路3は、図2の処理において、まずステップ105で、右カメラ1によって撮影された右カメラ画像(第1の画像の一例に相当する)と、左カメラ2によって撮影された左カメラ画像(第2の画像の一例に相当する)を取得してメモリ4のRAMに記録する。このステップ105を実行することで、演算回路3が画像取得部31として機能する。
【0017】
続いてステップ110では、このRAM中に記録された右カメラ画像および左カメラ画像を用いて周知のステレオマッチングを行うことで、視差マップを生成する。このステップ110を実行することで、演算回路3が視差マップ生成部32として機能する。
【0018】
このステップ110において、視差は、右カメラ画像および左カメラ画像の双方に含まれる同じ被写体の、右カメラ画像および左カメラ画像横における横方向の画素位置の相違(乖離量)として算出される。
【0019】
ステレオマッチングとしては、周知のブロックマッチング法を採用する。ブロックマッチング法においては、演算回路3は、図3に示すように、右カメラ画像21中に、注目画素を中心に含む注目ブロック23(例えば縦5画素×横5画素のブロック)を設定し、左カメラ画像22中で、注目ブロック23と同じ被写体が含まれているブロックを探索し、探索の結果見つかったブロックを選び出し、選び出したブロックの中心画素と、当該注目画素とを対応付ける、という一連の処理を、注目画素の位置をラスタスキャンで1画素ずつずらしながら、右カメラ画像21中の全画素が注目画素となるまで、繰り返す。
【0020】
この際、注目ブロック23と同じ被写体が含まれているブロックを探索するため、候補となる比較ブロック24(注目ブロックと同形状かつ同サイズのブロック)を左カメラ画像22中に複数個設け、それら比較ブロック24のうち、周知のSAD(Sum of Absolute Difference)が最も小さくなる比較ブロック(つまり、注目ブロック23と最も相関が高い比較ブロック)を、注目ブロック23と同じ被写体が含まれているブロックとして選び出す。なお、SADとは、2つのブロック(注目ブロックと比較ブロック)内における対応する各画素の輝度差の絶対値の総和である。
【0021】
ここで、上記複数の比較ブロック24は、左カメラ画像22中で、中心画素の画像座標中の上下位置(図3中の上下位置に相当する)が、右カメラ画像中の注目画素と同じになるブロックのみから選ぶ。つまり、注目ブロック23と同じ被写体が含まれているブロックは、矢印25のように、水平方向に探索する。したがって、注目画素に対応する画素も、注目画素と同じ上下位置において水平に探索される。
【0022】
上述のように、ブロックマッチングによって、右カメラ画像21中の各画素について、左カメラ画像22中で対応する画素が決まる。これに基づき、右カメラ画像21中の各画素について、左カメラ画像22中の対応する画素との視差(横方向の画像座標位置の差)を算出し、算出した視差を、当該右カメラ画像21中の画素に対応する視差として、メモリ4のRAMに記録する。
【0023】
このように、右カメラ画像21中の各画素に対応付けられて記録された視差のデータが視差マップとなる。つまり、視差マップは、右カメラ画像21中の各画素の座標に、当該画素に写された被写体の視差が対応付けられたデータである。
【0024】
ステップ110に続いては、ステップ115〜150の処理を、視差マップの画素の数だけ繰り返す。繰り返しの各回におけるステップ115では、その回における補正対象画素および複数の周辺画素を新たに設定する。
【0025】
図4に示すように、複数の周辺画素は、補正対象画素41を中心とする縦9ドット×横9ドットのブロック領域40を設定し、そのブロック領域40内の全画素から補正対象画素41を除外した残りの画素である。なお、ブロック領域40のサイズおよび形状は適宜変更してもよい。
【0026】
続くステップ120、125、130、135では、補正対象画素41および周辺画素のそれぞれに対して各種重み設定を行う。設定された重みは、後述するステップ145で補正対象画素41の視差を加重平均で補正する際に、補正に対する寄与度を表す量として用いられる。
【0027】
まずステップ120では、補正対象画素41および周辺画素のそれぞれに対して第1の重みwを設定する。この重みwは、重みを算出する対象の画素(補正対象画素41または周辺画素、以下重み算出対象画素という)の補正対象画素41に対する画像座標上の距離に応じて設定される。図5の矢印41に示すように、右カメラ画像21中のブロック領域40内において、補正対象画素41から遠く離れた位置ほど、その位置の重み算出対象画素と補正対象画素41との画像座標上の距離は長くなる。
【0028】
重み設定は、具体的には、図5に示すような画像座標(X、Y)上の、補正対象画素41の画素座標値を(x、y)とし、重み算出対象画素の画素座標値を(x’、y’)とすると、
【0029】
【数1】
のようになる。つまり、補正対象画素41と重み算出対象画素との画像座標上の距離が長くなるほど、当該重み算出対象画素の重みwを小さくする。なお、σxは、あらかじめ定められた定数である。このようにするのは、補正対象画素41に近い画素ほど、補正対象画素41の視差との関連性が高いと考えられるからである。
【0030】
続くステップ125では、補正対象画素41および周辺画素のそれぞれに対して第2の重みwを設定する。この重みwは、重み算出対象画素と補正対象画素41の輝度値の差(右カメラ画像21における輝度値の差)に応じて設定される。図7に示すように、補正対象画素41が人の一部を被写体としており、ブロック領域40内において、人が写った領域43の輝度と背景が写った領域44の輝度とが明確に異なっている場合があるが、このような場合は、輝度の違いを利用して、補正対象画素41の視差にあまり関係がない背景の視差については、補正対象画素41の視差補正計算において寄与度を低くする。
【0031】
具体的には、補正対象画素41の(右カメラ画像21における)輝度値をIxyとし、重み算出対象画素の(右カメラ画像21における)輝度値をIx’y’とすると、
【0032】
【数2】
のように算出する。つまり、補正対象画素41の輝度値と重み算出対象画素の輝度値との差が大きくなるほど、当該重み算出対象画素の重みwを小さくする。なお、σは、あらかじめ定められた定数である。
【0033】
続くステップ130では、補正対象画素41および周辺画素のそれぞれに対して第3の重みwを設定する。この重みwは、重み算出対象画素と補正対象画素41の3次元座標変換時の奥行き方向の位置の差に応じて設定される。図7に示すように、補正対象画素41が人の一部を被写体としており、ブロック領域40内において、人の輝度に近いがカメラ1、2からの距離が大きく異なる被写体45(例えば路面上の白線)がある場合は、そのカメラ1、2からの距離(すなわち、上記奥行き方向の位置)の違いを利用して、補正対象画素41の視差にあまり関係がない被写体45の視差については、補正対象画素41の視差補正計算において寄与度を低くする。
【0034】
具体的には、補正対象画素41の上記奥行き方向の位置をZxyとし、重み算出対象画素の上記奥行き方向の位置をZx’y’とすると、
【0035】
【数3】
のように算出する。つまり、補正対象画素41の奥行き方向の位置(カメラから遠いほど大きくなる)と重み算出対象画素の奥行き方向の位置との差が大きくなるほど、当該重み算出対象画素の重みwを小さくする。なお、σは、あらかじめ定められた定数である。
【0036】
なお、ある画素の3次元座標変換時の奥行き方向の位置は、その画素の視差(直前のステップ110で算出された視差)に応じて決まる。具体的には、図8に示すように、2つのカメラ1、2の光軸1a、1b間の距離をbとし、カメラ1のレンズ1bから結増面1cまでの距離(カメラ2のレンズ2bから結増面2cまでの距離と同じ)に相当するレンズ焦点距離をfとし、視差をdとすると、被写体51の奥行き方向の位置Lは、L=b×f/dという式によって得られる。なお、焦点距離fおよび距離bは既知である。
【0037】
従って、2つの画素の奥行き方向の位置の差が大きいときは、2つの画素の視差の差も大きくなるので、補正対象画素41の視差と重み算出対象画素の視差との差が大きくなるほど、当該重み算出対象画素の重みwが小さくなる。
【0038】
続くステップ135では、補正対象画素41および周辺画素のそれぞれに対して第4の重みwθを設定する。
【0039】
この重みwθは、重み算出対象画素に存在するエッジ(右カメラ画像21中のエッジ)の勾配に応じて設定される。具体的には、エッジの勾配が水平に近い画素ほど、その画素の重みwθを小さくするので、図9に示すように、エッジ46の位置の画素の重みは、エッジ47の位置の画素の重みよりも小さくなる。
【0040】
より具体的には、補正対象画素41のエッジの傾きをθx’y’とすると(ただし、θx’y’は0≦θx’y’<πの間で決められる)、
【0041】
【数4】
のように算出する。ここで、σθは、あらかじめ定められた定数である。
【0042】
このようにして第4の重みwθを算出するのは、エッジが水平に近い重み算出対象画素ほど、ステップ110のステレオマッチングによる視差計算の誤差が高くなる傾向にあるので、補正対象画素41の視差補正計算においてそのような重み算出対象画素の寄与度を低くしたいからである。
【0043】
エッジが水平に近い画素ほどステレオマッチングの誤差が高くなる理由について説明する。本実施形態では、右カメラ画像および左カメラ画像において同じ被写体が写った2つの画素については、水平方向の位置がずれるものの、上下方向の位置がずれないように、あらかじめカメラ1、2の位置および向きが調整されている。
【0044】
また、カメラ1、2の位置および向きの若干のずれを検出するため、演算回路3は、カメラ1、2の設置時に、右カメラ画像および左カメラ画像を用いたキャリブレーションを行い、そのキャリブレーションによって検出したずれを解消するよう、右カメラ画像および左カメラ画像の補正パラメータを決定し、以後のステップ105では毎回、この補正パラメータを用いた補正を、最新の右カメラ画像および左カメラ画像に対して施している。
【0045】
しかしながら、キャリブレーションにも誤差が発生する場合がある。そのような場合には、図10に示すように、画像座標上において、右カメラ画像中で或る被写体が写った画素61と、左カメラ画像中で同じ被写体が写った画素62とが、同じ水平ライン61上にない(すなわち上下にずれている)場合が生じる。なお、図10の例では、画素61は右カメラ画像中のエッジ61上にあり、画素62は左カメラ画像中のエッジ62(被写体としてはエッジ61と同じ)上にある。
【0046】
このような場合であっても、ステップ110のステレオマッチングでは、上述の通り、注目画素に対応する画素は、注目画素と同じ上下位置において水平に探索されるので、画素61に真に対応する画素62は、実際には画素61に対応付けられることはない。
【0047】
このような場合、左カメラ画像内で画素61に実際に対応付けられる画素は、ブロックマッチングの性質上、水平ライン63と画素62を通るエッジ65とが交わる位置の画素66となる可能性が高い。その結果、画素61について計算される視差は、視差誤差edを含むものとなってしまう。
【0048】
この視差誤差edは、エッジ61、62の水平ラインを基準とした勾配をθとし、画素61に対する画素62の上下方向のずれを平行化誤差erとすると、画像左上端を原点とする座標系では
ed=er×tan(π/2−θ)
となる(図10の例ではed、erはマイナスの値を持つ)。つまり、視差誤差edは、0≦θ<πの範囲内では、θ=π/2のとき(すなわち、エッジが水平ラインに対して直交しているとき)最小であり、θ=π/2から離れるほど(すなわち、エッジが水平に近づくほど)大きくなる。
【0049】
なお、右カメラ画像21中でエッジが検出されなかった画素については、重みwθの値をゼロ(寄与度ゼロ)とする。このようにするのは、エッジが検出されない画素は、エッジが検出された画素に比べて、ステレオマッチングによる視差計算の誤差が高くなる傾向にあるからである。
【0050】
また、右カメラ画像21のエッジ検出は、Sobelフィルタを用いた方法等、周知のものを用いればよい。また、エッジ検出のタイミングは、ステップ105で右カメラ画像21を取得した時点でもよいし、ステップ135の実行開始時点においてブロック領域40に対してエッジ検出を行う方法でもよい。
【0051】
ステップ135に続いては、ステップ140に進み、ステップ120、125、130、135で算出した重みw、w、w、wθを統合する。具体的には、今回のブロック領域40中の重み算出対象画素のそれぞれについて、当該画素の重みw、w、w、wθの積w=w×w×w×wθを、最終的な当該画素の重みとする。
【0052】
なお、このような統合方法によれば、最終的な重みwは、重みw、w、w、wθのうちいずれかがゼロになれば必ずゼロになるので、第4の重みwθを考慮すれば、重みwも、エッジが検出されなかった画素については、ゼロとなる。
【0053】
演算回路3は、上記のようなステップ115〜140を実行することで、重み決定部(33)として機能する。
【0054】
続くステップ145では、ステップ140で統合した重みwを用いた加重平均によって、今回の補正対象画素41の視差の補正を行う。演算回路3は、このステップ145を実行することで、視差マップ補整部として機能する。
【0055】
具体的には、直前のステップ110で算出した画像座標値(x’、y’)の画素の視差をdx’y’とし、補正後の画像座標値(x、y)の画素の視差をfxyとすると、fxyは、
【0056】
【数5】
のようになる。なお、この数式中の二重のΣは、今回のブロック領域40中のすべての重み算出対象画素について総和を取ることを意味している。したがっって、ブロック領域40が縦9画素×横9画素の領域の場合、Rは4画素分を表す量に相当する。
【0057】
ステップ150では、対象となる全画素(右カメラ画像21の全画素)が補正対象画素になったか否かを判定し、なっていない場合、ステップ115に戻り、なっている場合、補正後の視差マップをメモリ4のRAMに記録した後、図2の処理を終了する。
【0058】
このように、ステップ115〜150の処理を右カメラ画像21の画素分実行することで、各画素の視差を補正することができる。
【0059】
なお、このような補正によって得た視差マップは、どのような用途に用いてもよい。例えば、本実施形態に係る視差マップ生成システムが車両に搭載され、車両のフロントガラスの右端付近および左端付近にそれぞれ右カメラ1および左カメラ2が取り付けられ、右カメラ1および左カメラ2は共に車両前方を撮影するようになっている場合は、この視差マップに基づいて、自車両から障害物までの距離を検知するようになっていてもよい。
【0060】
なお、上記実施形態においては、演算回路3の画像取得部31、視差マップ生成部32、重み決定部33、および視差マップ生成部32が、それぞれ、画像取得手段、視差マップ生成手段、重み決定手段、および視差マップ生成手段に対応する。
【0061】
(他の実施形態)
以上、本発明の実施形態について説明したが、本発明の範囲は、上記実施形態のみに限定されるものではなく、本発明の各発明特定事項の機能を実現し得る種々の形態を包含するものである。例えば、以下のような形態も許容される。
【0062】
(1)上記実施形態では、ステップ140で、重みw、w、w、wθをすべて掛け合わせた量w=w×w×w×wθを最終的な重みとして加重平均に用いているが、最終的な重みは必ずしもこのようになっておらずともよい。例えば、w、w、w、wθのいずれか1つを最終的な重みとしてもよいし、w、w、w、wθのうちどの2つを選んで掛け合わせたものも最終的な重みとしてよい。
【0063】
(2)上記実施形態では、視差マップにおいては、右カメラ画像21の各画素にその画素の視差が対応付けられている。しかし、視差マップにおいては、左カメラ画像22の各画素にその画素の視差が対応付けられていてもよいし、右カメラ画像21と左カメラ画像22と視差とに基づいて仮想的に作成された中間視点の画像の各画素にその画素の視差が対応付けられていてもよい。
【0064】
(3)また、上記の実施形態において、演算回路3がプログラムを実行することで実現している各機能は、それらの機能を有するハードウェア(例えば回路構成をプログラムすることが可能なFPGA)を用いて実現するようになっていてもよい。
【符号の説明】
【0065】
1、2 カメラ
3 演算回路
21、22 カメラ画像
31 画像取得部
32 視差マップ生成部
33 重み決定部
34 視差マップ補正部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10