特許第6985593号(P6985593)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 富士通株式会社の特許一覧

特許6985593画像処理プログラム、画像処理装置および画像処理方法
<>
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000002
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000003
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000004
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000005
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000006
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000007
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000008
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000009
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000010
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000011
  • 特許6985593-画像処理プログラム、画像処理装置および画像処理方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6985593
(24)【登録日】2021年11月30日
(45)【発行日】2021年12月22日
(54)【発明の名称】画像処理プログラム、画像処理装置および画像処理方法
(51)【国際特許分類】
   G06T 7/80 20170101AFI20211213BHJP
   G06T 7/593 20170101ALI20211213BHJP
   G06T 7/00 20170101ALI20211213BHJP
【FI】
   G06T7/80
   G06T7/593
   G06T7/00 300F
【請求項の数】7
【全頁数】18
(21)【出願番号】特願2017-201721(P2017-201721)
(22)【出願日】2017年10月18日
(65)【公開番号】特開2019-74991(P2019-74991A)
(43)【公開日】2019年5月16日
【審査請求日】2020年7月1日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】齊藤 真貴
【審査官】 粕谷 満成
(56)【参考文献】
【文献】 特開2005−241323(JP,A)
【文献】 特開2016−121917(JP,A)
【文献】 特開2016−110210(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/80
G06T 7/593
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
位置と向きが固定された複数の第1カメラによって対象物がそれぞれ撮影された複数の第1画像と、可搬型の第2カメラによって前記対象物がそれぞれ撮像され、第1の画像順が付与された複数の第2画像とを取得し、
前記複数の第1画像と前記複数の第2画像との類似度と、前記第1の画像順とに基づいて、前記複数の第1画像および前記複数の第2画像の全体における順序を示す第2の画像順を決定し、
前記複数の第1画像および前記複数の第2画像と前記第2の画像順とに基づいて、前記複数の第1カメラのそれぞれの位置姿勢を推定する、
処理を実行させる画像処理プログラム。
【請求項2】
前記コンピュータに、
前記位置姿勢の推定後に、前記複数の第1カメラによって前記対象物がそれぞれ撮影された複数の第3画像を取得し、
前記複数の第3画像と前記位置姿勢とに基づいて、前記複数の第3画像に写る前記対象物の3次元形状を示す情報を生成する、
処理をさらに実行させる請求項1記載の画像処理プログラム。
【請求項3】
前記第2の画像順の決定では、前記複数の第1画像のうち一の画像と、前記複数の第2画像のそれぞれとの間の類似度に基づいて、前記複数の第2画像のうち前記第1の画像順においてそれぞれ隣接する複数の画像ペアの中から、一の画像ペアを特定し、前記一の画像ペアに含まれる画像間の位置に前記一の画像を挿入する、
請求項1または2記載の画像処理プログラム。
【請求項4】
前記位置姿勢を推定する処理は、前記複数の第1画像および前記複数の第2画像のうち前記第2の画像順において隣接する複数の画像間での、特徴点のマッチング処理を含む、
請求項1乃至3のいずれか1項に記載の画像処理プログラム。
【請求項5】
前記複数の第2画像は、前記第2カメラによって撮影された動画像から切り出された静止画像であり、前記第1の画像順は、前記複数の第2画像の撮影順を示す、
請求項1乃至4のいずれか1項に記載の画像処理プログラム。
【請求項6】
位置と向きが固定された複数の第1カメラによって対象物がそれぞれ撮影された複数の第1画像と、可搬型の第2カメラによって前記対象物がそれぞれ撮像され、第1の画像順が付与された複数の第2画像とが入力される入力部と、
前記複数の第1画像と前記複数の第2画像との類似度と、前記第1の画像順とに基づいて、前記複数の第1画像および前記複数の第2画像の全体における順序を示す第2の画像順を決定し、前記複数の第1画像および前記複数の第2画像と前記第2の画像順とに基づいて、前記複数の第1カメラのそれぞれの位置姿勢を推定する演算部と、
を有する画像処理装置。
【請求項7】
コンピュータが、
位置と向きが固定された複数の第1カメラによって対象物がそれぞれ撮影された複数の第1画像と、可搬型の第2カメラによって前記対象物がそれぞれ撮像され、第1の画像順が付与された複数の第2画像とを取得し、
前記複数の第1画像と前記複数の第2画像との類似度と、前記第1の画像順とに基づいて、前記複数の第1画像および前記複数の第2画像の全体における順序を示す第2の画像順を決定し、
前記複数の第1画像および前記複数の第2画像と前記第2の画像順とに基づいて、前記複数の第1カメラのそれぞれの位置姿勢を推定する、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理プログラム、画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
近年、対象物を撮影した複数の画像を基に対象物の3次元形状を復元する技術の研究が進んでいる。例えば、Structure from Motion(SfM)は、複数の画像を基に各画像を撮影したカメラの位置姿勢を推定するとともに、対象物の3次元形状を復元するものである。また、推定されたカメラの位置姿勢の情報を基に、マルチビューステレオ方式によって詳細な3次元形状を復元する方法もある。
【0003】
また、3次元形状の復元技術の例として、次のような提案がある。この提案では、ユーザにより対象物が撮影された複数のユーザ画像と、ユーザ以外のものにより対象物が撮影された複数の画像とが取得される。そして、これらの画像に基づいて各画像の撮影条件が推定され、推定された撮影条件と各画像とに基づいて、対象物の3次元形状に係る情報が生成される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2016−004466号公報
【非特許文献】
【0005】
【非特許文献1】Tomasi, C. and Kanade, T., “Shape and motion from image streams under orthography:a factorization method.”, Int'l. J. Computer Vision, 9(2), 1992, pp.137-154
【非特許文献2】Furukawa, Y. and Ponce, J., “Accurate, dense, and robust multiview stereopsis.”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 32(8), 2010, pp.1362-1376
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、マルチビューステレオ方式を用いることで、限られた数の定点カメラからの画像を基に、比較的高精度な3次元モデルを生成できる。しかし、そのためには定点カメラの位置姿勢を正確に測定する必要があり、測定作業に手間がかかる。そこで、測定作業を省略するために、定点カメラからの画像を基にSfM技術により各定点カメラの位置姿勢を推定し、推定された位置姿勢を用いて3次元モデルを生成する方法が考えられる。しかし、定点カメラの数が少ないほど位置姿勢の推定精度が低下し、3次元モデルの復元精度も悪化する。
【0007】
そこで、定点カメラからの画像に加え、可搬型カメラによって対象物を撮影したより多くの画像を用いて、定点カメラの位置姿勢を推定する方法が考えられる。しかし、これらの画像を単に利用した場合、定点カメラからの画像と可搬型カメラからの画像との間の関連性が不明であるため、位置姿勢の推定処理効率が悪く、その推定精度の悪化を招く可能性があるという問題がある。
【0008】
1つの側面では、本発明は、定点カメラの位置姿勢を高効率で推定可能な画像処理プログラム、画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、画像処理プログラムが提供される。この画像処理プログラムは、コンピュータに、位置と向きが固定された複数の第1カメラによって対象物がそれぞれ撮影された複数の第1画像と、第2カメラによって対象物がそれぞれ撮像され、第1の画像順が付与された複数の第2画像とを取得し、複数の第1画像と複数の第2画像との類似度と、第1の画像順とに基づいて、複数の第1画像および複数の第2画像の全体における順序を示す第2の画像順を決定し、複数の第1画像および複数の第2画像と第2の画像順とに基づいて、複数の第1カメラのそれぞれの位置姿勢を推定する、処理を実行させる。
【0010】
また、1つの案では、上記の画像処理プログラムにしたがった処理と同様の処理を実行する画像処理装置が提供される。
さらに、1つの案では、上記の画像処理プログラムにしたがった処理と同様の処理をコンピュータが実行する画像処理方法が提供される。
【発明の効果】
【0011】
1つの側面では、定点カメラの位置姿勢を高効率で推定できる。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態に係る画像処理装置の構成例および処理例を示す図である。
図2】第2の実施の形態に係る計測システムの構成例を示す図である。
図3】対象物の体積を計測する計測工程について説明するための図である。
図4】体積計測の前工程について説明するための図である。
図5】画像順の決定処理について説明するための図である。
図6】前工程および計測工程を含む全体の作業手順を示す図である。
図7】計測サーバのハードウェア構成例を示す図である。
図8】計測サーバが備える処理機能の構成例を示すブロック図である。
図9】前工程で実行される前処理の手順を示すフローチャートの例である。
図10】画像順決定処理の手順を示すフローチャートの例である。
図11】計測処理の手順を示すフローチャートの例である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る画像処理装置の構成例および処理例を示す図である。図1に示す画像処理装置1は、対象物2を撮影するカメラ3a〜3cのそれぞれの位置姿勢を推定するための装置である。カメラ3a〜3cは、それぞれ位置と向きとが固定されている。また、カメラ3a〜3cの位置や向きは、隣接する2つのカメラ(図1の例では、カメラ3aとカメラ3b、およびカメラ3bとカメラ3c)で撮影される画像の間において、対象物2上の撮影領域がオーバラップするように設定される。なお、推定された位置姿勢は、例えば、その後にカメラ3a〜3cによって撮影された画像を基に対象物2の3次元形状を示す情報を生成する際に、利用される。
【0014】
画像処理装置1は、入力部1a、記憶部1bおよび演算部1cを有する。入力部1aは、例えば、通信インタフェース回路、あるいは可搬型記録媒体の読み取り装置として実現される。記憶部1bは、例えば、RAM(Random Access Memory)やHDD(Hard Disk Drive)など、画像処理装置1が備える記憶装置の記憶領域として実現される。演算部1cは、例えば、画像処理装置1が備えるプロセッサとして実現される。
【0015】
入力部1aには、カメラ3a〜3cによってそれぞれ撮影された画像(第1画像)5a〜5cが入力される。また、入力部1aには、カメラ3a〜3bとは別のカメラ4によって対象物2が撮影された複数の画像(第2画像)も入力される。図1では例として、カメラ4によって撮影された10枚の画像6a〜6jが入力される。なお、図1の例では、入力された画像5a〜5cと画像6a〜6jは、記憶部1bに一時的に記憶されるものとする。
【0016】
ここで、画像6a〜6jには、画像6a,6b,6c,6d,6e,6f,6g,6h,6i,6jの順に画像順が付与されている。ここでは、画像6a〜6jにあらかじめ付与された画像順を「第1の画像順」と呼ぶ。
【0017】
また、これらの画像6a〜6jは、例えば、次のようにして生成される。カメラ4を手に持ったユーザは、対象物2の周囲を移動しながら、対象物2が写った動画像をカメラ4に撮影させる。そして、得られた動画像から画像6a〜6jが切り出されて生成される。あるいは、ユーザが対象物2の周囲を移動しながらカメラ4に静止画像を連続的に撮影させることで、画像6a〜6jが生成されてもよい。いずれの場合でも、画像6a〜6jは、第1の画像順において隣接する2つの画像間で、対象物2における撮影領域がオーバラップするように撮影される。また、これら2つの例では、画像6a〜6jの撮影順を第1の画像順とすることができる。
【0018】
演算部1cは、画像5a〜5cと画像6a〜6jとの類似度と、画像6a〜6jについての第1の画像順とに基づいて、画像5a〜5c,6a〜6jの全体における順序を決定する(ステップS1)。ここでは、決定される順序を「第2の画像順」と呼ぶ。
【0019】
例えば、演算部1cは、画像5aと画像6a〜6jのそれぞれとの類似度を計算する。演算部1cは、画像6a〜6jのうち、第1の画像順においてそれぞれ隣接する複数の画像ペアの中から、画像5aとの類似度が高い2つの画像を含む1つの画像ペアを特定する。演算部1cは、特定された画像ペアに含まれる画像間の位置に、画像5aを挿入する。図1の例では、画像ペアとして画像6b,6cが特定され、画像6bと画像6cとの間に画像5aが挿入されている。
【0020】
演算部1cは、上記と同様の処理を画像5b,5cについても実行する。図1の例では、画像5bについて画像ペアとして画像6e,6fが特定され、画像6eと画像6fとの間に画像5bが挿入されている。また、画像5cについて画像ペアとして画像6h,6iが特定され、画像6hと画像6iとの間に画像5cが挿入されている。このような処理により、第2の画像順として、画像6a,6b,5a,6c,6d,6e,5b,6f,6g,6h,5c,6i,6jという順序が決定される。
【0021】
次に,演算部1cは、画像5a〜5c,6a〜6jと、決定された第2の画像順とに基づいて、カメラ3a〜3cのそれぞれの位置姿勢を推定する(ステップS2)。位置姿勢の推定は、例えば、SfMの手法を用いて実行される。
【0022】
ここで、本実施の形態によれば、カメラ3a〜3cによる画像5a〜5cに加えて、カメラ4による画像6a〜6jも用いられることで、カメラ3a〜3cのそれぞれの位置姿勢の推定精度を向上させることができる。しかし、画像5a〜5cと画像6a〜6jとの間では、撮影の連続性などの関連性が不明であることから、これらの画像を単に利用するだけでは、位置姿勢の推定処理効率が悪く、その推定精度の悪化を招く可能性もある。
【0023】
例えば、位置姿勢の推定のために2つの画像間で対応する特徴点(対応点)を探索する際には、対応点が画像間にできるだけ多く存在することが好ましい。しかし、画像5a〜5cと画像6a〜6jとの関連性が不明な状態では、画像5a〜5c,6a〜6jを用いて総当たりで画像間の対応点探索を行い、対応点を多く含む画像のペアを特定する必要が生じる。このため、計算量や処理負荷が増大する。また、計算を簡略化して処理負荷を下げようとすると、位置姿勢の推定精度が低下する可能性がある。
【0024】
これに対して、本実施の形態によれば、画像5a〜5cと画像6a〜6jとの類似度と、画像6a〜6jについての第1の画像順とに基づいて、画像5a〜5c,6a〜6jの全体に対して第2の画像順が決定される。そして、このように決定された第2の画像順を用いることで、カメラ3a〜3cのそれぞれの位置姿勢を効率よく推定できる。
【0025】
例えば、類似度に基づいて第2の画像順が決定されることで、第2の画像順において隣接する2つの画像には、対象物2上の同一領域が大きな面積で写っている可能性が高く、それらの画像間に対応点が多く含まれている可能性が高い。そのため、対応点の探索の際には、第2の画像順にしたがって、先頭から順に隣接する2つの画像を選択しながら対応点を探索していけばよくなる。このように、第2の画像順を用いることで処理効率を向上させることができる。
【0026】
なお、例えば、以上の手順によりカメラ3a〜3cのそれぞれの位置姿勢が推定された後、カメラ3a〜3cによって対象物2が撮影される。この撮影は、例えば、定期的に行われる。画像処理装置1は、撮影された画像に基づき、マルチビューステレオ方式によって対象物2の3次元形状を示す情報を生成する。このとき、画像処理装置1は、上記手順で推定されたカメラ3a〜3cのそれぞれの位置姿勢を用いて、対象物2の3次元形状を示す情報を生成する。この処理では、上記手順によって高効率かつ高精度に推定された位置姿勢を用いることで、限られた数のカメラ3a〜3cからの画像だけを用いて、対象物2の3次元形状を精度よく復元できる。
【0027】
〔第2の実施の形態〕
次に、第2の実施の形態として、上記の画像処理装置1の処理機能を用いて対象物の体積を計測できるようにした計測システムについて説明する。
【0028】
図2は、第2の実施の形態に係る計測システムの構成例を示す図である。図2に示す計測システムは、計測サーバ100とユーザ端末200を含む。計測サーバ100とユーザ端末200との間は、ネットワーク300によって接続されている。ネットワーク300は、例えば、インターネットなどの広域ネットワークである。
【0029】
計測サーバ100は、対象物を撮影した画像を基に対象物の体積を計測する計測サービスを提供するためのサーバ装置である。ユーザ端末200は、計測サービスを利用するユーザ側に設置される端末装置である。ユーザ端末200は、対象物を撮影する10台の定点カメラ211〜220から静止画像を取得し、計測サーバ100にアップロードする。また、ユーザ端末200は、対象物を撮影する可搬型カメラ230から動画像を取得し、計測サーバ100にアップロードすることもできる。
【0030】
なお、定点カメラの台数は、図2の例のように10台に限定されるものではない。また、例えば、ユーザ端末200と定点カメラ211〜220とは、有線ネットワークまたは無線ネットワークを介して接続され、ユーザ端末200は、定点カメラ211〜220によって撮影された静止画像をこのようなネットワークを介して取得する。また、例えば、ユーザ端末200と可搬型カメラ230とは、無線ネットワークを介して接続され、ユーザ端末200は、可搬型カメラ230によって撮影された動画像をこのようなネットワークを介して取得する。あるいは、ユーザ端末200は、撮影された画像を記録媒体に記憶された状態で取得してもよい。
【0031】
図3は、対象物の体積を計測する計測工程について説明するための図である。定点カメラ211〜220は、対象物240の周囲に略一定間隔を置いて設置される。定点カメラ211〜220の位置および向きは、固定されている。本実施の形態では、定点カメラ211〜220はそれぞれ比較的広い画角を有し、それぞれ対象物240全体を撮影できるようになっている。この場合、定点カメラ211〜220は、対象物240をそれぞれ異なる角度から撮影する。
【0032】
対象物240の体積の計測は、定期的に行われる。計測タイミングにおいて、定点カメラ211〜220によって静止画像が撮影され、それらの10枚の静止画像がユーザ端末200に送信される。なお、これ以後、定点カメラ211〜220によって撮影された静止画像を「定点画像」と呼ぶ。ユーザ端末200は、受信した定点画像を計測サーバ100にアップロードする。計測サーバ100は、アップロードされた定点画像に基づき、マルチビューステレオ方式によって対象物240の3次元モデルを再現し、その3次元モデルに基づいて対象物240の体積を算出する。
【0033】
定点カメラ211〜220の撮影対象は、例えば、製品製造のための原材料や資材が集積される領域とされる。例えば、製紙工場においては、原材料となる木材チップが決められた場所に集積される。この場合、集積された木材チップの山が対象物240となる。
【0034】
このような領域では、集積される原材料や資材の量が時間に応じて変化する。上記のように、このような領域が定点カメラ211〜220によって定期的に撮影され、得られた定点画像に基づいて集積されている原材料や資材の体積が計測されることで、集積されている原材料や資材の量を効率的に管理できる。また、本実施の形態では、対象物240の3次元モデルから対象物240の体積を計測するが、この3次元モデルから対象物240の重量を推測することもできる。
【0035】
ところで、上記のように、計測サーバ100は、定点カメラ211〜220によって撮影された定点画像に基づき、マルチビューステレオ方式によって対象物240の3次元モデルを再現する。マルチビューステレオ方式を用いることにより、限られた数の定点カメラを用いて対象物240の3次元モデルを高精度に再現できる。しかし、そのためには、定点カメラ211〜220のそれぞれの位置姿勢を事前に正確に取得しておく必要がある。このような位置姿勢を人手によって正確に計測するためには、測量士による専用機材を用いた測量が必要となるなど、手間のかかる作業が必要となってしまう。
【0036】
そこで、本実施の形態では、上記の計測工程に対する前工程において、対象物240を撮影した複数の画像に基づき、SfM技術を用いて定点カメラ211〜220のそれぞれの位置姿勢を計算によって求める。これにより、位置姿勢の取得作業を大幅に効率化する。
【0037】
図4は、体積計測の前工程について説明するための図である。前工程では、計測サーバ100は、対象物240を撮影した複数の画像に基づき、SfM技術を用いて定点カメラ211〜220のそれぞれの位置姿勢を示す位置姿勢を推定する。SfMでは、多くの画像を用いるほど位置姿勢を正確に推定できる。しかし、定点カメラは限られた数しか設置されていないので、これらの定点カメラ211〜220から得られた定点画像だけを用いた場合、位置姿勢の正確な推定のために画像数が十分とは言えない。
【0038】
そこで、図4に示すように、計測サーバ100は、定点カメラ211〜220から得られた定点画像に加えて、可搬型カメラ230から得られた複数の静止画像も用いて、定点カメラ211〜220のそれぞれの位置姿勢を推定する。具体的には、前工程では、定点カメラ211〜220によって定点画像が撮影されるとともに、可搬型カメラ230によって、対象物240を写した動画像が撮影される。動画像の撮影者は、可搬型カメラ230を手に持って対象物240の周囲を略一定速度で移動しながら、可搬型カメラ230に対象物240を写した動画像を撮影させる。
【0039】
定点カメラ211〜220によって撮影された10枚の定点画像は、ユーザ端末200を介して計測サーバ100にアップロードされる。また、可搬型カメラ230によって撮影された動画像も、ユーザ端末200を介して計測サーバ100にアップロードされる。計測サーバ100は、アップロードされた動画像から静止画像を切り出し、切り出された静止画像とアップロードされた定点画像とを用いて、定点カメラ211〜220のそれぞれの位置姿勢を推定する。
【0040】
以下の説明では、動画像から切り出された静止画像を「切り出し画像」と呼ぶ。切り出し画像は、例えば、動画像から一定間隔でフレームが抽出されることで生成される。ただし、隣接する切り出し画像の間で対象物240上の撮影領域がオーバラップするように、フレームが抽出される。
【0041】
また、本実施の形態では、動画像から、定点画像より多くの数の切り出し画像が生成される。例として、切り出し画像は100枚生成されるものとする。したがって、計測サーバ100は、合計110枚の静止画像に基づいて位置姿勢を推定する。切り出し画像が多数生成されることで、可搬型カメラ230として、定点カメラ211〜220より狭い画角を有するカメラを使用しても、隣接する画像の間で対象物240上の撮影領域がオーバラップするような切り出し画像を容易に生成できるようになる。
【0042】
なお、動画像からの切り出し画像の生成は、計測サーバ100ではなく、ユーザ端末200において行われてもよい。また、切り出し画像や動画像からではなく、可搬型カメラ230によって直接撮影されてもよい。この場合、撮影者は可搬型カメラ230を持って移動しながら、対象物240が写った静止画像(切り出し画像に相当)を可搬型カメラ230に間欠的に複数枚撮影させる。ただし、可搬型カメラ230に動画像を撮影させ、計測サーバ100またはユーザ端末200において動画像から切り出し画像を生成する方が、撮影者の作業負担を軽減し、作業効率を高めることができる。
【0043】
ところで、切り出し画像は、動画像から順次切り出されて生成されるので、各切り出し画像の間には撮影順に沿った順序関係がある。一方、定点画像は切り出し画像を撮影したカメラとは別のカメラによって撮影されたものなので、定点画像と切り出し画像との間には順序関係がない。
【0044】
SfMでは、画像を撮影順に沿って処理する方が、その処理効率を高めることができる。例えば、画像に順序関係がない場合、多数の画像の中から、対応する特徴点(対応点)を多く抽出できる適切な画像ペアを特定する必要がある。一方、画像を撮影順に処理する場合、撮影順に沿って隣接する画像間で多くの対応点を抽出できると推測されるので、適切な画像ペアを特定する必要がない。
【0045】
そこで、本実施の形態では、計測サーバ100は、各定点画像と各切り出し画像との類似度に基づいて、定点画像および切り出し画像の全体における画像順を決定する。そして、計測サーバ100は、決定された画像順に沿って画像を処理しながら、定点カメラ211〜220のそれぞれの位置姿勢を推定する。これにより、位置姿勢の推定処理効率を改善する。
【0046】
図5は、画像順の決定処理について説明するための図である。図5に例示した切り出し画像Pb1〜Pb8には、切り出し画像Pb1,Pb2,Pb3,Pb4,Pb5,Pb6,Pb7,Pb8の順に撮影順が付与されているものとする。
【0047】
計測サーバ100は、ある1つの定点画像Paと、切り出し画像Pb1〜Pb8のそれぞれとの間の類似度を算出する。計測サーバ100は、切り出し画像Pb1〜Pb8に含まれる、隣接する2つの切り出し画像からなる画像ペアの中から、定点画像Paとの類似性が高い画像ペアを特定する。例えば、計測サーバ100は、画像ペアのそれぞれについて、そこに含まれる各切り出し画像と定点画像Paとの類似度の合算値を算出する。計測サーバ100は、類似度の合算値が最も大きい画像ペアを、定点画像Paとの類似性が高い画像ペアとして特定する。
【0048】
図5の例では、定点画像Paとの類似性の高い画像ペアとして、切り出し画像Pb4,Pb5を含む画像ペアが特定されている。この場合、計測サーバ100は、切り出し画像Pb4と切り出し画像Pb5との間に定点画像Paを挿入することで、切り出し画像Pb4、定点画像Pa、切り出し画像Pb5という画像順を決定する。このような処理により、定点画像Paの前後に、この定点画像Paとの類似度が高く、多くの対応点を抽出できる可能性の高い切り出し画像が配置されるようになる。
【0049】
計測サーバ100は、上記のような処理をすべての定点画像について実行することで、定点画像および切り出し画像の全体における画像順を決定する。
図6は、前工程および計測工程を含む全体の作業手順を示す図である。まず、ステップS11〜S13の前工程が行われる。
【0050】
[ステップS11]定点カメラ211〜220のそれぞれによって、対象物240を写した静止画像(定点画像)が撮影される。撮影された各定点画像はユーザ端末200に送信され、ユーザ端末200から計測サーバ100にアップロードされる。
【0051】
[ステップS12]可搬型カメラ230によって、対象物240を写した動画像が撮影される。撮影された動画像はユーザ端末200に送信され、ユーザ端末200から計測サーバ100にアップロードされる。
【0052】
[ステップS13]計測サーバ100によって次のような前処理が実行される。計測サーバ100は、アップロードされた動画像から切り出し画像を生成する。計測サーバ100は、図5に示した手順により、アップロードされた各定点画像および生成された各切り出し画像の全体における画像順を決定する。計測サーバ100は、各定点画像および各切り出し画像と、決定された画像順とに基づき、SfM技術を用いて定点カメラ211〜220のそれぞれの位置姿勢を推定する。計測サーバ100は、推定された位置姿勢のデータを記憶装置に保存する。
【0053】
その後、ステップS14,S15の計測工程が、定期的に繰り返し実行される。
[ステップS14]定点カメラ211〜220のそれぞれによって、対象物240を写した静止画像(定点画像)が撮影される。撮影された各定点画像はユーザ端末200に送信され、ユーザ端末200から計測サーバ100にアップロードされる。
【0054】
[ステップS15]計測サーバ100によって次のような体積計測処理が実行される。計測サーバ100は、アップロードされた各定点画像と、ステップS13で推定された定点カメラ211〜220のそれぞれの位置姿勢とを用いて、マルチビューステレオ方式により対象物240の3次元モデルを再現する。具体的には、対象物240に対応する点群の3次元座標が算出される。計測サーバ100は、算出された3次元座標と、定点カメラに関する基準位置データ(後述)とに基づいて、対象物240の体積を算出する。
【0055】
次に、計測サーバ100について説明する。
まず、図7は、計測サーバのハードウェア構成例を示す図である。計測サーバ100は、例えば、図7に示すようなコンピュータとして実現される。
【0056】
計測サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0057】
プロセッサ101には、バス108を介して、RAM102と複数の周辺機器が接続されている。
RAM102は、計測サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0058】
バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、読み取り装置106および通信インタフェース107がある。
【0059】
HDD103は、計測サーバ100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0060】
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、画像を表示装置104aに表示させる。表示装置としては、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどがある。
【0061】
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0062】
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【0063】
通信インタフェース107は、ネットワーク300を介して、ユーザ端末200などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、計測サーバ100の処理機能を実現することができる。
【0064】
図8は、計測サーバが備える処理機能の構成例を示すブロック図である。計測サーバ100は、記憶部110、画像入力部121、画像順決定部122、位置姿勢推定部123、3次元モデル再現部124および体積算出部125を有する。
【0065】
なお、記憶部110は、例えば、RAM102、HDD103などの計測サーバ100が備える記憶装置の記憶領域として実現される。画像入力部121、画像順決定部122、位置姿勢推定部123、3次元モデル再現部124および体積算出部125の処理は、例えば、プロセッサ101が所定のアプリケーションプログラムを実行することで実現される。
【0066】
記憶部110には、順序管理テーブル111、位置姿勢データ112a,112b,・・・、計測基準データ113が記憶される。
順序管理テーブル111は、前工程において定点カメラ211〜220および可搬型カメラ230から得られた画像の画像順を管理する。具体的には、順序管理テーブル111は、各画像のファイル名が登録されるレコードを有し、順序管理テーブル111の先頭から画像順に沿ってファイル名が登録される。
【0067】
位置姿勢データ112a,112b,・・・は、それぞれ定点カメラ211〜220の位置姿勢を示すデータである。
計測基準データ113は、対象物240の体積計算の際に基準となるデータである。具体的には、計測基準データ113には、定点カメラ211〜220のうちの2つの定点カメラ間の距離と、その距離がどの定点カメラかを示す情報とが含まれる。なお、計測基準データ113は、体積算出の前に(例えば、前工程で)あらかじめ記憶部110に登録される。
【0068】
画像入力部121は、定点カメラ211〜220からユーザ端末200を介して送信された定点画像や、可搬型カメラ230からユーザ端末200を介して送信された動画像の入力を受け付ける。画像入力部121は、受け付けた定点画像を記憶部110に一時的に格納する。また、画像入力部121は、受け付けた動画像から切り出し画像を生成し、記憶部110に一時的に格納する。なお、図8では、記憶部110に格納された定点画像および切り出し画像の図示を省略している。
【0069】
画像順決定部122および位置姿勢推定部123は、前工程において動作する。画像順決定部122は、前工程において取得された各定点画像と各切り出し画像との類似度と、各切り出し画像の撮影順とに基づいて、これらの定点画像および切り出し画像の全体における画像順を決定する。画像順決定部122による処理の結果、順序管理テーブル111には、決定された画像順にしたがって画像のファイル名が登録される。位置姿勢推定部123は、各定点画像および各切り出し画像と、順序管理テーブル111に登録された画像順とに基づき、SfM技術を用いて定点カメラ211〜220のそれぞれの位置姿勢を推定する。これにより、位置姿勢データ112a,112b,・・・が記憶部110に登録される。
【0070】
3次元モデル再現部124および体積算出部125は、計測工程において動作する。3次元モデル再現部124は、計測工程において取得された各定点画像と、位置姿勢データ112a,112b,・・・とに基づき、マルチビューステレオ方式によって対象物240の3次元モデルを再現する。体積算出部125は、再現された3次元モデルのデータと、計測基準データ113とに基づいて、対象物240の体積を算出する。
【0071】
次に、計測サーバ100の処理についてフローチャートを用いて説明する。
まず、図9は、前工程で実行される前処理の手順を示すフローチャートの例である。
[ステップS21]画像入力部121は、定点カメラ211〜220によってそれぞれ撮影された定点画像を、ユーザ端末200から受信し、記憶部110に格納する。
【0072】
[ステップS22]画像入力部121は、可搬型カメラ230によって撮影された動画像を、ユーザ端末200から受信する。画像入力部121は、受信した動画像から所定枚数(ここでは100枚)の切り出し画像を生成し、記憶部110に格納する。また、画像入力部121は、順序管理テーブル111に対して、生成された切り出し画像のファイル名を撮影順に登録する。
【0073】
[ステップS23]画像順決定部122は、ステップS21で記憶部110に格納された各定点画像と、ステップS22で記憶部110に格納された各切り出し画像との類似度と、各切り出し画像の撮影順とに基づいて、画像順の決定処理を実行する。この処理により、順序管理テーブル111には、決定された画像順にしたがって定点画像および切り出し画像のファイル名が登録される。なお、ステップS23の処理の詳細については、後の図10において説明する。
【0074】
[ステップS24]位置姿勢推定部123は、順序管理テーブル111に基づいて、決定された画像順において連続する3枚の画像の組み合わせを1組選択する。なお、ステップS24が実行されるたびに、画像順における先頭側から順に画像の組み合わせが選択される。
【0075】
[ステップS25]位置姿勢推定部123は、ステップS24で選択された3枚の画像間における特徴点マッチングを行い、3枚の画像間で対応する特徴点(対応点)を抽出する。位置姿勢推定部123は、対応点の抽出結果に基づいて、3枚の画像をそれぞれ撮影したカメラの位置姿勢を推定し、推定された位置姿勢を示す位置姿勢データを記憶部110に格納する。また、このとき、位置姿勢推定部123は、抽出された各対応点の3次元座標を示すデータ(点群データ)も算出し、記憶部110に格納する。
【0076】
ここで、対応点の抽出には、例えば、オプティカルフローを利用することができる。また、対応点の抽出結果に基づく位置姿勢データおよび点群データの算出には、例えば、非特許文献1に記載の因子分解法を利用することができる。
【0077】
また、この他に次のような方法も利用できる。例えば、隣接する画像間の対応点の位置関係から8点法などによって基礎行列を求める。そして、あらかじめ算出されたカメラの内部パラメータを利用して、位置情報(並進成分)と姿勢情報(回転成分)を含むカメラ行列を算出し、さらに三角測量法により対応点の3次元座標を算出する。この場合、例えば、選択された3枚の画像に含まれる2つの画像ペアについて上記の処理を実行し、バンドル調整により、対応点の3次元座標の誤差が最小になるようにカメラ行列を最適化していく。
【0078】
さらに他の方法として、3枚の画像間の特徴点の位置関係を3焦点テンソルとして表記することにより、3台のカメラのカメラ行列を求めることもできる。
なお、このステップS25が2回目以降に実行される際には、その直前に実行されたステップS25において求められた3画像についての情報(対応点の情報、位置姿勢データおよび点群データ)のうち、1枚または2枚の画像についての情報が利用される。
【0079】
[ステップS26]位置姿勢推定部123は、順序管理テーブル111に基づき、連続する3枚の画像の組み合わせのすべてについてステップS24,S25の処理を実行したかを判定する。未実行の組み合わせがある場合、位置姿勢推定部123は、ステップS24に処理を進め、未実行の組み合わせを対象として処理を実行する。一方、すべての組み合わせについて処理済みの場合、位置姿勢推定部123は、ステップS25で算出された位置姿勢データのうち、定点カメラ211〜220についての位置姿勢データのみを、位置姿勢データ112a,112b,・・・として記憶部110に格納する。
【0080】
以上の図9の処理では、ステップS23において定点画像および切り出し画像の全体における画像順が決定される。これにより、ステップS25での特徴点マッチングに基づく位置姿勢データの算出処理を、画像順の先頭から順に連続する画像群を選択していくことによって実行できるようになる。このため、位置姿勢データの算出処理効率を向上させることができる。また、効率改善のために位置姿勢データの算出処理を簡略化する必要性が低下するので、処理の簡略化によって位置姿勢データの算出精度が低下する可能性を低減できる。
【0081】
図10は、画像順決定処理の手順を示すフローチャートの例である。この図10の処理は、図9のステップS23の処理に対応する。
[ステップS31]画像順決定部122は、ステップS21で記憶部110に格納された定点画像のうちの1つを選択する。
【0082】
[ステップS32]画像順決定部122は、ステップS31で選択された定点画像と、ステップS22で記憶部110に格納された各切り出し画像との類似度を算出する。
[ステップS33]画像順決定部122は、撮影順において隣接する切り出し画像のペアの中から、ステップS31で選択された定点画像との類似性が高い画像ペアを特定する。例えば、画像順決定部122は、画像ペアのそれぞれについて、画像ペアに含まれる各切り出し画像と定点画像との類似度の合算値を算出し、類似度の合算値が最も大きい画像ペアを、定点画像との類似性が高い画像ペアとして特定する。また、例えば、類似度の合算値が大きく、かつ、一方の類似度に対する類似度間の差分の割合が一定割合以下である画像ペアが、定点画像との類似性が高い画像ペアとして特定されてもよい。
【0083】
[ステップS34]画像順決定部122は、ステップS33で特定された画像ペアに含まれる2枚の切り出し画像の間に、ステップS31で選択された定点画像を挿入することで、定点画像の画像順を決定する。具体的には、画像順決定部122は、順序管理テーブル111に登録されている、特定された画像ペアに含まれる各切り出し画像のレコードの間に、定点画像のレコードを挿入する。
【0084】
[ステップS35]画像順決定部122は、ステップS21で記憶部110に格納されたすべての定点画像についてステップS31〜S34の処理を実行したかを判定する。未実行の定点画像がある場合、画像順決定部122は、ステップS31に処理を進め、未実行の定点画像を対象として処理を実行する。一方、すべての定点画像について処理済みの場合、画像順決定部122は処理を終了する。このとき、順序管理テーブル111は、ステップS21で記憶部110に格納されたすべての定点画像のレコードと、ステップS22で記憶部110に格納されたすべての切り出し画像のレコードとが、画像順にしたがって登録された状態となる。
【0085】
図11は、計測処理の手順を示すフローチャートの例である。
[ステップS41]画像入力部121は、定点カメラ211〜220によってそれぞれ撮影された定点画像を、ユーザ端末200から受信し、記憶部110に格納する。なお、格納される定点画像には、例えば、定点カメラ211,212,213,214,215,216,217,218,219,220によってそれぞれ撮影された順に画像順が付与されるものとする。
【0086】
[ステップS42]3次元モデル再現部124は、画像順において連続する3枚の定点画像の組み合わせを1組選択する。なお、ステップS42が実行されるたびに、画像順における先頭側から順に定点画像の組み合わせが選択される。
【0087】
[ステップS43]3次元モデル再現部124は、定点カメラ211〜220のうち、ステップS42で選択された定点画像をそれぞれ撮影した定点カメラに対応する位置姿勢データを、記憶部110に記憶された位置姿勢データ112a,112b,・・・の中から取得する。
【0088】
[ステップS44]3次元モデル再現部124は、ステップS42で選択された3枚の定点画像間における特徴点マッチングを行い、3枚の画像の間における対応点を抽出する。3次元モデル再現部124は、抽出された対応点の抽出結果と、ステップS43で取得された、3枚の定点画像のそれぞれに対応する位置姿勢データとに基づいて、対象物240上の多数の点の3次元座標を示すデータ(点群データ)を算出し、記憶部110に格納する。このステップS44の処理では、例えば、Patch−based Multi−View Stereo(PMVS)やマルチベースラインステレオ法などのマルチビューステレオ方式を用いて、SfM技術により抽出される対応点より密な点群の3次元座標が算出される。
【0089】
なお、このステップS44が2回目以降に実行される際には、その直前に実行されたステップS44において求められた3画像についての情報(対応点の情報および点群データ)のうち、1枚または2枚の画像についての情報が利用される。
【0090】
[ステップS45]3次元モデル再現部124は、画像順において連続する3枚の定点画像の組み合わせのすべてについてステップS42〜S44の処理を実行したかを判定する。未実行の組み合わせがある場合、3次元モデル再現部124は、ステップS42に処理を進め、未実行の組み合わせを対象として処理を実行する。一方、すべての組み合わせについて処理済みの場合、3次元モデル再現部124は、処理をステップS46に進める。
【0091】
[ステップS46]体積算出部125は、ステップS44で算出された点群データと、記憶部110に格納された計測基準データ113とに基づいて、対象物240の体積を算出する。例えば、体積算出部125は、点群データの3次元座標空間におけるxy平面(地平面)に等間隔のメッシュを設定し、各メッシュについて、x座標およびy座標がメッシュに含まれる点群の高さ(z座標)の平均値を算出する。体積算出部125は、メッシュを底面とし、算出された平均値を高さとする四角柱の体積を全メッシュについて累積加算することで、対象物240の体積を計算する。また、体積計算の際、計測基準データ113に基づいて3次元座標空間のスケールが決定される。
【0092】
体積算出部125は、算出された対象物240の体積を、ユーザ端末200に送信する。
以上説明した第2の実施の形態によれば、計測工程において必要となる、定点カメラ211〜220のそれぞれの位置姿勢を、測量作業を行わずに、撮影された画像から計算によって取得することができる。このため、位置姿勢取得のための前工程の作業効率を向上させることができる。しかも、前工程では、定点カメラ211〜220からの定点画像だけでなく、可搬型カメラ230から得られた多数の切り出し画像が用いられることで、位置姿勢の算出精度を高めることができる。したがって、限られた台数の定点カメラ211〜220を用いながらも、簡易な作業によって、対象物240の3次元モデルや体積を高精度に算出できる。
【0093】
また、位置姿勢の推定処理では、定点画像および切り出し画像の全体における画像順が画像間の類似度に基づいて決定され、決定された画像順に基づいて位置姿勢が推定される。これにより、位置姿勢の算出処理効率を向上させることができる。
【0094】
なお、上記の各実施の形態に示した装置(例えば、画像処理装置1、計測サーバ100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0095】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0096】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【0097】
1 画像処理装置
1a 入力部
1b 記憶部
1c 演算部
2 対象物
3a〜3c,4 カメラ
5a〜5c,6a〜6j 画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11