(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024100552
(43)【公開日】2024-07-26
(54)【発明の名称】デジタルツイン管理プログラム、デジタルツイン管理方法およびデジタルツイン管理装置
(51)【国際特許分類】
G06T 7/70 20170101AFI20240719BHJP
【FI】
G06T7/70 Z
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023004638
(22)【出願日】2023-01-16
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】茂木 厚憲
(72)【発明者】
【氏名】平井 由樹雄
(72)【発明者】
【氏名】鈴木 源太
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA02
5L096CA02
5L096DA02
5L096EA14
5L096FA03
5L096FA66
5L096FA67
5L096FA69
5L096HA11
(57)【要約】
【課題】デジタルツインを利用して物理空間に存在している物を仮想空間に適切に表現すること。
【解決手段】デジタルツイン管理装置は、カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得する。デジタルツイン管理装置は、仮想空間における物体の形成を規定した3次元の設計データを取得する。デジタルツイン管理装置は、2次元の映像での物体に対する、3次元の設計データでの物体の位置および姿勢を設定する。デジタルツイン管理装置は、設定された位置および姿勢の特徴量に基づいて、デジタルツインにおける物理空間と仮想空間との対応関係を規定した設定情報を生成する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得し、
仮想空間における物体の形成を規定した3次元の設計データを取得し、
前記2次元の映像での物体に対する、前記3次元の設計データでの物体の位置および姿勢を設定し、
設定された前記位置および前記姿勢の特徴量に基づいて、デジタルツインにおける前記物理空間と前記仮想空間との対応関係を規定した設定情報を生成する
処理をコンピュータに実行させることを特徴とするデジタルツイン管理プログラム。
【請求項2】
前記設定情報を生成する処理は、設定された前記位置および前記姿勢の特徴量に基づいて、前記カメラ装置のカメラパラメータを設定し、
設定された前記カメラパラメータに基づいて、前記デジタルツインにおける、前記物理空間と前記仮想空間との対応関係を規定した前記設定情報を生成することを特徴とする請求項1に記載のデジタルツイン管理プログラム。
【請求項3】
前記2次元の映像に含まれる撮影画像から抽出された物体の第一のエッジ線と、前記3次元の設計データでの物体の第二のエッジ線とを、選択可能な状態で表示し、
重ね合わせる対象の前記第一のエッジ線と、前記第二のエッジ線とのペアを示す選択指示を受け付け、
前記第一のエッジ線と前記第二のエッジ線とのペアの重ね合わせ操作が実行された後に、前記重ね合わせる対象の前記第一のエッジ線と前記第二のエッジ線との間の角度または距離に基づいて、前記カメラ装置のカメラパラメータを更新する処理を更にコンピュータに実行させることを特徴とする請求項1に記載のデジタルツイン管理プログラム。
【請求項4】
前記第一のエッジ線と前記第二のエッジ線とに対して、回転方向または焦点距離の操作を要求する指示を表示し、前記回転方向または前記焦点距離の操作によって、前記第一のエッジ線と前記第二のエッジ線とのなす角が閾値未満になった場合に、前記第一のエッジ線と前記第二のエッジ線とに対して、並進移動の操作を要求する指示を表示する処理を更にコンピュータに実行させることを特徴とする請求項3に記載のデジタルツイン管理プログラム。
【請求項5】
前記第一のエッジ線と前記第二のエッジ線との誤差を算出し、前記誤差が小さくなるように、前記第一のエッジ線と前記第二のエッジ線とを重ね合わせる処理を更にコンピュータに実行させることを特徴とする請求項3に記載のデジタルツイン管理プログラム。
【請求項6】
前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる物体を抽出し、
撮影された前記映像を分析することで、抽出した前記物体の前記物理空間上の位置を特定し、
前記設定情報を基にして、特定した前記物体の前記物理空間上の位置を、前記仮想空間上の位置に変換し、
変換された前記仮想空間上の位置に基づいて、前記仮想空間に物体のオブジェクトを配置する処理を更にコンピュータに実行させることを特徴とする請求項1に記載のデジタルツイン管理プログラム。
【請求項7】
前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる人物を抽出し、
撮影された前記映像を分析することで、抽出した前記人物の骨格情報を生成し、
生成した前記骨格情報に含まれる関節の位置を特定し、
前記設定情報を基にして、特定した前記関節の位置を、前記仮想空間上の関節の位置に変換し、
変換された前記仮想空間上の関節の位置に基づいて、前記仮想空間に人物のアバターを配置する処理を更にコンピュータに実行させることを特徴とする請求項1に記載のデジタルツイン管理プログラム。
【請求項8】
カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得し、
仮想空間における物体の形成を規定した3次元の設計データを取得し、
前記2次元の映像での物体に対する、前記3次元の設計データでの物体の位置および姿勢を設定し、
設定された前記位置および前記姿勢の特徴量に基づいて、デジタルツインにおける前記物理空間と前記仮想空間との対応関係を規定した設定情報を生成する
処理をコンピュータが実行することを特徴とするデジタルツイン管理方法。
【請求項9】
カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得し、
仮想空間における物体の形成を規定した3次元の設計データを取得し、
前記2次元の映像での物体に対する、前記3次元の設計データでの物体の位置および姿勢を設定し、
設定された前記位置および前記姿勢の特徴量に基づいて、デジタルツインにおける前記物理空間と前記仮想空間との対応関係を規定した設定情報を生成する
処理を実行する制御部を有するデジタルツイン管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルツイン管理プログラム等に関する。
【背景技術】
【0002】
現実世界の物理空間に存在している物体を、仮想空間で表現するための技術として、デジタルツイン(Digital Twin)と呼ばれる技術がある。たとえば、デジタルツインでは、IoT(Internet of Things)等を活用して、実際に動いている工場の生産ラインや設備等からデータをリアルタイムに収集し、各種のシミュレーションを実行する。仮想空間におけるシミュレーション結果を、現場に通知し、現場の状況を仮想空間にフィードバックする処理を繰り返し実行することで、生産効率を向上させたり、発生し得る事故等を未然に防止したりすることができる。
【0003】
ここで、物理空間に存在している物を、仮想空間で表現するために、物理空間の画像を撮影するカメラのパラメータが用いられる。以下の説明では、カメラのパラメータを、「カメラパラメータ」と表記する。カメラパラメータを推定する技術として、
図12で説明する従来技術1がある。
【0004】
図12は、従来技術1を説明するための図である。
図12に示すように、従来技術1では、単眼のカメラで撮影した画像Im1を分析することで、環境上の物体から複数の特徴線を検出し、消失点p1を特定する。従来技術1では、消失点p1を基にして、カメラパラメータを推定する。
【0005】
図13および
図14は、推定したカメラパラメータを用いて3Dモデルを画像に重畳表示させた例を示す図である。たとえば、3Dモデルは、CAD(Computer-Aided Design)データを基に生成される。たとえば、カメラパラメータが正しい値である場合には、
図13の画像Im2に示すように、3DモデルMo1の各主要な稜線と、環境上の物体の各主要なエッジとが一致する。
【0006】
一方、カメラパラメータが正しい値でない場合には、
図14の画像Im3に示すように、3DモデルMo1の各主要な稜線と、環境上の物体の各不要なエッジとが一致しない。
【0007】
図14に示したように、3DモデルMo1の各主要な稜線と、環境上の物体の各不要なエッジとが一致しない場合には、ユーザが、手動でカメラパラメータを調整している。従来技術2では、3DモデルMo1の各主要な稜線と、環境上の物体の各不要なエッジとが一致するように、カメラパラメータの一部を調整することで、最終的なカメラパラメータを特定している。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述した従来技術1では、既知の基準物体ではなく、環境上の物体から特徴線を抽出するため、現場の煩雑さの影響を受けやすく、カメラパラメータの精度が低下する場合がある。
上述した従来技術2では、カメラパラメータの一部を調整しているが、調整対象が増えると、3Dモデルの各主要な稜線と、環境上の物体の各不要なエッジとを合わせることが難しく、カメラパラメータを適切に設定することができていない。
【0010】
このため、従来技術では、デジタルツインを利用して物理空間に存在している物を仮想空間に適切に表現することができないという問題がある。
【0011】
1つの側面では、本発明は、デジタルツインを利用して物理空間に存在している物を仮想空間に適切に表現することができるデジタルツイン管理プログラム、デジタルツイン管理方法およびデジタルツイン管理装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得する。コンピュータは、仮想空間における物体の形成を規定した3次元の設計データを取得する。コンピュータは、2次元の映像での物体に対する、3次元の設計データでの物体の位置および姿勢を設定する。コンピュータは、設定された位置および姿勢の特徴量に基づいて、デジタルツインにおける物理空間と仮想空間との対応関係を規定した設定情報を生成する。
【発明の効果】
【0013】
デジタルツインを利用して物理空間に存在している物を仮想空間に適切に表現することができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、本実施例に係るシステムを示す図である。
【
図2】
図2は、本実施例に係るデジタルツイン管理装置の処理手順を示すフローチャートである。
【
図3】
図3は、3次元CADモデルの一例を示す図である。
【
図4】
図4は、デジタルツイン管理装置が実行する位置合わせ処理の一例を説明するための図である。
【
図5】
図5は、合わせこみの過程の一例を示す図である。
【
図6】
図6は、本実施例に係るデジタルツイン管理装置の構成を示す機能ブロック図である。
【
図7】
図7は、CADデータのデータ構造の一例を示す図である。
【
図8】
図8は、人体モデルの一例について説明する図である。
【
図10】
図10は、位置合わせ処理部の処理を説明するための図である。
【
図11】
図11は、実施例のデジタルツイン管理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図13】
図13は、推定したカメラパラメータを用いて3Dモデルを画像に重畳表示させた例を示す図(1)である。
【
図14】
図14は、推定したカメラパラメータを用いて3Dモデルを画像に重畳表示させた例を示す図(2)である。
【発明を実施するための形態】
【0015】
以下に、本願の開示するデジタルツイン管理プログラム、デジタルツイン管理方法およびデジタルツイン管理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例0016】
本実施例に係るシステムの一例について説明する。
図1は、本実施例に係るシステムを示す図である。たとえば、本実施例のシステムは、カメラ10と、デジタルツイン管理装置100とを有する。カメラ10と、デジタルツイン管理装置100とは、ネットワークを介して相互に接続される。
図1では、カメラ10のみを示すが、本実施例に係るシステムは、更に他のカメラを有していてもよい。
【0017】
カメラ10は、工場内の所定の位置に設置される。たとえば、工場内には様々な機器が設置される。カメラ10は、工場内の画像(映像)を撮影し、撮影した画像のデータを、デジタルツイン管理装置100に送信する。以下の説明では、画像のデータを「画像データ」と表記する。画像データには、画像データを撮影したカメラ10を識別するカメラ識別情報が付与される。以下の説明では、画像データを用いるが、映像のデータであってもよい。映像のデータは、時系列の画像データを含む情報である。
【0018】
デジタルツイン管理装置100は、デジタルツインの技術を利用して、工場等の物理空間に存在している物体を、仮想空間で表現するための「設定情報」を、下記の処理を実行することで生成する。
【0019】
図2は、本実施例に係るデジタルツイン管理装置の処理手順を示すフローチャートである。
図2に示すように、デジタルツイン管理装置100は、カメラ10から画像データを取得する(ステップS101)。デジタルツイン管理装置100は、画像データから2次元の特徴線を抽出する(ステップS102)。
【0020】
デジタルツイン管理装置100は、2次元の特徴線を基にして、カメラパラメータを推定する(ステップS103)。カメラパラメータは、内部パラメータおよび外部パラメータに対応する。たとえば、カメラパラメータには、焦点距離f、回転R(回転行列R)、並進T(並進ベクトルT)が含まれる。
【0021】
デジタルツイン管理装置100は、3次元CADモデルを読み込み、3次元CADモデルの稜線を検出する(ステップS104)。デジタルツイン管理装置100は、カメラパラメータを基にして、稜線を画像データ上に投影する(ステップS105)。
【0022】
デジタルツイン管理装置100は、画像データ上の特徴線と、投影された稜線とペアの選択を受け付ける(ステップS106)。デジタルツイン管理装置100は、位置合わせ処理を実行する(ステップS107)。デジタルツイン管理装置100は、位置合わせ後のカメラパラメータと、カメラ識別情報とを対応付けた設定情報を生成する(ステップS108)。
【0023】
図2のステップS104で読み込まれる3次元CADモデルの一例を
図3に示す。
図3は、3次元CADモデルの一例を示す図である。3次元CADモデルMo2は、仮想空間における物体の形成を規定した情報である。本実施例では、仮想空間における物体を、工場の機器等に対応する物体とする。3次元CADモデルMo2の外形特徴を示す線が「稜線」となり、係る稜線が画像データ上に投影される。
【0024】
続いて、
図2のステップS107に示した位置合わせ処理の一例についてより具体的に説明する。
図4は、デジタルツイン管理装置が実行する位置合わせ処理の一例を説明するための図である。デジタルツイン管理装置100は、位置合わせの方法を提示するための画面情報30を生成し、画面情報30を、表示部に表示させる。ユーザは、表示部に表示された画面情報30を参照し、入力部を操作して、位置合わせを手動で行う。
【0025】
デジタルツイン管理装置100は、画面情報30において、稜線群31を画像データ上に配置する。稜線群31は、3次元CADモデルMo2の各稜線を、画像データ上に射影した線群である。デジタルツイン管理装置100は、稜線群31に含まれる複数の稜線のうち、特徴線とペアとなる稜線を、強調表示する。特徴線と稜線とのペアは、ステップ106で指定される。
【0026】
図4で示す例では、特徴線32aと稜線31aとがペアとなり、強調表示される。また特徴線32bと稜線31bとがペアとなり、強調表示される。
【0027】
手動での合わせこみを行う手順は、以下の手順1~手順4の順となる。合わせこみの対象は、強調表示させた特徴線32aと稜線31aとのペア、または、強調表示させた特徴線32bと稜線31bとのペアとなる。
【0028】
手順1:カメラパラメータRを変更し、回転方向の合わせこみ
手順2:カメラパラメータfを変更し、焦点距離の合わせこみ
手順3:カメラパラメータTを変更し、左右並進移動による合わせこみ
手順4:カメラパラメータTを変更し、奥行並進移動による合わせこみ
【0029】
合わせこみの手順を、上記の手順1~手順4の順で行うことで、手順を後戻りさせることなく、効率的に、特徴線と稜線とのペアを合わせこむことが可能となる。たとえば、焦点距離を操作した場合の稜線群の変化と、奥行並進移動を行った場合の稜線群の変化とが極めて類似しているが、ペアの線分を並行に合わせるための操作は、焦点距離の操作に依存する。効率的に合わせこみを行う場合には、焦点距離が決定した後に、並進移動を行った方がよい。デジタルツイン管理装置100は、ユーザが手順1~手順4の順で、合わせこみを行えるように、ペアとなる特徴線と稜線との関係を基にして、ユーザの操作を補助する情報を、画面情報30に表示させる。
【0030】
図5は、合わせこみの過程の一例を示す図である。
図5の説明では、強調表示の図示を省略するが、ペアとなる特徴線と稜線とが強調表示された状態で、画面情報30に表示されているものとする。
【0031】
図5のステップS10について説明する。デジタルツイン管理装置100は、ユーザに手順1を実行させるべく、補助情報35aを表示させる。たとえば、補助情報35aには「ペアの線同士の角度がずれています。回転方向を合わせてください。」なるテキストが含まれる。ユーザは、入力部を操作して、回転方向の合わせこみを行う。デジタルツイン管理装置100は、ユーザの回転方向の操作を受け付けると、回転方向の操作に応じて、カメラパラメータの回転Rの値を変化させ、変化させたカメラパラメータによって、稜線群を画面情報30上に表示させる。デジタルツイン管理装置100は、回転方向の操作を受け付ける度に、上記処理を繰り返し実行する。
【0032】
ステップS11について説明する。デジタルツイン管理装置100は、ユーザに手順2を実行させるべく、補助情報35bを表示させる。たとえば、補助情報35bには「ペアの線同士の角度がずれています。軸の向きを合わせて、その後線分が並行になるように焦点距離を合わせて下さい。」なるテキストが含まれる。ユーザは、入力部を操作して、焦点方向の合わせこみを行う。デジタルツイン管理装置100は、ユーザの焦点距離の操作を受け付けると、焦点距離の操作に応じて、カメラパラメータの焦点距離fの値を変化させ、変化させたカメラパラメータによって、稜線群を画面情報30上に表示させる。
【0033】
デジタルツイン管理装置100は、ペアとなる稜線と特徴線とのなす角が閾値未満となった場合に、ステップS12の処理に移行する。デジタルツイン管理装置100は、ペアとなる稜線と特徴線とのなす角が閾値未満となるまで、並進方向の操作を抑止してもよい。たとえば、デジタルツイン管理装置100は、並進方向の操作を受け付けた場合に、並進方向の操作を無効とし、補助情報35b等を再度表示してもよい。
【0034】
ステップS12について説明する。デジタルツイン管理装置100は、ユーザに手順3、手順4を実行させるべく、補助情報35cを表示させる。たとえば、補助情報35cには「ペアの線同士の距離がずれています。CADの原点を2D画像上の装置の原点に合わせ、左右または奥行方向を調整して大きさを合わせて下さい。」なるテキストが含まれる。ユーザは、入力部を操作して、左右並進移動および奥行並進移動によって、合わせこみを行う。デジタルツイン管理装置100は、ユーザの左右並進移動および奥行並進移動の操作を受け付けると、左右並進移動および奥行並進移動の操作に応じて、カメラパラメータの並進Tの値を変化させ、変化させたカメラパラメータによって、稜線群を画面情報30上に表示させる。
【0035】
デジタルツイン管理装置100は、ペアとなる稜線と特徴線との距離が閾値未満となった場合に、ステップS13の処理に移行する。
【0036】
ステップS13について説明する。デジタルツイン管理装置100は、補助情報35dを表示させる。補助情報35dには「ペアの線同士の角度および位置が一致しました。」なるテキストが含まれる。ステップS13の時点におけるカメラパラメータが、手動での合わせこみによって最終的に決定されるカメラパラメータとなる。
【0037】
ステップS10~ステップS13で説明したように、デジタルツイン管理装置100は、ユーザの合わせこみによって変化する稜線群であって、3次元CADデータに対応する稜線群の位置および姿勢の特徴量に基づいて、カメラパラメータを設定する。デジタルツイン管理装置100は、設定したカメラパラメータと、カメラ識別情報とを対応付けた設定情報を生成する。これによって、設定情報を適切に設定でき、かかる設定情報を利用することで、デジタルツインを利用して物理空間に存在している物を仮想空間に適切に表現することができる。
【0038】
次に、上述した処理を実行するデジタルツイン管理装置100の構成例について説明する。
図6は、本実施例に係るデジタルツイン管理装置の構成を示す機能ブロック図である。
図6に示すように、このデジタルツイン管理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0039】
通信部110は、ネットワークを介して、カメラ10、外部装置等との間でデータ通信を実行する。通信部110は、NIC(Network Interface Card)等である。たとえば、通信部110は、カメラ10から、画像データを受信する。
【0040】
入力部120は、デジタルツイン管理装置100の制御部150に各種の情報を入力する入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。ユーザは、入力部120を操作して、
図5で説明した、特徴線と稜線との合わせこみに関する各種の操作を行う。
【0041】
表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、
図4、
図5で示した画面情報30を表示する。
【0042】
記憶部140は、映像バッファ141、CADデータ142、3次元CADモデル143、カメラパラメータ144、設定情報145を有する。記憶部140は、メモリなどの記憶装置である。
【0043】
映像バッファ141は、カメラ10が撮影した画像データを保持する。たとえば、映像バッファ141は、カメラ識別情報に対応付けて、画像データを保持する。
【0044】
CADデータ142は、立体構造物の3次元CADモデル143を表すモデル情報である。
図7は、CADデータのデータ構造の一例を示す図である。
図7に示すように、CADデータ142は、直線識別情報と、始点座標と、終点座標とを対応付ける。直線識別情報は、3次元CADモデル143の直線(辺)を識別する情報である。始点座標は、直線識別情報によって識別される直線の始点の3次元座標である。終点座標は、直線識別情報によって識別される直線の終点の3次元座標である。
【0045】
3次元CADモデル143は、CADデータ142に基づいて生成されるモデルである。たとえば、3次元CADモデル143は、
図3で説明した3次元CADモデルMo2に対応する。
【0046】
カメラパラメータ144は、カメラ10の外部パラメータおよび内部パラメータに対し、焦点距離f、回転R、並進Tを含む。カメラパラメータ144の初期値は、
図2のステップS105で求められる。また、カメラパラメータ144は、
図2のステップS107で説明した位置合わせ処理によって、更新される。
【0047】
設定情報145は、各カメラのカメラパラメータを有する。たとえば、設定情報145は、カメラ識別情報と、カメラパラメータとを対応付けた情報を保持する。
【0048】
制御部150は、取得部151と、特徴線抽出部152と、パラメータ推定部153と、3次元線分抽出部154と、表示制御部155と、物体配置処理部156と、人物配置処理部157と、位置合わせ処理部158とを有する。制御部150は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等である。
【0049】
取得部151は、カメラ10から画像データを取得する。画像データには、画像データを撮影したカメラ10のカメラ識別情報が設定されている。取得部151は、カメラ識別情報に対応付けて、画像データを映像バッファ141に格納する。
【0050】
特徴線抽出部152は、映像バッファから画像データを取得し、画像データに含まれる特徴線を抽出する。特徴線は、画像データの2次元のエッジ線である。たとえば、特徴線抽出部152は、従来文献「R.G. von Gioi et al., LSD: a Line Segment Detector, IPOL, 2, (2012)」に記載された技術を基にして、特徴線を抽出してもよい。
【0051】
特徴線抽出部152は、特徴線の抽出結果を、パラメータ推定部153および表示制御部155に出力する。
【0052】
パラメータ推定部153は、特徴線の抽出結果を基にして消失点を特定し、消失点を基にして、カメラパラメータを推定する。たとえば、パラメータ推定部153は、従来文献「R. Orghidan et al., Camera calibration using two or three vanishing points, In Proc. Of the Federated Conference on Computer Science and Information Systems pp. 123-130.」に記載された技術を基にして、カメラパラメータを推定してもよい。
【0053】
パラメータ推定部153は、推定結果となるカメラパラメータ144を、記憶部140に登録する。なお、パラメータ推定部153は、カメラパラメータ144に含まれる焦点距離f、回転R、並進Tのうち、回転Rおよび並進Tは、予め準備された標準値を設定し、焦点距離fのみを、消失点を用いて推定してもよい。
【0054】
3次元線分抽出部154は、CADデータ142を基にして、3次元CADモデル143を生成し、3次元CADモデル143から複数の稜線を抽出する。各稜線は、3次元CADモデル143の外形特徴を示す3次元の線である。3次元線分抽出部154は、各稜線の情報を、表示制御部155に出力する。
【0055】
表示制御部155は、映像バッファ141から画像データを取得し、カメラパラメータ144を基にして、複数の稜線を、画像データ上に射影することで、画面情報を生成する。表示制御部155が生成する画面情報は、
図5に示した画面情報である。
【0056】
表示制御部155は、
図5で説明した位置合わせ処理を実行することで、ユーザに手順1~手順4の合わせこみを行わせ、カメラパラメータ144を更新する。ペアとなる稜線と特徴線との組は、事前に設定されているものとする。たとえば、表示制御部155は、画像データから抽出された物体の特徴線と、3次元CADモデル143の稜線とを、選択可能な状態で表示し、重ね合わせる対象の特徴線と、稜線とのペアを示す選択指示を受け付ける。
【0057】
表示制御部155は、位置合わせ処理が完了した場合に、該当するカメラ10のカメラ識別情報と、カメラパラメータ144とを対応付けて、設定情報145に登録する。表示制御部155は、カメラが複数存在する場合には、カメラ毎に上記処理を繰り返し実行し、カメラ識別情報と、カメラパラメータ144とを対応付けて、設定情報145に登録する。
【0058】
物体配置処理部156は、画像データに含まれる物理空間の物体を、仮想空間に配置する処理を行う。たとえば、物体配置処理部156は、カメラ10が撮影した画像データを取得し、画像データを、第一機械学習モデルに入力することで、画像データに含まれる物体の領域を抽出する。第一機械学習モデルは、入力を画像データ、出力を物体の領域とするNN(Neural Network)である。第一機械学習モデルを、訓練済みの機械学習モデルとする。
【0059】
物体配置処理部156は、設定情報145から、カメラ10のカメラ識別情報に対応するカメラパラメータを取得する。物体配置処理部156は、取得したカメラパラメータを基にして、画像データ上の物体の位置に対応する、仮想空間上の位置を特定する。物体配置処理部156は、特定した仮想空間上の位置に、画像データ上の物体に対応する3次元のオブジェクトを配置する。
【0060】
たとえば、物体配置処理部156は、画像データに含まれる物体の領域の画像を、第二機械学習モデルに入力することで、3次元のオブジェクトを生成する。第二機械学習モデルは、入力を物体の領域の画像データ、出力を3次元のオブジェクトとするNNである。第二機械学習モデルを、訓練済みの機械学習モデルとする。
【0061】
物体配置処理部156は、カメラ10以外のカメラが撮影した画像データに対しても、上記処理を実行することで、画像データに含まれる物理空間の物体を、仮想空間に配置する。
【0062】
人物配置処理部157は、画像データに含まれる物理空間の人物を、仮想空間にアバターとして配置する処理を行う。たとえば、人物配置処理部157は、カメラ10が撮影した画像データを取得し、画像データを、第三機械学習モデルに入力することで、画像データに含まれる人物の領域を抽出する。第三機械学習モデルは、入力を画像データ、出力を人物の領域とするNN(Neural Network)である。第三機械学習モデルを、訓練済みの機械学習モデルとする。
【0063】
人物配置処理部157は、人物の領域の画像を、第四機械学習モデルに入力することで、人物の骨格情報を生成する。骨格情報は、人体モデルで定義された複数の関節に対して、2次元または3次元の座標が設定された情報である。本実施例では、骨格情報は、複数の関節に対して、2次元の座標が設定されているものとする。
【0064】
図8は、人体モデルの一例について説明する図である。
図8に示すように、人体モデルは、21個の関節ar0~ar20によって定義される。
【0065】
図8に示す各関節ar0~ar20と、関節名との関係は、
図9に示すものとなる。
図9は、関節名の一例を示す図である。たとえば、関節ar0の関節名は「SPINE_BASE」である。関節ar1~a20の関節名は、
図9に示すとおりであり、説明を省略する。
【0066】
第四機械学習モデルは、入力を人物の領域の画像データとし、出力を骨格情報とするNNである。第四機械学習モデルを、訓練済みの機械学習モデルとする。
【0067】
人物配置処理部157は、設定情報145から、カメラ10のカメラ識別情報に対応するカメラパラメータを取得する。人物配置処理部157は、取得したカメラパラメータを基にして、画像データ上の骨格情報の各関節の位置に対する、仮想空間上の各位置を特定する。人物配置処理部157は、特定した仮想空間上の位置に、画像データ上の人物に対応する3次元のアバターを配置する。人物配置処理部157は、アバターを配置する場合に、仮想空間上の各関節の位置に、アバターの各関節の位置を合わせて配置する。
【0068】
たとえば、人物配置処理部157は、画像データに含まれる人物の領域の画像、骨格情報を第五機械学習モデルに入力することで、3次元のアバターを生成する。第五機械学習モデルは、入力を人物の領域の画像データおよび骨格情報、出力を3次元のアバターとするNNである。第五機械学習モデルを、訓練済みの機械学習モデルとする。
【0069】
ここでは、人物配置処理部157は、第5機械学習モデルを用いて、3次元のアバターを生成する場合について説明したが、予め準備した、3次元のアバターを用いてもよい。
【0070】
位置合わせ処理部158は、
図4、
図5で説明したユーザが実行する手動の位置合わせを補助する処理を行う。位置合わせ処理部158は、ペアとなる特徴線上と、稜線上との誤差を算出する。位置合わせ処理部158は、誤差が小さくなるように、カメラパラメータ144を更新する。たとえば、ユーザは、入力部120を操作して、自動位置合わせ依頼を入力する。
【0071】
図10は、位置合わせ処理部の処理を説明するための図である。ここでは、画像データ上の特徴線32cと、カメラパラメータ144に基づいて、画面データ上に射影された稜線31cとを用いて説明する。位置合わせ処理部158は、稜線31c上に等間隔で、複数のサンプル点33a,33b,33c,33d,33eを設定する。
【0072】
位置合わせ処理部158は、サンプル点33a~33eから、特徴線32aに対して垂線34a,34b,34c,34d,34eを設定する。位置合わせ処理部158は、垂線34a~34eの長さ(誤差)の和を算出する。位置合わせ処理部158は、算出した誤差の和が小さくなるように、カメラパラメータ144のf、R、Tを補正する。たとえば、位置合わせ処理部158は、Levenberg-Marquardt法を用いて、垂線34a~34eの長さ(誤差)の和が最小化するように、カメラパラメータ144のf、R、Tを補正する。位置合わせ処理部158は、垂線34a~34eの長さ(誤差)の和が、所定値未満となるまで、上記処理を繰り返し実行する。
【0073】
位置合わせ処理部158は、Levenberg-Marquardt法として、「R. Hartley and A. Zisserman. Multiple View Geometry In Computer Vision. Cambridge University Press, second edition, 2003.」に記載された内容の処理を実行してもよい。
【0074】
次に、本実施例に係るデジタルツイン管理装置100の効果について説明する。デジタルツイン管理装置100は、ユーザの合わせこみによって変化する稜線群であって、3次元CADデータに対応する稜線群の位置および姿勢の特徴量に基づいて、カメラパラメータ144を設定する。デジタルツイン管理装置100は、設定したカメラパラメータ144と、カメラ識別情報とを対応付けた設定情報145を生成する。これによって、設定情報145を適切に設定でき、かかる設定情報を利用することで、デジタルツインを利用して物理空間に存在している物を仮想空間に適切に表現することができる。
【0075】
デジタルツイン管理装置100は、画像データから抽出された物体の特徴線と、3次元CADモデル143の稜線とを、選択可能な状態で表示し、重ね合わせる対象の特徴線と、稜線とのペアを示す選択指示を受け付ける。デジタルツイン管理装置100は、特徴線と稜線とのペアの重ね合わせ操作が実行された後に、重ね合わせる対象の特徴線と稜線との間の角度または距離に基づいて、カメラパラメータ144を更新する。これによって、カメラ10のカメラパラメータ144を精度よく特定することができる。
【0076】
デジタルツイン管理装置100は、特徴線と稜線とに対して、回転方向または焦点距離の操作を要求する指示を表示する。デジタルツイン管理装置100は、回転方向または焦点距離の操作によって、特徴線と稜線とのなす角が閾値未満になった場合に、特徴線と稜線とに対して、並進移動の操作を要求する指示を表示する。これによって、正しい手順で、ユーザに画面操作を行わせることができる。
【0077】
デジタルツイン管理装置100は、特徴線と稜線との誤差を算出し、誤差が小さくなるように、特徴線と稜線とを重ね合わせる。これによって、位置合わせを行うユーザの負荷を軽減させることができる。また、手動の合わせこみと比較して、合わせこみの精度を向上させることができ、カメラパラメータ144の精度を向上させることができる。
【0078】
デジタルツイン管理装置100は、設定情報145を基にして、画像データに含まれる物理空間の物体を、仮想空間に配置する処理を行う。また、デジタルツイン管理装置100は、設定情報145を基にして、画像データに含まれる物理空間の人物を、仮想空間に配置する処理を行う。これによって、物理空間の物体および人物を、仮想空間上に再現することができる。
【0079】
次に、上述したデジタルツイン管理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図11は、実施例のデジタルツイン管理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0080】
図11に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行う通信装置304と、インタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0081】
ハードディスク装置307は、取得プログラム307a、特徴線抽出プログラム307b、パラメータ推定プログラム307c、3次元線分抽出プログラム307dを有する。ハードディスク装置307は、表示制御プログラム307e、物体配置処理プログラム307f、人物配置処理プログラム307g、位置合わせ処理プログラム307hを有する。また、CPU301は、各プログラム307a~307hを読み出してRAM306に展開する。
【0082】
取得プログラム307aは、取得プロセス306aとして機能する。特徴線抽出プログラム307bは、特徴線抽出プロセス306bとして機能する。パラメータ推定プログラム307cは、パラメータ推定プロセス306cとして機能する。3次元線分抽出プログラム307dは、3次元線分抽出プロセス306dとして機能する。表示制御プログラム307eは、表示制御プロセス306eとして機能する。物体配置処理プログラム307fは、物体配置処理プロセス306fとして機能する。人物配置処理プログラム307gは、人物配置処理プロセス306gとして機能する。位置合わせ処理プログラム307hは、位置合わせ処理プロセス306hとして機能する。
【0083】
取得プロセス306aの処理は、取得部151の処理に対応する。特徴線抽出プロセス306bの処理は、特徴線抽出部152の処理に対応する。パラメータ推定プロセス306cの処理は、パラメータ推定部153の処理に対応する。3次元線分抽出プロセス306dの処理は、3次元線分抽出部154の処理に対応する。表示制御プロセス306eの処理は、表示制御部155の処理に対応する。物体配置処理プロセス306fの処理は、物体配置処理部156の処理に対応する。人物配置処理プロセス306の処理は、人物配置処理部157の処理に対応する。位置合わせ処理プロセス306hの処理は、位置合わせ処理部158の処理に対応する。
【0084】
なお、各プログラム307a~307hについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307hを読み出して実行するようにしてもよい。
【0085】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0086】
(付記1)カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得し、
仮想空間における物体の形成を規定した3次元の設計データを取得し、
前記2次元の映像での物体に対する、前記3次元の設計データでの物体の位置および姿勢を設定し、
設定された前記位置および前記姿勢の特徴量に基づいて、デジタルツインにおける前記物理空間と前記仮想空間との対応関係を規定した設定情報を生成する
処理をコンピュータに実行させることを特徴とするデジタルツイン管理プログラム。
【0087】
(付記2)前記設定情報を生成する処理は、設定された前記位置および前記姿勢の特徴量に基づいて、前記カメラ装置のカメラパラメータを設定し、
設定された前記カメラパラメータに基づいて、前記デジタルツインにおける、前記物理空間と前記仮想空間との対応関係を規定した前記設定情報を生成することを特徴とする付記1に記載のデジタルツイン管理プログラム。
【0088】
(付記3)前記2次元の映像に含まれる撮影画像から抽出された物体の第一のエッジ線と、前記3次元の設計データでの物体の第二のエッジ線とを、選択可能な状態で表示し、
重ね合わせる対象の前記第一のエッジ線と、前記第二のエッジ線とのペアを示す選択指示を受け付け、
前記第一のエッジ線と前記第二のエッジ線とのペアの重ね合わせ操作が実行された後に、前記重ね合わせる対象の前記第一のエッジ線と前記第二のエッジ線との間の角度または距離に基づいて、前記カメラ装置のカメラパラメータを更新する処理を更にコンピュータに実行させることを特徴とする付記1に記載のデジタルツイン管理プログラム。
【0089】
(付記4)前記第一のエッジ線と前記第二のエッジ線とに対して、回転方向または焦点距離の操作を要求する指示を表示し、前記回転方向または前記焦点距離の操作によって、前記第一のエッジ線と前記第二のエッジ線とのなす角が閾値未満になった場合に、前記第一のエッジ線と前記第二のエッジ線とに対して、並進移動の操作を要求する指示を表示する処理を更にコンピュータに実行させることを特徴とする付記3に記載のデジタルツイン管理プログラム。
【0090】
(付記5)前記第一のエッジ線と前記第二のエッジ線との誤差を算出し、前記誤差が小さくなるように、前記第一のエッジ線と前記第二のエッジ線とを重ね合わせる処理を更にコンピュータに実行させることを特徴とする付記3に記載のデジタルツイン管理プログラム。
【0091】
(付記6)前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる物体を抽出し、
撮影された前記映像を分析することで、抽出した前記物体の前記物理空間上の位置を特定し、
前記設定情報を基にして、特定した前記物体の前記物理空間上の位置を、前記仮想空間上の位置に変換し、
変換された前記仮想空間上の位置に基づいて、前記仮想空間に物体のオブジェクトを配置する処理を更にコンピュータに実行させることを特徴とする付記1に記載のデジタルツイン管理プログラム。
【0092】
(付記7)前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる人物を抽出し、
撮影された前記映像を分析することで、抽出した前記人物の骨格情報を生成し、
生成した前記骨格情報に含まれる関節の位置を特定し、
前記設定情報を基にして、特定した前記関節の位置を、前記仮想空間上の関節の位置に変換し、
変換された前記仮想空間上の関節の位置に基づいて、前記仮想空間に人物のアバターを配置する処理を更にコンピュータに実行させることを特徴とする付記1に記載のデジタルツイン管理プログラム。
【0093】
(付記8)カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得し、
仮想空間における物体の形成を規定した3次元の設計データを取得し、
前記2次元の映像での物体に対する、前記3次元の設計データでの物体の位置および姿勢を設定し、
設定された前記位置および前記姿勢の特徴量に基づいて、デジタルツインにおける前記物理空間と前記仮想空間との対応関係を規定した設定情報を生成する
処理をコンピュータが実行することを特徴とするデジタルツイン管理方法。
【0094】
(付記9)前記設定情報を生成する処理は、設定された前記位置および前記姿勢の特徴量に基づいて、前記カメラ装置のカメラパラメータを設定し、
設定された前記カメラパラメータに基づいて、前記デジタルツインにおける、前記物理空間と前記仮想空間との対応関係を規定した前記設定情報を生成することを特徴とする付記8に記載のデジタルツイン管理方法。
【0095】
(付記10)前記2次元の映像に含まれる撮影画像から抽出された物体の第一のエッジ線と、前記3次元の設計データでの物体の第二のエッジ線とを、選択可能な状態で表示し、
重ね合わせる対象の前記第一のエッジ線と、前記第二のエッジ線とのペアを示す選択指示を受け付け、
前記第一のエッジ線と前記第二のエッジ線とのペアの重ね合わせ操作が実行された後に、前記重ね合わせる対象の前記第一のエッジ線と前記第二のエッジ線との間の角度または距離に基づいて、前記カメラ装置のカメラパラメータを更新する処理を更にコンピュータが実行することを特徴とする付記8に記載のデジタルツイン管理方法。
【0096】
(付記11)前記第一のエッジ線と前記第二のエッジ線とに対して、回転方向または焦点距離の操作を要求する指示を表示し、前記回転方向または前記焦点距離の操作によって、前記第一のエッジ線と前記第二のエッジ線とのなす角が閾値未満になった場合に、前記第一のエッジ線と前記第二のエッジ線とに対して、並進移動の操作を要求する指示を表示する処理を更にコンピュータが実行することを特徴とする付記10に記載のデジタルツイン管理方法。
【0097】
(付記12)前記第一のエッジ線と前記第二のエッジ線との誤差を算出し、前記誤差が小さくなるように、前記第一のエッジ線と前記第二のエッジ線とを重ね合わせる処理を更にコンピュータが実行することを特徴とする付記10に記載のデジタルツイン管理方法。
【0098】
(付記13)前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる物体を抽出し、
撮影された前記映像を分析することで、抽出した前記物体の前記物理空間上の位置を特定し、
前記設定情報を基にして、特定した前記物体の前記物理空間上の位置を、前記仮想空間上の位置に変換し、
変換された前記仮想空間上の位置に基づいて、前記仮想空間に物体のオブジェクトを配置する処理を更にコンピュータに実行させることを特徴とする付記8に記載のデジタルツイン管理方法。
【0099】
(付記14)前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる人物を抽出し、
撮影された前記映像を分析することで、抽出した前記人物の骨格情報を生成し、
生成した前記骨格情報に含まれる関節の位置を特定し、
前記設定情報を基にして、特定した前記関節の位置を、前記仮想空間上の関節の位置に変換し、
変換された前記仮想空間上の関節の位置に基づいて、前記仮想空間に人物のアバターを配置する処理を更にコンピュータが実行することを特徴とする付記8に記載のデジタルツイン管理方法。
【0100】
(付記15)カメラ装置が撮影した、物体が物理空間に配置された2次元の映像を取得し、
仮想空間における物体の形成を規定した3次元の設計データを取得し、
前記2次元の映像での物体に対する、前記3次元の設計データでの物体の位置および姿勢を設定し、
設定された前記位置および前記姿勢の特徴量に基づいて、デジタルツインにおける前記物理空間と前記仮想空間との対応関係を規定した設定情報を生成する
処理を実行する制御部を有するデジタルツイン管理装置。
【0101】
(付記16)前記設定情報を生成する処理は、設定された前記位置および前記姿勢の特徴量に基づいて、前記カメラ装置のカメラパラメータを設定し、
設定された前記カメラパラメータに基づいて、前記デジタルツインにおける、前記物理空間と前記仮想空間との対応関係を規定した前記設定情報を生成することを特徴とする付記15に記載のデジタルツイン管理装置。
【0102】
(付記17)前記制御部は、前記2次元の映像に含まれる撮影画像から抽出された物体の第一のエッジ線と、前記3次元の設計データでの物体の第二のエッジ線とを、選択可能な状態で表示し、
重ね合わせる対象の前記第一のエッジ線と、前記第二のエッジ線とのペアを示す選択指示を受け付け、
前記第一のエッジ線と前記第二のエッジ線とのペアの重ね合わせ操作が実行された後に、前記重ね合わせる対象の前記第一のエッジ線と前記第二のエッジ線との間の角度または距離に基づいて、前記カメラ装置のカメラパラメータを更新する処理を更に実行することを特徴とする付記15に記載のデジタルツイン管理装置。
【0103】
(付記18)前記制御部は、前記第一のエッジ線と前記第二のエッジ線とに対して、回転方向または焦点距離の操作を要求する指示を表示し、前記回転方向または前記焦点距離の操作によって、前記第一のエッジ線と前記第二のエッジ線とのなす角が閾値未満になった場合に、前記第一のエッジ線と前記第二のエッジ線とに対して、並進移動の操作を要求する指示を表示する処理を更に実行することを特徴とする付記17に記載のデジタルツイン管理装置。
【0104】
(付記19)前記制御部は、前記第一のエッジ線と前記第二のエッジ線との誤差を算出し、前記誤差が小さくなるように、前記第一のエッジ線と前記第二のエッジ線とを重ね合わせる処理を更に実行することを特徴とする付記17に記載のデジタルツイン管理装置。
【0105】
(付記20)前記制御部は、前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる物体を抽出し、
撮影された前記映像を分析することで、抽出した前記物体の前記物理空間上の位置を特定し、
前記設定情報を基にして、特定した前記物体の前記物理空間上の位置を、前記仮想空間上の位置に変換し、
変換された前記仮想空間上の位置に基づいて、前記仮想空間に物体のオブジェクトを配置する処理を更に実行することを特徴とする付記15に記載のデジタルツイン管理装置。
【0106】
(付記21)前記制御部は、前記カメラ装置が撮影した映像の中から、前記物理空間に含まれる人物を抽出し、
撮影された前記映像を分析することで、抽出した前記人物の骨格情報を生成し、
生成した前記骨格情報に含まれる関節の位置を特定し、
前記設定情報を基にして、特定した前記関節の位置を、前記仮想空間上の関節の位置に変換し、
変換された前記仮想空間上の関節の位置に基づいて、前記仮想空間に人物のアバターを配置する処理を更に実行することを特徴とする付記15に記載のデジタルツイン管理装置。