(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-03
(45)【発行日】2024-06-11
(54)【発明の名称】3次元再構成装置、3次元再構成方法、およびプログラム
(51)【国際特許分類】
G01B 11/24 20060101AFI20240604BHJP
G06T 7/579 20170101ALI20240604BHJP
【FI】
G01B11/24 K
G06T7/579
(21)【出願番号】P 2023537837
(86)(22)【出願日】2021-07-29
(86)【国際出願番号】 JP2021028000
(87)【国際公開番号】W WO2023007641
(87)【国際公開日】2023-02-02
【審査請求日】2023-08-08
(73)【特許権者】
【識別番号】322004393
【氏名又は名称】株式会社エビデント
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100147267
【氏名又は名称】大槻 真紀子
(74)【代理人】
【識別番号】100207789
【氏名又は名称】石田 良平
(72)【発明者】
【氏名】宮下 尚之
【審査官】仲野 一秀
(56)【参考文献】
【文献】特開2019-212203(JP,A)
【文献】特開2020-67439(JP,A)
【文献】中国特許出願公開第111145238(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00-11/30
G01C 1/00-1/14
5/00-15/14
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
位置姿勢情報および2次元座標情報を取得する情報取得部であって、前記位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および前記2つ以上の位置の各々における前記カメラの姿勢を示し、前記2次元座標情報は、前記カメラが前記2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標を示し、前記位置姿勢情報および前記2次元座標情報は、前記2枚以上の画像を使用する3次元再構成処理を通して生成された前記情報取得部と、
前記2つ以上の位置の各々における前記被写体の3次元のサイズを取得するサイズ取得部と、
前記2つ以上の位置の各々における前記サイズを既知のサイズと一致させるための補正係数を算出する補正係数算出部と、
前記補正係数を使用することにより前記2つ以上の位置の各々を補正するカメラ位置補正部と、
前記カメラ位置補正部によって補正された前記2つ以上の位置と、前記2つ以上の位置の各々における前記姿勢と、前記2次元座標情報とを使用することにより前記被写体の3次元形状を復元する3次元形状復元部と、
を備える3次元再構成装置。
【請求項2】
前記サイズ取得部は、前記位置姿勢情報を使用することにより、前記2つ以上の位置の各々における前記被写体の3次元のサイズを算出する
請求項1に記載の3次元再構成装置。
【請求項3】
前記情報取得部は、前記被写体の3次元形状を示す形状情報を取得し、
前記サイズ取得部は、前記2つ以上の位置の各々において前記カメラの視野に入る前記被写体の前記形状情報が示す前記3次元形状のデプスを前記サイズとして算出する
請求項2に記載の3次元再構成装置。
【請求項4】
前記サイズ取得部は、前記2つ以上の位置に含まれる2つの位置の距離に基づいて前記サイズを算出する
請求項2に記載の3次元再構成装置。
【請求項5】
前記情報取得部は、前記被写体の3次元形状を示す形状情報を取得し、
前記サイズ取得部は、前記形状情報が示す3次元形状を近似する所定の3次元形状を使用することにより前記サイズを算出する
請求項2に記載の3次元再構成装置。
【請求項6】
前記サイズ取得部は、入力装置に入力された前記サイズを前記入力装置から取得する
請求項1に記載の3次元再構成装置。
【請求項7】
前記補正係数算出部は、前記2つ以上の位置の各々における前記サイズと、前記サイズの目標値とを使用することにより前記補正係数を算出する
請求項1に記載の3次元再構成装置。
【請求項8】
情報取得部が位置姿勢情報および2次元座標情報を取得する情報取得ステップであって、前記位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および前記2つ以上の位置の各々における前記カメラの姿勢を示し、前記2次元座標情報は、前記カメラが前記2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標を示し、前記位置姿勢情報および前記2次元座標情報は、前記2枚以上の画像を使用する3次元再構成処理を通して生成された前記情報取得ステップと、
サイズ取得部が前記2つ以上の位置の各々における前記被写体の3次元のサイズを取得するサイズ取得ステップと、
補正係数算出部が、前記2つ以上の位置の各々における前記サイズを既知のサイズと一致させるための補正係数を算出する補正係数算出ステップと、
カメラ位置補正部が前記補正係数を使用することにより前記2つ以上の位置の各々を補正するカメラ位置補正ステップと、
3次元形状復元部が、前記カメラ位置補正ステップにおいて補正された前記2つ以上の位置と、前記2つ以上の位置の各々における前記姿勢と、前記2次元座標情報とを使用することにより前記被写体の3次元形状を復元する3次元形状復元ステップと、
を備える3次元再構成方法。
【請求項9】
位置姿勢情報および2次元座標情報を取得する情報取得ステップであって、前記位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および前記2つ以上の位置の各々における前記カメラの姿勢を示し、前記2次元座標情報は、前記カメラが前記2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標を示し、前記位置姿勢情報および前記2次元座標情報は、前記2枚以上の画像を使用する3次元再構成処理を通して生成された前記情報取得ステップと、
前記2つ以上の位置の各々における前記被写体の3次元のサイズを取得するサイズ取得ステップと、
前記2つ以上の位置の各々における前記サイズを既知のサイズと一致させるための補正係数を算出する補正係数算出ステップと、
前記補正係数を使用することにより前記2つ以上の位置の各々を補正するカメラ位置補正ステップと、
前記カメラ位置補正ステップにおいて補正された前記2つ以上の位置と、前記2つ以上の位置の各々における前記姿勢と、前記2次元座標情報とを使用することにより前記被写体の3次元形状を復元する3次元形状復元ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元再構成装置、3次元再構成方法、およびプログラムに関する。
【背景技術】
【0002】
工業用内視鏡(RVI(Remote Visual Inspection))が航空機エンジンまたはプラント配管等の工業製品の画像を取得し、その画像を使用する検査が実施されている。検査では、画像を取得するためのプローブが被写体内に挿入される。撮像光学系である光学アダプタがプローブの先端に配置されている。検査者は画像を観察し、欠陥等があるか否かを判断する。
【0003】
一般的に、検査者は、単眼の光学アダプタを通して取得された画像を使用することにより被写体の内部を観察する。検査において発見された欠陥等が被写体内のどこに位置するのかを正しく記録することが重要である。しかしながら、検査者が画像のみから欠陥等の正確な位置を知ることは困難である。そのため、被写体の形状および画像を通して観察された位置(観察位置)を自動的に検出することが要求されている。
【0004】
SfM(Structure-from-Motion)またはVisual-SLAM(Visual-Simultaneous-Localization-and-Mapping)と呼ばれる技術が開発されている。これらの技術は、単眼のカメラによって取得された動画像を使用することにより3次元復元(3次元再構成)を実行する。3次元復元を通して被写体の形状および画像の観察位置が復元される。
【0005】
単眼のカメラによって取得された画像を使用する3次元復元では、原理的に、スケールドリフトと呼ばれる現象が発生する。従来技術は、スケールドリフトを解消するループクロージング処理を提供する。その技術は、カメラがループ状に一周して以前の位置と同じ位置に戻った場合にループを検知し、ループ前後のカメラの位置・姿勢を補正し、かつカメラの軌跡全体を補正する。
【0006】
特許文献1に開示された技術は、カメラの位置姿勢推定の誤差を減らす処理を提供する。その技術は、画像から検出される特徴点の数を増やすことにより、誤差を減らす。具体的には、特徴点の数が閾値以下である場合、カメラの移動方向および移動速度が変更される。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に開示された技術では、スケールドリフトの発生は根本的には解消されない。また、その技術では、目的地に近づく移動と、目的地から遠ざかる移動とが繰り返されるため、撮影操作が煩雑となる。
【0009】
本発明は、被写体の3次元形状の誤差を減らすことができる3次元再構成装置、3次元再構成方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の態様によれば、3次元再構成装置は、情報取得部、サイズ取得部、補正係数算出部、カメラ位置補正部、および3次元形状復元部を備える。前記情報取得部は、位置姿勢情報および2次元座標情報を取得する。前記位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および前記2つ以上の位置の各々における前記カメラの姿勢を示す。前記2次元座標情報は、前記カメラが前記2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標を示す。前記位置姿勢情報および前記2次元座標情報は、前記2枚以上の画像を使用する3次元再構成処理を通して生成される。前記サイズ取得部は、前記2つ以上の位置の各々における前記被写体の3次元のサイズを取得する。前記補正係数算出部は、前記2つ以上の位置の各々における前記サイズを既知のサイズと一致させるための補正係数を算出する。前記カメラ位置補正部は、前記補正係数を使用することにより前記2つ以上の位置の各々を補正する。前記3次元形状復元部は、前記カメラ位置補正部によって補正された前記2つ以上の位置と、前記2つ以上の位置の各々における前記姿勢と、前記2次元座標情報とを使用することにより前記被写体の3次元形状を復元する。
【0011】
本発明の第2の態様によれば、第1の態様において、前記サイズ取得部は、前記位置姿勢情報を使用することにより、前記2つ以上の位置の各々における前記被写体の3次元のサイズを算出してもよい。
【0012】
本発明の第3の態様によれば、第2の態様において、前記情報取得部は、前記被写体の3次元形状を示す形状情報を取得してもよい。前記サイズ取得部は、前記2つ以上の位置の各々において前記カメラの視野に入る前記被写体の前記形状情報が示す前記3次元形状のデプスを前記サイズとして算出してもよい。
【0013】
本発明の第4の態様によれば、第2の態様において、前記サイズ取得部は、前記2つ以上の位置に含まれる2つの位置の距離に基づいて前記サイズを算出してもよい。
【0014】
本発明の第5の態様によれば、第2の態様において、前記情報取得部は、前記被写体の3次元形状を示す形状情報を取得してもよい。前記サイズ取得部は、前記形状情報が示す3次元形状を近似する所定の3次元形状を使用することにより前記サイズを算出してもよい。
【0015】
本発明の第6の態様によれば、第1の態様において、前記サイズ取得部は、入力装置に入力された前記サイズを前記入力装置から取得してもよい。
【0016】
本発明の第7の態様によれば、第1の態様において、前記補正係数算出部は、前記2つ以上の位置の各々における前記サイズと、前記サイズの目標値とを使用することにより前記補正係数を算出してもよい。
【0017】
本発明の第8の態様によれば、3次元再構成方法は、情報取得ステップ、サイズ取得ステップ、補正係数算出ステップ、カメラ位置補正ステップ、および3次元形状復元ステップを有する。情報取得部は、前記情報取得ステップにおいて、位置姿勢情報および2次元座標情報を取得する。前記位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および前記2つ以上の位置の各々における前記カメラの姿勢を示す。前記2次元座標情報は、前記カメラが前記2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標を示す。前記位置姿勢情報および前記2次元座標情報は、前記2枚以上の画像を使用する3次元再構成処理を通して生成される。サイズ取得部は、前記サイズ取得ステップにおいて、前記2つ以上の位置の各々における前記被写体の3次元のサイズを取得する。補正係数算出部は、前記補正係数算出ステップにおいて、前記2つ以上の位置の各々における前記サイズを既知のサイズと一致させるための補正係数を算出する。カメラ位置補正部は、前記カメラ位置補正ステップにおいて、前記補正係数を使用することにより前記2つ以上の位置の各々を補正する。3次元形状復元部は、前記3次元形状復元ステップにおいて、前記カメラ位置補正ステップにおいて補正された前記2つ以上の位置と、前記2つ以上の位置の各々における前記姿勢と、前記2次元座標情報とを使用することにより前記被写体の3次元形状を復元する。
【0018】
本発明の第9の態様によれば、プログラムは、情報取得ステップ、サイズ取得ステップ、補正係数算出ステップ、カメラ位置補正ステップ、および3次元形状復元ステップをコンピュータに実行させる。前記コンピュータは、前記情報取得ステップにおいて、位置姿勢情報および2次元座標情報を取得する。前記位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および前記2つ以上の位置の各々における前記カメラの姿勢を示す。前記2次元座標情報は、前記カメラが前記2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標を示す。前記位置姿勢情報および前記2次元座標情報は、前記2枚以上の画像を使用する3次元再構成処理を通して生成される。前記コンピュータは、前記サイズ取得ステップにおいて、前記2つ以上の位置の各々における前記被写体の3次元のサイズを取得する。前記コンピュータは、前記補正係数算出ステップにおいて、前記2つ以上の位置の各々における前記サイズを既知のサイズと一致させるための補正係数を算出する。前記コンピュータは、前記カメラ位置補正ステップにおいて、前記補正係数を使用することにより前記2つ以上の位置の各々を補正する。前記コンピュータは、前記3次元形状復元ステップにおいて、前記カメラ位置補正ステップにおいて補正された前記2つ以上の位置と、前記2つ以上の位置の各々における前記姿勢と、前記2次元座標情報とを使用することにより前記被写体の3次元形状を復元する。
【発明の効果】
【0019】
上記の各態様によれば、3次元再構成装置、3次元再構成方法、およびプログラムは、被写体の3次元形状の誤差を減らすことができる。
【図面の簡単な説明】
【0020】
【
図1】本発明の第1の実施形態の3次元(3D)再構成装置の構成を示すブロック図である。
【
図2】本発明の第1の実施形態の3D再構成装置が実行する処理の手順を示すフローチャートである。
【
図3】本発明の第1の実施形態におけるカメラの位置および被写体の3D形状を示す図である。
【
図4】本発明の第1の実施形態における被写体のサイズの例を示す図である。
【
図5】本発明の第1の実施形態における被写体のサイズの例を示す図である。
【
図6】本発明の第1の実施形態におけるデプスのグラフである。
【
図7】本発明の第1の実施形態における基線長のグラフである。
【
図8】本発明の第1の実施形態における所定のサイズとカメラ位置におけるサイズとの比のグラフである。
【
図9】本発明の第1の実施形態における補正係数のグラフである。
【
図10】本発明の第1の実施形態における補正されたカメラの位置のグラフである。
【
図11】本発明の第1の実施形態の3D再構成装置によって復元された3D形状の例を示す図である。
【
図12】本発明の第1の実施形態の3D再構成装置によって復元された3D形状の例を示す図である。
【
図13】本発明の第1の実施形態における被写体の例を示す図である。
【
図14】本発明の第1の実施形態の3D再構成装置に入力された形状情報によって示される3D形状の例を示す図である。
【
図15】本発明の第1の実施形態の3D再構成装置によって復元された3D形状の例を示す図である。
【
図16】本発明の第2の実施形態の3D再構成装置の構成を示すブロック図である。
【
図17】本発明の第2の実施形態の3D再構成装置が実行する処理の手順を示すフローチャートである。
【
図18】本発明の第2の実施形態における被写体の例を示す図である。
【
図19】本発明の第2の実施形態の3D再構成装置によって復元された3D形状の例を示す図である。
【発明を実施するための形態】
【0021】
図面を参照し、本発明の実施形態を説明する。
【0022】
(第1の実施形態)
図1は、本発明の第1の実施形態の3D再構成装置1の構成を示す。
図1に示す3D再構成装置1は、3D再構成部10および記憶部11を有する。3D再構成部10は、情報取得部100、サイズ取得部101、補正係数算出部102、カメラ位置補正部103、3D形状復元部104、およびバンドル調整部105を有する。
【0023】
3D再構成装置1の概略構成について説明する。情報取得部100は、位置姿勢情報および2次元座標情報(2D座標情報)を取得する。位置姿勢情報は、単眼のカメラの互いに異なる2つ以上の位置および2つ以上の位置の各々におけるカメラの姿勢を示す。2D座標情報は、カメラがその2つ以上の位置において取得した被写体の2枚以上の画像の各々における1つ以上の点の2次元座標(2D座標)を示す。位置姿勢情報および2D座標情報は、その2枚以上の画像を使用する3次元再構成処理(3D再構成処理)を通して生成される。サイズ取得部101は、カメラの2つ以上の位置の各々における被写体の3次元のサイズを取得する。補正係数算出部102は、カメラの2つ以上の位置の各々におけるサイズを既知のサイズと一致させるための補正係数を算出する。カメラ位置補正部103は、補正係数を使用することによりカメラの2つ以上の位置の各々を補正する。3D形状復元部104は、カメラ位置補正部103によって補正された2つ以上の位置と、その2つ以上の位置の各々におけるカメラの姿勢と、2D座標情報とを使用することにより被写体の3次元形状(3D形状)を復元する。
【0024】
上記のカメラは、1つの視点と対応する単眼の撮像光学系を有する。カメラは、視点から見た被写体の光学像を捉え、その光学像に基づいて画像を生成する。以下では、視点と対応するカメラの位置をカメラ位置と呼ぶ。
【0025】
3D再構成装置1の詳細な構成について説明する。3D再構成装置1は、入力装置2および出力装置3に接続されている。3D再構成装置1は、入力装置2および出力装置3の少なくとも一方を有してもよい。
【0026】
入力装置2は、位置姿勢情報、形状情報、および2D座標情報等を3D再構成装置1に入力する。例えば、入力装置2は、外部装置と通信を実施する通信機を有し、位置姿勢情報、形状情報、および2D座標情報等を外部装置から受信する。入力装置2は、位置姿勢情報、形状情報、および2D座標情報を外部記憶媒体から読み出す読み出し回路を有してもよい。入力装置2は、ユーザーインターフェースを有してもよい。例えば、ユーザーインターフェースは、ボタン、スイッチ、キー、マウス、ジョイスティック、タッチパッド、トラックボール、またはタッチパネルである。ユーザーは、ユーザーインターフェースを通して情報を入力装置2に入力してもよい。
【0027】
位置姿勢情報、形状情報、および2D座標情報は、SfMまたはVisual-SLAM等を使用する3D再構成処理を通して生成される。被写体の2枚以上の画像(キーフレーム)が3D再構成処理において使用される。カメラは、互いに異なる2つ以上のカメラ位置において画像を取得する。
【0028】
位置姿勢情報は、その2つ以上のカメラ位置の各々の3次元座標(3D座標)と、その2つ以上のカメラ位置の各々におけるカメラの姿勢を示す姿勢情報とを含む。カメラ位置は、3次元空間における位置を示す3次元ベクトル(x,y,z)で表され、カメラの姿勢は軸回りの回転量を示す3次元ベクトル(rx,ry,rz)もしくは3x3の回転行列で表される。位置姿勢情報は上記の合計6DoF(自由度)の情報である。1つのカメラ位置と1つの姿勢とが互いに関連付けられている。互いに異なる2つのカメラ位置の間でカメラの2つの姿勢は同じであってもよいし、あるいは互いに異なってもよい。
【0029】
形状情報は、被写体の3D形状を示す。形状情報は、被写体の3次元点群である。形状情報は、被写体上の3つ以上の位置の各々の3D座標を含む。位置姿勢情報における3D座標および姿勢情報は、形状情報における3D座標と関連付けられている。つまり、カメラの位置および姿勢は、被写体の3D形状上の点と関連付けられている。
【0030】
2D座標情報は、被写体の2枚以上の画像(キーフレーム)の各々における1つ以上の点の2D座標を示す。形状情報における各点の3D座標は、形状情報における各点と対応する2D座標情報の2D座標と関連付けられている。
【0031】
出力装置3は、3D再構成装置1によって復元された被写体の3D形状を出力する。例えば、出力装置3は、その3D形状の画像をディスプレイに出力する。出力装置3は、外部装置と通信を実施する通信機を有してもよく、その3D形状を外部装置に送信してもよい。出力装置3は、その3D形状を外部記憶媒体に書き込む書き込み回路を有してもよい。
【0032】
情報取得部100は、入力装置2によって入力された位置姿勢情報、形状情報、および2D座標情報を入力装置2から取得する。
【0033】
サイズ取得部101は、各カメラ位置における被写体の3次元のサイズを取得する。例えば、サイズ取得部101は、位置姿勢情報および形状情報の少なくとも一方を使用することにより、そのサイズを算出する。入力装置2は、既知のサイズを3D再構成装置1に入力してもよい。サイズ取得部101は、入力装置2によって入力されたサイズを入力装置2から取得してもよい。被写体のサイズの詳細については後述する。
【0034】
補正係数算出部102は、3D再構成装置1に入力された形状情報が示す3D形状におけるサイズを所定のサイズと一致させるための補正係数を算出する。カメラ位置補正部103は、補正係数算出部102によって算出された補正係数を使用することにより2つ以上のカメラ位置の各々を補正する。
【0035】
3D形状復元部104は、三角測量を実行し、被写体の3D形状を復元する。このとき、3D形状復元部104は、カメラ位置補正部103によって補正された2つ以上のカメラ位置を使用する。また、3D形状復元部104は、その2つ以上のカメラ位置の各々と関連付けられている姿勢を使用する。また、3D形状復元部104は、2D座標情報を使用する。3D形状復元部104は、この処理を通して、被写体上の3つ以上の位置の各々の3D座標を含む形状情報を生成する。三角測量には3D再構成において用いられる一般的な処理を用いてもよい。
【0036】
バンドル調整部105は、被写体の3D形状を安定させるためのバンドル調整を実行する。このとき、3D形状復元部104によって生成された形状情報が処理される。バンドル調整には、3D点の再投影誤差を最小化する様にカメラ位置姿勢および3D座標を最適化する一般的な処理を用いてもよい。
【0037】
3D再構成部10は、プロセッサおよび論理回路の少なくとも1つで構成されてもよい。例えば、プロセッサは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、およびGPU(Graphics Processing Unit)の少なくとも1つである。例えば、論理回路は、ASIC(Application Specific Integrated Circuit)およびFPGA(Field-Programmable Gate Array)の少なくとも1つである。3D再構成部10は、1つまたは複数のプロセッサを含んでもよい。情報受付部30、3D再構成部10は、1つまたは複数の論理回路を含んでもよい。
【0038】
3D再構成装置1のコンピュータがプログラムを読み込み、かつ読み込まれたプログラムを実行してもよい。そのプログラムは、3D再構成部10の動作を規定する命令を含む。つまり、3D再構成部10の機能はソフトウェアにより実現されてもよい。
【0039】
上記のプログラムは、例えばフラッシュメモリのような「コンピュータ読み取り可能な記録媒体」により提供されてもよい。そのプログラムは、そのプログラムを保持するコンピュータから、伝送媒体を経由して、あるいは伝送媒体中の伝送波により3D再構成装置1に伝送されてもよい。プログラムを伝送する「伝送媒体」は、情報を伝送する機能を有する媒体である。情報を伝送する機能を有する媒体は、インターネット等のネットワーク(通信網)および電話回線等の通信回線(通信線)を含む。上述したプログラムは、前述した機能の一部を実現してもよい。さらに、上述したプログラムは、差分ファイル(差分プログラム)であってもよい。前述した機能は、コンピュータに既に記録されているプログラムと差分プログラムとの組合せによって実現されてもよい。
【0040】
記憶部11は、情報取得部100によって取得された位置姿勢情報、形状情報、および2D座標情報を記憶する。また、記憶部11は、バンドル調整部105によって処理された形状情報を記憶する。
【0041】
記憶部11は、揮発性または不揮発性の記録媒体である。例えば、記憶部11は、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、およびフラッシュメモリの少なくとも1つである。
【0042】
3D再構成装置1が実行する処理を説明する。
図2は、3D再構成装置1が実行する処理の手順を示す。
【0043】
情報取得部100は、入力装置2によって入力された位置姿勢情報、形状情報、および2D座標情報を入力装置2から取得する(ステップS100)。情報取得部100によって取得された位置姿勢情報、形状情報、および2D座標情報は記憶部11に記憶される。3D再構成部10の各部は、位置姿勢情報、形状情報、または2D座標情報を記憶部11から読み出し、読み出された情報を処理する。
【0044】
ステップS100の後、サイズ取得部101は、被写体のサイズを取得する(ステップS101)。
【0045】
サイズ取得部101は、ステップS101において以下の処理を実行する。以下では、サイズ取得部101が被写体のサイズを算出する例を説明する。
【0046】
図3に、内径が一定の配管である被写体の内側を内視鏡を使用することにより撮影した動画像に対し、予め単眼3D再構成を行った結果を、情報取得部100から取得した例を示す。3D形状3D1は、形状情報によって示される被写体の3D点群である。カメラ位置CP1、カメラ位置CP2、およびカメラ位置CP3の各々は、動画像のうち3D再構成に用いられた画像(いわゆるキーフレーム)のカメラ位置を示している。
【0047】
内径が一定の配管である被写体では、3D形状が示す内径は理想的には一定となるはずである。しかしながら単眼3D再構成ではスケールドリフトが生じるため3D形状が変化してしまう。
図3は、スケールドリフトが内径の縮小として生じた例を示す。例えば、スケールドリフトは、内径D1および内径D2の違いとして現れる。
【0048】
スケールドリフトは縮小だけではなく、拡大や拡縮として生じる場合もあるが、以下では説明を簡単にするために縮小のみ発生したと仮定して本発明の各実施形態を説明する。
【0049】
図4および
図5は、被写体のサイズの例を示す。カメラ位置CP1およびカメラ位置CPnが
図4に示されている。カメラ位置CP1およびカメラ位置CPnの間のカメラ位置は
図4に示されていない。サイズ取得部101は、位置姿勢情報および形状情報を使用することにより、
図4に示すデプスDP1およびデプスDPnを算出する。デプスDP1は、カメラ位置CP1から見た被写体のデプスを示す。デプスDPnは、カメラ位置CPnから見た被写体のデプスを示す。サイズ取得部101は、デプスDP1およびデプスDPnに加えて、カメラ位置CP1およびカメラ位置CPnの間の各カメラ位置におけるデプスを算出する。
【0050】
カメラの座標系は、X軸、Y軸、およびZ軸によって定義される。X軸およびY軸は、カメラの撮像面に平行である。Z軸は、撮像面に垂直である。例えば、サイズ取得部101は、各カメラ位置と関連付けられている3D座標を形状情報から抽出する。形状情報における座標系は、所定の世界座標系であり、例えば3D再構成が行われた際の第0のカメラ位置を原点とする。サイズ取得部101は、位置姿勢情報におけるカメラ位置および姿勢情報を使用することにより、形状情報である3D座標の座標系を、カメラを基準とする座標系に変換する。その後、サイズ取得部101は、変換された3D座標のZ座標を使用することによりデプスを算出する。デプスは、例えば複数のZ座標の中央値を用いることにより算出される。
【0051】
カメラ位置CP1、カメラ位置CP2、カメラ位置CPn、およびカメラ位置CP(n+1)が
図5に示されている。カメラ位置CP2およびカメラ位置CPnの間のカメラ位置は
図5に示されていない。サイズ取得部101は、位置姿勢情報を使用することにより、
図5に示す基線長BL1および基線長BLnを算出する。基線長BL1は、カメラ位置CP1からカメラ位置CP2までのカメラの移動量、すなわちカメラ位置CP1とカメラ位置CP2との間の3次元距離を示す。基線長BLnは、カメラ位置CPnからカメラ位置CP(n+1)までのカメラの移動量、すなわちカメラ位置CPnとカメラ位置CP(n+1)との間の3次元距離を示す。サイズ取得部101は、基線長BL1および基線長BLnに加えて、カメラ位置CP2およびカメラ位置CPnの間の各カメラ位置に関する基線長を算出する。
【0052】
図6は、サイズ取得部101によって算出されたデプスの例を示す。
図6における横軸は、カメラ位置と対応するカメラ番号を示す。
図6における縦軸は、デプスを示す。カメラ番号は、基準位置からの距離と対応する。例えば、基準位置は、最初のカメラ番号を持つカメラの位置である。基準位置からの距離が増加するとデプスは減少する。
【0053】
図7は、サイズ取得部101によって算出された基線長の例を示す。
図7における横軸は、
図6と同様に、カメラ位置と対応するカメラ番号を示す。
図7における縦軸は、基線長を示す。
【0054】
サイズ取得部101は、
図3に示す3D形状3D1の内径を被写体のサイズとして算出してもよい。サイズ取得部101は例えば、カメラ位置CP1近傍の3D形状(3D点群)に既存の円筒形状をあてはめるフィッティング処理を実行することによりカメラ位置CP1における内径を算出することができる。サイズ取得部101は、3D形状3D1および所定の3D形状を用いる点群レジストレーション等を実行することにより被写体のサイズを算出しても良い。
【0055】
以上の様に、被写体のサイズは、スケールドリフトの程度を示す指標であり、目的に沿った手法を使用することにより種々の指標に変形可能である。
【0056】
被写体のサイズが既知である場合、ユーザーは、入力装置2が有するユーザーインターフェースを経由してそのサイズを3D再構成装置1に入力してもよい。例えば、ユーザーは、被写体の内径を3D再構成装置1に入力してもよい。サイズ取得部101は、入力装置2によって入力されたサイズを入力装置2から取得してもよい。
【0057】
サイズ取得部101は、2つ以上のカメラ位置の各々におけるサイズを取得する。つまり、サイズ取得部101は、2つ以上のサイズを取得する。サイズ取得部101は、全てのカメラ位置におけるサイズを取得する必要はない。サイズ取得部101は、最初のカメラ位置におけるサイズと、最後のカメラ位置におけるサイズとのみを取得してもよい。
【0058】
ステップS101の後、補正係数算出部102は、各カメラ位置におけるサイズと既知のサイズとに基づいて補正係数を算出する(ステップS102)。
【0059】
補正係数算出部102は、ステップS102において以下の処理を実行する。例えば、補正係数算出部102は、所定のサイズStとカメラ位置iにおけるサイズSiとの比(St/Si)を算出する。補正係数算出部102は、比(St/Si)を2つ以上のカメラ位置の間で平滑化する。平滑化の方法として、様々な方法が使用できる。例えば、補正係数算出部102は、カメラ位置iを含み所定の長さを持つ区間における全てのカメラ位置における比(St/Si)の平均値を算出する。補正係数算出部102は、算出された平均値をカメラ位置iにおける補正係数として扱う。補正係数算出部102は、被写体のサイズに関する値(St/Si)を2つ以上のカメラ位置の間で平滑化することにより、ノイズの影響を抑制することができる。
【0060】
所定のサイズStは、被写体のサイズの目標値を示す。3D再構成処理を通して生成される位置姿勢情報および形状情報は、絶対的な大きさの単位を持たない。そのため、サイズStは、0よりも大きい値でありさえすればよく、計算上破綻の無い範囲における任意の値に設定しても良い。3D形状復元部104によって復元された3D形状における相対的な距離は、サイズStの大きさに応じて変化する。しかしながら、サイズStの大きさは、全体的な3D形状の補正に影響を与えない。
【0061】
補正係数算出部102は、平均値の代わりに中央値などを算出してもよい。補正係数算出部102は、比(St/Si)を近似する多項式を算出してもよい。補正係数算出部102は、その多項式を使用することにより各カメラ位置における補正係数を算出してもよい。
【0062】
記憶部11は、補正係数を算出するためのパラメータを記憶するテーブルを記憶してもよい。補正係数算出部102は、そのテーブルを使用することにより各補正係数を算出してもよい。
【0063】
図8は、補正係数算出部102によって算出された比(St/Si)の例を示す。
図8における横軸は、カメラ位置と対応するカメラ番号を示す。
図8における縦軸は、比(St/Si)を示す。
【0064】
図9は、補正係数算出部102によって算出された補正係数の例を示す。
図9における横軸は、カメラ位置と対応するカメラ番号を示す。
図9における縦軸は、補正係数を示す。
図6および
図7において、基準位置からの距離が増加すると被写体のサイズは減少する。
図9において、基準位置からの距離が増加すると補正係数は増加する。つまり、被写体のサイズが減少すると、補正係数は増加する。
【0065】
ステップS102の後、カメラ位置補正部103は、補正係数算出部102によって算出された補正係数を使用することにより2つ以上のカメラ位置の各々を補正する(ステップS103)。
【0066】
カメラ位置補正部103は、ステップS103において以下の処理を実行する。例えば、カメラ位置補正部103は、以下の式(1)を使用することにより各カメラ位置を補正する。
Oci=Ci(Oi-Oi-1)+Oci-1 (1)
【0067】
式(1)におけるカメラ位置Ociおよびカメラ位置Oci-1の各々は、補正されたカメラ位置(カメラ中心の座標)を示す。式(1)におけるカメラ位置Oiおよびカメラ位置Oi-1の各々は、補正されていないカメラ位置(カメラ中心の座標)を示す。式(1)における値Ciは、ステップS102において算出された補正係数を示す。式(1)の右辺第1項(Ci(Oi-Oi-1))は、カメラの基線長に補正係数を乗算することにより得られる。
【0068】
式(1)において、2つのカメラ位置の間の距離が補正係数に従って補正される。補正された距離をカメラ位置Oci-1に加算することにより、補正されたカメラ位置Ociが算出される。
【0069】
カメラ位置O1は基準位置であり、補正されない。カメラ位置Oc2が算出されるとき、式(1)においてカメラ位置Oci-1の代わりにカメラ位置O1が使用される。
【0070】
図10は、補正されたカメラ位置の例を示す。
図10における横軸は、カメラ位置と対応するカメラ番号を示す。
図10における左側の縦軸は、補正されていないカメラ位置を示す。
図10における右側の縦軸は、補正されたカメラ位置を示す。各カメラ位置は、基準位置からカメラまでの距離として示される。線L1は、補正されていないカメラ位置のグラフを示す。線L2は、補正されたカメラ位置のグラフを示す。各カメラ位置が補正される前、線L1が示すように、カメラ番号が増加すると、カメラ位置の変化は次第に小さくなっていく。各カメラ位置が補正された後、線L2が示すように、カメラ番号とカメラ位置との関係はほぼ線型である。つまり、スケールドリフトの影響は抑制される。
【0071】
ステップS103の後、3D形状復元部104は、三角測量を実行し、被写体の3D形状を復元する(ステップS104)。
【0072】
3D形状復元部104は、ステップS104において以下の処理を実行する。3D形状復元部104は、補正された2つ以上のカメラ位置と、その2つ以上のカメラ位置の各々と関連付けられている姿勢と、2D座標情報とを使用し、被写体上の3つ以上の位置の各々の3D座標を算出する。3D形状復元部104は、単眼のカメラによって取得された画像を使用する一般的な3D再構成処理において実行される処理を使用することができる。3D形状復元部104は、算出された3D座標を含む形状情報を生成する。
【0073】
ステップS104の後、バンドル調整部105は、3D形状復元部104によって生成された形状情報を使用するバンドル調整を実行する(ステップS105)。ステップS105が実行されたとき、
図2に示す処理が終了する。
【0074】
バンドル調整部105は、一般的なバンドル調整を使用することができる。しかしながら、バンドル調整は必須ではない。したがって、ステップS105が省略されてもよい。
【0075】
図11は、3D再構成装置1によって復元された3D形状の例を示す。
図11に示す被写体SB10は配管である。被写体SB10は、直線部SP10、直線部SP11、およびチーズCH10(継ぎ手)を有する。チーズCH10は、直線部SP10と直線部SP11との間に配置されている。カメラは、直線部SP10の左端から直線部SP11の右端に向かって移動する。
【0076】
図11における3D形状3D10は、3D再構成装置1に入力された形状情報によって示される。つまり、3D形状3D10は、カメラ位置補正部103によって補正されていないカメラ位置を使用することにより復元される。
【0077】
図11における3D形状3D11は、3D形状復元部104によって生成された形状情報によって示される。つまり、3D形状3D11は、カメラ位置補正部103によって補正されたカメラ位置を使用することにより復元される。
【0078】
3D形状3D10は、左側から右側に向かって徐々に細くかつ短くなる。3D形状3D10の長さは被写体SB10の長さと大きく異なる。一方、3D形状3D11の長さおよび太さの変化は大きく抑制される。
【0079】
図12は、3D再構成装置1によって復元された3D形状の他の例を示す。
図12に示す被写体SB11はU字管である。被写体SB11は、直線部SP12、直線部SP13、および曲線部CP10を有する。曲線部CP10は、直線部SP12と直線部SP13との間に配置されている。曲線部CP10の内径は、直線部SP12および直線部SP13の各々の内径と同じである。カメラは、直線部SP12の左端から直線部SP13の左端に向かって移動する。
【0080】
図12における3D形状3D12は、3D再構成装置1に入力された形状情報によって示される。つまり、3D形状3D12は、カメラ位置補正部103によって補正されていないカメラ位置を使用することにより復元される。
【0081】
図12における3D形状3D13は、3D形状復元部104によって生成された形状情報によって示される。つまり、3D形状3D13は、カメラ位置補正部103によって補正されたカメラ位置を使用することにより復元される。
【0082】
3D形状3D12は、左側から右側に向かって徐々に細くかつ短くなる。3D形状3D12の長さは被写体SB11の長さと大きく異なる。一方、3D形状3D13の長さおよび太さの変化は大きく抑制される。
【0083】
第1の実施形態における被写体は、T字菅であってもよい。被写体がT字管である場合も、被写体の3D形状の大きさの変化は大きく抑制される。
【0084】
3D再構成装置1によって復元された3D形状の他の例を説明する。以下の例における被写体は、航空機エンジンのガスタービンに配置されたブレードである。ガスタービンは2枚以上のブレードを有する。
図13は、ブレードの構成を概略的に示す。2枚以上のブレードは、ディスクと呼ばれる円盤状の部品に環状かつ放射状に固定されている。
図13において、12枚のブレードBL10がディスクDS10に配置されている。中心位置CT10は、エンジンの回転軸に垂直な平面におけるディスクDS10の中心を示す。カメラの位置は固定され、かつディスクDS10は方向DR10と反対方向に回転する。そのため、カメラは方向DR10に相対的に移動する。
【0085】
図14における3D形状3D14は、3D再構成装置1に入力された形状情報によって示される。つまり、3D形状3D14は、カメラ位置補正部103によって補正されていないカメラ位置を使用することにより復元される。
【0086】
図15における3D形状3D15は、3D形状復元部104によって生成された形状情報によって示される。つまり、3D形状3D15は、カメラ位置補正部103によって補正されたカメラ位置を使用することにより復元される。
【0087】
3D形状3D14は、方向DR10に沿って徐々に細くかつ短くなる。一方、方向DR10における3D形状3D15の長さおよび太さの変化は大きく抑制される。
【0088】
本発明の各態様の3次元再構成方法は、情報取得ステップ、サイズ取得ステップ、補正係数算出ステップ、カメラ位置補正ステップ、および3次元形状復元ステップを有する。情報取得部100は、情報取得ステップ(ステップS100)において、位置姿勢情報および2D座標情報を取得する。サイズ取得部101は、サイズ取得ステップ(ステップS101)において、カメラの2つ以上の位置の各々における被写体の3次元のサイズを取得する。補正係数算出部102は、補正係数算出ステップ(ステップS102)において、カメラの2つ以上の位置の各々におけるサイズを既知のサイズと一致させるための補正係数を算出する。カメラ位置補正部103は、カメラ位置補正ステップ(ステップS103)において、補正係数を使用することによりカメラの2つ以上の位置の各々を補正する。3D形状復元部104は、3次元形状復元ステップ(ステップS104)において、補正された2つ以上の位置と、その2つ以上の位置の各々におけるカメラの姿勢と、2D座標情報とを使用することにより被写体の3D形状を復元する。
【0089】
本発明の各態様は、以下の変形例を含んでもよい。サイズ取得部101は、位置姿勢情報を使用することにより、カメラの2つ以上の位置の各々における被写体の3次元のサイズを算出する。
【0090】
本発明の各態様は、以下の変形例を含んでもよい。情報取得部100は、被写体の3D形状を示す形状情報を取得する。サイズ取得部101は、カメラの2つ以上の位置の各々においてカメラの視野に入る被写体の形状情報が示す3D形状のデプスを被写体のサイズとして算出する。
【0091】
本発明の各態様は、以下の変形例を含んでもよい。サイズ取得部101は、カメラの2つ以上の位置に含まれる2つの位置の距離に基づいて被写体のサイズを算出する。
【0092】
本発明の各態様は、以下の変形例を含んでもよい。サイズ取得部101は、入力装置2に入力されたサイズを入力装置2から取得する。
【0093】
本発明の各態様は、以下の変形例を含んでもよい。補正係数算出部102は、カメラの2つ以上の位置の各々における被写体のサイズと、被写体のサイズの目標値とを使用することにより補正係数を算出する。
【0094】
本発明の各態様は、以下の変形例を含んでもよい。補正係数算出部102は、カメラの2つ以上の位置の各々における被写体のサイズに関する値をその2つ以上の位置の間で平滑化する。補正係数算出部102は、平滑化された値を使用することにより補正係数を算出する。
【0095】
第1の実施形態において、補正係数算出部102は、被写体の3D形状におけるサイズを既知のサイズと一致させるための補正係数を算出する。カメラ位置補正部103は、補正係数を使用することにより2つ以上のカメラ位置の各々を補正する。3D形状復元部104は、補正された2つ以上のカメラ位置と各カメラ位置におけるカメラの姿勢とを使用することにより被写体の3D形状を復元する。これにより、3D再構成装置1は、被写体の3D形状の誤差を減らすことができる。
【0096】
第1の実施形態では、説明を簡単にするためにスケールドリフトが縮小のみとして発生した例を説明した。しかしながら、拡大や拡縮などが発生し、被写体のサイズが本来のサイズと異なるサイズを持つように3D再構成が実行された場合に、3D再構成の結果に対し上記の手法を広く適用できることは言うまでもない。
【0097】
(第2の実施形態)
本発明の第2の実施形態を説明する。
図16は、第2の実施形態の3D再構成装置1aの構成を示す。
図16に示す3D再構成装置1aは、3D再構成部10aおよび記憶部11を有する。3D再構成部10aは、情報取得部100、サイズ取得部101、補正係数算出部102、カメラ位置補正部103、3D形状復元部104、バンドル調整部105、および補正区間設定部106を有する。
図1に示す構成と同じ構成の説明を省略する。
【0098】
補正区間設定部106は、情報取得部100によって取得された形状情報が示す被写体の3D形状上に2つ以上の補正区間を設定する。補正係数算出部102は、補正区間ごとに補正係数を算出する。
【0099】
3D再構成装置1aが実行する処理を説明する。
図17は、3D再構成装置1aが実行する処理の手順を示す。
図2に示す処理と同じ処理の説明を省略する。
【0100】
ステップS101の後、補正区間設定部106は、被写体の3D形状上に2つ以上の補正区間を設定する(ステップS110)。
【0101】
図18は、被写体の例を示す。
図18に示す被写体SB20は異径配管である。異径配管は、異なる径を持つ2つ以上の配管が接続された構造を持つ。被写体SB20は、直線部SP20、直線部SP21、直線部SP22、チーズCH20、およびチーズCH21を有する。直線部SP20および直線部SP22の各々の内径はD20である。直線部SP21の内径はD21である。内径D21は、内径D20よりも小さい。チーズCH20は、直線部SP20と直線部SP21との間に配置されている。チーズCH21は、直線部SP21と直線部SP22との間に配置されている。
【0102】
ユーザーは、入力装置2が有するユーザーインターフェースを経由して基準位置P20、基準位置P21、基準位置P22、および基準位置P23を3D再構成装置1aに入力する。実際には、被写体SB20の形状情報が示す3D形状上の基準位置がユーザーによって指定される。あるいは、補正区間設定部106は、被写体SB20の形状情報に基づいて基準位置P20、基準位置P21、基準位置P22、および基準位置P23を検出する。
【0103】
補正区間設定部106は、基準位置P20からP23に基づいて、補正区間CS20、補正区間CS21、および補正区間CS22を設定する。補正区間CS20は、基準位置P20から基準位置P21までの被写体SB20の部分を含む。補正区間CS21は、基準位置P21から基準位置P22までの被写体SB20の部分を含む。補正区間CS22は、基準位置P22から基準位置P23までの被写体SB20の部分を含む。
【0104】
ステップS110の後、補正係数算出部102は、補正区間設定部106によって設定された2つ以上の補正区間の各々における被写体のサイズの目標値を設定する(ステップS111)。
【0105】
ユーザーは、入力装置2が有するユーザーインターフェースを経由して目標値を3D再構成装置1aに入力する。あるいは、予め用意された目標値が使用されてもよい。例えば、補正係数算出部102は、被写体の3D形状に基づいて被写体の種類を検出する。被写体の種類ごとに目標値が予め用意されている。補正係数算出部102は、検出された種類の目標値を使用する。
図18に示す例では、補正区間CS20の目標値および補正区間CS22の目標値は同じである。補正区間CS21の目標値は、補正区間CS20の目標値および補正区間CS22の目標値と異なる。
【0106】
ステップS111の後、ステップS102が実行される。例えば、補正係数算出部102は、ステップS102において、所定のサイズStとカメラ位置iにおけるサイズSiとの比(St/Si)を算出する。各補正区間の目標値がサイズStとして使用される。補正係数算出部102は、第1の実施形態における処理と同様の処理を実行することにより補正係数を算出する。
【0107】
図19は、3D再構成装置1aによって復元された3D形状の例を示す。
図19に示す被写体SB20は、
図18に示す被写体SB20と同じである。カメラは、被写体SB20の左端から被写体SB20の右端に向かって移動する。
【0108】
図19における3D形状3D20は、3D再構成装置1aに入力された形状情報によって示される。つまり、3D形状3D20は、カメラ位置補正部103によって補正されていないカメラ位置を使用することにより復元される。
【0109】
図19における3D形状3D21は、3D形状復元部104によって生成された形状情報によって示される。つまり、3D形状3D21は、カメラ位置補正部103によって補正されたカメラ位置を使用することにより復元される。
【0110】
3D形状3D21は、
図17に示す処理を通して復元される。補正係数算出部102は、補正区間ごとに設定された目標値をサイズStとして使用することにより補正係数を算出する。
【0111】
3D形状3D20は、左側から右側に向かって徐々に細くかつ短くなる。3D形状3D20における各チーズの位置は、被写体SB20の各チーズの位置と大きく異なる。一方、3D形状3D21の長さおよび太さの変化は大きく抑制される。
【0112】
第2の実施形態において、補正区間設定部106は、被写体の3D形状上に2つ以上の補正区間を設定する。補正係数算出部102は、補正区間ごとに補正係数を算出する。3D再構成装置1aは、異なる大きさを持つ2つ以上の部分を含む被写体の3D形状の誤差を減らすことができる。
【0113】
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更が可能である。また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
【産業上の利用可能性】
【0114】
本発明の各実施形態によれば、3次元再構成装置、3次元再構成方法、およびプログラムは、被写体の3次元形状の誤差を減らすことができる。
【符号の説明】
【0115】
1,1a 3D再構成装置
2 入力装置
3 出力装置
10,10a 3D再構成部
11 記憶部
100 情報取得部
101 サイズ取得部
102 補正係数算出部
103 カメラ位置補正部
104 3D形状復元部
105 バンドル調整部
106 補正区間設定部