JP2019067358A - 推定プログラム、推定方法および推定システム - Google Patents

推定プログラム、推定方法および推定システム Download PDF

Info

Publication number
JP2019067358A
JP2019067358A JP2018091446A JP2018091446A JP2019067358A JP 2019067358 A JP2019067358 A JP 2019067358A JP 2018091446 A JP2018091446 A JP 2018091446A JP 2018091446 A JP2018091446 A JP 2018091446A JP 2019067358 A JP2019067358 A JP 2019067358A
Authority
JP
Japan
Prior art keywords
straight line
image frame
line
curve
detected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018091446A
Other languages
English (en)
Inventor
宗太郎 金子
Sotaro Kaneko
宗太郎 金子
中山 收文
Osafumi Nakayama
收文 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to EP18196810.8A priority Critical patent/EP3467775A1/en
Priority to US16/145,299 priority patent/US20190102910A1/en
Publication of JP2019067358A publication Critical patent/JP2019067358A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】レンズの歪みをマーカレスで推定すること。【解決手段】推定装置100は、移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得する。推定装置100は、複数の画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出する。推定装置100は、検出した直線の特徴量に基づいて、直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、直線に対応する複数の曲線を検出する。【選択図】図1

Description

本発明は、推定プログラム等に関する。
従来、自動車に設置されたドライブレコーダで撮影された映像を用いて、自動車事故の原因究明等を行っている。また近年では、ドライブレコーダで撮影された映像を解析し、車線逸脱や障害物等を検知してドライバーに警告することで、安全支援を行うシステムもある。
ここで、車両逸脱や障害物を精度よく検知するためには、画像を用いて測距を正しく行うことになる。また、測距を正しく行うためには、カメラ校正を行うことになる。カメラ校正は、カメラの内部パラメータおよび外部パラメータを推定することである。内部パラメータは、カメラのセンサおよびレンズの特性(レンズの歪み等)を示すものであり、外部パラメータは、カメラの位置および姿勢を示すものである。
カメラ校正を行う場合には、実空間上で位置関係が既知のマーカを校正対象のカメラで撮影し、カメラに映ったマーカ形状の位置関係から、カメラの内部パラメータおよび外部パラメータを推定している。
なお、従来技術1では、マーカの形状を最小限の形状にすることで、マーカの設置コストの削減を行っている。また、従来技術2では、カメラの既知の内部パラメータと、画像の局所勾配ヒストグラムとを用いて、カメラの外部パラメータを推定することで、マーカレス化による校正コストの削減を行っている。
特開2011−185753号公報 特開2013−115540号公報
しかしながら、上述した従来技術では、レンズの歪みをマーカレスで推定することができないという問題がある。
たとえば、従来技術1では、マーカの形状を最小限にしているものの、マーカを用いることが前提となる。また、従来技術2では、マーカを用いていないが、カメラの内部パラメータが既知であることが前提となる。
1つの側面では、本発明は、レンズの歪みをマーカレスで推定することができる推定プログラム、推定方法および推定システムを提供することを目的とする。
第1の案では、コンピュータに下記の処理を実行させる。コンピュータは、移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得する。コンピュータは、複数の画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出する。コンピュータは、検出した直線の特徴量に基づいて、直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、直線に対応する複数の曲線を検出する。
レンズの歪みをマーカレスで推定することができる。
図1は、本実施例1に係る推定システムの一例を示す図である。 図2は、本発明の第1の着目点を説明するための図である。 図3は、本発明の第2の着目点を説明するための図である。 図4は、第1および第2の着目点に基づく推定装置の処理を説明するための図である。 図5は、内部パラメータの推定の一例を説明するための図である。 図6は、本実施例1に係る推定装置の構成を示す機能ブロック図である。 図7は、映像DBのデータ構造の一例を示す図である。 図8は、検出線DBのデータ構造の一例を示す図である。 図9は、非歪み領域設定処理を説明するための図(1)である。 図10は、非歪み領域設定処理を説明するための図(2)である。 図11は、非歪み領域設定処理の処理手順を示すフローチャートである。 図12は、直線検出処理を説明するための図である。 図13は、端点追跡処理を説明するための図である。 図14は、近傍時間における画像変化の一例を示す図である。 図15は、端点間線素探索処理を説明するための図である。 図16は、線素を探索する場合の問題を説明するための図である。 図17は、線素を探索する場合の問題を解決する方法を説明するための図である。 図18は、端点間線素探索処理の処理手順を示すフローチャートである。 図19は、線素探索の処理手順を示すフローチャートである。 図20は、線素探索の処理を説明するための図である。 図21は、マスク画像の一例を説明するための図である。 図22は、線素決定の処理手順を示すフローチャートである。 図23は、線素決定の処理を説明するための図である。 図24は、変化条件を満たすか否かを判定する処理の処理手順を示すフローチャートである。 図25は、再設定可能か否かを判定する処理の処理手順を示すフローチャートである。 図26は、線素抽出の実行例を示す図である。 図27は、検出線の一例について説明するための図である。 図28は、推定部の処理を説明するための図である。 図29は、歪み補正の一例を示す図である。 図30は、本実施例1に係る推定装置の処理手順の一例を示すフローチャートである。 図31は、本実施例1で説明した推定装置の直線の検出条件を説明するための図である。 図32は、直線および曲線の画像の一例を示す図である。 図33は、本実施例1で説明した推定装置の改善点を説明するための図である。 図34は、非歪み領域を一部はみ出あるオブジェクトの一例を示す図である。 図35は、本実施例2に係る推定装置の処理を説明するための図である。 図36は、凸型レンズの歪みの性質1を説明するための図である。 図37は、凸型レンズの歪みの性質2を説明するための図である。 図38は、直線保証範囲を特定する処理を説明するための図である。 図39は、本実施例2に係る推定装置の構成を示す機能ブロック図である。 図40は、本実施例2に係る直線検出処理を説明するための図である。 図41は、本実施例2に係る推定装置の処理手順の一例を示すフローチャートである。 図42は、消失点推定の処理手順を示すフローチャートである。 図43は、直線保証範囲の登録の処理手順を示すフローチャートである。 図44は、直線保証範囲を特定するその他の処理を説明するための図である。 図45は、推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
以下に、本願の開示する推定プログラム、推定方法および推定システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係る推定システムの一例を示す図である。図1に示すように、この推定システムは、車両10と、推定装置100とを有する。たとえば、車両10は、カーナビゲーションシステムの機能を有し、カメラ10aと、走行記録部10bとを有する。
本実施例1では一例として、レンズの歪み等(内部パラメータおよび外部パラメータ)の推定対象となるカメラ10aを、車両10に設置する例を示すが、これに限定されるものではなく、他の移動体であってもよい。他の移動体は、電車、移動ロボット、ドローン等に対応する。
カメラ10aは、映像データを撮影するカメラである。たとえば、映像データは、時系列に複数の画像フレームが並んだデータである。カメラ10aは、映像データを走行記録部10bに出力する。
走行記録部10bは、カメラ10aから取得する映像データを蓄積する処理部である。走行記録部10bは、無線通信装置(図示略)を介してネットワーク50にアクセスし、推定装置100に接続する。走行記録部10bは、映像データを、ネットワーク50を介して、推定装置100に送信する。
推定装置100は、車両の走行記録部10bから映像データを受信し、映像データを基にして、カメラ10aの内部および外部パラメータを推定する装置である。推定装置100は、画像フレームの歪みの少ない中心付近で検出した直線の特徴を起点とし、続く複数の画像フレームから直線に対応する曲線を追跡することで、直線と各曲線との関係を登録する。推定装置100は、登録した直線と各曲線との関係を基にして、カメラの歪みを推定する。
図2は、本発明の第1の着目点を説明するための図である。画像フレーム11aは、実空間における直線格子パターンを真正面からカメラで撮影した画像フレームである。一般的に、直線格子パターンを真正面から撮影しても、カメラのレンズの歪みにより、格子線は曲線化して映る。たとえば、線分12aに示すように、光軸5に近い線分は曲がりが小さいが、光軸5から遠い線分13a(周縁部分の線分13a)は曲がりが大きくなる。すなわち、第1の着目点は、周縁部分の歪みが大きい一方、画像中心付近では歪みが小さいという性質があるという点である。
図3は、本発明の第2の着目点を説明するための図である。映像データ11bは、車両10の前方に設置したカメラ10aで撮影したものである。車両10が前方へ進むとともに、画像中心付近に映る物体は見かけ上、矢印12bの方向へ移動する。物体の映る位置は、時間とともに周縁方向へ連続移動する。すなわち、第2の着目点は、映像データでは、映像中心に映っていた物体が、周縁へ、もしくは周縁から中心へ連続移動する情報を記録しているという点である。
図4は、第1及び第2の着目点に基づく推定装置の処理を説明するための図である。たとえば、推定装置100は、画像フレーム11cの歪みが発生しない中心領域から、直線12cを抽出する。推定装置100は、時系列に並んだ各画像フレーム間の画像追跡により、直線12cに対応する、歪曲化した曲線13cを抽出し、線分12c、曲線13cを蓄積する処理を繰り返し実行する。これにより、マーカ等の物標形状の事前情報を持たずに、実空間上の直線であると保証できる線群を抽出することが可能であり、これらの線群でカメラ10aの内部パラメータを推定することが可能となる。
図5は、内部パラメータの推定の一例を説明するための図である。線群13dは、図4で説明した処理により蓄積した直線および曲線を示すものである。推定装置100は、線群13dが実空間上の直線であるという幾何学関係を利用して、カメラ10aの内部パラメータを推定する。カメラパラメータを推定することで、たとえば、透視投影モデル14dへの歪み補正を行うことができる。透視投影モデル14dを用いることで、外部パラメータを推定することも可能となる。
図6は、本実施例に係る推定装置の構成を示す機能ブロック図である。図6に示すように、この推定装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
通信部110は、ネットワーク50を介して、車両10の走行記録部10bから映像データを受信する通信装置である。通信部110は、映像データを、制御部150に出力する。
記憶部140は、映像DB(Data Base)141、検出線DB142を有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
映像DB141は、映像データを格納するデータベースである。図7は、映像DBのデータ構造の一例を示す図である。図7に示すように、映像DB141は、フレーム番号と、画像フレームとを対応づける。フレーム番号は、画像フレームを一意に識別する番号である。画像フレームは、映像データに含まれる画像フレームである。画像フレームは時系列に並んでおり、フレーム番号が小さいものほど、先にカメラ10aに撮影された画像フレームである。
検出線DB142は、各画像フレームから検出される、線分(直線または曲線)の情報を格納するデータベースである。図8は、検出線DBのデータ構造の一例を示す図である。図8に示すように、この検出線DB142は、識別番号と、座標とを対応づける。検出線DB142は、識別番号は、線分を一意に識別する情報である。座標は、線分を構成する各画素の座標を示すものである。たとえば、識別番号「Id0」の線分は、各座標(x00,y00)、(x01,y01)、(x02,y02)、・・・を結んだ線分となる。
図6の説明に戻る。制御部150は、取得部151、検出部152、推定部153を有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
取得部151は、カメラ10aにより撮影された映像データを取得する処理部である。取得部151は、取得した映像データを、映像DB141に格納する。たとえば、映像データは、複数の画像フレームが時系列に並んだデータであり、各画像フレームには、フレーム番号が昇順に割り当てられる。
検出部152は、映像DB141に格納された映像データに含まれる第1画像フレームの中心付近から直線を検出する。検出部152は、検出した直線の特徴を起点として、第1画像フレームよりも後の複数の第2画像フレームから、直線に対応する複数の曲線を検出する。検出部152は、検出した直線および曲線の情報を、検出線DB142に格納する。以下の説明では、適宜、検出部152が検出した直線および曲線を「検出線」と表記する。
以下に説明するように、検出部152は、非歪み領域設定処理、直線検出処理、端点追跡処理、端点間線素探索処理、検出線出力処理を順に実行する。
検出部152が行う「非歪み領域設定処理」の一例について説明する。非歪み領域は、歪み補正前の画像(車両10の走行時に撮影された画像フレーム)が、補正後の画像においても直線となる領域である。非歪み領域は、レンズの画角が広いほど、狭くなる。レンズの画角が広いほど、歪み量は大きくなる。このため、想定最大画角に対する非歪み領域は、より狭い画角のカメラにおいても非歪み領域となる。本実施例では、想定最大画角に対する非歪み領域を一つ設定する。想定最大画角は、ドライブレコーダや、後段サービスに鑑みて事前に設定される。
図9および図10は、非歪み領域設定処理を説明するための図である。図9について説明する。図9は、歪み補正後の座標の関係図を示すものであり、横軸は光軸に対する半径方向の軸であり、縦軸は半径方向に直交する軸(接線方向の軸)である。原点「0」を、光軸中心とする。このとき、歪み補正前は直線であった横軸上の1点Pと、この点Pに対応する接線上のPとの関係に着目する(PとPとの図示を省略する)。接線との関係に着目する理由は、光軸に対して接線方向に表れる直線が、歪み補正の影響を最も強く受けるためである。
たとえば、歪み補正後のP’(r’、0)に対応する接線上の点を、P’とし、P’とP’とを結ぶ線分を線分l’とする。線分l’が、接線方向の軸と平行な直線関係が見られた場合、P’とP’との2点は、歪み補正前後で直線関係が保たれている。
一方、歪み補正後のP’(r’、0)に対応する接線上の点を、P’’とすると、P’とP’’とを結ぶ線分は、接線方向の軸と平行な直線関係が見られないため、曲線化していることを示す。厳密には、接線方向の歪みは接点から離れる限り微小ながら存在し、接点から離れるほど歪みの度合が大きくなる。
検出部152は、距離変数d’に対する閾値dthを設定し、各r’に対してdthを超えない最大長l’を求める。たとえば、距離変数d’は、P’の半径方向の座標から、r’を減算した値である。なお、r’やl’は、補正後の値であるため、検出部152は、補正前の整数ピクセル値で、補正後の値を算出した後に、上記処理を算出することで、最大長l’を算出する。
図10の説明に移行する。検出部152は、各距離(r’:半径方向における光軸中心からの距離)に対して求めたl’の値から、非歪み領域を設定する。図10において、横軸はl’算出時の半径方向の軸であり、縦軸は接線方向の軸である。原点「0」は補正前の画像フレームの光軸中心である。線分20は、l’に対応する線分である。歪みの補正前(補正前画像変換値)において、l’は、線分20に示すような曲線型となる。このため、原点「0」から線分20までの最短距離rminを得た円形21内の直線は、いずれも直線とみなすことができる。たとえば、検出部152は、円形21内の直線22を、直線として検出する。円形21が、直線を検出する領域(非歪み領域)となる。
ここで、非歪み領域設定処理の処理手順の一例について説明する。図11は、非歪み領域設定処理の処理手順を示すフローチャートである。図11において、ステップS10からステップS18間の処理は、入力画像解像度の変数x(x=1、2、・・・max)によるループである。変数xは、図9に示したr’に対応するものである。画像フレームの水平方向および垂直方向で解像度が異なる場合には、より大きい解像度でループすればよい。なお、x=0に対応する最大接線長lをlmaxとする。
検出部152は、x≠0の座標P(x、0)の歪み補正座標P0’(x0’、y0’)を算出する(ステップS11)。
ステップS12からステップS16間の処理は、歪み補正前の接線ピクセル長の変数l(l=1、2、・・・max)によるループである。
検出部152は、座標P(x、l)の歪み補正座標P’(x’、y’)を算出する(ステップS13)。たとえば、検出部152は、歪み補正前の座標P(x、y)から、歪み補正後の座標P(x、y)を、式(1)〜(4)に基づいて算出する。式(2)に含まれるlmaxを画像フレームの解像度とする。θmaxは、最大想定画角である。なお、y’の値は常に0となる。
Figure 2019067358
Figure 2019067358
Figure 2019067358
Figure 2019067358
検出部152は、式(5)に基づいて、半径方向の差分d’を算出する(ステップS14)。なお、yの違い(|y’−y’|)は、直線の伸縮を示し、線の歪みには寄与しないため、検出部152は、yの違いに関する判定を行わない。
Figure 2019067358
検出部152は、事前に定めた閾値dthを用いて、差分d’が閾値dthより大きいか否かを判定する(ステップS15)。検出部152は、差分d’が閾値dthより大きい場合には(ステップS15,Yes)、ステップS17に移行する。一方、検出部152は、差分d’が閾値dthより大きくない場合には(ステップS15,No)、ステップS16に移行する。
検出部152は、最大接線長lを記録する(ステップS17)。たとえば、検出部152は、変数xを1ピクセル単位でループさせている場合には、最大接線長lから1を減算したものを、最大接線長lとして記録する。
ステップS10からS18間のループを抜けた後に、検出部152は、図10で説明したように、各最大接線長l(図10のl’に対応する)に基づいて、最短距離rminを特定し、非歪み領域を特定する(ステップS19)。
本実施例では一例として、光軸中心が十分画像近辺に近いとして直線検出領域を設定しているが、検出部152は、光軸中心のズレによる影響に基づいて、直線検出領域を調整してもよい。また、検出部152は、垂直および水平画素で最大画角の違いを考慮する場合には、たとえば、垂直および水平の最大画角それぞれの曲線(図10の線分20に相当)を生成し、2曲線を直交させた楕円領域に対して、rminを特定してもよい。
続いて、検出部152が行う「直線検出処理」の一例について説明する。検出部152は、画像フレームに非歪み領域を設定し、非歪み領域にある直線を検出する。図12は、直線検出処理を説明するための図である。たとえば、検出部152は、画像フレームに対して、エッジ検出を行うことで、エッジ画像25が得られる。検出部152は、Cannyアルゴリズムに代表される公知のエッジ検出技術を用いる。円形21は、非歪み領域設定処理で求めた、非歪み領域を示すものである。
検出部152は、ハフ(Hough)変換アルゴリズムを用いることで、エッジ画像25から、直線25a、25bを検出する。検出部152は、直線25a、25bのうち、非歪み領域(円形21)に含まれる直線25aを、特定する。直線25bは、歪みが発生し得る領域から検出した線分であるため、その後の処理で用いられない。
続いて、検出部152が行う「端点追跡処理」の一例について説明する。検出部152は、前画像フレームおよび前画像フレームの検出線を用いて、現画像フレームの検出線を画像追跡する。
図13は、端点追跡処理を説明するための図である。図13において、線分26は、前画像フレームで検出した直線(たとえば、図12で示した直線25a)もしくは曲線である。線分26の端点をそれぞれ端点26a、26bとする。
検出部152は、前画像フレームにおいて、端点26aを中心とした局所画像27aおよび端点26bを中心とした局所画像27bを取り出す。検出部152は、現画像フレームと、局所画像27a、27bとのマッチングを行うことで、局所画像27a、27bとマッチする、現画像フレーム上の座標を特定する。たとえば、検出部152は、テンプレートマッチングや、局所画像の特徴量マッチングなどの公知のマッチング技術を用いる。
図13に示す例では、局所画像27aにマッチする座標を、点28aの座標とし、局所画像27bにマッチする座標を、点28bの座標とする。すなわち、端点26aの追跡結果が、点28aとなる。端点26bの追跡結果が、点28bとなる。
なお、検出される線分の両端点は、映像データ中の柱や建物の上下端が多く、画像領域として近傍領域と比べ独自のエッジ成分やコーナー特徴成分をもつ傾向がある。また、直線全体は周縁に従い歪むが近傍時間かつ局所領域に限定すれば歪みは小さく、既存の歪みを考慮しないマッチング技術でも、追跡することが可能となる。
図14は、近傍時間における画像変化の一例を示す図である。図14において、画像フレーム30aは、時刻tに撮影された画像フレームとし、画像フレーム30bは、時刻t+0.1sに撮影された画像フレームとする。たとえば、局所画像31aは、局所画像31bに移動し、局所画像32aは、局所画像32bに移動している。しかし、局所画像の見かけは大きな違いがないため、図13で説明した処理により、端点を追跡することができる。
続いて、検出部152が行う「端点間線素探索処理」の一例について説明する。図15は、端点間線素探索処理を説明するための図である。図15の端点35aは、図13の点28aに対応する。図15の端点35bは、図13の点28bに対応する。検出部152は、エッジ画像35の端点35aと端点35bとの間のエッジ画素を順次探索する(線素を探索する)ことで、本来の直線が歪んだ曲線35cを得ることができる。
図16は、線素を探索する場合の問題を説明するための図である。端点40a、40bは、端点追跡処理により追跡した端点である。たとえば、端点40aは、図13の点28aに対応する。端点40bは、図13の点28bに対応する。レンズ歪みにより曲線化した直線は、エッジ画像39において、端点40aと端点40bとを結ぶ曲線として表される。たとえば、線分40を、検出対象となる曲線とする。ここで、端点40a、40bを結ぶ曲線の曲がり方は不明であるため、何らかの曲線モデルフィッティングで、該当する線素群を選び出すことができない。
検出部152は、片方の端点40aから、もう一方の端点40bへエッジ画素を辿り、両端を結ぶ曲線として線素群を得る。このとき、線分41a、41bのように、誤って別の線を辿る可能性がある。
図17は、線素を探索する場合の問題を解決する方法を説明するための図である。端点45a、45bは、端点追跡処理により追跡した端点である。たとえば、端点45aは、図13の点28aに対応し、端点45bは、図13の点28bに対応する。
本実施例では、レンズ歪みの影響が、直線を凸型曲線にすることに着目する。たとえば、検出部152は、端点45a、45bに基づく線分が、凸の関係となるような拘束条件を用いる。検出部152は、拘束条件に基づいて、端点45aから、辿れるエッジ画像のみを選択していくことで、他の曲線の混入の影響を排除し、曲線を抽出する。
図17に示す例では、端点45aと端点45bとを結ぶ直線の距離について、区間45Aでは、直線から曲線までの距離が単調増加し、極大点45cを経て、区間45Bでは、直線から曲線までの距離が単調減少する。この拘束条件により、線分46のように、別の曲線が混入している場合でも、線分46は、区間45Bで単調増加しているため、排除することができる。すなわち、検出部152は、拘束条件を満たす、線分45を選択することができる。
ここで、端点間線素探索処理の処理手順の一例について説明する。図18は、端点間線素探索処理の処理手順を示すフローチャートである。図18に示すように、検出部152は、線素探索を行うための初期設定を行う(ステップS20)。たとえば、ステップS20の初期化設定において、検出部152は、現画像フレームを2値化することでエッジ画像を生成し、端点追跡処理により得られた線分の両端点の画素座標を得る。
検出部152は、線素探索を行う(ステップS21)。ステップS21において、検出部152は、曲線を構成する線素を1画素分探索する。
検出部152は、線素が決定したか否かを判定する(ステップS22)。検出部152は、線素が決定した場合には(ステップS22,Yes)、ステップS23に移行する。一方、検出部152は、線素が決定していない場合には(ステップS22,No)、ステップS25に移行する。
検出部152は、線素を出力する(ステップS23)。検出部152は、端点に到達したか否かを判定する(ステップS24)。検出部152は、端点に到達した場合には(ステップS24,Yes)、線素探索を終了する。検出部152は、端点に到達していない場合には(ステップS24,No)、ステップS21に移行する。
ステップS25の説明に移行する。検出部152は、探索の開始点の再設定が可能であるか否かを判定する(ステップS25)。ステップS25において、検出部152は、これまで得られた画素の1つに戻るための再設定処理を行う。検出部152は、再設定可能である場合には(ステップS25,Yes)、ステップS21に移行する。一方、検出部152は、再設定可能でない場合には(ステップS25,No)、端末間の曲線を得ることができなかったとして、処理を終了する。
続いて、図18のステップS21に示した線素探索の処理を具体的に説明する。図19は、線素探索の処理手順を示すフローチャートである。図19に示すように、検出部152は、探索開始点を設定する(ステップS31)。ステップS31において、検出部152は、初期設定時は、各端点のいずれかの座標とする。検出部152は、既に線素が得られている場合には、最新の線素の座標を設定する。
図20は、線素探索の処理を説明するための図である。たとえば、端点追跡処理により特定した各端点を端点47a、47bとする。初期設定時において、検出部152は、端点47aの座標を、探索開始点に設定する。なお、検出部152が、1画素ずつエッジ画像を探索し、点(線素)48まで辿れている場合には、線素48の座標を、探索開始点に設定する。
図19の説明に戻る。検出部152は、画素の探索範囲を最小限に設定する(ステップS32)。図21は、マスク画像の一例を説明するための図である。ステップS32において、検出部152は、図21に示すマスク画像50aを用いて、画素の探索範囲を設定する。マスク画像50aは、上下左右4近傍を探索対象とするマスク画像である。なお、マスク画像50bは、上下左右12近傍を探索対象とするマスク画像である。マスク画像50cは、上下左右28近傍を探索対象とするマスク画像である。
図19の説明に戻る。検出部152は、線素候補探索を実行する(ステップS33)。たとえば、ステップS33において、検出部152は、ステップS32で設定した探索範囲内において、エッジ画像をフィルタリングし、エッジ画素値が残った座標を線素候補点とする。このとき、検出部152は、既に評価された座標、または、既に線素であることが確定している座標は、線素候補点から除外する。
検出部152は、ステップS33において、最低1つの線素候補点があるか否かを判定する(ステップS34)。検出部152は、最低1つの線素候補点がある場合には(ステップS34,Yes)、ステップS35に移行する。一方、検出部152は、最低1つの線素候補点がない場合には(ステップS34,No)、ステップS37に移行する。
検出部152は、各線素候補点が、次線素に良好な画素であるか否かを評価する(ステップS35)。検出部152は、次線素に良好な画素であると評価された線素候補点が得られた場合には、かかる線素候補点を、線素として決定し(ステップS36,Yes)、線素探索の処理を終了する。
一方、検出部152は、次線素に良好な画素であると評価された線素候補点が得られていない場合には、線素が決定していないと判定し(ステップS36,No)、ステップS37に移行する。
検出部152は、探索範囲が拡大可能であるか否かを判定する(ステップS37)。ステップS37において、検出部152は、現在設定中のマスク画像がマスク画像50aまたはマスク画像50bである場合には、拡大可能であると判定し(ステップS37,Yes)、探索範囲を拡大して(ステップS38)、ステップS33に移行する。たとえば、ステップS38において、検出部152は、現在設定中のマスク画像がマスク画像50aである場合には、マスク画像50bを設定することで、探索範囲を拡大する。検出部152は、現在設定中のマスク画像がマスク画像50bである場合には、マスク画像50cを設定することで、探索範囲を拡大する。探索範囲を拡大することで、曲がり方が不明であっても、画素を辿ることができる。また、エッジ画素に一部欠けがあっても、その先の画素を候補点とすることができる。
一方、検出部152は、ステップS37において、現在設定中のマスク画像が最大サイズ(たとえば、マスク画像50c)である場合には、拡大不可能であると判定し(ステップS37,No)、線素が得られなかったとして、探索を終了する。
続いて、図18のステップS22で説明した線素を決定する処理の一例について説明する。図22は、線素決定の処理手順を示すフローチャートである。図23は、線素決定の処理を説明するための図である。
図23では、端点51aと端点51bとが含まれ、端点51aを曲線51の「始端」、端点51bを曲線51の「終端」とする。曲線51は、一部エッジ画素に欠けがある曲線とする。曲線51は、レンズ歪みにより曲線化した直線である。このため、両端点51a、51b以外において、f(x,y)=0と曲線51に含まれる構成画素との距離は、区間51Aにおいて単調増加し、区間51Bにおいて単調減少する。図22で説明するフローチャートでは、端点51aと、これまでの線素の位置関係を用いて、各線素候補点を評価する。
図22の説明に移行する。検出部152は、未評価の線素候補点があるか否かを判定する(ステップS41)。検出部152は、未評価の線素候補点がない場合には(ステップS41,No)、全ての線素候補点を評価したとして、線素を決定する処理を終了する。
一方、検出部152は、未評価の線素候補点がある場合には(ステップS41,Yes)、未評価の線素候補点の座標を取得する(ステップS42)。検出部152は、未評価の線素候補点が、終端であるか否かを判定する(ステップS43)。検出部152は、未評価の線素候補が終端である場合には(ステップS43,Yes)、終端が得られたという情報とともに、処理を終了する。
検出部152は、未評価の線素候補点が終端でない場合には(ステップS43,No)、ステップS44に移行する。
検出部152は、未評価の線素候補点が前線素と同直線領域であるか否かを判定する(ステップS44)。たとえば、前線素は、ひとつ前の評価で、線素であると評価された線素候補点である。ステップS44の処理について具体的に説明する。ここで、図23の端点51aと端点51bとを通る直線をf(x,y)とすると、両端点以外の点は条件1か条件2を満たす。たとえば、曲線51の画素群は全て条件1を満たす。このため、たとえば、前線素が曲線51に含まれる場合には、線素候補点52は、前線素と同直線領域とならない。一方、前線素が曲線51に含まれる場合には、線素候補54a〜54dは、前線素と同直線領域となる。
f(x,y)>0・・・条件1
f(x,y)<0・・・条件2
検出部152は、式(6)、(7)、(8)を基にして、前線素および線素候補点のd(正負)をそれぞれ算出する。式(6)、(7)において、(x,y)は、始端の座標を示す。(x,y)は、終端の座標を示す。式(8)に含まれる(x,y)は、線素(線素候補点)の座標を示す。
Figure 2019067358
Figure 2019067358
Figure 2019067358
検出部152は、前線素の正負と、線素候補点の正負とが一致する場合には、線素候補点が前線素と同直線領域であると判定し(ステップS44,Yes)、ステップS45に移行する。一方、検出部152は、前線素の正負と、線素候補点の正負とが一致しない場合には、線素候補点が前線素と同直線領域でないと判定し(ステップS44,No)、ステップS41に移行する。
検出部152は、線素候補点が前線素より終端に近いか否かを判定する(ステップS45)。ステップS45において、検出部152は、線素候補点と終端との距離d1bを算出する。また、検出部152は、前線素と終点との距離d1aを算出する。検出部152は、距離d1bが、距離d1aよりも小さい場合には、線素候補点が前線素より終端に近いと判定し(ステップS45,Yes)、ステップS46に移行する。一方、検出部152は、距離d1bが、距離d1aよりも大きい場合には、線素候補点が前線素より終端に近くないと判定し(ステップS45,No)、ステップS41に移行する。たとえば、図23において、前線素を線素53とし、線素候補点を線素候補点54aとすると、線素候補点が前線素より終端に近くないため、線素候補点54aは、線素ではないと評価される。
検出部152は、線素候補点と直線f(x,y)=0との距離が変化条件を満たすか否かを判定する(ステップS46)。ステップS46において、検出部152は、線素候補点が、直線f(x,y)=0との単調増加、単調減少の条件を満たしているか否かを判定する。
検出部152は、線素候補点と直線f(x,y)=0との距離が変化条件を満たしている場合には(ステップS46,Yes)、ステップS47に移行する。一方、検出部152は、線素候補点と直線f(x,y)=0との距離が変化条件を満たしていない場合には(ステップS46,No)、ステップS41に移行する。
検出部152は、登録済みの線素より距離変化が小さいか否かを判定する(ステップS47)。ステップS47の処理は、複数の線素候補点から最適な線素候補点を判定する処理に対応する。たとえば、図23において、複数の線素候補点54b、54c、54dが存在する場合には、線素53とよりスムーズに接続される線素候補54cが選択される。
ステップS47において、検出部152は、式(9)に基づいて、dbaを算出する。式(9)において、dは、式(8)により算出される値であり、線素候補点と、直線f(x,y)=0との距離である。dは、最新決定済み線素と、直線f(x,y)=0との距離である。
ba=|d|−|d|・・・(9)
検出部152は、前回算出した線素候補点のdbaと、今回算出した線素候補点のdbaとを比較し、今回算出した線素候補点のdbaの方が小さい場合に、登録済みの線素より距離変化が小さい(ステップS47,Yes)と判定し、ステップS48に移行する。
検出部152は、今回算出した線素候補点のdbaの方が小さくない場合に、登録済みの線素より距離変化が小さくない(ステップS47,No)と判定し、ステップS41に移行する。
検出部152は、線素座標を更新する(ステップS48)。ステップS48は、現在対象となっている線素候補点を、評価済みのいずれの線素候補点よりも良好な点であるとして、現在対象となっている線素候補点の座標により更新する。
続いて、図22のステップS46で説明した線素候補点と直線との距離が変化条件を満たすか否かを判定する処理について具体的に説明する。図24は、変化条件を満たすか否かを判定する処理の処理手順を示すフローチャートである。図24に示すように、検出部152は、極値に到達済みであるか否かを判定する(ステップS51)。ステップS51において、検出部152は、極値到達フラグを参照し、判定を行う。極値到達フラグの初期値はオフとなる。検出部152は、極値到達フラグがオフである場合には、極値に到達していないと判定し(ステップS51,No)、ステップS52に移行する。一方、検出部152は、極値到達フラグがオンである場合には、極値に到達したと判定し(ステップS51,Yes)、ステップS54に移行する。
検出部152は、距離dbaが増加したか否かを判定する(ステップS52)。検出部152は、距離dbaが増加した場合には(ステップS52,Yes)、変化条件(単調増加)を満たしていると判定し、処理を終了する。一方、検出部152は、距離dbaが増加していない場合には(ステップS52,No)、ステップS53に移行する。たとえば、図23において、決定済みの最後の線素が線素53である場合に、線素候補点54a、54bは、距離dbaが増加している。線素候補54dは、距離dbaが減少している。
検出部152は、極値到達フラグをオンに設定し(ステップS53)、変化条件を満たしていると判定し、処理を終了する。ステップS53に示すものは、図23の極値55を超えた最初の画素探索や、決定済みの最後の線素が線素53である場合に、線素候補点54dを選択した場合に相当する。
図24のステップS54の説明に移行する。検出部152は、距離dbaが増加したか否かを判定する(ステップS54)。検出部152は、距離dbaが増加した場合には(ステップS54,Yes)、極値到達後に再度距離増加となっているため、変化条件(単調減少)を満たしていないと判定し、処理を終了する。たとえば、図23において、決定済みの最後の線素が線素56である場合に、線素候補点57aは、単調増加しており、変化条件を満たさない。
一方、検出部152は、距離dbaが増加していない場合には(ステップS54,No)、極値到達後に距離減少となっているため、変化条件(単調減少)を満たしていると判定し、処理を終了する。たとえば、図23において、決定済みの最後の線素が線素56である場合に、線素候補点57bは、単調減少しており、変化条件を満たす。
続いて、図18のステップS25に示した探索の開始点を再設定可能であるか否かを判定する処理の一例について説明する。図25は、再設定可能か否かを判定する処理の処理手順を示すフローチャートである。図25に示すように、検出部152は、登録済みの線素があるか否かを判定する(ステップS61)。検出部152は、登録済みの線素がない場合には(ステップS61,No)、再設定ができないと判定して、処理を終了する。一方、検出部152は、登録済みの線素がある場合には(ステップS61,Yes)、ステップS62に移行する。
検出部152は、検出線DB142から、最新の登録済みの線素を削除する(ステップS62)。検出部152は、削除した線素に対応するエッジ画素をエッジ画像から削除する(ステップS63)。ステップS63において、検出部152は、誤ったエッジ画素を再び辿らないために、削除対象となった線素に対応する画素を削除する。
検出部152は、削除した後の最新の線を、探索開始点として再び設定(再設定可能であると判定)し(ステップS64)、処理を終了する。検出部152が、図25の処理を実行することで、最新の線素の座標1点が、破棄されるか、もしくは、破棄する線素の座標がない状態を返す。
図26は、線素抽出の実行例を示す図である。図26において、エッジ画像65は、ある画像フレーム60の部分画像60aに対応するエッジ画像である。エッジ画像65には、端点65aと、端点65bとが含まれる。端点65a、65bは、検出部152による端点追跡処理の結果得られるものである。図26に示すように、検出部152が、上記の線素検出を行うことで、曲がり具合が未知の曲線67を得ることができる。また、各エッジ画素を追跡する場合に、各種条件を用いることで、建物の影のエッジ画素66a、66b、66cの影響を排除することができる。検出部152は、検出した検出線の情報を、検出線DB142に格納する。
図27は、検出線の一例について説明するための図である。図27に示すように、検出部152は、各画像フレーム75aを基にして、検出線を検出することで、たとえば、画像75bに示すような複数の検出線が検出される。
図6の説明に戻る。推定部153は、検出線DB142に格納された各検出線の情報を基にして、内部パラメータを推定する処理部である。たとえば、推定部153は、多数の検出線のいずれも、歪み補正により、直線化できるような、レンズ歪み、光軸ずれ、焦点距離のパラメータを推定する。
図28は、推定部の処理を説明するための図である。図28の点70は、カメラ原点(以下、カメラ原点70)に対応するものである。P〜Pは、ある検出線をなす点列Kとする。たとえば、P〜Pは、図5の線群13dに含まれるある曲線に対応するものである。また、検出線をなす点列Kは、図8の検出線DBのある線識別番号に対応する各座標あるいは一部の座標に対応する点列である。
このとき、カメラ原点70と、点列Kの各点を結ぶ入射光ベクトル群m〜mは、理想的には同一平面上にある。すなわち、唯一の法線ベクトルnが、m〜mと直交する。実際は、観測ノイズ等により全ての入射光ベクトル群と直交するnは一意に求まらないため、推定部153は、次の処理を行う。
推定部153は、各点P〜Pを、レンズの歪み、光軸ずれ、焦点距離のパラメータで表す。推定部153は、パラメータの値を調整しながら、式(10)の誤差が最小となるパラメータを探索し、誤差が最小となるパラメータを内部パラメータとして推定する。式(10)において、aは入射光ベクトルの数を示し、kは、各入射光ベクトルから求められる法線ベクトルの数を示す。
誤差=ΣΣ(n,m・・・(10)
たとえば、推定部153は、推定内部パラメータXによって、検出線DB142のある検出線上の各点の位置を変換し、各点P11〜P1nを求める。推定部153は、求めた点P11〜P1nと、カメラ原点70とを結ぶ入射光ベクトル群m11〜m1nをそれぞれ算出し、入射光ベクトル群m11〜m1nから求められる複数の法線ベクトルの誤差Eを算出する。推定部153は、他の推定内部パラメータX〜Xについても同様に、誤差E〜Eを算出する。推定部153は、各誤差E〜Eのうち、最小誤差に対応する推定内部パラメータを、推定結果の内部パラメータとして特定する。
ここで、推定部153が推定した内部パラメータで、歪みが補正できることについて説明する。図29は、歪み補正の一例を示す図である。図29において、画像フレーム80aは、補正前の画像フレームであり、画像フレーム80bは、補正後の画像フレームである。図29に示すものは、透視投影に変換可能な内部パラメータが得られたことを示しており、公知のSLAMアルゴリズムに代表される画像による自己位置推定や周辺測距が可能となることから、カメラの外部パラメータを求めることができる。
推定部153は、推定した内部パラメータと、映像DB141に登録された映像データとを用いて、外部パラメータを推定する。なお、特許文献(特開2016−111585)に開示されている公知の技術のように、推定部153は、推定した内部パラメータと、画像フレームの局所勾配ヒストグラム等とを用いて、外部パラメータを推定してもよい。
次に、本実施例に係る推定装置100の処理手順の一例について説明する。図30は、本実施例に係る推定装置の処理手順の一例を示すフローチャートである。図30に示すように、推定装置100の検出部152は、映像DB141から画像フレームを読み込む(ステップS101)。検出部152は、非歪み領域を設定する(ステップS102)。検出部152は、非歪み領域から直線を検出する(ステップS103)。
検出部152は、検出線の端点を追跡する(ステップS104)。検出部152は、線素を探索する(ステップS105)。検出部152は、検出線の情報を、検出線DB142に登録する(ステップS106)。
検出部152は、次の画像フレームがある場合には(ステップS107,Yes)、ステップS101に移行する。一方、検出部152は、次の画像フレームがない場合には(ステップS107,No)、ステップS108に移行する。推定装置100の推定部153は、内部パラメータおよび外部パラメータを推定する(ステップS108)。
次に、本実施例に係る推定装置の効果について説明する。推定装置100は、画像フレームの歪みの少ない中心付近で検出した直線を起点として、続く複数の画像フレームから、検出した直線に対応する曲線を追跡することで、実空間上では直線となる曲線の情報を、検出線DB142に登録する。この検出線DB142の情報を用いることで、カメラレンズの内部パラメータの情報を推定することができる。すなわち、カメラレンズの歪みをマーカレスで推定することが可能となる。また、マーカレスでパラメータを推定することで、移動体に搭載したカメラの校正コストを削減できる。
なお、レンズにより歪んだ本来の直線は、歪み度合いは不明だが、推定装置100は、画像内での形状は常に凸であることを利用する。たとえば、推定装置100は、始点終点直線の距離は増加から一度だけ減少に転じるように、始点終点間の曲線を構成する画素を選択することで、本来の直線要因以外のエッジ画素が混入しても、かかるエッジ画素を排除することで検出曲線の精度を向上させることが可能である。
推定装置100は、画像フレームの解像度とカメラの画角とを基にして、画像フレーム上の非歪み領域を算出する。このため、歪みの少ない領域から、直線を精度よく検出することができる。
推定装置100は、前画像フレームから検出した直線の端点を中心とした局所領域に対応する、現画像フレーム上の局所領域からエッジを検出し、検出したエッジを基にして、曲線を検出する。また、推定装置100は、複数の画像フレームについて、先の画像フレームの曲線の端点を中心とした局所領域に対応する、後の第2画像フレームの局所領域からエッジを検出し、検出したエッジを基にして、曲線を検出する。図14で説明したように、前画像フレームから現画像フレームまでに、局所画像は僅かに移動しているが、見かけは大きな違いがないため、係る処理により、正しい検出線を検出することが可能となる。
推定装置100は、ステップS44で説明したように、未評価の線素候補点が前線素と同直線領域であるものを、線素候補点を線素として選択する。これにより、適切な線素候補点を簡易的に選択でき、実空間上で直線となる曲線を選択することができる。
推定装置100は、ステップS45で説明したように、線素候補点が前線素より終端に近い場合に、線素候補点を線素として選択する。これにより、適切な線素候補点を簡易的に選択でき、実空間上で直線となる曲線を選択することができる。
推定装置100は、曲線を構成する画素の座標値が一つの極値を持つように、前記第2画像フレームの局所領域に含まれる各線素候補点を接続する。これにより、適切な線素候補点を簡易的に選択でき、実空間上で直線となる曲線を選択することができる。
ここで、原理的には、第2画像フレームは1枚でも、直線と曲線との検出でき、内部パラメータを求めることが可能である。ただし、内部パラメータを用いるためには、2本以上の曲線を用いる必要がある。このため、第2画像フレームが1枚の場合には、第1画像フレームの中心付近に、少なくとも2本の直線が含まれることが条件となる。従って、推定装置100の検出部152は、第1画像フレームの中心付近に直線1本が含まれる場合には、少なくとも2つ以上の第2画像フレームから、少なくとも2本以上の曲線を検出する。また、検出部152は、第1画像フレームの中心付近に直線2本が含まれる場合には、少なくとも1つ以上の第2画像フレームから、各直線に対応する2本以上の曲線を検出する。これにより、2本以上の曲線を得ることができるので、内部パラメータを適切に算出することができる。
図31は、本実施例1で説明した推定装置の直線の検出条件を説明するための図である。推定装置100は、画像フレーム11cの歪みが発生しない非歪み領域21aに「線分の全体が完全に含まれる直線オブジェクト」を検出対象としている。図31に示す例では、線分12cが、非歪み領域21aに完全に含まれる直線オブジェクトとなる。このように、検出対象の条件を設定することで、直線性を明確に保証した歪み線(たとえば、非歪み領域21aでは直線であったものから特定される曲線13c)を検出することができる。
推定装置100の検出部152は、非歪み領域設定処理を行うことで、非歪み領域21aを特定し、直線検出処理により、直線12cを検出する。また、検出部152は、検出した直線12cを起点として、端点追跡処理、端点間線素探索処理を行うことで、直線12cに対応する曲線13cを得る。図31の説明では、便宜的に、直線12cと曲線13cとを示しているが、直線12cは、時刻tの画像フレーム11cから検出される直線であり、曲線13cは、時刻t+nの画像フレームから検出される曲線である。
図32は、直線および曲線の画像の一例を示す図である。図32に示すように、時刻tの画像フレームにおいて、非歪み領域に含まれるオブジェクトから、直線12c’が検出されている。また、時刻t+nの画像フレームにおいて、曲線13c’が検出されている。曲線13c’は、直線12c’を起点として検出される曲線である。
図33は、本実施例1で説明した推定装置の改善点を説明するための図である。実際の画像フレームでは、非歪み領域21bを一部はみ出る直線オブジェクトも多く存在する。図34は、非歪み領域を一部はみ出るオブジェクトの一例を示す図である。図34に示す例では、非歪み領域21bから、オブジェクト21eがはみ出ている。
図33において、たとえば、画像フレーム11dの直線12eは、非歪み領域21bを一部はみ出る直線オブジェクトである。推定装置100の検出部152が、直線12eを起点として、曲線13eを検出した場合には、曲線13eの全てを校正の線分として用いることができない。校正の線分として利用可能な部分は、非歪み領域21bからはみ出ていない部分(直線12f)と、曲線13eのうち、直線12fに対応する曲線の部分である。
しかし、曲線13eのうち、直線12fに対応する部分を正確に特定することが難しく、実施例1で説明した推定装置100では、非歪み領域21bをはみ出る直線(直線オブジェクト)を検出対象から除外している。これにより、非歪み領域21bに「線分の全体が完全に含まれる直線オブジェクト」を含む画像フレームが少ない場合には、内部パラメータを推定(校正)するための線分を十分に蓄積するまでに時間を要してしまう。
図35は、本実施例2に係る推定装置の処理を説明するための図である。本実施例2に係る推定装置は、非歪み領域21dを一部はみ出る直線12eを検出対象から除外しないで、部分的に保証可能な直線12fを持つものとして捉える。また、推定装置は、直線12eを起点として、端点追跡処理、端点間線素探索処理、線素抽出を行うことで、直線12eに対応する曲線13eを得る。
図34で説明したオブジェクト21eでは、非歪み領域21dに含まれる部分21gと、非歪み領域に21dに含まれない部分21fを有する。部分21fは、直線保証できない直線が検出される部分である。部分21gは、直線保証の可能となる直線が検出される部分である。
ここで、図33で説明したように、曲線13eのうち、直線12fに対応する部分を正確に特定することは難しいが、後述する「凸レンズの歪みの性質1、2」を用いることで、少なくとも、保証対象外の直線12gに対応しない、曲線13eの直線保証範囲13fを特定することは可能である。本実施例2に係る推定装置は、線分12fと、曲線13eの内、直線保証範囲13fの曲線とを、内部パラメータの校正用の線分として蓄積する。
図36は、凸型レンズの歪みの性質1を説明するための図である。性質1は、非歪みに対して、各点は光軸半径上の中央側に映るという性質である。たとえば、光軸中心を22aとすると、歪み無し直線23は、光軸半径上の中央側に、歪み線24として映る。また、直線23上の各点は、光軸中心22aからの距離が長いほど、光軸中心22aに向かう移動量が長くなる。
直線23上の点23aは、歪み線24上の24aに移動する。直線23上の点23bは、歪み線24上の24bに移動する。直線23上の点23cは、歪み線24上の24cに移動する。点23aと光軸中心22aとを距離は、点23bと光軸中心22aとの距離よりも長い。このため、点23aから点24aまでの距離よりも、点23bから点24bまでの距離の方が長い。また、点23aと光軸中心22aとを距離は、点23cと光軸中心22cとの距離よりも長い。このため、点23aから点24aまでの距離よりも、点23cから点24cまでの距離の方が長い。
図37は、凸型レンズの歪みの性質2を説明するための図である。性質2は、歪んだ直線が光軸上の平行線を越えないという性質である。たとえば、光軸中心を22aとすると、光軸中心22aを通り、歪み無し直線23と平行になる平行線は、線分22bとなる。性質1で説明したように、歪み無し直線23上の各点は、光軸半径上の中央側に移動する(光軸中心22aの方向に移動)するため、図36で示した歪み線24上の点は、線分22bを超えることはない。
上記の性質1、2を用いることで、図35で説明したような直線保証範囲13fを特定することが可能である。図38は、直線保証範囲を特定する処理を説明するための図である。本実施例2に係る推定装置は、画像フレーム11eから、非歪み領域21dをはみ出る直線12hを検出する。推定装置は、直線12hを起点として、端点追跡処理、端点間線素探索処理、線素抽出を行うことで、直線12hに対応する曲線13hを得る。
推定装置は、画像フレーム11eから、消失点2aを特定する。たとえば、推定装置は、画像フレーム11eから、エッジを検出し、複数のエッジが交差する点を消失点2aとして特定する。推定装置は、画像フレーム11eから、光軸中心4aを特定する。光軸中心4aは、画像フレーム11eの中心であってもよいし、内部パラメータなどにより、算出される点であってもよい。
推定装置は、線分3a,3b、線分4b、4cを設定する。非歪み領域21bの外周と、線分12hとの交点をそれぞれ点2b,2cとする。線分3aは、消失点2aと点2bとを通る直線である。線分3bは、消失点2aと点2cとを通る直線である。線分4bは、線分3aと平行な線分であり、光軸中心4aを通る。線分4cは、線分3bと平行な線分であり、光軸中心4aを通る。
上記の性質1、2より、線分12hの点2bよりも上の部分(非歪み領域21bからはみ出た部分)は、線分4b超えて移動することはない。また、性質1、2より、線分12hの点2cよりも下の部分(非歪み領域21bからはみ出た部分)は、線分4cに向かって移動するため、線分3bよりも上に移動することはない。これにより、推定装置は、線分4bと線分3bとに挟まれる直線保証範囲13gを特定する。直線保証範囲13gを特定する際に用いた線分4bは、線分3aよりも光軸半径の中央側の線分である。線分3bは、線分4cよりも光軸半径の中央側の線分である。
このように、本実施例2に係る推定装置は、凸型レンズの歪みの性質1、2を用いることで、非歪み領域21bから直線がはみ出している場合に、直線性を保証可能な直線保証範囲13gを特定することが可能である。このため、非歪み領域21bから直線がはみ出している場合でも、非歪み領域21bに含まれる直線(点2b〜点2cまでの直線)と、直線保証範囲13gの曲線との組を、内部パラメータを推定(校正)するための線分として蓄積することができる。従って、非歪み領域に「線分の全体が完全に含まれる直線オブジェクト」を含む画像フレームが少ない場合でも、内部パラメータを推定(校正)するための線分を十分に蓄積するまでに時間を要してしまうことを解消できる。
次に、本実施例2に係る推定装置の構成について説明する。図39は、本実施例2に係る推定装置の構成を示す機能ブロック図である。図39に示すように、この推定装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
通信部210は、実施例1で説明したように、ネットワーク50を介して、車両10の走行記録部10bから映像データを受信する通信装置である。通信部210は、映像データを、制御部150に出力する。
記憶部240は、映像DB241、検出線DB242を有する。記憶部240は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
映像DB241は、映像データを格納するデータベースである。映像DB241のデータ構造は、実施例1の図7等で説明した映像DB141のデータ構造と同様である。
検出線DB242は、各画像フレームから検出される、線分(直線または曲線)の情報を格納するデータベースである。検出線DB242のデータ構造は、実施例1の図8等で説明した検出線DB142のデータ構造と同様である。
制御部250は、取得部251、検出部252、推定部253を有する。制御部250は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
取得部251は、カメラ10aにより撮影された映像データを取得する処理部である。取得部251は、取得した映像データを、映像DB241に格納する。
検出部252は、映像DB241に格納された映像データに含まれる第1画像フレームの中心付近から直線を検出する。検出部252は、検出した直線の特徴を起点として、第1画像フレームよりも後の複数の第2画像フレームから、直線に対応する複数の曲線を検出する。検出部252は、検出した直線および曲線の情報を、検出線DB242に格納する。以下の説明では、適宜、検出部252が検出した直線および曲線を「検出線」と表記する。
検出部252は、非歪み領域設定処理、直線検出処理、端点追跡処理、端点間線素探索処理、直線保証範囲特定処理を順に実行する。
検出部252が行う「非歪み領域設定処理」は、実施例1で説明した検出部152が行う非歪み領域設定処理と同様である。
検出部252が行う「直線検出処理」の一例について説明する。検出部252は、画像フレームに非歪み領域を設定し、非歪み領域にある直線を検出する。図40は、本実施例2に係る直線検出処理を説明するための図である。たとえば、検出部252は、画像フレームに対して、エッジ検出を行うことで、エッジ画像25が得られる。検出部252は、Cannyアルゴリズムに代表される公知のエッジ検出技術を用いる。円形21は、非歪み領域設定処理で求めた、非歪み領域を示すものである。
検出部252は、ハフ(Hough)変換アルゴリズムを用いることで、エッジ画像25から、直線25a、25b、25cを検出する。検出部252は、直線25a、25bのうち、非歪み領域(円形21)に含まれる直線25aを、特定する。直線25bは、歪みが発生し得る領域から検出した線分であるため、その後の処理で用いられない。なお、検出部252は、非歪み領域に一部が含まれる直線25cを、特定する。
検出部252が行う「端点追跡処理」の一例について説明する。前画像フレームおよび前画像フレームの検出線(たとえば、直線25a、25c)を用いて、現画像フレームの検出線を画像追跡する。検出部252が行う端点追跡処理は、実施例1で説明した検出部152が行う端点追跡処理と同様である。
検出部252がおこなう「端点間線素探索処理」の一例について説明する。検出部252が行う端点間線素探索処理は、実施例1で説明した検出部152が行う端点間線素探索処理と同様である。実施例1で説明したように、かかる端点間線素探索処理を実行することで、直線検出処理で特定した、直線に対応する曲線を得ることができる。
検出部252は、直線検出処理で特定した直線が、非歪み領域をはみ出ていない場合には、直線と、直線に対応する曲線との情報を、検出線DB142に格納する。
検出部252は、直線検出処理で特定した直線が、非歪み領域をはみ出ている場合に備えて、「直線保証範囲特定処理」を実行する。検出部252が実行する直線保証範囲特定処理は、図38で説明した処理に対応する。
すなわち、検出部252は、画像フレーム11eから、消失点2aを特定する。検出部252は、どのように消失点2aを特定してもよい。たとえば、検出部252は、画像フレーム11eから、特徴点等の各点を抽出し、画像フレーム11eを含む連続する画像フレームから、各点のオプティカルフローを算出する。検出部252は、各オプティカルフローの直線式をそれぞれ生成し、各オプティカルフローの直線交点を消失点2aとして特定する。
検出部252は、消失点が複数存在する場合には、各消失点を評価し、最適な消失点を選択して利用してもよい。たとえば、各画像フレームから安定的に特定される消失点の評価値を大きくする。これに対して、各画像フレームから安定的に特定されない消失点の評価値を小さくする。
検出部252は、画像フレーム11eから、光軸中心4aを特定する。光軸中心4aは、画像フレーム11eの中心であってもよいし、内部パラメータなどにより、算出される点であってもよい。
検出部252は、線分3a,3b、線分4b、4cを設定する。非歪み領域21bの外周と、線分12hとの交点をそれぞれ点2b,2cとする。たとえば、線分12hは、図40の線分25cに対応する線分とする。線分3aは、消失点2aと点2bとを通る直線である。線分3bは、消失点2aと点2cとを通る直線である。線分4bは、線分3aと平行な線分であり、光軸中心4aを通る。線分4cは、線分3bと平行な線分であり、光軸中心4aを通る。
検出部252は、凸型レンズの歪みの性質1、2に基づいて、線分4bと線分3bとに挟まれる直線保証範囲13gを特定する。直線保証範囲13gを特定する際に用いた線分4bは、線分3aよりも光軸半径の中央側の線分である。線分3bは、線分4cよりも光軸半径の中央側の線分である。検出部252は、線分12hのうち、点2bから点2cまでの直線と、曲線13hのうち、直線保証範囲13gに含まれる曲線との情報を、検出線DB142に格納する。
推定部253は、検出線DB242に格納された各検出線の情報を基にして、内部パラメータを推定する処理部である。推定部253の処理は、実施例1で説明した推定部153の処理に対応する。
次に、本実施例2に係る推定装置の処理手順の一例について説明する。図41は、本実施例2に係る推定装置の処理手順の一例を示すフローチャートである。図41に示すように、推定装置200の検出部252は、映像DB241から画像フレームを読み込む(ステップS201)。検出部252は、非歪み領域を設定する(ステップS202)。検出部252は、非歪み領域から直線を検出する(ステップS203)。
検出部252は、消失点推定を実行する(ステップS204)。検出部252は、直線保証範囲を登録する(ステップS205)。検出部252は、検出線の端点を追跡する(ステップS206)。検出部252は、検出線の直線保証範囲を特定する(ステップS207)。検出部252は、線素を探索する(ステップS208)。検出部252は、検出線の情報を、検出線DB242に登録する(ステップS209)。
検出部252は、次の画像フレームがある場合には(ステップS210,Yes)、ステップS201に移行する。一方、検出部252は、次の画像フレームがない場合には(ステップS207,No)、ステップS211に移行する。推定装置200の推定部253は、内部パラメータおよび外部パラメータを推定する(ステップS211)。
図41のステップS204に示した消失点推定の処理の一例について説明する。図42は、消失点推定の処理手順を示すフローチャートである。図42に示すように、推定装置200の検出部252は、画像フレーム上の各点の時間差のオプティカルフローを算出する(ステップS301)。検出部252は、各オプティカルフローの直線式を生成する(ステップS302)。
検出部252は、各オプティカルフローの直線交点を算出する(ステップS303)。検出部252は、直線交点を消失点として推定する(ステップS304)。
図41のステップ205に示した直線保証範囲の登録の処理の一例について説明する。図43は、直線保証範囲の登録の処理手順を示すフローチャートである。図43に示すように、推定装置200の検出部252は、安定度の高い消失点を選択する(ステップS401)。検出部252は、消失点を起点とする延長線を生成する(ステップS402)。たとえば、ステップS402に示す延長線は、図38に示す線分3a,3bに対応する。
検出部252は、光軸中心を通る平行線を生成する(ステップS403)。たとえば、ステップS403に示す平行線は、図38に示す線分4b、4cに対応する。検出部252は、内側共通領域を特定し(ステップS404)、内側共通領域を直線保証範囲として登録する(ステップS405)。たとえば、内側共通領域は、図38に示す線分3bと4bとの間の領域を示すものである。
次に、本実施例2に係る推定装置200の効果について説明する。本実施例2に係る推定装置200は、凸型レンズの歪みの性質1、2を用いることで、非歪み領域21bから直線がはみ出している場合に、直線性を保証可能な直線保証範囲13gを特定することが可能である。このため、図38に示したように、非歪み領域21bから直線がはみ出している場合でも、非歪み領域21bに含まれる直線(点2b〜点2cまでの直線)と、直線保証範囲13gの曲線との組を、内部パラメータを推定(校正)するための線分として蓄積することができる。従って、非歪み領域に「線分の全体が完全に含まれる直線オブジェクト」を含む画像フレームが少ない場合でも、内部パラメータを推定(校正)するための線分を十分に蓄積するまでに時間を要してしまうことを解消できる。
なお、上述した推定装置200の検出部252は、図38で説明したように、線分3a,3b(接近静止物の理想的な広がりを示す直線)と、線分4b,4c(線分3a,3bの平行線)との組を用いて、直線保証範囲13gを特定していたがこれに限定されるものではない。検出部252は、平行線を示す線分4b、4cの代わりに、最大歪み線を特定して、直線保証範囲を特定してもよい。最大歪み線は、歪み量が最大の場合に想定される、接近静止物の広がりを示す直線である。最大の歪み量は予め設定されており、かかる歪み量に基づいて、検出部252は、最大歪み線を算出可能である。
図44は、直線保証範囲を特定するその他の処理を説明するための図である。図44において、線分3aは、消失点2aと点2bとを通る直線である。線分3bは、消失点2aと点2cとを通る直線である。この線分3a,3bは、歪み量が最小となる場合を想定した、接近静止物の理想的な広がりを示す直線である。線分4g,4hは、最大歪み線である。
線分4gは、線分12i上の点2bが最大に歪んだ場合に想定される線分であるため、線分12iの点2bよりも上の部分が、線分4gを超えて移動することはない。また、性質1、2より、線分12iの点2cよりも下の部分は、線分4cに向かって移動するため、線分3bよりも上に移動することはない。これにより、検出部252は、線分4gと線分3bとに挟まれる直線保証範囲13jを特定する。
最大歪み線の代わりに、図38で説明したような平行線(線分4b、4c)を用いると、特定される直線保証範囲は、範囲13kとなる。したがって、最大歪み線を用いることで、直線保証範囲をより広く設定することが可能となる。
次に、上記実施例に示した推定装置100,200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図45は、推定装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図45に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して収録機器等との間でデータの授受を行うインタフェース装置305とを有する。コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、取得プログラム307a、検出プログラム307b、推定プログラム307cを有する。CPU301は、取得プログラム307a、検出プログラム307b、推定プログラム307cを読み出してRAM306に展開する。
取得プログラム307aは、取得プロセス306aとして機能する。検出プログラム307bは、検出プロセス306bとして機能する。推定プログラム307cは、推定プロセス306cとして機能する。
取得プロセス306aの処理は、取得部151,251の処理に対応する。検出プロセス306bの処理は、検出部152,252の処理に対応する。推定プロセス306cの処理は、推定部153,253の処理に対応する。
なお、各プログラム307a〜307cについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム307a〜307cを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得し、
複数の前記画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出し、
検出した前記直線の特徴量に基づいて、前記直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、前記直線に対応する複数の曲線を検出する
処理を実行させることを特徴とする推定プログラム。
(付記2)前記第1画像フレーム群のうち一つの画像フレームから一つの前記直線を検出した場合、前記第2画像フレーム群のうちの複数の画像フレームから複数の前記曲線を検出し、
前記第1画像フレーム群のうち一つの画像フレームから複数の前記直線を検出した場合、前記第2画像フレーム群のうちの少なくとも一つの画像フレームから複数の前記曲線を検出する
処理を更にコンピュータに実行させることを特徴とする付記1に記載の推定プログラム。
(付記3)前記複数の曲線の情報を記憶装置に記録し、前記複数の曲線の情報を基にして、前記カメラのパラメータを推定する処理を更にコンピュータに実行させることを特徴とする付記1または2に記載の推定プログラム。
(付記4)前記画像フレームの解像度と前記カメラの画角とを基にして、前記中心付近に相当する領域を算出する処理を更にコンピュータに実行させ、前記直線を検出する処理は、前記領域から、直線を検出することを特徴とする付記1、2または3に記載の推定プログラム。
(付記5)前記曲線を検出する処理は、前記第1画像フレームから検出した前記直線の端点を中心とした局所領域に対応する、前記第2画像フレーム上の局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする付記1〜4のいずれか一つに記載の推定プログラム。
(付記6)前記曲線を検出する処理は、複数の前記第2画像フレームについて、前記時系列における先の時刻の第2画像フレームの曲線の端点を中心とした局所領域に対応する、前記時系列の後の時刻の第2画像フレームの局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする付記5に記載の推定プログラム。
(付記7)前記曲線を検出する処理は、前記曲線の両端点を通る直線で第2画像フレームの領域を第1領域および第2領域に分割し、前記第1領域または前記第2領域のいずれか一方の領域から、曲線を検出することを特徴とする付記1〜6のいずれか一つに記載の推定プログラム。
(付記8)前記曲線を検出する処理は、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続する処理を繰り返し、前記曲線の終端に到達させることで前記曲線を検出し、第1エッジ画素の次に接続する第2エッジ画素を複数のエッジ画素から選択する際に、前記第1エッジ画素よりも前記終端に近いエッジ画素を前記第2エッジ画素として選択することを特徴とする付記1〜7のいずれか一つに記載の推定プログラム。
(付記9)前記曲線を検出する処理は、前記曲線を構成する画素の座標値が一つの極値を持つように、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続することを特徴とする付記6、7または8に記載の推定プログラム。
(付記10)前記画像フレーム上の消失点のおよび光軸中心を特定し、前記消失点および前記光軸中心の位置を基にして、前記中心付近に相当する領域に含まれる直線に対応する曲線の範囲を特定する処理を更に実行させることを特徴とする付記4に記載の推定プログラム。
(付記11)前記中心付近に相当する領域の外周および前記直線との交点と前記消失点とを通る第1直線と、前記光軸中心を通り前記第1直線と平行となる第2直線とを特定し、前記第1直線と前記第2直線とのうち、中央側の直線を基にして、前記曲線の範囲を特定することを特徴とする付記10に記載の推定プログラム。
(付記12)予め設定される歪み量に基づいて、前記消失点の広がりを示す歪み線を設定し、前記第1直線と前記歪み線とを基にして、前記曲線の範囲を特定することを特徴とする請求項11に記載の推定プログラム。
(付記13)コンピュータが実行する推定方法であって、
移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得し、
複数の前記画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出し、
検出した前記直線の特徴量に基づいて、前記直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、前記直線に対応する複数の曲線を検出する
処理を実行することを特徴とする推定方法。
(付記14)前記第1画像フレーム群のうち一つの画像フレームから一つの前記直線を検出した場合、前記第2画像フレーム群のうちの複数の画像フレームから複数の前記曲線を検出し、
前記第1画像フレーム群のうち一つの画像フレームから複数の前記直線を検出した場合、前記第2画像フレーム群のうちの少なくとも一つの画像フレームから複数の前記曲線を検出する処理を更に実行することを特徴とする付記13に記載の推定方法。
(付記15)前記複数の曲線の情報を記憶装置に記録し、前記複数の曲線の情報を基にして、前記カメラのパラメータを推定する処理を更に実行することを特徴とする付記13または14に記載の推定方法。
(付記16)前記画像フレームの解像度と前記カメラの画角とを基にして、前記中心付近に相当する領域を算出する処理を更にコンピュータに実行させ、前記直線を検出する処理は、前記領域から、直線を検出することを特徴とする付記13、14または15に記載の推定方法。
(付記17)前記曲線を検出する処理は、前記第1画像フレームから検出した前記直線の端点を中心とした局所領域に対応する、前記第2画像フレーム上の局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする付記13〜16のいずれか一つに記載の推定方法。
(付記18)前記曲線を検出する処理は、複数の前記第2画像フレームについて、前記時系列における先の時刻の第2画像フレームの曲線の端点を中心とした局所領域に対応する、前記時系列の後の時刻の第2画像フレームの局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする付記17に記載の推定方法。
(付記19)前記曲線を検出する処理は、前記曲線の両端点を通る直線で第2画像フレームの領域を第1領域および第2領域に分割し、前記第1領域または前記第2領域のいずれか一方の領域から、曲線を検出することを特徴とする付記13〜18のいずれか一つに記載の推定方法。
(付記20)前記曲線を検出する処理は、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続する処理を繰り返し、前記曲線の終端に到達させることで前記曲線を検出し、第1エッジ画素の次に接続する第2エッジ画素を複数のエッジ画素から選択する際に、前記第1エッジ画素よりも前記終端に近いエッジ画素を前記第2エッジ画素として選択することを特徴とする付記13〜19のいずれか一つに記載の推定方法。
(付記21)前記曲線を検出する処理は、前記曲線を構成する画素の座標値が一つの極値を持つように、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続することを特徴とする付記17、18また19に記載の推定方法。
(付記22)前記画像フレーム上の消失点のおよび光軸中心を特定し、前記消失点および前記光軸中心の位置を基にして、前記中心付近に相当する領域に含まれる直線に対応する曲線の範囲を特定する処理を更に実行させることを特徴とする付記16に記載の推定方法。
(付記23)前記中心付近に相当する領域の外周および前記直線との交点と前記消失点とを通る第1直線と、前記光軸中心を通り前記第1直線と平行となる第2直線とを特定し、前記第1直線と前記第2直線とのうち、中央側の直線を基にして、前記曲線の範囲を特定することを特徴とする付記22に記載の推定方法。
(付記24)予め設定される歪み量に基づいて、前記消失点の広がりを示す歪み線を設定し、前記第1直線と前記歪み線とを基にして、前記曲線の範囲を特定することを特徴とする付記23に記載の推定方法。
(付記25)移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得する取得部と、
複数の前記画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出し、検出した前記直線の特徴量に基づいて、前記直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、前記直線に対応する複数の曲線を検出する検出部と
を有することを特徴とする推定システム。
(付記26)前記検出部は、前記第1画像フレーム群のうち一つの画像フレームから一つの前記直線を検出した場合、前記第2画像フレーム群のうちの複数の画像フレームから複数の前記曲線を検出し、前記第1画像フレーム群のうち一つの画像フレームから複数の前記直線を検出した場合、前記第2画像フレーム群のうちの少なくとも一つの画像フレームから複数の前記曲線を検出する処理を更に実行することを特徴とする付記25に記載の推定システム。
(付記27)前記検出部は、前記複数の曲線の情報を記憶装置に記録し、前記複数の曲線の情報を基にして、前記カメラのパラメータを推定する推定部を更に有することを特徴とする付記25または26に記載の推定システム。
(付記28)前記検出部は、前記画像フレームの解像度と前記カメラの画角とを基にして、前記中心付近に相当する領域を算出し、前記領域から、直線を検出することを特徴とする付記25、26または27に記載の推定システム。
(付記29)前記検出部は、前記第1画像フレームから検出した前記直線の端点を中心とした局所領域に対応する、前記第2画像フレーム上の局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする付記26〜28のいずれか一つに記載の推定システム。
(付記30)前記検出部は、複数の前記第2画像フレームについて、前記時系列における先の時刻の第2画像フレームの曲線の端点を中心とした局所領域に対応する、前記時系列の後の時刻の第2画像フレームの局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする付記29に記載の推定システム。
(付記31)前記検出部は、前記曲線の両端点を通る直線で第2画像フレームの領域を第1領域および第2領域に分割し、前記第1領域または前記第2領域のいずれか一方の領域から、曲線を検出することを特徴とする付記25〜30のいずれか一つに記載の推定システム。
(付記32)前記検出部は、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続する処理を繰り返し、前記曲線の終端に到達させることで前記曲線を検出し、第1エッジ画素の次に接続する第2エッジ画素を複数のエッジ画素から選択する際に、前記第1エッジ画素よりも前記終端に近いエッジ画素を前記第2エッジ画素として選択することを特徴とする付記25〜31のいずれか一つに記載の推定システム。
(付記33)前記検出部は、前記曲線を構成する画素の座標値が一つの極値を持つように、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続することを特徴とする付記29、30または31に記載の推定システム。
(付記34)前記検出部は、前記画像フレーム上の消失点のおよび光軸中心を特定し、前記消失点および前記光軸中心の位置を基にして、前記中心付近に相当する領域に含まれる直線に対応する曲線の範囲を特定する処理を更に実行させることを特徴とする付記28に記載の推定システム。
(付記35)前記検出部は、前記中心付近に相当する領域の外周および前記直線との交点と前記消失点とを通る第1直線と、前記光軸中心を通り前記第1直線と平行となる第2直線とを特定し、前記第1直線と前記第2直線とのうち、中央側の直線を基にして、前記曲線の範囲を特定することを特徴とする付記34に記載の推定システム。
(付記36)前記検出部は、予め設定される歪み量に基づいて、前記消失点の広がりを示す歪み線を設定し、前記第1直線と前記歪み線とを基にして、前記曲線の範囲を特定することを特徴とする付記35に記載の推定システム。
10 車両
10a カメラ
10b 走行記録部
100,200 推定装置
110,210 通信部
120,220 入力部
130,230 表示部
140,240 記憶部
141,241 映像DB
142,242 検出線DB
150,250 制御部
151,251 取得部
152,252 検出部
153,253 推定部

Claims (14)

  1. コンピュータに、
    移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得し、
    複数の前記画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出し、
    検出した前記直線の特徴量に基づいて、前記直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、前記直線に対応する複数の曲線を検出する
    処理を実行させることを特徴とする推定プログラム。
  2. 前記第1画像フレーム群のうち一つの画像フレームから一つの前記直線を検出した場合、前記第2画像フレーム群のうちの複数の画像フレームから複数の前記曲線を検出し、
    前記第1画像フレーム群のうち一つの画像フレームから複数の前記直線を検出した場合、前記第2画像フレーム群のうちの少なくとも一つの画像フレームから複数の前記曲線を検出する
    処理を更にコンピュータに実行させることを特徴とする請求項1に記載の推定プログラム。
  3. 前記複数の曲線の情報を記憶装置に記録し、前記複数の曲線の情報を基にして、前記カメラのパラメータを推定する処理を更にコンピュータに実行させることを特徴とする請求項1または2に記載の推定プログラム。
  4. 前記画像フレームの解像度と前記カメラの画角とを基にして、前記中心付近に相当する領域を算出する処理を更にコンピュータに実行させ、前記直線を検出する処理は、前記領域から、直線を検出することを特徴とする請求項1、2または3に記載の推定プログラム。
  5. 前記曲線を検出する処理は、前記第1画像フレームから検出した前記直線の端点を中心とした局所領域に対応する、前記第2画像フレーム上の局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする請求項1〜4のいずれか一つに記載の推定プログラム。
  6. 前記曲線を検出する処理は、複数の前記第2画像フレームについて、前記時系列における先の時刻の第2画像フレームの曲線の端点を中心とした局所領域に対応する、前記時系列の後の時刻の第2画像フレームの局所領域からエッジを検出し、検出したエッジを基にして、前記曲線を検出することを特徴とする請求項5に記載の推定プログラム。
  7. 前記曲線を検出する処理は、前記曲線の両端点を通る直線で第2画像フレームの領域を第1領域および第2領域に分割し、前記第1領域または前記第2領域のいずれか一方の領域から、曲線を検出することを特徴とする請求項1〜6のいずれか一つに記載の推定プログラム。
  8. 前記曲線を検出する処理は、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続する処理を繰り返し、前記曲線の終端に到達させることで前記曲線を検出し、第1エッジ画素の次に接続する第2エッジ画素を複数のエッジ画素から選択する際に、前記第1エッジ画素よりも前記終端に近いエッジ画素を前記第2エッジ画素として選択することを特徴とする請求項1〜7のいずれか一つに記載の推定プログラム。
  9. 前記曲線を検出する処理は、前記曲線を構成する画素の座標値が一つの極値を持つように、前記第2画像フレームの局所領域に含まれる各エッジ画素を接続することを特徴とする請求項6、7または8に記載の推定プログラム。
  10. 前記画像フレーム上の消失点のおよび光軸中心を特定し、前記消失点および前記光軸中心の位置を基にして、前記中心付近に相当する領域に含まれる直線に対応する曲線の範囲を特定する処理を更に実行させることを特徴とする請求項4に記載の推定プログラム。
  11. 前記中心付近に相当する領域の外周および前記直線との交点と前記消失点とを通る第1直線と、前記光軸中心を通り前記第1直線と平行となる第2直線とを特定し、前記第1直線と前記第2直線とのうち、中央側の直線を基にして、前記曲線の範囲を特定することを特徴とする請求項10に記載の推定プログラム。
  12. 予め設定される歪み量に基づいて、前記消失点の広がりを示す歪み線を設定し、前記第1直線と前記歪み線とを基にして、前記曲線の範囲を特定することを特徴とする請求項11に記載の推定プログラム。
  13. コンピュータが実行する推定方法であって、
    移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得し、
    複数の前記画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出し、
    検出した前記直線の特徴量に基づいて、前記直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、前記直線に対応する複数の曲線を検出する
    処理を実行することを特徴とする推定方法。
  14. 移動体に設置されたカメラにより撮影された時系列の複数の画像フレームを取得する取得部と、
    複数の前記画像フレームのうち一以上の画像フレームを含む第1画像フレーム群の中心付近から少なくとも一つの直線を検出し、検出した前記直線の特徴量に基づいて、前記直線を検出した画像フレームよりも後の時刻の一以上の画像フレームを含む第2画像フレーム群から、前記直線に対応する複数の曲線を検出する検出部と
    を有することを特徴とする推定システム。
JP2018091446A 2017-10-03 2018-05-10 推定プログラム、推定方法および推定システム Pending JP2019067358A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18196810.8A EP3467775A1 (en) 2017-10-03 2018-09-26 Estimating program, estimating method, and estimating system for camera parameter
US16/145,299 US20190102910A1 (en) 2017-10-03 2018-09-28 Estimating program, estimating method, and estimating system for camera parameter

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017193861 2017-10-03
JP2017193861 2017-10-03

Publications (1)

Publication Number Publication Date
JP2019067358A true JP2019067358A (ja) 2019-04-25

Family

ID=66340111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018091446A Pending JP2019067358A (ja) 2017-10-03 2018-05-10 推定プログラム、推定方法および推定システム

Country Status (1)

Country Link
JP (1) JP2019067358A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111507924A (zh) * 2020-04-27 2020-08-07 北京百度网讯科技有限公司 视频帧的处理方法和装置
JP2020180905A (ja) * 2019-04-26 2020-11-05 株式会社明電舎 レール曲率推定装置
JP2021157773A (ja) * 2020-03-27 2021-10-07 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 3次元再構築方法、3次元再構築装置及び電子機器
WO2023249126A1 (ja) * 2022-06-24 2023-12-28 日立Astemo株式会社 画像処理装置および画像処理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020180905A (ja) * 2019-04-26 2020-11-05 株式会社明電舎 レール曲率推定装置
JP7127607B2 (ja) 2019-04-26 2022-08-30 株式会社明電舎 レール曲率推定装置
JP2021157773A (ja) * 2020-03-27 2021-10-07 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 3次元再構築方法、3次元再構築装置及び電子機器
JP7366878B2 (ja) 2020-03-27 2023-10-23 アポロ インテリジェント ドライビング テクノロジー(ペキン)カンパニー リミテッド 3次元再構築方法、3次元再構築装置及び電子機器
CN111507924A (zh) * 2020-04-27 2020-08-07 北京百度网讯科技有限公司 视频帧的处理方法和装置
CN111507924B (zh) * 2020-04-27 2023-09-29 北京百度网讯科技有限公司 视频帧的处理方法和装置
WO2023249126A1 (ja) * 2022-06-24 2023-12-28 日立Astemo株式会社 画像処理装置および画像処理方法

Similar Documents

Publication Publication Date Title
US10996062B2 (en) Information processing device, data management device, data management system, method, and program
JP2019067358A (ja) 推定プログラム、推定方法および推定システム
EP3467775A1 (en) Estimating program, estimating method, and estimating system for camera parameter
US10332275B2 (en) Information processing apparatus, information processing method, and storage medium
JP5136504B2 (ja) 物体識別装置
JP4095491B2 (ja) 距離測定装置、距離測定方法、及び距離測定プログラム
KR20170133269A (ko) 영상 처리장치, 영상 처리방법 및 프로그램
CN104981680A (zh) 相机辅助的运动方向和速度估计
JP2000011133A (ja) 移動物体検出装置及びその方法
US10776937B2 (en) Image processing apparatus and image processing method for setting measuring point to calculate three-dimensional coordinates of subject image with high reliability
US10235579B2 (en) Vanishing point correction apparatus and method
JP2017103688A5 (ja)
JP6750385B2 (ja) 画像処理プログラム、画像処理方法および画像処理装置
JP2019204518A (ja) 人物追跡方法、装置、機器及び記憶媒体
JP2017207942A (ja) 画像処理装置、自己位置推定方法、及び、プログラム
JP6107372B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP6922348B2 (ja) 情報処理装置、方法、及びプログラム
US11948312B2 (en) Object detection/tracking device, method, and program recording medium
JPWO2012133371A1 (ja) 撮像位置および撮像方向推定装置、撮像装置、撮像位置および撮像方向推定方法ならびにプログラム
JP6620607B2 (ja) 画像解析プログラム、画像解析装置、及び画像解析方法
JP2010145219A (ja) 運動推定装置及びプログラム
JP6207311B2 (ja) 画像処理装置、その制御方法、および制御プログラム
JP2019075051A (ja) 画像処理装置
JP7293100B2 (ja) カメラシステム
JP2022121280A (ja) ホモグラフィ算出方法及びプログラム