(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022149109
(43)【公開日】2022-10-06
(54)【発明の名称】処理装置、処理方法、およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20220929BHJP
G06T 7/60 20170101ALI20220929BHJP
【FI】
G06T7/00 650A
G06T7/60 200J
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021051100
(22)【出願日】2021-03-25
(71)【出願人】
【識別番号】000005016
【氏名又は名称】パイオニア株式会社
(71)【出願人】
【識別番号】520001073
【氏名又は名称】パイオニアスマートセンシングイノベーションズ株式会社
(74)【代理人】
【識別番号】100110928
【弁理士】
【氏名又は名称】速水 進治
(74)【代理人】
【識別番号】100127236
【弁理士】
【氏名又は名称】天城 聡
(72)【発明者】
【氏名】難波田 逸平
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA04
5L096CA02
5L096DA02
5L096EA14
5L096FA03
5L096FA06
5L096FA59
5L096HA08
(57)【要約】
【課題】カメラの取付方向や角度に関わらず、適切なオルソ変換を可能とすることが一例として挙げられる。
【解決手段】処理装置10は、取得部120および算出部140を備える。取得部120は、基準画像を取得する。算出部140は、基準画像内の対象物の形状および大きさに基づいて、射影変換のためのパラメータを算出する。基準画像に含まれる対象物はたとえば道路に描かれたマークである。算出部140は、たとえば基準画像からマークを含む部分領域を抽出し、部分領域に含まれるマークに基づいてパラメータを算出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
基準画像を取得する取得部と、
前記基準画像内の対象物の形状および大きさに基づいて、射影変換のためのパラメータを算出する算出部とを備える
処理装置。
【請求項2】
請求項1に記載の処理装置において、
前記対象物は地面に設けられたマークであり、
前記算出部は、
前記基準画像から前記マークを含む部分領域を抽出し、
前記部分領域に含まれるマークに基づいて前記パラメータを算出する
処理装置。
【請求項3】
請求項1または2に記載の処理装置において、
算出された前記パラメータを用いて対象画像を射影変換する変換部をさらに備える
処理装置。
【請求項4】
請求項2に記載の処理装置において、
算出された前記パラメータを用いて対象画像を射影変換する変換部をさらに備え、
前記変換部は、
前記部分領域を射影変換し、
射影変換された前記部分領域を拡張し、
拡張された前記部分領域を射影変換の逆変換し、
前記逆変換の結果を用いて前記対象画像を決定する
処理装置。
【請求項5】
請求項3または4に記載の処理装置において、
前記基準画像と、前記対象画像は異なる画像である
処理装置。
【請求項6】
請求項1~5のいずれか一項に記載の処理装置において、
前記対象物は道路に描かれた区画線である
処理装置。
【請求項7】
請求項1~6のいずれか一項に記載の処理装置において、
前記取得部は、前記基準画像を含む複数の画像を取得し、
前記取得部が取得した前記複数の画像から前記基準画像を選択する選択部をさらに備える
処理装置。
【請求項8】
請求項7に記載の処理装置において、
前記選択部は、前記対象物の画像内の位置に基づいて前記基準画像を選択する
処理装置。
【請求項9】
請求項7または8に記載の処理装置において、
前記複数の画像は、移動体に取り付けられた撮像装置で得られた画像であり、
前記選択部は、画像が得られたときの前記移動体の状況に基づいて前記基準画像を選択する
処理装置。
【請求項10】
請求項7~9のいずれか一項に記載の処理装置において、
前記選択部は、画像に対しエッジ検出を行った結果に基づいて前記基準画像を選択する
処理装置。
【請求項11】
請求項7~10のいずれか一項に記載の処理装置において、
前記複数の画像には、その画像の撮影位置を示す情報が関連付けられており、
前記選択部は、前記撮影位置が予め定められた条件を満たす画像を前記基準画像として選択する
処理装置。
【請求項12】
請求項1~11のいずれか一項に記載の処理装置において、
前記算出部は、前記対象物の実空間での大きさを示すサイズ情報を取得し、前記サイズ情報を用いて前記パラメータを算出する
処理装置。
【請求項13】
請求項1~11のいずれか一項に記載の処理装置において、
前記取得部は、前記基準画像を含み、動画を構成する複数の画像を取得し、
前記動画は、移動体に取り付けられた撮像装置で得られた動画であり、
前記算出部は、
前記動画が得られたときの前記移動体の速度と前記動画とを用いて前記対象物の実空間での大きさを算出し、
前記対象物の実空間での大きさを用いて前記パラメータを算出する
処理装置。
【請求項14】
基準画像を取得する取得ステップと、
前記基準画像内の対象物の形状および大きさに基づいて、射影変換のためのパラメータを算出する算出ステップとを備える
処理方法。
【請求項15】
請求項14に記載の処理方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、処理方法、およびプログラムに関する。
【背景技術】
【0002】
自動運転やナビゲーションシステムに用いられる地図の作成や、道路の管理等のために路面のオルソ画像が用いられている。
【0003】
特許文献1には、移動計測車両による収集データに基づいて路面オルソ画像を生成する装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
たとえば様々な車載カメラで得られた画像を用いてオルソ画像を生成しようとする場合、オルソ化のための変換パラメータはカメラの取付方向や角度により異なる。また、カメラの取付方向や角度を調整したとしても、振動や衝撃で変化する場合もある。
【0006】
本発明が解決しようとする課題としては、カメラの取付方向や角度に関わらず、適切なオルソ変換を可能とすることが一例として挙げられる。
【課題を解決するための手段】
【0007】
請求項1に記載の発明は、
基準画像を取得する取得部と、
前記基準画像内の対象物の形状および大きさに基づいて、射影変換のためのパラメータを算出する算出部とを備える
処理装置である。
【0008】
請求項14に記載の発明は、
基準画像を取得する取得ステップと、
前記基準画像内の対象物の形状および大きさに基づいて、射影変換のためのパラメータを算出する算出ステップとを備える
処理方法である。
【0009】
請求項15に記載の発明は、
請求項14に記載の処理方法の各ステップをコンピュータに実行させるプログラムである。
【図面の簡単な説明】
【0010】
【
図1】第1の実施形態に係る処理装置の構成を例示するブロック図である。
【
図3】基準画像に対してエッジ検出をして得られるエッジ検出画像を例示する図である。
【
図4】(a)は基準画像内における部分領域の外縁の頂点座標を示す図であり、(b)はオルソ変換後の部分領域の外縁の頂点座標を示す図である。
【
図5】第1の実施形態に係る処理方法の流れを例示するフローチャートである。
【
図6】第1の実施形態に係る処理装置の使用環境を例示する図である。
【
図7】処理装置を実現するための計算機を例示する図である。
【
図8】第2の実施形態に係る処理装置の構成を例示するブロック図である。
【
図9】第2の実施形態に係る処理装置が実行する処理方法を例示するフローチャートである。
【
図10】対象物に対して検出されるエッジを例示する図である。
【
図11】形状スコアの導出方法を説明するための図である。
【
図12】第3の実施形態に係る算出部が対象物のサイズを導出する方法を例示するフローチャートである。
【
図13】第4の実施形態に係る算出部が対象物のサイズを導出する方法を例示する図である。
【
図14】第5の実施形態に係る処理装置の構成を例示する図である。
【
図15】変換部が対象画像を決定し、対象画像を射影変換する方法について説明するための図である。
【
図16】第5の実施形態に係る処理装置が行う処理の流れを例示するフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0012】
以下に示す説明において、処理装置10の各構成要素は、特に説明する場合を除き、ハードウエア単位の構成ではなく、機能単位のブロックを示している。処理装置10の各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラム、そのプログラムを格納するハードディスクなどの記憶メディア、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置には様々な変形例がある。
【0013】
(第1の実施形態)
図1は、第1の実施形態に係る処理装置10の構成を例示するブロック図である。
図2は、基準画像20の例を示す図である。処理装置10は、取得部120および算出部140を備える。取得部120は、基準画像20を取得する。算出部140は、基準画像20内の対象物200の形状および大きさに基づいて、射影変換のためのパラメータを算出する。以下に詳しく説明する。
【0014】
たとえば車両や二輪車等の移動体が道路を走行する間、カメラで周囲の画像が撮影される。このように取得された画像には道路が写っている。専用車に限らず任意の移動体のカメラで得られた画像を射影変換(オルソ変換)できれば、路面オルソ画像の生成に必要な画像データを、多量にかつ容易に収集できる。
【0015】
ただし、移動体にカメラを設置しても、振動や人が触れてしまうこと等でカメラの姿勢が変わってしまうことがある。たとえば移動体が走行する度にカメラの位置の調整や姿勢の計測を行おうとすると非常に手間がかかる。それに対し、本実施形態に係る処理装置10によれば、基準となる対象物200を撮影した基準画像20を用いて、射影変換に必要なパラメータを算出することができる。そして算出したパラメータを用いて適切に射影変換が行えるため、省力化が可能である。
【0016】
詳しく後述するように、算出部140は、基準画像20からマークを含む部分領域22を抽出し、部分領域22に含まれるマークに基づいてパラメータを算出する。基準画像20に含まれる対象物200はたとえば地面に設けられたマークである。なお、地面はたとえば地下や高架上、構造物内の面であっても良く、移動体がその上を移動し得る面であればよい。対象物200としては、たとえば道路に描かれた区画線、横断歩道等が挙げられる。他にも、対象物200は車庫床面の敷設物であっても良い。対象物200は、専用に、または他の用途を兼ねて設置された基準物であっても良い。そうであれば、予期せぬ変化が生じないよう基準物を管理することができる。対象物200はたとえば実空間において平面視で矩形である。
【0017】
図2~
図4(b)を参照して、算出部140がパラメータを算出する方法について説明する。
図2は基準画像20の例を示す図である。基準画像20には道路が写っており、道路上の対象物200が写っている。本例において、対象物200は道路上の白線である。この白線は破線を構成しており、所定の長さで区切られている。また、各白線の長さおよび幅は予め定められている。算出部140は、基準画像20に対してエッジ検出を行う。
図3は、基準画像20に対してエッジ検出をして得られたエッジ検出画像を例示する図である。次いで、算出部140は、エッジ検出画像内の対象物200が含まれる部分領域22を抽出する。算出部140は、既存の画像処理方法を用いて基準画像20から対象物200を検出することができる。本図の例では、部分領域22は、二つの対象物200およびその二つの対象物200に挟まれた領域を含む。また、部分領域22の外縁は少なくとも一部が対象物200の外縁に重なっている。部分領域22の外縁の少なくとも一部は、二つの対象物200の端をつないでいる。ただし、部分領域22は対象物200を一つのみ含んでも良いし、対象物200の外縁と部分領域22の外縁は全体が一致していてもよい。ただし、部分領域22が、二つの対象物200およびその二つの対象物200に挟まれた領域を含むことにより、広い部分領域22を用いた高精度なパラメータ算出が可能である。
【0018】
次いで算出部140は、基準画像20内における部分領域22の外縁の頂点座標を取得する。ここでの座標系は、基準画像20をxy平面内に置いたものとする。
図4(a)は基準画像20内における部分領域22の外縁の頂点座標を示す図である。本図において、部分領域22の4つの頂点座標(x
1,y
1)、(x
2,y
2)、(x
3,y
3)および(x
4,y
4)が示されている。
【0019】
また、算出部140は、対象物200の実空間での太さ(幅)および長さに基づいて、オルソ変換後の部分領域22の外縁の頂点座標を導出する。ここでの座標系は、オルソ変換後の画像をXY平面内に置いたものとする。
図4(b)はオルソ変換後の部分領域22の外縁の頂点座標を示す図である。本図において、部分領域22の4つの頂点座標(X
1,Y
1)、(X
2,Y
2)、(X
3,Y
3)および(X
4,Y
4)が示されている。たとえば(X
1,Y
1)と(X
4,Y
4)との距離d
1は、実際の対象物200の長さL
tに基づいて定められる。また、(X
1,Y
1)と(X
2,Y
2)との距離d
2は、実際の対象物200の幅W
tおよび、二つの対象物200間の実際の距離d
tに基づいて定められる。すなわち、d
1/d
2=L
t/(2×W
t+d
t)が成り立つ。そして、算出部140は、このように射影変換前後の部分領域22の頂点座標を算出することで、射影変換に用いる変換パラメータを得ることができる。
【0020】
なお、距離dtが不明の場合、基準画像20中で二つの対象物200間の距離と対象物200の幅との比率を算出し、その比率に基づいて距離d2を定めても良い。すなわち、基準画像20中で二つの対象物200間の距離が対象物200の幅のα倍である場合、d1/d2=Lt/(2×Wt+α×Wt)が成り立つように各座標を設定すればよい。
【0021】
算出されたパラメータは、同じ移動体の同じカメラで撮影された画像を射影変換する際に用いることができる。たとえばパラメータ算出は一連の動画ごとに行われる。具体的には、一連の動画の中で、その動画を構成する画像の一枚を基準画像20として用い、パラメータを算出する。算出されたパラメータを用いて、その動画を構成する他の画像や基準画像20を射影変換することができる。なお、パラメータ算出は必ずしも一連の動画ごとに行われる必要はない。ただし、ある程度以上の時間が経過するとカメラの姿勢が変化することがあり得るため、同一のカメラに対し、少なくとも予め定められた期間ごとにパラメータ算出が行われることが好ましい。
【0022】
図5は、本実施形態に係る処理方法の流れを例示するフローチャートである。本実施形態に係る処理方法は、取得ステップS10および算出ステップS30を備える。取得ステップS10では、基準画像20が取得される。算出ステップS30では、基準画像20内の対象物200の形状および大きさに基づいて、射影変換のためのパラメータが算出される。本実施形態に係る処理方法は、処理装置10により実行される。以下に、本実施形態に係る処理装置10が行う処理について詳しく説明する。
【0023】
取得ステップS10において、取得部120は基準画像20を取得する。取得部120は、基準画像20をたとえば移動体に搭載されたカメラ(撮像装置)から取得することができる。カメラはたとえば車載カメラである。基準画像20はたとえば道路を含む画像である。また、基準画像20は動画を構成する複数の画像のうちの一枚であってもよい。なお、基準画像20は予め記憶装置に保持されており、取得部120は基準画像20を取得部120からアクセス可能な記憶装置から読み出して取得しても良い。基準画像20は、移動体に搭載されたカメラ以外のカメラで撮影された画像でも良い。ただし基準画像20には対象物200が含まれる。
【0024】
図6は、本実施形態に係る処理装置10の使用環境を例示する図である。たとえば、複数の移動体40に搭載されたカメラ42から、サーバマシン50が画像を収集し、処理装置10の取得部120がそのサーバマシン50から基準画像20を取得しても良い。
【0025】
算出部140は、対象物200の実空間での大きさを示すサイズ情報を取得し、サイズ情報を用いてパラメータを算出する。具体的には算出部140は、算出部140からアクセス可能な記憶部に保持されたサイズ情報を読み出して取得する。本実施形態において、対象物200の形状、対象物200の大きさ、および2つの対象物200間の距離は既知である。たとえば対象物200が道路に描かれた白線である場合、サイズ情報は道路標示規格に基づいて定められる。また、対象物200が設置された基準物である場合、その基準物の大きさに基づいて定められる。また、サイズ情報には、複数の対象物200間の距離を示す情報がさらに含まれても良い。なお、高速道路とそれ以外の道路など、サイズ情報が位置によって異なる場合がある。この場合、記憶部にはたとえば位置ごとのサイズ情報が保持されている。そして算出部140は基準画像20の撮影位置に応じたサイズ情報を記憶部から選択して読み出すことができる。
【0026】
算出ステップS30において算出部140は、
図2~
図4(b)を用いて上述したように、基準画像20とサイズ情報を用いて射影変換に必要なパラメータを算出する。すなわち、算出部140は基準画像20から対象物200を抽出し、基準画像20内の対象物200の大きさと、サイズ情報に基づく対象物200の実空間での大きさとを少なくとも用いてパラメータを算出する。たとえば対象物200が実空間で平面視して矩形である場合、対象物200の長辺と短辺の比が、実空間における対象物200と、そのパラメータを用いて得られるオルソ画像における対象物200とで同じになるように、算出部140はパラメータを算出する。なお、算出部140は、部分領域22が複数の対象物200を含む場合、複数の対象物200間の距離をさらに用いてパラメータを算出しても良い。
【0027】
詳しくはたとえば、算出部140は基準画像20に対してレンズ歪を補正する処理を施し、さらにエッジ検出を行う。そして、検出したエッジに基づき対象物200を検出する。そして対象物200を含む部分領域22を抽出する。部分領域22はたとえば射影変換したときに矩形となる領域である。算出部140は基準画像20における部分領域22の外縁を示すxy座標(たとえば四角形の4頂点の座標)を算出する。また、算出部140は、取得したサイズ情報に基づいて射影変換後のオルソ画像における部分領域22の外縁を示すXY座標(たとえば四角形の4頂点の座標)を算出する。算出したxy座標とXY座標とに基づいて、算出部140は変換パラメータを導出する。算出したxy座標とXY座標とに基づいて、変換パラメータを導出する方法としては、既存の方法を用いることができる。
【0028】
以上のように本実施形態に係る処理装置10は、取得した基準画像20を用いて適切なパラメータを算出する。したがって、画像を撮影したカメラ等の向きや角度にかかわらず、射影変換を行い、良好なオルソ画像を得ることができる。
【0029】
処理装置10のハードウエア構成について以下に説明する。処理装置10の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、処理装置10の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0030】
図7は、処理装置10を実現するための計算機1000を例示する図である。計算機1000は任意の計算機である。例えば計算機1000は、SoC(System On Chip)、Personal Computer(PC)、サーバマシン、タブレット端末、又はスマートフォンなどである。計算機1000は、処理装置10を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【0031】
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0032】
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0033】
ネットワークインタフェース1120は、計算機1000をネットワークに接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。ネットワークインタフェース1120がネットワークに接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【0034】
ストレージデバイス1080は、処理装置10の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【0035】
以上、本実施形態によれば、算出部140は、基準画像20内の対象物200の形状および大きさに基づいて、射影変換のためのパラメータを算出する。したがって、カメラの取付方向や角度に関わらず、適切なオルソ変換が可能となる。
【0036】
(第2の実施形態)
図8は、第2の実施形態に係る処理装置10の構成を例示するブロック図である。本実施形態に係る処理装置10は、以下に説明する点を除いて第1の実施形態に係る処理装置10と同じである。本実施形態に係る処理装置10では、取得部120は、基準画像20を含む複数の画像を取得する。また、本実施形態に係る処理装置10は、取得部120が取得した複数の画像から基準画像20を選択する選択部130をさらに備える。以下に詳しく説明する。
【0037】
処理装置10は、基準画像20を用いてパラメータを算出する。ここで、パラメータの精度は基準画像20の質に依存する。したがって、パラメータの算出に適した基準画像20を選択して用いることが好ましい。本実施形態に係る処理装置10では、取得部120が複数の画像を選択し、それらの画像の中から選択部130が基準画像20として適したものを選択する。そして、選択された基準画像20を用いて算出部140がパラメータを算出する。
【0038】
図9は、本実施形態に係る処理装置10が実行する処理方法を例示するフローチャートである。本実施形態に係る処理方法は、取得ステップS10と算出ステップS30との間に選択ステップS20を行う。本実施形態に係る処理方法では、取得ステップS10において基準画像20を含む複数の画像が取得される。そして選択ステップS20では、複数の画像から基準画像20が選択される。
【0039】
取得部120はたとえば移動体に設けられたカメラから、そのカメラで撮影された動画を取得する。動画は、複数の画像からなる。ただし取得部120は、動画を構成しない複数の画像を取得しても良い。なお、複数の画像は予め記憶装置に保持されており、取得部120は基準画像20を取得部120からアクセス可能な記憶装置から読み出して取得しても良い。たとえば、
図6に示したように、複数の移動体40に搭載されたカメラ42から、サーバマシン50が複数の画像を収集し、処理装置10の取得部120がそのサーバマシン50から複数の画像を取得しても良い。取得部120が取得する複数の画像には、対象物200が含まれない画像が含まれても良い。
【0040】
選択部130が基準画像20を選択する方法について以下に説明する。以下に説明するように、好ましい基準画像20を選択するための観点は複数存在する。選択部130は、いずれかの観点に基づいて基準画像20を選択しても良いし、複数の観点に基づいて基準画像20を選択しても良い。複数の観点に基づいて基準画像20を選択する場合、たとえば選択部130は、観点ごとにスコアを算出し、それらのスコアを総合した総合スコアを算出し、総合スコアに基づいて基準画像20を選択することができる。
【0041】
選択部130はまず、複数の画像から、対象物200の全体が含まれる画像を抽出する。具体的には選択部130は、複数の画像に対してレンズ歪を補正する処理を施し、さらにエッジ検出を行う。次いで、選択部130は検出したエッジに基づき画像中の対象物200を検出する。そして、複数の画像の中から、対象物200の全体が画像に含まれる画像を抽出し、抽出した画像の中から、基準画像20を選択する。
【0042】
<対象物200の位置に基づく方法>
選択部130は、対象物200の画像内の位置に基づいて基準画像20を選択することができる。具体的には対象物200が、カメラから近い領域、すなわち画像中のより下の方に写っている画像を基準画像20として選択することが好ましい。そうすればエッジの検出精度が高くなるとともに、その領域を射影変換した場合に生成されるオルソ画像の画質も良くなるためである。なお、画像中下側が、実空間で移動体に近い側であり、画像中上側が、実空間で移動体から遠い側である。
【0043】
たとえば選択部130は、対象物200の画像中の位置が最も下である画像を基準画像20として選択する。スコアを算出する場合、選択部130は、対象物200の画像中の位置が下である画像にほど、高いスコアを付す。
【0044】
<移動体の状態に基づく方法>
複数の画像が、移動体に取り付けられたカメラ(撮像装置)で得られた画像である場合、選択部130は、画像が得られたときの移動体の状況に基づいて基準画像20を選択することができる。移動体の状況とは、たとえば撮影時の移動体の車速や姿勢であり、具体的には、撮影時の移動体の向き、速度、ロール、およびピッチの少なくともいずれかである。撮影時の移動体の状況が安定的であったかを評価し、安定的な状況で撮影された画像を基準画像20として選択することが好ましい。処理装置10は、移動体の状況を示すセンサ情報を、移動体に設けられたセンサから取得することができる。
【0045】
たとえば選択部130は、各画像の撮影時刻に基づき、その画像が撮影されたタイミングを含む所定期間内の移動体のセンサ情報を取得する。センサ情報にはたとえば、速度センサ、方位センサ、ロールセンサ、ピッチセンサのうち一以上のセンサのセンサ値が含まれる。選択部130は、取得したセンサ情報に含まれる各センサ値について、所定期間内の標準偏差を算出する。そして、一以上のセンサの標準偏差を合算する。選択部130はたとえば標準偏差の合算値が最も小さい画像を基準画像20として選択する。また、スコアを算出する場合、選択部130は標準偏差の合算値が小さい画像にほど高いスコアを付す。
【0046】
<エッジ検出の結果に基づく方法>
選択部130は、画像に対しエッジ検出を行った結果に基づいて基準画像20を選択することができる。対象物200が道路に描かれた白線や横断歩道等のマークである場合、塗装のかすれ等が生じていることもあり得る。そこで、エッジ検出時の強度や、検出されたエッジの位置関係が対象物200の輪郭に近い配置になっているか等に基づいて、エッジが明確に検出できる画像を基準画像20として選択することが好ましい。
【0047】
具体的には選択部130は、以下のようにエッジの直線度スコア、形状スコア、強度スコアを算出する。そして、算出した直線度スコア、形状スコア、強度スコアの合計をエッジ検出に基づくスコアとする。選択部130は、エッジ検出に基づくスコアが最も高い画像を基準画像20として選択することができる。
【0048】
<<直線度スコア>>
選択部130は、対象物200に対して検出されたエッジの長さを導出する。そして、導出されたエッジの長さが上限値以下の範囲で長い画像ほど、高い直線度スコアを付与する。一方、導出されたエッジの長さが上限値を超える画像には、最低のスコアを付与する。
【0049】
図10(a)~
図10(c)は、対象物200に対して検出されるエッジを例示する図である。
図10(a)は良好な対象物200に対する検出結果である。対象物200の長さに応じて長いエッジ210が検出されている。
図10(b)は対象物200にかすれが生じている場合の検出結果である。エッジ210が一部で途切れている。
図10(c)はノイズや対象物200以外のものを検出している例である。エッジ210が過度に長くなっている。
【0050】
<<形状スコア>>
図11は、形状スコアの導出方法を説明するための図である。選択部130は、対象物200に対して検出されたエッジ210の傾きを全画像について導出し、導出された傾きの平均値を算出する。そして、全画像のエッジの傾きの平均値(本図中ライン220で示す傾き)と、各画像で対象物200に対して検出されたエッジ210の傾きとを比較し、平均値に近い傾きのエッジが検出されている画像ほど、高い形状スコアを付与する。なお、各画像に傾きの異なる複数の対象物200が含まれる場合、選択部130は、複数の画像の中で互いに傾きの近い対象物200を同一線上の対象物200とみなしてグループ化する。そして、グループ化された対象物200のエッジを用いて、グループごとに平均値を算出する。そして、各画像の対象物200のエッジ210の傾きと、その対象物200が含まれるグループの平均値とを比較する。
【0051】
<<強度スコア>>
選択部130は、対象物200に対して検出されるエッジについて、検出時の強度を導出する。そして、強度が高い画像ほど、高い強度スコアを付与する。
【0052】
<撮影位置に基づく方法>
選択部130は、撮影位置が予め定められた条件を満たす画像を基準画像20として選択することができる。この場合、複数の画像には、その画像の撮影位置を示す情報が関連付けられている。そして、取得部120は複数の画像とともに、各画像の撮影位置を示す情報を取得する。
【0053】
たとえば対象物200が道路に描かれた白線である場合、白線の間隔は一般道等では特定の値に定められていない。また、路面の傾斜や道路の曲がり具合によっては、白線が長方形になっていないケースもあり得る。そこで、高精度な地図データや航空写真等から予め各位置の対象物200の形状を調べ、基準とする対象物200を決めておき、その対象物200が撮影された画像を基準画像20として選択することが好ましい。
【0054】
選択部130からアクセス可能な記憶部には予め、基準とする対象物200を撮影可能な地図上の領域を示す推奨領域情報が保持されている。選択部130は、記憶部からその推奨領域情報を取得する。そして、選択部130は、撮影位置が推奨領域情報に示された領域内にある画像を、基準画像20として選択することができる。また、スコアを算出する場合、選択部130撮影位置が推奨領域情報に示された領域内にある画像に対し、領域内にない画像よりも高いスコアを付す。
【0055】
<総合スコアに基づく方法>
選択部130は、上述した各観点、すなわち対象物200の位置、移動体の状態、エッジ検出の結果、および撮影位置に基づく各評価結果を総合して基準画像20を選択することができる。具体的には、選択部130は、各観点で導出されたスコアの重み付け和を、総合スコアとして算出する。重み付け和の各スコアに対する重みは予め定められている。選択部130は、総合スコアが最も高い画像を、基準画像20として選択する。
【0056】
なお、選択部130が基準画像20を選択する方法の例を上述したが、選択部130はこれらの例以外の方法で基準画像20を選択しても良い。
【0057】
算出部140は、選択部130に選択された基準画像20を用いて、第1の実施形態と同様の方法でパラメータを算出する。なお、算出部140は選択部130で補正やエッジ検出、対象物200の検出等の処理が行われた結果を用いてパラメータ算出をすればよく、再度これらの処理を行う必要はない。
【0058】
本実施形態に係る処理装置10を実現する計算機のハードウエア構成は、第1の実施形態と同様に、例えば
図7によって表される。ただし、本実施形態の処理装置10を実現する計算機1000のストレージデバイス1080には、選択部130の機能を実現するプログラムモジュールがさらに記憶される。
【0059】
以上、本実施形態によれば、第1の実施形態と同様の作用および効果が得られる。くわえて、本実施形態によれば、処理装置10は取得部120が取得した複数の画像から基準画像20を選択する選択部130をさらに備える。したがって、パラメータ算出に適した基準画像20を用いて高精度のパラメータを算出できる。
【0060】
(第3の実施形態)
図12は、第3の実施形態に係る算出部140が対象物200のサイズを導出する方法を例示するフローチャートである。本実施形態に係る処理装置10は、以下に説明する点を除いて第1または第2の実施形態に係る処理装置10と同じである。本実施形態において取得部120は、基準画像20を含み、動画を構成する複数の画像を取得する。この動画は、移動体に取り付けられたカメラ(撮像装置)で得られた動画である。そして算出部140は、動画が得られたときの移動体の速度と動画とを用いて対象物200の実空間での大きさを算出する。また、対象物200の実空間での大きさを用いてパラメータを算出する。以下に詳しく説明する。
【0061】
第1および第2の実施形態では、対象物200のサイズは既知であり、算出部140は予め準備されたサイズ情報を用いてパラメータの算出を行う。これに対し、本実施形態に係る処理装置10では、算出部140は、複数の画像を用いて対象物200のサイズ(実空間での大きさ)を特定する。そして、特定したサイズと基準画像20とを用いてパラメータを算出する。したがって、対象物200のサイズが未知の場合でもパラメータを算出できる。
【0062】
本実施形態に係る処理装置10では、取得部120は第2の実施形態と同様に複数の画像を取得する。本実施形態において、部分領域22はたとえば実空間において平面視で矩形である。そして、算出部140は部分領域22の長さLと部分領域22の幅Wを複数仮定して、その中から適切な長さLと幅Wを特定する。具体的には、算出部140は、連続する複数の画像間で想定される移動体の移動距離を、長さLの仮定値と幅Wの仮定値を用いて算出し、移動体のセンサの検出値から算出される移動距離と比較する。そうすることで、最も確からしい長さLと幅Wを特定する。
【0063】
取得部120が取得する複数の画像は、一連の動画を構成する。そして、算出部140は、複数の画像に対し撮影された時系列で以下の処理を行う。すなわち、後述するS303では、撮影された時系列で複数の画像を順に読み込む。
【0064】
図12を参照して、算出部140が部分領域22のサイズを特定する方法を説明する。取得部120が複数の画像を取得すると、算出部140は以下の処理を行って部分領域22のサイズを特定する。S301からS312はループ処理Aである。ループ処理Aでは、Lの仮定値をループごとに変更しながら繰り返し処理が行われる。Lの仮定値は予め複数定められており、それらの仮定値の全てに対して処理が行われた場合、ループ処理Aが終了する。S302からS311はループ処理Bである。ループ処理Bでは、Wの仮定値をループごとに変更しながら繰り返し処理が行われる。Wの仮定値は予め複数定められており、それらの仮定値の全てに対して処理が行われた場合、ループ処理Bが終了する。LとWの仮定値は、実際に部分領域22のサイズとしてあり得る範囲で設定されている。
【0065】
S303からS310はループ処理Cである。ループ処理Cでは、取得部120で取得された複数の画像を、ループごとに順に読み込みながら繰り返し処理が行われる。複数の画像の全てに対して処理が行われた場合、ループ処理Cが終了する。
【0066】
S304では、読み込まれた画像に対して対象物200の検出および部分領域22の抽出が試みられる。ここで、検出に先立ち、画像の補正およびエッジ検出が適宜行われても良い。部分領域22が抽出された場合、算出部140は画像上での対象物200の位置を読み取る。なおここで、部分領域22に複数の対象物200が含まれる場合でも、算出部140は少なくとも一つの対象物200の位置を読み取れば良い。
【0067】
次いで、S305において算出部140は、S304での対象物200の位置の読み取りが成功したか否かを判定する。読み取りが成功しなかった場合、処理はS310へ進む。一方、読み取りが成功した場合、S306において算出部140は、Lの仮定値およびWの仮定値および画像上の対象物200の位置に基づいて、画像を撮影したカメラと対象物200との距離を算出する。なお、実際の矩形の対象物200の4頂点の座標、画像上の対象物200の4頂点の座標、および、カメラ特性に基づいて、カメラと対象物200との距離を算出する方法には、既存の方法を用いることができる。ここで、カメラ特性を示す情報は、処理装置10が画像を撮影したカメラから取得することができる。
【0068】
次いで、S307において算出部140は、今回のS306で得られたカメラと対象物200との距離と一つ前のループ処理の画像で得られたカメラと対象物200との距離とを比較して、移動体の移動距離Dcを算出する。
【0069】
また、S308において算出部140は、移動体のセンサから画像を撮影した時の移動体の速度を示す情報を取得する。そして、算出部140は、画像を撮影した時の速さに基づいて、一つ前の画像が撮影されてから今回の画像が撮影されるまでの間の移動体の移動距離Daを算出する。
【0070】
そしてS309において算出部140は、移動距離Dcと移動距離Daとの差が小さいほど高くなるよう、スコアを算出する。
【0071】
S312においてループ処理Aが終了すると、すなわち全てのLの仮定値、全てのWの仮定値、および全ての画像について処理が完了すると、算出部140はS313において、Lの仮定値とWの仮定値の組み合わせごとにスコアの平均値を算出する。そして、算出した平均値が最も高い組み合わせのLの仮定値とWの仮定値を、パラメータ算出に用いる対象物200のサイズとして特定する。なお、算出部140は、Lの仮定値とWの仮定値の組み合わせごとにスコアの平均値を算出する代わりに、Lの仮定値ごとにスコアの平均値を算出してもよい。その場合、最も平均値が高いLの仮定値を対象物200のLと特定する。また、算出部140は、Wの仮定値ごとにスコアの平均値を算出して、最も平均値が高いWの仮定値を対象物200のWと特定してもよい。
【0072】
以上のようにして算出部140は部分領域22のサイズを特定し、特定したサイズをサイズ情報の代わりに用いて、第1の実施形態で説明したのと同様の方法でパラメータを算出する。
【0073】
なお、算出部140は、上述した方法において、画像を撮影したカメラと対象物200との距離を算出する代わりに、カメラと、部分領域22に対応する実際の路面上の領域との距離を算出してもよい。その場合でも、同様に部分領域22のサイズを特定できる。
【0074】
なお、
図2~
図4(b)に示した例において、対象物200の長さL
tと部分領域22の長さLは同じである。よって、部分領域22の長さLが特定されることで対象物200の長さL
tが特定される。また、
図2~
図4(b)に示した例において、W=2×W
t+d
tが成り立つ。算出部140は、対象物200の少なくともいずれかの方向のサイズを特定すれば良い。たとえば算出部140は部分領域22のサイズを特定することで、対象物200の長さL
tと対象物200の幅W
tの両方を特定しても良いし、一方のみを特定しても良い。
【0075】
以上、本実施形態によれば、第1の実施形態と同様の作用および効果が得られる。くわえて、本実施形態によれば、算出部140は、複数の画像を用いて対象物200のサイズを特定する。したがって、対象物200のサイズが未知の場合でもパラメータを算出できる。
【0076】
(第4の実施形態)
第4の実施形態に係る処理装置10は、算出部140が対象物200の長さLtを導出する方法を除いて第3の実施形態に係る処理装置10と同じである。
【0077】
本実施形態に係る処理装置10において、取得部120は動画を構成する複数の画像を取得する。算出部140は必要に応じて、複数の画像に対し補正やエッジ検出の処理を行う。算出部140は、複数の画像から、以下のような第1画像と第2画像を抽出する。第1画像と第2画像には同じ対象物200が含まれる。そして、第1画像におけるその対象物200の長さLt方向の一端の位置と、第2画像におけるその対象物200の長さLt方向の他端の位置とが同じである。算出部140は既存の方法を用いて複数の画像から第1画像と第2画像を抽出することができる。対象物200はたとえば道路に描かれた白線である。
【0078】
算出部140は、抽出した第1画像の撮影タイミングと第2画像の撮影タイミングとの差を算出する。また、算出部140はこれらの撮影タイミングの間の移動体の速度を取得する。そして算出部140は、算出したタイミングの差(時間)と、移動体の速度を用いて、第1画像の撮影タイミングと第2画像の撮影タイミングとの間の移動体の移動量を算出する。算出部140は、算出した移動量を対象物200の長さLtとして特定する。なお、対象物200の長さLtは、移動体の進行方向に略平行な方向の長さである。
【0079】
図13は、本実施形態に係る算出部140が部分領域22のサイズを導出する方法を例示する図である。本図の例においてS302~S311は第3の実施形態で説明した通りである。本図の例では、S320において算出部140は上述した方法で対象物200の長さL
tを特定する。そして、特定された長さL
tを用いてS302~S311の処理を行う。なお、対象物200の長さL
tと部分領域22の長さLとは同じであるとする。本例では、Lを変更したループ処理を行う必要はない。そして、S311にてループ処理Bが終了すると、算出部140はS321において、Wの仮定値ごとにスコアの平均値を算出する。そして、算出した平均値が最も高いWの仮定値を、パラメータ算出に用いる対象物200の幅Wとして特定する。こうして特定した長さLと幅Wを用いて算出部140はパラメータ算出を行う。
【0080】
なお、幅Wは既知であっても良い。すなわち、算出部140は、予め記憶部に保持された幅Wを示す情報を読み出して取得し、上述の通り導出した長さLの値と合わせてパラメータ算出に用いても良い。
【0081】
以上、本実施形態によれば、第1の実施形態と同様の作用および効果が得られる。くわえて、本実施形態によれば、算出部140は、複数の画像を用いて対象物200のサイズを特定する。したがって、対象物200のサイズが未知の場合でもパラメータを算出できる。
【0082】
(第5の実施形態)
図14は、第5の実施形態に係る処理装置10の構成を例示する図である。本実施形態に係る処理装置10は、算出されたパラメータを用いて対象画像を射影変換する変換部160をさらに備える点を除いて第1から第4の実施形態の少なくともいずれかに係る処理装置10と同じである。以下に詳しく説明する。
【0083】
本実施形態において変換部160は、射影変換する対象画像を決定しても良い。変換部160はたとえば、部分領域22を射影変換し、射影変換された部分領域22を拡張し、拡張された部分領域22を射影変換の逆変換し、逆変換の結果を用いて対象画像を決定することができる。
【0084】
たとえば車載カメラで撮影された画像から路面オルソ画像を生成する場合、撮影画像内で射影変換を施す範囲を定める必要がある。しかし、射影変換を施すのに適正な範囲はカメラの取り付け位置、角度、路面の傾きなどにより異なる。画像に応じて変換範囲を適切に指定することで、高精度なオルソ画像を得られる。
【0085】
図15は、変換部160が対象画像30を決定し、対象画像30を射影変換する方法について説明するための図である。変換部160は、算出部140が算出したパラメータを用いて部分領域22を射影変換する。そして、射影変換された部分領域22を、予め定められた倍率で拡張する。本図の例において変換部160は、射影変換された部分領域22を画像の上方向および左右方向に拡張している。変換部160は、拡張された部分領域22の外縁ライン220を特定する。部分領域22が多角形である場合、拡張された部分領域22の外縁ライン220は、ライン220の頂点を示す座標により特定できる。次いで、変換部160は、拡張された部分領域22を逆変換する。すなわち、逆変換後のライン220を、その頂点の座標を算出することにより特定する。次いで、変換部160は、基準画像20の内、逆変換後のライン220の内側の部分を対象画像30として決定する。そして、変換部160は、決定した対象画像30を射影変換してオルソ画像を得る。なお、逆変換後のライン220が基準画像20からはみ出す場合、はみ出した部分の画素にはたとえば予め定められた値が設定される。このようにして、変換部160はオルソ画像を生成できる。
【0086】
射影変換された部分領域22を拡張する際の拡張倍率は、たとえば撮影された道路の車線数などに基づき予め定めておくことができる。
【0087】
なお、対象画像30は上記の例に限定されない。変換部160は任意の画像を対象画像30として射影変換することができる。ただし、対象画像30はたとえば道路を含む。対象画像30と、基準画像20とは、同じ移動体の同じカメラを用いて得られた画像であることが好ましい。また、基準画像20と対象画像30は、同じ動画を構成することが好ましい。
【0088】
図15の例において、対象画像30は基準画像20の一部である。すなわち、基準画像20と対象画像30とは異なる画像である。ただし基準画像20と対象画像30は同じ画像であっても良い。また、変換部160は部分領域22を拡張せずに対象画像30としてもよい。
【0089】
変換部160は算出部140が算出したパラメータを用いて、既存の方法で対象画像30を射影変換することができる。変換部160はさらに、複数の対象画像30から複数のオルソ画像を生成し、生成した複数のオルソ画像を移動体から取得したセンサ情報に基づいて位置合わせし、一枚の画像に統合しても良い。
【0090】
本実施形態に係る処理装置10を実現する計算機のハードウエア構成は、第1の実施形態と同様に、例えば
図7によって表される。ただし、本実施形態の処理装置10を実現する計算機1000のストレージデバイス1080には、変換部160の機能を実現するプログラムモジュールがさらに記憶される。
【0091】
図16は、本実施形態に係る処理装置10が行う処理の流れを例示するフローチャートである。本実施形態に係る処理法は、取得ステップS10、算出ステップS30および変換ステップS40を含む。変換ステップS40では、算出されたパラメータを用いて対象画像が射影変換される。
【0092】
以上、本実施形態によれば、第1の実施形態と同様の作用および効果が得られる。くわえて、本実施形態によれば、処理装置10は、算出されたパラメータを用いて対象画像を射影変換する変換部160をさらに備える。したがって、カメラの取付方向や角度に関わらず、高精度なオルソ画像を得られる。
【0093】
以上、図面を参照して実施形態及び実施例について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【符号の説明】
【0094】
10 処理装置
20 基準画像
22 部分領域
30 対象画像
40 移動体
42 カメラ
50 サーバマシン
120 取得部
130 選択部
140 算出部
160 変換部
200 対象物
210 エッジ
1000 計算機