【文献】
篠原伸之, 奥川絢太, 橋本学,DNNの中間層を利用したテンプレートマッチングにおけるパラメータ自動決定方法,2017年度精密工学会秋季大会学術講演会論文集,日本,2017年 9月 5日,D04,P213-P214
(58)【調査した分野】(Int.Cl.,DB名)
前記前段抽出部は、前記複数の前段特定用出力及び前記複数の前段基準出力のうち、活性化している大きさに基づいて、前記一以上の前段特定用出力及び前記一以上の前段基準出力を抽出する、
請求項2に記載のパラメータ特定装置。
前記抽出部は、前記複数の処理層のうち、最後尾の処理層である最後尾層を後段処理層として選択した場合において、前記最後尾層において共通に活性化している前記一以上の特定用出力及び前記一以上の基準出力がない場合、前記最後尾層より前の処理層において共通に活性化している前記一以上の特定用出力及び前記一以上の基準出力を抽出する、
請求項1又は5に記載のパラメータ特定装置。
前記特徴点検出部が特定した前記一以上の特定用特徴点及び前記一以上の基準特徴点から、相互の対応関係に基づいて一部の特定用特徴点及び一部の基準特徴点を選択する選択部をさらに有し、
前記パラメータ特定部は、前記一部の特定用特徴点と前記一部の基準特徴点とを比較することにより、前記撮像パラメータを特定する、
請求項1から6のいずれか一項に記載のパラメータ特定装置。
前記パラメータ特定部は、前記特定用撮像画像における前記一部の特定用特徴点の位置と、前記基準撮像画像における前記一部の基準特徴点の位置との関係、並びに前記第2撮像装置の設置位置及び撮像方向に基づいて、前記第1撮像装置の撮像パラメータとして設置位置及び撮像方向を特定する、
請求項7に記載のパラメータ特定装置。
前記抽出部は、前記複数の処理層のうち一つの層を前記後段処理層として選択して前記一以上の特定用出力及び前記一以上の基準出力を抽出した後に、前記前段処理層として選択した処理層を前記後段処理層として選択して、別の前記一以上の特定用出力及び前記一以上の基準出力を抽出する、
請求項1から9のいずれか一項に記載のパラメータ特定装置。
前記前段抽出ステップを実行した後に、前記一以上の前段特定用出力及び前記一以上の前段基準出力を、前記複数の後段特定用出力及び前記複数の後段基準出力として、前記後段抽出ステップを実行する、
請求項12に記載のパラメータ特定方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
撮像画像にGPS(Global Positioning System)等に基づく位置情報が付与されていない場合、撮像画像が撮像された場所を特定することは難しい。しかし、撮像画像にランドマークとなるような著名な建築物又は風景が映っている場合、当該撮像画像が撮像された場所を特定することができる場合がある。従来の技術を用いることで、撮像画像が撮像された位置が不明であっても、撮像画像に含まれる特徴点と、当該撮像画像に写っている被写体と同じ被写体が写っている画像であって、撮像した位置が予め特定されているモデル画像が有する特徴点とを比較することにより、撮像画像が撮像された位置等の撮影パラメータを特定することができる。しかし、撮像画像に写っているランドマーク以外の被写体が有する特徴点が、モデル画像が有する特徴点に対応すると誤検出してしまった場合に、撮像画像が撮像された位置等の撮影パラメータを誤って特定してしまう可能性がある。
【0005】
そこで、本発明はこれらの点に鑑みてなされたものであり、撮像画像が撮像された位置等の撮像パラメータを特定する精度を向上させることができるパラメータ特定装置及びパラメータ特定方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様に係るパラメータ特定装置は、撮像パラメータが未知の第1撮像装置で生成された特定用撮像画像と、撮像パラメータが既知の第2撮像装置で生成された基準撮像画像と、を取得する画像取得部と、前記特定用撮像画像及び前記基準撮像画像のそれぞれに、入力された画像に基づいて当該画像に含まれる被写体の種別を出力可能な機械学習モデルに含まれる複数の処理層を伝搬させる伝搬制御部と、前記複数の処理層から選択した後段処理層、及び前記後段処理層の直前の処理層である前段処理層の両方の処理層において共通に活性化している、前記特定用撮像画像に基づいて前記後段処理層及び前記前段処理層から出力された一以上の特定用出力と前記基準撮像画像に基づいて前記後段処理層及び前記前段処理層から出力された一以上の基準出力とを抽出する抽出部と、前記一以上の特定用出力に基づいて一以上の特定用特徴点を検出し、かつ前記一以上の基準出力に基づいて一以上の基準特徴点を検出する特徴点検出部と、前記一以上の特定用特徴点と前記一以上の基準特徴点とを比較することにより、前記第1撮像装置の撮像パラメータを特定するパラメータ特定部と、を有する。
【0007】
前記抽出部は、前記特定用撮像画像が前記複数の処理層の一部である前段処理層及び後段処理層の順に伝搬したことにより前記後段処理層から出力された複数の後段特定用出力、及び前記基準撮像画像が前段処理層及び後段処理層の順に伝搬したことにより前記後段処理層から出力された複数の後段基準出力から、共通に活性化している一以上の後段特定用出力及び一以上の後段基準出力を抽出する後段抽出部と、前記一以上の後段特定用出力及び前記一以上の後段基準出力を活性化させる要因となった前記前段処理層から出力された複数の前段特定用出力、及び前記前段処理層から出力された複数の前段基準出力のうち、共通に活性化している一以上の前段特定用出力及び一以上の前段基準出力を抽出する前段抽出部と、を有してもよい。
【0008】
前記前段抽出部は、前記複数の前段特定用出力及び前記複数の前段基準出力のうち、活性化している大きさに基づいて、前記一以上の前段特定用出力及び前記一以上の前段基準出力を抽出してもよい。
【0009】
前記機械学習モデルは、畳み込みニューラルネットワークを含み、前記後段処理層は、出力層、全結合層、正規化層、プーリング層、及び畳み込み層のうちのいずれかの層であってもよい。
前記前段処理層は、全結合層、正規化層、プーリング層、畳み込み層及び入力層のうちのいずれかの層であってもよい。
【0010】
前記抽出部は、前記複数の処理層のうち、最後尾の処理層である最後尾層を後段処理層として選択した場合において、前記最後尾層において共通に活性化している前記一以上の特定用出力及び前記一以上の基準出力がない場合、前記最後尾層より前の処理層において共通に活性化している前記一以上の特定用出力及び前記一以上の基準出力を抽出してもよい。
【0011】
前記パラメータ特定装置は、前記特徴点検出部が特定した前記一以上の特定用特徴点及び前記一以上の基準特徴点から、相互の対応関係に基づいて一部の特定用特徴点及び一部の基準特徴点を選択する選択部をさらに有し、前記パラメータ特定部は、前記一部の特定用特徴点と前記一部の基準特徴点とを比較することにより、前記撮像パラメータを特定してもよい。
【0012】
前記パラメータ特定部は、前記特定用撮像画像における前記一部の特定用特徴点の位置と、前記基準撮像画像における前記一部の基準特徴点の位置との関係、並びに前記第2撮像装置の設置位置及び撮像方向に基づいて、前記第1撮像装置の撮像パラメータとして設置位置及び撮像方向を特定してもよい。
【0013】
前記パラメータ特定装置は、前記複数の処理層のうち、前記後段処理層として用いる処理層を選択する指示を受け付ける指示受付部をさらに有し、前記抽出部は、前記指示受付部が受け付けた前記指示が示す前記処理層を、前記後段処理層として使用してもよい。
【0014】
前記抽出部は、前記複数の処理層のうち一つの層を前記後段処理層として選択して前記一以上の特定用出力及び前記一以上の基準出力を抽出した後に、前記前段処理層として選択した処理層を前記後段処理層として選択して、別の前記一以上の特定用出力及び前記一以上の基準出力を抽出してもよい。
【0015】
本発明の第2の態様に係るパラメータ特定方法は、撮像パラメータが未知の第1撮像装置で生成された特定用撮像画像と、撮像パラメータが既知の第2撮像装置で生成された基準撮像画像と、を取得するステップと、前記特定用撮像画像及び前記基準撮像画像のそれぞれに、入力された画像に基づいて当該画像に含まれる被写体の種別を出力可能な機械学習モデルに含まれる複数の処理層を伝搬させるステップと、前記複数の処理層から選択した後段処理層、及び前記後段処理層の直前の処理層である前段処理層の両方の処理層において共通に活性化している、前記特定用撮像画像に基づいて前記後段処理層及び前記前段処理層から出力された一以上の特定用出力と前記基準撮像画像に基づいて前記後段処理層及び前記前段処理層から出力された一以上の基準出力とを抽出するステップと、前記一以上の特定用出力に基づいて一以上の特定用特徴点を検出し、かつ前記一以上の基準出力に基づいて一以上の基準特徴点を検出するステップと、前記一以上の特定用特徴点と前記一以上の基準特徴点とを比較することにより、前記撮像パラメータを特定するステップと、を有する。
【0016】
前記抽出するステップは、前記特定用撮像画像が前記複数の処理層の一部である前段処理層及び後段処理層の順に伝搬したことにより前記後段処理層から出力された複数の後段特定用出力、及び前記基準撮像画像が前段処理層及び後段処理層の順に伝搬したことにより前記後段処理層から出力された複数の後段基準出力から、共通に活性化している一以上の後段特定用出力及び一以上の後段基準出力を抽出する前段抽出ステップと、前記一以上の後段特定用出力及び前記一以上の後段基準出力を活性化させる要因となった前記前段処理層から出力された複数の前段特定用出力、及び前記前段処理層から出力された複数の前段基準出力のうち、共通に活性化している一以上の前段特定用出力及び一以上の前段基準出力を抽出する後段抽出ステップと、を有してもよい。
【0017】
前記パラメータ特定方法は、前記前段抽出ステップを実行した後に、前記一以上の前段特定用出力及び前記一以上の前段基準出力を、前記複数の後段特定用出力及び前記複数の後段基準出力として、前記後段抽出ステップを実行してもよい。
【0018】
前記パラメータ特定方法は、前記複数の処理層のそれぞれに対して、前記後段抽出ステップ及び前記前段抽出ステップを実行してもよい。
【発明の効果】
【0019】
本発明によれば、撮像画像が撮像された位置等の撮像パラメータを特定する精度を向上させることができるという効果を奏する。
【発明を実施するための形態】
【0021】
[パラメータ特定装置1の概要]
図1は、撮像パラメータを特定する処理の概要を説明するための図である。パラメータ特定装置1は、例えばPC(Personal Computer)である。パラメータ特定装置1は、撮像パラメータが不明な撮像画像に対して、機械学習モデルMを用いて撮像パラメータを特定する装置である。撮像パラメータは、例えば、撮像画像を撮像した撮像装置の焦点距離、画像の主点、縦横比、傾き、レンズ歪み、撮像した位置情報、及び撮像装置の向きの情報等である。
【0022】
パラメータ特定装置1は、撮像パラメータが未知の第1撮像装置で生成された特定用撮像画像A1を取得する(
図1の(1))。第1撮像装置は、例えば、カメラ又はスマートフォンである。特定用撮像画像A1は、例えば、インスタグラム(登録商標)及びFaceBook(登録商標)等のSNS(Social Networking Service)に投稿された画像である。
図1に例示した特定用撮像画像A1は、ランドマークである被写体L1を背景として撮像された画像である。
【0023】
続いて、パラメータ特定装置1は、撮像パラメータが既知の第2撮像装置で生成された基準撮像画像B1を取得する(
図1の(2))。第2撮像装置は、例えば、カメラ、スマートフォン、又はPCである。基準撮像画像は、例えば、3次元空間の座標系を含む世界座標に基づいて生成された画像である。基準撮像画像は、GPSに基づく2次元座標を含む画像であってもよい。
【0024】
基準撮像画像B1は、ランドマークとなる被写体L1を写した画像であり、例えば、特徴領域L11、L12、L13が被写体として特徴的な部分であるとする。なお、特定用撮像画像と基準撮像画像とにそれぞれ写る被写体は、向きが一致していなくてもよい。すなわち、特定用撮像画像に写っている被写体が斜め方向であるのに対して、基準撮像画像に写っている被写体が正面であってもよい。
【0025】
パラメータ特定装置1は、取得した特定用撮像画像A1及び基準撮像画像B1それぞれを機械学習モデルMに入力し、当該機械学習モデルMに含まれる複数の処理層を伝搬させる(
図1の(3))。機械学習モデルMは、入力された画像に基づいて当該画像に含まれる被写体の種別を出力するように学習されたモデルである。
【0026】
図2は、機械学習モデルMの構成の一例を示す図である。機械学習モデルMは、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を含む。この場合において、機械学習モデルMは、入力層M1、第1の畳み込み層M2、第2の畳み込み層M3、第1のプーリング層M4、正規化層M5、第3の畳み込み層M6、第2のプーリング層M7、第1の全結合層M8、第2の全結合層M9、及び出力層M10を有する。本明細書においては、隣接する2つの処理層のうち、特定用撮像画像A1及び基準撮像画像B1が伝搬する際の上流側の処理層を前段処理層と称し、下流側の処理層を後段処理層と称する。
【0027】
後段処理層となり得る処理層は、第1の畳み込み層M2、第2の畳み込み層M3、第1のプーリング層M4、正規化層M5、第3の畳み込み層M6、第2のプーリング層M7、第1の全結合層M8、第2の全結合層M9、及び出力層M10のうちのいずれかの層である。また、前段処理層となり得る処理層は、入力層M1、第1の畳み込み層M2、第2の畳み込み層M3、第1のプーリング層M4、正規化層M5、第3の畳み込み層M6、第2のプーリング層M7、第1の全結合層M8、及び第2の全結合層M9のうちのいずれかの層である。パラメータ特定装置1は、取得した画像を機械学習モデルMに入力し、入力層M1から出力層M10までの各処理層を順伝搬させる、すなわち、推論させることにより、画像に写っている被写体の種別を出力させる。
【0028】
図1に戻り、パラメータ特定装置1は、機械学習モデルMが被写体の種別を出力するに至った各処理層における計算結果、すなわち、深層学習による抽象度の高い特徴量を用いて、特定用撮像画像A1及び基準撮像画像B1に共通する特徴点を検出する(
図1の(4))。ここで、パラメータ特定装置1は、共通する特徴点の検出を、伝搬させた順序とは逆の順序で行う。このようにすることで、パラメータ特定装置1は、抽象度が高い特徴量に基づく特徴点を検出することができる。
【0029】
パラメータ特定装置1は、共通する特徴点を検出することにより、特定用撮像画像A1に写っている被写体L1の特徴領域L11、L12及び基準撮像画像B1に写っているL1の特徴領域L11、L12に対応関係があることを検出する。対応関係は、特定用特徴点が示す特定用撮像画像に含まれる画素と、基準特徴点が示す基準撮像画像に含まれる画素とが一致又は近似した関係である。
【0030】
そして、パラメータ特定装置1は、検出した対応関係にある特定用撮像画像A1及び基準撮像画像B1それぞれの特徴点を比較することにより、第1撮像装置の撮像パラメータを特定する(
図1の(5))。このようにすることで、パラメータ特定装置1は、被写体の対比における誤検出の発生確率を低減し、信頼性の高い撮像パラメータを特定することができる。
以下、パラメータ特定装置1の詳細について説明する。
【0031】
[パラメータ特定装置1の構成]
図3は、パラメータ特定装置1の構成を示す図である。パラメータ特定装置1は、操作部11、記憶部12、及び制御部13を有する。
【0032】
操作部11は、ユーザの操作を受け付ける入力デバイスである。
記憶部12は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)及びハードディスク等の記憶媒体である。記憶部12は、制御部13が実行する各種のプログラムを記憶する。記憶部12は、特定用撮像画像及び基準撮像画像を記憶する。
【0033】
制御部13は、例えばCPU(Central Processing Unit)である。制御部13は、記憶部12に記憶されているプログラムを実行することにより、パラメータ特定装置1に係る機能を制御する。制御部13は、プログラムを実行することにより、画像取得部131、伝搬制御部132、抽出部133、指示受付部136、特徴点検出部137、選択部138、及びパラメータ特定部139として機能する。
【0034】
画像取得部131は、記憶部12に記憶されている特定用撮像画像と基準撮像画像とを取得する。画像取得部131は、取得した特定用撮像画像と基準撮像画像とを、伝搬制御部132に入力する。
【0035】
伝搬制御部132は、特定用撮像画像及び基準撮像画像のそれぞれに、機械学習モデルMに含まれる複数の処理層を伝搬させる。
図2に示す例において、伝搬制御部132は、特定用撮像画像及び基準撮像画像のそれぞれに、機械学習モデルMに含まれる入力層M1から出力層M10までの各処理層を、順に伝搬させる。
【0036】
抽出部133は、複数の処理層から選択した後段処理層、及び後段処理層の直前の処理層である前段処理層の両方の処理層において共通に活性化している、特定用撮像画像に基づいて後段処理層及び前段処理層から出力された一以上の特定用出力と基準撮像画像に基づいて後段処理層及び前段処理層から出力された一以上の基準出力とを抽出する。抽出部133が行う抽出処理の詳細については後述するが、抽出部133は、後段処理層で共通に活性化している特定用出力の一部である後段特定用出力及び基準出力の一部である後段基準出力を抽出する後段抽出部134と、前段処理層で共通に活性化している特定用出力の一部である前段特定用出力及び基準出力の一部である前段基準出力を抽出する前段抽出部135とを有する。
【0037】
抽出部133が抽出する特定用出力及び基準出力は、処理層に含まれる複数のユニットのうち、活性化しているユニットを示す情報である。ユニットは、画像に含まれる一以上の画素である。活性化の定義は、例えば、ユニットの出力値又はユニットの出力値と当該ユニットの結合の重みとの積が、所定の閾値を超えた場合でもよいし、出力の大きい順に所定の個数又は所定の割合に含まれた場合であってもよい。また、全結合層以外の処理層においては、例えば、チャンネルごとに出力の大きい順に所定の個数又は所定の割合に含まれた場合であってもよい。チャンネルは、フィルタ毎に畳み込み演算した出力である。
【0038】
抽出部133は、複数の処理層のうち、最後尾の処理層である最後尾層を後段処理層として選択することが好ましい。しかし、最後尾層において共通に活性化している特定用出力及び基準出力がない場合がある。そこで、抽出部133は、複数の処理層のうち、最後尾層を後段処理層として選択した場合において、最後尾層において共通に活性化している一以上の特定用出力及び一以上の基準出力がない場合、最後尾層より前の処理層において共通に活性化している一以上の特定用出力及び一以上の基準出力を抽出してもよい。
【0039】
例えば、抽出部133が、最後尾層である出力層M10を後段処理層として選択した場合において、出力層M10において共通に活性化している一以上の特定用出力及び一以上の基準出力がないとする。この場合において、抽出部133は、出力層M10より前の各処理層に対して、共通に活性化している一以上の特定用出力及び一以上の基準出力を繰り返し探索する。抽出部133は、例えば、出力層M10の直前の処理層である第2の全結合層M9において共通に活性化している一以上の特定用出力及び一以上の基準出力があった場合、第2の全結合層M9を後段処理層として選択する。そして、抽出部133は、後段処理層として選択した第2の全結合層M9において共通に活性化している一以上の特定用出力及び一以上の基準出力を抽出する。このようにすることで、抽出部133は、特定用撮像画像と基準撮像画像とで一致する領域が少ない場合であっても、それぞれに写る被写体を対応付けることができる。
【0040】
抽出部133は、ユーザによって指定された処理層を後段処理層として選択してもよい。具体的には、指示受付部136が、操作部11を介して、複数の処理層のうち、後段処理層として用いる処理層を選択する指示を受け付ける。そして、抽出部133は、指示受付部136が受け付けた指示が示す処理層を、後段処理層として使用する。抽出部133は、
図2に示す例において、ユーザが第2の全結合層M9を選択した場合に、指示受付部136が受け付けた指示が示す第2の全結合層M9を、後段処理層として使用する。抽出部133は、抽出した特定用出力と基準出力とを特徴点検出部137に入力する。
【0041】
特徴点検出部137は、一以上の特定用出力に基づいて一以上の特定用特徴点を検出し、かつ一以上の基準出力に基づいて一以上の基準特徴点を検出する。具体的には、特徴点検出部137は、まず、一以上の特定用出力及び一以上の基準出力に基づいて、対応する特徴点を探索する。そして、特徴点検出部137は、対応関係にある一以上の特定用出力に基づく一以上の特定用特徴点と、一以上の基準出力に基づく一以上の基準特徴点とを検出する。特徴点検出部137は、検出した特定用特徴点及び基準特徴点を選択部138に入力する。
【0042】
選択部138は、特徴点検出部137が特定した一以上の特定用特徴点及び一以上の基準特徴点から、相互の対応関係に基づいて一部の特定用特徴点及び一部の基準特徴点を選択する。具体的には、選択部138は、誤検出した対応関係を除去し、除去した後の対応関係に基づく一以上の特定用特徴点及び一以上の基準特徴点を選択する。対応関係の誤検出は、特定用特徴点及び基準特徴点の対応関係に矛盾が生じている状態であり、例えば射影行列が算出できない場合である。選択部138は、例えば、RANSAC(Random Sampling Consensus)法又は最小2乗メディアン(LMedS:Least Median of Square)法に基づいて絞り込みを行うことにより対応関係を除去する。
【0043】
また、例えば、基準撮像画像が3次元空間の座標系を含むCG(Computer Graphics)画像である場合において、特徴点検出部137が検出した基準特徴点のうち、4点以上の基準特徴点が実空間中において同一直線上にあることが判明しているとする。この場合において、選択部138は、まず、対応関係に基づく特定用特徴点及び基準特徴点それぞれにおいて複比を計算し、値が著しく異なっている特定用特徴点及び基準特徴点があるか否かを判定する。そして、選択部138は、値が著しく異なっていると判定した特定用特徴点及び基準特徴点を誤検出された特徴点であるとして、他の対応関係に基づく特定用特徴点及び基準特徴点を選択する。
【0044】
パラメータ特定部139は、一以上の特定用特徴点と一以上の基準特徴点とを比較することにより、第1撮像装置の撮像パラメータを特定する。具体的には、パラメータ特定部139は、選択部138が誤検出を除去した後の対応関係に基づく一部の特定用特徴点と一部の基準特徴点とを比較することにより、撮像パラメータを特定する。
【0045】
パラメータ特定部139は、例えば、特定用特徴点が示す特定用撮像画像の画素における座標を、特定用特徴点に対応する基準特徴点が示す基準撮像画像の画素における座標に変換した射影行列を生成する。そして、パラメータ特定部139は、生成した射影行列に基づいて、第1撮像装置の撮像パラメータを特定する。パラメータ特定部139は、特定用特徴点に対応する基準特徴点が示す基準撮像画像の画素における座標を、特定用特徴点が示す特定用撮像画像の画素における座標に変換した射影行列を生成してもよい。
【0046】
パラメータ特定部139は、所定の特徴領域における特定用特徴点と基準特徴点とが対応する数が所定の基準値以上である場合に、射影行列を生成してもよい。所定の基準値は、例えば、活性化の程度に応じて変わる変動値である。パラメータ特定部139は、例えば、活性化度が大きい特徴点に基づく出力がある場合に基準値を小さくし、活性化度が大きい特徴点に基づく出力がない場合に基準値を大きくする。
【0047】
パラメータ特定部139は、特定用撮像画像における一部の特定用特徴点の位置と、基準撮像画像における一部の基準特徴点の位置との関係、並びに第2撮像装置の設置位置及び撮像方向に基づいて、第1撮像装置の撮像パラメータとして設置位置及び撮像方向を特定してもよい。例えば、
図1に示す特定用撮像画像A1には、右斜め方向の被写体L1が写っており、基準撮像画像B1には、正面の被写体L1が写っているとする。
【0048】
この場合において、パラメータ特定部139は、基準撮像画像B1の被写体L1の右側に含まれる基準特徴点と対応関係にある特定用特徴点が、特定用撮像画像A1の被写体L1の左側に多く含まれることから、特定用撮像画像A1が、基準撮像画像B1に対して右斜め方向から撮像されたと特定する。そして、パラメータ特定部139は、基準撮像画像B1を撮像した第2撮像装置の撮像パラメータに基づいて、第1撮像装置の設置位置及び撮像方向を含む撮像パラメータを特定する。
【0049】
このように、パラメータ特定部139は、特徴点の対応関係だけでなく、第2撮像装置の設置位置及び撮像方向を考慮することにより、比較する画像に写っている被写体の向きが異なる場合であっても、第1撮像装置の撮像パラメータを特定することができる。パラメータ特定部139は、特定した第1撮像装置の撮像パラメータを記憶部12に記憶させる。
【0050】
[抽出処理]
続いて、抽出部133が行う抽出処理について説明する。上述のとおり、抽出部133は、後段抽出部134及び前段抽出部135を有する。後段抽出部134は、特定用撮像画像が複数の処理層の一部である前段処理層及び後段処理層の順に伝搬したことにより後段処理層から出力された複数の後段特定用出力、及び基準撮像画像が前段処理層及び後段処理層の順に伝搬したことにより後段処理層から出力された複数の後段基準出力から、共通に活性化している一以上の後段特定用出力及び一以上の後段基準出力を抽出する。
【0051】
前段抽出部135は、一以上の後段特定用出力及び一以上の後段基準出力を活性化させる要因となった前段処理層から出力された複数の前段特定用出力、及び前段処理層から出力された複数の前段基準出力のうち、共通に活性化している一以上の前段特定用出力及び一以上の前段基準出力を抽出する。
【0052】
図4から
図9は、抽出部133が行う抽出処理について説明するための図である。
図4から
図9は、前段処理層から後段処理層に伝搬させた状態を示している。
図4から
図9において、実線で示すユニットを結合する結合線は、結合するユニットから出力があったことを示し、破線で示す結合線は、結合するユニットから出力が無かったことを示す。また、結合線を示す線の太さは、結合するユニットからの出力の大きさを示す。
【0053】
図4の場合において、後段処理層は、最後尾層(例えば、出力層又は全結合層等)又は抽出部133が選択した最後尾層より前の処理層(全結合層又はプーリング層等)であり、前段処理層は、後段処理層の直前の処理層(例えば、全結合層又はプーリング層等)である。
図4においては、後段処理層が出力層M20であり、前段処理層が全結合層M19であるとして説明する。
【0054】
図4(a)は、抽出前の状態であり、
図4(b)は抽出後の状態である。特定用撮像画像において、出力層M20は、ユニットU5、U8が活性化しており、全結合層M19は、ユニットU2、U5、U6、U7、U8が活性化している。基準撮像画像において、出力層M20は、ユニットU3、U5が活性化しており、全結合層M19は、ユニットU2、U4、U5、U8が活性化している。
【0055】
この場合において、後段抽出部134は、後段処理層である出力層M20から出力された後段特定用出力であるユニットU5、U8、及び出力層M20から出力された後段基準出力であるユニットU3、U5を比較する。そして、後段抽出部134は、共通に活性化している後段特定用出力のユニットU5及び後段基準出力のユニットU5を抽出する。
【0056】
続いて、前段抽出部135は、後段特定用出力のユニットU5を活性化させる要因となった前段処理層である全結合層M19から出力された前段特定用出力であるユニットU2、U5、U6、及び後段基準出力のユニットU5を活性化させる要因となった全結合層M19から出力された前段基準出力であるユニットU2、U5、U8を比較する。そして、前段抽出部135は、共通に活性化している前段特定用出力のユニットU2、U5、及び前段基準出力のユニットU2、U5を抽出する。
【0057】
抽出部133は、出力層M20から全結合層M19までの出力を抽出すると、次の処理層に対する出力を抽出する。具体的には、抽出部133は、処理層ごとに、共通に活性化している特定用出力及び基準出力を抽出する処理を、伝搬制御部132が伝搬させた順序とは逆の順序で繰り返し行う。より具体的には、抽出部133は、複数の処理層のうち一つの層を後段処理層として選択して一以上の特定用出力及び一以上の基準出力を抽出した後に、前段処理層として選択した処理層を後段処理層として選択して、別の一以上の特定用出力及び一以上の基準出力を抽出する。このようにすることで、抽出部133は、特定用撮像画像及び基準撮像画像に対する比較の精度を高めることができる。
【0058】
図5は、特定用撮像画像に基づいて、前段処理層から後段処理層に伝搬させた状態を示している。
図6は、基準撮像画像に基づいて、前段処理層から後段処理層に伝搬させた状態を示している。
図5及び
図6の場合において、後段処理層は、全結合層M18であり、前段処理層は、全結合層以外の処理層(例えば、プーリング層又は畳み込み層等)である。
図5及び
図6においては、前段処理層がプーリング層M17であるとして説明する。また、
図5及び
図6において、前段処理層は、3つのチャンネルを有する。上段の第1チャンネルは、ユニットU11、U12、U13、U14、及びU15を含む。中段の第2チャンネルは、ユニットU21、U22、U23、U24、及びU25を含む。下段の第3チャンネルは、ユニットU31、U32、U33、U34、及びU35を含む。
【0059】
特定用撮像画像において、プーリング層M17は、第1チャンネルに含まれるユニットU13及び第2チャンネルに含まれるユニットU21、U24が活性化している。基準撮像画像において、全結合層M18は、第2チャンネルに含まれるユニットU22、U24、U25及び第3チャンネルに含まれるユニットU32、U33が活性化している。
【0060】
前段抽出部135は、後段特定用出力のユニットU5を活性化させる要因となった前段処理層であるプーリング層M17から出力された前段特定用出力、及び後段基準出力のユニットU5を活性化させる要因となったプーリング層M17から出力された前段基準出力を比較する。前段抽出部135は、活性化しているユニットの有無を調べ、活性化している前段特定用出力の第1チャンネルに含まれるユニットU13及び第2チャンネルに含まれるU21、U24と、前段基準出力の第2チャンネルに含まれるユニットU22、U24、U25及び第3チャンネルに含まれるU32、U33とに着目する。
【0061】
そして、前段抽出部135は、前段特定用出力と前段基準出力との両方において活性化しているユニットが存在しているチャンネルが第2チャンネルであることから、前段特定用出力の第2チャンネルに含まれるユニットU21、U24及び前段基準出力の第2チャンネルに含まれるユニットU22、U24、U25を抽出する。
【0062】
図7の場合において、後段処理層は、プーリング層M16であり、前段処理層は、プーリング層以外の処理層(例えば、畳み込み層又は正規化層等)である。
図7においては、前段処理層が畳み込み層M15であるとして説明する。また、
図7において、前段処理層は、チャンネルが1つであるとして説明する。特定用撮像画像において、プーリング層M16は、ユニットU5が活性化しており、畳み込み層M15は、ユニットU3、U5が活性化している。基準撮像画像において、プーリング層M16は、ユニットU3が活性化しており、畳み込み層M15は、ユニットU3、U4が活性化している。
【0063】
ここで、抽出部133は、画像の圧縮を行うプーリング層においては、直前の処理層からプーリング層に結合している複数のユニットのうち、チャンネルごとに活性化している程度に基づいて出力を抽出する。具体的には、前段抽出部135は、複数の前段特定用出力及び複数の前段基準出力のうち、活性化している大きさに基づいて、一以上の前段特定用出力及び一以上の前段基準出力を抽出する。前段抽出部135は、例えば、複数の前段特定用出力及び複数の前段基準出力のうち、チャンネルごとに最も大きく活性化している一以上の前段特定用出力及び一以上の前段基準出力を抽出する。
【0064】
この場合において、後段抽出部134は、直前の抽出処理において前段処理層として選択したプーリング層M16を選択して、プーリング層M16から出力された後段特定用出力のユニットU5、及びプーリング層M16から出力された後段基準出力のユニットU3を抽出する。そして、前段抽出部135は、後段特定用出力のユニットU3、U5及び後段基準出力のユニットU3、U4のうち、チャンネルごとに最も大きく活性化している前段特定用出力のユニットU5、及び前段基準出力のユニットU4を抽出する。このようにすることで、前段抽出部135は、画像の中で特徴となる領域を特定することができる。
【0065】
図8の場合において、後段処理層は、畳み込み層M14であり、前段処理層は、畳み込み層を含む他の処理層(例えば、正規化層又はプーリング層等)である。
図8においては、前段処理層が正規化層M13であるとして説明する。また、
図8において、前段処理層は、チャンネルが1つであるとして説明する。特定用撮像画像において、畳み込み層M14は、ユニットU5が活性化しており、正規化層M13は、ユニットU3、U5、U6が活性化している。基準撮像画像において、畳み込み層M14は、ユニットU3が活性化しており、正規化層M13は、ユニットU3、U4、U5が活性化している。
【0066】
この場合において、後段抽出部134は、直前の抽出処理において前段処理層として選択した畳み込み層M14を選択して、畳み込み層M14から出力された後段特定用出力のユニットU5、及び畳み込み層M14から出力された後段基準出力のユニットU3を抽出する。
【0067】
続いて、前段抽出部135は、後段特定用出力のユニットU5を活性化させる要因となった前段処理層である正規化層M13から出力された前段特定用出力、及び後段基準出力のユニットU4を活性化させる要因となった前段処理層である正規化層M13から出力された前段基準出力を比較する。ここで、前段抽出部135は、後段処理層が畳み込み層である場合、後段抽出部134が後段処理層から抽出したユニットに結合する前段処理層の複数のユニットのうち、前段特定用出力と前段基準出力とにおいて位置が相対的に同じであり、かつチャンネルが共通するユニットを抽出する。この場合、前段抽出部135は、前段特定用出力と前段基準出力とにおいて位置が相対的に同じであり、かつチャンネルが共通するユニットとして、前段特定用出力のユニットU5、U6、及び前段基準出力のユニットU3、U4を抽出する。
【0068】
図9の場合において、後段処理層は、正規化層M12であり、前段処理層は、正規化層以外の処理層(例えば、畳み込み層又はプーリング層等)である。
図9においては、前段処理層がプーリング層M11であるとして説明する。また、
図9において、前段処理層は、チャンネルが1つであるとして説明する。特定用撮像画像において、正規化層M12は、ユニットU5が活性化している。基準撮像画像において、正規化層M12は、ユニットU3が活性化している。
【0069】
ここで、抽出部133は、画像に対して前処理を行う正規化層においては、後段処理層において活性化しているユニットに結合している前段処理層に含まれる複数のユニットのうち、中心のユニットを抽出する。この場合において、後段抽出部134は、後段処理層として選択した正規化層M12から出力された後段特定用出力のユニットU5、及び正規化層M12から出力された後段基準出力のユニットU3を抽出する。
【0070】
そして、前段抽出部135は、正規化層M12から出力された後段特定用出力のユニットU5に結合しているプーリング層M11のユニットのうち、中心のユニットU5を抽出する。同様に、前段抽出部135は、正規化層M12から出力された後段基準出力のユニットU3に結合しているプーリング層M11のユニットのうち、中心のユニットU3を抽出する。
【0071】
抽出部133は、上述の抽出処理を入力層まで繰り返し行うことが好ましい。しかし、抽出部133は、抽出処理を最初の処理層まで行わずに、途中の処理層(例えば、プーリング層又は正規化層等)で終了してもよい。このように、抽出部133は、伝搬制御部132が伝搬させた順序とは逆の順序で抽出処理を行うことにより、抽象度が高い出力を抽出することができる。
【0072】
[パラメータ特定装置1の処理]
続いて、パラメータ特定装置1が行う処理の流れを説明する。
図10は、パラメータ特定装置1が行う処理の流れを示すフローチャートである。本フローチャートは、パラメータ特定装置1が、記憶部12に特定用撮像画像が格納され、ユーザが撮像パラメータを特定する処理を実行する操作を受け付けたことを契機として開始する。
【0073】
画像取得部131は、記憶部12に記憶されている特定用撮像画像と基準撮像画像とを取得する(S1)。画像取得部131は、取得した特定用撮像画像と基準撮像画像とを、伝搬制御部132に入力する。伝搬制御部132は、画像取得部131から入力された特定用撮像画像及び基準撮像画像のそれぞれに、機械学習モデルMに含まれる入力層M1から出力層M10までの複数の処理層を、入力層M1から順に伝搬させる(S2)。
【0074】
抽出部133は、後段処理層及び前段処理層の両方の処理層において共通に活性化している一以上の特定用出力及び一以上の基準出力を抽出する処理を行う(S3)。
図11は、抽出部133が行う処理の流れを示すフローチャートである。抽出部133は、指示受付部136が、操作部11を介して、複数の処理層のうち、後段処理層として用いる処理層を選択する指示を受け付けたか否かを判定する(S31)。
【0075】
抽出部133は、指示受付部136が指示を受け付けたと判定した場合、指示受付部136が受け付けた指示が示す処理層を、後段処理層として選択する(S32)。抽出部133は、例えば、指示受付部136が第1の全結合層M8を示す指示を受け付けたと判定した場合、指示受付部136が受け付けた指示が示す第1の全結合層M8を、後段処理層として使用する。一方、抽出部133は、指示受付部136が指示を受け付けていないと判定した場合、最後尾層(例えば、出力層M10)で共通に活性化している一以上の特定用出力及び一以上の基準出力があるか否かを判定する(S33)。
【0076】
抽出部133は、出力層M10で共通に活性化している一以上の特定用出力及び一以上の基準出力があると判定した場合、最後尾層である出力層M10を、後段処理層として使用する(S34)。一方、抽出部133は、出力層M10で共通に活性化している一以上の特定用出力及び一以上の基準出力がないと判定した場合、出力層M10より前の各処理層に対して、共通に活性化している一以上の特定用出力及び一以上の基準出力を繰り返し探索する。そして、抽出部133は、共通に活性化している一以上の特定用出力及び一以上の基準出力がある処理層(例えば、第2の全結合層M9)を、後段処理層として使用する(S35)。抽出部133は、選択した後段処理層、及び前段処理層の両方の処理層において共通に活性化している、特定用撮像画像に基づいて後段処理層及び前段処理層から出力された一以上の特定用出力と基準撮像画像に基づいて後段処理層及び前段処理層から出力された一以上の基準出力とを抽出する。
【0077】
具体的には、まず、後段抽出部134は、選択した後段処理層から出力された複数の後段特定用出力、及び選択した後段処理層から出力された複数の後段基準出力から、共通に活性化している一以上の後段特定用出力及び一以上の後段基準出力を抽出する(S36)。そして、前段抽出部135は、後段抽出部134が抽出した一以上の後段特定用出力及び一以上の後段基準出力を活性化させる要因となった前段処理層から出力された複数の前段特定用出力、及び前段処理層から出力された複数の前段基準出力のうち、共通に活性化している一以上の前段特定用出力及び一以上の前段基準出力を抽出する(S37)。
【0078】
続いて、抽出部133は、前段処理層より前に別の処理層があるか否かを判定する(S38)。抽出部133は、前段処理層(例えば、第2のプーリング層M7)より前に別の処理層(例えば、第3の畳み込み層M6)があると判定した場合、第2のプーリング層M7を後段処理層として選択し(S39)、処理をS36に戻す。一方、抽出部133は、前段処理層(例えば、入力層M1)より前に別の処理層がないと判定した場合、抽出した一以上の特定用出力及び一以上の基準出力を特徴点検出部137に入力し、抽出処理を終了する。
【0079】
図10に戻り、特徴点検出部137は、一以上の特定用出力及び一以上の基準出力に基づいて、対応する特徴点を探索し、対応関係にある一以上の特定用出力に基づく一以上の特定用特徴点と、一以上の基準出力に基づく一以上の基準特徴点とを検出する(S4)。続いて、選択部138は、特徴点検出部137が検出した特定用特徴点及び基準特徴点に不適切な特徴点があるか否かを判定する(S5)。選択部138は、例えば、RANSAC法に基づいて絞り込みを行う。
【0080】
選択部138は、特定用特徴点及び基準特徴点に不適切な特徴点があると判定した場合、不適切な特徴点、すなわち、誤検出した対応関係を除去し(S6)、除去した後の対応関係に基づく一部の特定用特徴点及び一部の基準特徴点を選択する。パラメータ特定部139は、選択部138が、特定用特徴点及び基準特徴点に不適切な特徴点がないと判定した場合、又は誤検出した対応関係を除去した後に、一以上の特定用特徴点と一以上の基準特徴点とを比較することにより、第1撮像装置の撮像パラメータを特定する(S7)。パラメータ特定部139は、例えば、特定用特徴点が示す特定用撮像画像の画素における座標を、特定用特徴点に対応する基準特徴点が示す基準撮像画像の画素における座標に変換することにより生成した射影行列に基づいて、第1撮像装置の撮像パラメータを特定する。パラメータ特定部139は、特定した第1撮像装置の撮像パラメータを記憶部12に記憶させる。
【0081】
[実施形態における効果]
以上説明したとおり、パラメータ特定装置1は、取得した特定用撮像画像及び基準撮像画像のそれぞれに、機械学習モデルMに含まれる複数の処理層を伝搬させる。パラメータ特定装置1は、伝搬させた順とは逆の順序で後段処理層及び前段処理層の両方の処理層において共通に活性化している一以上の特定用出力及び一以上の基準出力を、処理層ごとに抽出し、対応関係にある特定用特徴点及び基準特徴点をそれぞれ検出する。そして、パラメータ特定装置1は、誤検出した対応関係を除去した一以上の特定用特徴点と一以上の基準特徴点とを比較することにより、第1撮像装置の撮像パラメータを特定する。
【0082】
このようにすることで、パラメータ特定装置1は、畳み込みニューラルネットワークを含む機械学習モデルMを使用し、深層学習による抽象度が高い特徴量を求めることにより、撮像画像が撮像された撮像パラメータを算出することができる。その結果、パラメータ特定装置1は、撮像画像が撮像された位置等の撮像パラメータを特定する精度を向上させることができる。
【0083】
パラメータ特定装置1は、例えば、SNSに投稿された位置情報が付与されていない第1撮像画像に対して、第1撮像画像に写っているランドマークとなるような著名な建築物又は風景と同じ建築物等が写っている第2撮像画像を用いることにより、第1撮像画像が撮像された位置を特定することができる。パラメータ特定装置1は、建築物等が写っている写真だけでなく、建築物等がCGによって生成された画像を第2撮像画像として用いることも可能である。
【0084】
また、パラメータ特定装置1は、例えば、CGによって生成されたサッカー場のフィールドにおけるラインの形状を用いて、AR(Augmented Reality)映像生成装置又は自由視点映像生成装置に、精度が高い視点の位置及び向きを示す情報を提供することができる。これにより、パラメータ特定装置1は、AR映像生成装置又は自由視点映像生成装置によって生成されるAR映像又は自由視点映像の画質を向上させることができる。
【0085】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。