(57)【要約】【課題】静止物までの距離および静止物の領域を正しく推定する。【解決手段】物体検出装置１００は、移動体に設置されたカメラによって撮影された画像の輪郭線に基づき特定された物体の範囲から所定数以上の特徴点を抽出する。物体検出装置１００は、第１時刻に撮影された画像の第１特徴点に対応する第２時刻に撮影された画像の第２特徴点を特定し、第１特徴点から第２特徴点までの第１フロー量と、第１時刻から前記第２時刻までに予測される第１特徴点の第２フロー量とを基にして、物体の範囲を修正する。物体検出装置１００は、修正された物体の範囲に基づいて、カメラから物体までの距離および物体の幅を算出する。【選択図】図３
2018092354.tif 000002
【特許請求の範囲】
【請求項１】
移動体に設置されたカメラによって撮影された画像の輪郭線に基づき特定された物体の範囲から所定数以上の特徴点を抽出する特徴点抽出部と、
第１時刻に撮影された画像の第１特徴点に対応する第２時刻に撮影された画像の第２特徴点を特定し、前記第１特徴点から第２特徴点までの第１フロー量と、前記第１時刻から前記第２時刻までに予測される前記第１特徴点の第２フロー量とを基にして、前記物体の範囲を修正する修正部と、
前記修正部に修正された前記物体の範囲に基づいて、前記カメラから前記物体までの距離および前記物体の幅を算出する算出部と、
を有することを特徴とする物体検出装置。
【請求項２】
前記修正部は、前記第１フロー量と前記第２フロー量との差が閾値以上である場合に特徴点が物体の特徴点であると判定する処理を、前記物体の範囲に含まれる各特徴点に対して実行し、物体の特徴点を含む矩形領域に合わせて前記物体の範囲を修正することを特徴とする請求項１に記載の物体検出装置。
【請求項３】
前記修正部は、前記物体の範囲と、前記矩形領域との差が閾値以上である場合に、前記物体の範囲を前記矩形領域に合わせて修正することを特徴とする請求項２に記載の物体検出装置。
【請求項４】
前記特徴点抽出部は、前記物体の範囲に含まれる特徴点の数が所定数未満である場合に、特徴点の条件を緩めて再度特徴点を抽出することを特徴とする請求項１、２または３に記載の物体検出装置。
【請求項５】
コンピュータが実行する物体検出方法であって、
移動体に設置されたカメラによって撮影された画像の輪郭線に基づき特定された物体の範囲から所定数以上の特徴点を抽出し、
第１時刻に撮影された画像の第１特徴点に対応する第２時刻に撮影された画像の第２特徴点を特定し、前記第１特徴点から第２特徴点までの第１フロー量と、前記第１時刻から前記第２時刻までに予測される前記第１特徴点の第２フロー量とを基にして、前記物体の範囲を修正し、
前記修正部に修正された前記物体の範囲に基づいて、前記カメラから前記物体までの距離および前記物体の幅を算出する
処理を実行することを特徴とする物体検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出装置等に関する。
【背景技術】
【０００２】
近年、車両等の移動体に設置されたカメラの画像を解析して、ドライバーの運転をサポートする従来技術がある。例えば、画像から特徴点や輪郭線を抽出することで、車両の移動先に存在する静止物の範囲を推定し、推定した静止物の範囲を基にして、車両から静止物までの距離や、静止物の情報を算出し、ドライバーに通知する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２９０２１号公報
【特許文献２】特開２０１１−１０９２８６号公報
【特許文献３】特開２００５−１２３９６８号公報
【特許文献４】特開２０００−１６１９１５号公報
【特許文献５】特開２０１６−１３４７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、静止物までの距離および静止物の領域を正しく推定することができないという問題がある。
【０００５】
１つの側面では、本発明は、静止物までの距離および静止物の領域を正しく推定することができる物体検出装置および物体検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の案では、物体検出装置は、特徴点抽出部と、修正部と、算出部とを有する。特徴点抽出部は、移動体に設置されたカメラによって撮影された画像の輪郭線に基づき特定された物体の範囲から所定数以上の特徴点を抽出する。修正部は、第１時刻に撮影された画像の第１特徴点に対応する第２時刻に撮影された画像の第２特徴点を特定する。修正部は、第１特徴点から第２特徴点までの第１フロー量と、第１時刻から第２時刻までに予測される第１特徴点の第２フロー量とを基にして、物体の範囲を修正する。算出部は、修正部に修正された物体の範囲に基づいて、カメラから物体までの距離および物体の幅を算出する。
【発明の効果】
【０００７】
静止物までの距離および静止物の領域を正しく推定することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、フロー量の違いを説明するための図である。
【図２】図２は、立体物の輪郭線の一例を示す図である。
【図３】図３は、本実施例に係る物体検出装置の構成を示す機能ブロック図である。
【図４】図４は、映像データのデータ構造の一例を示す図である。
【図５】図５は、特徴点テーブルのデータ構造の一例を示す図である。
【図６】図６は、輪郭線抽出部の処理を示すフローチャートである。
【図７】図７は、立体物候補検出部の処理を示すフローチャートである。
【図８】図８は、特徴点抽出部の処理を示すフローチャートである。
【図９】図９は、フロー量算出部の処理を示すフローチャートである。
【図１０】図１０は、修正部の処理の一例を説明するための図（１）である。
【図１１】図１１は、修正部の処理の一例を説明するための図（２）である。
【図１２】図１２は、修正部の処理を示すフローチャートである。
【図１３】図１３は、出力部の処理を示すフローチャートである。
【図１４】図１４は、本実施例に係る物体検出装置の処理手順を示すフローチャートである。
【図１５】図１５は、物体検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願の開示する物体検出装置および物体検出方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１０】
本実施例の説明を行う前に、車両から立体物までの距離、立体物の領域を特定する参考例１，２について説明する。
【００１１】
参考例１は、オプティカルフローを用いて立体物を検出する技術である。以下において、参考例１について説明する。参考例１は、車両のカメラが撮影した各画像データから立体物の特徴点をそれぞれ抽出し、時系列に各画像データの各特徴点を対応付けることで、特徴点の位置ずれ量を算出する。例えば、ある特徴点の時刻ｔ１の座標を（ｘ１、ｙ１）とし、時刻ｔ２の座標を（ｘ２、ｙ２）とすると、位置ずれ量は、座標（ｘ１、ｙ１）と座標（ｘ２、ｙ２）との距離となる。以下の説明では、位置ずれ量をフロー量と表記する。
【００１２】
ここで、画像データ上のある特徴点が路面模様上に存在していると仮定すると、カメラの設置パラメータと車両の移動量から仮想的な特徴点のフロー量を算出することができる。以下の説明では、特徴点が路面模様に含まれていることを前提とし、カメラの設置パラメータと車両の移動量とから求めた仮想的なフロー量を、「仮想フロー量」と表記する。これに対して、各時刻に撮影された画像データに基づき、実際に各特徴点の対応付けを行って求めたフロー量を、観測フロー量と表記する。
【００１３】
仮想フロー量は、特徴点が路面模様に存在していると仮定したものであるため、高さのある立体物の特徴点については、観測フロー量と仮想フロー量とが異なる。図１は、フロー量の違いを説明するための図である。図１に示すように、車両１０には、カメラが取り付けられており、車両１０が移動する前の時刻ｔ１のカメラをカメラ１１ａとし、車両１０が移動した後の時刻ｔ２のカメラをカメラ１１ｂとする。カメラ１１ａと立体物５０の着目点５０ａとを通る線分を、線分１とする。カメラ１１ｂと着目点５０ａとを通る線分を、線分２ａとする。カメラ１１ｂと路面模様５５の点５５ａとを通る線分を、線分２ｂとする。
【００１４】
カメラ１１ａがカメラ１１ｂに移動した場合の、仮想的な路面模様５５の視差変化Ｆ１は、第１交点と第２交点との差となる。第１交点は路面５と線分１との交点であり、第２交点は線分２ｂと路面５との交点である。
【００１５】
仮想的な立体物５０の視差変化Ｆ２は、第１交点と第３交点との差となる。第３交点は、線分２ａと路面５との交点である。視差変化Ｆ２の方が、視差変化Ｆ１よりも、１Ａだけ大きいため、立体物５０のフロー量は、路面模様５５のフロー量よりも大きくなることがわかる。参考例１は、この性質を用いて、特徴点が立体物の特徴点であるか否かを判定する。
【００１６】
上記の仮想フロー量は、対象が路面模様であることを前提に算出されるフロー量であるため、仮想フロー量と観測フロー量との差が大きければ、該当する特徴点は、立体物であると判定できる。これに対して、仮想フロー量と観測フロー量との差が小さければ、該当する特徴点は、路面模様（立体物以外）の特徴点であると判定できる。
【００１７】
参考例１は、立体物であると判定した特徴点を含む範囲を立体物の範囲として特定し、カメラの設置パラメータおよび車両の移動量から、車両１０から立体物５０までの距離を算出する。
【００１８】
参考例１は、車両１０から立体物５０までの距離を比較的精度よく算出することができる。しかしながら、参考例１は、立体物の特徴点として検出する特徴点の数が少なくなる場合が多く、特徴点の照合に失敗すると、距離の算出精度が低下する。また、特徴点の数が少ないため、立体物の全体の形状を捉えることが難しい。
【００１９】
参考例２は、画像データ上で垂直となる輪郭線を抽出し、抽出した輪郭線の塊を立体物として検出する技術である。図２は、立体物の輪郭線の一例を示す図である。図２において、画像２１ｂは、画像２０の一部の領域２１ａを拡大した画像である。図２において、高さのある立体物１５の各輪郭線１５ａは、画像上で垂直に並ぶ。参考例２は、この性質を利用して、各輪郭線１５ａを含む領域を、立体物１５の領域として検出する。
【００２０】
参考例２は、１枚の画像データから立体物１５を検出するため、立体物１５の下端位置１５ｂから車両までの距離を、車両から立体物１５までの距離として算出する。参考例２では、下端位置１５ｂが路面に接触していると仮定し、カメラの設置パラメータに基づいて、車両から立体物１５までの距離を算出する。
【００２１】
参考例２は、遠方から立体物１５の検出が可能であり、立体物１５の全体形状を捉えることが可能である。しかしながら、下端位置１５ｂを誤検出すると、車両から立体物１５までの距離を精度良く検出できない。また、立体物１５の輪郭１５ａと背景の輪郭とがつながると、立体物の全体形状を精度良く捉えられない場合がある。
【００２２】
次に、本実施例に係る物体検出装置について説明する。図３は、本実施例に係る物体検出装置の構成を示す機能ブロック図である。図３に示すように、この物体検出装置１００は、カメラ１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。
【００２３】
カメラ１１０は、車両等の移動体に設置され、撮影方向の映像を撮影するカメラである。カメラ１１０は、撮影した映像データ１４１を映像入力部１５１に出力する。映像データ１４１は、時系列に、複数の画像データが連続する情報である。
【００２４】
入力部１２０は、物体検出装置１００に各種の情報を入力するための入力装置である。例えば、入力部１２０は、タッチパネルや入力ボタンに対応する。
【００２５】
表示部１３０は、制御部１５０から出力される情報を表示する表示装置である。例えば、表示部１３０は、液晶ディスプレイやタッチパネル等に対応する。
【００２６】
記憶部１４０は、映像データ１４１と、特徴点テーブル１４２と、移動量データ１４３とを有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００２７】
映像データ１４１は、時系列に、複数の画像データが連続する情報である。図４は、映像データのデータ構造の一例を示す図である。図４に示すように、映像データ１４１は、画像データを撮影した時刻と、画像データとを対応付ける。
【００２８】
特徴点テーブル１４２は、画像データから抽出される特徴点に関する各種の情報を保持するテーブルである。図５は、特徴点テーブルのデータ構造の一例を示す図である。図５に示すように、この特徴点テーブル１４２は、時刻と、特徴点識別情報と、２次元座標と、フラグと、３次元座標とを対応付ける。
【００２９】
時刻は、該当する画像データが撮影された時刻を示す。特徴点識別情報は、該当する時刻に撮影された画像データから抽出された特徴点を一意に識別する情報である。２次元座標は、画像データ上の特徴点の座標を示すものである。フラグは、特徴点が立体物の特徴点か否かを示す情報である。フラグが「オン」である場合には、特徴点が立体物の特徴点であることを示す。フラグが「オフ」である場合には、特徴点が立体物以外の特徴点であることを示す。立体物以外の特徴点は、例えば、路面模様の特徴点または背景の特徴点である。３次元座標は、特徴点に対応する空間上の３次元座標を示す。
【００３０】
移動量データ１４３は、時刻毎の車両の移動方向、移動速度が含まれる。
【００３１】
制御部１５０は、映像入力部１５１、移動量検出部１５２、輪郭線抽出部１５３、立体物候補検出部１５４、特徴点抽出部１５５、フロー量算出部１５６、修正部１５７、出力部１５８を有する。出力部１５８は、算出部の一例である。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００３２】
映像入力部１５１は、カメラ１１０から映像データ１４１を取得し、取得した映像データ１４１を記憶部１４０に格納する。映像入力部１５１は、取得した映像データ１４１がアナログの映像データである場合には、デジタルの映像データに変換し、記憶部１４０に格納する。
【００３３】
移動量検出部１５２は、車両の駆動装置に取り付けられたセンサから情報を取得することで、車両の移動量を検出する処理部である。移動量検出部１５２は、検出した移動量に関する情報を、移動量データ１４３に格納する。
【００３４】
輪郭線抽出部１５３は、映像データ１４１の各画像データから輪郭線を抽出する処理部である。輪郭線抽出部１５３は、各画像データの輪郭線の情報を、立体物候補検出部１５４に出力する。
【００３５】
輪郭線抽出部１５３は、画像データからエッジ抽出を行い、エッジ画像を生成する。例えば、輪郭線抽出部１５３は、Sobel等の一般的な微分オペレータを作用させて、微分処理によって得られるエッジ強度と予め定めたエッジ強度閾値とを比較し、エッジ強度閾値以上となるエッジを抽出する。
【００３６】
抽出対象となる輪郭線は垂直方向に写るため、輪郭線抽出部１５３は、横方向での細線化処理を行う。具体的には、輪郭線抽出部１５３は、抽出したエッジについて、隣接する横方向の画素２つのエッジ強度を比較して、ピーク値となればエッジ点とする細線化処理を行う。輪郭線抽出部１５３は、抽出したエッジ点を繋げることで、輪郭線を抽出する。
【００３７】
図６は、輪郭線抽出部の処理を示すフローチャートである。図６に示すように、輪郭線抽出部１５３は、未処理のエッジ点Ａを選択する（ステップＳ１０）。輪郭線抽出部１５３は、エッジ点Ａの１ライン上の隣接画素に接続可能なエッジ点Ｂが存在するか否かを判定する（ステップＳ１１）。
【００３８】
輪郭線抽出部１５３は、エッジ点Ａの１ライン上の隣接画素に接続可能なエッジＢが存在しない場合には（ステップＳ１１，Ｎｏ）、ステップＳ１９に移行する。一方、輪郭線抽出部１５３は、エッジ点Ａの１ライン上の隣接画素に接続可能なエッジ点Ｂが存在する場合には（ステップＳ１１，Ｙｅｓ）、エッジ点Ｂが複数であるか否かを判定する（ステップＳ１２）。
【００３９】
輪郭線抽出部１５３は、エッジ点Ｂが複数でない場合には（ステップＳ１２，Ｎｏ）、ステップＳ１４に移行する。一方、輪郭線抽出部１５３は、エッジ点Ｂが複数である場合には（ステップＳ１２，Ｙｅｓ）、最適点を複数のエッジ点Ｂから選択する（ステップＳ１３）。ステップＳ１３において、輪郭線抽出部１５３は、エッジ点Ｂのうち、エッジの強度および傾きが、エッジ点Ａのエッジの強度および傾きに最も類似するものを、最適点として選択する。
【００４０】
輪郭線抽出部１５３は、選択したエッジ点Ｂの輪郭線番号が未登録でない場合には（ステップＳ１４，Ｎｏ）、ステップＳ１９に移行する。一方、輪郭線抽出部１５３は、選択したエッジ点Ｂの輪郭線番号が未登録である場合には（ステップＳ１４，Ｙｅｓ）、エッジ点Ａと同じライン上でエッジ点Ｂに接続可能なエッジ点Ｃが存在するか否かを判定する（ステップＳ１５）。
【００４１】
輪郭線抽出部１５３は、エッジ点Ｂと同じライン上でエッジ点Ｂに接続可能なエッジ点Ｃが存在しない場合には（ステップＳ１５，Ｎｏ）、エッジ点Ａ，Ｂに、同一の輪郭線番号を割り当て（ステップＳ１６）、ステップＳ１９に移行する。
【００４２】
一方、輪郭線抽出部１５３は、エッジ点Ｂと同じライン上でエッジ点Ｂに接続可能なエッジ点Ｃが存在する場合には（ステップＳ１５，Ｙｅｓ）、エッジ点Ｃがエッジ点Ａよりも、エッジ点Ｂに接続するエッジ点として適切であるか否かを判定する（ステップＳ１７）。
【００４３】
輪郭線抽出部１５３は、エッジ点Ｃがエッジ点Ａよりも適切でない場合には（ステップＳ１７，Ｎｏ）、ステップＳ１６に移行する。例えば、輪郭線抽出部１５３は、エッジ点Ｂの強度および傾きが、エッジ点Ｃの強度および傾きよりも、エッジ点Ａの強度および傾きに類似している場合に、エッジ点Ｃがエッジ点Ａよりも適切でないと判定する。
【００４４】
輪郭線抽出部１５３は、エッジ点Ｃがエッジ点Ａよりも適切である場合には（ステップＳ１７，Ｙｅｓ）、エッジ点Ｂ，Ｃに同一の輪郭線番号を割り当てる（ステップＳ１８）。
【００４５】
輪郭線抽出部１５３は、全エッジ点について処理が終了していない場合には（ステップＳ１９，Ｎｏ）、ステップＳ１０に移行する。輪郭線抽出部１５３は、全エッジ点について処理が終了した場合には（ステップＳ１９，Ｙｅｓ）、処理を終了する。
【００４６】
図３の説明に戻る。立体物候補検出部１５４は、輪郭線の情報を基にして、立体物の範囲の候補を検出する処理部である。立体物候補検出部１５４は、画像データ上に一定サイズのグリッドを複数設定し、各グリッド内に含まれる輪郭線の数をカウントする。立体物候補検出部１５４は、グリッド内に含まれる輪郭線の数が閾値以上である場合には、該当するグリッドを、立体物の候補として検出する。立体物候補検出部１５４は、輪郭線の数をカウントする代わりに、輪郭線を構成するエッジ点の数をカウントすることで、立体物の候補を検出してもよい。以下の説明において、立体物の候補となるグリッドを、「立体物グリッド」と表記する。
【００４７】
立体物候補検出部１５４は、立体物グリッドを検出した後に、立体物グリッドの統合を行う。立体物候補検出部１５４は、隣接するグリッド同士が立体物グリッドである場合には、隣接する立体物グリッドを統合する。立体物候補検出部１５４は、立体物グリッド内に存在する輪郭線の全てを含む外接矩形を作成し、かかる外接矩形を立体物の範囲の候補として検出する。以下の説明において、立体物の範囲の候補を、「候補範囲」と表記する。立体物候補検出部１５４は、各画像データに含まれる各候補範囲の情報を、特徴点抽出部１５５、修正部１５７に出力する。
【００４８】
図７は、立体物候補検出部の処理を示すフローチャートである。図７に示すように、立体物候補検出部１５４は、グリッドを選択する（ステップＳ２０）。立体物候補検出部１５４は、グリッド内の輪郭線の数をカウントする（ステップＳ２１）。立体物候補検出部１５４は、グリッド内の輪郭線の数が閾値以上であるか否かを判定する（ステップＳ２２）。
【００４９】
立体物候補検出部１５４は、グリッド内の輪郭線の数が閾値以上でない場合には（ステップＳ２２，Ｎｏ）、ステップＳ２０に移行する。立体物候補検出部１５４は、グリッド内の輪郭線の数が閾値以上である場合には（ステップＳ２２，Ｙｅｓ）、該当グリッドを立体物グリッドに設定する（ステップＳ２３）。
【００５０】
立体物候補検出部１５４は、全グリッドの探索が終了したか否かを判定する（ステップＳ２４）。立体物候補検出部１５４は、全グリッドの探索が終了していない場合には（ステップＳ２４，Ｎｏ）、ステップＳ２０に移行する。立体物候補検出部１５４は、全グリッドの探索が終了した場合には（ステップＳ２４，Ｙｅｓ）、立体物グリッドが存在するか否かを判定する（ステップＳ２５）。
【００５１】
立体物候補検出部１５４は、立体物グリッドが存在しない場合には（ステップＳ２５，Ｎｏ）、処理を終了する。一方、立体物候補検出部１５４は、立体物グリッドが存在する場合には（ステップＳ２５，Ｙｅｓ）、隣接するグリッド同士が立体物グリッドである場合において、立体物グリッドを統合する（ステップＳ２６）。
【００５２】
立体物候補検出部１５４は、同一立体物グリッド内の全ての輪郭線を含む外接矩形を作成する（ステップＳ２７）。立体物候補検出部１５４は、外接矩形を、候補範囲として検出する（ステップＳ２８）。
【００５３】
図３の説明に戻る。特徴点抽出部１５５は、画像データの候補範囲に含まれる特徴点を抽出する処理部である。例えば、特徴点抽出部１５５は、Harrisのコーナ検出を行うことで、コーナ点を特定する。特徴点抽出部１５５は、Harrisのコーナ検出以外のその他のコーナ点検出法に基づき、コーナ点を特定しても良い。以下の説明では、特徴点抽出部１５５が、コーナ検出法により検出したコーナ点を「特徴点」と表記する。
【００５４】
特徴点抽出部１５５は、候補範囲に含まれる特徴点の数が、所定数未満である場合には、特徴点抽出の条件を緩めて、再度特徴点を抽出する処理を繰り返し実行する。例えば、特徴点抽出部１５５が、Harrisのコーナ検出により特徴点を特定する場合には、ある点と周辺との自己相関性を算出し、自己相関性が閾値Ｓｔｈ未満である場合に、ある点を特徴点として特定する。このため、特徴点抽出部１５５は、より多くの特徴点を抽出するために、閾値Ｓｔｈを上げることで、特徴点抽出の条件を緩める。特徴点抽出部１５５は、各候補範囲について、上記処理を繰り返し実行する。
【００５５】
特徴点抽出部１５５は、特徴点の情報を、特徴点テーブル１４２に登録する。例えば、特徴点の情報は、画像データの時刻と、特徴点識別情報と、２次元座標とを含む。
【００５６】
図８は、特徴点抽出部の処理を示すフローチャートである。図８に示すように、特徴点抽出部１５５は、候補範囲を選択する（ステップＳ３０）。特徴点抽出部１５５は、候補範囲から特徴点を抽出する（ステップＳ３１）。特徴点抽出部１５５は、候補範囲に含まれる特徴点の数をカウントする（ステップＳ３２）。
【００５７】
特徴点抽出部１５５は、候補範囲に含まれる特徴点の数が閾値以上であるか否かを判定する（ステップＳ３３）。特徴点抽出部１５５は、候補範囲に含まれる特徴点の数が閾値未満の場合には（ステップＳ３３，Ｎｏ）、特徴点抽出の条件を緩めて、特徴点を再度抽出し（ステップＳ３４）、ステップＳ３２に移行する。
【００５８】
一方、特徴点抽出部１５５は、候補領域に含まれる特徴点の数が閾値以上である場合には（ステップＳ３３，Ｙｅｓ）、特徴点の情報を、特徴点テーブル１４２に登録する（ステップＳ３５）。特徴点抽出部１５５は、全ての候補範囲を選択していない場合には（ステップＳ３６，Ｎｏ）、ステップＳ３０に移行する。特徴点抽出部１５５は、全ての候補範囲を選択した場合には（ステップＳ３６，Ｙｅｓ）、処理を終了する。
【００５９】
図３の説明に戻る。フロー量算出部１５６は、各特徴点について、観測フロー量と、仮想フロー量とを算出する処理部である。
【００６０】
フロー量算出部１５６が、観測フロー量を算出する処理の一例について説明する。フロー量算出部１５６は、特徴点テーブル１４２を参照し、時刻ｔ-αの特徴点に対応する現時刻ｔの位置を特定する。αの値は、管理者が予め設定しておくものとする。フロー量算出部１５６は、時刻ｔ-αの特徴点の周辺領域の画像をテンプレートとし、テンプレートと時刻ｔ-αの画像データとのマッチング処理を行うことで、時刻ｔ-αの特徴点に対応する時刻ｔの画像データの位置を特定する。
【００６１】
マッチング処理としては、一般的なテンプレートマッチングによって、最も照合度の高い位置を決定し、照合度が閾値以上であれば、照合に成功したと判定する。フロー量算出部１５６は、時刻ｔ-αの特徴点の位置から、照合に成功した位置までの距離を、観測フロー量として算出する。例えば、テンプレートマッチングには、ＳＡＤ（Sum  of  Abusolute  Difference）、ＳＳＤ（Sum  of  Squared  Difference）などがある。
【００６２】
フロー量算出部１５６は、移動量データ１４３と、時刻ｔ-αの特徴点の位置と、照合に成功した時刻ｔの特徴点の位置との関係から、時刻ｔの特徴点の３次元座標を算出する。フロー量算出部１５６は、時刻ｔの特徴点の３次元座標の情報を、特徴点テーブル１４２に登録する。
【００６３】
フロー量算出部１５６は、特徴点の観測フロー量が閾値未満である場合には、特徴点が背景の特徴点であると判定する。フロー量算出部１５６は、特徴点テーブル１４２を参照し、背景の特徴点であると判定した特徴点に対応するフラグを「オフ」に設定する。例えば、特徴点テーブル１４２において、各特徴点のフラグの初期値を「オン」とする。
【００６４】
フロー量算出部１５６は、特徴点テーブル１４２に登録された各特徴点について、上記処理を繰り返し実行する。フロー量算出部１５６は、フラグが「オン」となる特徴点について、後述する仮想フロー量を算出する処理を実行する。
【００６５】
フロー量算出部１５６が、仮想フロー量を算出する処理の一例について説明する。フロー量算出部１５６は、時刻ｔ-αの特徴点の位置と、時刻ｔ-α〜時刻ｔの移動量とを基にして、仮想フロー量を算出する。フロー量算出部１５６は、時刻ｔ-α〜時刻ｔの移動量の情報を、移動量データ１４３から取得する。
【００６６】
続いて、フロー量算出部１５６は、特徴点に対応する観測フロー量と、仮想フロー量との差を基にして、特徴点が路面模様の特徴点であるか、立体物の特徴点であるのかを判定する。フロー量算出部１５６は、特徴点に対応する観測フロー量と、仮想フロー量との差が閾値以上である場合には、該当する特徴点が立体物の特徴点であると判定する。一方、フロー量算出部１５６は、同一の特徴点に対応する観測フロー量と、仮想フロー量との差が閾値未満である場合には、該当する特徴点が路面模様の特徴点であると判定する。以下の説明では適宜、立体物の特等点を「立体物特徴点」と表記し、路面模様の特徴点を「路面特徴点」と表記する。
【００６７】
フロー量算出部１５６は、特徴点テーブル１４２を参照し、路面特徴点であると判定した特徴点に対応するフラグを「オフ」に設定する。フロー量算出部１５６は、立体物特徴点であると判定した特徴点に対応するフラグを「オン」のままとする。
【００６８】
続いて、フロー量算出部１５６は、特徴点テーブル１４２の更新処理を行う。例えば、フロー量算出部１５６は、テンプレートマッチングにより照合に成功した時刻ｔの位置と、時刻ｔの特徴点の位置とを比較する。フロー量算出部１５６は、各特徴点の位置が重複しない場合には、照合に成功した時刻ｔの位置を、新たな特徴点として、特徴点テーブル１４２に登録する。
【００６９】
図９は、フロー量算出部の処理を示すフローチャートである。図９に示すように、フロー量算出部１５６は、時刻ｔ-αの画像データに含まれる特徴点について現時刻ｔの画像データで一致する位置を算出する（ステップＳ４０）。フロー量算出部１５６は、照合度が閾値以上であるか否かを判定する（ステップＳ４１）。
【００７０】
フロー量算出部１５６は、照合度が閾値以上でない場合には（ステップＳ４１，Ｎｏ）、ステップＳ４９に移行する。フロー量算出部１５６は、照合度が閾値以上である場合には（ステップＳ４１，Ｙｅｓ）、特徴点の観測フロー量および３次元座標を算出する（ステップＳ４２）。
【００７１】
フロー量算出部１５６は、観測フロー量が閾値以上でない場合には（ステップＳ４３，Ｎｏ）、特徴点を背景特徴点と判定し、フラグをオフにし（ステップＳ４４）、ステップＳ４９に移行する。
【００７２】
一方、フロー量算出部１５６は、観測フロー量が閾値以上である場合には（ステップＳ４３，Ｙｅｓ）、仮想フロー量を算出する（ステップＳ４５）。フロー量算出部１５６は、仮想フロー量と観測フロー量との差が閾値以上であるか否かを判定する（ステップＳ４６）。
【００７３】
フロー量算出部１５６は、仮想フロー量と観測フロー量との差が閾値以上でない場合には（ステップＳ４６，Ｎｏ）、特徴点を路面特徴点と判定し、フラグをオフにし（ステップＳ４７）、ステップＳ４９に移行する。
【００７４】
一方、フロー量算出部１５６は、仮想フロー量と観測フロー量との差が閾値以上である場合には（ステップＳ４６，Ｙｅｓ）、特徴点を立体物特徴点と判定し、フラグをオンにし（ステップＳ４８）、ステップＳ４９に移行する。
【００７５】
フロー量算出部１５６は、全特徴点について処理が完了していない場合には（ステップＳ４９，Ｎｏ）、ステップＳ４０に移行する。一方、フロー量算出部１５６は、全特徴点について処理が完了した場合には（ステップＳ４９，Ｙｅｓ）、特徴点テーブル１４２を更新する（ステップＳ５０）。
【００７６】
図３の説明に戻る。修正部１５７は、立体物特徴点を基にして、候補領域を修正する処理部である。修正部１５７は、最終的な立体物の候補領域の情報を、出力部１５８に出力する。
【００７７】
修正部１５７は、立体物候補検出部１５４と同様にして、グリッドを複数設定し、あるグリッドを選択する。修正部１５７は、選択したグリッドに含まれる立体物特徴点を、特徴点テーブル１４２から取得し、取得した立体物特徴点の外接矩形を特定する。以下の説明では、修正部１５７が特定した外接矩形を「生成領域」と表記する。特徴点テーブル１４２において、立体物特徴点となる特徴点のフラグは「オン」となっている。
【００７８】
修正部１５７は、同一のグリッドから特定された候補領域と、生成領域とを比較する。修正部１５７は、候補領域と生成領域との差が閾値以上である場合には、候補領域を、生成領域に合わせて修正する。
【００７９】
図１０および図１１は、修正部の処理の一例を説明するための図である。図１０に示す例では、候補領域３０ａと、生成領域３０ｂとが示される。候補領域３０ａと、生成領域３０ｂとの差が閾値以上であるため、修正部１５７は、候補領域３０ａを、生成領域３０ｂに合わせて修正する。
【００８０】
図１１に示す例では、候補領域３１ａと、生成領域３１ｂとが示される。候補領域３１ａと、生成領域３１ｂとの差が閾値以上であるため、修正部１５７は、候補領域３１ａを、生成領域３１ｂに合わせて修正する。
【００８１】
図１２は、修正部の処理を示すフローチャートである。図１２に示すように、修正部１５７は、グリッド内の複数の立体物特徴点を特定する（ステップＳ６０）。修正部１５７は、複数の立体物特徴点に外接する生成領域を設定する（ステップＳ６１）。
【００８２】
修正部１５７は、生成領域と候補領域とを比較する（ステップＳ６２）。修正部１５７は、差が閾値以上でない場合には（ステップＳ６３，Ｎｏ）、ステップＳ６５に移行する。修正部１５７は、差が閾値以上である場合には（ステップＳ６３，Ｙｅｓ）、候補領域を生成領域に合わせて修正する（ステップＳ６４）。
【００８３】
修正部１５７は、全ての候補領域について処理が終了していない場合には（ステップＳ６５，Ｎｏ）、ステップＳ６０に移行する。修正部１５７は、全ての候補領域について処理が終了した場合には（ステップＳ６５，Ｙｅｓ）、処理を終了する。
【００８４】
出力部１５８は、車両から立体物までの距離、立体物の領域を特定し、表示部１３０に表示させる処理部である。出力部１５８は、立体物の候補領域に含まれる立体物特徴点の情報を、特徴点テーブル１４２から取得し、立体物の３次元位置を特定する。例えば、候補領域に含まれる立体物特徴点の３次元座標の平均値を、立体物の３次元位置としても良いし、立体物特徴点のうち、車両に最も近い立体物特徴点の３次元位置を、立体物の３次元位置としても良い。また、出力部１５８は、立体物の領域の情報として、候補領域をそのまま用いても良いし、候補領域の幅のみの情報を出力しても良い。
【００８５】
車両の３次元位置は、どのように算出しても良い。例えば、出力部１５８が、走行開始位置と、移動量データ１４３とを用いて、車両の３次元座標を算出しても良いし、ＧＰＳ（Global  Positioning  System）機能を用いて、車両の３次元位置を算出しても良い。
【００８６】
図１３は、出力部の処理を示すフローチャートである。図１３に示すように、出力部１５８は、候補領域に含まれる立体物特徴点の情報を取得する（ステップＳ７０）。出力部１５８は、立体物の３次元座標を算出する（ステップＳ７１）。出力部１５８は、立体物の幅を算出する（ステップＳ７２）。出力部１５８は、車両から立体物までの距離、幅を出力する（ステップＳ７３）。
【００８７】
次に、本実施例に係る物体検出装置１００の処理手順について説明する。図１４は、本実施例に係る物体検出装置の処理手順を示すフローチャートである。図１４に示すように、物体検出装置１００の映像入力部１５１は、映像データ１４１を取得する（ステップＳ１０１）。
【００８８】
物体検出装置１００の輪郭線抽出部１５３は、輪郭線を抽出する（ステップＳ１０２）。ステップＳ１０２の具体的な処理手順は、図６に示したフローチャートに対応する。
【００８９】
物体検出装置１００の立体物候補抽出部１５４は、立体物の候補領域を検出する（ステップＳ１０３）。ステップＳ１０３の具体的な処理手順は、図７に示したフローチャートに対応する。
【００９０】
物体検出装置１００の特徴点抽出部１５５は、特徴点を抽出する（ステップＳ１０４）。ステップＳ１０４の具体的な処理手順は、図８に示したフローチャートに対応する。
【００９１】
物体検出装置１００のフロー量算出部１５６は、フロー量を算出する（ステップＳ１０５）。ステップＳ１０５の具体的な処理手順は、図９に示したフローチャートに対応する。
【００９２】
物体検出装置１００の修正部１５７は、立体物の候補領域を修正する（ステップＳ１０６）。ステップＳ１０６の具体的な処理手順は、図１２に示したフローチャートに対応する。
【００９３】
物体検出装置１００の出力部１５８は、結果を出力する（ステップＳ１０７）。ステップＳ１０７の具体的な処理手順は、図１３に示したフローチャートに対応する。
【００９４】
物体検出装置１００は、処理を継続する場合には（ステップＳ１０８，Ｙｅｓ）、ステップＳ１０１に移行する。一方、物体検出装置１００は、処理を継続しない場合には（ステップＳ１０８，Ｎｏ）、処理を終了する。
【００９５】
次に、本実施例に係る物体検出装置１００の効果について説明する。物体検出装置１００は、立体物の候補領域から所定数以上の特徴点を抽出し、各特徴点の観測フロー量と仮想フロー量とを基にして、立体物の特徴点を特定する。そして、物体検出装置１００は、立体物の特徴点の外接矩形に合わせて、立体物の候補領域を修正する。これにより、画像データの立体物の領域を精度良く検出できるため、立体物までの距離、幅を正しく推定することができる。
【００９６】
物体検出装置１００は、特徴点に対する観測フロー量と仮想フロー量との差が閾値以上である場合に、特徴点が立体物の特徴点であると特定する。このため、背景の特徴点、路面模様の特徴点等が混在する特徴点から、立体物の特徴点を適切に検出することができる。例えば、特徴点の過剰検出を抑止し、立体物以外の領域を、立体物として検出することを抑止することができる。
【００９７】
物体検出装置１００は、立体物の候補領域と、生成領域との差が閾値以上である場合に、候補領域を生成領域に合わせて修正する。このため、全ての候補領域から修正する候補領域を選択できるので、処理負荷を軽減することができる。
【００９８】
物体検出装置１００は、物体の候補領域に含まれる特徴点の数が閾値以上となるまで、特徴点の条件を緩めて再度特徴点を抽出する処理を実行する。このため、特徴点の数が少ないことによる精度低下を抑止することができる。
【００９９】
なお、本実施例に係る物体検出装置１００の説明では、移動体の一例として、車両を用いて説明したが、移動体は車両以外のものであっても良い。例えば、移動体は、船、電車、フォークリフト、ロボット、ドローン等であっても良い。
【０１００】
次に、上記実施例に示した物体検出装置１００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図１５は、物体検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【０１０１】
図１５に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置２０５と、カメラ２０６を有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。そして、各装置２０１〜２０８は、バス２０９に接続される。
【０１０２】
ハードディスク装置２０８は、映像入力プログラム２０８ａ、移動量検出プログラム２０８ｂ、輪郭線抽出プログラム２０８ｃ、立体物候補検出プログラム２０８ｄ、特徴点抽出プログラム２０８ｅを有する。ハードディスク装置２０８は、フロー量算出プログラム２０８ｆ、修正プログラム２０８ｇ、出力プログラム２０８ｈを有する。
【０１０３】
ＣＰＵ２０１は、映像入力プログラム２０８ａ、移動量検出プログラム２０８ｂ、輪郭線抽出プログラム２０８ｃ、立体物候補検出プログラム２０８ｄ、特徴点抽出プログラム２０８ｅを読み出してＲＡＭ２０７に展開する。ＣＰＵ２０１は、フロー量算出プログラム２０８ｆ、修正プログラム２０８ｇ、出力プログラム２０８ｈを読み出してＲＡＭ２０７に展開する。
【０１０４】
映像入力プログラム２０８ａは、映像入力プロセス２０７ａとして機能する。移動量検出プログラム２０８ｂは、移動量検出プロセス２０７ｂとして機能する。輪郭線抽出プログラム２０８ｃは、輪郭線抽出プロセス２０７ｃとして機能する。立体物候補検出プログラム２０８ｄは、立体物候補検出プロセス２０７ｄとして機能する。特徴点抽出プログラム２０８ｅは、特徴点抽出プロセス２０７ｅとして機能する。フロー量算出プログラム２０８ｆは、フロー量算出プロセス２０７ｆとして機能する。修正プログラム２０８ｇは、修正プロセス２０７ｇとして機能する。出力プログラム２０８ｈは、出力プロセス２０７ｈとして機能する。
【０１０５】
映像入力プロセス２０７ａの処理は、映像入力部１５１の処理に対応する。移動量検出プロセス２０７ｂの処理は、移動量検出部１５２の処理に対応する。輪郭線抽出プロセス２０７ｃの処理は、輪郭線抽出部１５３の処理に対応する。立体物候補検出プロセス２０７ｄの処理は、立体物候補検出部１５４の処理に対応する。特徴点抽出プロセス２０７ｅの処理は、特徴点抽出部１５５の処理に対応する。フロー量検出プロセス２０７ｆの処理は、フロー量算出部１５６の処理に対応する。修正プロセス２０７ｇの処理は、修正部１５７の処理に対応する。出力プロセス２０７ｈの処理は、出力部１５８の処理に対応する。
【０１０６】
なお、各プログラム２０８ａ〜２０８ｈについては、必ずしも最初からハードディスク装置２０８に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００が各プログラム２０８ａ〜２０８ｈを読み出して実行するようにしても良い。
【０１０７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０８】
（付記１）移動体に設置されたカメラによって撮影された画像の輪郭線に基づき特定された物体の範囲から所定数以上の特徴点を抽出する特徴点抽出部と、
第１時刻に撮影された画像の第１特徴点に対応する第２時刻に撮影された画像の第２特徴点を特定し、前記第１特徴点から第２特徴点までの第１フロー量と、前記第１時刻から前記第２時刻までに予測される前記第１特徴点の第２フロー量とを基にして、前記物体の範囲を修正する修正部と、
前記修正部に修正された前記物体の範囲に基づいて、前記カメラから前記物体までの距離および前記物体の幅を算出する算出部と、
を有することを特徴とする物体検出装置。
【０１０９】
（付記２）前記修正部は、前記第１フロー量と前記第２フロー量との差が閾値以上である場合に特徴点が物体の特徴点であると判定する処理を、前記物体の範囲に含まれる各特徴点に対して実行し、物体の特徴点を含む矩形領域に合わせて前記物体の範囲を修正することを特徴とする付記１に記載の物体検出装置。
【０１１０】
（付記３）前記修正部は、前記物体の範囲と、前記矩形領域との差が閾値以上である場合に、前記物体の範囲を前記矩形領域に合わせて修正することを特徴とする付記２に記載の物体検出装置。
【０１１１】
（付記４）前記特徴点抽出部は、前記物体の範囲に含まれる特徴点の数が所定数未満である場合に、特徴点の条件を緩めて再度特徴点を抽出することを特徴とする付記１、２または３に記載の物体検出装置。
【０１１２】
（付記５）コンピュータが実行する物体検出方法であって、
移動体に設置されたカメラによって撮影された画像の輪郭線に基づき特定された物体の範囲から所定数以上の特徴点を抽出し、
第１時刻に撮影された画像の第１特徴点に対応する第２時刻に撮影された画像の第２特徴点を特定し、前記第１特徴点から第２特徴点までの第１フロー量と、前記第１時刻から前記第２時刻までに予測される前記第１特徴点の第２フロー量とを基にして、前記物体の範囲を修正し、
前記修正部に修正された前記物体の範囲に基づいて、前記カメラから前記物体までの距離および前記物体の幅を算出する
処理を実行することを特徴とする物体検出方法。
【０１１３】
（付記６）前記修正する処理は、前記第１フロー量と前記第２フロー量との差が閾値以上である場合に特徴点が物体の特徴点であると判定する処理を、前記物体の範囲に含まれる各特徴点に対して実行し、物体の特徴点を含む矩形領域に合わせて前記物体の範囲を修正することを特徴とする付記５に記載の物体検出方法。
【０１１４】
（付記７）前記修正する処理は、前記物体の範囲と、前記矩形領域との差が閾値以上である場合に、前記物体の範囲を前記矩形領域に合わせて修正することを特徴とする付記６に記載の物体検出方法。
【０１１５】
（付記８）前記特徴点を抽出する処理は、前記物体の範囲に含まれる特徴点の数が所定数未満である場合に、特徴点の条件を緩めて再度特徴点を抽出することを特徴とする付記５、６または７に記載の物体検出方法。
【符号の説明】
【０１１６】
１００  物体検出装置
１１０  カメラ
１２０  入力部
１３０  表示部
１４０  記憶部
１４１  映像データ
１４２  特徴点テーブル
１４３  移動量データ
１５０  制御部
１５１  映像入力部
１５２  移動量検出部
１５３  輪郭線抽出部
１５４  立体物候補検出部
１５５  特徴点抽出部
１５６  フロー量算出部
１５７  修正部
１５８  出力部
【図１】
2018092354.tif 000003
【図２】
2018092354.tif 000004
【図３】
2018092354.tif 000005
【図４】
2018092354.tif 000006
【図５】
2018092354.tif 000007
【図６】
2018092354.tif 000008
【図７】
2018092354.tif 000009
【図８】
2018092354.tif 000010
【図９】
2018092354.tif 000011
【図１０】
2018092354.tif 000012
【図１１】
2018092354.tif 000013
【図１２】
2018092354.tif 000014
【図１３】
2018092354.tif 000015
【図１４】
2018092354.tif 000016
【図１５】
2018092354.tif 000017