IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社東芝の特許一覧 ▶ 東芝デバイス&ストレージ株式会社の特許一覧

<>
  • 特許-距離推定装置及び距離推定方法 図1
  • 特許-距離推定装置及び距離推定方法 図2
  • 特許-距離推定装置及び距離推定方法 図3
  • 特許-距離推定装置及び距離推定方法 図4
  • 特許-距離推定装置及び距離推定方法 図5
  • 特許-距離推定装置及び距離推定方法 図6
  • 特許-距離推定装置及び距離推定方法 図7
  • 特許-距離推定装置及び距離推定方法 図8
  • 特許-距離推定装置及び距離推定方法 図9
  • 特許-距離推定装置及び距離推定方法 図10
  • 特許-距離推定装置及び距離推定方法 図11
  • 特許-距離推定装置及び距離推定方法 図12
  • 特許-距離推定装置及び距離推定方法 図13
  • 特許-距離推定装置及び距離推定方法 図14
  • 特許-距離推定装置及び距離推定方法 図15
  • 特許-距離推定装置及び距離推定方法 図16
  • 特許-距離推定装置及び距離推定方法 図17
  • 特許-距離推定装置及び距離推定方法 図18
  • 特許-距離推定装置及び距離推定方法 図19
  • 特許-距離推定装置及び距離推定方法 図20
  • 特許-距離推定装置及び距離推定方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】距離推定装置及び距離推定方法
(51)【国際特許分類】
   G01C 3/06 20060101AFI20240219BHJP
