(57)【要約】【課題】自己位置推定の精度を維持しつつ、対応点の選択処理を高速に行う画像処理装置を提供すること。【解決手段】本発明の画像処理装置は、撮像装置により連続的に撮像される画像のうち任意のフレームである第１フレームから、特徴点を抽出する抽出部と、前記第１フレームの次のフレームである第２フレームから、前記特徴点に対応する対応点を検索する検索部と、前記特徴点と前記対応点との第１類似度、及び前記特徴点と前記対応点の近傍に存在する近傍点との第２類似度を算出する算出部と、前記第１類似度が前記第２類似度より高い場合、前記対応点を選択することで、前記特徴点を追跡する選択部と、を有する。【選択図】図３
2017041141.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置により連続的に撮像される画像のうち任意のフレームである第１フレームから、特徴点を抽出する抽出部と、
前記第１フレームの次のフレームである第２フレームから、前記特徴点に対応する対応点を検索する検索部と、
前記特徴点と前記対応点との第１類似度、及び前記特徴点と前記対応点の近傍に存在する近傍点との第２類似度を算出する算出部と、
前記第１類似度が前記第２類似度より高い場合、前記対応点を選択することで、前記特徴点を追跡する選択部と、を有する、
画像処理装置。
【請求項２】
所定範囲に存在する追跡済みの対応点の中から、前記近傍点を検索する近傍点検索部と、をさらに有する、
請求項１に記載の画像処理装置。
【請求項３】
前記近傍点検索部により検索される追跡済みの対応点を記憶する記憶部と、を有し、
前記近傍点検索部は、前記記憶部に記憶された前記追跡済みの対応点の中から、前記近傍点を検索する、
請求項２に記載の画像処理装置。
【請求項４】
前記記憶部は、所定範囲に存在する追跡済みの対応点を記憶するラインバッファである、
請求項３に記載の画像処理装置。
【請求項５】
前記撮像装置は、移動体に固定される単眼カメラである、
請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記検索部は、ブロックマッチングにより、前記特徴点に対応する対応点を検索し、サブピクセル推定により、該対応点を補正する、
請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
撮像装置により連続的に撮像される画像のうち任意のフレームである第１フレームから、特徴点を抽出するステップと、
前記第１フレームの次のフレームである第２フレームから、前記特徴点に対応する対応点を検索するステップと、
前記特徴点と前記対応点との第１類似度、及び前記特徴点と前記対応点の近傍に存在する近傍点との第２類似度を算出するステップと、
前記第１類似度が前記第２類似度より高い場合、前記対応点を選択することで、前記特徴点を追跡するステップと、を有する、
画像処理方法。
【請求項８】
撮像装置により連続的に撮像される画像のうち任意のフレームである第１フレームから、特徴点を抽出するステップと、
前記第１フレームの次のフレームである第２フレームから、前記特徴点に対応する対応点を検索するステップと、
前記特徴点と前記対応点との第１類似度、及び前記特徴点と前記対応点の近傍に存在する近傍点との第２類似度を算出するステップと、
前記第１類似度が前記第２類似度より高い場合、前記対応点を選択することで、前記特徴点を追跡するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
自動車、ロボット、またはＵＡＶ（Ｕｎｍａｎｎｅｄ  ａｅｒｉａｌ  ｖｅｈｉｃｌｅ）等を、未知の環境下で自律運転させながら、画像認識を行う方法として、カメラ画像等の撮像画像から特徴点を抽出し、該特徴点を時系列で追跡することで、自己位置推定、地図構築を行うＶｉｓｕａｌＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）技術が知られている。
【０００３】
高精度な自己位置推定を行うためには、連続的に撮像される画像において、あるフレームから抽出した特徴点を、次のフレームにおける対応点として、正確に追跡できることが好ましい。例えば、特許文献１に記載の画像処理装置では、ステレオ画像を用いて、対応点の三次元座標を算出し、三次元座標の誤差範囲に基づいて、三次元計測への適否を判定し、適切な対応点を選択することで、撮影装置の位置や姿勢等の計測精度を高めている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の画像処理装置では、対応点を選択する際、三次元座標の算出、誤差範囲の算出、対応点適否判定、等の各種処理に時間を要し、処理速度が遅くなるという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、自己位置推定の精度を維持しつつ、対応点の選択処理を高速に行う画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の画像処理装置は、撮像装置により連続的に撮像される画像のうち任意のフレームである第１フレームから、特徴点を抽出する抽出部と、前記第１フレームの次のフレームである第２フレームから、前記特徴点に対応する対応点を検索する検索部と、前記特徴点と前記対応点との第１類似度、及び前記特徴点と前記対応点の近傍に存在する近傍点との第２類似度を算出する算出部と、前記第１類似度が前記第２類似度より高い場合、前記対応点を選択することで、前記特徴点を追跡する選択部と、を有する。
【発明の効果】
【０００７】
本発明によれば、自己位置推定の精度を維持しつつ、対応点の選択処理を高速に行う画像処理装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態に係る画像処理装置のハードウェア構成の一例を示す図である。
【図２】図２は、本実施の形態に係る画像処理装置が搭載される車両の一例を示す図である。
【図３】図３は、本実施の形態に係る画像処理装置の機能ブロック構成の一例を示す図である。
【図４】図４は、本実施の形態に係る記憶部の一例を示す図である。
【図５】図５は、本実施の形態に係る特徴点の追跡動作を説明する図である。
【図６】図６は、本実施の形態に係る特徴点の追跡動作及びサブピクセル推定について説明する図である。
【図７】図７は、本実施の形態に係る特徴点の追跡動作及びサブピクセル推定について説明する図である。
【図８】図８は、本実施の形態に係る画像処理装置の追跡処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
（画像処理装置のハードウェア構成）
図１は、実施の形態に係る画像処理装置のハードウェア構成の一例を示す図である。図１を参照しながら、画像処理装置１のハードウェア構成について説明する。
【００１０】
図１に示すように、画像処理装置１は、本体部２と、撮像装置１０と、信号変換装置２０と、追跡処理装置３０と、を備えた単眼のカメラ装置である。
【００１１】
本体部２は、画像処理装置１の筐体を構成するものであり、撮像装置１０を固定して支持し、信号変換装置２０及び追跡処理装置３０を内蔵する。
【００１２】
撮像装置１０は、前方の被写体を撮像してアナログの画像信号を生成する装置である。撮像装置１０は、撮像レンズ１１と、絞り１２と、画像センサ１３と、を備えている。
【００１３】
撮像レンズ１１は、入射した光を屈折させて物体の像を結像させるための光学素子である。絞り１２は、撮像レンズ１１を透過した光の一部を遮ることによって、画像センサ１３に到達する光の量を調整する部材である。画像センサ１３は、撮像レンズ１１および絞り１２を通過した光を電気的なアナログの画像信号に変換する固体撮像素子である。画像センサ１３は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅｓ）またはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）によって実現される。
【００１４】
信号変換装置２０は、撮像装置１０により生成されたアナログの画像信号を、デジタル形式の画像データに変換する装置である。信号変換装置２０は、ＣＤＳ（Ｃｏｒｒｅｌａｔｅｄ  Ｄｏｕｂｌｅ  Ｓａｍｐｌｉｎｇ）２１と、ＡＧＣ（Ａｕｔｏ  Ｇａｉｎ  Ｃｏｎｔｒｏｌ）２２と、ＡＤＣ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ）２３と、フレームメモリ２４と、を備えている。
【００１５】
ＣＤＳ２１は、画像センサ１３により生成されたアナログの画像信号に対して、相関二重サンプリング、横方向の微分フィルタ、および縦方向の平滑フィルタ等によりノイズを除去する。ＡＧＣ２２は、ＣＤＳ２１によってノイズが除去されたアナログの画像信号の強度を制御する利得制御を行う。ＡＤＣ２３は、ＡＧＣ２２によって利得制御されたアナログの画像信号をデジタル形式の画像データに変換する。フレームメモリ２４は、ＡＤＣ２３によって変換された画像データを記憶する。
【００１６】
追跡処理装置３０は、信号変換装置２０によって変換された画像データに対して、後述する特徴点を追跡する画像処理（以下、「追跡画像処理」と称する場合がある）を実行する装置である。追跡処理装置３０は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）３１と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３５と、バスライン３９と、を備えている。
【００１７】
ＦＰＧＡ３１は、追跡画像処理等を行う集積回路である。ＣＰＵ３２は、画像処理装置１の各機能を制御する。ＲＯＭ３３は、ＣＰＵ３２が画像処理装置１の各機能を制御するために実行する画像処理用プログラムを記憶している。ＲＡＭ３４は、ＣＰＵ３２やＦＰＧＡ３１のワークエリアとして使用される。Ｉ／Ｆ３５は、外部機器等と通信するためのインターフェースであり、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のインターフェースである。バスライン３９は、図１に示すように、ＦＰＧＡ３１、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４、およびＩ／Ｆ３５を互いに電気的に接続するアドレスバスおよびデータバス等である。
【００１８】
なお、追跡処理装置３０において、バスライン３９に接続される構成要素は、上述の装置に限定されるものではなく、追跡画像処理において生成される情報を継続的に保存しておく必要がある場合には、不揮発性記憶装置である補助記憶装置等がバスライン３９に接続されているものとしてもよい。補助記憶装置は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フラッシュメモリまたは光ディスク等の電気的、磁気的または光学的に記憶可能な記憶装置である。
【００１９】
また、上述の画像処理用プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させてもよい。この記録媒体は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等である。
【００２０】
（画像処理装置の設置例）
図２は、実施の形態に係る画像処理装置を車両に搭載した例を示す図である。図２を参照しながら、画像処理装置１の設置例について説明する。
【００２１】
図２のうち、図２（ａ）は、画像処理装置１を搭載した車両５０の側面概観図であり、図２（ｂ）は、車両５０の正面図である。
【００２２】
画像処理装置１の設置場所は、特に限定されるものではなく、例えば、画像処理装置１は、図２に示すように、自動車等である車両５０の居室空間のフロントガラス内側のバックミラー近傍に設置されても良い。また、例えば、画像処理装置１は、フロントガラスの歪み等を避けるため、車両５０の外側に設置されても良い。
【００２３】
画像処理装置１の撮像方向は、特に限定されるものではなく、例えば、前進方向、後進方向、左右方向、上下方向であっても良い。車両５０の移動に伴って変化する光景を、適切に撮像できる方向であれば良い。
【００２４】
なお、画像処理装置１は、車両の一例としての自動車だけでなく、車両の他の例として、自動二輪車、原動機付自転車、自転車、車椅子、または農業用の耕運機等に搭載するものとしてもよい。
【００２５】
（画像処理装置のブロック構成）
図３は、実施の形態に係る画像処理装置の機能ブロック構成の一例を示す図である。図３を参照しながら、画像処理装置１のブロック構成について説明する。
【００２６】
図３に示すように、画像処理装置１は、画像取得部３０１と、画像補正部３０２と、抽出部３０３と、検索部３０４と、算出部３０５と、近傍点検索部３０６と、判定部３０７と、選択部３０８と、第１記憶部３１１と、第２記憶部３１２と、第３記憶部３１３と、第４記憶部３１４と、を含む。
【００２７】
画像取得部３０１は、被写体を撮影し、アナログの画像信号を生成し、ノイズの除去等を行った後、デジタル形式の画像データ（以下、「フレーム」と称する場合がある）に変換し、画像補正部３０２へと出力する。また、画像取得部３０１は、取得したフレームを、第１記憶部３１１に記憶させる。画像取得部３０１は、図１に示す撮像装置１０及び信号変換装置２０によって実現される。
【００２８】
ここで、第１記憶部３１１は、画像取得部３０１により取得されたフレームを、一時的に記憶する。第１記憶部３１１は、例えば、図１に示すフレームメモリ２４によって実現される。
【００２９】
画像補正部３０２は、第１記憶部３１１から読み出したフレームに対して、幾何学変換等による補正により歪み等を除去し、抽出部３０３及び検索部３０４へと出力する。また、画像補正部３０２は、補正したフレームを、第２記憶部３１２に記憶させる。画像補正部１０２は、図１に示すＦＰＧＡ３１によって実現される。以下、撮像装置１０により連続的に撮像される画像のうち第１フレームを、「ｎ枚目のフレーム」と称し、第１フレームの次のフレームである第２フレームを、「（ｎ＋１）枚目のフレーム」と称する。
【００３０】
ここで、第２記憶部３１２は、画像補正部３０２により補正されたフレーム、例えば、ｎ枚目のフレーム、（ｎ＋１）枚目のフレーム、等を、一時的に記憶する。第２記憶部３１２は、例えば、図１に示すＲＡＭ３４によって実現される。
【００３１】
抽出部３０３は、画像補正部３０２により補正されたフレーム（例えば、ｎ枚目のフレーム）から、フレームに写る物体の角のように、際立って認識される画像上の点（特徴点）を抽出し、選択部３０８へと出力する。特徴点の抽出方法としては、例えば、ハリス（Ｈａｒｒｉｓ）またはモラベック（Ｍｏｒａｖｅｃ）等のコーナー検出アルゴリズム等が適用できる。抽出部３０３は、図１に示すＦＰＧＡ３１によって実現される。
【００３２】
ここで、第４記憶部３１４は、抽出部３０３により抽出された新規特徴点、追跡に成功した対応点、対応点情報、新規特徴点情報、追跡結果情報、等を、一時的に記憶する。第４記憶部３１４は、例えば、図１に示すＲＡＭ３４または補助記憶装置によって実現される。対応点情報とは、追跡に成功した対応点を特定するための情報であり、例えば、点を一意に決定するＩＤ、ｘｙ座標、追跡回数、等を含む情報が該当する。また、新規特徴点情報とは、新規特徴点を特定するための情報であり、例えば、点を一意に決定するＩＤ、ｘｙ座標、等を含む情報が該当する。また、追跡結果情報とは、対応点の追跡結果に関する情報であり、例えば、点を一意に決定するＩＤ、ｘｙ座標、追跡回数、追跡成功又は追跡失敗を示すフラグ、等を含む情報が該当する。
【００３３】
抽出部３０３による特徴点抽出動作は、画像処理装置１による追跡画像処理が実行されている間、原則として常時、実行される。これは、画像処理装置１が搭載される移動体である車両５０等において、撮像装置１０により連続的に撮像される画像には、常時、新規特徴点が現れるためである。
【００３４】
検索部３０４は、画像補正部３０２により補正されたフレーム（例えば、（ｎ＋１）枚目のフレーム）から、特定の特徴点に対応する対応点を検索し、算出部３０５、近傍点検索部３０６、第３記憶部３１３へと出力する。検索部３０４は、図１に示すＦＰＧＡ３１によって実現される。
【００３５】
具体的には、検索部３０４は、第４記憶部３１４から特定の特徴点を読み出し、第２記憶部３１２に記憶されるｎ枚目のフレームから、特定の特徴点を中心とする複数の周辺画素（例えば、３画素×３画素）を読み出し、テンプレートを作製する。テンプレートとは、小さな画像領域の一部であり、複数の画素により構成される。テンプレートとしては、例えば、Ｎ画素×Ｎ画素の矩形画像、縦横異なる画素数の矩形画像、または、円形画像、等が挙げられる。
【００３６】
更に、検索部３０４は、（ｎ＋１）枚目のフレームにおける所定の検索領域から、テンプレートと一致する画像を、ブロックマッチングにより検索する。この際、検索部３０４は、ｎ枚目のフレームにおけるテンプレートと、（ｎ＋１）枚目のフレームにおける所定の検索領域に含まれる画像（例えば、３画素×３画素の矩形画像）との類似度（どれだけ似ているか、という度合い）を算出する。そして、検索部３０４は、所定の検索領域に含まれる最も類似度の高い領域に対して、サブピクセル推定を行う。
【００３７】
ここで、ブロックマッチングとは、テンプレートと一致する画像が、所定の検索領域の中に存在するか否かを、該領域に対してテンプレートを走査（例えば、ラスタースキャン）させることで、順次検索する方法である。
【００３８】
また、サブピクセル推定とは、類似度がピークとなるように、画素位置を補間推定し、整数精度の画素位置を小数精度の画素位置に補正する方法である。推定方法としては、例えば、等角直線（１次）当てはめ、２次曲面当てはめ、等の方法が挙げられる。サブピクセル推定の具体的な方法については後述する。
【００３９】
なお、上述の「一致する」とは、完全に一致する場合のみならず、例えば、ブロックマッチングにより算出される類似度に対する閾値判定の結果、一致するものとみなせる程度に類似している場合を含む概念であるものとする。
【００４０】
算出部３０５は、（ｎ＋１）枚目のフレームにおけるサブピクセル推定後の対応点と、ｎ枚目のフレームにおける特定の特徴点との類似度（以下、「第１類似度」という）を算出し、第３記憶部３１３へと出力する。また、算出部３０５は、（ｎ＋１）枚目のフレームにおける追跡済みの対応点（後述する近傍点）と、ｎ枚目のフレームにおける特定の特徴点との類似度（以下、「第２類似度」という）を算出し、第３記憶部３１３へと出力する。第１類似度及び第２類似度は、小数精度の画素位置及び画素値に基づいて、算出される。特徴点の画素位置及び画素値は、例えば、バイリニア補間法等の画像補間法を用いて特定することができる。算出部３０５は、図１に示すＦＰＧＡ３１によって実現される。ここで、近傍点とは、追跡済みの対応点のうち、サブピクセル推定後の対応点の近傍に存在する点である。
【００４１】
近傍点検索部３０６は、第３記憶部３１３から、追跡済みの対応点を読み出し、（ｎ＋１）枚目のフレームにおける対応点（サブピクセル推定後の対応点）の近傍に存在する近傍点を検索し、判定部３０７へと出力する。近傍点検索部３０６は、図１に示すＦＰＧＡ３１によって実現される。また、近傍点検索部３０６は、所定範囲（例えば、サブピクセル推定後の対応点から、任意の数ライン上部の範囲）に存在する追跡済みの対応点の中から、近傍点を検索しても良い。近傍点を検索する範囲を、所定範囲に限定することで、近傍点検索処理の処理速度を速くすることができる。
【００４２】
ここで、第３記憶部３１３は、近傍点検索部３０６により検索される追跡済みの対応点、第１類似度、第２類似度、対応点情報等を、一時的に記憶する。第３記憶部３１３は、例えば、図１に示すＲＡＭ３４によって実現される。対応点情報とは、追跡済みの対応点を特定するための情報であり、例えば、点を一意に決定するＩＤ、ｘｙ座標、追跡回数、等を含む情報が該当する。
【００４３】
第３記憶部３１３としては、例えば、ラインバッファを用いることができ、ラインバッファは、所定範囲（例えば、サブピクセル推定後の対応点から、任意の数ライン上部の範囲）に存在する追跡済みの対応点のみを記憶しても良い。これによりメモリの増大を防ぐことができる。
【００４４】
判定部３０７は、近傍点検索部３０６により近傍点が検索された場合、第１類似度と第２類似度とを比較し、どちらの類似度が高いかを判定する。第１類似度が第２類似度より高い場合、判定部３０７は、追跡成功という判定結果を、選択部３０８へと出力する。第１類似度が第２類似度より低い場合、判定部３０７は、追跡失敗という判定結果を、選択部３０８へと出力する。判定部３０７は、図１に示すＦＰＧＡ３１によって実現される。
【００４５】
選択部３０８は、第１類似度が第２類似度より高い場合（追跡成功の場合）、検索部３０４により検索された対応点を選択し、第１類似度が第２類似度より低い場合（追跡失敗の場合）、検索部３０４により検索された対応点を選択しない。そして、選択部３０８は、追跡成功とされた類似度の高い対応点を、第４記憶部３１４に記憶させ、追跡失敗とされた類似度の低い対応点を消去する（第４記憶部３１４に記憶させない）。つまり、選択部３０８は、第１類似度が第２類似度より高い場合のみ、検索部３０４により検索された対応点を、追跡先の対応点として選択する。また、選択部３０８は、抽出部３０３により抽出された新規特徴点を、第４記憶部３１４に記憶させる。選択部３０８は、図１に示すＦＰＧＡ３１によって実現される。
【００４６】
ここで、図４を参照しながら、特徴点及び追跡先の対応点を第４記憶部３１４に記憶させる方法について説明する。
【００４７】
図４に示すように、選択部３０８は、一旦、メモリ５０１０、５０２０に、新規特徴点情報、追跡結果情報、等を記憶させ、該メモリを用いて、第４記憶部３１４に、新規特徴点、追跡に成功した対応点、等を記憶させる。
【００４８】
図４に示すメモリ５０１０は、抽出部３０３から出力されるフレーム（例えば、ｎ枚目のフレーム）における新規特徴点情報を記憶するメモリである。また、図４に示すメモリ５０２０は、判定部３０７から出力されるフレーム（例えば、ｎ枚目のフレーム）における追跡結果情報を記憶するメモリである。図４に示す第４記憶部３１４は、メモリ５０１０に記憶される新規特徴点情報、及びメモリ５０２０に記憶される追跡結果情報をマージして記憶するメモリである。
【００４９】
図４に示すメモリ５０１０におけるＣ００００、Ｃ０００１、・・・等は、新規特徴点情報（例えば、点を一意に決定するＩＤ、ｘｙ座標、等を含む情報）を示している。また、図４に示すメモリ５０２０におけるＦ００００、Ｆ０００１、・・・等は、追跡結果情報(例えば、点を一意に決定するＩＤ、ｘｙ座標、追跡回数、追跡成功又は追跡失敗を示すフラグ、等を含む情報）を示している。
【００５０】
例えば、Ｆ０００１、Ｆ０００２、Ｆ０００５が、追跡に失敗した対応点を表す情報である場合、選択部３０８は、追跡に成功した対応点を表す情報（Ｆ０００１、Ｆ０００２、Ｆ０００５を除く情報）を、第４記憶部３１４に記憶させ、空いたメモリ領域に、新規特徴点情報を記憶させる。更に、選択部３０８は、新規特徴点情報として、追跡に失敗した対応点を表す情報（Ｆ０００１、Ｆ０００２、Ｆ０００５）の近傍に存在する特徴点情報（Ｃ０００１、Ｃ０００２、Ｃ０００５）を選択し、第４記憶部３１４に記憶させる。
【００５１】
なお、メモリ５０１０及びメモリ５０２０は、複数の領域に分割されていても良い。例えば、選択部３０８は、画像上の任意の数ラインを、バンド領域として各メモリ領域に割当て、各々のバンド領域で得られる新規特徴点情報及び追跡結果情報を、割当てられたメモリ領域に記憶させても良い。これにより、特徴点の抽出及び追跡のために、新たにフレームバッファを用意することなく、ラインバッファのみで処理を行うことができる。
【００５２】
上述の画像処理装置１によれば、算出部３０５が、サブピクセル推定後の対応点を用いて、第１類似度及び第２類似度を算出し、選択部３０８が、第１類似度と第２類似度との比較結果に基づいて、対応点を選択する。従って、煩雑な処理を必要とせずに、特徴点の追跡精度を維持しつつ、対応点の選択処理を高速に行うことができる。
【００５３】
なお、図３に示した各機能部は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図３で独立した機能部として図示した複数の機能部を、１つの機能部として構成してもよい。一方、図３の１つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
【００５４】
また、上述の画像補正部３０２、抽出部３０３、検索部３０４、算出部３０５、近傍点検索部３０６、判定部３０７、選択部３０８は、ＦＰＧＡ３１等のハードウェア回路で構成されることに限定されるものではなく、少なくとも一部の機能部が図１に示すＣＰＵ３２で実行されるプログラムによって実現されるものとしてもよい。
【００５５】
（特徴点の追跡動作の詳細）
図５は、特徴点の追跡動作を説明する図である。図５を参照しながら、特徴点の追跡動作の詳細について説明する。
【００５６】
図５（ａ）に示すフレーム２０００は、画像処理装置１により撮像されたフレーム（例えば、ｎ枚目のフレーム）の一例である。図５（ｂ）に示すフレーム２０１０は、フレーム２０００の一部であり、図５（ｃ）に示すフレーム２０２０は、フレーム２０００の次のフレーム（例えば、（ｎ＋１）枚目のフレーム）の一部である。図５（ｄ）に示す説明図２０３０は、特徴点の追跡結果を説明する図である。なお、画像処理装置１が搭載される車両５０は、直進しているものとする。
【００５７】
図５（ａ）に示すフレーム２０００、図５（ｂ）に示すフレーム２０１０、図５（ｃ）に示すフレーム２０２０には、被写体である物体２１００、物体２２００がそれぞれ写っている。
【００５８】
抽出部３０３は、図５（ｂ）に示すように、フレーム２０１０から、特徴点２１０１及び特徴点２２０１を抽出する。
【００５９】
検索部３０４は、図５（ｂ）に示すように、特徴点２１０１を中心として、特徴点２１０１の周辺数画素を含むテンプレート２１１０を作製し、特徴点２２０１を中心として、特徴点２２０１の周辺数画素を含むテンプレート２２１０を作製する。
【００６０】
検索部３０４は、図５（ｃ）に示すように、フレーム２０２０における所定の検索領域２１３０から、テンプレート２１１０と一致する画像を、ブロックマッチングにより検索する。検索部３０４は、所定の検索領域２１３０に対して、左上から右下まで、テンプレート２１１０を移動させ、テンプレート２１１０と、所定の検索領域２１３０に含まれる画像との類似度を、順次算出し、最も類似度の高い領域を検索する。なお、所定の検索領域２１３０は、特に限定されるものではなく、例えば、（ｎ＋１）枚目のフレーム全体であっても良いし、（ｎ＋１）枚目のフレームを複数の領域に分割した分割領域であっても良い。
【００６１】
検索部３０４は、図５（ｃ）に示すように、テンプレート２１１０と一致する画像として、領域２１２０を検索し、テンプレート２２１０と一致する画像として、領域２２２０を探索する。この場合、領域２１２０の中心点が、対応点２１０２となり、領域２２２０の中心点が、対応点２２０２となる。更に、検索部３０４は、特徴点２１０１及び特徴点２２０１の追跡精度を高めるため、サブピクセル推定を行って、対応点２１０２及び対応点２２０２の位置を補正し、特徴点２１０１の追跡先を、サブピクセル推定後の対応点２１０２ｓとし、特徴点２２０１の追跡先を、サブピクセル推定後の対応点２２０２ｓとする。
【００６２】
算出部３０５は、特徴点２１０１、２２０１とサブピクセル推定後の対応点２１０２ｓ、２２０２ｓとの類似度（第１類似度）を算出する。また、算出部３０５は、特徴点２１０１、２２０１と対応点２１０２ｓ、２２０２ｓの近傍に存在する近傍点との類似度（第２類似度）を算出する。
【００６３】
判定部３０７は、第１類似度と第２類似度とを比較し、第１類似度が第２類似度より高い場合、追跡成功と判定し、第１類似度が第２類似度より低い場合、追跡失敗と判定する。
【００６４】
選択部３０８は、図５（ｄ）に示すように、特徴点２１０１の追跡先及び特徴点２２０１の追跡先が、追跡成功（第１類似度が第２類似度より高い）と判定された場合、対応点２１０２ｓ及び対応点２２０２ｓを選択する。この場合、特徴点２１０１から対応点２１０２ｓへと向かうベクトルが、図５（ｄ）に示すオプティカルフロー２１０３となり、特徴点２２０１から対応点２２０２ｓへと向かうベクトルが、図５（ｄ）に示すオプティカルフロー２２０３となる。このように、画像処理装置１は、近傍点より類似度の高いサブピクセル推定後の対応点を選択し、特徴点の追跡精度を高めることで、オプティカルフローに基づく自己位置推定の精度を維持することができる。
【００６５】
なお、図５では、特徴点２１０１から対応点２１０２ｓへの追跡動作、及び、特徴点２２０１から対応点２２０２ｓへの追跡動作を、一例として説明したが、追跡動作は、抽出部３０３により抽出される全ての特徴点に対して行われる。
【００６６】
（特徴点の追跡動作とサブピクセル推定の詳細）
図６は、特徴点の追跡動作及びサブピクセル推定の具体的な方法について、説明する図である。図６を参照しながら、特徴点の追跡動作及びサブピクセル推定の詳細について説明する。
【００６７】
図６（ａ）に示すフレーム３０１０は、画像処理装置１により撮像されたフレーム（例えば、ｎ枚目のフレーム）の一例である。図６（ｂ）に示すフレーム３０２０は、画像処理装置１により撮像されたフレーム（例えば、（ｎ＋１）枚目のフレーム）の一例である。図６（ｃ）に示すフレーム３０３０は、ブロックマッチングによる検索方法を説明する図である。図６（ｄ）に示すフレーム３０４０は、所定の検索領域に含まれる最も類似度の高い領域を示す図である。図６（ｅ）に示すグラフ３０５０は、類似度と画素との関係を示すグラフである。図６（ｅ）において、横軸は画素の位置を示し、縦軸は類似度を示している。縦軸の値が大きくなる程、類似度が小さくなることを示している。なお、図６（ｃ）及び図６（ｄ）の点線は、画素境界を示している。
【００６８】
抽出部３０３は、図６（ａ）に示すように、フレーム３０１０から、特徴点３１０１及び特徴点３２０１を抽出する。
【００６９】
検索部３０４は、図６（ａ）に示すように、特徴点３１０１を中心として、特徴点３１０１の周辺数画素を含むテンプレート３１１０を作製し、特徴点３２０１を中心として、特徴点３２０１の周辺数画素を含むテンプレート３２１０を作製する。
【００７０】
検索部３０４は、図６（ｂ）に示すように、フレーム３０１０において、テンプレート３１１０と一致する画像を検索するための、所定の検索領域３１３０を決定し、テンプレート３２１０と一致する画像を検索するための、所定の検索領域３２３０を決定する。検索領域３１３０は、特徴点３１０１の画素位置を中心として、任意に決定される所定の領域であり、検索領域３２３０は、特徴点３２０１の画素位置を中心として、任意に決定される所定の領域である。
【００７１】
検索部３０４は、図６（ｃ）に示すように、検索領域３１３０から、テンプレート３１１０と一致する画像を、類似度を用いたブロックマッチングにより検索する。まず、検索部３０４は、検索領域３１３０に対して、テンプレート３１１０を、左上から右方向へと移動させ、右端まで到達したところで、左下に移動させて、再び右方向へと動かし、右下に到達するまで移動させる。この際、検索部３０４は、テンプレート３１１０と、検索領域３１３０に含まれる画像との類似度を、順次算出する。そして、検索部３０４は、検索領域３１３０に含まれる最も類似度の高い領域（図６（ｃ）に示す領域３１２０）を検索し、領域３１２０の中心を、対応点３１０２とする。
【００７２】
検索部３０４は、図６（ｄ）に示すように、領域３１２０に対して、サブピクセル推定を行う。領域３１２０は、ｐ（０，０）、及びｐ（０，０）を中心とする周辺８画素、即ち、ｐ（−１，−１）、ｐ（０，−１）、ｐ（１，−１）、ｐ（−１，０）、ｐ（１，０）、ｐ（−１，１）、ｐ（０，１）、ｐ（１，１）を含む。サブピクセル推定前の対応点は、対応点３１０２であり、サブピクセル推定後の対応点は、対応点３１０３である。
【００７３】
検索部３０４は、まず、整数精度の画素単位で類似度計算を行うが、この場合、ブロックマッチングにより検索される対応点３１０２の画素位置が、特徴点３１０１の画素位置と正確に対応しない。従って、検索部３０４は、類似度がピークとなるように、整数精度の画素位置（対応点３１０２の画素位置）を、小数精度の画素位置（対応点３１０３の画素位置）に補正し、対応点３１０３の画素位置と、特徴点３１０１の画素位置とを、より正確に対応させる。
【００７４】
図６（ｅ）は、対応点３１０２を中心とする画素、及び対応点３１０２の周辺８画素を抜き出して、各画素に対応する類似度を計算し、計算結果を、サブピクセル推定のための二次曲線に当てはめた例である。図６（ｅ）に示すように、点Ａ１（対応点３１０３の画素位置に対応する）における類似度は、ピークを有しており、点Ｂ１（対応点３１０２の画素位置に対応する）における類似度は、点Ａ１における類似度より低いことがわかる。また、対応点３１０３の画素位置から離れる程、類似度が低くなることがわかる。つまり、検索部３０４がサブピクセル推定を行うことで、サブピクセル推定を行わない場合よりも、特徴点３１０１の追跡精度を、高めることができることがわかる。
【００７５】
（特徴点の追跡結果が近接する場合）
図７は、特徴点の追跡結果が近接する場合の、特徴点の追跡動作及びサブピクセル推定について説明する図である。図７を参照しながら、特徴点の追跡動作及びサブピクセル推定の概要について説明する。
【００７６】
図７（ａ）に示すフレーム３０１０は、画像処理装置１により撮像されたフレーム（例えば、ｎ枚目のフレーム）の一例である。図７（ｂ）に示すフレーム３０２０は、画像処理装置１により撮像されたフレーム（例えば、（ｎ＋１）枚目のフレーム）の一例である。図７（ｃ）に示すグラフ３０６０は、類似度と画素との関係を示すグラフである。図７（ｃ）において、横軸、縦軸は、図６（ｅ）と同様である。
【００７７】
抽出部３０３は、図７（ａ）に示すように、フレーム３０１０から、特徴点３１０１及び特徴点３２０１を抽出する。
【００７８】
検索部３０４は、図７（ａ）に示すように、特徴点３１０１を中心として、特徴点３１０１の周辺数画素を含むテンプレート３１１０を作製し、特徴点３２０１を中心として、特徴点３２０１の周辺数画素を含むテンプレート３２１０を作製する。
【００７９】
検索部３０４は、図７（ｂ）に示すように、検索領域３１３０から、特徴点３１０１の追跡先として、サブピクセル推定後の対応点３１０３を検索し、検索領域３２３０から、特徴点３２０１の追跡先として、サブピクセル推定後の対応点３２０３を検索する。
【００８０】
ここで、図７（ａ）と図７（ｂ）とを比較すると、特徴点３１０１と特徴点３２０１との距離が、対応点３１０３と対応点３２０３との距離より長く、特徴点の追跡結果が近接していることがわかる。従って、カメラが前進している場合または上下左右方向に動いている場合、特徴点３１０１の追跡結果または特徴点３２０１の追跡結果のいずれかが誤対応であり、カメラが後進している場合、対応点３１０３及び対応点３２０３が消失点へ向かうため、今後、特徴点の追跡が難しくなると考えられる。
【００８１】
このように、特徴点の追跡結果が近接する場合であっても、検索部３０４は、類似度の高い対応点を選択して、特徴点の追跡を続行する必要がある。
【００８２】
図７（ｃ）は、対応点３１０３の周辺画素における類似度の計算結果、及び対応点３２０３の周辺画素における類似度の計算結果を、サブピクセル推定のための二次曲線に当てはめた例である。
【００８３】
図７（ｃ）に示すように、点Ｂ２（図７（ｂ）に示す対応点３１０３の画素位置に対応する）における類似度は、ピークを有しており、点Ａ２（図７（ｂ）に示す対応点３１０２の画素位置に対応する）における類似度は、点Ｂ２における類似度より低いことがわかる。また、点Ｄ２（図７（ｂ）に示す対応点３２０３の画素位置に対応する）における類似度は、ピークを有しており、点Ｃ２（図７（ｂ）に示す対応点３２０２の画素位置に対応する）における類似度は、点Ｄ２における類似度より低いことがわかる。
【００８４】
サブピクセル推定前においては、対応点３２０２の類似度（点Ｃ２における類似度）の方が、対応点３１０２の類似度（点Ａ２における類似度）より高いが、サブピクセル推定後においては、対応点３１０３の類似度（点Ｂ２における類似度）の方が、対応点３２０３の類似度（点Ｄ２における類似度）より高くなる。即ち、サブピクセル推定前においては、特徴点３２０１の追跡精度の方が、特徴点３１０１の追跡精度より高いが、サブピクセル推定後においては、特徴点３１０１の追跡精度の方が、特徴点３２０１の追跡精度より高くなる。
【００８５】
算出部３０５は、このような、より追跡精度の高い特徴点３１０１と、サブピクセル推定後の対応点３１０３との類似度を算出する。
【００８６】
近傍点検索部３０６は、サブピクセル推定後の対応点３１０３の近傍に存在する近傍点を検索し、判定部３０７は、特徴点３１０１と対応点３１０３との類似度（第１類似度）が、特徴点３１０１と該近傍点との類似度（第２類似度）より高いか否かを判定する。
【００８７】
選択部３０８は、第１類似度が第２類似度より高い場合、特徴点３１０１の追跡先として、対応点３１０３を選択する。
【００８８】
画像処理装置１によれば、検索部３０４が、サブピクセル推定を行い、選択部３０８が、類似度の高いサブピクセル推定後の対応点を選択する。従って、特徴点の追跡結果が近接する場合であっても、検索部３０４は、類似度の高い対応点を選択して、特徴点の追跡を続行することができる。
【００８９】
（特徴点の追跡動作の流れ）
図８は、実施の形態に係る画像処理装置の追跡画像処理の動作の一例を示すフローチャートである。図８を参照しながら、画像処理装置１の追跡画像処理のうち、特徴点の追跡動作の流れを総括的に説明する。なお、予め、ｎ枚目のフレームにおいて特徴点が抽出されているものとする。
【００９０】
＜ステップＳ４０１＞
検索部３０４は、画像補正部３０２より、（ｎ＋１）枚目のフレームを取得する。
【００９１】
＜ステップＳ４０２＞
検索部３０４は、ステップＳ４０１における画像取得動作と並行して、特定の特徴点に対応する対応点を、（ｎ＋１）枚目のフレームから検索するために、第４記憶部３１４から、特定の特徴点に対応する対応点情報(例えば、点を一意に決定するＩＤ、ｘｙ座標、追跡回数、等を含む情報)を読み出す。
【００９２】
＜ステップＳ４０３＞
検索部３０４は、対応点情報に含まれるｘｙ座標を用いて、ｎ枚目のフレームが記憶される第２記憶部３１２から、特定の特徴点のｘｙ座標、及び特定の特徴点を中心とする複数の周辺画素を読み出し、テンプレートを作製する。
【００９３】
＜ステップＳ４０４＞
検索部３０４は、テンプレートを用いて、（ｎ＋１）枚目のフレームにおける所定の検索領域から、追跡先を検索する。
【００９４】
＜ステップＳ４０５＞
検索部３０４は、テンプレートと、所定の検索領域に含まれる画像との類似度を順次算出し、（ｎ＋１）枚目のフレームにおける所定の検索領域から、テンプレートと一致する画像を、ブロックマッチングにより検索する。
【００９５】
＜ステップＳ４０６＞
検索部３０４は、（ｎ＋１）枚目のフレームにおいて、追跡先が存在するか否かの判定を行う。追跡先が存在する場合（Ｙｅｓ）、検索部３０４は、ステップＳ４０７の処理を行う。追跡先が存在しない場合（Ｎｏ）、検索部３０４は、ステップＳ４１６の処理を行う。
【００９６】
＜ステップＳ４０７＞
検索部３０４は、所定の検索領域に含まれる最も類似度の高い領域に対して、サブピクセル推定を行い、追跡先の対応点の画素位置（整数精度の画素位置）を、類似度がピークとなる画素位置（小数精度の画素位置）に補正する。
【００９７】
＜ステップＳ４０８＞
算出部３０５は、ｎ枚目のフレームにおける特徴点と、（ｎ＋１）枚目のフレームにおけるサブピクセル推定後の対応点との類似度（第１類似度）を算出する（類似度再計算）。算出部３０５が、類似度再計算を行う際、サブピクセル推定後の対応点を用いることで、類似度計算の回数を有限回数に抑え、ハード化を容易にすることができる。
【００９８】
＜ステップＳ４０９＞
検索部３０４は、第３記憶部３１３に、第１類似度、第２類似度、近傍点検索部３０６により検索される追跡済みの対応点、等を記憶させる。
【００９９】
＜ステップＳ４１０＞
近傍点検索部３０６は、第３記憶部３１３から、追跡済みの対応点を読み出す。
【０１００】
＜ステップＳ４１１＞
近傍点検索部３０６は、追跡済みの対応点の中から、（ｎ＋１）枚目のフレームにおけるサブピクセル推定後の対応点の近傍に存在する近傍点を検索する。
【０１０１】
＜ステップＳ４１２＞
近傍点検索部３０６は、追跡済みの対応点の中に、近傍点が存在するか否かを判定する。近傍点が存在する場合（Ｙｅｓ）、近傍点検索部３０６は、ステップＳ４１３の処理を行う。近傍点が存在しない場合（Ｎｏ）、近傍点検索部３０６は、ステップＳ４１５の処理を行う。近傍点が存在するか否かの判定には、例えば、ベクトル（オプティカルフロー）の大きさ等を用いた閾値判定を行うものとすればよい。
【０１０２】
＜ステップＳ４１３＞
判定部３０７は、類似度判定を行い、特徴点と対応点との類似度（第１類似度）と、特徴点と近傍点との類似度（第２類似度）とを比較し、どちらの類似度が高いかを判定する。
【０１０３】
＜ステップＳ４１４＞
判定部３０７は、追跡処理が成功したか否かを判定する。追跡処理が成功した場合（Ｙｅｓ）、即ち、第１類似度が第２類似度より高い場合、判定部３０７は、ステップＳ４１５の処理を行う。追跡処理が失敗した場合（Ｎｏ）、即ち、第１類似度が第２類似度より低い場合、判定部３０７は、ステップＳ４１６の処理を行う。
【０１０４】
＜ステップＳ４１５＞
選択部３０８は、追跡成功とされた類似度の高い対応点を選択し、第４記憶部３１４に、追跡に成功した対応点を記憶させる。
【０１０５】
＜ステップＳ４１６＞
選択部３０８は、追跡失敗とされた類似度の低い対応点を消去し、後段の自己位置推定処理部に、追跡失敗の通知を行う（追跡失敗処理）。
【０１０６】
以上のステップＳ４０１〜Ｓ４１６で示される特徴点の追跡動作が繰り返されることによって、継続的に、特徴点の追跡が行われる。
【０１０７】
以上のように、画像処理装置１によれば、特徴点の追跡先として、近傍点より類似度の高い対応点を選択する。これにより、自己位置推定の精度を維持しつつ、対応点の選択処理を高速に行うことができる。また、画像処理装置１によれば、近傍点より類似度の低い対応点を消去する。これにより、不要な対応点を、記憶部に記憶させる必要が無いため、メモリを削減することもできる。
【０１０８】
なお、上述の実施の形態では、画像処理装置１が単眼のカメラ装置であるものとして説明した。単眼のカメラ装置の場合、カメラ画像同士の同期が必要ないため、画像処理装置１の構成を、簡易にすることができる。しかしながら、単眼のカメラ装置に限定されるものではなく、画像処理装置１は、例えば、２つのカメラを備えるステレオカメラであってもよい。この場合、２つのカメラのうち一方のカメラで撮像したフレームについて、上述の追跡画像処理を実行するものとすればよい。
【０１０９】
なお、上述の画像補正部３０２、抽出部３０３、検索部３０４、算出部３０５、近傍点検索部３０６、判定部３０７、選択部３０８のうち少なくともいずれかがプログラムで実現される場合、画像処理装置１で実行されるそのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−ＲまたはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供される。
【０１１０】
また、上述の実施の形態に係る画像処理装置１で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の実施の形態に係る画像処理装置１で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、上述のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１１】
また、上述の実施の形態に係る画像処理装置１で実行されるプログラムは、上述した画像補正部３０２、抽出部３０３、検索部３０４、算出部３０５、近傍点検索部３０６、判定部３０７、選択部３０８のうち少なくともいずれかを含むモジュール構成となっていてもよく、実際のハードウェアとしてはＣＰＵ３２が上述の記憶媒体からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置上にロードされて生成されるようになっている。
【符号の説明】
【０１１２】
１  画像処理装置
１０  撮像装置
３０３  抽出部
３０４  検索部
３０５  算出部
３０６  近傍点検索部
３０８  選択部
３１３  記憶部
【先行技術文献】
【特許文献】
【０１１３】
【特許文献１】特許第５３６２１８９号公報
【図１】
2017041141.tif 000003
【図２】
2017041141.tif 000004
【図３】
2017041141.tif 000005
【図４】
2017041141.tif 000006
【図５】
2017041141.tif 000007
【図６】
2017041141.tif 000008
【図７】
2017041141.tif 000009
【図８】
2017041141.tif 000010