(57)【要約】【課題】移動する撮像装置により撮影した映像から推定される撮像装置の姿勢の推定精度を向上させる。【解決手段】コンピュータは、移動する撮像装置によって撮影された映像に含まれる複数の画像から、複数の線分を検出する（ステップ７０２）。次に、コンピュータは、それらの線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定する（ステップ７０４、ステップ７０５）。そして、コンピュータは、推定した傾きを３次元空間における鉛直方向に対応付けることで、撮像装置の姿勢を推定する（ステップ７０５）。【選択図】図７
2019096031.tif 000002
【特許請求の範囲】
【請求項１】
移動する撮像装置によって撮影された映像に含まれる複数の画像から、複数の線分を検出し、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、
前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する、
処理をコンピュータに実行させるための推定プログラム。
【請求項２】
前記コンピュータは、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも多い場合、前記中央領域に存在する複数の線分の傾きに対する統計処理を行って、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする請求項１記載の推定プログラム。
【請求項３】
前記コンピュータは、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも少ない場合、画像の水平方向において前記中央領域よりも一方の端部に近い第１端部領域に存在する線分の傾きと、前記中央領域よりも他方の端部に近い第２端部領域に存在する線分の傾きとを用いて、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする請求項１又は２記載の推定プログラム。
【請求項４】
前記コンピュータは、前記第１端部領域を前記水平方向に分割した複数の領域それぞれから、前記一方の端部に近くなるほど多い本数の線分を選択し、前記第２端部領域を前記水平方向に分割した複数の領域それぞれから、前記他方の端部に近くなるほど多い本数の線分を選択し、前記第１端部領域から選択した線分の傾きと前記第２端部領域から選択した線分の傾きとを用いて、前記推定した傾きを求めることを特徴とする請求項３記載の推定プログラム。
【請求項５】
移動する撮像装置によって撮影された映像を記憶する記憶部と、
前記映像に含まれる複数の画像から、複数の線分を検出する検出部と、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する推定部と、
を備えることを特徴とする推定装置。
【請求項６】
コンピュータが、
移動する撮像装置によって撮影された映像に含まれる複数の画像から、複数の線分を検出し、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、
前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する、
ことを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定プログラム、推定装置、及び推定方法に関する。
【背景技術】
【０００２】
危険運転時の映像を自動的に記録するドライブレコーダとして、販売元の訓練された作業者が特殊な作業空間で車両に取り付ける装置から、ユーザが手軽に取り付けられる廉価な装置まで、様々な種類の装置が普及している。さらに、走行中の映像を記録するだけではなく、映像を利用した車線逸脱警報（Lane Departure Warning：ＬＤＷ）等、交通事故削減に向けた安心安全機能を付加することで、製品価値の差別化が促進されている。
【０００３】
高精度なＬＤＷを実現するためには、車両に対する車載カメラの取付位置及び姿勢を高精度に検出して、走行環境における車両の状況を正しく認識することが望ましい。車載カメラの取付位置及び姿勢は、専用マーカを用いて専用の作業場で人手によって較正することもでき、走行中の映像を利用して自動的に較正することもできる。しかし、大量に流通する車載カメラに対して、１台ずつ人手で取付位置及び姿勢を較正する作業は負荷が大きく、現実的ではないため、走行中の映像を利用した自動較正が望まれる。
【０００４】
車両に搭載された撮像装置によって撮影された映像から、撮像装置のロール角を推定する技術が知られている（例えば、特許文献１及び２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１１１５８５号公報
【特許文献２】特開２０１５−５８９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
車載カメラによって撮影された映像から直線を検出し、検出した直線の傾きに基づいて車載カメラのロール角を推定する場合、ロール角の推定精度が低下することがある。
【０００７】
なお、かかる問題は、ＬＤＷを実施する場合に限らず、移動する撮像装置の姿勢に基づいて他の画像処理を行う場合においても生ずるものである。
【０００８】
１つの側面において、本発明は、移動する撮像装置により撮影した映像から推定される撮像装置の姿勢の推定精度を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、推定プログラムは、以下の処理をコンピュータに実行させる。
（１）コンピュータは、移動する撮像装置によって撮影された映像に含まれる複数の画像から、複数の線分を検出する。
（２）コンピュータは、検出した複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定する。
（３）コンピュータは、推定した傾きを３次元空間における鉛直方向に対応付けることで、撮像装置の姿勢を推定する。
【発明の効果】
【００１０】
１つの実施形態によれば、移動する撮像装置により撮影した映像から推定される撮像装置の姿勢の推定精度を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】車両に搭載された撮像装置を示す図である。
【図２】撮像装置のロール角と画像との関係を示す図である。
【図３】変化する傾きを有する線分を含む画像を示す図である。
【図４】世界座標系とカメラ座標系との関係を示す図である。
【図５】第１の推定システムの機能的構成図である。
【図６】画像内のＭ個の領域を示す図である。
【図７】第１の推定処理のフローチャートである。
【図８】中央部分に線分を含まない画像を示す図である。
【図９】端部に多くの線分を含む画像を示す図である。
【図１０】画像内の位置と線分の傾きとの関係を示す図である。
【図１１】第２の推定システムの機能的構成図である。
【図１２】第２の推定処理のフローチャートである。
【図１３】情報処理装置の構成図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、車両に搭載された撮像装置の例を示している。この例では、車体１０１の前面に撮像装置１０２が取り付けられている。撮像装置１０２としては、Charged-Coupled Device（ＣＣＤ）、Complementary Metal-Oxide-Semiconductor（ＣＭＯＳ）等の撮像素子を有するカメラを用いることができる。この場合、車体１０１の前後方向の中心線１１１から撮像装置１０２までの横方向の距離１１４（横オフセット）と、車体１０１の底面から撮像装置１０２までの高さ１１５とを用いて、車体１０１に対する撮像装置１０２の取付位置を表すことができる。
【００１３】
また、車体１０１に対する撮像装置１０２の姿勢は、ロール角１２１、ピッチ角１２２、及びヨー角１２３を用いて表すことができる。ロール角１２１は、中心線１１１の周りの回転角であり、ピッチ角１２２は、中心線１１１と直交する横方向の直線１１２の周りの回転角であり、ヨー角１２３は、中心線１１１及び直線１１２と直交する垂直方向の直線１１３の周りの回転角である。
【００１４】
図２は、上述した特許文献１に記載された、撮像装置のロール角と画像との関係の例を示している。図２（ａ）は、撮像装置のロール角が０度の状態で撮影された画像の例を示している。ロール角が０度の状態では、画像に写っている路面２０１は、左右対称の形状を有する。
【００１５】
一方、図２（ｂ）は、撮像装置のロール角が存在する状態で撮影された画像の例を示している。ロール角が存在する状態では、画像に写っている路面２０２は、左右非対称の形状を有する。
【００１６】
特許文献１の画像処理装置は、ロール角が存在する状態において、実世界で鉛直方向を向く直線（鉛直直線）は、図２（ｂ）に示すように、画像内の位置に依らずに一定の傾きを有するものとみなす。そして、画像処理装置は、車両の走行中に撮影された映像から観測される直線の代表的な傾きに基づいて、ロール角を推定する。
【００１７】
しかしながら、“鉛直直線は画像内の位置に依らずに一定の傾きを有する”という前提は、ピッチ角が０度である場合にのみ成立する。ロール角に加えてピッチ角も存在する場合、鉛直直線の傾きは、画像内の位置に応じて変化する。
【００１８】
図３は、位置に応じて変化する傾きを有する線分を含む画像の例を示している。画像に写っている線分３０１〜線分３０７は、実世界の３次元空間内では、路面３１１に対して垂直な直線であるが、ロール角及びピッチ角が存在する場合、これらの線分の傾きは、画像内の位置に依って異なる。そこで、以下では、鉛直直線の画像内における傾きについて、数式を用いて考察する。
【００１９】
図４は、実世界における世界座標系とカメラ座標系との関係の例を示している。図４のＸ軸、Ｙ軸、及びＺ軸によって表される世界座標系は、車体１０１に取り付けられた撮像装置１０２の位置を原点とし、ｘｃ軸、ｙｃ軸、及びｚｃ軸によって表されるカメラ座標系も、撮像装置１０２の位置を原点としている。カメラ座標系は、世界座標系に対してピッチ角ｐ、ロール角ｒ、及びヨー角ｙを有する。３次元空間内の点の世界座標（Ｘ，Ｙ，Ｚ）からカメラ座標（ｘｃ，ｙｃ，ｚｃ）への変換は、次式により記述される。
【００２０】
【数１】
2019096031.tif 000003
ｃｒ＝ｃｏｓ（ｒ）      （２）
ｓｒ＝ｓｉｎ（ｒ）      （３）
ｃｐ＝ｃｏｓ（ｐ）      （４）
ｓｐ＝ｓｉｎ（ｐ）      （５）
ｃｙ＝ｃｏｓ（ｙ）      （６）
ｓｙ＝ｓｉｎ（ｙ）      （７）
【００２１】
カメラ座標（ｘｃ，ｙｃ，ｚｃ）によって表される点を撮像装置１０２から観測すると、画像平面における画像座標（ｐｘ，ｐｙ）は、次式により記述される。
【００２２】
【数２】
2019096031.tif 000004
【００２３】
【数３】
2019096031.tif 000005
Ａ＝ｃｒ＊ｃｙ−ｓｒ＊ｓｐ＊ｓｙ      （１３）
Ｂ＝−ｓｒ＊ｃｐ                      （１４）
Ｃ＝ｃｒ＊ｓｙ＋ｓｒ＊ｓｐ＊ｃｙ      （１５）
Ｄ＝ｓｒ＊ｃｙ＋ｃｒ＊ｓｐ＊ｓｙ      （１６）
Ｅ＝ｃｒ＊ｃｐ                        （１７）
Ｆ＝ｓｒ＊ｓｙ−ｃｒ＊ｓｐ＊ｃｙ      （１８）
Ｇ＝−ｃｐ＊ｓｙ                      （１９）
Ｈ＝ｓｐ                              （２０）
Ｉ＝ｃｐ＊ｃｙ                        （２１） 
【００２４】
式（１１）のｆｘは、画素の水平方向のサイズを単位とする焦点距離を表し、式（１２）のｆｙは、画素の垂直方向のサイズを単位とする焦点距離を表す。したがって、ｆｘ及びｆｙの単位は、ピクセルである。
【００２５】
ヨー角ｙは、図４のＹ軸の周りの回転角であり、考察対象である鉛直直線の画像内における傾きに対して影響を及ぼさない。そこで、以下では簡単のため、ヨー角ｙは０度であると仮定して、実世界の３次元空間内の点Ｐ１（Ｘ１，Ｙ１，Ｚ１）と点Ｐ２（Ｘ１，Ｙ２，Ｚ１）とを通る鉛直直線の画像内における傾きＴを計算する。
【００２６】
まず、ピッチ角ｐが０度である場合、式（１１）〜式（２１）より、点Ｐ１の画像座標（ｐｘ１，ｐｙ１）と点Ｐ２の画像座標（ｐｘ２，ｐｙ２）は、次式により表される。
【００２７】
ｐｘ１＝ｆｘ＊（ｃｒ＊Ｘ１−ｓｒ＊Ｙ１）      （３１）
ｐｙ１＝ｆｙ＊（ｓｒ＊Ｘ１＋ｃｒ＊Ｙ１）      （３２）
ｐｘ２＝ｆｘ＊（ｃｒ＊Ｘ１−ｓｒ＊Ｙ２）      （３３）
ｐｙ２＝ｆｙ＊（ｓｒ＊Ｘ１＋ｃｒ＊Ｙ２）      （３４）
【００２８】
傾きＴは、式（３１）〜式（３４）を用いて、次式のように計算される。
【００２９】
【数４】
2019096031.tif 000006
【００３０】
式（３５）の傾きＴは、点Ｐ１及び点Ｐ２の座標に依らず、定数であるｆｘ、ｆｙ、ｃｒ、及びｓｒのみを用いて表される。したがって、ピッチ角ｐが０度である場合、鉛直直線の傾きＴは、画像内の位置に依らずに一定の傾きになる。
【００３１】
一方、ピッチ角ｐが存在する場合は、式（１１）〜式（２１）より、画像座標（ｐｘ１，ｐｙ１）は、Ｘ１、Ｙ１、及びＺ１を変数とする関数となり、画像座標（ｐｘ２，ｐｙ２）は、Ｘ１、Ｙ２、及びＺ１を変数とする関数となる。したがって、傾きＴは、点Ｐ１及び点Ｐ２の座標に応じて変化するため、画像内の位置に依って異なる。
【００３２】
一例として、ピッチ角ｐ及びロール角ｒがともに２０度である場合の傾きＴを計算してみる。この場合、３次元空間内の点（−５０００，１５００，１００００）と点（−５０００，−１５００，１００００）とを通る鉛直直線の画像内における傾きＴは、式（１１）〜式（２１）より、−５．５１＊（ｆｙ／ｆｘ）となる。また、点（５０００，１５００，１００００）と（５０００，−１５００，１００００）とを通る鉛直直線の傾きＴは、−１．７５＊（ｆｙ／ｆｘ）となる。このように、ロール角ｒ及びピッチ角ｐが存在する場合、鉛直直線の傾きＴは、画像内の位置に依って異なることが分かる。
【００３３】
したがって、“鉛直直線は画像内の位置に依らずに一定の傾きを有する”という前提に基づく特許文献１の推定方法では、撮像装置１０２のロール角ｒを正しく推定することが困難である。
【００３４】
ただし、ロール角ｒ及びピッチ角ｐが存在する場合であっても、画像の中央で観測される鉛直直線の傾きＴは、ピッチ角ｐの影響を受けることなく、ロール角ｒに依って決定される。画像の中央で観測される鉛直直線は、３次元空間内の点（０，Ｙ１，Ｚ１）と点（０，Ｙ２，Ｚ１）とを通る直線である。この鉛直直線の傾きＴは、式（１１）〜式（２１）を用いて、次式のように計算される。
【００３５】
【数５】
2019096031.tif 000007
【００３６】
式（３６）の傾きＴは、式（３５）の傾きＴと同様に、点Ｐ１及び点Ｐ２の座標に依らず、ｆｘ、ｆｙ、ｃｒ、及びｓｒのみを用いて表される。ｆｘ及びｆｙは定数である。したがって、ピッチ角ｐが存在する場合であっても、画像の中央で観測される鉛直直線の傾きＴは、ロール角ｒのみに依って決定されることが分かる。実施形態では、この点に着目して、画像の中央で観測される鉛直直線を利用することで、ロール角ｒを推定する。
【００３７】
実施形態の推定装置は、記憶部、検出部、及び推定部を含む。記憶部は、撮像装置によって撮影された映像を記憶し、検出部は、映像に含まれる複数の画像から、複数の線分を検出する。推定部は、それらの線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、推定した傾きを３次元空間における鉛直方向に対応付けることで、撮像装置の姿勢を推定する。
【００３８】
このような推定装置によれば、移動する撮像装置により撮影した映像から推定される撮像装置の姿勢の推定精度を向上させることができる。
【００３９】
図５は、実施形態の推定装置を含む第１の推定システムの機能的構成例を示している。図５の推定システムは、例えば、車両に搭載され、撮像装置５０１及び推定装置５０２を含む。推定装置５０２は、記憶部５１１、検出部５１２、推定部５１３、及び処理部５１４を含み、推定部５１３は、チェック部５２１及び姿勢推定部５２２を含む。
【００４０】
撮像装置５０１は、図１の撮像装置１０２に対応し、車両の停止時又は走行中に、車両の進行方向（前方）の映像５３１を撮影して、推定装置５０２へ出力する。推定装置５０２は、撮像装置５０１が出力する映像５３１を記憶部５１１に格納する。映像５３１は、時系列の複数の画像を含み、各時刻の画像は、フレームと呼ばれることもある。
【００４１】
検出部５１２は、映像５３１に含まれる各時刻の画像から線分を検出し、検出した線分を、線分候補５３２として記憶部５１１に格納する。例えば、検出部５１２は、直線検出アルゴリズムの一種である、Ｓｏｂｅｌフィルタ、Ｃａｎｎｙ法等のフィルタ処理を用いて、画像から線分を検出することができる。線分候補５３２は、３次元空間内の鉛直直線に対応する画像内の線分の候補を表す。路面が水平であると仮定した場合、鉛直直線は、路面に垂直な直線である。
【００４２】
記憶部５１１は、検出部５１２が検出した線分を、その線分が検出された画像内の領域に対応付けて記憶することができる。例えば、画像が水平方向にＭ個（Ｍは３以上の奇数）の領域に分割されている場合、検出部５１２は、各線分をいずれかの領域に対応付けて記憶する。
【００４３】
図６は、画像内のＭ個の領域の例を示している。図６の画像は、縦長の領域Ａ１〜領域ＡＭに分割されている。領域の個数Ｍは、撮像装置５０１の画角、解像度等に基づいて決定することができる。例えば、Ｍは、２１〜３１の範囲の奇数であってもよい。
【００４４】
この場合、検出部５１２は、検出した線分に対してラベリング処理を行い、その線分の下端が属する領域Ａｉ（ｉ＝１〜Ｍ）に対応付けて、検出した線分を記録する。このような線分検出処理を時系列の複数の画像に対して繰り返すことで、領域Ａ１〜領域ＡＭそれぞれに対して、検出された線分が蓄積される。
【００４５】
直線検出アルゴリズムによって検出される線分には、３次元空間における様々な方向の直線に対応する線分が含まれる可能性がある。そこで、検出部５１２は、各線分の直線性、長さ、傾き、エッジ強度等の特徴に基づいて、その線分が鉛直直線に対応する線分であるか否かを判定し、鉛直直線に対応する線分のみを線分候補５３２として記録してもよい。
【００４６】
推定部５１３のチェック部５２１は、線分候補５３２に含まれる線分の中から、画像の中央を含む中央領域に存在する線分を選択し、選択した線分の本数が、所定数Ｎ以上であるか否かをチェックする。例えば、図６の領域Ａ１〜領域ＡＭのうち、領域Ａ（Ｍ＋１）／２に対応付けられた線分が、中央領域に存在する線分として選択される。このとき、チェック部５２１は、現在時刻の画像から検出された線分のみを選択するのではなく、過去から現在までに至る複数の時刻の画像から検出された線分を選択する。
【００４７】
中央領域に存在する線分の本数が所定数Ｎ以上である場合、姿勢推定部５２２は、それらの線分の傾きに対する統計処理を行って、代表的な傾きの推定値を求める。そして、姿勢推定部５２２は、求めた推定値と撮像装置５０１の焦点距離とを用いて、撮像装置５０１のロール角ｒを推定し、そのロール角ｒを示す姿勢情報５３３を記憶部５１１に格納する。
【００４８】
車両が走行している路面の周辺で安定して観測できる複数の直線のうち、大多数を占める直線は、路面から鉛直方向に延びる鉛直直線であるとみなすことが可能である。そこで、姿勢推定部５２２は、中央領域に存在する線分の傾きに対して統計処理を行うことで、例えば、最も頻度の高い傾きを代表的な傾きの推定値として求め、その推定値を式（３６）の傾きＴに代入することで、ロール角ｒを計算することができる。
【００４９】
代表的な傾きの推定値を安定して求めるためには、所定数Ｎとしてできるだけ大きな値を設定することが望ましい。例えば、Ｎは、数百〜数千の範囲の整数であってもよい。線分の傾きに対する統計処理としては、例えば、投票処理を用いることができる。また、線分候補５３２から鉛直直線に対応しない線分が除外されている場合は、統計処理として、平均値、中央値等を求める演算処理を用いてもよい。
【００５０】
姿勢推定部５２２は、推定したロール角ｒを用いて、撮像装置５０１のピッチ角ｐ及びヨー角ｙをさらに推定し、ロール角ｒ、ピッチ角ｐ、及びヨー角ｙを示す姿勢情報５３３を生成することもできる。
【００５１】
処理部５１４は、姿勢情報５３３を用いて、映像５３１に対する画像処理を行う。映像５３１に対する画像処理は、白線、歩行者等を検出する処理であってもよい。処理部５１４は、画像処理の結果に基づいて、ＬＤＷ、又は車両に対する制御を行うこともできる。
【００５２】
図５の推定システムによれば、撮像装置５０１のロール角ｒ及びピッチ角ｐが存在する場合であっても、走行中に撮影した映像５３１から、ピッチ角ｐの影響を受けない線分を抽出して、ロール角ｒを高精度に推定することができる。
【００５３】
図７は、図５の推定装置５０２が行う第１の推定処理の例を示すフローチャートである。まず、推定装置５０２は、撮像装置５０１が出力する各時刻の画像を映像５３１に記録する（ステップ７０１）。そして、検出部５１２は、その画像から線分を検出し（ステップ７０２）、検出した線分を、その線分が属する領域Ａｉに対応付けて、線分候補５３２に記録する（ステップ７０３）。
【００５４】
次に、チェック部５２１は、線分候補５３２に含まれる線分のうち、中央領域に存在する線分の本数を、所定数Ｎと比較する（ステップ７０４）。中央領域に存在する線分の本数がＮ未満である場合（ステップ７０４，ＮＯ）、推定装置５０２は、次の時刻の画像について、ステップ７０１以降の処理を繰り返す。
【００５５】
一方、中央領域に存在する線分の本数がＮ以上である場合（ステップ７０４，ＹＥＳ）、姿勢推定部５２２は、それらの線分の傾きを用いて、撮像装置５０１のロール角ｒを推定し、そのロール角ｒを示す姿勢情報５３３を生成する（ステップ７０５）。
【００５６】
ところで、通常の走行シーンでは、画像の中央部分において鉛直直線が観測されることは稀であるため、所定時間内に中央領域に存在するＮ本の線分を検出することは困難である。
【００５７】
図８は、中央部分に線分を含まない画像の例を示している。図８の画像は、図２（ａ）の画像に対応し、その中央部分８０１には、鉛直直線に対応する線分が存在しない。このような画像が時系列に続く映像から、ピッチ角ｐの影響を受けない線分を抽出して、ロール角ｒを推定することは難しい。しかし、通常の走行シーンの映像は、以下のような特徴を有している。
（Ｃ１）画像の水平方向において中央領域よりも左右の端部に近い端部領域では、鉛直直線を安定して観測することができる。
（Ｃ２）端部領域で観測される鉛直直線に対応する線分の傾きは、画像内の位置に依って異なるが、これらの線分を利用して、中央領域で観測されるはずの仮想的な鉛直直線に対応する線分の傾きを推定することができる。
【００５８】
そこで、以下の実施形態では、これらの特徴に着目し、中央領域の左右両側で観測される鉛直直線を利用して、中央領域に存在すると仮定した鉛直直線に対応する線分の傾きを推定し、推定した傾きからロール角ｒを推定する。これにより、中央領域に存在するＮ本の線分が検出されない場合であっても、ロール角ｒを高精度に推定することができる。
【００５９】
通常の走行シーンでは、路面の左右両側に、路面から鉛直方向に延びる建物、電柱等の縦長の物体が多く存在する。また、車両の進行方向（前方）を撮像した映像における建物、電柱等の物体は、車両に近づくにつれて中央領域から端部に向かって移動するとともに大きくなる。すなわち、映像に写っている物体の輪郭は、中央領域よりも端部においてより明確になるため、上記（Ｃ１）の特徴を有する映像が撮影されると考えられる。
【００６０】
図９は、端部に多くの線分を含む画像の例を示している。図９の画像に写っている路面９０２は、水平方向における中心線９０１に関して左右対称の形状を有し、路面９０２の左右両側では、中心線９０１から左右の端部へ向かうほど多くの線分が検出される。これらの線分は、建物、電柱等の縦長の物体の輪郭を表す鉛直直線に対応している。
【００６１】
また、上記（Ｃ２）の特徴を利用することで、鉛直直線に対応する線分の画像内の位置と傾きとの関係をモデル化することができる。これにより、実際には鉛直直線を観測することが困難な中央領域において、鉛直直線が観測されたと仮定した場合の線分の傾きを推定することができる。
【００６２】
図１０は、画像内の位置と線分の傾きとの関係の例を示している。図１０の横軸は、画像内の水平方向における画素単位の位置を表す。原点は、水平方向における画像の中心線に対応する。縦軸は、鉛直直線に対応する線分の傾きをラジアン単位の角度に換算した値を表す。
【００６３】
例えば、図４の世界座標系において、原点からＺ軸方向に距離１００００だけ離れた位置に存在する、Ｘ軸と平行な直線を想定する。この直線上のＸ＝−５０００〜５０００の範囲において間隔２００で存在する複数の鉛直直線の傾きＴを、式（１１）〜式（２１）を用いて計算すると、グラフ１００１が得られる。この場合、傾きＴは、ｆｘ＝ｆｙとして計算されている。グラフ１００１から分かるように、路面上で観測される鉛直直線の傾きＴは、画像内の位置に応じて滑らかに変化し、それらの関係をモデル化することができる。
【００６４】
図１１は、中央領域の左右両側で観測される鉛直直線を利用してロール角ｒを推定する、第２の推定システムの機能的構成例を示している。図１１の推定システムは、図５の推定システムにおいて、推定部５１３内に線分推定部１１０１を追加した構成を有する。
【００６５】
推定部５１３のチェック部５２１は、画像の中央領域に存在する線分の本数が所定数Ｎよりも少ない場合、線分候補５３２に含まれる線分の中から、画像の左端に近い左端部領域に存在する線分と、画像の右端に近い右端部領域に存在する線分とを選択する。
【００６６】
例えば、図６のように画像が分割されている場合、画像の左端からＫ個（Ｋは１以上の整数）の領域（Ａ１〜ＡＫ）が左端部領域として選択され、画像の右端からＫ個の領域（ＡＭ−Ｋ＋１〜ＡＭ）が右端部領域として選択される。この場合、チェック部５２１は、各領域Ａｉ（ｉ＝１〜Ｋ，Ｍ−Ｋ＋１〜Ｍ）に存在する線分を選択し、選択した線分の本数が、その領域Ａｉに対して設定された所定数Ｎｉ以上であるか否かをチェックする。
【００６７】
図９に示したように、通常の走行シーンでは、画像の中央領域から左右の端部へ向かうほど多くの線分が検出される。したがって、所定数Ｎｉは、中央の領域Ａ（Ｍ＋１）／２において最小となり、左右の端部へ向かうに連れて大きくなり、領域Ａ１及び領域ＡＭにおいて最大となるように、設定することが望ましい。この場合、次式が成り立つ。
【００６８】
Ｎ１≧Ｎ２≧・・・≧Ｎ（Ｍ＋１）／２≦・・・≦ＮＭ−１≦ＮＭ      （４１）
【００６９】
式（４１）のＮ（Ｍ＋１）／２は、図５の推定システムにおいて、中央の領域Ａ（Ｍ＋１）／２に対して設定される所定数Ｎに対応する。このような所定数Ｎｉを用いることで、左端部領域及び右端部領域それぞれにおいて、端部に近くなるほど多くの線分を確保することが可能になる。
【００７０】
左端部領域及び右端部領域に含まれる複数の領域Ａｉにおいて、線分の本数が所定数Ｎｉ以上である場合、線分推定部１１０１は、それらの線分の傾きを用いて、中央領域における線分の代表的な傾きの推定値を求める。この推定値は、中央領域において鉛直直線が観測されたと仮定した場合のその鉛直直線の傾きＴを表す。なお、左端部領域又は右端部領域に含まれる一部の領域Ａｉにおいて、線分の本数が所定数Ｎｉ未満である場合、その領域Ａｉの線分は推定値の計算に利用されない。
【００７１】
例えば、線分推定部１１０１は、各領域Ａｉに存在する線分の傾きに対して統計処理を行うことで、その領域Ａｉにおける代表的な傾きを表す推定値を求める。そして、線分推定部１１０１は、水平方向における各領域Ａｉの位置ｘと、各領域Ａｉの傾きの推定値ｔとの関係を示すモデルを生成し、そのモデルを用いて、中央領域における代表的な傾きの推定値を求める。モデルとしては、ｔ＝ａｘ＋ｂのような直線の方程式、ｔ＝ａｘ３＋ｂｘ２＋ｃｘ＋ｄのような曲線の方程式等を用いることができる。ａ、ｂ、ｃ、及びｄは、定数である。
【００７２】
また、線分推定部１１０１は、各領域Ａｉの傾きの推定値の代わりに、各領域Ａｉに存在するすべての線分の傾きを用いて、各線分の位置ｘと各線分の傾きｔとの関係を示すモデルを生成することもできる。
【００７３】
姿勢推定部５２２は、線分推定部１１０１が求めた中央領域における代表的な傾きの推定値と、撮像装置５０１の焦点距離とを用いて、撮像装置５０１のロール角ｒを推定し、そのロール角ｒを示す姿勢情報５３３を生成する。
【００７４】
図１１の推定システムによれば、画像の中央領域からＮ本の線分が検出されない場合であっても、左右の端部領域から検出された線分を利用して、ロール角ｒを高精度に推定することができる。
【００７５】
図１２は、図１１の推定装置５０２が行う第２の推定処理の例を示すフローチャートである。図１２のステップ１２０１〜ステップ１２０４の処理は、図７のステップ７０１〜ステップ７０４の処理と同様である。ステップ１２０４のＮは、式（４１）のＮ（Ｍ＋１）／２に対応する。
【００７６】
中央領域に存在する線分の本数がＮ以上である場合（ステップ１２０４，ＹＥＳ）、姿勢推定部５２２は、それらの線分の傾きを用いて、撮像装置５０１のロール角ｒを推定し、そのロール角ｒを示す姿勢情報５３３を生成する（ステップ１２０５）。
【００７７】
一方、中央領域に存在する線分の本数がＮ未満である場合（ステップ１２０４，ＮＯ）、チェック部５２１は、端部領域の線分が確保されたか否かをチェックする（ステップ１２０６）。このとき、チェック部５２１は、左端部領域及び右端部領域に含まれる各領域Ａｉの線分の本数を所定数Ｎｉと比較する。そして、チェック部５２１は、複数の領域Ａｉの線分の本数がＮｉ以上である場合、端部領域の線分が確保されたと判定し、それ以外の場合、端部領域の線分が確保されていないと判定する。
【００７８】
端部領域の線分が確保されていない場合（ステップ１２０６，ＮＯ）、推定装置５０２は、次の時刻の画像について、ステップ１２０１以降の処理を繰り返す。
【００７９】
一方、端部領域の線分が確保された場合（ステップ１２０６，ＹＥＳ）、線分推定部１１０１は、それらの線分の傾きを用いて、中央領域における代表的な傾きの推定値を求める（ステップ１２０７）。そして、姿勢推定部５２２は、線分推定部１１０１が求めた推定値を用いて、撮像装置５０１のロール角ｒを推定し、そのロール角ｒを示す姿勢情報５３３を生成する（ステップ１２０５）。
【００８０】
図５及び図１１の推定システムの構成は一例に過ぎず、推定システムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、撮像装置５０１及び推定装置５０２は、車両に搭載される代わりに、移動ロボット等の別の移動体に搭載されていてもよい。推定装置５０２の外部の装置が映像５３１に対する画像処理を行う場合、推定装置５０２の処理部５１４を省略することができる。
【００８１】
推定装置５０２は、車両の外部に設けられたサーバであってもよい。この場合、車両に搭載された撮像装置５０１は、通信ネットワークを介して、推定装置５０２へ映像５３１を送信し、推定装置５０２は、通信ネットワークを介して、ＬＤＷ、又は車両に対する制御を行う。また、推定装置５０２は、映像５３１に対する画像処理の結果を、ドライバのための学習教材として利用することもできる。
【００８２】
記憶部５１１、検出部５１２、推定部５１３、及び処理部５１４を単一の装置に実装する代わりに、複数の装置に分散させて実装することも可能である。
【００８３】
図７及び図１２のフローチャートは一例に過ぎず、推定システムの構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、検出部５１２は、映像５３１に含まれるすべての時刻の画像から線分を検出する代わりに、所定期間内の一部の時刻の画像から線分を検出してもよい。
【００８４】
図１の撮像装置１０２の取付位置は一例に過ぎず、撮像装置１０２は、車体１０１の上面、側面、底面等に取り付けられていてもよい。図２、図３、図８、及び図９の画像は一例に過ぎず、撮影される画像と画像から検出される線分は、走行シーンに応じて変化する。図４の世界座標系とカメラ座標系は一例に過ぎず、別の座標系を用いてもよい。
【００８５】
図６に示した画像の分割方法は一例に過ぎず、別の分割方法を用いて画像を分割してもよい。図１０のグラフは一例に過ぎず、画像内の位置と線分の傾きとの関係を示す別のモデルを用いてもよい。式（１）〜式（３６）は一例に過ぎず、鉛直直線の画像内における傾きＴを、別の計算式により求めてもよい。式（４１）は一例に過ぎず、領域Ａｉに対する所定数Ｎｉを別の方法で設定してもよい。
【００８６】
図１３は、図５及び図１１の推定装置５０２として用いられる情報処理装置（コンピュータ）の構成例を示している。図１３の情報処理装置は、Central Processing Unit（ＣＰＵ）１３０１、メモリ１３０２、入力装置１３０３、出力装置１３０４、補助記憶装置１３０５、媒体駆動装置１３０６、及びネットワーク接続装置１３０７を備える。これらの構成要素はバス１３０８により互いに接続されている。
【００８７】
メモリ１３０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１３０２は、図５及び図１１の記憶部５１１として用いることができる。
【００８８】
ＣＰＵ１３０１（プロセッサ）は、例えば、メモリ１３０２を利用してプログラムを実行することにより、図５及び図１１の検出部５１２、推定部５１３、処理部５１４、チェック部５２１、及び姿勢推定部５２２として動作する。ＣＰＵ１３０１は、メモリ１３０２を利用してプログラムを実行することにより、図１１の線分推定部１１０１としても動作する。
【００８９】
入力装置１３０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示及び情報の入力に用いられる。出力装置１３０４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、姿勢情報５３３、映像５３１に対する画像処理の結果、又はドライバに対する警報であってもよい。
【００９０】
補助記憶装置１３０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１３０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１３０５にプログラム及びデータを格納しておき、それらをメモリ１３０２にロードして使用することができる。補助記憶装置１３０５は、図５及び図１１の記憶部５１１として用いることができる。
【００９１】
媒体駆動装置１３０６は、可搬型記録媒体１３０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１３０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１３０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体１３０９にプログラム及びデータを格納しておき、それらをメモリ１３０２にロードして使用することができる。
【００９２】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１３０２、補助記憶装置１３０５、又は可搬型記録媒体１３０９のような、物理的な（非一時的な）記録媒体である。
【００９３】
ネットワーク接続装置１３０７は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１３０７を介して受け取り、それらをメモリ１３０２にロードして使用することができる。
【００９４】
なお、情報処理装置が図１３のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がオペレータ又はユーザと対話を行わない場合は、入力装置１３０３及び出力装置１３０４を省略してもよい。また、可搬型記録媒体１３０９又は通信ネットワークを利用しない場合は、媒体駆動装置１３０６又はネットワーク接続装置１３０７を省略してもよい。
【００９５】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【００９６】
図１乃至図１３を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
移動する撮像装置によって撮影された映像に含まれる複数の画像から、複数の線分を検出し、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、
前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する、
処理をコンピュータに実行させるための推定プログラム。
（付記２）
前記コンピュータは、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも多い場合、前記中央領域に存在する複数の線分の傾きに対する統計処理を行って、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする付記１記載の推定プログラム。
（付記３）
前記コンピュータは、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも少ない場合、画像の水平方向において前記中央領域よりも一方の端部に近い第１端部領域に存在する線分の傾きと、前記中央領域よりも他方の端部に近い第２端部領域に存在する線分の傾きとを用いて、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする付記１又は２記載の推定プログラム。
（付記４）
前記コンピュータは、前記第１端部領域を前記水平方向に分割した複数の領域それぞれから、前記一方の端部に近くなるほど多い本数の線分を選択し、前記第２端部領域を前記水平方向に分割した複数の領域それぞれから、前記他方の端部に近くなるほど多い本数の線分を選択し、前記第１端部領域から選択した線分の傾きと前記第２端部領域から選択した線分の傾きとを用いて、前記推定した傾きを求めることを特徴とする付記３記載の推定プログラム。
（付記５）
移動する撮像装置によって撮影された映像を記憶する記憶部と、
前記映像に含まれる複数の画像から、複数の線分を検出する検出部と、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する推定部と、
を備えることを特徴とする推定装置。
（付記６）
前記推定部は、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも多い場合、前記中央領域に存在する複数の線分の傾きに対する統計処理を行って、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする付記５記載の推定装置。
（付記７）
前記推定部は、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも少ない場合、画像の水平方向において前記中央領域よりも一方の端部に近い第１端部領域に存在する線分の傾きと、前記中央領域よりも他方の端部に近い第２端部領域に存在する線分の傾きとを用いて、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする付記５又は６記載の推定装置。
（付記８）
前記推定部は、前記第１端部領域を前記水平方向に分割した複数の領域それぞれから、前記一方の端部に近くなるほど多い本数の線分を選択し、前記第２端部領域を前記水平方向に分割した複数の領域それぞれから、前記他方の端部に近くなるほど多い本数の線分を選択し、前記第１端部領域から選択した線分の傾きと前記第２端部領域から選択した線分の傾きとを用いて、前記推定した傾きを求めることを特徴とする付記７記載の推定装置。
（付記９）
移動する撮像装置によって撮影された映像を記憶する記憶部と、
前記映像に含まれる複数の画像から、複数の線分を検出する検出部と、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する推定部と、
前記撮像装置の姿勢を用いて、前記映像に対する画像処理を行う処理部と、
を備えることを特徴とする推定システム。
（付記１０）
コンピュータが、
移動する撮像装置によって撮影された映像に含まれる複数の画像から、複数の線分を検出し、
前記複数の線分の中から、画像の中央を含む中央領域に存在する線分の傾きを推定し、
前記推定した傾きを３次元空間における鉛直方向に対応付けることで、前記撮像装置の姿勢を推定する、
ことを特徴とする推定方法。
（付記１１）
前記コンピュータは、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも多い場合、前記中央領域に存在する複数の線分の傾きに対する統計処理を行って、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする付記１０記載の推定方法。
（付記１２）
前記コンピュータは、前記複数の線分の中から選択した前記中央領域に存在する線分の本数が所定数よりも少ない場合、画像の水平方向において前記中央領域よりも一方の端部に近い第１端部領域に存在する線分の傾きと、前記中央領域よりも他方の端部に近い第２端部領域に存在する線分の傾きとを用いて、前記推定した傾きを求め、前記推定した傾きと前記撮像装置の焦点距離とを用いて、前記撮像装置のロール角を求めることを特徴とする付記１０又は１１記載の推定方法。
（付記１３）
前記コンピュータは、前記第１端部領域を前記水平方向に分割した複数の領域それぞれから、前記一方の端部に近くなるほど多い本数の線分を選択し、前記第２端部領域を前記水平方向に分割した複数の領域それぞれから、前記他方の端部に近くなるほど多い本数の線分を選択し、前記第１端部領域から選択した線分の傾きと前記第２端部領域から選択した線分の傾きとを用いて、前記推定した傾きを求めることを特徴とする付記１２記載の推定方法。
【符号の説明】
【００９７】
１０１  車体
１０２、５０１  撮像装置
１１１、９０１  中心線
１１２、１１３  直線
１１４  距離
１１５  高さ
１２１  ロール角
１２２  ピッチ角
１２３  ヨー角
２０１、２０２、３１１、９０２  路面
３０１〜３０７  線分
５０２  推定装置
５１１  記憶部
５１２  検出部
５１３  推定部
５１４  処理部
５２１  チェック部
５２２  姿勢推定部
５３１  映像
５３２  線分候補
５３３  姿勢情報
８０１  中央部分
１００１  グラフ
１１０１  線分推定部
１３０１  ＣＰＵ
１３０２  メモリ
１３０３  入力装置
１３０４  出力装置
１３０５  補助記憶装置
１３０６  媒体駆動装置
１３０７  ネットワーク接続装置
１３０８  バス
１３０９  可搬型記録媒体
【図１】
2019096031.tif 000008
【図２】
2019096031.tif 000009
【図３】
2019096031.tif 000010
【図４】
2019096031.tif 000011
【図５】
2019096031.tif 000012
【図６】
2019096031.tif 000013
【図７】
2019096031.tif 000014
【図８】
2019096031.tif 000015
【図９】
2019096031.tif 000016
【図１０】
2019096031.tif 000017
【図１１】
2019096031.tif 000018
【図１２】
2019096031.tif 000019
【図１３】
2019096031.tif 000020