(57)【要約】【課題】複雑なカメラの動きに対しても高い計算精度、低い計算負荷での対応点探索を可能とする画像処理装置を提供する。【解決手段】画像処理装置は、時系列の撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出する特徴点抽出手段と、第１の特徴点に対応する被写体までの第１の被写体距離、第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得する距離演算手段と、第１の被写体距離が第２の被写体距離以下である場合に、第１の特徴点に対応する第１の対応点を特定するための計算精度が第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定する探索パラメータ決定手段と、第１、第２の探索パラメータに基づいて第１、第２の対応点をそれぞれ探索する対応点探索手段とを含む。【選択図】図１
2019185404.tif 000002
【特許請求の範囲】
【請求項１】
時系列の撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出する特徴点抽出手段と、
前記第１の特徴点に対応する被写体までの第１の被写体距離、前記第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得する距離演算手段と、
前記第１の被写体距離が前記第２の被写体距離以下である場合に、前記第１の特徴点に対応する第１の対応点を特定するための計算精度が前記第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、前記第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定する探索パラメータ決定手段と、
前記第１、第２の探索パラメータに基づいて前記第１、第２の対応点をそれぞれ探索する対応点探索手段と
を備える画像処理装置。
【請求項２】
前記探索パラメータ決定手段は、前記第１の対応点を探索するための第１の探索フレーム間隔が、前記第２の対応点を探索するための第２の探索フレーム間隔以下となるように、前記第１、第２の探索フレーム間隔を決定するように構成された、請求項１に記載の画像処理装置。
【請求項３】
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｆ１がＦ２×Ｚ１／Ｚ２を下回らない最小の整数となるように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項２に記載の画像処理装置。
【請求項４】
前記第１、第２の特徴点の第１、第２の動きベクトルをそれぞれ算出する動きベクトル演算手段をさらに備え、
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の動きベクトルの大きさをそれぞれＶ１、Ｖ２とし、前記第１、第２の対応点の探索範囲の大きさの１／２をＳとした場合に、前記探索パラメータ決定手段は、Ｆ１≦Ｆ２、Ｆ１≦Ｓ／Ｖ１、かつＦ２≦Ｓ／Ｖ２を満たすように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項２に記載の画像処理装置。
【請求項５】
前記探索パラメータ決定手段は、Ｖ１≧Ｖ２である場合には、Ｆ１がＳ／Ｖ１を下回らない最小の整数となりかつＦ２がＳ／Ｖ２を下回らない最小の整数となるように前記第１、第２の探索フレーム間隔を決定し、Ｖ１＜Ｖ２である場合には、Ｆ１、Ｆ２がＳ／Ｖ２を下回らない最小の整数となるように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項４に記載の画像処理装置。
【請求項６】
前記探索パラメータ決定手段は、Ｖ１＜Ｖ２である場合に、Ｆ１がＦ２×Ｚ１／Ｚ２を下回らない最小の整数となるように前記第１の探索フレーム間隔を決定するように構成された、請求項４に記載の画像処理装置。
【請求項７】
前記特徴点抽出手段は、探索フレーム間隔が決定された特徴点が存在しない場合には任意の２つの特徴点を第１、第２の注目特徴点として抽出し、探索フレーム間隔が決定された特徴点が存在する場合には探索フレーム間隔が決定されていない特徴点を第１の注目特徴点として抽出するとともに前記探索フレーム間隔が決定された特徴点の中から前記第１の注目特徴点に対して最小の被写体距離を有する特徴点を第２の注目特徴点として抽出するように構成され、
前記探索パラメータ決定手段は、前記第１、第２の注目特徴点に対する探索フレーム間隔の決定を、前記第１、第２の特徴点に対する前記第１、第２の探索フレーム間隔の決定と同様に行うように構成された、請求項２から６のいずれか一項に記載の画像処理装置。
【請求項８】
前記撮影画像を被写体距離の範囲に応じた複数の層に分類する層分割手段をさらに備え、
前記探索パラメータ決定手段は、前記第１の特徴点が含まれる層に属する対応点を探索するための第１の探索フレーム間隔が、前記第２の特徴点が含まれる層に属する対応点を探索するための第２の探索フレーム間隔以下となるように、前記第１、第２の探索フレーム間隔を決定するように構成された、請求項１に記載の画像処理装置。
【請求項９】
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｆ１がＦ２×Ｚ１／Ｚ２を下回らない最小の整数となるように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項８に記載の画像処理装置。
【請求項１０】
前記第１、第２の特徴点の第１、第２の動きベクトルをそれぞれ算出する動きベクトル演算手段をさらに備え、
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の動きベクトルの大きさをそれぞれＶ１、Ｖ２とし、前記第１、第２の対応点の探索範囲の大きさの１／２をＳとした場合に、前記探索パラメータ決定手段は、Ｆ１≦Ｆ２、Ｆ１≦Ｓ／Ｖ１、かつＦ２≦Ｓ／Ｖ２を満たすように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項８に記載の画像処理装置。
【請求項１１】
前記対応点探索手段は、対応点の探索が実行されていないフレームの対応点を、対応点の探索が実行されたフレームにおける対応点を用いて決定するように構成された、請求項１から１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記探索パラメータ決定手段は、前記第１の特徴点に対する第１の探索範囲が前記第２の特徴点に対する第２の探索範囲以上となるように前記第１、第２の探索範囲を決定するように構成された、請求項１に記載の画像処理装置。
【請求項１３】
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｓ１＝Ｓ２×Ｚ２／Ｚ１を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項１２に記載の画像処理装置。
【請求項１４】
前記第１、第２の特徴点の第１、第２の動きベクトルをそれぞれ算出する動きベクトル演算手段をさらに備え、
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の動きベクトルの大きさをそれぞれＶ１、Ｖ２とし、前記第１、第２の対応点の探索フレーム間隔をＦとした場合に、前記探索パラメータ決定手段は、Ｓ１≧Ｓ２、Ｓ１≧Ｆ×Ｖ１、かつＳ２≧Ｆ×Ｖ２を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項１２に記載の画像処理装置。
【請求項１５】
前記探索パラメータ決定手段は、Ｖ１≧Ｖ２である場合にはＳ１＝Ｆ×Ｖ１かつＳ２＝Ｆ×Ｖ２となるように前記第１、第２の探索範囲を決定し、Ｖ＜Ｖ２である場合にはＳ１＝Ｓ２＝Ｆ×Ｖ２となるように前記第１、第２の探索範囲を決定するように構成された、請求項１４に記載の画像処理装置。
【請求項１６】
前記探索パラメータ決定手段は、Ｖ１＜Ｖ２である場合に、Ｓ＝Ｓ２×Ｚ２／Ｚ１となるように前記第１、第２の探索範囲を決定するように構成された、請求項１４に記載の画像処理装置。
【請求項１７】
前記特徴点抽出手段は、探索範囲が決定された特徴点が存在しない場合には任意の２つの特徴点を第１、第２の注目特徴点として抽出し、探索範囲が決定された特徴点が存在する場合には探索範囲が決定されていない特徴点を第１の注目特徴点として抽出するとともに前記探索範囲が決定された特徴点の中から前記第１の注目特徴点に対して最小の前記被写体距離を有する特徴点を第２の注目特徴点として抽出するように構成され、
前記探索パラメータ決定手段は、前記第１、第２の注目特徴点に対する探索範囲の決定を、前記第１、第２の特徴点に対する前記第１、第２の探索範囲の決定と同様に行うように構成された、請求項１２から１６のいずれか一項に記載の画像処理装置。
【請求項１８】
前記撮影画像を被写体距離の範囲に応じた複数の層に分類する層分割手段をさらに備え、
前記探索パラメータ決定手段は、前記第１の特徴点が含まれる層に属する対応点に対する第１の探索範囲が、前記第２の特徴点が含まれる層に属する対応点に対する第２の探索範囲以上となるように、前記第１、第２の探索範囲を決定するように構成された、請求項１に記載の画像処理装置。
【請求項１９】
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｓ１＝Ｓ２×Ｚ２／Ｚ１を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項１８に記載の画像処理装置。
【請求項２０】
前記第１、第２の特徴点の第１、第２の動きベクトルをそれぞれ算出する動きベクトル演算手段をさらに備え、
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の動きベクトルの大きさをそれぞれＶ１、Ｖ２とし、前記第１、第２の対応点の探索フレーム間隔をＦとした場合に、前記探索パラメータ決定手段は、Ｓ１≧Ｓ２、Ｓ１≧Ｆ×Ｖ１、かつＳ２≧Ｆ×Ｖ２を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項１８に記載の画像処理装置。
【請求項２１】
前記第１、第２の特徴点が抽出された第１の時刻における撮像手段の第１の姿勢情報並びに前記第１、第２の対応点が特定される第２の時刻における前記撮像手段の第２の姿勢情報が入力され、前記第１の姿勢情報、前記第２の姿勢情報から前記撮像手段の姿勢変化を特定し、前記姿勢変化に基づいて前記第１の特徴点に対する前記第２の時刻での前記撮影画像における第１の位置、前記第２の特徴点に対する前記第２の時刻での前記撮影画像における第２の位置を計算するベクトル演算手段をさらに備え、
前記探索パラメータ決定手段は、前記第１の対応点を探索するための第１の探索フレーム間隔が、前記第２の対応点を探索するための第２の探索フレーム間隔以下となるように、前記第１、第２の探索フレーム間隔を決定するように構成され、
前記対応点探索手段が、前記第１、第２の位置を開始点として、前記第１、第２の探索フレーム間隔に基づいて前記第１、第２の対応点をそれぞれ探索するように構成された、請求項１に記載の画像処理装置。
【請求項２２】
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の対応点の探索範囲の大きさの１／２をＳとし、前記第２の時刻の前記撮影画像における前記第１、第２の対応点と前記第１、第２の位置との距離をそれぞれＶ１、Ｖ２とした場合に、
前記探索パラメータ決定手段は、Ｆ１≦Ｓ／Ｖ１、かつＦ２≦Ｓ／Ｖ２を満たすように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項２１に記載の画像処理装置。
【請求項２３】
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の対応点の探索範囲の大きさの１／２をＳとし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｆ２≦Ｓ／Ｖ２、かつＦ１≦Ｆ２×Ｚ１／Ｚ２を満たすように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項２１に記載の画像処理装置。
【請求項２４】
前記特徴点抽出手段は、探索フレーム間隔が決定された特徴点が存在しない場合には最大の前記被写体距離を有する２つの特徴点を第１、第２の注目特徴点として抽出し、探索フレーム間隔が決定された特徴点が存在する場合には探索フレーム間隔が決定されていない特徴点を第１の注目特徴点として抽出するとともに最大の前記被写体距離を有する特徴点を第２の注目特徴点として抽出するように構成され、
前記探索パラメータ決定手段は、前記第１、第２の注目特徴点に対する探索フレーム間隔の決定を、前記第１、第２の特徴点に対する前記第１、第２の探索フレーム間隔の決定と同様に行うように構成された、請求項２１から２３のいずれか一項に記載の画像処理装置。
【請求項２５】
前記第１、第２の特徴点が抽出された第１の時刻における撮像手段の第１の姿勢情報並びに前記第１、第２の対応点が特定される第２の時刻における前記撮像手段の第２の姿勢情報が入力され、前記第１の姿勢情報、前記第２の姿勢情報から前記撮像手段の姿勢変化を特定し、前記姿勢変化に基づいて前記第１の特徴点に対する前記第２の時刻での前記撮影画像における第１の位置、前記第２の特徴点に対する前記第２の時刻での前記撮影画像における第２の位置を計算するベクトル演算手段と、
前記撮影画像を被写体距離の範囲に応じた複数の層に分類する層分割手段と
をさらに備え、
前記探索パラメータ決定手段は、前記第１の特徴点が含まれる層に属する対応点を探索するための第１の探索フレーム間隔が、前記第２の特徴点が含まれる層に属する対応点を探索するための第２の探索フレーム間隔以下となるように、前記第１、第２の探索フレーム間隔を決定するように構成され、
前記対応点探索手段が、前記第１、第２の位置を開始点として、前記第１、第２の探索フレーム間隔に基づいて前記第１、第２の対応点をそれぞれ探索するように構成された、請求項１に記載の画像処理装置。
【請求項２６】
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の対応点の探索範囲の大きさの１／２をＳとし、前記第２の時刻の前記撮影画像における前記第１、第２の対応点と前記第１、第２の位置との距離をそれぞれＶ１、Ｖ２とした場合に、
前記探索パラメータ決定手段は、Ｆ１≦Ｓ／Ｖ１、かつＦ２≦Ｓ／Ｖ２を満たすように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項２５に記載の画像処理装置。
【請求項２７】
前記第１、第２の探索フレーム間隔をそれぞれＦ１、Ｆ２とし、前記第１、第２の対応点の探索範囲の大きさの１／２をＳとし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｆ２≦Ｓ／Ｖ２、かつＦ１≦Ｆ２×Ｚ１／Ｚ２を満たすように前記第１、第２の探索フレーム間隔を決定するように構成された、請求項２５に記載の画像処理装置。
【請求項２８】
前記第１、第２の特徴点が抽出された第１の時刻における撮像手段の第１の姿勢情報並びに前記第１、第２の対応点が特定される第２の時刻における前記撮像手段の第２の姿勢情報が入力され、前記第１の姿勢情報、前記第２の姿勢情報から前記撮像手段の姿勢変化を特定し、前記姿勢変化に基づいて前記第１の特徴点に対する前記第２の時刻での前記撮影画像における第１の位置、前記第２の特徴点に対する前記第２の時刻での前記撮影画像における第２の位置を計算するベクトル演算手段をさらに備え、
前記探索パラメータ決定手段は、前記第１の特徴点に対する第１の探索範囲が前記第２の特徴点に対する第２の探索範囲以上となるように前記第１、第２の探索範囲を決定するように構成された、
前記対応点探索手段は、前記第１、第２の位置を開始点として、前記第１、第２の探索範囲に基づいて前記第１、第２の対応点をそれぞれ探索するように構成された、請求項１に記載の画像処理装置。
【請求項２９】
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の対応点の探索フレーム間隔をＦとし、前記第２の時刻の前記撮影画像における前記第１、第２の対応点と前記第１、第２の位置との距離をそれぞれＶ１、Ｖ２とした場合に、
前記探索パラメータ決定手段は、Ｓ１≦Ｆ×Ｖ１、かつＳ２≦Ｆ×Ｖ２を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項２８に記載の画像処理装置。
【請求項３０】
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の対応点の探索フレーム間隔をＦとし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｓ２≧Ｆ×Ｖ２、かつＳ１≦Ｓ２×Ｚ２／Ｚ１を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項２８に記載の画像処理装置。
【請求項３１】
前記特徴点抽出手段は、探索範囲が決定された特徴点が存在しない場合には最大の前記被写体距離を有する２つの特徴点を第１、第２の注目特徴点として抽出し、探索範囲が決定された特徴点が存在する場合には探索範囲が決定されていない特徴点を第１の注目特徴点として抽出するとともに最大の前記被写体距離を有する特徴点を第２の注目特徴点として抽出するように構成され、
前記探索パラメータ決定手段は、前記第１、第２の注目特徴点に対する探索範囲の決定を、前記第１、第２の特徴点に対する前記第１、第２の探索範囲の決定と同様に行うように構成された、請求項２８から３０のいずれか一項に記載の画像処理装置。
【請求項３２】
前記第１、第２の特徴点が抽出された第１の時刻における撮像手段の第１の姿勢情報並びに前記第１、第２の対応点が特定される第２の時刻における前記撮像手段の第２の姿勢情報が入力され、前記第１の姿勢情報、前記第２の姿勢情報から前記撮像手段の姿勢変化を特定し、前記姿勢変化に基づいて前記第１の特徴点に対する前記第２の時刻での前記撮影画像における第１の位置、前記第２の特徴点に対する前記第２の時刻での前記撮影画像における第２の位置を計算するベクトル演算手段と、
前記撮影画像を被写体距離の範囲に応じた複数の層に分類する層分割手段と
をさらに備え、
前記探索パラメータ決定手段は、前記第１の特徴点が含まれる層に属する対応点に対する第１の探索範囲が、前記第２の特徴点が含まれる層に属する対応点に対する第２の探索範囲以上となるように、前記第１、第２の探索範囲を決定するように構成され、
前記対応点探索手段は、前記第１、第２の位置を開始点として、前記第１、第２の探索範囲に基づいて前記第１、第２の対応点をそれぞれ探索するように構成された、請求項１に記載の画像処理装置。
【請求項３３】
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の対応点の探索フレーム間隔をＦとし、前記第２の時刻の前記撮影画像における前記第１、第２の対応点と前記第１、第２の位置との距離をそれぞれＶ１、Ｖ２とした場合に、
前記探索パラメータ決定手段は、Ｓ１≦Ｆ×Ｖ１、かつＳ２≦Ｆ×Ｖ２を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項３２に記載の画像処理装置。
【請求項３４】
前記第１、第２の探索範囲をそれぞれＳ１、Ｓ２とし、前記第１、第２の対応点の探索フレーム間隔をＦとし、前記第１、第２の被写体距離をそれぞれＺ１、Ｚ２とした場合に、
前記探索パラメータ決定手段は、Ｓ２≧Ｆ×Ｖ２、かつＳ１≦Ｓ２×Ｚ２／Ｚ１を満たすように前記第１、第２の探索範囲を決定するように構成された、請求項３２に記載の画像処理装置。
【請求項３５】
時系列の前記撮影画像を取得する撮像部と、
請求項１から３４のいずれか一項に記載の画像処理装置と
を備える撮像装置。
【請求項３６】
時系列の前記撮影画像を取得する撮像部と、
請求項１から３４のいずれか一項に記載の画像処理装置と、
前記撮影画像上の所定の特徴点の位置に基づいて前記撮影画像を撮影した前記撮像部の位置姿勢を推定し、又は前記撮影画像上の前記特徴点の位置に基づいて前記特徴点に対応する被写体位置を推定する位置姿勢推定手段と
を備える撮像装置。
【請求項３７】
前記特徴点は、対応点探索が実行されたフレームに含まれる特徴点である、請求項３６に記載の撮像装置。
【請求項３８】
撮像手段によって取得される撮影画像に対して画像処理装置によって実行される画像処理方法であって、
前記撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出するステップと、
前記第１の特徴点に対応する被写体までの第１の被写体距離、前記第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得するステップと、
前記第１の被写体距離が前記第２の被写体距離以下である場合に、前記第１の特徴点に対応する第１の対応点を特定するための計算精度が前記第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、前記第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定するステップと、
前記第１、第２の探索パラメータに基づいて前記第１、第２の対応点をそれぞれ探索するステップと
を備える画像処理方法。
【請求項３９】
コンピュータに、
撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出するステップと、
前記第１の特徴点に対応する被写体までの第１の被写体距離、前記第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得するステップと、
前記第１の被写体距離が前記第２の被写体距離以下である場合に、前記第１の特徴点に対応する第１の対応点を特定するための計算精度が前記第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、前記第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定するステップと、
前記第１、第２の探索パラメータに基づいて前記第１、第２の対応点をそれぞれ探索するステップと
を実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
動画における被写体像の動きを追跡する技術は、広範な分野に展開されている。例えば、動画圧縮技術においては、被写体像の動きの大きさが算出され、動きが小さい被写体の像に対してはフレーム間予測が用いられる。また、カメラの手振れ補正技術においては、被写体像の動きベクトルが算出され、この動きベクトルに基づいて手振れの方向及び大きさが算出される。さらに、カメラの自己位置姿勢を推定する技術においては、被写体像の動きが追跡され、カメラの位置及び姿勢の変化が算出される。これらの技術は、画像上で決定された複数の特徴点に対してフレームごとの対応点を画像上で逐次探索することによって被写体の動きを追跡するため、その計算負荷の増加が問題となる。特に、カメラ、スマートフォンなどに含まれる画像処理装置の処理能力は一般に低く、そのような画像処理装置では撮影と同時に特徴点の動きを追跡することができない場合がある。
【０００３】
ここで、特徴点の動きの追跡に伴う計算負荷を軽減する方法が検討されている。例えば、特許文献１は、被写体像の動きベクトルが大きいものに対しては動きベクトル計算のためのフレーム間隔を短くする一方で、動きベクトルが小さいものに対しては動きベクトル計算のためのフレーム間隔を長くする技術を開示する。これにより、動きベクトルの計算負荷が軽減され得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９１９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術を用いる画像処理装置は、被写体の動きによって起こる被写体像の動きを高い精度で追跡し得るものの、カメラの動きによって起こる被写体像の動きを追跡できない場合がある。このような場合、短いフレーム間隔で被写体像の動きを追跡しなければならず、従来技術においては、高い計算精度と低い計算負荷とを両立できないという問題があった。
【０００６】
本発明は、複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索を可能とする画像処理装置、撮像装置、画像処理方法及び画像処理プログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によると、時系列の撮影画像を取得して該撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出する特徴点抽出手段と、前記第１の特徴点に対応する被写体までの第１の被写体距離、前記第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得する距離演算手段と、前記第１の被写体距離が前記第２の被写体距離以下である場合に、前記第１の特徴点に対応する第１の対応点を特定するための計算精度が前記第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、前記第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定する探索パラメータ決定手段と、前記第１、第２の探索パラメータに基づいて前記第１、第２の対応点をそれぞれ探索する対応点探索手段とを備える画像処理装置が提供される。
【０００８】
本発明の他の態様によると、撮像手段によって取得される撮影画像に対して画像処理装置によって実行される画像処理方法であって、前記撮影画像を取得して該撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出するステップと、前記第１の特徴点に対応する被写体までの第１の被写体距離、前記第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得するステップと、前記第１の被写体距離が前記第２の被写体距離以下である場合に、前記第１の特徴点に対応する第１の対応点を特定するための計算精度が前記第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、前記第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定するステップと、前記第１、第２の探索パラメータに基づいて前記第１、第２の対応点をそれぞれ探索するステップとを備える画像処理方法が提供される。
【０００９】
本発明の他の態様によると、コンピュータに、撮影画像から少なくとも第１、第２の特徴点を含む特徴点を抽出するステップと、前記第１の特徴点に対応する被写体までの第１の被写体距離、前記第２の特徴点に対応する被写体までの第２の被写体距離に関する距離情報を取得するステップと、前記第１の被写体距離が前記第２の被写体距離以下である場合に、前記第１の特徴点に対応する第１の対応点を特定するための計算精度が前記第２の特徴点に対応する第２の対応点を特定するための計算精度よりも相対的に高くなるように、前記第１、第２の対応点をそれぞれ特定するための第１、第２の探索パラメータを決定するステップと、前記第１、第２の探索パラメータに基づいて前記第１、第２の対応点をそれぞれ探索するステップとを実行させる画像処理プログラムが提供される。
【発明の効果】
【００１０】
本発明によると、複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索を可能とする画像処理装置、撮像装置、画像処理方法及び画像処理プログラムが実現される。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る撮像装置の機能的構成を模式的に示すブロック図である。
【図２】本発明の第１実施形態に係る画像処理方法を示すフローチャートである。
【図３】本発明の第１実施形態に係る画像処理方法を示すフローチャートである。
【図４】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図５】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図６】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図７】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図８】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図９】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図１０】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図１１】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図１２】本発明の第２実施形態に係る画像処理装置の機能的構成を模式的に示すブロック図である。
【図１３】本発明の第２実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図１４】本発明の第２実施形態に係る画像処理方法を示すフローチャートである。
【図１５】本発明の第２実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図１６】本発明の第３実施形態に係る画像処理装置の機能的構成を模式的に示すブロック図である。
【図１７】本発明の第３実施形態に係る画像処理方法を示すフローチャートである。
【図１８】本発明の第３実施形態に係る画像処理方法を示すフローチャートである。
【図１９】本発明の第４実施形態に係る画像処理装置の機能的構成を模式的に示すブロック図である。
【図２０】本発明の第４実施形態に係る画像処理方法を示すフローチャートである。
【図２１】本発明の第５実施形態に係る撮像装置の機能的構成を模式的に示すブロック図である。
【図２２】本発明の第５実施形態に係る画像処理方法を示すフローチャートである。
【図２３】本発明の第５実施形態に係る画像処理方法を示すフローチャートである。
【図２４】本発明の第５実施形態に係る画像処理方法を示すフローチャートである。
【図２５】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図２６】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図２７】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図２８】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図２９】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図３０】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図３１】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図３２】本発明の種々の実施形態に係る画像処理装置における対応点探索の原理を説明する図である。
【図３３】本発明の第６実施形態に係る画像処理装置の機能的構成を模式的に示すブロック図である。
【図３４】本発明の第６実施形態に係る画像処理方法を示すフローチャートである。
【図３５】本発明の第７実施形態に係る画像処理装置の機能的構成を模式的に示すブロック図である。
【図３６】本発明の第７実施形態に係る画像処理方法を示すフローチャートである。
【図３７】本発明の第７実施形態に係る画像処理方法を示すフローチャートである。
【図３８】本発明の第８実施形態に係る画像処理装置の機能的構成を模式的に示すブロック図である。
【図３９】本発明の第８実施形態に係る画像処理方法を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態を説明する。なお、本開示の図面を通じて、同様の構成には同じ符号を付し、その説明を省略又は簡略化する。
【００１３】
＜第１実施形態＞
図１乃至図１１を参照して、本発明の第１実施形態について説明する。図１は、本実施形態に係る撮像装置１００の機能的構成を模式的に示すブロック図である。撮像装置１００は、例えば、コンパクトデジタルカメラ、一眼レフカメラ、カメラ付きスマートフォン、車載カメラなどであり、本発明を実現するための構成を備える。撮像装置１００は、撮像部１０１、測距部１０４、画像処理部１１０、位置姿勢推定部１１８、表示部１２０を備える。画像処理部１１０は、記憶部１１１、特徴点抽出部１１２、動きベクトル演算部１１３、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６を含む。例えば、画像処理部１１０、位置姿勢推定部１１８が、画像処理装置を構成する。
【００１４】
撮像部１０１は、レンズ１０２、撮像素子１０３を備え、観賞用又は表示用の画像を撮影する撮像手段として機能する。レンズ１０２は、被写体から放出された光を集光し、撮像素子１０３上に光学像を形成する。撮像素子１０３は、光学像を電子像に変換して画像データ（撮影画像）を画像処理部１１０に時系列に出力する。この時系列に撮影された画像データ列を画像Ｘというものとする。
【００１５】
測距部１０４は、レンズ１０５、撮像素子１０６、光源１０７を備え、撮像装置１００から被写体までの距離を計測する撮像手段又は測距手段として機能する。この測距には、例えば、ＴＯＦ（Time of Flight）方式又はＬＩＤＡＲ（Light Detection and Ranging）方式が用いられる。光源１０７は例えば赤外線光源などであり、レンズ１０５、撮像素子１０６は赤外線の光学像を形成するように設計される。レンズ１０５は、光源１０７から照射されて被写体によって反射された光を集光し、撮像素子１０６上に光学像を形成する。撮像素子１０６は、光学像を電子像に変換して画像データを時系列に出力する。測距部１０４は、画像Ｘの撮影時刻と略同時刻に被写体を撮影する。測距部１０４によって取得される画像を画像Ｙというものとし、この画像Ｙは、例えば、撮像装置１００から被写体までの距離が色又は濃淡で表された距離画像列である。
【００１６】
記憶部１１１は、例えば、撮像装置１００に内蔵された半導体記憶装置などであり、撮像部１０１、測距部１０４によって撮影及び取得された画像Ｘ、画像Ｙを記憶する。また、記憶部１１１は、異なる時刻に撮影及び取得された画像Ｘ又は画像Ｙにおける特徴点の対応点を探索する際の対応点探索範囲、撮像部１０１のレンズ１０２の焦点距離及び収差係数、撮像素子１０３の画素数などの各種光学パラメータを記憶する。
【００１７】
特徴点抽出部１１２は、記憶部１１１に記憶された画像Ｘから特徴点を抽出する。本実施形態では、特徴点抽出部１１２は、画像Ｘから複数の特徴点を抽出する。例えば、詳細を後述するように、特徴点抽出部１１２は、時系列の撮影画像から少なくとも２つの特徴点Ｐ１、Ｐ２を含む特徴点を抽出する特徴点抽出手段として機能する。
【００１８】
動きベクトル演算部１１３は、特徴点抽出部１１２によって抽出された各特徴点に対して動きベクトルを算出する。例えば、詳細を後述するように、動きベクトル演算部１１３は、特徴点Ｐ１、Ｐ２の動きベクトルの大きさＶ１、Ｖ２をそれぞれ算出する動きベクトル演算手段として機能する。
【００１９】
距離演算部１１４は、特徴点抽出部１１２によって抽出された各特徴点について、画像Ｙを用いて撮像装置１００から被写体位置までの距離を算出する。詳細を後述するように、距離演算部１１４は、特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２に関する距離情報を取得する距離演算手段として機能する。この距離情報は、必要に応じて、被写体距離Ｚ１と被写体距離Ｚ２との相対関係に関する情報であってもよいし、それぞれの絶対値に関する情報であってもよい。
【００２０】
探索間隔決定部１１５は、動きベクトル演算部１１３によって算出された各特徴点の動きベクトル、距離演算部１１４によって算出された各特徴点の被写体距離に基づいて、対応点探索のためのフレーム間隔（以下、「探索フレーム間隔」という）を算出する。詳細を後述するように、探索間隔決定部１１５は、特徴点Ｐ１の対応点探索のための計算精度が特徴点Ｐ２の対応点探索のための計算精度よりも相対的に高くなるように、各対応点を特定するための探索パラメータを決定する探索パラメータ決定手段として機能する。本実施形態では、探索パラメータは探索フレーム間隔であり、探索間隔決定部１１５は、特徴点Ｐ１に対する探索フレーム間隔Ｆ１が特徴点Ｐ２に対する探索フレーム間隔Ｆ２よりも相対的に短くなるように探索フレーム間隔Ｆ１、Ｆ２を決定する。
【００２１】
対応点探索部１１６は、探索間隔決定部１１５で算出された探索フレーム間隔を用いて対応点探索を実行する。すなわち、対応点探索部１１６は、探索フレーム間隔Ｆ１、Ｆ２（探索パラメータ）に基づいて各対応点をそれぞれ探索する対応点探索手段として機能する。
【００２２】
位置姿勢推定部１１８は、記憶部１１１に記憶された撮像部１０１の光学パラメータ、対応点探索部１１６によって決定された対応点に基づいて、撮像装置１００の自己位置姿勢推定、被写体位置推定を行う位置姿勢推定手段として機能する。これにより、位置姿勢推定部１１８は、表示部１２０における文字又はアニメーションの表示方法を決定することができる。自己位置姿勢推定の詳細については後述する。
【００２３】
表示部１２０は、撮像装置１００がカメラ又はスマートフォンである場合のそのディスプレイであってもよいし、撮像装置１００が車載カメラである場合のその車載カメラに接続されたモニタなどであってもよい。表示部１２０は、位置姿勢推定部１１８によって算出された結果に基づいて、被写体の３次元マップを表示するように構成されてもよいし、マップ上に自車位置を表示するように構成されてもよい。
【００２４】
図２、図３は、本実施形態に係る画像処理装置（特に画像処理部１１０）によって実行される画像処理方法を示すフローチャートである。図２に示す画像処理はステップＳ２０１〜Ｓ２１７を含み、ステップＳ２１２は図３に示すステップＳ３０１〜Ｓ３０４を含む。
【００２５】
ステップＳ２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点（特徴点Ａ、特徴点Ｂ、特徴点Ｃ・・・）を抽出する。特徴点の抽出方法はＳＩＦＴ（Scale Invariant Feature Transform）、ＳＵＲＦ（Speeded Up Robust Features）、ＨＯＧ（Histogram of Oriented Gradient）、Ｈａａｒ−ｌｉｋｅなどであればよいが、他の方法が採用されてもよい。画像Ｘの撮影時刻の進行に応じて取得される被写体像に変化が生じる場合には、特徴点抽出部１１２は新たに特徴点を抽出する。ステップＳ２０２において、探索間隔決定部１１５が、全ての特徴点に対して探索フレーム間隔Ｆを初期値として決定する。
【００２６】
ステップＳ２０３において、第２フレーム以降のループが開始される。このループの処理において撮像部１０１又は測距部１０４は、第２フレーム以降の画像Ｘ又は画像Ｙの撮影及び取得を実行するように構成されてもよく、この場合には処理全体のリアルタイム性が高まる。ただし、撮像部１０１又は測距部１０４が先に第２フレーム以降の画像Ｘ又は画像Ｙの撮影及び取得を実行するように構成されてもよい。ステップＳ２０４において、特徴点に対する処理のループが開始される。このループは、抽出された全ての特徴点に対して実行されてもよいし、特定の特徴点のみに本開示の画像処理方法が適用される場合にはその特定の特徴点のみに対して実行されてもよい。
【００２７】
ステップＳ２０５において、探索間隔決定部１１５が、探索フレーム間隔Ｆを変更するか否かを予め決定された変更判定条件に基づいて判定する。この変更判定条件は、記憶部１１１に記憶されている。変更判定条件は、例えば、１００フレームに１度の頻度で探索フレーム間隔Ｆを変更することを規定するものであってもよいし、対応点探索に失敗した特徴点が発生した場合に探索フレーム間隔Ｆを変更することを規定するものであってもよい。探索フレーム間隔Ｆを変更する場合（ステップＳ２０５、ＹＥＳ）、処理はステップＳ２０６に進み、探索フレーム間隔Ｆを変更しない場合（ステップＳ２０５、ＮＯ）、処理はステップＳ２１３に進む。
【００２８】
ステップＳ２０６において、動きベクトル演算部１１３が、現在の特徴点に対して動きベクトルＶを算出する。動きベクトルＶの算出は、異なる時刻に撮影された画像に対して特徴点の対応点を算出して画像間で対応点の差分を用いて実行されてもよいし、ＬｕｃａｓＫａｎａｄｅ法などを用いて実行されてもよい。
【００２９】
ステップＳ２０７において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。被写体距離Ｚは、記憶部１１１に画像Ｙが記憶されている場合には画像Ｙを用いて算出される。
【００３０】
ステップＳ２０８において、特徴点抽出部１１２が、その時点までに探索フレーム間隔Ｆが決定されたフレームが存在するか否かを判定する。探索フレーム間隔Ｆが決定されたフレームが存在する場合（ステップＳ２０８、ＹＥＳ）、処理はステップＳ２０９に進み、探索フレーム間隔Ｆが決定されたフレームが存在しない場合（ステップＳ２０８、ＮＯ）、処理はステップＳ２１１に進む。
【００３１】
ステップＳ２０９において、特徴点抽出部１１２は、探索フレーム間隔Ｆが未決定である特徴点を暫定的に特徴点Ｐ１と定義する。ステップＳ２１０において、特徴点抽出部１１２は、探索フレーム間隔Ｆが決定された特徴点のうち、特徴点Ｐ１に対して最小の被写体距離Ｚを有する特徴点を暫定的に特徴点Ｐ２と定義する。なお、探索フレーム間隔Ｆが決定されたフレームが存在しない場合、特徴点抽出部１１２は、２つの特徴点を抽出して、この２つの特徴点を暫定的に特徴点Ｐ１、Ｐ２と定義する（ステップＳ２１１）。
【００３２】
ステップＳ２１２において、距離演算部１１４が、暫定的に定義された特徴点Ｐ１、Ｐ２から特徴点Ｐ１、Ｐ２を確定し、探索間隔決定部１１５が、確定された特徴点Ｐ１、Ｐ２に対して探索フレーム間隔Ｆ１、Ｆ２をそれぞれ決定する。ステップＳ２１２の詳細については後述する。
【００３３】
ステップＳ２１３において、対応点探索部１１６が、現在のフレームにおいて各特徴点について対応点探索を実行するか否かを判定する。対応点探索を実行すると判定された場合（ステップＳ２１３、ＹＥＳ）、処理はステップＳ２１４に進み、対応点探索を実行しないと判定された場合（ステップＳ２１３、ＮＯ）、処理はステップＳ２１５に進む。ステップＳ２１４において対応点探索部１１６が対応点探索計算を実行し、ステップＳ２１５において対応点探索部１１６が対応点予測計算を実行する。対応点探索計算及び対応点予測計算の詳細については後述する。そして、ステップＳ２１６において、特徴点に対する処理のループが終了し、ステップＳ２１７において、第２フレーム以降の処理が終了する。
【００３４】
ここで、図３に示すフローチャートを用いてステップＳ２１２について詳細に説明する。まず、一部を上述したように、各パラメータが以下のように定義される。特徴点Ｐ１、Ｐ２についての被写体距離ＺはそれぞれＺ１、Ｚ２であり、特徴点Ｐ１、Ｐ２についての動きベクトルＶの大きさはそれぞれＶ１、Ｖ２であり、特徴点Ｐ１、Ｐ２についての探索フレーム間隔ＦはそれぞれＦ１、Ｆ２である。被写体距離Ｚ１、Ｚ２は図２のステップＳ２０７において算出されており、動きベクトルＶ１、Ｖ２は図２のステップＳ２０６において算出されている。そして、探索フレーム間隔Ｆ１、Ｆ２が、本フローによって決定される。また、ある時刻での任意の特徴点の位置を基準として、他の時刻での対応点を探索する際の画像上の探索範囲の大きさの１／２（半分）が、半対応点探索範囲Ｓ（以下、「半探索範囲Ｓ」という）と定義される。この半探索範囲Ｓは、記憶部１１１に予め記憶されている。
【００３５】
ステップＳ３０１（図２のステップＳ２１０又はＳ２１１の後）において、距離演算部１１４が、被写体距離Ｚ１と被写体距離Ｚ２とを比較する。Ｚ１≦Ｚ２である場合（ステップＳ３０１、ＹＥＳ）、処理はステップＳ３０３に進む。それ以外の場合、すなわち、Ｚ１＞Ｚ２の場合（ステップＳ３０１、ＮＯ）、処理はステップＳ３０２に進み、距離演算部１１４又は探索間隔決定部１１５は、特徴点Ｐ１と特徴点Ｐ２の定義を入れ替える。したがって、いずれの場合であっても、処理がステップＳ３０３に移行する前に、特徴点Ｐ１の被写体距離Ｚ１が特徴点Ｐ２の被写体距離Ｚ２以下となるように特徴点Ｐ１、Ｐ２が定義され、この定義が確定される。すなわち、第１の被写体距離が第２の被写体距離以下であるように第１、第２の特徴点が定義される。
【００３６】
ステップＳ３０３において、探索間隔決定部１１５は、Ｆ２≦Ｓ／Ｖ２を満たすように探索フレーム間隔Ｆ２を決定する。そして、ステップＳ３０４において、探索間隔決定部１１５は、探索フレーム間隔Ｆ１を、Ｆ１＝［Ｆ２×Ｚ１／Ｚ２］と決定する。なお、［ｘ］は、ｘを下回らない最小の整数を示す。例えば、［４．３］＝５である。なお、ステップＳ３０４において、単にＦ１≦Ｆ２を満たすように探索フレーム間隔Ｆ１、Ｆ２が決定されてもよい。すなわち、第１の探索フレーム間隔が第２の探索フレーム間隔以下となる。この場合、動きベクトルＶ１、Ｖ２を算出する必要がなく、処理の簡素化によって計算負荷が軽減される。ステップＳ３０４が終了すると、処理は図２のステップＳ２１３に進む。
【００３７】
図４乃至図８を用いて、撮像装置（カメラ）の動きと被写体像の動きの関係を説明するとともに、画像処理における特徴点に対する対応点の探索のための対応点探索の原理を説明する。
【００３８】
上述した従来の技術において、例えば、カメラの並進及び回転が発生している状態から回転が終了して並進のみが残るようなカメラの複雑な動きに対して、被写体像の動きが追跡されないことがある。特に、カメラの並進による被写体像の動きの方向に対して、カメラの回転による被写体像の動きが反対方向になる場合には、カメラの動きが大きいにもかかわらず被写体像の動きは小さくなる。例えば、被写体像の動きが小さいことに応じて長いフレーム間隔が適用されていると、カメラの回転が停止して並進のみが継続した場合に被写体像の動きが瞬時に大きくなり、被写体像の対応点が追跡されなくなる。逆に、短いフレーム間隔が適用されていれば、この問題に対処可能となるものの、計算負荷が増大してしまう。これに対処するため、例えば、対応点が探索不能となった時点の直前の被写体像の動きに基づいて、外挿などによって対応点を予測する方法が考えられる。しかし、この方法では、カメラの急な動きに対して予測位置と真の対応点位置との誤差が大きくなる可能性があり、対応点の探索精度が低下し得る。このように、従来技術では、対応点探索において、高い計算精度と低い計算負荷とを両立できないという問題があった。本発明によれば、相対的に近距離側の特徴点に対して相対的に短い探索フレーム間隔Ｆが設定され、相対的に遠距離側の特徴点に対して相対的に長い探索フレーム間隔Ｆが設定される。
【００３９】
図４に、異なる被写体距離の被写体像に対してカメラが並進した場合の被写体像間の動きベクトルの相違を示す。図４に示すように、画像４００は、カメラ（画像４００を撮影するカメラ）から相対的に近い被写体像（家屋）及びカメラから相対的に遠い被写体像（山及び雲）を含む。なお、本開示において、撮像装置から相対的に近い被写体を近距離被写体といい、撮像装置から相対的に遠い被写体を遠距離被写体というものとする。言い換えると、近距離被写体及び遠距離被写体という表現は、相対的表現であり、絶対的表現ではない。近距離被写体像上に特徴点４０１が定義され、遠距離被写体像上に特徴点４０２が定義される。ここで、カメラが被写体とともに左方向に並進すると、特徴点４０１、４０２は画像４００上で右方向に移動し、これに伴うそれぞれの動きベクトル４０３、４０４が発生する。動きベクトル４０３、４０４の大きさをそれぞれＶ１、Ｖ２とする。この場合、カメラの並進のみが行われているものとすると、近距離被写体像の特徴点４０１の動きベクトル４０３の大きさＶ１は、遠距離被写体像の特徴点４０２の動きベクトル４０４の大きさＶ２よりも大きくなり、すなわち、Ｖ１＞Ｖ２となる。この動きベクトルの大きさの相違を、図５、図６を用いて説明する。
【００４０】
図５に、カメラが被写体とともに横並進した場合の各部の幾何関係を示す。なお、横並進とは、カメラがその光軸に対して垂直な方向に移動することをいう。図５に示すように、被写体５０１をカメラ５０２で撮影すると、画像５０３上に被写体５０１の被写体像５０４が映し出される。被写体５０１はカメラ５０２の光軸上でカメラ５０２から被写体距離Ｚの位置にあり、被写体像５０４は画像５０３の中心に位置する。ここで、カメラ５０２が距離ｄだけ横並進すると、被写体像５０４の移動量Δｙは、以下の式（１）のように計算される。
Δｙ＝ｆ×ｄ／Ｚ  ・・・式（１）
なお、ｆはカメラ５０２のレンズの焦点距離であり、レンズの収差の影響は無視できるものとする。式（１）から、被写体像の移動量Δｙは被写体距離Ｚに反比例し、被写体距離Ｚが小さい被写体ほどその像の動きが大きくなることが分かる。
【００４１】
図６は、カメラが縦並進した場合の各部の幾何関係を示す。なお、縦並進とは、カメラがその光軸方向に移動することをいう。図６に示すように、被写体６０１をカメラ６０２で撮影すると、画像６０３上に被写体６０１の被写体像６０４が映し出される。被写体６０１はカメラ６０２に対して画角ωで被写体距離ｚの位置にあるので、画像６０３の中心から被写体像６０４の距離ｙ０はｙ０＝ｆ×ｔａｎωで表される。ここで、カメラ６０２が距離ｄだけ縦並進すると、カメラ６０２から被写体６０１に向かう方向を正とした場合、画像６０３の中心からの被写体像６０４の距離ｙは、ｙ＝Ｚ／（Ｚ−ｄ）×ｆ×ｔａｎωで表される。したがって、被写体像６０４の移動量Δｙは、以下の式（２）のように計算される。
Δｙ＝ｙ−ｙ０
＝ｄ／（Ｚ−ｄ）×ｆ×ｔａｎω  ・・・式（２）
式（２）から、被写体像の移動量Δｙは被写体距離Ｚに反比例し、被写体距離Ｚが小さい被写体ほど被写体像の動きが大きくなることが分かる。
【００４２】
以上の説明から分かるように、カメラの横並進及び縦並進のいずれの場合についても、カメラから被写体までの被写体距離が小さいほどその被写体像の動きが大きくなる。したがって、図４に関して説明したように、近距離被写体像の特徴点４０１の動きベクトル４０３の大きさＶ１は、遠距離被写体像の特徴点４０２の動きベクトル４０４の大きさＶ２よりも大きくなる。
【００４３】
図７に、異なる被写体距離の被写体像に対してカメラが並進及び回転した場合、特に、並進と回転が逆向きに、すなわち相互に打ち消す方向に発生した場合の被写体像間の動きベクトルの相違を示す。図４の例と同様に、図７に示すように、画像７００は、近距離被写体像（家屋）及び遠距離被写体像（山、雲）を含む。近距離被写体像上に特徴点４０１が定義され、遠距離被写体像上に特徴点４０２が定義される。ここで、カメラが左方向に並進し、かつ右方向に回転すると、特徴点４０１、４０２は画像４００上で右方向に移動し、これに伴うそれぞれの動きベクトル７０３、７０４が発生する。動きベクトル７０３、７０４の大きさをそれぞれＶ１、Ｖ２とする。この場合、近距離被写体像の特徴点４０１の動きベクトル７０３の大きさＶ１は、遠距離被写体像の特徴点４０２の動きベクトル７０４の大きさＶ２よりも小さくなり、すなわち、Ｖ１＜Ｖ２となる。この動きベクトルの大きさの相違について図８を用いて説明する。
【００４４】
図８に、カメラの並進と回転が逆向きに（相互に打ち消す方向に）発生した場合の各部の幾何関係を示す。図８に示すように、被写体８０１をカメラ８０２で撮影すると、画像８０３上に被写体８０１の像８０４が映し出される。被写体８０１はカメラ８０２の光軸上でカメラ８０２から被写体距離ｚの位置にあり、像８０４は画像８０３の中心に位置する。ここで、カメラ８０２が距離ｄだけ横並進（右並進）し、かつ角度θだけ回転（右回転）すると、像８０４の移動量Δｙは、以下の式（３）のように計算される。
Δｙ＝ｆ×ｔａｎ｛ａｒｃｔａｎ（ｄ／Ｚ＋θ）｝
＝ｆ×（ｄ／Ｚ＋ｔａｎθ）／（１−ｄ／ｚ×ｔａｎθ）  ・・・式（３）
ここで説明するように、カメラの回転が並進と逆方向の場合、θ＜０であるから、ｔａｎθ＜０となる。したがって、式（３）の分子が減少した結果として、移動量Δｙも減少する。特に、Ｚ＞＞ｄの場合には、移動量Δｙについて、分子のｔａｎθが支配的となる。従って、被写体距離Ｚが小さい被写体ほど被写体像の動きが大きくなることから、探索フレーム間隔Ｆを小さくすることが好ましい。
【００４５】
図９に、探索フレーム間隔Ｆ１、Ｆ２の設定例を示す。画像列９００は、画像Ｘに含まれる連続した複数のフレーム、すなわち、第ｎフレーム、第（ｎ＋１）フレーム、・・・第（ｎ＋Ｆ１）フレーム、・・・第（ｎ＋Ｆ２）フレーム、・・・、第（ｎ＋ＣＭ（Ｆ１、Ｆ２））フレームを含む。なお、Ｆ１＜Ｆ２であり、ＣＭ（Ｆ１、Ｆ２）は、Ｆ１、Ｆ２の最小公倍数である。図９の各画像４００における各×印は、対応点探索された特徴点４０１（Ｐ１）又は特徴点４０２（Ｐ２）を示す。すなわち、特徴点４０１の対応点は、第ｎフレーム、第（ｎ＋Ｆ１）フレーム、第（ｎ＋２Ｆ１）フレーム（不図示）、・・・、第（ｎ＋ＣＭ（Ｆ１、Ｆ２））フレーム、・・・において探索される。一方、特徴点４０２の対応点は、第ｎフレーム、第（ｎ＋Ｆ２）フレーム、第（ｎ＋２Ｆ２）フレーム（不図示）、・・・において探索される。したがって、第ｎフレーム、第（ｎ＋ＣＭ（Ｆ１、Ｆ２））フレーム、第（ｎ＋２ＣＭ（Ｆ１、Ｆ２））フレーム（不図示）、・・・では、特徴点４０１、４０２の双方の対応点が探索される。
【００４６】
図１０を用いて、探索フレーム間隔Ｆ１、Ｆ２の決定方法についてさらに説明する。図１０に、特徴点４０２（Ｐ２）についての動きベクトルと探索範囲との関係を示す。図１０に示すように、探索範囲１００１において、特徴点４０２が動きベクトル１００２（大きさＶ２）で移動する。半探索範囲１００３は、探索範囲１００１の一辺（底辺）の長さの半分によって規定され、長さＳを有する。この半探索範囲１００３内で特徴点４０２の対応点が探索される。ベクトル集合１００４は、探索フレーム間隔Ｆ２毎の動きベクトル１００２を連接させたものであり、ベクトル集合１００４の長さはＦ２×Ｖ２となる。このベクトル集合１００４の長さＦ２×Ｖ２が半探索範囲１００３の長さＳ以下であれば、対応点が探索範囲外とならず、対応点を探索範囲内で特定することができる（すなわち、画像処理装置が特徴点を「見失う」ことがない）。したがって、探索フレーム間隔Ｆ２は、Ｆ２≦Ｓ／Ｖ２を満たすように決定される。
【００４７】
図７を再度参照して、探索フレーム間隔Ｆ１についてさらに検討する。前述したように、特徴点４０１（Ｐ１）の被写体距離Ｚ１は、特徴点４０２（Ｐ２）の被写体距離Ｚ２よりも小さい。特徴点４０１（Ｐ１）、４０２（Ｐ２）について、回転の影響によって相応の大きさの動きベクトルが双方に発生するが、特徴点４０１（Ｐ１）については、回転を打ち消す方向の並進の影響によって動きベクトル７０３の増加が減殺される。その結果として、特徴点４０１（Ｐ１）、４０２（Ｐ２）のそれぞれの動きベクトル７０３の大きさＶ１、動きベクトル７０４の大きさＶ２については、Ｖ１＜Ｖ２となり得る。ここで、撮像装置１００の回転が止まった瞬間に、回転によって打ち消されていた並進に起因する動きベクトル７０３が瞬時に増大する。比較的小さなＶ１に応じて、Ｆ１≦Ｓ／Ｖ１からＦ１を比較的大きな値に設定されると、特徴点４０１（Ｐ１）の対応点が探索範囲外となってしまう可能性がある。このような回転及び並進が発生している状態から並進のみが残る場合も考慮して、探索フレーム間隔Ｆ１は、Ｆ１≦Ｆ２を満たすように決定される。
【００４８】
探索フレーム間隔Ｆ１についてさらに検討する。撮像装置１００の横並進に関して、図５、式（１）を再度参照すると、撮像装置１００の横並進に対する被写体像５０４の移動量Δｙは被写体距離Ｚに反比例することから、対応する動きベクトルの大きさも被写体距離Ｚに反比例する。これにより、特徴点４０１（Ｐ１）、４０２（Ｐ２）について、Ｖ１＝Ｖ２×Ｚ１／Ｚ２が成り立つ。したがって、探索フレーム間隔Ｆ１についても、Ｆ１＝［Ｆ２×Ｚ１／Ｚ２］を満たすように探索フレーム間隔Ｆ１を決定することによって、近距離被写体についても、遠距離被写体と同様に対応点が探索範囲外とならずにその追従性が確保される。したがって、探索間隔決定部１１５は、Ｆ１＝［Ｆ２×Ｚ１／Ｚ２］となるように探索フレーム間隔Ｆ１を決定することが好ましい。
【００４９】
上記のように決定される探索フレーム間隔Ｆ１は、縦並進の状況における対応点探索に対しても同様に好適な設定となる。図６、式（２）を再度参照すると、Ｚ＞＞ｄである場合には、式（２）は、以下の式（４）のように近似される。
Δｙ≒ｄ／Ｚ×ｆ×ｔａｎω  ・・・（４）
この場合、被写体像６０４の移動量は被写体距離Ｚに反比例することになるため、好ましい探索フレーム間隔Ｆの条件は、横並進の場合と実質的に同様となる。例えば、望遠レンズを用いる撮影においては、カメラの動きに対して被写体距離Ｚが十分に大きいことが多く、Ｚ＞＞ｄが成り立つため、本開示の画像処理装置が適用可能となる。これにより、撮像装置１００が車両に搭載された車載カメラである場合、直進車両から遠方を撮影する際に、本画像処理装置によって対応点対策が実行される画像を車内に設置された表示部１２０（ディスプレイ）にリアルタイムに表示することが可能となる。
【００５０】
図１１に、探索フレーム間隔Ｆ１、Ｆ２の設定例を示す。図９の例と同様に、画像列９００は、画像Ｘに含まれる連続した複数のフレーム、すなわち、第ｎフレーム、第（ｎ＋１）フレーム、・・・第（ｎ＋Ｆ１）フレーム、・・・第（ｎ＋Ｆ２）フレーム、・・・、第（ｎ＋ＣＭ（Ｆ１、Ｆ２））フレームを含む。なお、Ｆ１＜Ｆ２であり、ＣＭ（Ｆ１、Ｆ２）は、Ｆ１、Ｆ２の最小公倍数である。図１１の各画像４００において、各×印は対応点探索された特徴点４０１（Ｐ１）又は特徴点４０２（Ｐ２）を示し、各〇印は、対応点探索ではなく×印における対応点探索に基づいて予測された特徴点（対応点）を示す。図９の例と同様に、特徴点４０１の対応点は、第ｎフレーム、第（ｎ＋Ｆ１）フレーム、第（ｎ＋２Ｆ１）フレーム（不図示）、・・・において探索される。一方、特徴点４０２の対応点は、第ｎフレーム、第（ｎ＋Ｆ２）フレーム、第（ｎ＋２Ｆ２）フレーム（不図示）、・・・において探索される。例えば、第（ｎ＋１）フレームにおける特徴点４０１、４０２の予測位置である対応点１１０１、１１０２は、第ｎフレーム以前のフレームにおける特徴点４０１、４０２の位置から外挿などの方法によってそれぞれ予測される。
【００５１】
次に、位置姿勢推定部１１８によって実行される自己位置姿勢推定の処理について説明する。一般に、自己位置姿勢推定の処理は、画像上での特徴点の動き及びレンズの焦点距離、収差、画面サイズなどの光学パラメータから、撮像装置（カメラ）の位置及び姿勢を推定するとともに、それと同時に特徴点に対応する被写体の位置を推定するように構成される。したがって、各種推定のリアルタイム性が望まれる状況においてもその計算量が大きく、高速処理によるリアルタイム性の向上と計算量の増加による推定精度の向上の両立が課題となる。本実施形態では、画像処理部１１０によって各フレームにおける画像上の特徴点の位置（対応点）が探索及び決定されるので、位置姿勢推定部１１８はこの対応点探索の結果を利用することができる。これにより、推定精度を低下させることなくリアルタイム性を向上することが可能となる。
【００５２】
具体的には、対応点探索が実行されていない特徴点について、図１１に関して上述した対応点の予測位置を用いて自己位置姿勢推定が実行され得る。全てのフレームに対して自己位置姿勢推定が実行される場合に、対応点探索にかかる計算を減少させることが可能となる。対応点が予測されたフレームに対して自己位置姿勢又は被写体位置の推定が行われる場合、対応点予測による誤差が予測結果に重畳し得る一方で、対応点探索の計算量が低減される。例えば、図１１の第（ｎ＋１）フレームでは、特徴点の対応点探索が行われずに予測値が算出されるので、対応点の探索精度は減少するものの計算量は低減される。また、全ての特徴点について対応点探索が実行されたフレームに対してのみ自己位置姿勢推定が行われると、対応点探索に要する計算量が減少するだけでなく、自己位置姿勢推定に要する計算量も減少し得る。自己位置姿勢推定の結果は、間引かれたフレームのタイミングに対するものとなるため、自己位置姿勢推定が実行されたタイミングの結果から、自己位置姿勢推定が実行されなかったタイミングの結果を予測することができる。自己位置姿勢の予測には、補間、外挿などの方法が用いられてもよいし、他の方法が用いられてもよい。
【００５３】
自己位置姿勢の予測が実行されたタイミングでは、予測ゆえの計算精度の低下は起こり得るが、計算量は大幅に低減される。例えば、図１１において、第ｎフレーム、第（ｎ＋ＣＭ（Ｆ１、Ｆ２））フレーム、第（ｎ＋２ＣＭ（Ｆ１、Ｆ２））フレーム、・・・に対してのみ自己位置姿勢推定の計算が実行される場合を想定する。この場合、全てのフレームに対して計算を行う場合と比較して、自己位置推定には１／ＣＭ（Ｆ１、Ｆ２）倍の計算しか必要とならない。また、特徴点が３点以上ある場合には、指定した２点以上の特徴点の対応点探索のタイミングが重なった場合に自己位置姿勢推定の計算を行うことも可能となり、この場合、特徴点の増加に対する計算量の増加が抑制される。このように、本実施形態の画像処理装置を用いることによって、フレーム間における特徴点の対応点を高速に算出することができる。これにより、処理能力が低い撮像装置においても、自己位置姿勢推定のリアルタイム処理が可能となる。
【００５４】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。被写体距離Ｚ１は被写体距離Ｚ２以下であるものとする。探索間隔決定部１１５は、特徴点Ｐ１の対応点を特定するための探索フレーム間隔Ｆ１が特徴点Ｐ２の対応点を特定するための探索フレーム間隔Ｆ２よりも相対的に短くなるように探索フレーム間隔Ｆ１、Ｆ２を決定する。対応点探索部１１６は、探索フレーム間隔Ｆ１、Ｆ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【００５５】
これにより、相対的に近距離側の特徴点に対して相対的に短い探索フレーム間隔Ｆが設定され、相対的に遠距離側の特徴点に対して相対的に長い探索フレーム間隔Ｆが設定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索が実現される。
【００５６】
＜第２実施形態＞
上記第１実施形態では、個々の特徴点について対応点探索のための探索フレーム間隔Ｆが決定される構成を示したが、本実施形態では同程度の被写体距離の特徴点については同じ探索フレーム間隔Ｆが用いられる構成を示す。
【００５７】
以下、図１２乃至図１５を参照して、本発明の第２実施形態について説明する。図１２は、本実施形態に係る画像処理部１２１０の機能的構成を模式的に示すブロック図である。画像処理部１２１０は、第１実施形態の撮像装置１００に含まれる画像処理部１１０の代替としての画像処理装置を構成する。画像処理部１２１０は、第１実施形態と同様の記憶部１１１、特徴点抽出部１１２、動きベクトル演算部１１３、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６に加えて、層分割部１２１７を含む。
【００５８】
本実施形態では、記憶部１１１は、第１実施形態と同様の画像Ｘ、画像Ｙ、半探索範囲Ｓに加えて、被写体距離層情報（以下、「層情報」という）を記憶する。層情報は、撮像装置１００から被写体距離毎に区切られた領域に関する情報である。層分割部１２１７は、距離演算部１１４の後段に配置される。層分割部１２１７は、層情報及び被写体距離に基づいて、特徴点を、相対的に小さい被写体距離範囲の層に属する特徴点（例えば、特徴点Ｐ１）及び相対的に大きい被写体距離範囲の層に属する特徴点（例えば、特徴点Ｐ２）に分類する層分割手段として機能する。そして、層分割部１２１７の後段の探索間隔決定部１１５は、分割された層に対してそれぞれ探索フレーム間隔Ｆを決定する。
【００５９】
図１３を用いて、層の定義、各層への特徴点の分類について説明する。図１３に示すように、カメラ１３００（撮像装置１００に対応）の撮影範囲は、カメラ１３００から同心円状に近い側から被写体距離に応じて層Ｌ１（領域１３０１）、層Ｌ２（領域１３０２）、層Ｌ３（領域１３０３）に分類される。例えば、被写体距離についてｒ０＜ｒ１＜ｒ２として、層Ｌ１は被写体距離がｒ０未満の領域１３０１に対応し、層Ｌ２は被写体距離がｒ０以上ｒ１未満の領域１３０２に対応し、層Ｌ３は被写体距離がｒ１以上の領域１３０３に対応する。なお、最外層となる層Ｌ３は、被写体距離がｒ１以上ｒ２未満の領域と定義されてもよい。
【００６０】
このように、層分割部１２１７は、層情報に基づいて撮影領域を上記の層Ｌ１、Ｌ２、Ｌ３に分割する。そして、層分割部１２１７は、距離演算部１１４によって算出された被写体距離Ｚに基づいて、ｒ１≦Ｚ＜ｒ２となる特徴点を層Ｌ１に分類し、ｒ２≦Ｚ＜ｒ３となる特徴点を層Ｌ２に分類し、ｒ２≦Ｚとなる特徴点を層Ｌ３に分類する。なお、層分割部１２１７は、層分類演算部と表現されてもよい。図１３の例においては、特徴点１３０４、１３０７が層Ｌ１に分類され、特徴点１３０５、１３０８が層Ｌ２に分類され、特徴点１３０６、１３０９が層Ｌ３に分類される。
【００６１】
探索間隔決定部１１５は、層Ｌ１に属する特徴点、層Ｌ２に属する特徴点、層Ｌ３に属する特徴点に対してそれぞれ探索フレーム間隔Ｆ１、Ｆ２、Ｆ３を決定する。言い換えると、層Ｌ１に属する全特徴点について探索フレーム間隔Ｆ１で対応点探索が実行され、層Ｌ２に属する全特徴点について探索フレーム間隔Ｆ２で対応点探索が実行され、層Ｌ３に属する全特徴点について探索フレーム間隔Ｆ３で対応点探索が実行される。
【００６２】
具体的には、例えば、探索フレーム間隔Ｆ１、Ｆ２に着目した場合の探索フレーム間隔Ｆ１、Ｆ２の決定手法は第１実施形態と同様である。すなわち、まず、探索フレーム間隔Ｆ２が、Ｆ２≦Ｓ／Ｖ２を満たすように決定される。探索フレーム間隔Ｆ１は、Ｆ１≦Ｆ２を満たすように決定される。さらに、Ｆ１＝［Ｆ２×Ｚ１／Ｚ２］となるように探索フレーム間隔Ｆ１を決定することが好ましい。もちろん、この決定手法は、相対的に近距離側の層に属する特徴点に対する探索フレーム間隔Ｆ１、相対的に遠距離側の層に属する特徴点に対する探索フレーム間隔Ｆ２について一般化可能である。また、複数の層が存在する場合、隣接する層同士で上記の探索フレーム間隔Ｆの決定が実行されてもよいし、隣接しない層同士で上記の探索フレーム間隔Ｆの決定が実行されてもよい。すなわち、上記例において、層Ｌ１〜Ｌ３が設定されている場合に、探索フレーム間隔Ｆ１は、探索フレーム間隔Ｆ２との関係で決定されてもよいし、探索フレーム間隔Ｆ３との関係で決定されてもよい。
【００６３】
図１４は、本実施形態に係る画像処理部１２１０によって実行される画像処理方法を示すフローチャートである。図１４に示すステップＳ２０１、Ｓ２０２、Ｓ２０４、Ｓ２０６、Ｓ２０７、Ｓ２１６は第１実施形態の対応するステップと同様であり、ステップＳ２１６の後にステップＳ１４０１が実行される。
【００６４】
第１実施形態と同様に、ステップＳ２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ２０２において、探索間隔決定部１１５が、全ての特徴点に対して探索フレーム間隔Ｆを初期値として決定する。ステップＳ２０３において第２フレーム以降のループが開始され、ステップＳ２０４において特徴点に対する処理のループが開始される。ステップＳ２０６において、動きベクトル演算部１１３が、現在の特徴点に対して動きベクトルの大きさＶを算出する。ステップＳ２０７において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。そして、ステップＳ２１６において、特徴点に対する処理のループが終了する。
【００６５】
ステップＳ１４０１において、層分割部１２１７が、記憶部１１１に記憶された層情報に従って遠距離側の層（図１３の例では層Ｌ３）から順に処理を行うループを開始する。ステップＳ１４０２において、層分割部１２１７は、ステップＳ２０７において算出された各特徴点に対する被写体距離Ｚに基づいて、現在の層に属する特徴点を特定する。
【００６６】
ステップＳ１４０３において、動きベクトル演算部１１３が、現在の層の動きベクトルを求める。層の動きベクトルは、ステップＳ１４０２において現在の層に分類された特徴点の動きベクトルから算出され得る。例えば、現在の層に属する特徴点の動きベクトルの平均値が層の動きベクトルと定義されてもよいし、ある特定の特徴点（代表となる特徴点）が現在の層の動きベクトルと定義されてもよいし、その他の定義が用いられてもよい。特に、以下に示すように、上記の特定の特徴点に関して、現在の層に属する特徴点のうち最小の被写体距離Ｚを有する特徴点が特定の特徴点として定義されることが好ましい。
【００６７】
図１５に、撮像装置（カメラ１３００）と層の幾何関係を示す。層Ｌ１〜Ｌ２（領域１３０１〜１３０３）は、図１３による定義に従う。特徴点１５０１、１５０２、１５０３は、それぞれ層Ｌ１、Ｌ２、Ｌ３に属し、かつ属する層の中で最小の被写体距離Ｚを有する。動きベクトル１５０４、１５０５、１５０６は、それぞれ特徴点１５０１、１５０２、１５０３に対する動きベクトルである。カメラ１３００の並進のみが発生した場合、被写体距離Ｚが小さい被写体像（特徴点）の動きが大きくなるので、動きベクトル１５０４、１５０５、１５０６は、層Ｌ１、Ｌ２、Ｌ３においてそれぞれ最大となる。このように、ある層内で被写体距離Ｚが最小となる特徴点は当該層内で最大の動きベクトルを有し得るため、この特徴点が探索範囲内となれば、当該層内の他の特徴点が探索範囲外となる可能性、すなわち対応点が見失われる可能性が低減する。
【００６８】
ステップＳ１４０４において、距離演算部１１４又は層分割部１２１７は、現在の層についての被写体距離（以下、「層距離」という）を特定する。例えば、層距離は、現在の層の距離範囲の中間値（例えば、層Ｌ２の場合の（ｒ１＋ｒ２）／２）であってもよいし、最小値（例えば、層Ｌ２の場合のｒ１）であってもよいし、他の値であってもよい。あるいは、現在の層において最小の被写体距離を有する特徴点の被写体距離Ｚであってもよい。この場合、ステップＳ１４０３に関して説明したのと同様の理由により、当該層内の他の特徴点が探索範囲外となる可能性、すなわち対応点が見失われる可能性が低減する。
【００６９】
ステップＳ１４０５において、層分割部１２１７は、現在の層が、設定された層のうちの最大の距離範囲を有する層（最遠層）か否かを判定する。現在の層が最遠層である場合（ステップＳ１４０５、ＹＥＳ）、処理はステップＳ１４０６に進み、現在の層が最遠層でない場合（ステップＳ１４０５、ＮＯ）、処理はステップＳ１４０７に進む。
【００７０】
ステップＳ１４０６において、探索間隔決定部１１５が、ステップＳ１４０３で決定された層の動きベクトルの大きさＶを用いて、現在の層に属する特徴点の探索フレーム間隔Ｆを決定する。ステップＳ１４０６における探索フレーム間隔Ｆの決定は、第１実施形態において説明したステップＳ３０３と同様の態様で行われてもよいし、他の態様で行われてもよい。
【００７１】
ステップＳ１４０７において、探索間隔決定部１１５は、ステップＳ１４０４で決定された現在の層の層距離、前回ループでのステップＳ１４０６で決定された最遠層に対する探索フレーム間隔Ｆに基づいて、現在の層の探索フレーム間隔Ｆを決定する。ステップＳ１４０７における探索フレーム間隔Ｆの決定は、第１実施形態において説明したステップＳ３０４と同様の態様で行われてもよいし、他の態様で行われてもよい。これにより、カメラ１３００（撮像装置１００）の並進及びその並進を打ち消す方向に回転が発生している場合でも、対応点が探索範囲外とならず、すなわち対応点が見失われることなく特定され得る。最も近距離側の層についてステップＳ１４０７が終了すると、ステップＳ１４０８において、処理は層のループを終了する。
【００７２】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６、層分割部１２１７を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。層分割部１２１７は、撮影画像を被写体距離の範囲に応じた複数の層に分類する。被写体距離Ｚ１は被写体距離Ｚ２以下であるものとする。探索間隔決定部１１５は、特徴点Ｐ１が含まれる層に属する対応点を探索するための探索フレーム間隔Ｆ１が、特徴点Ｐ２が含まれる層に属する対応点を探索するための探索フレーム間隔Ｆ２以下となるように、探索フレーム間隔Ｆ１、Ｆ２を決定する。対応点探索部１１６は、探索フレーム間隔Ｆ１、Ｆ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【００７３】
これにより、第１実施形態と同様に、相対的に近距離側の特徴点に対して相対的に短い探索フレーム間隔Ｆが設定され、相対的に遠距離側の特徴点に対して相対的に長い探索フレーム間隔Ｆが設定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索が可能となる。
【００７４】
ここで、本実施形態の更なる効果を説明する。特徴点が層に分類されずに各特徴点について探索フレーム間隔Ｆが決定される場合、実質的に同じ被写体距離にある２つの特徴点に対して対応点の探索フレームと予測フレームとの間に相違が生じ得る。例えば、図９の例では、特徴点４０１の対応点探索と特徴点４０２の対応点探索とが異なる探索フレーム間隔Ｆで実行される場合を想定する。この場合、第ｎフレーム、第（ｎ＋Ｆ１）フレーム、第（ｎ＋Ｆ２）フレーム、第（ｎ＋２Ｆ１）フレーム、第（ｎ＋２Ｆ２）フレーム・・・において対応点探索が実行されることになる。これに対して、本実施形態では、特徴点が層に分類され、同じ層内に属する特徴点に対して同一の探索フレーム間隔Ｆで対応点探索が実行されるので、対応点探索の回数を減少させることができる。図１１の例において、特徴点４０１の対応点探索と特徴点４０２の対応点探索が同じ探索フレーム間隔Ｆ（Ｆ１＝Ｆ２）であるとすると、第ｎフレーム、第（ｎ＋Ｆ１）フレーム、第（ｎ＋２Ｆ１）フレーム、・・・だけで対応点探索が実行されることになる。したがって、このような処理によって対応点探索に伴う計算量をさらに低減することが可能となる。
【００７５】
＜第３実施形態＞
上記第１、第２実施形態では、半探索範囲Ｓが一定であり、探索フレーム間隔Ｆが被写体距離Ｚに応じて変更される構成を示したが、本実施形態では、探索フレーム間隔Ｆが一定であり、半探索範囲Ｓが被写体距離に応じて変更される構成を示す。
【００７６】
以下、図１６乃至図１８を参照して、本発明の第３実施形態について説明する。図１６は、本実施形態に係る画像処理部１６１０の機能的構成を模式的に示すブロック図である。画像処理部１６１０は、第１実施形態の撮像装置１００に含まれる画像処理部１１０の代替となる画像処理装置を構成する。画像処理部１６１０は、第１実施形態と同様の記憶部１１１、特徴点抽出部１１２、動きベクトル演算部１１３、距離演算部１１４、対応点探索部１１６に加えて、探索範囲決定部１６１５を含む。言い換えると、本実施形態では、第１実施形態の探索間隔決定部１１５の代わりに探索範囲決定部１６１５が設けられる。
【００７７】
本実施形態では、記憶部１１１は、第１実施形態と同様の画像Ｘ、画像Ｙ、固定の探索フレーム間隔Ｆを記憶する。探索範囲決定部１６１５は、特徴点Ｐ１の対応点探索のための計算精度が特徴点Ｐ２の対応点探索のための計算精度よりも相対的に高くなるように、各対応点を特定するための探索パラメータを決定する探索パラメータ決定手段として機能する。本実施形態では、探索パラメータは半探索範囲であり、探索範囲決定部１６１５は、特徴点Ｐ１に対する半探索範囲Ｓ１（第１の探索範囲）が特徴点Ｐ２に対する半探索範囲Ｓ２（第２の探索範囲）よりも相対的に広くなるように半探索範囲Ｓ１、Ｓ２を決定する。
【００７８】
より具体的には、探索範囲決定部１６１５は、特徴点抽出部１１２によって定義された特徴点Ｐ１（近距離側）、Ｐ２（遠距離側）に対して、それぞれの動きベクトルの大きさＶ１、Ｖ２に基づいて、半探索範囲Ｓ１、Ｓ２を決定する。詳細を後述するように、探索範囲決定部１６１５は、特徴点Ｐ２について、Ｓ２≧Ｆ×Ｖ２を満たすように半探索範囲Ｓ２を決定する。また、探索範囲決定部１６１５は、特徴点Ｐ１について、Ｓ１＝Ｆ×Ｖ２を満たすように半探索範囲Ｓ２を決定する。特に、Ｓ２＝Ｆ×Ｖ２、かつＳ１＝Ｓ２×Ｚ２／Ｚ１とした場合には、探索範囲が最小化され、計算量の低減が可能となる。あるいは、単に、第１の探索範囲が第２の探索範囲以上、すなわち、Ｓ１≧Ｓ２のみを満たすようにＳ１、Ｓ２が決定されてもよい。この場合、動きベクトル演算部１１３による動きベクトルの演算が不要となり、処理が簡素化される。
【００７９】
図１７、図１８は、本実施形態に係る画像処理部１６１０によって実行される画像処理方法を示すフローチャートである。図１７に示すステップＳ２０１、Ｓ２０３、Ｓ２０４、Ｓ２０６、Ｓ２０７、Ｓ２１１、Ｓ２１４、Ｓ２１６、Ｓ２１７並びに図１８に示すステップＳ３０１、Ｓ３０２は、第１実施形態の対応するステップと同様である。
【００８０】
ステップＳ２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ１７０２において、探索範囲決定部１６１５が、全ての特徴点に対して半探索範囲Ｓを初期値として決定する。ステップＳ２０３において第２フレーム以降のループが開始され、ステップＳ２０４において特徴点に対する処理のループが開始される。
【００８１】
ステップＳ１７０５において、探索範囲決定部１６１５が、半探索範囲Ｓを変更するか否かを予め決定された変更判定条件に基づいて判定する。この変更判定条件は、記憶部１１１に記憶されている。変更判定条件は、例えば、１００フレームに１度の頻度で半探索範囲Ｓを変更することを規定するものであってもよいし、対応点探索に失敗した特徴点が発生した場合に半探索範囲Ｓを変更することを規定するものであってもよい。半探索範囲Ｓを変更する場合（ステップＳ１７０５、ＹＥＳ）、処理はステップＳ２０６に進み、半探索範囲Ｓを変更しない場合（ステップＳ１７０５、ＮＯ）、処理はステップＳ２１４に進む。
【００８２】
ステップＳ２０６において、動きベクトル演算部１１３が、現在の特徴点に対して動きベクトルＶを算出する。ステップＳ２０７において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。
【００８３】
ステップＳ１７０８において、特徴点抽出部１１２が、その時点までに半探索範囲Ｓが決定されたフレームが存在するか否かを判定する。半探索範囲Ｓが決定されたフレームが存在する場合（ステップＳ１７０８、ＹＥＳ）、処理はステップＳ１７０９に進み、半探索範囲Ｓが決定されたフレームが存在しない場合（ステップＳ１７０８、ＮＯ）、処理はステップＳ２１１に進む。
【００８４】
ステップＳ１７０９において、特徴点抽出部１１２は、半探索範囲Ｓが未決定である特徴点を暫定的に特徴点Ｐ１と定義する。ステップＳ１７１０において、特徴点抽出部１１２は、半探索範囲Ｓが決定された特徴点のうちの、特徴点Ｐ１に対して最小の被写体距離Ｚを有する特徴点を暫定的に特徴点Ｐ２と定義する。なお、半探索範囲Ｓが決定されたフレームが存在しない場合のステップＳ２１１では、特徴点抽出部１１２は、２つの特徴点を抽出して、この２つの特徴点を暫定的に特徴点Ｐ１、Ｐ２と定義する。
【００８５】
ステップＳ１７１２において、距離演算部１１４が、暫定的に定義された特徴点Ｐ１、Ｐ２から特徴点Ｐ１、Ｐ２を確定し、探索範囲決定部１６０１が、確定された特徴点Ｐ１、Ｐ２に対する半探索範囲Ｓ１、Ｓ２をそれぞれ決定する。ステップＳ１７１２の詳細については後述する。
【００８６】
ステップＳ２１４において、対応点探索部１１６が対応点探索計算を実行する。ステップＳ２１６において、特徴点に対する処理のループが終了し、ステップＳ２１７において、第２フレーム以降の処理が終了する。
【００８７】
ここで、図１８に示すフローチャートを用いてステップＳ１７１２について詳細に説明する。まず、一部を上述したように、各パラメータが以下のように定義される。特徴点Ｐ１、Ｐ２についての被写体距離ＺはそれぞれＺ１、Ｚ２であり、特徴点Ｐ１、Ｐ２についての動きベクトルＶの大きさはそれぞれＶ１、Ｖ２であり、特徴点Ｐ１、Ｐ２についての半探索範囲ＳはそれぞれＳ１、Ｓ２である。そして、半探索範囲Ｓ１、Ｓ２が、本フローによって決定される。
【００８８】
ステップＳ３０１（図２のステップＳ１７１０又はＳ２１１の後）において、距離演算部１１４が、被写体距離Ｚ１と被写体距離Ｚ２とを比較する。Ｚ１≦Ｚ２である場合（ステップＳ３０１、ＹＥＳ）、処理はステップＳ１８０３に進む。それ以外の場合、すなわち、Ｚ１＞Ｚ２の場合（ステップＳ３０１、ＮＯ）、処理はステップＳ３０２に進み、距離演算部１１４又は探索範囲決定部１６１５は、特徴点Ｐ１と特徴点Ｐ２の定義を入れ替える。したがって、いずれの場合であっても、処理がステップＳ１８０３に移行する前に、特徴点Ｐ１の被写体距離Ｚ１が特徴点Ｐ２の被写体距離Ｚ２以下となるように特徴点Ｐ１、Ｐ２が定義され、この定義が確定される。
【００８９】
ステップＳ１８０３において、探索範囲決定部１６１５は、半探索範囲Ｓ２を、記憶部１１１に記憶された探索フレーム間隔Ｆ、動きベクトルの大きさＶ２から、Ｓ２≧Ｆ×Ｖ２を満たすように決定する。ステップＳ１８０４において、探索範囲決定部１６１５は、半探索範囲Ｓ１を、Ｓ１＝Ｓ２×Ｚ１／Ｚ２と決定する。なお、ステップＳ１８０４において、単にＳ１≧Ｓ２を満たすように半探索範囲Ｓ１、Ｓ２が決定されてもよい。この場合、動きベクトルＶ１、Ｖ２を算出する必要がなく、処理の簡素化によって計算負荷が軽減される。ステップＳ１８０４が終了すると、処理は図１７のステップＳ２１４に進む。
【００９０】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、距離演算部１１４、探索範囲決定部１６１５、対応点探索部１１６を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。被写体距離Ｚ１が被写体距離Ｚ２以下である場合に、探索範囲決定部１６１５は、特徴点Ｐ１に対する半探索範囲Ｓ１が特徴点Ｐ２に対する半探索範囲Ｓ２以上となるように半探索範囲Ｓ１、Ｓ２を決定する。対応点探索部１１６は、半探索範囲Ｓ１、Ｓ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【００９１】
これにより、相対的に近距離側の特徴点に対して相対的に広い探索範囲が設定され、相対的に遠距離側の特徴点に対して相対的に狭い探索範囲が設定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索が可能となる。また、全ての特徴点に対して同一の探索フレーム間隔Ｆで対応点探索が実行されるので、対応点探索フレームと対応点予測フレームとを揃えることができ、画像全体において対応点対策の計算負荷がより低減される。
【００９２】
＜第４実施形態＞
上記第３実施形態では、個々の特徴点について対応点探索のための半探索範囲Ｓが決定される構成を示したが、本実施形態では同程度の被写体距離の特徴点については同じ半探索範囲Ｓが用いられる構成を示す。
【００９３】
以下、図１９、図２０を参照して、本発明の第４実施形態について説明する。図１９は、本実施形態に係る画像処理部１９１０の機能的構成を模式的に示すブロック図である。画像処理部１９１０は、第１実施形態の撮像装置１００に含まれる画像処理部１１０の代替となる画像処理装置を構成する。画像処理部１９１０は、記憶部１１１、特徴点抽出部１１２、動きベクトル演算部１１３、距離演算部１１４、層分割部１２１７、探索範囲決定部１６１５、対応点探索部１１６を含む。
【００９４】
本実施形態では、層分割部１２１７が、第２実施形態と同様に、距離演算部１１４の後段に配置される。層分割部１２１７は、第２実施形態と同様の態様で、特徴点を、相対的に小さい被写体距離範囲の層に属する特徴点（特徴点Ｐ１）、相対的に大きい被写体距離範囲の層に属する特徴点（特徴点Ｐ２）に分類する。また、探索範囲決定部１６１５が、第３実施形態と同様に、対応点探索部１１６の前段に配置される。探索範囲決定部１６１５は、分割された層に対してそれぞれ半探索範囲Ｓを決定する。
【００９５】
例えば、撮影範囲が近距離側から層Ｌ１〜Ｌ３に分割されるものとする（第２実施形態参照）。探索範囲決定部１６１５は、層Ｌ１に属する特徴点、層Ｌ２に属する特徴点、層Ｌ３に属する特徴点に対してそれぞれ半探索範囲Ｓ１、Ｓ２、Ｓ３を決定する。言い換えると、層Ｌ１に属する全特徴点について半探索範囲Ｓ１で対応点探索が実行され、層Ｌ２に属する全特徴点について半探索範囲Ｓ２で対応点探索が実行され、層Ｌ３に属する全特徴点について半探索範囲Ｓ３で対応点探索が実行される。
【００９６】
例えば、半探索範囲Ｓ１、Ｓ２に着目した場合の半探索範囲Ｓ１、Ｓ２の決定手法は第３実施形態と同様である。この決定手法は、相対的に近距離側の層に属する特徴点に対する半探索範囲Ｓ１、相対的に遠距離側の層に属する特徴点に対する半探索範囲Ｓ２について一般化可能である。また、複数の層が存在する場合、隣接する層同士で上記の半探索範囲Ｓの決定が実行されてもよいし、隣接しない層同士で上記の半探索範囲Ｓの決定が実行されてもよい。すなわち、上記例において、層Ｌ１〜Ｌ３が設定されている場合に、半探索範囲Ｓ１は、半探索範囲Ｓ２との関係で決定されてもよいし、半探索範囲Ｓ３との関係で決定されてもよい。
【００９７】
図２０は、本実施形態に係る画像処理部１９１０によって実行される画像処理方法を示すフローチャートである。図２０において、ステップＳ２０１、Ｓ２０４、Ｓ２０６、Ｓ２０７、Ｓ２１６は、第１実施形態の対応するステップと同様である。また、ステップＳ１４０１〜Ｓ１４０５、Ｓ１４０８は第２実施形態の対応するステップと同様であり、ステップＳ１７０２は第３実施形態の対応するステップと同様である。
【００９８】
ステップＳ２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ１７０２において、探索範囲決定部１６１５が、全ての特徴点に対して半探索範囲Ｓを初期値として決定する。ステップＳ２０４において、特徴点に対する処理のループが開始される。ステップＳ２０６において、動きベクトル演算部１１３が、現在の特徴点に対して動きベクトルＶを算出する。ステップＳ２０７において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。ステップＳ２１６において、特徴点に対する処理のループが終了する。
【００９９】
ステップＳ１４０１において、層分割部１２１７が、記憶部１１１に記憶された層情報に従って遠距離側の層（図１３の例では層Ｌ３）から順に処理を行うループを開始する。ステップＳ１４０２において、層分割部１２１７は、ステップＳ２０７において算出された各特徴点に対する被写体距離Ｚに基づいて、現在の層に属する特徴点を特定する。ステップＳ１４０３において、動きベクトル演算部１１３が、現在の層の動きベクトルを求める。層の動きベクトルは、ステップＳ１４０２において現在の層に分類された特徴点の動きベクトルから算出され得る。ステップＳ１４０４において、距離演算部１１４又は層分割部１２１７が、現在の層についての被写体距離（以下、「層距離」という）を特定する。
【０１００】
ステップＳ１４０５において、層分割部１２１７は、現在の層が、設定された層のうちの最大の距離範囲を有する層（最遠層）か否かを判定する。現在の層が最遠層である場合（ステップＳ１４０５、ＹＥＳ）、処理はステップＳ２００６に進み、現在の層が最遠層でない場合（ステップＳ１４０５、ＮＯ）、処理はステップＳ２００７に進む。
【０１０１】
ステップＳ２００６において、探索範囲決定部１６１５が、ステップＳ１４０３で決定された層の動きベクトルを用いて、現在の層に属する特徴点の半探索範囲Ｓを決定する。ステップＳ２００６における半探索範囲Ｓの決定は、第３実施形態において説明したステップＳ１８０３と同様の態様で行われてもよいし、他の態様で行われてもよい。
【０１０２】
ステップＳ２００７において、探索範囲決定部１６１５は、ステップＳ１４０４で決定された現在の層の層距離、前回ループでのステップＳ２００６で決定された最遠層に対する半探索範囲Ｓに基づいて、現在の層の半探索範囲Ｓを決定する。ステップＳ２００７における半探索範囲Ｓの決定は、第３実施形態において説明したステップＳ１８０４と同様の態様で行われてもよいし、他の態様で行われてもよい。最も近距離側の層についてステップＳ２００７が終了すると、ステップＳ１４０８において処理は層のループを終了する。
【０１０３】
上述したように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、距離演算部１１４、探索範囲決定部１６１５、対応点探索部１１６、層分割部１２１７を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。層分割部１２１７は、撮影画像を被写体距離の範囲に応じた複数の層に分類する。被写体距離Ｚ１が被写体距離Ｚ２以下である場合、探索範囲決定部１６１５は、特徴点Ｐ１が含まれる層に属する対応点に対する半探索範囲Ｓ１が、特徴点Ｐ２が含まれる層に属する対応点に対する半探索範囲Ｓ２以上となるように半探索範囲Ｓ１、Ｓ２を決定する。対応点探索部１１６は、半探索範囲Ｓ１、Ｓ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【０１０４】
これにより、第３実施形態と同様に、相対的に近距離側の特徴点に対して相対的に広い探索範囲が設定され、相対的に遠距離側の特徴点に対して相対的に狭い探索範囲が設定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索が可能となる。また、全ての特徴点に対して同一の探索フレーム間隔Ｆで対応点探索が実行されるので、対応点探索フレームと対応点予測フレームを揃えることができ、画像全体において対応点対策の計算負荷が低減可能となる。さらに、第２実施形態と同様に、階層化された対応点探索処理によって、対応点探索に伴う計算量をさらに低減することが可能となる。
【０１０５】
＜第５実施形態＞
第５乃至第８実施形態では、第１乃至第４実施形態の構成に対して姿勢検出部が付加され、撮像装置（カメラ）の姿勢の検出結果が対応点探索処理に反映される構成を示す。なお、第５、第６、第７、第８実施形態の基本構成は、それぞれ第１、第２、第３、第４実施形態の基本構成に対応する。
【０１０６】
図２１乃至図３２を参照して、本発明の第５実施形態について説明する。図２１は、本実施形態に係る撮像装置２１００の機能的構成を模式的に示すブロック図である。撮像装置２１００は、例えば、コンパクトデジタルカメラ、一眼レフカメラ、カメラ付きスマートフォン、車載カメラなどであり、本発明を実現するための構成を備える。撮像装置２１００は、撮像部１０１、測距部１０４、姿勢検出部２１０８、画像処理部２１１０、位置姿勢推定部１１８、表示部１２０を備える。また、画像処理部２１１０は、記憶部１１１、特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６を含む。
【０１０７】
姿勢検出部２１０８は、撮像装置２１００の姿勢を検出する姿勢検出装置であり、例えばジャイロセンサなどである。なお、姿勢検出部２１０８によって検出される撮像装置２１００の姿勢（以下、「姿勢情報」という）は、所定方向に相互に直交するように規定された３軸の各軸回りの回転を示す。姿勢検出部２１０８によって取得された姿勢情報は、記憶部１１１に記憶される。
【０１０８】
並進動きベクトル演算部２１１３は、記憶部１１１に記憶されている姿勢情報を用いて、特徴点抽出部１１２によって抽出された特徴点に対する撮像装置２１００の並進動きベクトルの大きさＶを算出する。並進動きベクトルは、カメラの並進動きベクトルであり、カメラの姿勢変化から予測される対応点から実際の対応点までのベクトルである。具体的には、並進動きベクトル演算部２１１３は、時刻ｔ１の姿勢情報、時刻ｔ１後の時刻ｔ２の姿勢情報に基づいて姿勢変化を特定し、この姿勢変化に基づいて特徴点Ｐに対する時刻ｔ２での撮影画像上における位置Ｐｓを特定するベクトル演算手段として機能する。並進動きベクトル演算部２１１３によって演算された並進動きベクトルの大きさＶは、探索間隔決定部１１５を介して対応点探索部１１６に入力される。対応点探索部１１６は、並進動きベクトル演算部２１１３によって特定された探索開始点Ｐｓ、探索間隔決定部１１５によって決定された探索フレーム間隔Ｆに基づいて特徴点Ｐに対する対応点を探索する。
【０１０９】
図２２、図２３は、本実施形態に係る画像処理部２１１０によって実行される画像処理方法を示すフローチャートである。図２２に示す画像処理はステップＳ２２０１〜Ｓ２２１７を含み、ステップＳ２２０７は図２３に示すステップＳ２３０１〜Ｓ２３０５を含み、ステップＳ２２１０は図２５に示すステップＳ２５０１〜Ｓ２５０３を含む。
【０１１０】
ステップＳ２２０１〜Ｓ２２０５は、第１実施形態のステップＳ２０１〜Ｓ２０５と同様である。すなわち、ステップＳ２２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ２２０２において、探索間隔決定部１１５が、全ての特徴点に対して探索フレーム間隔Ｆを初期値として決定する。ステップＳ２２０３において第２フレーム以降のループが開始され、ステップＳ２２０４において特徴点に対する処理のループが開始される。ステップＳ２２０５において、探索間隔決定部１１５が、探索フレーム間隔Ｆを変更するか否かを予め決定された変更判定条件に基づいて判定する。探索フレーム間隔Ｆを変更する場合（ステップＳ２２０５、ＹＥＳ）、処理はステップＳ２２０６に進み、探索フレーム間隔Ｆを変更しない場合（ステップＳ２２０５、ＮＯ）、処理はステップＳ２２１３に進む。
【０１１１】
ステップＳ２２０６において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。被写体距離Ｚは、記憶部１１１に画像Ｙが記憶されている場合には画像Ｙを用いて算出される。ステップＳ２２０７において、並進動きベクトル演算部２１１３が、現在の特徴点に対して並進動きベクトルの大きさＶを算出する。ステップＳ２２０７の詳細は後述する。なお、ステップＳ２２０６とステップＳ２２０７の順序は逆であってもよい。
【０１１２】
ステップＳ２２０８において、特徴点抽出部１１２が、その時点までに探索フレーム間隔Ｆが決定されたフレームが存在するか否かを判定する。探索フレーム間隔Ｆが決定されたフレームが存在する場合（ステップＳ２２０８、ＹＥＳ）、処理はステップＳ２２０９に進み、探索フレーム間隔Ｆが決定されたフレームが存在しない場合（ステップＳ２２０８、ＮＯ）、処理はステップＳ２２１１に進む。
【０１１３】
ステップＳ２２０９において、特徴点抽出部１１２が、最大の被写体距離の特徴点を選出して特徴点Ｐ２に指定する。ステップＳ２２１０において、現在の特徴点の探索フレーム間隔Ｆを決定する。ステップＳ２２１０の詳細は後述する。ステップＳ２２１１において、探索間隔決定部１１５は、記憶部１１１に記憶された半探索範囲Ｓ、ステップＳ２２０７において算出された並進動きベクトルの大きさＶを参照して、Ｆ≦Ｓ／Ｖを満たすように現在の特徴点に対する探索フレーム間隔Ｆを決定する。
【０１１４】
ステップＳ２２１３〜Ｓ２２１７は、第１実施形態のステップＳ２１３〜Ｓ２１７と同様である。すなわち、ステップＳ２２１３において、対応点探索部１１６が、現在のフレームにおいて各特徴点について対応点探索を実行するか否かを判定する。対応点探索を実行すると判定された場合（ステップＳ２２１３、ＹＥＳ）、処理はステップＳ２２１４に進み、対応点探索を実行しないと判定された場合（ステップＳ２２１３、ＮＯ）、処理はステップＳ２２１５に進む。ステップＳ２２１４において対応点探索部１１６が対応点探索計算を実行し、ステップＳ２２１５において対応点探索部１１６が対応点予測計算を実行する。ステップＳ２２１６において、特徴点に対する処理のループが終了し、ステップＳ２２１７において、第２フレーム以降の処理が終了する。
【０１１５】
ここで、図２３に示すフローチャートを用いてステップＳ２２０７について詳細に説明する。ステップＳ２２０６の後のステップＳ２３０１において、現在のフレーム以前のフレームが抽出される。姿勢検出部２１０８はその検出値にわずかな誤差を含んでいるため、現在のフレームと以前のフレームとの間の撮影時刻の差に応じて誤差が蓄積され、この誤差の蓄積がドリフトをもたらし得る。したがって、ステップＳ２３０１において抽出されるフレームの撮影時刻は、現在のフレームの撮影時刻に近いことが好ましく、例えば、抽出されるフレームは直前のフレームであることが好ましい。
【０１１６】
ステップＳ２３０２において、以前のフレームの撮影時刻から現在のフレームの撮影時刻の間のカメラの姿勢変化が、記憶部１１１から取得される。ステップＳ２３０３において、以前のフレームにおける特徴点位置、ステップＳ２３０２において取得された姿勢変化に基づいて、現在のフレームにおける対応点位置が予測される。ステップＳ２３０４において、予測値を探索開始点Ｐｓとして対応点探索が実行される。ステップＳ２３０５において、対応点と探索開始点Ｐｓの差分が、並進動きベクトルとして特定される。
【０１１７】
ここで、ステップＳ２３０３における対応点位置の予測方法について説明する。なお、以下の説明では、撮像部１０１がピンホールカメラの結像関係を満たすものとするが、他の結像関係においても同様の予測方法が適用され得る。
【０１１８】
以前のフレームにおける特徴点の画像上の位置を（ｘ，ｙ）とし、この特徴点に対する被写体位置を（Ｘ，Ｙ，Ｚ）とすると、相互の関係は以下の式（５）で表される。なお、被写体位置（Ｘ，Ｙ，Ｚ）は、カメラ座標における被写体位置である。
【数１】
2019185404.tif 000003
式（５）において、行列Ａは、カメラ行列であり、以下の式（６）で表される。
【数２】
2019185404.tif 000004
式（６）において、ｆｘ、ｆｙは撮像部１０１のレンズ１０２の焦点距離のｘ成分、ｙ成分をそれぞれ表し、ｃｘ、ｃｙは撮像部１０１の撮像素子１０３の中心座標のｘ成分、ｙ成分をそれぞれ表す。
【０１１９】
ここで、以前のフレーム撮影時刻から現在のフレームの撮影時刻の間に、撮像装置２１００が回転角度θｘ、θｙ、θｚだけ回転したことを姿勢検出部２１０８が検出したものとする。回転角度θｘ、θｙ、θｚは、それぞれ撮像装置２１００のｘ軸回り、ｙ軸回り、ｚ軸回りの回転角である。この回転後の特徴点の画像上の位置（ｘ´，ｙ´）と、特徴点に対応する被写体位置（Ｘ，Ｙ，Ｚ）との関係は、以下の式（７）で表される。
【数３】
2019185404.tif 000005
式（７）において、行列Ｒは、カメラ座標を回転させる回転行列であり、以下の式（８）で表される。
【数４】
2019185404.tif 000006
また、式（７）において、行列Ｚ´は、以下の式（９）で表される。
【数５】
2019185404.tif 000007
【０１２０】
式（５）を式（７）に代入して被写体位置（Ｘ，Ｙ，Ｚ）を消去すると、以前のフレームにおける特徴点の画像上の位置を（ｘ，ｙ）から回転後の特徴点の画像上の位置（ｘ´，ｙ´）への変換式は、以下の式（１０）で表される。
【数６】
2019185404.tif 000008
ここで、Ａ−１は、Ａの逆行列であり、以下の式（１１）で表される。
【数７】
2019185404.tif 000009
また、βは、以下の式（１２）で表される。
【数８】
2019185404.tif 000010
【０１２１】
式（１０）によって、撮像装置２１００の回転に起因する像の移動から、現在のフレームにおける対応点予測位置が導出される。最終的な特徴点の対応点は、現在のフレームにおいて、位置（ｘ´，ｙ´）から画像内を探索することによって検出される。この処理は、撮像装置２１００の回転に起因する像の動きを除去して、撮像装置２１００の並進のみが発生した場合の対応点探索処理に相当する。
【０１２２】
ここで、図２４を参照して対応点探索の態様を説明する。図２４に示す画像２４００では、以前のフレームに写った像２４０１（破線）に対して現在のフレームに写った像２４０２（実線）が重ねられている。以前のフレームの撮影時刻から現在のフレームの撮影時刻の間に撮像装置２１００の回転及び並進が発生したため、像２４０２の位置は像２４０１の位置から大きく移動している。対応点探索が実行されると、像２４０１上の特徴点２４０３の対応点２４０７は、像２４０２上において特定される。姿勢検出部２１０８によって検出された撮像装置２１００の回転角を用いて特徴点２４０３の移動先位置が予測され、探索開始点２４０５が決定される。なお、ベクトル２４０４は、撮像装置２１００の回転に起因する特徴点２４０３の動きベクトルである。探索開始点２４０５から対応点２４０７への並進動きベクトル２４０６は、撮像装置２１００の並進に起因する特徴点２４０３の動きベクトルに相当する。再度になるが、本開示において、撮像装置２１００の回転よって発生する動きベクトルであるカメラ回転動動きベクトルのことを回転動きベクトルといい、撮像装置２１００の並進よって発生する動きベクトルであるカメラ並進動きベクトルのことを並進動きベクトルという。
【０１２３】
探索開始点２４０５から探索範囲２４０８内で対応点探索が実行され、最終的な対応点２４０７が特定される。探索範囲２４０８は、特徴点２４０３から対応点２４０７を直接探索する場合の探索範囲よりも小さい。この探索は、撮像装置２１００の回転による影響を除外して、並進のみが発生している場合の対応点探索を実行することに相当する。探索範囲２４０８が探索されているので、姿勢検出部２１０８によって検出される回転角にわずかな誤差が含まれていても対応点２４０７が探索範囲２４０８に含まれていれば、問題なく対応点探索が実行される。
【０１２４】
次に、図２５に示すフローチャートを用いてステップＳ２２１０について詳細に説明する。ステップＳ２２０９の後のステップＳ２５０１において、現在注目している特徴点（以下、「注目特徴点」という）の並進動きベクトルの大きさＶと、被写体距離Ｚが最大の特徴点の並進動きベクトルの大きさＶ２とが比較される。Ｖ≦Ｖ２の場合（ステップＳ２５０１、ＹＥＳ）、処理はステップＳ２５０２に進む。Ｖ＞Ｖ２の場合（ステップＳ２５０１、ＮＯ）、処理はステップＳ２５０３に進む。
【０１２５】
ステップＳ２５０２において、被写体距離Ｚが最大の特徴点に対する被写体距離Ｚ２、探索フレーム間隔Ｆ２、及び注目特徴点の被写体距離Ｚに基づいて、注目特徴点に対する探索フレーム間隔Ｆについて、Ｆ≦Ｆ２×Ｚ／Ｚ２を満たすＦが決定される。一方、ステップＳ２５０３において、記憶部１１１に記憶された半探索範囲Ｓ、並進動きベクトルの大きさＶに基づいて、注目特徴点に対する探索フレーム間隔Ｆについて、Ｆ≦Ｓ／Ｖを満たすＦが決定される。なお、ステップＳ２５０２において、単に、Ｆ≦Ｆ２を満たすようにＦ、Ｆ２が決定されてもよい。この場合、並進動きベクトル演算部２１１３による並進動きベクトルの算出が不要となり、処理が簡素化される。
【０１２６】
ここで、本実施形態でも、第１実施形態において図１０を用いて説明したように、探索フレーム間隔Ｆ１、Ｆ２は、Ｆ２≦Ｓ／Ｖ２、かつＦ１≦Ｆ２を満たすように決定される。ここで、前述したように、姿勢検出部２１０８によって検出される撮像装置２１００の回転角には誤差が含まれる。すなわち、回転角の誤差によって図２４における探索開始点２４０５が実際の位置からずれ、並進動きベクトル４０６の算出に誤りが生じ得る。算出が正しかったとした場合と比較して、探索開始点４０５が対応点２４０７から遠い位置として決定されると、並進動きベクトル２４０６は過大なものとして算出されることになる。逆に、算出が正しかったとした場合と比較して、探索開始点４０５が対応点２４０７から近い位置として決定されると、並進動きベクトル２４０６は過小なものとして算出されることになる。
【０１２７】
図２６に、被写体距離と並進動きベクトルとの関係を示す。図２６に示す画像２６００では、以前のフレームに写った被写体像２６０１（破線）に対して現在のフレームに写った被写体像２６０２（実線）が重ねられている。以前のフレームの撮影時刻から現在のフレームの撮影時刻の間に撮像装置２１００の回転及び並進が発生したため、被写体像２６０２の位置は被写体像２６０１の位置から大きく移動している。被写体像２６０１の特徴点２６１１は、特徴点２６０３よりも遠方にある。対応点探索が実行されると、被写体像２６０１上の特徴点２６０３、２６１１の対応点２６０７、２６１５が、それぞれ被写体像２６０２上において特定される。
【０１２８】
被写体距離が小さい特徴点２６０３について、姿勢検出部２１０８によって検出された回転角の誤差によって、探索開始点２６０５は、実際の探索開始点２６０９よりも対応点２６０７に近い位置として決定される。これにより、撮像装置２１００の回転に起因する回転動きベクトル２６０４の大きさは、実際の回転動きベクトル２６０８よりも大きく算出される。その結果、並進動きベクトル２６０６の大きさは、実際の並進動きベクトル２６１０よりも小さく算出される。そして、並進動きベクトル２６０６の大きさＶ１から、探索フレーム間隔Ｆが、Ｆ１≦Ｓ／Ｖ１に基づいて決定される。実際の並進が大きい場合でも、それに対して過大な探索フレーム間隔Ｆが設定され、その後の対応点探索が困難となり得る。
【０１２９】
被写体距離が大きい特徴点２６１１について、姿勢検出部２１０８によって検出された回転角の誤差によって、探索開始点２６１３は、実際の探索開始点２６１８よりも対応点２６１５から遠い位置として決定される。これにより、撮像装置２１００の回転に起因する回転動きベクトル２６１２の大きさは、実際の回転動きベクトル２６１６よりも大きく算出される。その結果、並進動きベクトル２６１４の大きさは、実際の並進動きベクトル２６１９よりも大きく算出される。ここで、特徴点２６０３の画角、特徴点２６１１の画角が実質的に同じであるとすると、回転動きベクトル２６０４、２６１２は実質的に同じであり、実際の回転動きベクトル２６０８、２６１６は実質的に同じである。並進動きベクトル２６１４の大きさＶ２から探索フレーム間隔Ｆ２がＦ２≦Ｓ／Ｖ２によって決定されると、実際のカメラ並進が小さい場合でも、それに対して過小な探索フレーム間隔Ｆが設定されてしまう。しかし、探索フレーム間隔Ｆが短く設定されても、その後の対応点探索において対応点が見失われることはないため、短い探索フレーム間隔Ｆの設定は問題とならない。
【０１３０】
以上の理由から、Ｆ１≦Ｆ２となるように探索フレーム間隔Ｆ１が設定されることが好ましい。そして、前述の式（１２）を参照すると、撮像装置２１００の横並進に対する像の移動は被写体距離Ｚに反比例するため、像動きベクトルの大きさも被写体距離Ｚに反比例し、Ｖ１＝Ｖ２×Ｚ１／Ｚ２が成り立つ。したがって、探索フレーム間隔Ｆについても、Ｆ１≦Ｆ２×Ｚ１／Ｚ２となるように設定されると、近距離被写体についても遠距離被写体と同様に、対応点を探索範囲内で特定することができる（すなわち、画像処理装置が特徴点を「見失う」ことがない）。したがって、探索フレーム間隔Ｆ１について、Ｆ１≦Ｆ２×Ｚ１／Ｚ２となるように設定されることが好ましい。
【０１３１】
上述の方法により探索フレーム間隔Ｆが決定された後に、決定された探索フレーム間隔Ｆで対応点が探索される。この場合も、姿勢検出部２１０８によって検出される撮像装置２１００の回転角を用いて探索開始点が決定され、対応点探索が実行される。ところで、回転角は探索フレーム間隔Ｆに相当する撮影間隔の時間積算値であるため、対応する時間にわたって積算される回転角がその後の処理で用いられる。すなわち、探索フレーム間隔Ｆが大きい場合には、積算される回転角も増大する。姿勢検出部２１０８によって出力された回転角はわずかな誤差を有するため、回転角の積算によってこの誤差も積算され、無視できない大きさのドリフトが発生し得る。これにより、探索開始点Ｐｓが対応点から大きく離れた位置に決定され、対応点が探索範囲を外れてしまい、対応点が特定されない可能性がある。これに対処するため、探索フレーム間隔Ｆが大きい特徴点ほど、広い探索範囲が設定される。
【０１３２】
図２７は図１１と同様の探索フレーム間隔Ｆの設定例であり、特徴点４０１に対する対応点探索フレーム間隔は１である。特徴点４０１に対する対応点探索範囲２７０１、特徴点４０２に対する対応点探索範囲２７０２は、それぞれの対応点探索開始点を中心とした矩形領域である。対応点探索範囲２７０１は通常の対応点探索範囲と同じ大きさに設定される一方で、対応点探索範囲２７０２は通常の対応点探索範囲よりも広く設定される。これによって、探索フレーム間隔に相当する時間内にドリフトが発生しても、特徴点４０２の対応点は対応点探索範囲２７０２内にあり、探索可能となる。
【０１３３】
図２８を参照して、対応点探索範囲の決定について説明する。時間経過に対する姿勢検出部２１０８のドリフトの量は、予め推定されている。図２８は、撮像装置２１００に角度変化を与えずに静止した場合に姿勢検出部２１０８によって出力される角度のプロットを示す。横軸は時間を表し、縦軸は角度を表す。姿勢検出部２１０８によって出力される角度プロット２８０３を実線で示し、角度プロット２８０３の近似直線２８０４を破線で示す。近似直線２８０４は、実際の値である角度プロット２８０３が超えないように傾きが決められる。これにより、ドリフトの最悪値を用いて探索範囲を大きく設定することができるため、対応点探索の失敗が回避される。時間間隔２８０５は図２７の特徴点４０２に対する探索フレーム間隔Ｆに相当する時間であり、この場合にはドリフト量δθは０．７°に設定される。なお、説明を簡単にするために１成分のドリフトが示されるが、実際には回転角θｘ、θｙ、θｚに対するドリフト量δθｘ、δθｙ、δθｚが予め計測されている。
【０１３４】
図２９を参照して、探索範囲の決定方法について説明する。図２９に、ドリフト量と探索範囲の関係を示す。説明の便宜上、回転角に関してｘ軸の周りの回転角θｘのみが検討されるが、回転角θｙ、回転角θｚ又はこれらの複合的な回転角についても同様の検討が当てはまる。探索開始点２９０１は、姿勢検出部２１０８によって出力された回転角に基づいて決定された位置である。これに対して、探索開始点２９０２は、ドリフトが回転角の正方向に付加された場合の計算位置である。この計算位置は、式（８）においてθｘ→θｘ＋δθｘとした場合に、式（１０）によって計算される位置である。探索開始点２９０３は、ドリフトが回転角の負方向に付加された場合の計算位置である。この計算位置は、式（８）においてθｘ→θｘ−δθｘとした場合に、式（１０）によって計算される位置である。探索範囲２９０４は、探索開始点２９０２を中心とする探索範囲であり、通常の対応点探索に用いる大きさを有する。探索範囲２９０５も、同様に、探索開始点２９０３を中心とする探索範囲である。探索範囲２９０４、２９０５の双方を含む領域が探索範囲２９０６である。このように広い探索範囲２９０６を設定することで、ドリフト量が回転角の正負のどちらの方向に付加されても対応点探索が可能となる。ここでは、回転角θｘのみが検討されるが、回転角θｙ、θｚについても、正負のドリフト量に関して同様の計算が実行され、全ての探索範囲を含む大きさの探索範囲２９０６が設定され得る。
【０１３５】
図３０は、図１１と同様の探索フレーム間隔の設定例を示す。図中の〇印は、特徴点４０１又は特徴点４０２の対応点探索を行わずに、×印を記したフレームで対応点探索を行った結果から予測された特徴点である。撮像装置２１００の回転又は並進の速度が略一定の場合には、第ｎ＋１フレームにおける特徴点４０１の対応点３００１は、他のフレームにおける対応点から外挿や補間などの方法によって予測可能である。例えば、リアルタイム処理の場合には第ｎフレーム以前のフレームにおける特徴点４０１の位置から外挿などの方法によって対応点３００１が予測され得る。また、オフライン処理の場合には、第ｎフレーム以前のフレームと併せて第ｎ＋２フレーム以降のフレームも用いて補間などの方法により、対応点３００１が予測され得る。また、撮像装置２１００の回転が不規則である場合には、その回転に起因する動きベクトルは姿勢検出部２１０８が検出された回転角から算出される。これに対して、撮像装置２１００の並進に起因する動きベクトルは、他のフレームにおける並進動きベクトルから外挿や補間などによって予測される。そして、上記双方の動きベクトルの加算によって合計の動きベクトルが算出され、合計の動きベクトルを用いて対応点３００１が予測される。
【０１３６】
図３１を参照して、上記の予測方法を詳細に説明する。図３１に、像の移動と動きベクトルを示す。画像３１００では、図３０の第ｎフレーム、第ｎ＋１フレーム、第ｎ＋２フレームが重ねられている。像が破線で示された第ｎフレーム、第ｎ＋２フレームにおいて探索された対応点を用いて、像が実線で示された第ｎフレームにおける対応点が予測される。第ｎフレームにおける対応点３１０２、第ｎ＋２フレームにおける対応点３１１０は、前述してきた対応点探索方法により特定されており、これらを用いて第ｎフレームにおける対応点３１０６が予測される。第ｎ＋２フレームにおける並進動きベクトル３１０９は、探索開始点３１０８からの差分で算出される。姿勢検出部２１０８は、第ｎフレームの撮影時刻と第ｎ＋１フレームの撮影時刻との間の撮像装置２１００の回転角、第ｎ＋１フレームの撮影時刻と第ｎ＋２フレームの撮影時刻との間の撮像装置２１００の回転角を出力する。これらの回転角の積算によって、第ｎフレームの撮影時刻と第ｎ＋２フレームの撮影時刻との間の撮像装置２１００の回転角が算出される。撮像装置２１００の回転角から回転動きベクトル３１０７を算出することによって、探索開始点３１０８を算出することができる。第ｎフレームにおける並進動きベクトル３１０１も、同様にして算出される。第ｎ＋１フレームにおける動きベクトルのうち、回転動きベクトル３１０３は、第ｎフレームの撮影時刻と第ｎ＋１フレームの撮影時刻との間の撮像装置２１００の回転角を用いることによって算出可能である。残余の並進動きベクトル３１０５は、並進動きベクトル３１０１、３１０９を用いて予測される。
【０１３７】
図３２を用いて並進動きベクトルの補間方法を説明する。図３２では、図３１に示した各フレームの像から回転動きベクトルの縦成分が除去されており、探索開始点３１０４、３１０８の縦方向の位置は揃っている。線分３２０１は、回転動きベクトル除去後の対応点３１０２、３１１０を通る。線分３２０１の中点が第ｎ＋１フレームにおける対応点３１０６となるように、補間計算が実行される。これにより対応点３１０６と探索開始点３１０４の差から第ｎ＋１フレームにおける並進動きベクトル３１０５が算出される。第ｎフレームにおける対応点３１０２に回転動きベクトル３１０３（図３１参照）と並進動きベクトル３１０５を加えた位置が、対応点３１０６の予測位置となる。なお、補間の手法は線形である必要はなく、第ｎフレーム以前のフレーム、第ｎ＋２フレーム以前のフレームなどを用いて多項式補間、スプライン補間など補間方法が採用され得る。
【０１３８】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。被写体距離Ｚ１は被写体距離Ｚ２以下であるものとする。探索間隔決定部１１５は、特徴点Ｐ１の対応点を特定するための探索フレーム間隔Ｆ１が特徴点Ｐ２の対応点を特定するための探索フレーム間隔Ｆ２よりも相対的に短くなるように探索フレーム間隔Ｆ１、Ｆ２を決定する。並進動きベクトル演算部２１１３には、特徴点Ｐ１、Ｐ２が抽出された時刻ｔ１における撮像装置２１００の第１の姿勢情報、並びに特徴点Ｐ１、Ｐ２の対応点が特定される時刻ｔ２における撮像装置２１００の第２の姿勢情報が入力される。並進動きベクトル演算部２１１３は、第１の姿勢情報、第２の姿勢情報から撮像装置２１００の姿勢変化を特定する。そして、並進動きベクトル演算部２１１３は、姿勢変化に基づいて特徴点Ｐ１に対する時刻ｔ２での撮影画像上における位置Ｐｓ１、特徴点Ｐ２に対する時刻ｔ２での撮影画像上における位置Ｐｓ２を計算する。対応点探索部１１６は、位置Ｐｓ１、Ｐｓ２を開始点として、探索フレーム間隔Ｆ１、Ｆ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【０１３９】
これにより、相対的に近距離側の特徴点に対して相対的に短い探索フレーム間隔Ｆが設定され、相対的に遠距離側の特徴点に対して相対的に長い探索フレーム間隔Ｆが設定され、かつ対応点探索の開始点が適切に決定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及びより低い計算負荷での対応点探索が可能となる。
【０１４０】
＜第６実施形態＞
上記第５実施形態では、個々の特徴点について対応点探索のための探索フレーム間隔Ｆが決定される構成を示したが、本実施形態では同程度の被写体距離の特徴点については同じ探索フレーム間隔Ｆが用いられる構成を示す。
【０１４１】
以下、図３３、図３４を参照して、本発明の第６実施形態について説明する。図３３は、本実施形態に係る画像処理部３３１０の機能的構成を模式的に示すブロック図である。画像処理部３３１０は、第５実施形態の撮像装置２１００に含まれる画像処理部２１１０の代替となる画像処理装置を構成する。画像処理部３３１０は、第５実施形態と同様の記憶部１１１、特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６に加えて、層分割部１２１７を含む。なお、本実施形態における層分割部１２１７による層分割手法は、第２実施形態に示したものと同様である。
【０１４２】
図３４は、本実施形態に係る画像処理部３３１０によって実行される画像処理方法を示すフローチャートである。図３４に示すステップＳ２２０１、Ｓ２２０２、Ｓ２２０４、Ｓ２２０６、Ｓ２２０７、Ｓ２２１６は第５実施形態の対応するステップと同様であり、ステップＳ２２１６の後にステップＳ３４０１が実行される。
【０１４３】
第５実施形態と同様に、ステップＳ２２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ２２０２において、探索間隔決定部１１５が、全ての特徴点に対して探索フレーム間隔Ｆを初期値として決定する。ステップＳ２２０３において第２フレーム以降のループが開始され、ステップＳ２２０４において特徴点に対する処理のループが開始される。ステップＳ２２０６において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。ステップＳ２２０７において、動きベクトル演算部１１３が、現在の特徴点に対して動きベクトルの大きさＶを算出する。そして、ステップＳ２２１６において、特徴点に対する処理のループが終了する。
【０１４４】
ステップＳ３４０１において、層分割部１２１７が、記憶部１１１に記憶された層情報に従って遠距離側の層（図１３の例では層Ｌ３）から順に処理を行うループを開始する。ステップＳ３４０２において、層分割部１２１７は、ステップＳ２２０６において算出された各特徴点に対する被写体距離Ｚに基づいて、現在の層に属する特徴点を特定する。
【０１４５】
ステップＳ３４０３において、並進動きベクトル演算部２１１３が、現在の層の動きベクトル（並進動きベクトル）を求める。層の並進動きベクトルは、ステップＳ３４０２において現在の層に分類された特徴点の並進動きベクトルから算出され得る。例えば、現在の層に属する特徴点の並進動きベクトルの平均値が層の並進動きベクトルと定義されてもよいし、ある特定の特徴点（代表となる特徴点）が現在の層の並進動きベクトルと定義されてもよいし、その他の定義が用いられてもよい。特に、以下に示すように、上記の特定の特徴点に関して、現在の層に属する特徴点のうち最小の被写体距離Ｚを有する特徴点が特定の特徴点と定義されることが好ましい。撮像装置２１００と層との関係は、第２実施形態において説明した図１５に示す撮像装置１００と層との関係と同様である。
【０１４６】
ステップＳ３４０４において、距離演算部１１４又は層分割部１２１７は、現在の層についての被写体距離（以下、「層距離」という）を特定する。例えば、層距離は、現在の層の距離範囲の中間値（例えば、層Ｌ２の場合の（ｒ１＋ｒ２）／２）であってもよいし、最小値（例えば、層Ｌ２の場合のｒ１）であってもよいし、他の値であってもよい。あるいは、現在の層において最小の被写体距離を有する特徴点の被写体距離Ｚであってもよい。この場合、ステップＳ３４０３に関して説明したのと同様の理由により、当該層内の他の特徴点が探索範囲外となる可能性、すなわち対応点が見失われる可能性が低減する。
【０１４７】
ステップＳ３４０５において、層分割部１２１７は、現在の層が、設定された層のうちの最大の距離範囲を有する層（最遠層）か否かを判定する。現在の層が最遠層である場合（ステップＳ３４０５、ＹＥＳ）、処理はステップＳ３４０６に進み、現在の層が最遠層でない場合（ステップＳ３４０５、ＮＯ）、処理はステップＳ３４０７に進む。
【０１４８】
ステップＳ３４０６において、探索間隔決定部１１５が、ステップＳ３４０３で決定された層の並進動きベクトルを用いて、現在の層に属する特徴点の探索フレーム間隔Ｆを決定する。ステップＳ３４０６における探索フレーム間隔Ｆの決定は、第５実施形態において説明したステップＳ２５０２と同様の態様で行われてもよいし、他の態様で行われてもよい。
【０１４９】
ステップＳ３４０７において、探索間隔決定部１１５は、ステップＳ３４０４で決定された現在の層の層距離、前回ループでのステップＳ３４０６で決定された最遠層に対する探索フレーム間隔Ｆに基づいて、現在の層の探索フレーム間隔Ｆを決定する。ステップＳ１４０７における探索フレーム間隔Ｆの決定は、第５実施形態において説明したステップＳ２５０３と同様の態様で行われてもよいし、他の態様で行われてもよい。これにより、姿勢検出部２１０８によって出力される撮像装置２１００の回転角に含まれ得る誤差に起因して並進動きベクトルが過小に算出されてしまった場合でも、対応点が探索範囲外とならず、すなわち対応点が見失われることなく特定され得る。最も近距離側の層についてステップＳ３４０７が終了すると、ステップＳ３４０８において処理は層のループを終了する。
【０１５０】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、距離演算部１１４、探索間隔決定部１１５、対応点探索部１１６、並進動きベクトル演算部２１１３、層分割部１２１７を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。層分割部１２１７は、撮影画像を被写体距離の範囲に応じた複数の層に分類する。被写体距離Ｚ１は被写体距離Ｚ２以下であるものとする。探索間隔決定部１１５は、特徴点Ｐ１が含まれる層に属する対応点を探索するための探索フレーム間隔Ｆ１が、特徴点Ｐ２が含まれる層に属する対応点を探索するための探索フレーム間隔Ｆ２以下となるように、探索フレーム間隔Ｆ１、Ｆ２を決定する。並進動きベクトル演算部２１１３には、特徴点Ｐ１、Ｐ２が抽出された時刻ｔ１における撮像装置２１００の第１の姿勢情報並びに特徴点Ｐ１、Ｐ２の対応点が特定される時刻ｔ２における撮像装置２１００の第２の姿勢情報が入力される。並進動きベクトル演算部２１１３は、第１の姿勢情報と第２の姿勢情報から撮像装置２１００の姿勢変化を特定する。そして、並進動きベクトル演算部２１１３は、姿勢変化に基づいて特徴点Ｐ１に対する時刻ｔ２での撮影画像上における位置Ｐｓ１、特徴点Ｐ２に対する時刻ｔ２での撮影画像上における位置Ｐｓ２を計算する。対応点探索部１１６は、位置Ｐｓ１、Ｐｓ２を開始点として、探索フレーム間隔Ｆ１、Ｆ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【０１５１】
これにより、相対的に近距離側の特徴点に対して相対的に短い探索フレーム間隔Ｆが設定され、相対的に遠距離側の特徴点に対して相対的に長い探索フレーム間隔Ｆが設定され、かつ対応点探索の開始点が適切に決定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及びより低い計算負荷での対応点探索が可能となる。また、第２実施形態と同様に、階層化された対応点探索処理によって、対応点探索に伴う計算量をさらに低減することが可能となる。
【０１５２】
＜第７実施形態＞
上記第５、第６実施形態では、半探索範囲Ｓが一定であり、探索フレーム間隔Ｆが被写体距離Ｚに応じて変更される構成を示したが、本実施形態では、探索フレーム間隔Ｆが一定であり、半探索範囲Ｓが被写体距離に応じて変更される構成を示す。
【０１５３】
以下、図３５乃至図３７を参照して、本発明の第７実施形態について説明する。図３５は、本実施形態に係る画像処理部３５１０の機能的構成を模式的に示すブロック図である。画像処理部３５１０は、第５実施形態の撮像装置２１００に含まれる画像処理部２１１０の代替となる画像処理装置を構成する。画像処理部３５１０は、第５実施形態と同様の記憶部１１１、特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４及び対応点探索部１１６に加えて、探索範囲決定部１６１５を含む。言い換えると、本実施形態では、第５実施形態の探索間隔決定部１１５の代わりに探索範囲決定部１６１５が設けられる。
【０１５４】
図３６、図３７は、本実施形態に係る画像処理部３５１０によって実行される画像処理方法を示すフローチャートである。図３６に示すステップＳ２２０１、Ｓ２２０３、Ｓ２２０４、Ｓ２２０６、Ｓ２２０７、Ｓ２２０９、Ｓ２２１４、Ｓ２２１６、Ｓ２２１７は、第５実施形態の対応するステップと同様である。
【０１５５】
ステップＳ２２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ３６０２において、探索範囲決定部１６１５が、全ての特徴点に対して半探索範囲Ｓを決定する。ステップＳ２２０３において第２フレーム以降のループが開始され、ステップＳ２２０４において特徴点に対する処理のループが開始される。
【０１５６】
ステップＳ３６０５において、探索範囲決定部１６１５が、半探索範囲Ｓを変更するか否かを予め決定された変更判定条件に基づいて判定する。この変更判定条件は、記憶部１１１に記憶されている。変更判定条件は、例えば、１００フレームに１度の頻度で半探索範囲Ｓを変更することを規定するものであってもよいし、対応点探索に失敗した特徴点が発生した場合に半探索範囲Ｓを変更することを規定するものであってもよい。半探索範囲Ｓを変更する場合（ステップＳ３６０５、ＹＥＳ）、処理はステップＳ２２０６に進み、半探索範囲Ｓを変更しない場合（ステップＳ３６０５、ＮＯ）、処理はステップＳ２２１４に進む。
【０１５７】
ステップＳ２２０６において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。ステップＳ２２０７において、動きベクトル演算部１１３が、現在の特徴点に対して並進動きベクトルの大きさＶを算出する。
【０１５８】
ステップＳ３６０８において、特徴点抽出部１１２が、その時点までに半探索範囲Ｓが決定されたフレームが存在するか否かを判定する。半探索範囲Ｓが決定されたフレームが存在する場合（ステップＳ３６０８、ＹＥＳ）、処理はステップＳ２２０９に進み、半探索範囲Ｓが決定されたフレームが存在しない場合（ステップＳ３６０８、ＮＯ）、処理はステップＳ３６１１に進む。
【０１５９】
ステップＳ２２０９において、特徴点抽出部１１２が、最大の被写体距離の特徴点を選出して特徴点Ｐ２に指定する。ステップＳ３６１０において、現在の特徴点の半探索範囲Ｓを決定する。ステップＳ３６１０の詳細は後述する。ステップＳ３６１１において、探索範囲決定部１６１５は、記憶部１１１に記憶された半探索範囲Ｓ、ステップＳ２２０７において算出された並進動きベクトルの大きさＶを参照して、Ｓ≦Ｆ×Ｖを満たすように現在の特徴点に対する半探索範囲Ｓを決定する。
【０１６０】
ここで、図３７に示すフローチャートを用いてステップＳ３６１０について詳細に説明する。まず、一部を上述したように、各パラメータが以下のように定義される。特徴点Ｐ１、Ｐ２についての被写体距離ＺはそれぞれＺ１、Ｚ２であり、特徴点Ｐ１、Ｐ２についての並進動きベクトルの大きさＶはそれぞれＶ１、Ｖ２である。特徴点Ｐ１、Ｐ２についての半探索範囲ＳはそれぞれＳ１（第１の探索範囲）、Ｓ２（第２の探索範囲）であり、半探索範囲Ｓ１、Ｓ２が本フローによって決定される。
【０１６１】
ステップＳ３７０１（図３６のステップＳ２２０９の後）において、注目特徴点の並進動きベクトルの大きさＶと、最大の被写体距離の特徴点の並進動きベクトルの大きさＶ２が比較される。Ｖ≦Ｖ２の場合（ステップＳ３７０１、ＹＥＳ）、ステップＳ３７０２に進む。Ｖ＞Ｖ２の場合（ステップＳ３７０１、ＮＯ）、ステップＳ３７０３に進む。
【０１６２】
ステップＳ３７０２では注目特徴点に対する半探索範囲Ｓを記憶部１１１に記憶された探索フレーム間隔Ｆと並進動きベクトルの大きさＶに基づいて、Ｓ≧Ｆ×Ｖを満たす半探索範囲Ｓが決定される。ステップＳ３７０３では、最大の被写体距離の特徴点の被写体距離Ｚ２、半探索範囲Ｓ２と注目特徴点の被写体距離Ｚを用いて、Ｓ≧Ｓ２×Ｚ２／Ｚを満たすように注目特徴点に対する半探索範囲Ｓが決定される。ステップＳ３７０３において単に、Ｓ≧Ｓ２のみを満たすようにＳが決定されてもよい。この場合、並進動きベクトル演算部２１１３による並進動きベクトルの大きさＶの算出が不要となり、処理が簡素化される。上述してきたように、撮像装置２１００の並進に対する像の動きは、被写体距離Ｚが小さいほど大きくなる。したがって、（被写体距離Ｚが相対的に小さい特徴点に対して相対的に短い探索フレーム間隔Ｆが設定されることが好ましいのと同様に）被写体距離が相対的に小さい特徴点に対して相対的に広い半探索範囲Ｓが設定されることが好ましい。特に、Ｓ＝Ｓ２＝Ｆ×Ｖ２である場合に、探索範囲が最小となり、計算量の最小化が可能となる。ステップＳ３７０２又はＳ３７０３が終了すると、処理は図３６のステップＳ２２１４に進む。
【０１６３】
ステップＳ２２１４において、対応点探索部１１６が、対応点探索計算を実行する。ステップＳ２２１６において特徴点に対する処理のループが終了し、ステップＳ２２１７において第２フレーム以降の処理が終了する。
【０１６４】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４、探索範囲決定部１６１５、対応点探索部１１６を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。被写体距離Ｚ１が被写体距離Ｚ２以下である場合に、探索範囲決定部１６１５は、特徴点Ｐ１に対する半探索範囲Ｓ１が特徴点Ｐ２に対する半探索範囲Ｓ２以上となるように半探索範囲Ｓ１、Ｓ２を決定する。並進動きベクトル演算部２１１３には、特徴点Ｐ１、Ｐ２が抽出された時刻ｔ１における撮像装置２１００の第１の姿勢情報並びに特徴点Ｐ１、Ｐ２の対応点が特定される時刻ｔ２における撮像装置２１００の第２の姿勢情報が入力される。並進動きベクトル演算部２１１３は、第１の姿勢情報、第２の姿勢情報から撮像装置２１００の姿勢変化を特定する。そして、並進動きベクトル演算部２１１３は、姿勢変化に基づいて特徴点Ｐ１に対する時刻ｔ２での撮影画像上における位置Ｐｓ１、特徴点Ｐ２に対する時刻ｔ２での撮影画像上における位置Ｐｓ２を計算する。対応点探索部１１６は、位置Ｐｓ１、Ｐｓ２を開始点として、半探索範囲Ｓ１、Ｓ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【０１６５】
これにより、相対的に近距離側の特徴点に対して相対的に広い探索範囲が設定され、相対的に遠距離側の特徴点に対して相対的に狭い探索範囲が設定され、かつ対応点探索の開始点が適切に決定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及び低い計算負荷での対応点探索が可能となる。また、全ての特徴点に対して同一の探索フレーム間隔Ｆで対応点探索が実行されるので、対応点探索フレームと対応点予測フレームを揃えることができ、画像全体において対応点対策の計算負荷が低減可能となる。
【０１６６】
＜第８実施形態＞
上記第７実施形態では、個々の特徴点について対応点探索のための半探索範囲Ｓが決定される構成を示したが、本実施形態では同程度の被写体距離の特徴点については同じ半探索範囲Ｓが用いられる構成を示す。
【０１６７】
以下、図３８、図３９を参照して、本発明の第８実施形態について説明する。図３８は、本実施形態に係る画像処理部３８１０の機能的構成を模式的に示すブロック図である。画像処理部３８１０は、第５実施形態の撮像装置２１００に含まれる画像処理部２１１０の代替となる画像処理装置を構成する。画像処理部３８１０は、記憶部１１１、特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４、層分割部１２１７、探索範囲決定部１６１５、対応点探索部１１６を含む。
【０１６８】
図３９は、本実施形態に係る画像処理部３８１０によって実行される画像処理方法を示すフローチャートである。図３９において、ステップＳ２２０１、Ｓ２２０４、Ｓ２２０６、Ｓ２２０７、Ｓ２２１６は、第５実施形態の対応するステップと同様である。また、ステップＳ３４０１〜Ｓ３４０５、Ｓ３４０８は第６実施形態の対応するステップと同様であり、ステップＳ３６０２は第３実施形態の対応するステップと同様である。
【０１６９】
ステップＳ２２０１において、特徴点抽出部１１２が、画像Ｘの第１フレームから複数の特徴点を抽出する。ステップＳ３６０２において、探索範囲決定部１６１５が、全ての特徴点に対して半探索範囲Ｓを初期値として決定する。ステップＳ２２０４において、特徴点に対する処理のループが開始される。ステップＳ２２０６において、距離演算部１１４が、現在の特徴点に対して被写体距離Ｚを算出する。ステップＳ２２０７において、動きベクトル演算部１１３が、現在の特徴点に対して動きベクトルの大きさＶを算出する。ステップＳ２２１６において、特徴点に対する処理のループが終了する。
【０１７０】
ステップＳ３４０１において、層分割部１２１７が、記憶部１１１に記憶された層情報に従って遠距離側の層（図１３の例では層Ｌ３）から順に処理を行うループを開始する。ステップＳ３４０２において、層分割部１２１７は、ステップＳ２２０６において算出された各特徴点に対する被写体距離Ｚに基づいて、現在の層に属する特徴点を特定する。ステップＳ３４０３において、並進動きベクトル演算部２１１３が、現在の層の並進動きベクトルを求める。層の並進動きベクトルは、ステップＳ３４０２において現在の層に分類された特徴点の並進動きベクトルから算出され得る。ステップＳ３４０４において、距離演算部１１４又は層分割部１２１７は、現在の層についての層距離を特定する。
【０１７１】
ステップＳ３４０５において、層分割部１２１７は、現在の層が、設定された層のうちの最大の距離範囲を有する層（最遠層）か否かを判定する。現在の層が最遠層である場合（ステップＳ３４０５、ＹＥＳ）、処理はステップＳ３９０６に進み、現在の層が最遠層でない場合（ステップＳ３４０５、ＮＯ）、処理はステップＳ３９０７に進む。
【０１７２】
ステップＳ３９０６において、探索範囲決定部１６１５が、ステップＳ３４０３で決定された層の並進動きベクトルを用いて、現在の層に属する特徴点の半探索範囲Ｓを決定する。ステップＳ３９０６における半探索範囲Ｓの決定は、第７実施形態において説明したステップＳ３７０３と同様の態様で行われてもよいし、他の態様で行われてもよい。
【０１７３】
ステップＳ３９０７において、探索範囲決定部１６１５は、ステップＳ３４０４で決定された現在の層の層距離、前回ループでのステップＳ３９０６で決定された最遠層に対する半探索範囲Ｓに基づいて、現在の層の半探索範囲Ｓを決定する。ステップＳ３９０７における半探索範囲Ｓの決定は、第７実施形態において説明したステップＳ３７０４と同様の態様で行われてもよいし、他の態様で行われてもよい。最も近距離側の層についてステップＳ３９０７が終了すると、ステップＳ３４０８において処理は層のループを終了する。
【０１７４】
以上のように、本実施形態によると、画像処理装置は、少なくとも特徴点抽出部１１２、並進動きベクトル演算部２１１３、距離演算部１１４、探索範囲決定部１６１５、対応点探索部１１６、層分割部１２１７を備える。特徴点抽出部１１２が時系列の撮影画像から少なくとも特徴点Ｐ１、Ｐ２を抽出し、距離演算部１１４が特徴点Ｐ１に対応する被写体までの被写体距離Ｚ１、特徴点Ｐ２に対応する被写体までの被写体距離Ｚ２の距離情報を取得する。被写体距離Ｚ１は被写体距離Ｚ２以下である場合、探索範囲決定部１６１５は、特徴点Ｐ１が含まれる層に属する対応点に対する半探索範囲Ｓ１が、特徴点Ｐ２が含まれる層に属する対応点に対する半探索範囲Ｓ２以上となるように半探索範囲Ｓ１、Ｓ２を決定する。並進動きベクトル演算部２１１３には、特徴点Ｐ１、Ｐ２が抽出された時刻ｔ１における撮像装置２１００の第１の姿勢情報並びに特徴点Ｐ１、Ｐ２の対応点が特定される時刻ｔ２における撮像装置２１００の第２の姿勢情報が入力される。並進動きベクトル演算部２１１３は、第１の姿勢情報、第２の姿勢情報から撮像装置２１００の姿勢変化を特定する。そして、並進動きベクトル演算部２１１３は、姿勢変化に基づいて特徴点Ｐ１に対する時刻ｔ２での撮影画像上における位置Ｐｓ１、特徴点Ｐ２に対する時刻ｔ２での撮影画像上における位置Ｐｓ２を計算する。対応点探索部１１６は、位置Ｐｓ１、Ｐｓ２を開始点として、半探索範囲Ｓ１、Ｓ２に基づいて特徴点Ｐ１、Ｐ２のそれぞれの対応点を探索する。
【０１７５】
これにより、相対的に近距離側の特徴点に対して相対的に広い探索範囲が設定され、相対的に遠距離側の特徴点に対して相対的に狭い探索範囲が設定され、かつ対応点探索の開始点が適切に決定される。したがって、例えば、カメラの並進及び回転が同時に発生した状態から回転が停止して並進のみが残るような複雑なカメラの動きに対しても高い計算精度及びより低い計算負荷での対応点探索が可能となる。また、全ての特徴点に対して同一の探索フレーム間隔Ｆで対応点探索が実行されるので、対応点探索フレームと対応点予測フレームを揃えることができ、画像全体において対応点対策の計算負荷が低減可能となる。また、第２、第４、第６実施形態と同様に、階層化された対応点探索処理によって対応点探索に伴う計算量をさらに低減することが可能となる。
【０１７６】
＜第９実施形態＞
本発明の目的は、以下の実施形態によっても達成可能である。すなわち、上述の実施形態の機能（各演算部などの機能）を実現するソフトウェアのプログラムコード（画像処理プログラム）を格納した記憶又は記録媒体が、画像処理装置に供給される。そして、その演算部のコンピュータ（またはＣＰＵ、ＭＰＵなど）が、記憶媒体に格納されたプログラムコードを読み出し、上記機能を実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述の実施形態の機能を実現することになり、そのプログラム（画像処理プログラム）及びこれを格納した記憶媒体は本発明を構成する。本発明のプログラム（画像処理プログラム）が、所定の結像光学系、所定の撮像部及びコンピュータを備えた撮像装置のコンピュータにインストールされることによって、撮像装置の高速かつ低負荷な対応点探索が可能となる。本発明のコンピュータは、記憶媒体による頒布の他、インターネットを通じて頒布可能である。
【０１７７】
＜変形実施形態＞
以上に本発明の好適な実施形態を示したが、本発明は、例えば以下に示すように種々の態様に変形可能である。
【０１７８】
（１）ステレオ測距方法の適用
上記各実施形態では、被写体距離の測定方法（測距方法）として、光源１０７を有する測距部１０４を利用するアクティブ測距を例示したが、ステレオカメラを利用するステレオ測距が用いられてもよい。この場合、撮像部１０１は視差を有する画像を撮影できるように構成され、この視差画像の視差量が読み取られて被写体距離に換算される。例えば、２組のレンズ及び撮像素子が設けられ、２つのレンズから被写体までの距離が異なっていれば基線長から定まる視差画像が得られる。このようなステレオ測距の使用により、測距部１０４が不要となり、安価かつ簡素な構成の撮像装置１００、２１００が実現される。
【０１７９】
（２）単眼での測距方法の適用
一般に、カメラの自己位置指定推定の技術として、単眼カメラを用いて被写体の３次元位置及びカメラの位置を推定することができる。この推定結果から被写体距離を算出することが可能となる。１つの方法は、撮影時刻の異なる２枚の画像（Ｘ画像）を用いて視差量及びカメラの並進量から被写体距離を算出する方法である。他の方法は、既知の大きさの既知被写体が画像Ｘに写っている場合に、既知被写体像の大きさから既知被写体距離を算出し、この既知被写体距離から特徴点までの被写体距離を算出する方法である。このような単眼カメラを用いる自己位置姿勢推定技術によると、測距部１０４が不要となり、かつ撮像部１０１が複眼である必要もないため、更に安価かつ簡素な構成の撮像装置１００、２１００が実現される。
【０１８０】
（３）動画圧縮機能又は手振れ補正機能への適用
上記各実施形態では、本発明が自己位置姿勢推定に適用される構成を示したが、本発明は動画圧縮又は手振れ補正の機能にも適用され得る。この場合、位置姿勢推定部１１８は、動画圧縮演算部又は手振れ補正処理部として機能する。動画圧縮への適用に関して、対応点探索部１１６は、探索した対応点から特徴点の動きベクトルを演算して、動きベクトルの大きさに応じて時間的な動画圧縮処理を決定する。表示部１２０は、圧縮された動画を表示及び再生する。上述してきた本発明の効果によって対応点の探索が高速に実行されるので、動画圧縮にかかる時間が短縮され、動画表示のリアルタイム性が向上する。また、手振れ補正への適用に関して、対応点探索部１１６は、探索した対応点から特徴点の動きベクトルを演算して、手ぶれ補正の方向又は量を決定する。上述してきた本発明の効果によって対応点の探索が高速に実行されるので、手振れ補正の方向又は量の算出にかかる時間が短縮され、高フレームレートでの動画撮影においても手振れ補正が可能となる。
【０１８１】
（４）オフライン処理の実行
上記各実施形態では、撮像装置１００、２１００が画像Ｘ、画像Ｙの撮影から特徴点の対応点探索までの全処理が実行される構成を示したが、画像を撮影する撮像装置と対応点探索を行う画像処理装置は異なるハードウェアで実現されてもよい。例えば、画像処理装置がコンピュータで構成され、外部の撮像装置によって撮影された画像Ｘ、画像Ｙのデータが画像処理装置に読み込まれ得る。これにより、画像処理装置が、画像処理部１１０、１２１０、１６１０、１９１０、２１１０、３３１０、３５１０又は３８１０における一連の処理を実行するように構成され得る。画像Ｘ、画像Ｙの画像データの読み込みは、画像処理装置に有線接続された光学媒体又は半導体記憶装置を介して行われてもよいし、ネットワークなどを介して接続された記憶装置によって行われてもよい。読み込まれた画像データは記憶部１１１に記憶される。このように、撮影を行う撮像装置と対応点探索を行う画像処理装置を分離することによって、対応点探索の処理を高速化することが可能となる。これにより、例えば、高解像度の画像又は特徴点数の多い画像に対しても、対応点探索の低負荷な計算処理が可能となる。
【０１８２】
＜変形実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１８３】
１００、２１００  撮像装置
１０１  撮像部
１０４  測距部
１１０、１２１０、１６１０、１９１０、２１１０、３３１０、３５１０、３８１０  画像処理部
１１２  特徴点抽出部
１１３  動きベクトル演算部
１１４  距離演算部
１１５  探索間隔決定部
１１６  対応点探索部
１２１７  層分割部
１６１５  探索範囲決定部
２１１３  並進動きベクトル演算部
【図１】
2019185404.tif 000011
【図２】
2019185404.tif 000012
【図３】
2019185404.tif 000013
【図４】
2019185404.tif 000014
【図５】
2019185404.tif 000015
【図６】
2019185404.tif 000016
【図７】
2019185404.tif 000017
【図８】
2019185404.tif 000018
【図９】
2019185404.tif 000019
【図１０】
2019185404.tif 000020
【図１１】
2019185404.tif 000021
【図１２】
2019185404.tif 000022
【図１３】
2019185404.tif 000023
【図１４】
2019185404.tif 000024
【図１５】
2019185404.tif 000025
【図１６】
2019185404.tif 000026
【図１７】
2019185404.tif 000027
【図１８】
2019185404.tif 000028
【図１９】
2019185404.tif 000029
【図２０】
2019185404.tif 000030
【図２１】
2019185404.tif 000031
【図２２】
2019185404.tif 000032
【図２３】
2019185404.tif 000033
【図２４】
2019185404.tif 000034
【図２５】
2019185404.tif 000035
【図２６】
2019185404.tif 000036
【図２７】
2019185404.tif 000037
【図２８】
2019185404.tif 000038
【図２９】
2019185404.tif 000039
【図３０】
2019185404.tif 000040
【図３１】
2019185404.tif 000041
【図３２】
2019185404.tif 000042
【図３３】
2019185404.tif 000043
【図３４】
2019185404.tif 000044
【図３５】
2019185404.tif 000045
【図３６】
2019185404.tif 000046
【図３７】
2019185404.tif 000047
【図３８】
2019185404.tif 000048
【図３９】
2019185404.tif 000049