IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特許7605089キーポイント補正装置、キーポイント補正方法、及びプログラム
<>
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図1
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図2
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図3
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図4
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図5
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図6
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図7
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図8
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図9
  • 特許-キーポイント補正装置、キーポイント補正方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】キーポイント補正装置、キーポイント補正方法、及びプログラム
(51)【国際特許分類】
   G06T 7/246 20170101AFI20241217BHJP
【FI】
G06T7/246
【請求項の数】 10
(21)【出願番号】P 2021185000
(22)【出願日】2021-11-12
(65)【公開番号】P2023072441
(43)【公開日】2023-05-24
【審査請求日】2023-11-08
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】中野 雄介
【審査官】秦野 孝一郎
(56)【参考文献】
【文献】特開2006-323437(JP,A)
【文献】特開2018-032253(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06V 10/00-20/90
G06V 40/16
G06V 40/20
(57)【特許請求の範囲】
【請求項1】
複数の撮像画像を取得する取得部と、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出部と、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定部と、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定部と、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正部と、を有し、
前記適正条件は、前記移動物体の位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが満たすべき範囲である決定範囲を示し、
前記判定部は、前記移動物体の複数の前記キーポイントを用いて、前記移動物体の位置、大きさ、又は姿勢を特定し、前記特定した位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが前記決定範囲に含まれる場合に、前記適正条件が満たされていると判定する、キーポイント補正装置。
【請求項2】
前記判定部は、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントを正射変換することにより、複数の前記キーポイントそれぞれに対応するオルソ画像上のキーポイント対応点を算出し、
算出された複数の前記キーポイント対応点の位置に基づいて定まる前記オルソ画像上の前記移動物体の位置、大きさ、又は姿勢を、前記移動物体の位置、大きさ、又は姿勢として算出する、請求項に記載のキーポイント補正装置。
【請求項3】
前記移動物体について正解の前記キーポイントが定められている複数の教師画像を利用して、前記適正条件によって示される前記決定範囲を生成する決定範囲生成部を有し、
前記決定範囲生成部は、
複数の前記教師画像それぞれについて、その教師画像における正解の前記キーポイントと、その教師画像から検出されるその移動物体の前記キーポイントとの誤差を算出し、その誤差が閾値以下である場合に、その移動物体の前記キーポイントの特徴ベクトルを算出し、
算出された複数の前記特徴ベクトルをクラスタリングすることで得られる複数のクラスタのうち、安定度が閾値以上であるクラスタに含まれる前記特徴ベクトルを用いて、前記決定範囲を生成する、請求項に記載のキーポイント補正装置。
【請求項4】
複数の撮像画像を取得する取得部と、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出部と、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定部と、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定部と、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正部と、を有し、
前記判定部は、前記移動物体の複数の前記キーポイントについて、時間的な安定性を表す時間安定性指標値を算出し、前記時間安定性指標値が閾値以上である場合に、前記適正条件が満たされていると判定する、キーポイント補正装置。
【請求項5】
前記時間安定性指標値は、所定の時間内における前記移動物体の大きさの時間変化量が小さいほど大きい値となる、請求項に記載のキーポイント補正装置。
【請求項6】
前記時間安定性指標値は、前記移動物体の複数の前記キーポイントの信頼度が高いほど小さい値となる、請求項に記載のキーポイント補正装置。
【請求項7】
前記補正パラメータは前記移動物体の大きさを表し、
前記補正部は、前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントによって表されるその移動物体の大きさが、前記補正パラメータによって表される大きさとなるように、1つ以上の前記キーポイントを補正する、請求項1からいずれか一項に記載のキーポイント補正装置。
【請求項8】
コンピュータによって実行されるキーポイント補正方法であって、
複数の撮像画像を取得する取得ステップと、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出ステップと、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定ステップと、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定ステップと、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正ステップと、を有し、
前記適正条件は、前記移動物体の位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが満たすべき範囲である決定範囲を示し、
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントを用いて、前記移動物体の位置、大きさ、又は姿勢を特定し、前記特定した位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが前記決定範囲に含まれる場合に、前記適正条件が満たされていると判定する、キーポイント補正方法。
【請求項9】
コンピュータによって実行されるキーポイント補正方法であって、
複数の撮像画像を取得する取得ステップと、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出ステップと、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定ステップと、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定ステップと、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正ステップと、を有し、
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントについて、時間的な安定性を表す時間安定性指標値を算出し、前記時間安定性指標値が閾値以上である場合に、前記適正条件が満たされていると判定する、キーポイント補正方法。
【請求項10】
コンピュータに、
複数の撮像画像を取得する取得ステップと、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出ステップと、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定ステップと、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定ステップと、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正ステップと、を実行させ
前記適正条件は、前記移動物体の位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが満たすべき範囲である決定範囲を示し、
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントを用いて、前記移動物体の位置、大きさ、又は姿勢を特定し、前記特定した位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが前記決定範囲に含まれる場合に、前記適正条件が満たされていると判定する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、撮像画像に含まれる移動物体のキーポイントを検出する技術に関する。
【背景技術】
【0002】
車両や人などの移動物体を撮像することで得られる撮像画像を解析することで、これらの移動物体の画像上のキーポイントを検出する技術が開発されている。例えば特許文献1は、それぞれ異なるタイミングで生成される複数の撮像画像から移動物体のキーポイントを検出し、検出したキーポイントを利用して、部分的に変形する移動物体を安定して追跡する技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2010-039617号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1は、キーポイントの精度については言及していない。本開示は、撮像画像から検出される移動物体のキーポイントの精度を向上させる技術を提供するものである。
【課題を解決するための手段】
【0005】
本開示のキーポイント補正装置は、複数の撮像画像を取得する取得部と、前記撮像画像から移動物体の複数のキーポイントを検出する検出部と、前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定部と、前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定部と、前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正部と、を有する。
【0006】
本開示のキーポイント補正方法はコンピュータによって実行される。当該制御方法は、複数の撮像画像を取得する取得ステップと、各前記撮像画像から移動物体の複数のキーポイントを検出する検出ステップと、前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定ステップと、前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定ステップと、前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正ステップと、を有する。
【0007】
本開示のプログラムは、本開示のキーポイント補正方法をコンピュータに実行させる。
【発明の効果】
【0008】
本発明によれば、撮像画像から検出される移動物体のキーポイントの精度を向上させる技術が提供される。
【図面の簡単な説明】
【0009】
図1】実施形態1のキーポイント補正装置の動作の概要を例示する図である。
図2】対象物体のキーポイントを例示する図である。
図3】実施形態1のキーポイント補正装置の機能構成を例示するブロック図である。
図4】キーポイント補正装置を実現するコンピュータのハードウエア構成を例示するブロック図である。
図5】実施形態1のキーポイント補正装置によって実行される処理の流れを例示するフローチャートである。
図6】対象物体を表す矩形領域を決定する方法を例示する図である。
図7】補正パラメータの更新を行う機能を有するキーポイント補正装置について、その処理の流れの例示するフローチャートである。
図8】補正矩形を用いてキーポイント対応点を補正する方法を例示する図である。
図9】決定範囲生成部を有するキーポイント補正装置の機能構成を例示するブロック図である。
図10】教師画像を用いて決定範囲を生成する処理の流れを例示するフローチャートである。
【発明を実施するための形態】
【0010】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。また、特に説明しない限り、所定値や閾値などといった予め定められている値は、その値を利用する装置からアクセス可能な記憶部などに予め格納されている。さらに、特に説明しない限り、記憶部は、1つ以上の任意の数の記憶装置で構成される。
【0011】
[実施形態1]
<概要>
図1は、実施形態1のキーポイント補正装置2000の動作の概要を例示する図である。ここで、図1は、キーポイント補正装置2000の概要の理解を容易にするための図であり、キーポイント補正装置2000の動作は、図1に示したものに限定されない。
【0012】
キーポイント補正装置2000は、時系列の複数の撮像画像10(例えば、ビデオデータを構成する複数のビデオフレーム)から、対象物体20のキーポイントを検出する。対象物体20は、キーポイントの検出対象として扱われる、所定の種類の移動物体である。所定の種類は、例えば、車両、人、又は移動型ロボットなどである。車両としては、バス、トラック、若しくは乗用車などの任意の自動車、オートバイ、又は自転車などといった様々な種類の車両を扱うことができる。なお、キーポイント補正装置2000が対象物体20として扱う移動物体の種類は1種類には限定されず、複数種類の移動物体がそれぞれ対象物体20として扱われてもよい。例えばキーポイント補正装置2000は、任意の種類の車両、及び人を対象物体20として検出する。
【0013】
撮像画像10は、対象物体20を撮像できるように設けられたカメラ40によって生成される。例えば車両や人が対象物体20として扱われる場合、カメラ40は、道路を撮像可能な場所に設置される。カメラ40は、ビデオデータを生成するビデオカメラであってもよいし、静止画データを生成するスチルカメラであってもよい。後者の場合、カメラ40は、繰り返し撮像を行うことにより、時系列の複数の撮像画像10を生成する。
【0014】
対象物体20のキーポイントは、撮像画像10から検出される対象物体20の特徴点であり、対象物体20の位置や姿勢を表すために利用することができる。例えばキーポイントは、対象物体20を囲う3次元バウンディングボックスの底面の頂点を道路へ射影した点である。
【0015】
図2は、対象物体20のキーポイントを例示する図である。図2には、撮像画像10と、撮像画像10を正射変換することで得られるオルソ画像50とが示されている。撮像画像10からオルソ画像50を得るための正射変換は、所定のホモグラフィー行列を利用することで実現できる。
【0016】
バウンディングボックス60は、撮像画像10から検出された対象物体20を囲う3次元バウンディングボックスである。キーポイント30-1、キーポイント30-2、キーポイント30-3、及びキーポイント30-4はそれぞれ対象物体20のキーポイントであり、バウンディングボックス60の底面の各頂点を道路上に射影することで得られる。
【0017】
キーポイント対応点80は、正射変換によってオルソ画像50上に射影されたキーポイント30を表す。キーポイント対応点80-1、キーポイント対応点80-2、キーポイント対応点80-3、及びキーポイント対応点80-4はそれぞれ、キーポイント30-1、キーポイント30-2、キーポイント30-3、及びキーポイント30-4に対応する。
【0018】
キーポイント30は、対象物体20の3次元バウンディングボックスの底面の各頂点を道路へ射影した点に限定されない。例えば、対象物体20の3次元バウンディングボックスの各頂点をキーポイント30として扱ってもよい。
【0019】
キーポイント補正装置2000は、各撮像画像10に含まれる対象物体20のキーポイント30を検出する。ここで、1つの撮像画像10から複数の対象物体20が検出される場合、これら複数の対象物体20それぞれについて、キーポイント30の検出が行われる。
【0020】
さらにキーポイント補正装置2000は、各撮像画像10について、その撮像画像10から検出された対象物体20の中に、そのキーポイント30が所定の適正条件を満たしているものが存在するか否かを判定する。適正条件は、撮像画像10から対象物体20のキーポイント30が精度良く検出されている蓋然性が高く、そのキーポイント30がその対象物体20について、後述する補正パラメータの決定に適している場合に満たされる条件である。適正条件の具体的な内容については後述する。
【0021】
ここで、或る撮像画像10から検出された或る対象物体20についてのキーポイント30が適正条件を満たしている場合、その撮像画像10を、その対象物体20に対応する適正画像と呼ぶ。言い換えれば、或る対象物体20に対応する適正画像は、その対象物体20から検出されたキーポイント30が適正条件を満たしている撮像画像10である。
【0022】
撮像画像10から検出された対象物体20のキーポイント30が適正条件を満たしていると判定された場合、キーポイント補正装置2000は、その撮像画像10(適正画像)に対応する対象物体20について、キーポイント30の補正に利用する補正パラメータを決定する。補正パラメータは、対応する対象物体20について検出される複数のキーポイント30が満たすべき相対的な位置関係を表す。例えばキーポイント補正装置2000は、適正画像から得られるオルソ画像50上のキーポイント対応点80を用いて、その適正画像に対応する対象物体20を表すオルソ画像50上の矩形領域を決定する。そして、キーポイント補正装置2000は、この矩形領域の幅と高さの組み合わせを、対象物体20に対応する補正パラメータとして決定する。この補正パラメータにより、対象物体20についてのキーポイント対応点80が満たすべき相対的な位置関係が定まる。ここで、キーポイント対応点80はキーポイント30に対応する点である。そのため、対象物体20についてのキーポイント対応点80が満たすべき相対的な位置関係が定まることにより、対象物体20についてのキーポイント30が満たすべき相対的な位置関係も定まる。
【0023】
キーポイント補正装置2000は、撮像画像10から検出された対象物体20について補正パラメータが決定されている場合、その撮像画像10から検出されたその対象物体20のキーポイント30を、その対象物体20について決定された補正パラメータを利用して補正する。言い換えれば、キーポイント補正装置2000は、或る対象物体20についての適正画像よりも後に生成された撮像画像10からその対象物体20が検出された場合、その撮像画像10から検出されたその対象物体20のキーポイント30を、その対象物体20について決定された補正パラメータを利用して補正する。
【0024】
<作用効果の例>
キーポイント補正装置2000は、撮像画像10から対象物体20のキーポイント30を検出する。ここで、撮像画像10からキーポイント30を検出する処理の精度は、撮像画像10における対象物体20の見え方などによって異なりうる。例えば、対象物体20の位置や姿勢が、対象物体20の1つの側面しかカメラ40から撮像することができない位置や姿勢である状況では、その対象物体20をカメラ40で平面的にしか捉えることができず、その対象物体20のキーポイント30を検出する処理の精度が低くなりうる。一方、対象物体20の位置や姿勢が、対象物体20の上面及び2つの側面をカメラ40から撮像できる位置や姿勢である場合には、その対象物体20をカメラ40で立体的に捉えることができるため、その対象物体20のキーポイント30を検出する処理の精度が高くなりうる。
【0025】
このような、キーポイント30の精度に差異が生じうるという状況に鑑み、キーポイント補正装置2000は、高い精度で検出されたと考えられるキーポイント30を利用して、他のキーポイント30を補正する。ここで、キーポイント30が高い精度で検出できたと考えられる場合に満たされるように、適正条件を予め定めておく。そしてキーポイント補正装置2000は、撮像画像10から検出された対象物体20のキーポイント30が適正条件を満たす場合に、そのキーポイント30を用いて、その対象物体20の補正パラメータを決定する。こうすることで、高い精度で検出されたと考えられるキーポイント30により、補正パラメータが定まる。さらにキーポイント補正装置2000は、補正パラメータが決定されている対象物体20が撮像画像10から検出された場合に、その対象物体20のキーポイント30を、補正パラメータを利用して補正する。こうすることで、高い精度で検出されたと考えられるキーポイント30に基づいて、他のキーポイント30が補正される。そのため、キーポイント補正装置2000を利用することにより、補正パラメータの精度を向上させることができる。
【0026】
以下、本実施形態のキーポイント補正装置2000について、より詳細に説明する。
【0027】
<機能構成の例>
図3は、実施形態1のキーポイント補正装置2000の機能構成を例示するブロック図である。取得部2020は複数の撮像画像10を取得する。検出部2040は、各撮像画像10に含まれる対象物体20のキーポイント30を検出する。判定部2060は、撮像画像10から検出された対象物体20のキーポイント30が、補正パラメータの決定に用いることについての適正条件を満たしているか否かを判定する。決定部2080は、撮像画像10から検出された対象物体20のキーポイント30が適正条件を満たしている場合、そのキーポイント30を用いてその対象物体20についての補正パラメータを決定する。補正部2100は、撮像画像10から検出された対象物体20に対応する補正パラメータが決定されている場合、その撮像画像10から検出されたその対象物体20のキーポイント30を、その対象物体20に対応する補正パラメータを利用して補正する。
【0028】
<ハードウエア構成の例>
キーポイント補正装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、キーポイント補正装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0029】
図4は、キーポイント補正装置2000を実現するコンピュータ500のハードウエア構成を例示するブロック図である。コンピュータ500は、任意のコンピュータである。例えばコンピュータ500は、PC(Personal Computer)やサーバマシンなどといった、据え置き型のコンピュータである。その他にも例えば、コンピュータ500は、スマートフォンやタブレット端末などといった可搬型のコンピュータである。なお、コンピュータ500は、撮像画像10を生成するカメラ40の内部に設けられてもよい。コンピュータ500は、キーポイント補正装置2000を実現するために設計された専用のコンピュータであってもよいし、汎用のコンピュータであってもよい。
【0030】
例えば、コンピュータ500に対して所定のアプリケーションをインストールすることにより、コンピュータ500で、キーポイント補正装置2000の各機能が実現される。上記アプリケーションは、キーポイント補正装置2000の各機能構成部を実現するためのプログラムで構成される。なお、上記プログラムの取得方法は任意である。例えば、当該プログラムが格納されている記憶媒体(DVD ディスクや USB メモリなど)から、当該プログラムを取得することができる。その他にも例えば、当該プログラムが格納されている記憶装置を管理しているサーバ装置から、当該プログラムをダウンロードすることにより、当該プログラムを取得することができる。
【0031】
コンピュータ500は、バス502、プロセッサ504、メモリ506、ストレージデバイス508、入出力インタフェース510、及びネットワークインタフェース512を有する。バス502は、プロセッサ504、メモリ506、ストレージデバイス508、入出力インタフェース510、及びネットワークインタフェース512が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ504などを互いに接続する方法は、バス接続に限定されない。
【0032】
プロセッサ504は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ506は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス508は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0033】
入出力インタフェース510は、コンピュータ500と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース510には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0034】
ネットワークインタフェース512は、コンピュータ500をネットワーク600に接続するためのインタフェースである。ネットワーク600は、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。例えば図4において、コンピュータ500は、ネットワーク600を介してカメラ40と通信可能に接続される。ただし、コンピュータ500とカメラ40とを通信可能に接続する方法は、ネットワークを介した接続に限定されない。また、コンピュータ500は、カメラ40によって生成された撮像画像10を取得できればよく、カメラ40と通信可能に接続されていなくてもよい。
【0035】
ストレージデバイス508は、キーポイント補正装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ504は、このプログラムをメモリ506に読み出して実行することで、キーポイント補正装置2000の各機能構成部を実現する。
【0036】
キーポイント補正装置2000は、1つのコンピュータ500で実現されてもよいし、複数のコンピュータ500で実現されてもよい。後者の場合において、各コンピュータ500の構成は同一である必要はなく、それぞれ異なるものとすることができる。
【0037】
<処理の流れ>
図5は、実施形態1のキーポイント補正装置2000によって実行される処理の流れを例示するフローチャートである。なお、ここで、図5に示す処理の流れはあくまで例示であり、キーポイント補正装置2000によって実行される処理の流れは図5に示されているものに限定されない。
【0038】
S102からS120はループ処理L1を構成する。ループ処理L1は、所定の終了条件が満たされるまで繰り返し実行される。ループ処理L1の終了条件は任意である。例えば終了条件は、「新たな撮像画像10が存在しない」という条件や、「所定のユーザ操作が行われた」という条件などである。
【0039】
取得部2020は撮像画像iを取得する(S104)。ここで取得部2020は、生成時点が早い順に撮像画像10を取得する。検出部2040は、撮像画像iから、1つ以上の対象物体20それぞれのキーポイント30を検出する(S106)。
【0040】
S108からS118はループ処理L2を構成する。ループ処理L2は、撮像画像iから検出された各対象物体20について実行される。S108において、キーポイント補正装置2000は、撮像画像iから検出された対象物体20の中に、まだループ処理L2の対象としていないものが存在するか否かを判定する。既に全ての対象物体20を対象としてループ処理L2が実行された場合、図5の処理はS120に進む。一方、まだループ処理L2の対象としていない対象物体20が存在する場合、そのうちの1つが選択され、選択された対象物体20についてループ処理L2が実行される。ここで選択される対象物体20を、対象物体jと表記する。
【0041】
判定部2060は、対象物体jのキーポイント30について、補正パラメータが既に決定されているか否かを判定する(S110)。対象物体jの補正パラメータがまだ決定されていない場合(S110:NO)、判定部2060は、対象物体jのキーポイント30が適正条件を満たしているか否かを判定する(S112)。対象物体jのキーポイント30が適正条件を満たしている場合(S112:YES)、決定部2080は、撮像画像iから検出された対象物体jのキーポイント30に基づいて、対象物体jのキーポイント30についての補正パラメータを決定する(S114)。対象物体jのキーポイント30が適正条件を満たしていない場合(S112:NO)、図5の処理はS118に進む。
【0042】
S110において、対象物体jについての補正パラメータが既に決定されている場合(S110:YES)、補正部2100は、撮像画像iから検出された対象物体jのキーポイント30を、補正パラメータに基づいて補正する(S116)。
【0043】
S118は、ループ処理L2の終端である。そのため、図5の処理はループ処理L2の先頭(S108)に進む。
【0044】
撮像画像iから検出された全ての対象物体20についてループ処理L2が実行されると、図5の処理はS120に進む。S120はループ処理L1の終端であるため、図5の処理はループ処理L1の先頭(S102)に進む。
【0045】
なお、キーポイント補正装置2000が扱うカメラ40は、1つであってもよいし、複数であってもよい。後者の場合、キーポイント補正装置2000は、複数のカメラ40それぞれについて、そのカメラ40によって生成される時系列の複数の撮像画像10を対象として、図5に示されている処理を行う。
【0046】
<撮像画像10の取得:S104>
取得部2020は撮像画像10を取得する(S104)。撮像画像10を取得する方法は任意である。例えば撮像画像10は、キーポイント補正装置2000からアクセス可能な態様で、予め記憶部に格納されている。この場合、取得部2020は、その記憶部にアクセスすることで撮像画像10を取得する。その他にも例えば、取得部2020は、他の装置(例えばカメラ40)によって送信される撮像画像10を受信することで、撮像画像10を取得してもよい。
【0047】
なお、取得部2020は、撮像画像10を1つずつ取得してもよいし、複数の撮像画像10をまとめて取得してもよい。後者の場合、例えば取得部2020は、撮像画像10が格納されている記憶部に定期的にアクセスし、未取得の撮像画像10をまとめて取得する。
【0048】
<キーポイント30の検出:S106>
検出部2040は、撮像画像10から対象物体20のキーポイント30を検出する(S106)。そのためにまず、検出部2040は、撮像画像10から対象物体20を検出する。そして検出部2040は、撮像画像10から検出された各対象物体20について、キーポイント30を検出する。ここで、画像から所定の種類の物体を検出する技術、及び画像から検出された物体についてキーポイントを検出する技術には、既存の種々の技術を利用することができる。例えば、画像が入力されたことに応じ、その画像に含まれる各対象物体20のキーポイントを出力するように訓練された機械学習モデル(以下、物体検出モデル)を用意しておく。検出部2040は、この物体検出モデルに対して撮像画像10を入力することで、撮像画像10に含まれる各対象物体20のキーポイント30を得ることができる。
【0049】
ここで、適正画像を利用して決定した対象物体20の補正パラメータを用いて、他の撮像画像10から検出される同一の対象物体20のキーポイント30を補正できるようにするためには、同一の対象物体20を複数の撮像画像10に亘って追跡する必要がある。そこで例えば、検出部2040は、撮像画像10から検出した各対象物体20について、既に他の撮像画像10から同一の対象物体20が検出されているか否かを判定し、その判定結果に基づいて対象物体20に識別子を割り当てる。既に他の撮像画像10から検出されていると判定された対象物体20については、割り当て済みの識別子が利用される。一方、他の撮像画像10からは検出されていない対象物体20については、新しい識別子が割り当てられる。このようにすることで、複数の撮像画像10それぞれから検出される同一の対象物体20に対し、同一の識別子が割り当てられる。よって、同一の対象物体20を複数の撮像画像10に亘って追跡することができる。
【0050】
ここで、互いに異なる撮像画像10から検出された対象物体20が同一のものであるか否かを判定する技術には、既存の種々の技術を利用することができる。例えば、互いに異なる撮像画像10から得られる対象物体20の特徴量同士を比較することにより、これらが同一のものであるか否かを判定することができる。この方法を利用する場合、例えば、前述したキーポイント30の検出に利用する物体検出モデルに、検出した対象物体20の特徴量を出力する機能を持たせておく。これにより、検出部2040は、撮像画像10から検出される各対象物体20について、その特徴量及びキーポイント30を得ることができる。
【0051】
<適正条件が満たされているか否かの判定:S112>
判定部2060は、対象物体jについて検出されたキーポイント30が適正条件を満たしているか否かを判定する(S112)。適正条件は、対象物体jについて検出されたキーポイント30が補正パラメータの決定に適している場合に、満たされる条件である。以下、適正条件として採用しうる条件について、具体例をいくつか説明する。
【0052】
<<例1:対象物体20の位置や姿勢に関する条件>>
例えば適正条件として、「対象物体jの位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが、所定範囲に含まれる」という条件が利用される。以下、この所定範囲のことを、決定範囲と呼ぶ。上記適正条件を利用する場合、対象物体jの位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせについて、補正パラメータの決定に適した範囲が、決定範囲として予め定められている。そして、撮像画像iから検出されたキーポイント30を利用して特定される対象物体jの位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが、補正パラメータの決定に適した範囲(すなわち決定範囲)に含まれる場合、適正条件が満たされると判定される。一方、撮像画像iから検出されたキーポイント30を利用して特定される対象物体jの位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが決定範囲に含まれない場合、適正条件が満たされていないと判定される。
【0053】
決定範囲に対象物体jの位置の範囲が含まれる場合、判定部2060は、対象物体jのキーポイント30を利用して対象物体jの位置を特定する。対象物体jの位置は、例えば、対象物体jの特定箇所(重心など)の位置で表すことができる。例えば対象物体jの位置を、対象物体jの重心位置で表すとする。この場合、判定部2060は、撮像画像iから検出された対象物体jの複数のキーポイント30の重心位置を算出し、その重心位置を、対象物体jの位置を表すパラメータとして利用する。
【0054】
ここで、対象物体jの位置が k 次元空間(k は2又は3)上の座標で表されるとする。この場合、対象物体jの位置についての決定範囲は、k 次元空間上の部分空間で表される。すなわち、「対象物体jの位置が決定範囲に含まれる」という適正条件は、撮像画像iから検出された対象物体jの位置を表す k 次元空間上の座標が、当該 k 次元空間上の部分空間である決定範囲に含まれている場合に満たされる。
【0055】
決定範囲に対象物体jの大きさの範囲が含まれる場合、判定部2060は、撮像画像iから検出された対象物体jのキーポイント30を利用して対象物体jの大きさを特定する。ここで、対象物体jの大きさを表す方法は様々である。例えばキーポイント30が、道路上に射影された対象物体jの3次元バウンディングボックスの底面の頂点を表すとする。この場合、判定部2060は、オルソ画像50上のキーポイント対応点80を用いて、オルソ画像50上の対象物体jを表す矩形領域を決定し、当該矩形領域の幅 w と高さ h の組み合わせ (w,h) を、対象物体jの大きさを表すパラメータとして利用する。
【0056】
オルソ画像50上の対象物体jを表す矩形領域を決定する方法は様々である。ここでは、その具体例を図6を用いて説明する。図6は、対象物体jを表す矩形領域を決定する方法を例示する図である。図6において、対象物体jのキーポイント対応点80は、キーポイント対応点80-1からキーポイント対応点80-4である。
【0057】
まず判定部2060は、対象物体jのキーポイント対応点80のうち、カメラ40に最も近いキーポイント対応点80を特定する。図6において、カメラ40に最も近いキーポイント対応点80は、キーポイント対応点80-2であるとする。次に判定部2060は、キーポイント対応点80-1からキーポイント対応点80-4で構成される四角形においてキーポイント対応点80-2と隣接する2つのキーポイント対応点80のうち、キーポイント対応点80-2と結んで得られる線分がより長くなる(キーポイント対応点80-2からの距離がより遠い)キーポイント対応点80を特定する。図6において、キーポイント対応点80-2と隣接するキーポイント対応点80は、キーポイント対応点80-1とキーポイント対応点80-3である。そして、キーポイント対応点80-1とキーポイント対応点80-2を結んだ線分は、キーポイント対応点80-3とキーポイント対応点80-2を結んだ線分よりも長い。そのため特定されるキーポイント対応点80は、キーポイント対応点80-1である。
【0058】
判定部2060は、特定されたキーポイント対応点80-1とキーポイント対応点80-2とを結んだ線分を長辺90-1とし、もう一方の長辺90-2がキーポイント対応点80-3とキーポイント対応点80-4の近くを通る矩形領域を、対象物体jを表す矩形領域100として特定する。ここで、長辺90-2を決定する方法は様々である。例えば長辺90-2は、長辺90-1と長辺90-2との間の距離(すなわち矩形領域100の短辺の長さ)が、長辺90-1とキーポイント対応点80-3の間の距離、長辺90-1とキーポイント対応点80-4の間の距離、又はこれら2つの平均となるように決定される。図6の例において、長辺90-1と長辺90-2の距離は、長辺90-1とキーポイント対応点80-3の間の距離と、長辺90-1とキーポイント対応点80-4の間の距離との平均となっている。
【0059】
このように幅と高さで対象物体jの大きさを表す場合、対象物体jの大きさについての決定範囲は、2次元空間上の部分空間で表される。すなわち、対象物体jの大きさを幅と高さの組み合わせ (w,h) で表すと、対象物体jの大きさについての決定範囲は wh 空間上の部分空間で表される。そのため、「対象物体jの大きさが決定範囲に含まれる」という適正条件は、撮像画像iから検出された対象物体jの大きさ (w[i,j]),h[i,j]) が、wh 空間上の部分空間である決定範囲に含まれる場合に満たされる。
【0060】
対象物体jの大きさは、3次元で表されてもよい。例えばキーポイント30として、対象物体jの3次元バウンディングボックスの8つの頂点がそれぞれ検出されるとする。この場合、対象物体jの大きさは、当該3次元バウンディングボックスの幅 w、奥行き d、及び高さ h の組み合わせ (w,d,h) で表すことができる。この場合、対象物体jの大きさについての決定範囲は、3次元空間上の部分空間で表される。そのため、「対象物体jの大きさが決定範囲に含まれる」という適正条件は、撮像画像iから検出された対象物体jの大きさ (w[i,j],d[i,j],h[i,j])が hdw 空間上の部分空間である決定範囲に含まれる場合に満たされる。
【0061】
適正条件に対象物体jの姿勢の範囲が含まれる場合、判定部2060は、撮像画像iから検出された対象物体jのキーポイント30を利用して対象物体jの姿勢を特定する。ここで、対象物体jの姿勢を表す方法は様々である。例えば対象物体jの姿勢は、オルソ画像50上のおける対象物体jの姿勢角θで表される。オルソ画像50上の対象物体jの姿勢角は、例えば、対象物体jの基準軸が、オルソ画像50の基準軸(例えば水平軸)に対して成す角度で表すことができる。対象物体jの基準軸としては、例えば、図6で説明した対象物体jを表す矩形領域100の長辺又は短辺を利用することができる。
【0062】
このように対象物体jの姿勢角で対象物体jの姿勢を表す場合、対象物体jの姿勢についての決定範囲は、1次元上の部分空間(すなわち、姿勢角θの数値範囲)で表される。そのため、「対象物体jの姿勢が決定範囲に含まれる」という適正条件は、撮像画像iから検出された対象物体jの姿勢角θ[i,j] が、所定の数値範囲である決定範囲に含まれる場合に満たされる。
【0063】
対象物体jの姿勢は、3次元空間上の姿勢で表されてもよい。例えばこの場合、対象物体jの姿勢は、対象物体jの3次元バウンディングボックスが3方向それぞれの基準軸に対して成す角度の組み合わせ(ピッチθ、ロールφ、ヨーψ)で表すことができる。この場合、対象物体jの姿勢についての決定範囲は、3次元空間上の部分空間で表される。そのため、「対象物体jの姿勢が決定範囲に含まれる」という適正条件は、撮像画像iから検出された対象物体jの姿勢 (θ[i,j],φ[i,j],ψ[i,j]) が、θφψ空間上の部分空間である決定範囲に含まれる場合に満たされる。
【0064】
前述したように、対象物体jの位置、大きさ、及び姿勢のうちのいずれか2つ以上の組み合わせについて決定範囲が定められていてもよい。例えば決定範囲が、対象物体jの位置 (x,y) と姿勢θの組み合わせ (x,y,θ) の範囲として定められているとする。この場合、判定部2060は、撮像画像iから検出された対象物体jの位置と大きさの組み合わせ (x[i,j],y[i,j],θ[i,j]) が決定範囲に含まれるか否かを判定する。
【0065】
その他にも例えば、決定範囲が、対象物体jの位置 (x,y)、大きさ (w,h)、及び姿勢θの組み合わせ (x,y,w,h,θ) の範囲として定められているとする。この場合、判定部2060は、撮像画像iから検出された対象物体jの位置、大きさ、及び姿勢の組み合わせ (x[i,j],y[i,j],w[i,j],h[i,j],θ[i,j]) が決定範囲に含まれるか否かを判定する。
【0066】
なお、決定範囲に対象物体jの大きさに関する範囲が含まれる場合、補正パラメータの決定に適した対象物体jの位置や姿勢が、バス、トラック、乗用車、又は人などのように大きさが異なる対象物体jごとに異なる場合に、各種類の対象物体jについて互いに異なる決定範囲を定めることができる。一方、対象物体jの大きさが異なっていても補正パラメータの決定に適した位置や姿勢の範囲に大きな違いが無い場合には、決定範囲に対象物体jの大きさを含めないことにより、適正条件が満たされているか否かの判定に必要な計算の量や時間を減らすことができる。
【0067】
なお、決定範囲の定め方については後述する。
【0068】
<<例2:キーポイント30の時間安定性に関する条件>>
その他にも例えば、適正条件として、「対象物体jのキーポイント30の時間安定性が高い」という条件が利用される。ここで、キーポイント30の時間安定性が高いとは、キーポイント30の時間変化が小さいことを意味する。この適正条件を利用する場合、判定部2060は、撮像画像iから検出された対象物体jのキーポイント30について、時間安定性を表す指標値(以下、時間安定性指標値)を算出する。この場合、より具体的な適正条件として、「対象物体jのキーポイント30について算出された時間安定性指標値が閾値以下である」という条件を利用することができる。そのため、時間安定性指標値が閾値以下である場合、検出条件が満たされていると判定される。一方、時間安定性指標値が閾値より大きい場合、検出条件が満たされていないと判定される。
【0069】
時間安定性指標値は、例えば、撮像画像iにおける対象物体jの大きさの時間変化に基づいて算出される。例えば時間安定性評価値は、以下の式(1)を用いて算出される。
【数1】
ここで、E_(i,j) は撮像画像iから検出される対象物体jについての時間安定指標値を表す。この時間安定性指標値は、対象物体jの大きさの時間安定性を表している。なお、表記の都合上、数式の中以外では、下付文字がアンダーバーを利用して表されている。(w(t)_j,h(t)_j) は、時刻 t の撮像画像10から検出される対象物体jの大きさを表す。なお、対象物体20の大きさを算出する方法は前述した通りである。||a|| は、ベクトル a のノルムを表す。式(1)において、時間安定性指標値は、撮像画像iが生成された時刻 T_i を終端とする長さ P の期間における対象物体jの大きさの時間変化量の総和で表される。
【0070】
また、撮像画像10が一定の時間間隔で生成される場合(カメラ40が一定間隔で撮像を行う場合)、以下の式(2)で時間安定性評価値を算出することができる。
【数2】
N_i は、撮像画像iのフレーム番号を表し、式(1)の 時刻 T_i に対応する。N_p は、時間安定性指標値の算出に用いる期間の長さ P を撮像画像10の枚数で表したものである。(w[t,j],h[t,j]) は、フレーム番号が t である撮像画像10から検出される対象物体jの大きさを表す。
【0071】
ここで、時間安定性指標値を算出する際に、キーポイント30の信頼度の大きさが考慮されてもよい。この場合、時間安定性指標値は、例えば以下の式(3)で表すことができる。
【数3】
F_(i,j) は、キーポイント30の信頼度を考慮した、撮像画像iから検出される対象物体jのキーポイント30の時間安定性を表す。r(t)_j は、時刻 t の撮像画像10から検出される対象物体jのキーポイント30の信頼度の大きさを表す。ここで、信頼度が高いほど時間安定性指標値が小さくなるように、r(t)_j の逆数が利用されている。E_(i,j) は、撮像画像iから検出される対象物体jのキーポイント30の時間安定性を、キーポイント30の信頼度を考慮せずに算出したものである。E_(i,j) は、例えば式(1)や式(2)を利用して算出される。αとβはそれぞれ、第1項と第2項に対して付される重み係数である。
【0072】
ここで、キーポイント30の信頼度を算出する方法には、既存の種々の方法を利用することができる。例えば、カルマンフィルターなどのフィルタリングを利用してキーポイントの追跡を行えば、状態変数の共分散行列からキーポイントの信頼度を計算することができる。
【0073】
<<例3:例1と例2の組み合わせ>>
判定部2060は、上述した例1と例2を組み合わせて利用してもよい。以下、例1で説明した適正条件を適正条件1と呼び、例2で説明した適正条件を適正条件2と呼ぶ。例えば判定部2060は、適正条件1と適正条件2の双方が満たされている場合、適正条件が満たされていると判定する。一方、適正条件1と適正条件2の少なくとも一方が満たされていない場合、判定部2060は、適正条件が満たされていると判定する。
【0074】
例えばまず、判定部2060は、撮像画像iから検出された対象物体jの位置等を算出し、算出した位置等が決定範囲に含まれるか否か(すなわち、適正条件1が満たされているか否か)を判定する。適正条件1が満たされていない場合、判定部2060は、撮像画像iから検出された対象物体jについて、適正条件が満たされていないと判定する(S112:NO)。一方、適正条件1が満たされている場合、判定部2060は、撮像画像iから検出された対象物体jの時間安定性が高いか否か(すなわち、適正条件2が満たされているか否か)を判定する。適正条件2が満たされていない場合、判定部2060は、撮像画像iから検出された対象物体jについて、適正条件が満たされていないと判定する(S112:NO)。一方、適正条件2が満たされている場合、判定部2060は、撮像画像iから検出された対象物体jについて、適正条件が満たされていると判定する(S112:YES)。
【0075】
その他にも例えば、判定部2060は、適正条件1と適正条件2の少なくとも一方が満たされている場合に、適正条件が満たされていると判定してもよい。この場合、適正条件1と適正条件2の双方が満たされていない場合のみ、適正条件が満たされていないと判定される。
【0076】
<補正パラメータの決定:S114>
決定部2080は、対象物体jに対応する撮像画像iから検出された、対象物体jのキーポイント30を用いて、対象物体jについての補正パラメータを決定する(S114)。例えば補正パラメータは、対象物体jの大きさを表すパラメータである。例えば対象物体jの大きさが幅 w と高さ h で表される場合、決定部2080は、撮像画像iから検出された対象物体jの大きさ (w[i,j],h[i,j]) を、補正パラメータとして決定する。
【0077】
対象物体jの大きさが、幅 w、奥行き d、及び高さ h で表されるとする。この場合、決定部2080は、撮像画像iから検出された対象物体jの大きさ (w[i,j],d[i,j],h[i,j]) を、補正パラメータとして決定する。
【0078】
決定部2080は、決定した補正パラメータを、対応する対象物体jの識別情報に対応づけて、キーポイント補正装置2000からアクセス可能な記憶部に格納する。対象物体jの補正パラメータが既に決定されているか否かの判定(S110)は、例えば、対象物体jに対応する補正パラメータがこの記憶部に格納されているか否かを判定することで行うことができる。
【0079】
<<補正パラメータの更新>>
図5のフローチャートでは、既に補正パラメータが決定されている対象物体jについては、適正条件が満たされているか否かについての判定が行われない。しかしながら、撮像画像iから検出された対象物体jについて、既に補正パラメータが決定されている場合であっても、その撮像画像iから検出された対象物体jのキーポイント30が適正条件を満たしており、かつ、そのキーポイント30から現在の補正パラメータよりも適した補正パラメータを得られる可能性がある。そこで例えば、キーポイント補正装置2000は、既に補正パラメータが決定されている場合において、補正パラメータの更新を行ってもよい。
【0080】
図7は、補正パラメータの更新を行う機能を有するキーポイント補正装置2000について、その処理の流れの例示するフローチャートである。図7では、対象物体jの補正パラメータが既に決定されている場合(S110)において、補正パラメータを更新するか否かの判定が行われる(S202)。そして、補正パラメータを更新すると判定された場合(S202:YES)には、新たに補正パラメータが決定される(S114)。
【0081】
S202において、補正パラメータの更新を行うか否かを判定する方法は様々である。例えば前述した適正条件1を利用するケースにおいて、優先度の異なる複数の決定範囲が定められているとする。この場合、決定部2080は、撮像画像iから検出された対象物体jのキーポイント30が適正条件を満たした結果、そのキーポイント30を利用して補正パラメータを決定した際に、当該補正パラメータの優先度として、その適正条件に対応する決定範囲の優先度を設定する。補正パラメータの優先度を表す情報は、補正パラメータと共に記憶部に格納される。
【0082】
その後に得られた別の撮像画像iについて、決定部2080は、S202において、その撮像画像iから検出された対象物体jのキーポイント30が適正条件を満たすか否かを判定する。適正条件が満たされない場合、決定部2080は、補正パラメータを更新しないと判定する。一方、適正条件が満たされる場合、決定部2080は、満たされた適正条件に対応する決定範囲の優先度が、対象物体jに対応する現在の補正パラメータの優先度よりも高いか否かをさらに判定する。満たされた適正条件に対応する決定範囲の優先度が、対象物体jに対応する現在の補正パラメータの優先度よりも高い場合には、補正パラメータの更新が行われる。一方、満たされた適正条件に対応する決定範囲の優先度が、対象物体jに対応する現在の補正パラメータの優先度よりも高くない場合には、補正パラメータの更新が行われない。
【0083】
例えば、優先度1の決定範囲 R1、優先度2の決定範囲 R2、及び優先度3の決定範囲 R3 が定められているとする。ここで、数値が大きい優先度ほど、優先度が高いとする。この場合に、撮像画像iから検出された対象物体jの位置等が決定範囲 R2 に含まれるために、適正条件が満たされたとする。また、まだ対象物体jについて補正パラメータは決定されていないとする。この場合、決定部2080は、その撮像画像から検出された対象物体jのキーポイント30を利用して、補正パラメータを決定する。この場合、当該補正パラメータの優先度は2となる。
【0084】
その後、別の撮像画像iから検出された対象物体jの位置等が決定範囲 R1 に含まれるために、適正条件が満たされたとする。この場合、ここで満たされた適正条件の優先度は1であり、対象物体jに対応する現在の補正パラメータの優先度2よりも低い。そのため、補正パラメータの更新は行われない。
【0085】
その後、さらに別の撮像画像iから検出された対象物体jの位置等が決定範囲 R3 に含まれるために、適正条件が満たされたとする。この場合、ここで満たされた適正条件の優先度は3であり、対象物体jに対応する現在の補正パラメータの優先度2よりも高い。そのため、決定部2080は、この撮像画像iから検出された対象物体jのキーポイント30を利用して補正パラメータを決定し、補正パラメータの更新を行う。この補正パラメータには、優先度3が対応づけられる。
【0086】
前述した適正条件2を利用するケースでは、時間安定性指標値の大きさに基づいて、補正パラメータの更新を行うか否かを判定することができる。具体的には、決定部2080は、撮像画像iから検出された対象物体jのキーポイント30が適正条件2を満たした結果、そのキーポイント30を利用して補正パラメータを決定した際に、当該補正パラメータの優先度を表す値として、算出された時間安定性指標値を設定する。ここで、時間安定性指標値はその値が小さいほど好ましい値であるため、時間安定性指標値が小さいほど、優先度は高くなる。
【0087】
その後決定部2080は、別の撮像画像iから検出された対象物体jのキーポイント30が適正条件2を満たした場合に、算出された時間安定性指標値が、対象物体jに対応する現在の補正パラメータの優先度として設定されている値よりも小さいか否かを判定する。算出された時間安定性指標値が、優先度の値よりも小さい場合には、補正パラメータの更新が行われる。一方、算出された時間安定性指標値が、優先度の値よりも小さくない場合、補正パラメータの更新が行われない。
【0088】
ただし、時間安定性指標値が優先度の値よりもわずかに小さいケースでは、より適切な補正パラメータが得られはするものの、補正パラメータの更新による効果は大きくない可能性がある。そこで例えば、算出された時間安定性指標値が優先度の値よりも小さく、かつ、その差異が十分に大きい(閾値以上である)場合のみ、補正パラメータが更新されるようにしてもよい。
【0089】
<キーポイント30の補正:S116>
対象物体jに対応する撮像画像10の後に生成された撮像画像iから対象物体jが検出された場合(S110:YES)、補正部2100は、撮像画像iから検出された対象物体jのキーポイント30を、対象物体jに対応する補正パラメータを用いて補正する(S116)。ここで、キーポイント30を補正する対象の撮像画像10を補正対象画像と呼ぶ。
【0090】
対象物体jに対応する補正パラメータとして、対象物体jの大きさ (w,h) が決定されているとする。この場合、補正部2100は、補正対象画像を正射変換することで、撮像画像i上の対象物体jの各キーポイント30について、オルソ画像50上のキーポイント対応点80を算出する。さらに補正部2100は、オルソ画像50上のキーポイント対応点80の配置に基づいて大きさ (w,h) の矩形領域である補正矩形を生成し、キーポイント対応点80が補正矩形の各頂点となるように、キーポイント対応点80を補正する。その後、補正部2100は、オルソ画像50を補正対象画像に戻す逆変換を行うことで、補正後の各キーポイント対応点80を、補正対象画像上の点に変換する。このようにして得られた補正対象画像上の点が、補正後のキーポイント30として利用される。
【0091】
ここで、キーポイント対応点80を補正する方法について説明する。例えば補正部2100は、対象物体20の各キーポイント対応点80を、大きさ (w,h) の補正矩形の頂点のいずれかに対応付ける。さらに補正部2100は、対応する点間の距離の総和が最小となるように、補正矩形の配置を決定する。そして補正部2100は、各キーポイント対応点80の位置を、対応する補正矩形の頂点の位置に変更する。また、補正矩形の頂点に対応するキーポイント対応点80が存在しない場合、補正部2100は、その頂点に対応する新たなキーポイント対応点80を生成する。このように補正矩形を利用して、キーポイント対応点80の位置の補正や、キーポイント対応点80の生成を行うことにより、キーポイント対応点80の補正が行われる。
【0092】
図8は、補正矩形を用いてキーポイント対応点80を補正する方法を例示する図である。図8の上段のケースは、キーポイント対応点80が4つ存在するケースである。このケースでは、キーポイント対応点80-1、キーポイント対応点80-2、キーポイント対応点80-3、及びキーポイント対応点80-4の位置に基づいて、補正矩形110の配置が決定される。そして、キーポイント対応点80-1、キーポイント対応点80-2、キーポイント対応点80-3、及びキーポイント対応点80-4の位置がそれぞれ、頂点120-1、頂点120-2、頂点120-3及び頂点120-4の位置に補正される。
【0093】
図8の中段のケースは、キーポイント対応点80が3つ存在するケースである。このケースでは、キーポイント対応点80-1、キーポイント対応点80-2、及びキーポイント対応点80-3の位置に基づいて、補正矩形110の配置が決定される。そして、キーポイント対応点80-1、キーポイント対応点80-2、及びキーポイント対応点80-3の位置がそれぞれ、頂点120-1、頂点120-2、及び頂点120-3の位置に補正される。さらに、頂点120-4の位置に、新たなキーポイント対応点80が生成される。
【0094】
図8の下段のケースは、キーポイント対応点80が2つ存在するケースである。このケースでは、キーポイント対応点80-1及びキーポイント対応点80-2の位置に基づいて、補正矩形110の配置が決定される。そして、キーポイント対応点80-1及びキーポイント対応点80-2の位置がそれぞれ、頂点120-2及び頂点120-3の位置に補正される。また、頂点120-1の位置及び頂点120-4の位置のそれぞれに、新たなキーポイント対応点80が生成される。
【0095】
ここで、対象物体20のキーポイント対応点80が2つである場合、各キーポイント対応点80が対象物体20のどの部分(前方右、前方左、後方右、又は後方左)を表しているかによって、補正矩形110の配置が異なる。例えば図8の下段のケースでは、キーポイント対応点80-1とキーポイント対応点80-2をそれぞれ、頂点120-1と頂点120-4に対応づけるという配置も考えられる。
【0096】
そこで例えば、キーポイント30を検出する際に、各キーポイント30が対象物体20のどの部分を表しているのかを特定するように、検出部2040を構成するようにする。そして補正部2100は、各キーポイント30が対象物体20のどの部分を表しているのかを表す情報を取得し、その情報を利用して、補正矩形110の頂点120とキーポイント対応点80との対応付けを行う。
【0097】
キーポイント30が対象物体20のどの部分を表しているのかを特定できるように検出部2040を構成する方法は任意である。例えば前述したように、物体検出モデルを利用してキーポイント30が検出されるとする。この場合、各キーポイント30が対象物体20のどの部分を表しているのかが分かる態様でキーポイント30を出力するように、物体検出モデルが構成される。より具体的な例として、物体検出モデルがニューラルネットワークで構成されているとする。この場合、物体検出モデルの各出力ノードが何を意味するのかは、物体検出モデルの訓練の際に定まる。そのため、補正部2100は、対象物体20の各キーポイント対応点80に対応するキーポイント30が、物体検出モデルのどの出力ノードから出力されたのかによって、そのキーポイント対応点80が対象物体20のどの部分を表しているのかを特定することができる。
【0098】
<結果の出力>
キーポイント補正装置2000は、処理結果を示す情報を出力する。以下、キーポイント補正装置2000によって出力される情報を、出力情報と呼ぶ。出力情報は、少なくとも、各撮像画像10から検出された各対象物体20について、そのキーポイント30を表す情報を含むキーポイント30を表す情報は、例えば、対象物体20におけるキーポイント30の座標である。
【0099】
ここで、補正部2100によってキーポイント30が補正された場合には、少なくとも、補正後のキーポイント30を表す情報が出力情報に含まれるようにする。この場合において、補正前のキーポイント30を表す情報については、出力情報に含まれてもよいし、含まれなくてもよい。
【0100】
出力情報には、撮像画像10に対し、対象物体20のキーポイント30や3次元バウンディングボックスを表す画像を重畳することで生成された画像が含まれてもよい。ここで、当該画像において、補正されなかったキーポイント30と補正されたキーポイント30は、互いに識別可能であってもよい。例えば、補正されたキーポイント30を表すマークと、補正されたキーポイント30を表すマークとを、互いに異なる色にすることで、これらを識別可能にすることができる。
【0101】
<決定範囲の生成方法>
前述した適正条件1を利用する場合、決定範囲を予め生成しておく必要がある。以下、決定範囲を生成する方法について説明する。ここで、決定範囲を生成する機能を有する装置を、決定範囲生成装置と呼ぶ。決定範囲生成装置は、キーポイント補正装置2000と一体として(互いに同じコンピュータで)実現されてもよいし、キーポイント補正装置2000とは別体として(互いに異なるコンピュータで)実現されてもよい。
【0102】
決定範囲生成装置がキーポイント補正装置2000と一体として設けられている場合、キーポイント補正装置2000は、決定範囲生成装置の機能を実現する決定範囲生成部を有する。図9は、決定範囲生成部を有するキーポイント補正装置2000の機能構成を例示するブロック図である。以下では、説明を簡潔にするために、決定範囲の生成の主体が決定範囲生成部2120となっている。決定範囲生成装置がキーポイント補正装置2000とは別体として設けられる場合、以下で説明する各処理の主体が決定範囲生成装置となる。
【0103】
例えば決定範囲は、教師画像を利用したクラスタリングによって生成することができる教師画像には、カメラ40から得られる撮像画像が利用される。教師画像に対しては、正解キーポイントが付加される。教師画像における正解キーポイントは、その教師画像から検出されるべきキーポイントを表す。例えば正解キーポイントは、決定範囲生成装置のユーザなどによって手動で決定される。
【0104】
図10は、教師画像を用いて決定範囲を生成する処理の流れを例示するフローチャートである。S302からS316はループ処理L3を構成する。ループ処理L3は各教師画像について実行される。S302において、決定範囲生成部2120は、教師画像の中にまだループ処理L3の対象としていないものが存在するか否かを判定する。既に全ての教師画像を対象としてループ処理L3が実行された場合、図10の処理はS318に進む。一方、まだループ処理L3の対象としていない教師画像が存在する場合、そのうちの1つが選択され、選択された教師画像についてループ処理L3が実行される。ここで選択される教師画像を教師画像kと表記する。
【0105】
決定範囲生成部2120は、教師画像kから1つ以上の対象物体20それぞれのキーポイント30を検出する(S304)。教師画像kから各対象物体20のキーポイント30を検出する処理は、検出部2040が撮像画像10から各対象物体20のキーポイント30を検出する処理と同様の処理で実現される。そのため例えば、教師画像kからキーポイントを検出する処理には、検出部2040が利用される。
【0106】
S306からS314はループ処理L4を構成する。ループ処理L4は、教師画像kから検出された各対象物体20について実行される。S306において、決定範囲生成部2120は、教師画像kから検出された対象物体20の中に、まだループ処理L4の対象としていないものが存在するか否かを判定する。既に全ての対象物体20を対象としてループ処理L4が実行された場合、図10の処理はS316に進む。一方、まだループ処理L4の対象としていない対象物体20が存在する場合、そのうちの1つが選択され、選択された対象物体20についてループ処理L4が実行される。ここで選択される対象物体20を、対象物体mと表記する。
【0107】
決定範囲生成部2120は、対象物体mについて検出したキーポイント30と、対象物体mについての正解キーポイントとの誤差を表す誤差指標値を算出する(S308)。例えば、誤差指標値は、互いに対応するキーポイント30と正解キーポイントとの距離の大きさの統計値(平均値など)である。例えば、教師画像kの対象物体mについて、正解キーポイント A1、A2、A3、及び A4が設定されているとする。また、この教師画像kから、対象物体mのキーポイント30として、B1、B2、B3、及び B4 が検出されたとする。決定範囲生成部2120はまず、正解キーポイントとキーポイント30との対応付けを行う。例えば決定範囲生成部2120は、対象物体mの各正解キーポイントに対し、その正解キーポイントに最も近い対象物体mのキーポイント30を対応づける。ここでは、正解キーポイントト A1、A2、A3、及び A4 に対してそれぞれ、キーポイント B1、B2、B3、及び B4 が対応づけられたとする。この場合、決定範囲生成部2120は、A1 と B1 の距離、A2 と B2 の距離、A3 と B3 の距離、及び A4 と B4 の距離の統計値を、誤差指標値として算出する。
【0108】
決定範囲生成部2120は、対象物体mについて算出した誤差指標値が閾値以下であるか否かを判定する(S310)。誤差指標値が閾値以下である場合(S310:YES)、決定範囲生成部2120は、教師画像kから検出された対象物体mのキーポイント30を用いて、特徴ベクトルを算出する。
【0109】
特徴ベクトルは、対象物体mの位置や姿勢などといった特徴を表す。例えば対象物体mの特徴として、位置 (x,y)、大きさ (w,h)、及び姿勢θが利用されるとする。この場合、特徴ベクトルは5次元ベクトル (x,y,w,h,θ) となる。
【0110】
特徴ベクトルの算出後、又は、誤差指標値が閾値より大きいと判定された後(S310:NO)、図10の処理はS314に進む。S314はループ処理L4の終端であるため、図10の処理はループ処理L4の先頭(S306)に進む。
【0111】
教師画像kについてループ処理L4が終了した後、図10の処理はS316に進む。S316はループ処理L3の終端であるため、図10の処理はループ処理L3の先頭に進む(S302)。
【0112】
各教師画像についてループ処理L3が行われた後、決定範囲生成部2120は、これまでに算出された複数の特徴ベクトルをクラスタリングする(S318)。ここで、誤差指標値が閾値以下であることは、教師画像kから検出された対象物体mのキーポイント30が、正解キーポイントに近いこと(言い換えれば、高い精度で検出されたキーポイント30であること)を意味する。そのため、誤差指標値が閾値以下となる場合、教師画像kから検出された対象物体mの特徴ベクトルは、正確なキーポイントが検出可能な対象物体mの位置や姿勢などを表している。そこで決定範囲生成部2120は、このように誤差指標値が閾値以下となる場合に得られる特徴ベクトルを利用することで、正確なキーポイントが検出可能な対象物体の位置や姿勢の範囲を特定し、その範囲を決定範囲として扱う。
【0113】
複数のベクトルのクラスタリングによって分類する具体的な方法には、既存の種々の技術を利用することができる。例えば決定範囲生成部2120は、以下の式(4)で表される混合ガウス分布を用いて特徴ベクトルの分布を近似することにより、特徴ベクトルを複数のクラスタに分ける。
【数4】
uはクラスタの識別子を表し、Uはクラスタの総数を表す。v はクラスタ内の特徴ベクトルの識別子を表し、V_u はクラスタ u に含まれる特徴ベクトルの総数を表す。p_v は特徴ベクトルを表す。c_u は、クラスタ u の重心を表す。
【0114】
ここで、E を最小化する各重心 c_u は、例えば、k-means 法などの EM(Expectation-Maximization)法を用いて決定することができる。また、クラスタリングにおいてクラスタの適切な総数を決定する方法には、既存の種々の技術を利用することができる。
【0115】
決定範囲生成部2120は、クラスタリングの結果に基づいて、決定範囲を生成する(S320)。具体的にはまず、決定範囲生成部2120は、クラスタリングによって生成された複数のクラスタそれぞれについて、クラスタの安定度を表す安定度指標値を算出する。安定度指標値は、クラスタに含まれる特徴ベクトルの散らばり度合いが小さいほど大きくなる値として算出することができる。例えば安定度指標値は、以下の式(5)を用いて算出される。
【数5】
ここで、S は安定度指標値を表す。||A|| は、行列 A のノルムを表す。また、式(5)でノルムが算出されている行列は、wh 空間に射影されたクラスタ内の特徴ベクトルの共分散行列である。
【0116】
決定範囲生成部2120は、安定度指標値が閾値以上であるクラスタから、決定範囲を生成する。ここで、安定度指標値が閾値以上であるクラスタが複数ある場合、クラスタごとに決定範囲が生成される。このように複数の決定範囲が生成される場合、各決定範囲に対して、前述した優先度が割り当てられてもよい。例えば、安定度指標値が高いクラスタほど、高い優先度が割り当てられる。
【0117】
ここで、クラスタから決定範囲を生成する方法について説明する。例えば決定範囲生成部2120は、クラスタの重心を算出し、当該重心の近傍領域を決定範囲とする。重心の近傍領域としては、例えば、特徴ベクトルの要素ごとに、重心の値から所定の範囲を与えた領域とすることができる。例えば特徴ベクトルが対象物体20の位置 (x,y)、大きさ (w,h)、及び姿勢 θを表す5次元ベクトル (x,y,w,h,θ) で表されるとする。また、クラスタの重心が (xc,yc,wc,hc,θc) であるとする。例えばこの場合、各要素に重心から所定の幅を持たせた領域である「xc-α<x<xc+α、かつ、yc-α<y<yc+α、かつ、wc-α<w<wc+α、かつ、hc-α<h<hc+α、かつ、θc-α<θ<θc+α」を、決定範囲とすることができる。なお、この例では重心を中心とする範囲の大きさがいずれの要素についても同一のαとなっているが、範囲の大きさは要素ごとに異なっていてもよい。例えば、クラスタにおける各要素の散らばり度合い(分散や標準偏差)を用いて、各要素の範囲を決定してもよい。
【0118】
また、決定範囲生成部2120は、クラスタの生成に利用した要素の一部のみを用いて、決定範囲を生成してもよい。例えば前述したように特徴ベクトルが対象物体20の位置、大きさ、及び姿勢を表す5次元ベクトルで表されている場合において、決定範囲生成部2120は、対象物体20の位置及び姿勢を表す3次元空間の範囲として決定範囲を生成してもよい。これは、5次元空間上のクラスタを3次元空間に射影して得られる部分空間から、決定範囲を生成することに相当する。例えば前述したように各要素に重心から所定の幅を持たせるケースでは、「xc-α<x<xc+α、かつ、yc-α<y<yc+α、かつ、θc-α<θ<θc+α」という決定範囲を生成することができる。
【0119】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0120】
なお、上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0121】
(付記1)
複数の撮像画像を取得する取得部と、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出部と、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定部と、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定部と、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正部と、を有するキーポイント補正装置。
(付記2)
前記適正条件は、前記移動物体の位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが満たすべき範囲である決定範囲を示し、
前記判定部は、前記移動物体の複数の前記キーポイントを用いて、前記移動物体の位置、大きさ、又は姿勢を特定し、前記特定した位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが前記決定範囲に含まれる場合に、前記適正条件が満たされていると判定する、付記1に記載のキーポイント補正装置。
(付記3)
前記判定部は、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントを正射変換することにより、複数の前記キーポイントそれぞれに対応するオルソ画像上のキーポイント対応点を算出し、
算出された複数の前記キーポイント対応点の位置に基づいて定まる前記オルソ画像上の前記移動物体の位置、大きさ、又は姿勢を、前記移動物体の位置、大きさ、又は姿勢として算出する、付記2に記載のキーポイント補正装置。
(付記4)
前記移動物体について正解の前記キーポイントが定められている複数の教師画像を利用して、前記適正条件によって示される前記決定範囲を生成する決定範囲生成部を有し、
前記決定範囲生成部は、
複数の前記教師画像それぞれについて、その教師画像における正解の前記キーポイントと、その教師画像から検出されるその移動物体の前記キーポイントとの誤差を算出し、その誤差が閾値以下である場合に、その移動物体の前記キーポイントの特徴ベクトルを算出し、
算出された複数の前記特徴ベクトルをクラスタリングすることで得られる複数のクラスタのうち、安定度が閾値以上であるクラスタに含まれる前記特徴ベクトルを用いて、前記決定範囲を生成する、付記3に記載のキーポイント補正装置。
(付記5)
前記判定部は、前記移動物体の複数の前記キーポイントについて、時間的な安定性を表す時間安定性指標値を算出し、前記時間安定性指標値が閾値以上である場合に、前記適正条件が満たされていると判定する、付記1に記載のキーポイント補正装置。
(付記6)
前記時間安定性指標値は、所定の時間内における前記移動物体の大きさの時間変化量が小さいほど大きい値となる、付記5に記載のキーポイント補正装置。
(付記7)
前記時間安定性指標値は、前記移動物体の複数の前記キーポイントの信頼度が高いほど大きい値となる、付記6に記載のキーポイント補正装置。
(付記8)
前記補正パラメータは前記移動物体の大きさを表し、
前記補正部は、前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントによって表されるその移動物体の大きさが、前記補正パラメータによって表される大きさとなるように、1つ以上の前記キーポイントを補正する、付記1から7いずれか一項に記載のキーポイント補正装置。
(付記9)
コンピュータによって実行されるキーポイント補正方法であって、
複数の撮像画像を取得する取得ステップと、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出ステップと、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定ステップと、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定ステップと、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正ステップと、を有するキーポイント補正方法。
(付記10)
前記適正条件は、前記移動物体の位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが満たすべき範囲である決定範囲を示し、
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントを用いて、前記移動物体の位置、大きさ、又は姿勢を特定し、前記特定した位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが前記決定範囲に含まれる場合に、前記適正条件が満たされていると判定する、付記9に記載のキーポイント補正方法。
(付記11)
前記判定ステップにおいて、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントを正射変換することにより、複数の前記キーポイントそれぞれに対応するオルソ画像上のキーポイント対応点を算出し、
算出された複数の前記キーポイント対応点の位置に基づいて定まる前記オルソ画像上の前記移動物体の位置、大きさ、又は姿勢を、前記移動物体の位置、大きさ、又は姿勢として算出する、付記10に記載のキーポイント補正方法。
(付記12)
前記移動物体について正解の前記キーポイントが定められている複数の教師画像を利用して、前記適正条件によって示される前記決定範囲を生成する決定範囲生成ステップを有し、
前記決定範囲生成ステップにおいて、
複数の前記教師画像それぞれについて、その教師画像における正解の前記キーポイントと、その教師画像から検出されるその移動物体の前記キーポイントとの誤差を算出し、その誤差が閾値以下である場合に、その移動物体の前記キーポイントの特徴ベクトルを算出し、
算出された複数の前記特徴ベクトルをクラスタリングすることで得られる複数のクラスタのうち、安定度が閾値以上であるクラスタに含まれる前記特徴ベクトルを用いて、前記決定範囲を生成する、付記11に記載のキーポイント補正方法。
(付記13)
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントについて、時間的な安定性を表す時間安定性指標値を算出し、前記時間安定性指標値が閾値以上である場合に、前記適正条件が満たされていると判定する、付記9に記載のキーポイント補正方法。
(付記14)
前記時間安定性指標値は、所定の時間内における前記移動物体の大きさの時間変化量が小さいほど大きい値となる、付記13に記載のキーポイント補正方法。
(付記15)
前記時間安定性指標値は、前記移動物体の複数の前記キーポイントの信頼度が高いほど大きい値となる、付記14に記載のキーポイント補正方法。
(付記16)
前記補正パラメータは前記移動物体の大きさを表し、
前記補正ステップにおいて、前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントによって表されるその移動物体の大きさが、前記補正パラメータによって表される大きさとなるように、1つ以上の前記キーポイントを補正する、付記9から15いずれか一項に記載のキーポイント補正方法。
(付記17)
コンピュータに、
複数の撮像画像を取得する取得ステップと、
各前記撮像画像から移動物体の複数のキーポイントを検出する検出ステップと、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントが、所定の適正条件を満たしているか否かを判定する判定ステップと、
前記移動物体の複数の前記キーポイントが前記適正条件を満たしていると判定された場合に、その複数の前記キーポイントを用いて、その移動物体について検出される複数の前記キーポイントの補正に利用する補正パラメータを決定する決定ステップと、
前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントを、前記補正パラメータを用いて補正する補正ステップと、を実行させるプログラム。
(付記18)
前記適正条件は、前記移動物体の位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが満たすべき範囲である決定範囲を示し、
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントを用いて、前記移動物体の位置、大きさ、又は姿勢を特定し、前記特定した位置、大きさ、姿勢、又はこれらのうちの2つ以上の組み合わせが前記決定範囲に含まれる場合に、前記適正条件が満たされていると判定する、付記17に記載のプログラム。
(付記19)
前記判定ステップにおいて、
前記撮像画像から検出された前記移動物体の複数の前記キーポイントを正射変換することにより、複数の前記キーポイントそれぞれに対応するオルソ画像上のキーポイント対応点を算出し、
算出された複数の前記キーポイント対応点の位置に基づいて定まる前記オルソ画像上の前記移動物体の位置、大きさ、又は姿勢を、前記移動物体の位置、大きさ、又は姿勢として算出する、付記18に記載のプログラム。
(付記20)
前記移動物体について正解の前記キーポイントが定められている複数の教師画像を利用して、前記適正条件によって示される前記決定範囲を生成する決定範囲生成ステップを有し、
前記決定範囲生成ステップにおいて、
複数の前記教師画像それぞれについて、その教師画像における正解の前記キーポイントと、その教師画像から検出されるその移動物体の前記キーポイントとの誤差を算出し、その誤差が閾値以下である場合に、その移動物体の前記キーポイントの特徴ベクトルを算出し、
算出された複数の前記特徴ベクトルをクラスタリングすることで得られる複数のクラスタのうち、安定度が閾値以上であるクラスタに含まれる前記特徴ベクトルを用いて、前記決定範囲を生成する、付記19に記載のプログラム。
(付記21)
前記判定ステップにおいて、前記移動物体の複数の前記キーポイントについて、時間的な安定性を表す時間安定性指標値を算出し、前記時間安定性指標値が閾値以上である場合に、前記適正条件が満たされていると判定する、付記17に記載のプログラム。
(付記22)
前記時間安定性指標値は、所定の時間内における前記移動物体の大きさの時間変化量が小さいほど大きい値となる、付記21に記載のプログラム。
(付記23)
前記時間安定性指標値は、前記移動物体の複数の前記キーポイントの信頼度が高いほど大きい値となる、付記22に記載のプログラム。
(付記24)
前記補正パラメータは前記移動物体の大きさを表し、
前記補正ステップにおいて、前記撮像画像から複数の前記キーポイントが検出された前記移動物体について前記補正パラメータが決定されている場合、その複数の前記キーポイントによって表されるその移動物体の大きさが、前記補正パラメータによって表される大きさとなるように、1つ以上の前記キーポイントを補正する、付記17から23いずれか一項に記載のプログラム。
【符号の説明】
【0122】
10 撮像画像
20 対象物体
30 キーポイント
40 カメラ
50 オルソ画像
60 バウンディングボックス
80 キーポイント対応点
90 長辺
100 矩形領域
110 補正矩形
120 頂点
500 コンピュータ
502 バス
504 プロセッサ
506 メモリ
508 ストレージデバイス
510 入出力インタフェース
512 ネットワークインタフェース
600 ネットワーク
2000 キーポイント補正装置
2020 取得部
2040 検出部
2060 判定部
2080 決定部
2100 補正部
2120 決定範囲生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10