【FI】
G01C3/06 130
G01C3/06 110V
G01C3/06 120P
【請求項の数】 10
(21)【出願番号】P 2021044764
(22)【出願日】2021-03-18
(65)【公開番号】P2022143955
(43)【公開日】2022-10-03
【審査請求日】2023-01-26
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】小田 雄一
(72)【発明者】
【氏名】山田 裕
(72)【発明者】
【氏名】西山 学
(72)【発明者】
【氏名】大木 豊
【審査官】櫻井 仁
(56)【参考文献】
【文献】特開2007-263657(JP,A)
【文献】国際公開第2017/159312(WO,A1)
【文献】特開2007-240275(JP,A)
【文献】国際公開第2015/059346(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 3/06
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
物標の画像の少なくとも一部の第1領域内の第1の複数の画素の距離を第1推定方式に基づき推定する第1距離推定部と、
前記画像の少なくとも一部の第2領域内の第2の複数の画素の距離を前記第1推定方式とは異なる第2推定方式に基づき推定する第2距離推定部と、を具備し、
前記第1距離推定部は、前記第2の複数の画素の距離に応じて前記第1領域を決定し、
前記第2距離推定部は、前記第1の複数の画素の距離と前記第2の複数の画素の距離に応じて前記第2領域を決定する、距離推定装置。
【請求項2】
前記第1距離推定部は、前記第1の複数の画素の距離の信頼度を推定し、第1信頼度以上の距離を出力し、
前記第2距離推定部は、前記第2の複数の画素の距離の信頼度を推定し、第2信頼度以上の距離を出力する、請求項1記載の距離推定装置。
【請求項3】
前記第1距離推定部は、異なるアングルで撮影された前記物標の2枚の画像に基づいて距離測定装置のエゴモーションを推定し、
前記第2距離推定部は、前記エゴモーションと前記第1の複数の画素の距離前記第2の複数の画素の距離に基づいて前記第2領域を決定する、請求項1または請求項2記載の距離推定装置。
【請求項4】
前記第1距離推定部は、第1時刻で撮影された前記物標の第1画像と、時系列において前記第1時刻より前の第2時刻で撮影された前記物標の第2画像と、に基づいて前記エゴモーションを推定し、
前記第2距離推定部は、前記エゴモーションと前記第1距離推定部により推定された前記第2画像の前記第1の複数の画素の距離と、前記第2距離推定部により推定された前記第2画像の前記第2の複数の画素の距離と、に基づいて前記第2領域を決定する、請求項3記載の距離推定装置。
【請求項5】
前記第1領域の形状と前記第2領域の形状は矩形である、請求項3記載の距離推定装置。
【請求項6】
前記第2距離推定部は、領域指定信号を受信し、前記エゴモーションと、前記第1の複数の画素の距離と、前記第2の複数の画素の距離と、前記領域指定信号とに基づいて前記第2領域を決定する、請求項3記載の距離推定装置。
【請求項7】
前記第2領域は、複数の部分領域を含み、
前記第2距離推定部は、前記エゴモーションと、前記第1の複数の画素の距離と、前記第2の複数の画素の距離と、に基づいて前記複数の部分領域毎に全画素数に対する距離が推定された画素数の割合を計算し、前記割合が第1割合より大きい部分領域については距離を推定せず、前記割合が第1割合以下の部分領域について距離を推定する、請求項3記載の距離推定装置。
【請求項8】
前記第1距離推定部は、前記第2距離推定部により距離が推定されない画素を含む領域を前記第1領域として決定する、請求項3記載の距離推定装置。
【請求項9】
物標の画像の少なくとも一部の第1領域内の第1の複数の画素の距離を第1距離推定部により第1推定方式に基づき推定し、
前記画像の少なくとも一部の第2領域内の第2の複数の画素の距離を第2距離推定部により第2推定方式に基づき推定し、
前記第1距離推定部は、前記第2の複数の画素の距離に応じて前記第1領域を選択し、
前記第2距離推定部は、前記第1の複数の画素の距離と前記第2の複数の画素の距離に応じて前記第2領域を選択する、距離推定方法。
【請求項10】
前記第1距離推定部は、異なるアングルで撮影された前記物標の2枚の画像に基づいて距離測定装置のエゴモーションを推定し、
前記第2距離推定部は、前記エゴモーションと、前記第1の複数の画素の距離と、前記第2の複数の画素の距離と、に基づいて前記第2領域を決定する、請求項9記載の距離推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、物標のデプス(以下、距離と称される)を推定する距離推定装置及び距離推定方法に関する。
【背景技術】
【0002】
距離推定装置の従来例は、SLAM(Simultaneous Location and Mapping)方式や収差マップ方式を用いる装置がある。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2018/216341号
【文献】特開2018-139084号公報
【文献】国際公開第2020/158646号
【発明の概要】
【発明が解決しようとする課題】
【0004】
いずれの方式でも、広範囲の物標の距離を推定するためには、処理時間が増大する。
【0005】
本発明の目的は、広範囲の物標の距離を短時間に推定することができる距離推定装置及び距離推定方法を提供することである。
【課題を解決するための手段】
【0006】
実施形態によれば、距離推定装置は、第1距離推定部と、第1距離推定部とは異なる推定方式の第2距離推定部を具備する。第1距離推定部は、物標の画像の少なくとも一部の第1領域内の第1の複数の画素の距離を推定する。第2距離推定部は、前記画像の少なくとも一部の第2領域内の第2の複数の画素の距離を推定する。前記第1距離推定部は、前記第2の複数の画素の距離に応じて前記第1領域を決定する。前記第2距離推定部は、前記第1の複数の画素の距離と前記第2の複数の画素の距離に応じて前記第2領域を決定する。
【図面の簡単な説明】
【0007】
図1】第1実施形態による距離推定装置の一例を示すブロック図。
図2図1に示される距離推定部の一例を示す機能ブロック図。
図3図2に示される距離推定部の動作の一例を示すタイミングチャート。
図4図2に示される収差マップ領域選択部の一例を示す機能ブロック図。
図5図4に示される矩形リストの一例を示す図。
図6図2に示される点群生成領域選択部の一例を示す機能ブロック図。
図7図6に示される矩形リストの一例を示す図。
図8図6に示される矩形生成部の処理の一例を示すフローチャート。
図9図6に示される矩形リストの他の例を示す図。
図10図6に示される点群フィルタの処理の一例を示すフローチャートである。
図11図2に示される収差マップ演算部の処理の一例を示すフローチャートである。
図12図2に示される点群生成部の処理の一例を示すフローチャートである。
図13】第1実施形態による処理時間削減の一例を説明する図。
図14】第1実施形態による測定精度向上の一例を説明する図。
図15】第2実施形態による収差マップ領域選択部の一例を示す機能ブロック図。
図16図15に示される矩形統合部の処理の一例を説明する図。
図17】第3実施形態による収差マップ処理部の一例を示す機能ブロック図。
図18図17に示される密度計測部の処理の一例を示すフローチャート。
図19】第4実施形態による距離推定部の一例を示す機能ブロック図。
図20図19に示される収差マップ領域選択部の一例を示す機能ブロック図。
図21】第5実施形態による収差マップ演算部がエゴモーションを推定する動作の一例を示すタイミングチャート。
【発明を実施するための形態】
【0008】
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、配置等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介して接続されることも意味する。
【0009】
以下、図面を参照しながら本実施の形態について詳細に説明する。
【0010】
[第1実施形態]
図1は、第1実施形態による距離推定装置の一例を示すブロック図である。距離推定装置は、物標の画像から画像の各画素の距離を推定するものであるが、第1実施形態では、距離推定装置は、推定した各画素の距離から各画素の3次元位置(3次元座標とも称される)も推定するとする。各画素の3次元座標を推定することは点を推定すると称される。ただし、距離推定装置は必ずしも点を推定する必要はなく、距離を推定るすだけでもよい。物標を構成する点の集合は点群と称される。
【0011】
距離推定装置の応用例は、自動車、ドローン、自走式のロボット等に搭載され、周囲の障害物の位置を推定し、障害物への衝突を防止する自動運転装置が考えられる。
【0012】
距離推定装置は、複数の推定方式により点群を推定し、複数の推定方式により推定された点群を結合する(マージとも称される)。各推定方式は、信頼度が高い点群を推定することができる画像の種類や、画像内の領域が異なる。そのため、或る領域について1つの推定方式により点群を推定し、他の領域について他の推定方式により点群を推定し、両者の点群を結合すると、広い領域について信頼度の高い点群を推定することができる。
【0013】
第1実施形態では、複数の距離推定方式として、SLAM方式と収差マップ方式が用いられる。しかし、これらの方式は一例であり、他の方式が用いられてもよい。また、用いられる方式の数は2つに限らず、3つ以上でもよい。
【0014】
距離推定装置は、カメラ12と、CPU14と、メモリ16と、ディスプレイ18を含む。SLAM方式では、ステレオカメラや単眼カメラが用いられる。収差マップ法では、単眼カメラが用いられる。1つのカメラをSLAM方式にも収差マップ方式にも使う場合、カメラ12としては単眼カメラが用いられる。SLAM方式では、三角測量に基づき物標位置が推定される。そのため、単眼カメラを用いるSLAM方式では、単眼カメラは、移動機能に取り付けられ、2つの異なるアングルで物標を撮影する。しかし、1つのカメラをSLAM方式にも収差マップ方式にも使うのではなく、SLAM方式用のステレオカメラと収差マップ方式用の単眼カメラがそれぞれ設けられてもよい。第1実施形態では、単一の単眼カメラがカメラ12として用いられる。
【0015】
メモリ16は、演算途中のデータを格納するとともに、CPU14が実行するプログラムを格納する。プログラムは距離推定プログラムを含む。
【0016】
CPU14は、メモリ16に記憶されている距離推定プログラムを実行することにより、距離推定部22として機能する。距離推定部22は、物標の各点までの距離を推定し、推定結果に基づいて点群を推定する。
【0017】
ディスプレイ18は推定された点群を表示する。点群の表示の例は、2次元画像の各画素が距離情報に応じて着色される距離画像である。表示は出力形態の一例である。出力形態は表示に限らず、他の装置へ出力結果を送信する形態でもよい。その場合、ディスプレイ18の代わりに送信機が用いられる。
【0018】
距離推定部22は、SLAM処理部24と、収差マップ処理部26と、マージ部28を含む。
【0019】
SLAM処理部24は、カメラ12から出力される異なるアングルで撮影された2枚の画像の特徴点を求め、特徴点の幾何学関係を利用して三角測量により物標の各点までの距離を推定し、距離の推定結果に基づいて点群を推定する。
【0020】
収差マップ処理部26は、カメラ12から出力された1枚の画像から被写体の距離や画像の位置で異なるレンズ収差による画像のぼけ情報(収差マップと称される)を計算し、収差マップに基づいて距離を推定し、距離の推定結果に基づいて点群を推定する。収差マップ処理部26は、被写体の距離や画像の位置と収差マップとの対応関係を、例えば深層ニューラルネットワークにより解析し、物標の各点までの距離を推定する。収差の特徴の解析には、点像分布関数(Point Spread Function:PFS)が用いられる。PSFは、被写体から生じる1点からの光(点光源)がカメラレンズを通過した後にどのような広がりを持って結像するか(ぼけの形や色づき)を表す関数である。PSFは、カメラレンズに対する被写体の距離や面内位置によって異なる。このPSFの、距離や面内位置との対応関係が収差マップである。
【0021】
マージ部28は、SLAM処理部24により推定された点群と収差マップ処理部26により推定された点群を結合する。
【0022】
なお、ソフトウェアにより距離推定部22を実現するのではなく、ハードウェアにより距離推定部22を実現してもよい。
【0023】
図2は、図1に示される距離推定部22の一例を示す機能ブロック図である。SLAM処理部24は、エゴモーション推定部32、点群生成領域選択部36、点群生成部38、及び点群フィルタ42を含む。収差マップ処理部26は、収差マップ領域選択部52、収差マップ演算部54、及び点群フィルタ58を含む。
【0024】
カメラ12は、移動機構に取り付けられ、2つの異なるアングルで(例えば、左右にずれた位置から)物標を周期的に撮影する。例えば、ある時刻Tでは、2つの時刻T-1と時刻Tで撮影された異なるアングルの2フレームの画像がSLAM処理部24に供給される。時刻T-1は時系列において時刻Tより1つ前の時刻である。ある時刻Tでは、収差マップ処理部26には、時刻Tで撮影された1フレームの画像のみが供給される。SLAM処理部24では、画像はエゴモーション推定部32と点群生成部38に入力される。収差マップ処理部26では、画像は収差マップ演算部54に入力される。
【0025】
エゴモーション推定部32は、2枚の画像から距離推定装置、すなわちカメラ12の移動量や姿勢の変化を推定し、推定結果をエゴモーション34として出力する。エゴモーション推定部32は、点群生成部38と収差マップ処理部26内の収差マップ領域選択部52にエゴモーション34を供給する。
【0026】
点群生成領域選択部36は、収差マップ処理部26から出力される信頼度付き点群56(後述)に基づいて、画像の中のSLAM処理部24により点群を推定したい領域(点群生成領域)を選択する。点群生成領域選択部36は、点群生成領域を示す情報(矩形リストと称される)を点群生成部38に供給する。
【0027】
点群生成部38は、点群生成領域内の2枚の画像から三角測量により物標の各点の距離を推定し、カメラの光学パラメータと距離から点群生成領域内の点群40を推定する。点群生成部38による距離推定の精度(以下、信頼度と称される)は、画像の種類や点(画素)の位置に応じる。そのため、点群生成部38は、推定した距離の信頼度を求め、点群40として信頼度付き点群を推定する。一般に、2枚の画像間で視差が大きい程、三角測量の精度が高いとされる。したがって、信頼度として、例えば視差が利用できる。点群生成部38は、点群フィルタ42と収差マップ処理部26内の収差マップ領域選択部52に信頼度付き点群40を供給する。
【0028】
点群フィルタ42は、点群40を信頼度に基づき選択し、閾値未満の信頼度の点群を出力せず、閾値以上の信頼度の点群のみを点群44として出力する。
【0029】
収差マップ処理部26では、収差マップ領域選択部52は、エゴモーション34と、信頼度付き点群40と、収差マップ演算部54から出力される信頼度付き点群56(後述)とに基づいて、画像の中の収差マップ演算により点群を推定したい領域(収差マップ領域)を選択する。収差マップ領域選択部52は、収差マップ領域を示す情報(矩形リスト)を収差マップ演算部54に供給する。
【0030】
収差マップ演算部54は、収差マップ領域について画像の収差マップを計算し、深層ニューラルネットワークを用いて収差マップから距離を推定し、カメラの光学パラメータと距離から収差マップ領域について点群56を推定する。点群生成部38による距離推定と同様に、収差マップ演算部54による距離推定の信頼度も、画像の種類や点(画素)の位置に応じる。そのため、収差マップ演算部54は、推定した距離の信頼度を求め、点群56として信頼度付き点群を推定する。収差マップ演算部54は、収差マップ領域についての信頼度付き点群56を点群フィルタ58と、収差マップ領域選択部52と、SLAM処理部24の点群生成領域選択部36に供給する。
【0031】
点群フィルタ58は、点群56を信頼度に基づき選択し、閾値未満の信頼度の点群を出力せず、閾値以上の信頼度の点群のみを点群60として出力する。
【0032】
点群フィルタ42、58の閾値は同じでもよいし、互いに異なっていてもよい。
【0033】
マージ部28は、SLAM処理部24により推定された点群と収差マップ処理部26により推定された点群を結合する。SLAM処理部24により点群44が推定された領域と収差マップ処理部26により点群60が推定された領域が異なる場合、マージ部28は、2つの点群44、60を単純に結合して点群62を出力する。SLAM処理部24により点群44が推定された領域と収差マップ処理部26により点群60が推定された領域が重複する領域を含む場合、マージ部28は、重複領域では信頼度の高い点群を選択する。このためには、点群を生成する基になった矩形情報をマージ部28に入力する必要がある。これにより、広範囲にわたって信頼度の高い点群62が推定される。
【0034】
図3は、図2に示される距離推定部22のSLAM処理部24と収差マップ処理部26との間の時系列の入出力の一例を示すタイミングチャートである。
【0035】
時刻T-2で撮影されたフレーム(n―2)の画像と時刻T-1で撮影されたフレーム(n-1)の2枚の画像が点群生成部38に入力されると、点群生成部38は、点群生成領域内の2枚の画像からフレーム(n-1)の信頼度付き点群40を推定し、信頼度付き点群40を収差マップ領域選択部52に供給する。
【0036】
フレーム(n-1)とフレームnの2枚の画像が点群生成部38に入力されると、エゴモーション推定部32はフレームnのエゴモーション34を生成し、エゴモーション34を収差マップ領域選択部52に供給する。
【0037】
収差マップ領域選択部52は、フレーム(n-1)の信頼度付き点群(SLAM点群)40とフレームnのエゴモーション34に基づいてフレームnの収差マップ領域を選択する。収差マップ演算部54は、収差マップ領域内の画像についてフレームnの信頼度付き点群56を推定し、信頼度付き点群56を点群生成領域選択部36に供給する。
【0038】
点群生成領域選択部36は、フレームnの信頼度付き点群(収差マップ点群)56に基づいて点群生成領域を選択する。点群生成部38は、点群生成領域内の画像についてフレームnの信頼度付き点群40を推定し、信頼度付き点群40を収差マップ領域選択部52に供給する。
【0039】
収差マップ領域選択部52は、収差マップ演算部54で点群生成された1フレーム前の画像に対する現フレームの予測矩形に基づく領域を選択する。しかし、物標がカメラ12の撮影対象範囲から外れると、収差マップ演算を処理する領域が無くなる。これを回避するために、SLAM処理部24で生成された点群40が収差マップ領域選択部52に入力されている。SLAM処理部24と収差マップ処理部26は、ともに画像のエッジ付近で距離を推定しやすい。そのため、SLAM処理部24で点群生成できた領域は、将来、収差マップ処理部26でも点群生成できる可能性があり、SLAM処理部24で点群生成できた領域は、収差マップ演算を処理する領域を新規に追加することに利用される。
【0040】
点群生成領域選択部36は、収差マップ演算部54により推定された点群56に基づき点群生成領域を選択する。これにより、収差マップ演算部54により点群が推定されない領域の点群をSLAM処理部24の処理結果で補い、推定することができる。具体的には、後述するように、SLAM処理部24で生成した点群を画像に投影し、収差マップ処理部26で新規に追加する領域として利用される。
【0041】
図4は、図2に示される収差マップ領域選択部52の一例を示す機能ブロック図である。収差マップ領域選択部52は、点群位置予測部102と、画像再投影部106と、矩形生成部110を含む。現フレームのエゴモーション34と、前フレームの信頼度付き点群(収差マップ点群)56aと、前フレームの信頼度付き点群(SLAM点群)40aが点群位置予測部102に入力される。
【0042】
エゴモーション34は、現フレームの点群の位置と前フレームの点群の位置のズレを示す。そのため、エゴモーションと前フレームの点群から現フレームの点群を推定することができる。また、或るフレームで収差マップ演算により点群が推定された物標は、次フレームでも点群が推定される可能性が高い。また、収差マップ演算もSLAM演算も、画像のエッジ付近で高精度の点群が推定される可能性が高い。そのため、或るフレームでSLAM演算により点群が推定された領域は、次フレームで収差マップ演算により点群が推定される可能性が高い。そのため、点群位置予測部102は、現フレームのエゴモーション34と、前フレームの信頼度付き点群(収差マップ点群)56aと、前フレームの信頼度付き点群(SLAM点群)40aとに基づいて現フレームの物標の位置を示す点群の位置を予測し、現フレーム予測点群(収差マップ点群)104を生成する。点群位置予測部102は、現フレーム予測点群104を画像再投影部106に供給する。
【0043】
画像再投影部106は、現フレームの画像中の全画素について、物標が存在する、すなわち点が推定される可能性の高い画素の画素値を1とし、物標が存在しない、すなわち点が推定されない可能性の高い画素の画素値を0とする2値画像108を生成し、2値画像108を矩形生成部110に供給する。2値画像は物標の有無を予測する。
【0044】
矩形生成部110は、画素値が1である画素を含む最小の四角形(以下、四角形は矩形と称される)を表す矩形リスト112を出力する。矩形は、現フレームで物標が存在する可能性の高い、すなわち収差マップ演算により点が推定される可能性が高い領域を示す。
【0045】
図5は、矩形リスト112の一例を示す。矩形リスト112は、矩形110a、110bの四隅の画素の座標を示す。図5では、矩形110a、110bは正方形であるが、矩形110a、110bの縦、横の長さは異なっていてもよい。なお、矩形が所定サイズの正方形に限られている場合は、矩形リスト112は、矩形の特定の隅、例えば左上の隅の画素の座標を示す。
【0046】
矩形リスト112は、収差マップ演算部54に供給される。収差マップ演算部54は、画像全体ではなく矩形リスト112により示された矩形について収差マップ演算を行う。このため、収差マップ演算時間が短縮される。
【0047】
図6は、図2に示される点群生成領域選択部36の一例を示す機能ブロック図である。点群生成領域選択部36は、点群フィルタ122と、画像再投影部126と、矩形生成部130を含む。現フレームの信頼度付き点群(収差マップ点群)56が点群フィルタ122に入力される。点群フィルタ122は、点群56を信頼度に基づき選択し、閾値未満の信頼度の点群を出力せず、閾値以上の信頼度の点群のみを点群124として出力する。点群フィルタ122が信頼度の低い点群を除去するのは、収差マップ演算部54で点群が生成されていた場合でも、信頼度が低い点群は除去し、SLAM処理部24により点群生成するためである。
【0048】
点群フィルタ122から出力された点群124は、画像再投影部126に供給される。
【0049】
画像再投影部126は、画像再投影部106と同様に、現フレームの画像中の全画素について、物標が存在する、すなわち点が推定される可能性の高い画素の画素値を1とし、物標が存在しない、すなわち点が推定されない可能性の高い画素の画素値を0とする2値画像128を生成し、2値画像128を矩形生成部130に供給する。
【0050】
矩形生成部130は、矩形生成部110とは反対に、画素値が0である画素のみからなる一定サイズ以上の矩形を表す矩形リスト132を出力する。矩形は、収差マップ演算により点が推定されない領域を示す。
【0051】
図7は、一定サイズを5画素×5画素とした矩形リスト132の一例を示す。図7の矩形リスト132は、5画素×5画素以上のサイズの矩形130a、130bの四隅の位置を示す。
【0052】
図8は、矩形生成部130の処理の一例を示すフローチャートである。
【0053】
矩形生成部130は、ステップ302で、一番上の5行分の画像を1画素(水平方向)×5画素(垂直方向)の画素列毎にスキャンし、全ての画素値が0である画素列を検出する。
【0054】
ステップ304で、矩形生成部130は、ステップ302で検出した画素列が水平方向に5列以上連続するか否かを判定する。検出した画素列が水平方向に5列以上連続する場合(ステップ304のYES)、矩形生成部130は、ステップ306で、水平方向に5列以上連続する画素列を結合した矩形の矩形リストをメモリ16に蓄積する。矩形生成部130は、ステップ306の処理を終了すると、ステップ308の処理を実行する。
【0055】
5行分の画像から検出した画素列が水平方向に5列以上連続しない場合(ステップ304のNO)、矩形生成部130は、その5行分の画像についての処理を終了し、ステップ308の処理を実行する。
【0056】
矩形生成部130は、ステップ308で、ステップ302でスキャンした画像が最も下の5行であるか否かを判定する。スキャンした画像が最も下の5行ではない場合(ステップ308のNO)、矩形生成部130は、ステップ310で、次の5行分の画像を1画素(水平方向)×5画素(垂直方向)の画素列毎にスキャンし、全ての画素値が0である画素列を検出する。矩形生成部130は、ステップ310の処理を終了すると、ステップ304の処理を実行する。
【0057】
スキャンした画像が最も下の5行である場合(ステップ308のYES)、矩形生成部130は、ステップ312で、メモリ16に蓄積した矩形リストを矩形リスト132として出力する。このようにして、図7に示すような矩形リスト132が生成される。
【0058】
矩形リスト132は、点群生成部38に供給される。点群生成部38は、矩形リスト132により示された矩形について点群生成を行う。
【0059】
図9は、一定サイズを4画素×4画素とした矩形リスト132の他の例を示す。図9の矩形リスト132は、4画素×4画素以上のサイズの矩形130c、130d、130eの四隅の位置を示す。図9の矩形リストは、図8のフローチャートにおいて、1×5の画素列の代わりに1×4の画素列とすることにより、同様に生成される。
【0060】
図10は、図6に示される点群フィルタ122の処理の一例を示すフローチャートである。
【0061】
点群フィルタ122は、ステップ142で、信頼度付き点群56を入力する。点群フィルタ122は、ステップ144で、点群56の中の1点を選択する。点群フィルタ122は、ステップ146で、選択した点の信頼度が閾値以上であるか否かを判定する。
【0062】
選択した点の信頼度が閾値以上である場合(ステップ146のYES)、点群フィルタ122は、ステップ148で、選択した点、すなわち3次元座標をメモリ16に蓄積する。点群フィルタ122は、ステップ148の処理が終わると、ステップ150の処理を実行する。選択した点の信頼度が閾値未満である場合(ステップ146のNO)、点群フィルタ122は、ステップ150の処理を実行する。
【0063】
点群フィルタ122は、ステップ150で、点群の全ての点が処理されたか、すなわち未選択の点があるか否かを判定する。
【0064】
未選択の点がある場合(ステップ150のYES)、点群フィルタ122は、ステップ144で、点群56の中の次の1点を選択する。未選択の点がない場合(ステップ150のNO)、点群フィルタ122は、ステップ152で、蓄積した点を点群124として出力し、処理を終了する。
【0065】
これにより、点群フィルタ122は、入力した点群56の中の閾値以上の信頼度の点からなる高信頼度の点群124を出力することができ、低い信頼度の点を除去することができる。このため、推定された点群は信頼性の高い点群である。
【0066】
図2に示される点群フィルタ42、58の処理も図10と同様である。なお、点群フィルタ58、122は、ともに収差マップ点群を除去するが、除去する信頼度について異なる閾値を設定可能である。例えば、信頼度の範囲を1~10と仮定し、点群フィルタ58の閾値を5、点群フィルタ122の閾値を8と設定すると、SLAM処理部24により点群生成できなかったとしても、信頼度が5以上の点群を残すことができる。しかし、点群フィルタ58、122の閾値を高い信頼度とすると、SLAM処理部24によい点群生成できなかった場合に、過度に点群が除去されてしまう可能性がある。
【0067】
図11は、図2に示される収差マップ演算部54の処理の一例を示すフローチャートである。
【0068】
収差マップ演算部54は、ステップ162で、矩形リスト112を入力する。収差マップ演算部54は、ステップ164で、矩形リスト112の中の1つの矩形(例えば、図5の矩形110a)を選択する。収差マップ演算部54は、ステップ166で、選択した矩形について画像の収差マップを求め、収差マップに基づき信頼度付き点群を推定する。収差マップ演算部54は、ステップ168で、全ての矩形が処理されたか、すなわち未選択の矩形があるか否かを判定する。
【0069】
未選択の矩形がある場合(ステップ168のYES)、収差マップ演算部54は、ステップ170で、信頼度付き点群をメモリ16に蓄積した後、ステップ164で、矩形リスト112の中の次の矩形を選択する。未選択の矩形がない場合(ステップ168のNO)、収差マップ演算部54は、ステップ172で、蓄積した信頼度付き点群を信頼度付き点群56として出力し、処理を終了する。
【0070】
このように、収差マップ演算部54は、矩形リスト112で示される現フレームで物票が存在する可能性の高い、すなわち収差マップ演算により点が推定される可能性が高い領域について点群を推定する。このため、収差マップ演算に要する時間が短縮される。
【0071】
図12は、図2に示される点群生成部38の処理の一例を示すフローチャートである。
【0072】
点群生成部38は、ステップ182で、矩形リスト132を入力する。点群生成部38は、ステップ184で、矩形リスト132の中の1つの矩形(例えば、図7の矩形130a)を選択する。点群生成部38は、ステップ186で、選択した矩形について画像の点群生成を行い、信頼度付き点群を推定する。点群生成部38は、ステップ188で、全ての矩形が処理されたか、すなわち未選択の矩形があるか否かを判定する。
【0073】
未選択の矩形がある場合(ステップ188のYES)、点群生成部38は、ステップ170で、信頼度付き点群をメモリ16に蓄積した後、ステップ184で、矩形リスト132の中の次の矩形を選択する。未選択の矩形がない場合(ステップ188のNO)、点群生成部38は、ステップ192で、蓄積した信頼度付き点群を信頼度付き点群40として出力し、処理を終了する。
【0074】
矩形リスト132は収差マップ領域を指定する矩形リスト112に含まれない領域を含むので、点群生成部38は、収差マップ演算により点群が推定されない領域、もしくは収差マップ演算により点群は推定されたが信頼度が低かった領域について補完的に点群を推定することができる。
【0075】
実施形態では、現フレームで点群が推定される可能性の高い領域が収差マップ領域として選択され、選択領域についてのみ収差マップ演算が行われる。そのため、実施形態では、図13の(a)に示すように、画像全体について収差マップ演算を行う比較例に対して収差マップ領域選択時間が追加されるが、比較例に比べて収差マップ演算時間が短縮されるので、トータルの処理時間は、比較例より短縮される。
【0076】
実施形態では、収差マップ演算により点群が推定されない領域が点群生成領域として選択され、選択領域についてのみ点群生成が行われる。そのため、収差マップ演算により点群が推定されない領域についても点群が推定される。実施形態では、図13の(b)に示すように、エゴモーション推定時間は比較例と変わらない。実施形態では、画像全体に対して点群生成を行う比較例に対して、点群生成領域選択時間が追加されるが、比較例に比べて点群生成時間が短縮されるので、トータルの処理時間は、比較例より短縮される。
【0077】
図14は、点群フィルタ42、58による測定精度向上の一例を説明する図である。SLAM処理部24により推定された点群40が点群フィルタ42を介してマージ部28に入力され、収差マップ処理部26により推定された点群56が点群フィルタ58を介してマージ部28に入力される。図14に示すように、点群フィルタ42、58は信頼度が閾値以上である点のみを出力し、信頼度が閾値未満である点を除去する。このため、マージ部28から出力される点群62は信頼度の高い点群となる。
【0078】
以下、他の実施形態を説明する。
【0079】
[第2実施形態]
図15は、第2実施形態による距離推定装置の収差マップ領域選択部52aの一例を示す機能ブロック図である。第2実施形態による距離推定装置は図2に示された構成と大部分同じである。第2実施形態では、図2の収差マップ領域選択部52が収差マップ領域選択部52aに変更される。
【0080】
収差マップ領域選択部52aは、図2の収差マップ領域選択部52に対して、矩形統合部204が追加されている。矩形生成部110は、生成した矩形リスト112を矩形統合部204に供給する。矩形統合部204には、第2の矩形リスト202も入力される。第2の矩形リスト202は、矩形生成部110以外の生成部で作成されたリストであり、収差マップ演算により点群を推定したい矩形を示す。第2矩形リストは、例えばカメラ12からの画像が入力される他の装置により作成されても良いし、本距離推定装置においてキーボード等によりユーザにより指定されてもよい。
【0081】
点群生成では画像のエピポール付近では点群が生成されにくいことが知られている。そのため、収差マップ領域として画像のエピポール付近の領域を選択するように、第2の矩形リスト202はエピポールを含む矩形を示してもよい。また、第2の矩形リスト202は、エゴモーションだけでは位置予測できない移動体を含む矩形を示してもよい。
【0082】
矩形統合部204は、第1実施形態の矩形リスト112と第2の矩形リスト202を統合して、矩形リスト206を生成する。
【0083】
図16は、図15に示される矩形統合部204の処理の一例を説明する図である。矩形統合部204は、矩形リスト112と第2の矩形リスト202を含む最小の矩形を矩形リスト206として出力する。
【0084】
第2実施形態によれば、現フレームのエゴモーションと前フレームの収差マップ点群と前フレームのSLAM点群とから予測した現フレーム予測点群104から生成された矩形リスト112には含まれない領域についても収差マップを演算することができる。このため、収差マップ演算により点群を推定する領域を必要最小限に拡大することができ、点群が推定される可能性が向上する。
【0085】
[第3実施形態]
図17は、第3実施形態による距離推定装置の収差マップ処理部26bの一例を示す機能ブロック図である。
【0086】
収差マップ処理部26bは、収差マップ領域選択部52bと、密度計測部248と、収差マップ演算部54と、点群フィルタ58と、点群除去部244を含む。
【0087】
収差マップ領域選択部52bは、図4の収差マップ領域選択部52と同じ構成である。ただし、第3実施形態では、画像再投影部106は、2値画像108に加えて画像座標付きの現フレーム予測点群242を生成する。画像座標付きの現フレーム予測点群242は、再投影した時に各点の3次元座標がどの画素に対応するかを判別できる情報である。画像再投影部106は、画像座標付きの現フレーム予測点群242を点群除去部244に供給する。現フレーム予測点群104は、画像座標を含まない。例えば、現フレーム予測点群104に含まれる1つの点の3次元座標が(10,20,30)とする。この点が、画像再投影部106で(30,50)という画像座標に投影されると、現フレーム予測点群(画像座標付き)242は、(10,20,30)と(30,50)という情報を持つ。
【0088】
収差マップ領域選択部52bは、矩形リスト112を密度計測部248に供給する。密度計測部248は、矩形リスト112により示される矩形毎に、物標が存在する画素の密度を計測し、密度が閾値より大きい矩形を除外して、密度が閾値以下である矩形を示す矩形リスト250を生成する。
【0089】
一般に、同一物標について推定された点群62の密度が密な程、誤差を含みばらつきのある点群を統計処理、例えば平均化を適用すると、精度を向上することができる。例えば、ばらつきが正規分布に従っていれば、密なより多くの点群で平均化することにより、精度向上が期待できる。しかし、精度を向上できる密度には上限があり、密度が上限を越えると信頼度は飽和する。そのため、密度計測部248は、2値画像108内で点群の密度が閾値より大きい領域に対しては、収差マップ演算を行わないような矩形リスト250を生成する。すなわち、矩形リスト250は、矩形リスト112から点群の密度が閾値より大きい矩形が除去され、矩形リスト112の中の点群の密度が閾値以下である矩形のみを含む。
【0090】
密度計測部248は、矩形リスト250を収差マップ演算部54と点群除去部244に供給する。
【0091】
収差マップ演算部54は、矩形リストで示される矩形について収差マップ演算により点群を推定する。すなわち、収差マップ演算部54は、点群の密度が閾値以下である領域について信頼度付き点群56を推定する。信頼度付き点群56は、点群フィルタ58を介して点群(収差マップ点群)60としてマージ部28に供給される。
【0092】
点群除去部244は、現フレーム予測点群242の中の矩形リスト250で示される矩形の点群を除去する。すなわち、点群除去部244は、点群の密度が閾値より大きい領域の現フレーム予測点群(画像座標付き)246を出力する。上記の例では、点群除去部244は、(30,50)が矩形リストに包含されていれば、(10,20,30)の3次元座標を持つ点を除去する。点群246もマージ部28に供給される。点群除去部244で除去した点群を包含する矩形領域に対しては、現フレームの処理として、収差マップ演算部54で点群が生成される。前フレームで密な点群が生成された矩形領域に対しては、現フレームで点群は生成されない。代わりに、前フレームの点群から予測した現フレーム予測点群が出力される。一方、前フレームで疎な点群が生成された矩形領域に対しては、予測点群が除去され、現フレームで新規に点群が生成し直される。
【0093】
すなわち、2値画像108内で閾値以下の密度で点群が存在する領域については、収差マップ演算部54により推定された点群56が使われ、2値画像108内で閾値より大きい密度で点群が存在する領域については、現フレーム予測点群242が使われる。
【0094】
図18は、図17に示される密度計測部248の処理の一例を示すフローチャートである。
【0095】
密度計測部248は、ステップ262で、矩形リスト112を入力する。密度計測部248は、ステップ264で、矩形リスト132の中の1つの矩形(例えば、図5の矩形110a)を選択する。密度計測部248は、ステップ266で、選択した矩形内の画素値が1である画素の個数を計測する。密度計測部248は、ステップ268で、矩形のサイズに対する個数の割合が閾値以下であるか否かを判定する。
【0096】
矩形サイズに対する個数の割合が閾値以下ではない場合(ステップ270のNO)、密度計測部248は、ステップ270で、選択した矩形を示す矩形リストをメモリ16に蓄積した後、ステップ272の処理を実行する。矩形サイズに対する個数の割合が閾値以下である場合(ステップ270のYES)、密度計測部248は、ステップ272の処理を実行する。
【0097】
密度計測部248は、ステップ272で、全ての矩形が処理されたか、すなわち未選択の矩形があるか否かを判定する。
【0098】
未選択の矩形がある場合(ステップ272のYES)、密度計測部248は、ステップ264で、矩形リスト112の中の次の矩形を選択する。未選択の矩形がない場合(ステップ272のNO)、密度計測部248は、ステップ274で、蓄積された矩形リストを矩形リスト250として出力し、処理を終了する。
【0099】
これにより、密度計測部248は、矩形リスト112から点群の密度が閾値より大きい矩形が除去され、矩形リスト112の中の点群の密度が閾値以下である矩形のみを含む矩形リスト250を出力する。
【0100】
[第4実施形態]
上述の実施形態は、収差マップ処理部26が主として点群を推定し、収差マップ処理部26が点群を推定しにくい領域について、SLAM処理部24が補完的に点群を推定する。次に、上述の実施形態とは反対に、SLAM処理部24が主として点群を推定し、SLAM処理部24が点群を推定しにくい領域について、収差マップ処理部26が補完的に点群を推定する第4実施形態を説明する。
【0101】
図19は、第4実施形態による距離推定装置の距離推定部の一例を示す機能ブロック図である。第4実施形態による距離推定装置は、SLAM処理部24cと、収差マップ処理部26cと、マージ部28を含む。
【0102】
SLAM処理部24cは、図2のSLAM処理部24から点群生成領域選択部36が削除されたものである。
【0103】
SLAM処理部24cは、信頼度付き点群40を生成し、信頼度付き点群40を点群フィルタ42と収差マップ領域選択部52cに供給する。点群フィルタ42は点群44をマージ部28に供給する。
【0104】
収差マップ処理部26cは、図2の収差マップ処理部26の収差マップ領域選択部52が収差マップ領域選択部52cに変更されたものである。収差マップ領域選択部52cは、SLAM処理部24cで推定されたエゴモーションが入力されない点が図2の収差マップ領域選択部52と異なる。
【0105】
収差マップ処理部26cは、信頼度付き点群56を生成し、信頼度付き点群56を点群フィルタ58に供給する。点群フィルタ58は点群60をマージ部28に供給する。
【0106】
図20は、図19に示される収差マップ領域選択部52cの一例を示す機能ブロック図である。収差マップ領域選択部52cは、点群フィルタ282と、画像再投影部286と、矩形生成部290を含む。信頼度付き点群(SLAM点群)40が点群フィルタ282に入力される。点群フィルタ282は、点群40を信頼度に基づき選択し、信頼度の低い点群を出力せず、信頼度の高い点群のみを点群284として出力する。点群フィルタ282が信頼度の低い点群を除去するのは、SLAM処理部24で点群が生成されていた場合でも、信頼度が低い点群は除去し、収差マップ処理部26により点群生成するためである。
【0107】
点群フィルタ282は、点群284を画像再投影部286に供給する。
【0108】
画像再投影部286は、第1実施形態の画像再投影部106と同様に、画像中の全画素について、物標が存在する画素の画素値を1とし、物標が存在しない画素の画素値を0とする2値画像288を生成し、2値画像288を矩形生成部290に供給する。
【0109】
矩形生成部290は、第1実施形態の点群生成領域選択部36内の矩形生成部130と同様に、画素値が0である画素のみからなる一定サイズ以上の矩形を表す矩形リスト292を出力する。
【0110】
矩形リスト292は、収差マップ演算部54に供給される。収差マップ演算部54は、矩形リスト292により示された矩形について収差マップ演算を行い、信頼度付き点群56を生成する。
【0111】
第4実施形態によれば、点群生成部38は、画像の全体に対して点群生成を行い、信頼度付き点群40を推定する。収差マップ演算部54は、点群生成により点群(SLAM)40が推定されなかった領域、もしくは点群生成により点群(SLAM)40が推定されたが信頼度が低かった領域について補完的に点群を推定する。
【0112】
[第5実施形態]
上述の実施形態では、SLAM処理部がカメラ12からの画像からエゴモーションを推定する。次に、収差マップ処理部がエゴモーションを推定する第5実施形態を説明する。
【0113】
図21は、第5実施形態の収差マップ処理部の動作の一例を示すタイミングチャートである。第5実施形態の収差マップ処理部は、上述した実施形態の収差マップ処理部に対してエゴモーション推定部342が追加される。収差マップ演算部54の出力である信頼度付き点群56がエゴモーション推定部342に供給される。エゴモーション推定部342の出力であるエゴモーション344が収差マップ領域選択部52に供給される。
【0114】
フレーム(n-2)の画像が収差マップ演算部54に入力されると、収差マップ演算部54はフレーム(n-2)の画像についての信頼度付き点群56を生成し、信頼度付き点群56をエゴモーション推定部342に供給する。
【0115】
フレーム(n-1)の画像が収差マップ演算部54に入力されると、収差マップ演算部54はフレーム(n-1)の画像についての信頼度付き点群56を生成し、信頼度付き点群56をエゴモーション推定部342に供給する。
【0116】
エゴモーション推定部32は、フレーム(n-2)とフレーム(n-1)の2枚の信頼度付き点群56からフレーム(n-1)のエゴモーション344を生成し、エゴモーション344を収差マップ領域選択部52に供給する。エゴモーション推定部32は、ICP(Iterative Closest Point)法等の点群同士の位置合わせ技術を利用してエゴモーションを推定することができる。
【0117】
収差マップ領域選択部52は、フレーム(n-1)のエゴモーション344に基づいてフレームnの収差マップ領域を選択する。なお、領域が選択されるフレーム(フレームn)とエゴモーションのフレーム(フレーム(n-1))が異なり、エゴモーションも2つのフレームの画像から推定されるが、連続するフレーム間でエゴモーションは類似しているので、フレーム(n-1)のエゴモーション344に基づいてフレームnの収差マップ領域を選択できる。
【0118】
収差マップ演算部54は、収差マップ領域についてフレームnの信頼度付き点群56を生成する。
【0119】
図21では図示省略されているが、各フレームで収差マップ演算部54は信頼度付き点群56を生成し、各フレームでエゴモーション推定部342は当該フレームと一つ前のフレームの2つの信頼度付き点群から当該フレームのエゴモーションを推定する。各フレームで収差マップ領域選択部52も当該フレームの一つ前のフレームのエゴモーションに基づいて収差マップ領域を選択する。
【0120】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を生成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0121】
24…SLAM処理部,26…収差マップ処理部,28…マージ部、32…エゴモーション推定部,36…点群生成領域選択部,38…点群生成部,42…点群フィルタ,52…収差マップ領域選択部,54…収差マップ演算部,58…点群フィルタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21