(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-21
(45)【発行日】2022-01-31
(54)【発明の名称】三次元データスケール付与方法及び三次元データスケール付与プログラム
(51)【国際特許分類】
G06T 7/62 20170101AFI20220124BHJP
G01B 11/00 20060101ALI20220124BHJP
【FI】
G06T7/62
G01B11/00 H
(21)【出願番号】P 2019062426
(22)【出願日】2019-03-28
【審査請求日】2020-12-11
(73)【特許権者】
【識別番号】519111017
【氏名又は名称】株式会社AB.do
(73)【特許権者】
【識別番号】504180239
【氏名又は名称】国立大学法人信州大学
(74)【代理人】
【識別番号】110001726
【氏名又は名称】特許業務法人綿貫国際特許・商標事務所
(72)【発明者】
【氏名】青木 勝彦
(72)【発明者】
【氏名】竹前 和幸
(72)【発明者】
【氏名】田中 清
(72)【発明者】
【氏名】サンドバル ガルベス ハイメ アルベルト
(72)【発明者】
【氏名】千國 隼矢
(72)【発明者】
【氏名】岩切 宗利
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2019-207531(JP,A)
【文献】特開2003-014435(JP,A)
【文献】特表2020-513107(JP,A)
【文献】特開2007-064836(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00- 7/90
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
点群データによって構成された三次元データにスケールを付与する方法であって、
測定対象物の周囲に、予め大きさ及び形状が判明している基準物を複数個配置し、
デジタルカメラによって前記複数の基準物を含めて前記測定対象物を様々な角度から撮影した画像データ、又はレーザスキャナによって前記複数の基準物を含めて前記測定対象物を様々な角度からスキャンニングして取得した位置データをコンピュータに入力し、
各基準物の判明している大きさ及び形状をコンピュータに入力し、
前記コンピュータは、
前記複数の画像データ又は前記複数の位置データから前記測定対象物及び各前記基準物が含まれる点群データを取得し、
前記点群データにおいて、各基準物における入力された大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を基準物として認定し、
認定した各基準物が、入力された大きさ及び形状となるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定することを特徴とする三次元データスケール付与方法。
【請求項2】
前記基準物は立方体又は直方体であることを特徴とする請求項1記載の三次元データスケール付与方法。
【請求項3】
前記基準物は、前記測定対象物の周囲に最低2個配置され、各基準物を結ぶ直線上に前記測定対象物が位置していることを特徴とする請求項1又は請求項2記載の三次元データスケール付与方法。
【請求項4】
前記測定対象物の周囲を囲むように配置した各前記基準物は、前記測定対象物が設置されている面と同一平面以下の位置に配置され、
前記測定対象物よりも上方に予め大きさ及び形状が判明している上方基準物を設置することを特徴とする請求項1~3のうちのいずれか1項記載の三次元データスケール付与方法。
【請求項5】
コンピュータ内で点群データによって構成された三次元データにスケールを付与するプログラムであって、
測定対象物の周囲に、予め大きさ及び形状が判明している基準物を複数個配置してデジタルカメラによって前記複数の基準物を含めて前記測定対象物を様々な角度から撮影した画像データ、又は測定対象物の周囲に、予め大きさ及び形状が判明している基準物を複数個配置してレーザスキャナによって前記複数の基準物を含めて前記測定対象物をスキャンニングして取得した位置データから前記測定対象物及び各前記基準物の点群データを取得した後の点群データにおいて、各基準物における判明している大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を基準物として認定する機能と、
認定した各基準物が、入力された大きさ及び形状となるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定する機能と、をコンピュータに実行させることを特徴とする三次元データスケール付与プログラム。
【請求項6】
前記基準物は立方体又は直方体であることを特徴とする請求項5記載の三次元データスケール付与プログラム。
【請求項7】
前記基準物は、前記測定対象物の周囲に最低2個配置され、各基準物を結ぶ直線上に前記測定対象物が位置しているこることを特徴とする請求項5又は請求項6記載の三次元データスケール付与プログラム。
【請求項8】
前記測定対象物の周囲を囲むように配置した各前記基準物は、前記測定対象物が設置されている面と同一平面以下の位置に配置され、
前記測定対象物よりも上方に予め大きさ及び形状が判明している上方基準物を設置することを特徴とする請求項5~7のうちのいずれか1項記載の三次元データスケール付与プログラム。
【請求項9】
点群データによって構成された三次元データにスケールを付与する方法であって、
測定対象物の周囲に、予め大きさ及び形状が判明している構造物が複数設けられている場合において、デジタルカメラによって前記複数の構造物を含めて前記測定対象物を様々な角度から撮影した画像データ、又はレーザスキャナによって前記複数の構造物を含めて前記測定対象物を様々な角度からスキャンニングして取得した位置データをコンピュータに入力し、
各構造物の判明している大きさ及び形状をコンピュータに入力し、
前記コンピュータは、
前記複数の画像データ又は前記複数の位置データから前記測定対象物及び各前記構造物が含まれる点群データを取得し、
前記点群データにおいて、各構造物における入力された大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を構造物として認定し、
認定した各構造物が、入力された大きさ及び形状となるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定することを特徴とする三次元データスケール付与方法。
【請求項10】
コンピュータ内で点群データによって構成された三次元データにスケールを付与するプログラムであって、
測定対象物の周囲に、予め大きさ及び形状が判明している構造物が複数設けられている場合において、デジタルカメラによって前記複数の構造物を含めて前記測定対象物を様々な角度から撮影した画像データ、又は測定対象物の周囲に、予め大きさ及び形状が判明している構造物が複数設けられてレーザスキャナによって前記複数の構造物を含めて前記測定対象物をスキャンニングして取得した位置データから前記測定対象物及び各前記構造物の点群データを取得した後の点群データにおいて、各構造物における判明している大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を構造物として認定する機能と、
認定した各構造物が、入力された大きさ及び形状となるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定する機能と、をコンピュータに実行させることを特徴とする三次元データスケール付与プログラム。
【請求項11】
点群データによって構成された三次元データにスケールを付与する方法であって、
測定対象物の周囲に、2つの基準点が同一平面上に表示されており、該基準点の2点間の長さが判明している平面状基準物を複数配置し、
デジタルカメラによって前記複数の平面状基準物を含めて前記測定対象物を様々な角度から撮影した画像データ、又はレーザスキャナによって前記複数の平面状基準物を含めて前記測定対象物を様々な角度からスキャンニングして取得した位置データをコンピュータに入力し、
各平面状基準物における基準点間の長さをコンピュータに入力し、
前記コンピュータは、
前記複数の画像データ又は前記複数の位置データから前記測定対象物及び各前記平面状基準物が含まれる点群データを取得し、
点群データ中の各前記平面状基準物に表示されている基準点間の長さが、入力された長さとなるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定することを特徴とする三次元データスケール付与方法。
【請求項12】
コンピュータ内で点群データによって構成された三次元データにスケールを付与するプログラムであって、
測定対象物の周囲に、2つの基準点が同一平面上に表示されており、該基準点の2点間の長さが判明している平面状基準物が複数設けられている場合において、デジタルカメラによって前記複数の平面状基準物を含めて前記測定対象物を様々な角度から撮影した画像データ、又は測定対象物の周囲に、2つの基準点が同一平面上に表示されており、該基準点の2点間の長さが判明している平面状基準物が複数設けられてレーザスキャナによって前記複数の平面状基準物を含めて前記測定対象物をスキャンニングして取得した位置データから前記測定対象物及び各前記平面状基準物の点群データを取得した後の点群データにおいて、
点群データ中の各前記平面状基準物に表示されている基準点間の長さが、入力された長さとなるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定する機能をコンピュータに実行させることを特徴とする三次元データスケール付与プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数枚の写真やレーザスキャンによる位置データから三次元データを生成した際に、三次元的に正確なスケールを付与する方法及びプログラムに関する。
【背景技術】
【0002】
三次元データの生成については、特許文献1に示すように、測定対象物の周囲から複数枚の写真を撮影し、この複数枚の写真に基づいて点群データを取得する方法が知られている。
【0003】
特許文献1の画像処理方法によれば、複数のカメラで撮影したデータから点群データを抽出するが、その際カメラの位置、姿勢、焦点距離等のパラメータをカメラパラメータとして取得し、このカメラパラメータに基づいて視点からの距離を設定し、点群データの作成をしている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1(特開2018-36897号公報)に示すような方法により点群データを取得したとしても、点群データに正確なスケールを与えることができない。
例えば、特許文献1では観察視点と対象物との間の距離分布を示す距離画像(デプスマップ)を作成しているが、所定の観察視点からの点群データまでの距離を設定するだけであって、取得した点群データ全体を三次元的に設定しているものではない。
このため、正確なスケールを有する三次元データを取得することができなかった。
【課題を解決するための手段】
【0006】
そこで、本発明は上記課題を解決すべくなされ、その目的とするところは、デジタルカメラによる画像データ又はレーザスキャナによる位置データに基づいて生成された点群データに対して、三次元的に正確なスケールを付与する方法及びプログラムを提供することにある。
【0007】
本発明にかかる三次元データスケール付与方法によれば、点群データによって構成された三次元データにスケールを付与する方法であって、測定対象物の周囲に、予め大きさ及び形状が判明している基準物を複数個配置し、デジタルカメラによって前記複数の基準物を含めて前記測定対象物を様々な角度から撮影した画像データ、又はレーザスキャナによって前記複数の基準物を含めて前記測定対象物を様々な角度からスキャンニングして取得した位置データをコンピュータに入力し、各基準物の判明している大きさ及び形状をコンピュータに入力し、前記コンピュータは、前記複数の画像データ又は前記複数の位置データから前記測定対象物及び各前記基準物が含まれる点群データを取得し、前記点群データにおいて、各基準物における入力された大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を基準物として認定し、認定した各基準物が、入力された大きさ及び形状となるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定することを特徴としている。
この構成を採用することによって、予め大きさ及び形状が判明している基準物を複数個測定対象物の周囲に配置して、基準物を含めて測定対象物を撮影し、複数の基準物の大きさ及び形状が、それぞれ予め判明している大きさ及び形状となるように、点群データを最適化することで、点群データ全体に正確なスケールが付与され、スケールが正確な三次元データを生成することができる。
【0008】
また、前記基準物は立方体又は直方体であることを特徴としてもよい。この構成によれば、点群データから基準物を見つけ出すことを比較的容易に行うことができる。
【0009】
また、前記基準物は、前記測定対象物の周囲に最低2個配置され、各基準物を結ぶ直線上に前記測定対象物が位置していることを特徴としてもよい。
この構成によれば、全ての基準物に対して予め判明している大きさ及び形状となるように空間を最適化したときに、測定対象物も確実に正確なスケールが付与される。
【0010】
また、前記測定対象物の周囲を囲むように配置した各前記基準物は、前記測定対象物が設置されている面と同一平面以下の位置に配置され、前記測定対象物よりも上方に予め大きさ及び形状が判明している上方基準物を設置することを特徴としてもよい。
この構成によれば、基準物と上方基準物の双方が正確な大きさ及び形状となるように点群データを最適化するので、測定対象物の点群データの高さ方向のスケールもさらに正確 なものとすることができる。
【0011】
本発明にかかる三次元データスケール付与方法によれば、点群データによって構成された三次元データにスケールを付与する方法であって、測定対象物の周囲に、予め大きさ及び形状が判明している構造物が複数設けられている場合において、デジタルカメラによって前記複数の構造物を含めて前記測定対象物を様々な角度から撮影した画像データ、又はレーザスキャナによって前記複数の構造物を含めて前記測定対象物を様々な角度からスキャンニングして取得した位置データをコンピュータに入力し、各構造物の判明している大きさ及び形状をコンピュータに入力し、前記コンピュータは、前記複数の画像データ又は前記複数の位置データから前記測定対象物及び各前記構造物が含まれる点群データを取得し、前記点群データにおいて、各構造物における入力された大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を構造物として認定し、認定した各構造物が、入力された大きさ及び形状となるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定することを特徴としている。
この構成を採用することによって、予め大きさ及び形状が判明している基準物を複数個測定対象物の周囲に配置しなくても、大きさ及び形状が判明している構造物が測定対象物の周囲に存在していれば、構造物の大きさ及び形状がそれぞれ予め判明している大きさ及び形状となるように、点群データを最適化することで、点群データ全体に正確なスケールが付与され、スケールが正確な三次元データを生成することができる。
【0012】
本発明にかかる三次元データスケール付与方法によれば、点群データによって構成された三次元データにスケールを付与する方法であって、測定対象物の周囲に、2つの基準点が同一平面上に表示されており、該基準点の2点間の長さが判明している平面状基準物を複数配置し、デジタルカメラによって前記複数の平面状基準物を含めて前記測定対象物を様々な角度から撮影した画像データ、又はレーザスキャナによって前記複数の平面状基準物を含めて前記測定対象物を様々な角度からスキャンニングして取得した位置データをコンピュータに入力し、各平面状基準物における基準点間の長さをコンピュータに入力し、前記コンピュータは、前記複数の画像データ又は前記複数の位置データから前記測定対象物及び各前記平面状基準物が含まれる点群データを取得し、点群データ中の各前記平面状基準物に表示されている基準点間の長さが、入力された長さとなるように点群データを伸縮させ及び/又はねじれを加えることにより、点群データ全体のスケールを設定することを特徴としている。
この方法によれば、点群データ内で予め大きさ及び形状が判明している基準物を認定する必要がなく、基準点だけ認識できればよいので、入力された大きさ及び形状に対して所定の誤差範囲に含まれる大きさ及び形状を有する物体を基準物として認定する工程が不要となる。したがって、点群データへのスケール設定がより迅速に実行できる。
【発明の効果】
【0013】
本発明の三次元データスケール付与方法及びプログラムによれば、大規模な機材を用いることなく、点群データに正確なスケールを付与することができる。
【図面の簡単な説明】
【0014】
【
図1】測定対象物を撮影する際の測定対象物と複数の基準物の配置説明図である。
【
図3】コンピュータの構成を示すブロック図である。
【
図4】点群データ生成プログラムのフローチャートである。
【
図5】三次元データスケール付与プログラムのフローチャートである。
【
図7】点群データにおける1つの基準物に対して正確なスケールを付与した場合と、正確なスケールが付与されている点群データとのずれを示す説明図である。
【
図8】
図7の状態から、点群データ全体に正確なスケールが付与されたとことを示す説明図である。
【
図9】測定対象物の上下方向を含めた全体を包括するように複数の基準物を配置した配置説明図である。
【
図11】屋内の構造物を基準物として設定した実施形態の配置説明図である。
【
図13】測定対象物の周囲に複数の平面状基準物を配置した配置説明図である。
【発明を実施するための形態】
【0015】
以下、デジタルカメラによって測定対象物を撮影し、その画像データに基づいて点群データを取得する実施形態について説明する。なお、本明細書中では点群データのことを三次元データと称する場合もある。
まず、測定対象物の撮影の方法について説明する。
図1は測定対象物と基準物の配置状態を示す斜視図であり、
図2は測定対象物と基準物の配置状態を示す平面図である。
【0016】
測定対象物20は、どのようなものであってもかまわないが、
図1、
図2では多面体形状を例として挙げている。
作業者は、測定対象物20の周囲に、測定対象物20を取り囲むように複数の基準物22a~22dを設置する。
図1、
図2に示す例では、測定対象物20の周囲4箇所に立方体の基準物22a~22dを設置している。このことにより、点群データにおいては立方体の各基準物22a~22dで囲まれた内側に測定対象物20が配置されることになる。つまり
図2に示すように、各基準物22a~22dの内側(測定対象物側)の任意の点を結ぶ直線で構成される四角形の内側に測定対象物20が配置されるよう、測定対象物20の周囲に各基準物22a~22dを配置する。
【0017】
基準物を構成する立方体の辺の長さは予め測定されており、
図1、
図2の左手前の基準物22aの一辺の長さは2.0cm、右手前の基準物22bの一辺の長さは2.1cm、左奥の基準物22cの一辺の長さは2.1cm、右奥の基準物22dの一辺の長さは2.3cmであるとする。
ただし、複数の基準物の辺の長さはすべて同じであってもよい。例えば、複数の基準物全てが、一辺の長さが2.0cmの立方体であってもよい。
【0018】
基準物としては、その形状は立方体に限定するものではない。例えば直方体であってもよいし、他の形状であってもよい。ただし面推定などにより、点群データからその大きさ及び形状を取得できる形状であることが必要である。
【0019】
次に、作業者はデジタルカメラで測定対象物を様々な角度から、測定対象物20及び複数の基準物22の全周囲をカバーできるように複数枚撮影する。また、撮影は、撮影範囲をオーバーラップさせて行うことが必要である。オーバーラップさせた部分については、後述するようにデータのマッチング処理を行う。
さらに、撮影枚数としては、正確な点群データを取得するためには多いほど良いが、コンピュータにおける処理時間との兼ね合いで作業者が適宜決定する。
【0020】
撮影完了後、作業者は、撮影した画像データをコンピュータに取り込ませる。
また、作業者は、基準物22a~22dの大きさ及び形状(本実施形態では各基準物は立方体であるので、立方体であること及び各基準物における一辺の長さ)をコンピュータに入力する作業を行う。この作業は、三次元データスケール付与プログラムの実行前であればいつでも良い。
【0021】
次に、コンピュータ内の動作について
図3に基づいて説明する。
図3は、コンピュータの内部構成の概略を示すブロック図である。
コンピュータは、一般的なパーソナルコンピュータを採用することができる。コンピュータ30としては、内部に制御部32と記憶装置34を有している。制御部32は、中央処理演算装置(CPU等)、メモリ(ROM、RAM)等を含み、コンピュータ30の全体動作を制御するとともに、記憶装置34に記憶されている各プログラムに基づく機能を実行制御する。
また、コンピュータ30は、GPUを備えたグラフィックボードを搭載していてもよい。
【0022】
記憶装置34は、ハードディスクドライブやSSD等から構成されている。記憶装置34は、撮影した画像データが記憶されるほか、点群データ生成プログラムP1と、三次元データスケール付与プログラムP2が予め記憶されている。
点群データ生成プログラムP1は、公知のプログラムを用いることができる。点群データ生成プログラムP1は、
図4に示すような動作を実行する。ただし、ここで示す点群データ生成プログラムP1は、後述する三次元データスケール付与プログラムP2と一体となった1つのプログラムであってもよい。
【0023】
コンピュータ30は、さらにマウスやキーボード等から構成される入力装置36と、点群データ生成プログラムP1によって生成された点群データを表示するモニタ38を備えている。
【0024】
次に点群データ生成プログラムの動作概略を
図4に基づいて説明する。
点群データ生成プログラムは、実行開始されると、取り込んだ複数の画像データから複数の特徴点を抽出する(S101)。特徴点としては、他の箇所と色彩や形状が異なっている個所などを多く抽出する。
【0025】
次に、点群データ生成プログラムは、複数の画像データの特徴同士をマッチングさせるマッチング処理を実行する(S102)。マッチング処理によって複数の画像データが点群データとして生成される。
なお、点群データ生成プログラムは、マッチング処理までの間にカメラパラメータ等の入力による行列演算により、点群データが相対的に正しい位置となるように点群データを生成してもよい。
ちなみに既存の点群データ生成プログラムとして、画像データから点群データを生成するStructure from Motion(SfM)やMulti-View Stereo(MVS)と呼ばれるソフトウェアが知られている。
【0026】
点群データ生成後に、三次元データスケール付与プログラムが実行される。
上述したように、三次元データスケール付与プログラムの実行前までに、作業者は、基準物の大きさ及び形状をコンピュータに入力する作業を行っておく。
図1に示した視点からの例の場合では、作業者は、各基準物は全て立方体であることを入力するとともに、左手前の基準物の一辺の長さは2.0cm、右手前の基準物の一辺の長さは2.1cm、左奥の基準物の一辺の長さは2.1cm、右奥の基準物の一辺の長さは2.3cmという数値を、入力しておく。
【0027】
三次元データスケール付与プログラムの動作を、
図5に基づいて説明する。
三次元データスケール付与プログラムは、最初に点群データの中から基準物を見つけ出す機能を実行する(ステップS201)。
基準物の大きさ及び形状は、上記のように予め作業者が入力しており、点群データの中から基準物を見つけ出す機能は、本実施形態では一辺2.0cm、2.1cm、2.3cmの立方体を見つけ出すことになる。ただし、この時点(点群データの中から基準物を見つけ出す際)では、点群データに正確なスケールが与えられているわけではないので、基準物と思われる物体が、入力された値通りの立方体ではなく、例えば、一辺が2.0cmだが他の辺が2.1cmであったり、立方体の面が正方形ではなく台形であったりする。
【0028】
そこで、三次元データスケール付与プログラムにおける、点群データの中から基準物を見つけ出す機能は、予め入力された基準物の大きさ及び形状(本実施形態では立方体の一辺の長さの値)に対する所定の誤差範囲を予め決めておき、点群データ上で誤差範囲に含まれる範囲の辺の長さを有する物体を、基準物として認定する(ステップS201)。
例えば、基準物が立方体の場合に、点群データ上での一辺の長さが、入力した実際の一辺の長さの±5~10%未満であれば、当該基準物として認定するようにする。
【0029】
なお、三次元データスケール付与プログラムにおける、点群データの中から基準物を見つけ出す機能は、
図6に示すように、面推定により基準物の立方体の頂点(角)を自動的に検出することにより行われる。
図6に示しているのは、平面推定機能の概略説明図であり、三次元データスケール付与プログラムの一機能として平面推定機能が設けられている。平面推定機能を用いずに立方体の頂点を決定しようとする場合、
図6の左図のように作業者がモニタ38で目視に基づいて立方体の頂点を決定しようとするとどうしても正確な頂点を決定できない。
平面推定機能は、公知の技術であるが、三次元データスケール付与プログラムにおいては、多数の点群データから基準物において隣接する3つの面を求めることに応用している。
本実施形態の平面推定機能は、
図6の右図に示すように点群データにおける各点が配置される平面を3面推定する。3つの平面が正確に推定できると、3つの面の交点としての頂点が正確に割り出される。そして平面推定機能は、各頂点を結ぶ直線を、基準物を構成する一辺とすることができる。そして、後述するようにこの直線の距離が、先に入力された基準物の辺の長さとなるように点群データを最適化するのである。
【0030】
次に、三次元データスケール付与プログラムは、点群データの中から見つけ出した全ての基準物に対して、予め入力された大きさ及び形状となるように点群データを最適化する機能を実行する(ステップS202)。
具体的には、三次元データスケール付与プログラムの点群データの最適化機能は、見つけ出された全ての基準物が、実際のスケールとなるように点群データを伸縮させ、及び/又はねじれを加える機能を実行する。点群データを伸縮させ、及び/又はねじれを加える機能の具体例としては、アフィン変換を挙げることができる。アフィン変換は、コンピュータグラフィックスにおいて図形を拡大、縮小、回転、平行移動、せん断させる公知の手法である。したがって、三次元データスケール付与プログラムの点群データの最適化機能は、アフィン変換を採用して実行することができる。
【0031】
つまり、
図1に示した本実施形態のような基準物においては、左手前の基準物は一辺の長さが2.0cmの立方体、右手前の基準物は一辺の長さが2.1cmの立方体、左奥の基準物は一辺の長さが2.1cmの立方体、右奥の基準物は一辺の長さが2.3cmの立方体となるように、点群データ全体の伸縮を実行し、必要であればさらにねじれを実行する。このようにすることで点群データから構成される三次元空間全体に正確なスケールを付与することができる。
【0032】
例として、点群データ上の所定の基準物に対してスケールを設定した例を
図7の図面に示す。
図7の例では、周囲4箇所に立方体の基準物を配置し、測定対象物は中心に位置する直方体状の物体及び直方体の物体の右側に位置する細長い棒状の物体であるとする。これらの測定対象物の周囲4箇所に立方体の基準物を配置し、さらに直方体の測定対象物の上面にも立方体の基準物を配置している。つまりこの例では5つの基準物を配置している。
【0033】
図7では、左手前の基準物に対してのみスケールを付与したが、この場合では、あくまで1個の基準物に対して正確なスケールが設定されただけであり、測定対象物及び他の基準物に対してスケールが設定されたものではない。
1個の基準物に対してスケールを設定すると、基準物及びその周辺の三次元空間は正確なスケールとなるが、スケールを設定した基準物から離れた三次元空間ではいまだ不正確なスケールとなっている。このように、正確なスケールが付与されていない測定対象物及び他の基準物に対して、
図7では、色が薄い状態で示している。また、
図7では、色が薄い状態の測定対象物及び他の基準物に隣接して、色が濃い状態の測定対象物及び他の基準物が表示されているが、これが本来のスケールであって比較のために
図7ではあえて表示している。
【0034】
この
図7に示すように、1個の基準物にスケールを付与しただけでは、この基準物から離れた箇所では全く正確なスケールとなっていないことがわかる。
そこで、三次元データスケール付与プログラムは、点群データ内の全ての基準物に対して、予め判明しているそれぞれのスケール(予め入力された辺の長さ)を同時に設定する。言い換えると、三次元データスケール付与プログラムは、各基準物の辺の長さが全て同時に予め入力された長さとなるように、三次元空間を最適化する作業を実行する。
【0035】
三次元空間を最適化するというのはどういうことかというと、点群データ生成プログラムによって生成された点群データにはそもそもスケールが存在しておらず、撮影された各点の位置が合成されてプロットされているだけである。
そこで、このような点群データにおいて、例えば
図7のように全て(5つ)の基準物の一辺が予め判明している長さとなるように点群データの仮想空間においてスケールを設定するという作業を実行することになる。
【0036】
このように、基準物の辺の長さが予め判明している長さとなるように三次元空間を最適化すると、
図8に示すように、色が薄い状態の測定対象物及び他の基準物と、色が濃い状態の測定対象物及び他の基準物が一致し、点群データに正確なスケールが付与されたことがわかる。
【0037】
なお、
図7、
図8に示した例では測定対象物の上面にも基準物(特許請求の範囲でいう上方基準物)を配置した。このことにより、測定対象物の高さ方向にも正確なスケールが付与される。
このような測定対象物の上方へ配置される基準物の実施形態について、
図9、
図10に基づいて説明する。
図9、
図10では、多面体である測定対象物25に対して、4個の立方体の基準物26a、26b、26c、26dによって測定対象物25全体が包囲されるように配置している。
【0038】
図9、
図10で示す4個の立方体の基準物26a、26b、26c、26dは、四面体を構成するように立体的に配置され、四面体のほぼ中心に測定対象物25が位置している。
また、四面体を構成する基準物のうち、基準物26a、26b、26cは、測定対象物25よりも下方に配置されており、基準物26dは測定対象物25よりも上方に配置されている。
【0039】
このように、測定対象物の周囲に配置する複数の基準物のうち、いずれかを測定対象物の設置面と同一平面以下(測定対象物の設置面と同一平面か又はそれよりの下方の面)に配置し、別のいずれかを測定対象物よりも上方に配置することにより、各基準物を頂点とする空間内に測定対象物全体を位置させることができる。このため、測定対象物の縦方向、横方向だけでなく高さ方向についても正確なスケールを付与することができる。
【0040】
ちなみに、
図9、
図10では測定対象物25及び上方の基準物26dは空中に浮いた状態で図示しているが、実際には台などを設置し、台の上にこれらを設置することになる。
【0041】
上述してきた各実施形態のように、測定対象物の周囲に配置する複数の基準物は、測定対象物を内側に包括できるのであればどのような場所、どのような角度で設置してもよい。
つまり、点群データに直交座標系の正確なスケールを付与しようとする場合、複数の基準物を完全水平面に、直交座標系のX軸、Y軸、Z軸に合わせた角度で設置し、基準物同士の距離を正確に測定する必要がある。しかし、本発明によれば、基準物の設置についてもどのように配置してもよいので、面倒な手間をかけずに正確なスケールを三次元データに付与できる。
【0042】
(第2の実施形態)
上述してきた実施形態は、測定対象物の周囲に予め大きさ及び形状が判明している基準物を配置して点群データを取得するものであった。以下に説明する実施形態では、測定対象物の周囲に基準物を設置するのではなく、測定対象物の周囲に大きさ及び形状が判明している構造物が設けられている場合には、この構造物を基準物の代わりに用いるというものである。
【0043】
図11に、測定対象物の周囲に構造物が設けられている一例を示す。
ここで測定対象物20は室内のテーブル40の上に配置されているものとする。そして、室内には、テレビやコンピュータなどに用いるモニタ42が設けられ、壁面には窓44が設けられている。
テーブル40の天板45は長方形であるとし、その辺の長さを測定すれば、測定対象物20の設置面と同一平面における基準として用いることができる。
また、モニタ42は、正面から見て長方形状であり、テーブル40の天板45よりも上方に配置されている。このモニタ42の辺の長さを測定すれば、測定対象物20よりも上方の基準として用いることができる。
また、窓44も正面から見て窓枠全体が長方形状であり、テーブル40の天板45よりも上方に配置されている。この窓44の辺の長さを測定すれば、測定対象物20よりも上方の基準として用いることができる。
【0044】
さらに、
図11の紙面に対して垂直方向の手前側にも構造物が配置されていることが好ましい。紙面垂直方向手前側の構造物と、テーブル40と、モニタ42と、窓44とを合わせて測定対象物の周囲に配置された基準物の代わりとすることができる。
なお、これらの構造物は、測定対象物20の周囲を囲むように配置され、大きさと形状が分かるものであればどのようなものであってもよい。
例えば、構造部としては、壁面にかけられたポスターやカレンダー、壁面につけられている模様、棚、などを採用することができる。
【0045】
本実施形態では、作業者はデジタルカメラで測定対象物を様々な角度から、測定対象物20及び複数の構造物40、42、44の全周囲をカバーできるように複数枚撮影する。また、撮影は、撮影範囲をオーバーラップさせて行うことが必要である。撮影された画像データはコンピュータに取り込み、点群データ生成プログラムによって点群データが生成される。オーバーラップさせた部分については、コンピュータにおいてデータのマッチング処理が行われ、点群データが生成される。
【0046】
作業者は、テーブル40、モニタ42、窓44の形状及び一辺の長さをコンピュータに入力する。
そして、三次元データスケール付与プログラムが、点群データの中から構造物を見つけ出す機能を実行する。
構造物の大きさ及び形状は、上記のように予め作業者が入力しており、入力されたデータに基づいて点群データの中から構造物を見つけ出す。
なお、上述した実施形態と同様に、三次元データスケール付与プログラムにおける、点群データの中から構造物を見つけ出す機能は、予め入力された構造物の大きさ及び形状に対する所定の誤差範囲を予め決めておき、点群データ上で誤差範囲に含まれる範囲の物体を、構造物として認定する。
【0047】
なお、三次元データスケール付与プログラムにおける、点群データの中から構造物を見つけ出す機能は、上述した実施形態と同様に、面推定により基準物の立方体の頂点(角)を自動的に検出する平面推定機能を採用してもよい。
【0048】
次に、三次元データスケール付与プログラムは、点群データの中から見つけ出した全ての構造物に対して、予め入力された大きさ及び形状となるように点群データを最適化する機能を実行する。この最適化の機能は、上述した実施形態と同様に、アフィン変換による点群データの伸縮を実行し、必要であればさらにねじれを実行する。
このように、基準物を設置しなくても、測定対象物の周囲に存在する構造物を基準とすることで点群データから構成される三次元空間全体に正確なスケールを付与することができる。
【0049】
なお、構造物としては、
図11のように屋内の物体に限定するものではない。屋外であれば、大きさが分かる建物、ブロック塀などの構造物が測定対象物の周囲に配置されていれば、この構造物を基準物の代わりとして用いることもできる。
【0050】
(第3の実施形態)
次に、基準物として平面状基準物を用いた実施形態について説明する。なお、上述してきた実施形態と同一の構成要素については同一の符号を付し、説明を省略する場合もある。
本実施形態では、
図12に示すような平面状基準物を採用する。
図12では、3つの平面状基準物50を示している。この平面状基準物50は、例えば紙やプラスチック板で構成された薄い長方形状であり、中心に白丸が形成されている黒丸が、所定距離離れて2つ形成されている。黒丸中心の白丸が基準点となる。以下、基準点が中心に形成された黒丸をマーカー52と称して説明する。
2つのマーカー52の基準点どうしの間の距離(白丸間の距離)は、平面状基準物50を作成する際に予め設定しておく。例えば、基準点間距離を10cmなどに設定することができる。
【0051】
なお、
図12に示す平面状基準物には、マーカー52の周囲に円弧状の形状が複数形成されている。これは、マーカーであることを認識させるためと、基準物の固有番号を認識させるための両方の意味がある。以下、この円弧状の形状を識別部54と称する。
もし、識別部54が無い場合には、マーカー52は単なる黒丸であり、三次元データスケール付与プログラムが、このマーカー52の中心の白丸を基準点であると認識することが難しい場合がある。例えば、他に円形の箇所(車両のタイヤ等)があればその箇所をマーカーとして誤認識してしまう可能性もある。
そこで、マーカー52の周囲にさらに円弧状の形状の識別部54を配置し、この識別部54を含む形状を基準物であるとして三次元データスケール付与プログラムに予め認識させておくことにより、点群データ生成プログラムによって生成された点群データにおいて、識別部54を認識することでマーカー52の中心にある白丸が基準点であるということを認識することができる。
【0052】
また、マーカー52のそれぞれの周囲に配置された識別部54は、全て異なる形状にしている。
例えば、
図12には、平面状基準物50の例を3つ記載しており、1つの平面状基準物50には2つのマーカー52が形成されている。1つの平面状基準物においても2箇所の識別部54はそれぞれ異なる円弧長のものが同じ個数か又は異なる個数配置されている。
また、ある平面状基準物50と、他の平面状基準物50とでは、形成されている識別部54が全て異なっている。
つまり、平面状基準物50に形成される識別部54は、全て異なる形状を有しており、1つ1つのマーカー52を識別できるようにしている。
【0053】
すなわち、測定対象物の周囲に複数の平面状基準物50を配置し、三次元データスケール付与プログラムが、1つの平面状基準物50内の基準点間の距離が予め入力しておいた距離となるように点群データを最適化する機能(アフィン変換)を実行する際に、複数の基準点が存在する場合にどの基準点同士を結んで、予め入力された距離を設定するのかが判別できなくなるおそれがある。
そこで、例えば
図12の一番上の平面状基準物50の左側のマーカー52の識別番号を1(これをマーカー1とする)、右側のマーカー52の識別番号を2とし(これをマーカー2とする)、マーカー1の基準点とマーカー2の基準点を結ぶ直線を10cmとすれば、三次元データスケール付与プログラムは識別部54の形状によってマーカー1とマーカー2を判別し、マーカー1とマーカー2の基準点間の距離を設定することができる。
【0054】
また、例えば
図12の中央の平面状基準物50の左側のマーカー52の識別番号を3、右側のマーカー52の識別番号を4とし、マーカー3の基準点とマーカー4の基準点を結ぶ直線を10cmとすれば、三次元データスケール付与プログラムは識別部54の形状によってマーカー3とマーカー4を判別し、マーカー3とマーカー4の基準点間の距離を設定することができる。
【0055】
図13に示す実施形態では、測定対象物20の周囲に3つの平面状基準物50が配置されている。
作業者はデジタルカメラで測定対象物を様々な角度から、測定対象物20及び複数の平面基準物40の全周囲をカバーできるように複数枚撮影する。また、撮影は、撮影範囲をオーバーラップさせて行うことが必要である。撮影された画像データはコンピュータに取り込み、点群データ生成プログラムによって点群データが生成される。オーバーラップさせた部分については、コンピュータにおいてデータのマッチング処理が行われ、点群データが生成される。
【0056】
作業者は、各マーカー52の識別部54を含む形状をコンピュータに読み取らせ、識別部54の相違によって全てのマーカーに対して識別番号を付与する。そして1枚の平面状基準物50に存在する2つのマーカー52の基準点間の距離を入力する。基準点間の距離は、設定された識別番号同士の距離として設定する。
【0057】
そして、三次元データスケール付与プログラムが、点群データの中から平面状基準物50を見つけ出す機能を実行する。
平面状基準物に形成されているマーカー52は識別部54によってそれぞれ特有の形状として設定されているので、三次元データスケール付与プログラムは識別番号とともにマーカー52を認識することができる。
【0058】
次に、三次元データスケール付与プログラムは、点群データの中から見つけ出した各マーカーの基準点に対して、1つの平面状基準物50内で対となっている基準点間の距離が予め入力された距離となるように、点群データを最適化する機能を実行する。
例えば、識別番号1~6までのマーカー52を三次元データスケール付与プログラムが認識したとして、作業者が予め識別番号1と2の基準点間の距離、識別番号3と4の基準点間の距離、識別番号5と6の基準点間の距離を入力していた場合には、三次元データスケール付与プログラムは識別番号1と2の基準点間の距離、識別番号3と4の基準点間の距離、識別番号5と6の基準点間の距離がそれぞれ入力した距離となるように点群データを最適化する。この最適化の機能は、上述した実施形態と同様に、アフィン変換による点群データの伸縮を実行し、必要であればさらにねじれを実行する。
【0059】
このように、予め距離が判明している2つの基準点が形成された平面状基準物において、基準点間の距離を予め入力しておくことにより、プログラム上で面推定によって基準物の頂点を認識する作業をしなくてもよいため、プログラムの動作短縮を図ることができる。
【0060】
なお、平面状基準物50を、
図13に示すように測定対象物20の周囲に存在する壁面に貼り付けることにより、測定対象物に対する高さ方向のスケールも付与することができる。
【0061】
なお、上述してきた各実施形態では、デジタルカメラで撮影した複数の画像データに基づいて点群データを生成した例を説明した。
しかし、本発明における点群データの生成はレーザスキャナによって得られた位置データに基づいてもよい。
【符号の説明】
【0062】
20 測定対象物
22a、22b、22c、22d 基準物
25 測定対象物
26a、26b、26c、26d 基準物
30 コンピュータ
32 制御部
34 記憶装置
36 入力装置
38 モニタ
40 テーブル
42 モニタ
44 窓
50 平面状基準物
52 マーカー
54 識別部
P1 点群データ生成プログラム
P2 三次元データスケール付与プログラム