<第1実施形態>
(1−1)寸法データ算出装置の構成
図1は本実施形態に係る寸法データ算出装置1020の構成を示す模式図である。
寸法データ算出装置1020は任意のコンピュータにより実現することができ、記憶部1021、入出力部1022、通信部1023、及び処理部1024を備える。なお、寸法データ算出装置1020は、LSI(Large Scale Integration),ASIC(Application Specific Integrated Circuit),FPGA(Field-Programmable Gate Array)などを用いてハードウェアとして実現されるものでもよい。
記憶部1021は、各種情報を記憶するものであり、メモリ及びハードディスク等の任意の記憶装置により実現される。例えば、記憶部1021は、対象物の長さ及び重さ等に関連付けて、後述する情報処理を実行するために必要な重み係数を記憶する。なお、重み係数は、後述する属性データ・画像データ・寸法データからなる教師データから機械学習を実行することであらかじめ取得される。
入出力部1022は、キーボード、マウス、タッチパネル等により実現され、コンピュータに各種情報を入力したり、コンピュータから各種情報を出力したりするものである。
通信部1023は、任意のネットワークカード等により実現され、有線又は無線によりネットワーク上の通信機器との通信を可能にするものである。
処理部1024は、各種情報処理を実行するものであり、CPUやGPUといったプロセッサ及びメモリにより実現される。ここでは、コンピュータのCPU,GPU等に記憶部1021に記憶されたプログラムが読み込まれることにより、処理部1024が、取得部1024A、抽出部1024B、変換部1024C、及び算出部1024Dとして機能する。
取得部1024Aは、対象物が撮影された画像データ及び対象物の全長データ・重量データ等を取得する。なお、ここでは、取得部1024Aは、対象物を異なる方向から撮影した複数の画像データを取得する。
抽出部1024Bは、画像データから対象物の形状を示す形状データを抽出する。具体的には、抽出部1024Bは、対象物の種類毎に準備されたセマンティックセグメンテーションのアルゴリズム(Mask R-CNN等)を用いて、画像データに含まれる対象物領域を抽出することにより、対象物の形状データを抽出する。ここでは、セマンティックセグメンテーションのアルゴリズムは、対象物の形状が特定されていない教師データを用いて構築される。
なお、セマンティックセグメンテーションのアルゴリズムが、形状が不特定の対象物の教師データを用いて構築されている場合、必ずしも高精度に対象物の形状を抽出することができないことがある。このような場合、抽出部1024Bは、対象物領域からグラブカット(GrabCut)アルゴリズムにより対象物の形状データを抽出する。これにより、高精度に対象物の形状を抽出することが可能になる。さらに、抽出部1024Bは、グラブカットアルゴリズムにより特定された対象物の画像を、対象物の特定部分の色画像に基づいて補正するものでもよい。これにより、さらに高精度に対象物の形状データを生成することが可能となる。
変換部1024Cは、形状データを全長データに基づいて変換し、シルエット化する。これにより形状データが規格化される。
算出部1024Dは、変換部1024Cにより変換された形状データを用いて、対象物の各部分の寸法データを算出する。具体的には、算出部1024Dは、変換部1024Cにより変換された形状データの次元削減を行なう。ここでいう、次元削減は、主成分分析、特にカーネル主成分分析(KernelPCA)、線形判別分析などの手法により実現される。
そして、算出部1024Dは、削減した各次元の値と対象物の部分ごとに最適化された重み係数とを用いて、対象物の各部分の寸法データを算出する。
さらに詳しくは、算出部1024Dは、1回目に削減した各次元の値と対象物の部分ごとに最適化された重み係数W1piとを線形結合して所定値Zpiを求める。なお、記号pは削減して得られる次元数であり、10以上の値である。そして、算出部1024Dは、所定値Zpiと、対象物の長さ及び重さの属性を少なくとも含む属性データとを用いて2回目の次元削減を行い、2回目の次元削減で得られた各次元の値に基づいて、対象物の各部分の寸法データを算出する。なお、重み係数W1piの個数は、対象物の寸法箇所(i個)毎に、削減された次元と同数準備される。
なお、上記説明では、算出部1024Dは、線形結合を用いて所定値Zpiを求めていたが、算出部1024Dは線形結合以外の手法でこれらの値を求めるものでもよい。具体的には、算出部1024Dは、次元削減で得られた各次元の値から2次の特徴量を生成し、当該2次の特徴量と対象物の部分ごとに最適化された重み係数とを結合することで、所定値を求めるようにしてもよい。
(1−2)寸法データ算出装置の動作
図2は本実施形態に係る寸法データ算出装置1020の動作を説明するためのフローチャートである。
まず、寸法データ算出装置1020は、外部の端末装置等を介して対象物の全体を異なる方向から撮影した複数の画像データを、対象物の全長を示す全長データとともに取得する(S1001)。
次に、寸法データ算出装置1020は、各画像データから対象物の各部分の形状を示す形状データをそれぞれ抽出する(S1002)。
続いて、寸法データ算出装置1020は、全長データに基づいて各形状データを所定の大きさに変換するリスケール処理を実行する(S1003)。
次に、寸法データ算出装置1020は、変換後の複数の形状データを結合して、新たな形状データ(以下、計算用の形状データともいう。)を生成する。具体的には、図3に示すようにh行w列の形状データを結合し、m×h×wのデータ列にする。なお、記号mは形状データの個数である(S1004)。
この後、寸法データ算出装置1020は、新たに生成された形状データと、対象物の各部分に関して最適化された重み係数W1piとを用いて、対象物における第i番目(i=1〜j)の各部分の寸法データを算出する(S1005〜S1008)。なお、記号jは寸法データを算出しようとする寸法箇所の総数である。
(1−3)寸法データ算出装置の特徴
(1−3−1)
以上説明したように、本実施形態に係る寸法データ算出装置1020は、取得部1024Aと、抽出部1024Bと、変換部1024Cと、算出部1024Dとを備える。取得部1024Aは、対象物が撮影された画像データ及び対象物の全長データを取得する。抽出部1024Bは、画像データから対象物の形状を示す形状データを抽出する。変換部1024Cは、形状データを全長データに基づいて変換し、シルエット化する。算出部1024Dは、変換部1024Cにより変換された形状データを用いて、対象物の各部分の寸法データを算出する。
したがって、寸法データ算出装置1020は、画像データと全長データとを用いて対象物の各部分の寸法データを算出するので、高精度な寸法データを提供することができる。また、寸法データ算出装置1020では、多数の画像データ及び全長データを一度に情報処理することが可能であるので、多数の寸法データを高精度に提供することができる。
そして、このような寸法データ算出装置1020を用いることで、例えば、対象物として生物の各部分の寸法データを高精度に算出することができる。また、対象物として車や各種荷物など任意の物体の各部分の寸法データを高精度に算出することができる。
また、寸法データ算出装置を、各種製品を製造する製品製造装置に組み込むことで、対象物の形状に適合した製品を製造することが可能となる。
(1−3−2)
また、寸法データ算出装置1020では、取得部1024Aが、対象物を異なる方向から撮影した複数の画像データを取得する。このような構成により、寸法データの精度を高めることができる。
(1−3−3)
また、寸法データ算出装置1020では、算出部1024Dが、変換部1024Cにより変換された形状データの次元削減を行なう。そして、算出部1024Dは、削減した各次元の値と対象物の部分ごとに最適化された重み係数W1piとを用いて、対象物の各部分の寸法データを算出する。このような構成により、計算負荷を抑えつつ、寸法データの精度を高めることができる。
詳しくは、算出部1024Dは、削減した各次元の値と、対象物の第i番目の部分に最適化された重み係数W1piとを線形結合して所定値Ziを求める。また、算出部1024Dは、所定値Ziと、対象物の長さ及び重さの属性を少なくとも含む属性データとを用いて2回目の次元削減を実行して、対象物の第i番目の寸法データを算出する。このような構成により、計算負荷を抑えつつ、寸法データの精度をさらに高めることができる。なお、上記説明において、算出部1024Dは、線形結合に代えて、次元削減で得られた各次元の値から2次の特徴量を生成し、当該2次の特徴量と対象物の部分ごとに最適化された重み係数とを結合することで、所定値を求めるようにしてもよい。
(1−3−4)
また、寸法データ算出装置1020では、抽出部1024Bが、対象物の種類毎に準備された教師データを用いて構築されたセマンティックセグメンテーションのアルゴリズムを用いて、画像データに含まれる対象物領域を抽出することにより、対象物の形状データを抽出する。このような構成により、寸法データの精度を高めることができる。
なお、セマンティックセグメンテーションのアルゴリズムは一般的に公開されているものもあるが、一般的に公開されているものは、通常は対象物の形状が特定されていない教師データを用いて構築されている。そのため、目的によっては、画像データに含まれる対象物領域を抽出する精度が必ずしも十分でないことがある。
そこで、このような場合には、抽出部1024Bは、対象物領域からグラブカットアルゴリズムにより対象物の形状データを抽出する。このような構成により、寸法データの精度をさらに高めることができる。
さらに、抽出部1024Bは、グラブカットアルゴリズムにより抽出された対象物の画像を、画像データにおける特定部分の色画像に基づいて補正して、新たな形状データを生成するものでもよい。このような構成により、寸法データの精度をさらに高めることができる。例えば、対象物が人である場合、特定部分として手及び背中を設定し、これらの特定部分の色画像に基づいて補正することで、対象物である人の形状データを高精度に得ることができる。
(1−4)変形例
(1−4−1)
上記説明においては、取得部1024Aが、対象物を異なる方向から撮影した複数の画像データを取得するとしたが、必ずしも画像データが複数必要なわけではない。対象物の画像データが一枚であっても各部分の寸法データを算出することは可能である。
本実施形態の変形例として、深度データを併せて取得可能な深度データ測定装置が適用可能であり、深度データに基づいてピクセル毎に深度データを有する深度マップが構成されてもよい。このような深度データ測定装置を適用することにより、取得部1024Aで取得することができる画像データはRGB−D(Red、Green、Blue、Depth)データとすることができる。具体的には、画像データは、通常の単眼カメラで取得可能なRGB画像データに加えて、深度マップを含むことができる。
深度データ測定装置の一例はステレオカメラである。本明細書において「ステレオカメラ」とは、対象物を複数の異なる方向から同時に撮影して、両眼視差を再現して深度マップを構成可能な任意の形態の撮像装置を意味している。また、ステレオカメラ以外にも、LiDAR(Light Detection and Ranging)装置により深度データを求め、深度マップを構成してもよい。
(1−4−2)
上記説明においては、セマンティックセグメンテーションアルゴリズム及び/又はグラブカットアルゴリズムを採用して、対象物の形状データを取得してよいものとした。これに加えて、或いはこれに替えて、例えば、ステレオカメラを適用した場合には、ステレオカメラから取得される深度マップを用いて、対象物の深度データを対象物の形状データに関連付けることができる。これにより、更に高精度に対象物の形状データを生成することが可能となる。
具体的には、ステレオカメラを用いる場合、抽出部1024Bは、取得部1024Aで取得した深度マップに基づいて、対象物が撮影された画像データから、対象物が写っている部分である対象物領域を抽出する。例えば、深度マップから、深度データが所定の範囲にはない領域を取り除くことにより、対象物領域が抽出される。抽出された対象物領域では、形状データは、ピクセルごとに対象物の深度データに関連付けられている。
変換部1024Cは、形状データを全長データに基づいて変換する。また、変換部1024Cは、形状データを、全長データに加えて、当該対象物領域の深度データに基づいてモノクロ画像データに変換して、「階調シルエット画像」(新たな形状データ)を生成する(後述)。
生成される階調シルエット画像は、単なる白黒の2値化データではなく、深度データに基づいて、例えば輝度値が0(「黒」)から1(「白」)までのデータで表された単色多階調のモノクロ画像である。つまり、階調シルエット画像データは、深度データに関連づけられて、対象物の形状に関して更に多くの情報量を有するものである。なお、階調シルエット画像データは全長データにより規格化されている。
この変形例によれば、取得部1024Aに深度データを測定できる任意の機械を用いて構成される深度マップに基づいて対象物領域を抽出することにより、更に高精度に対象物の形状データを抽出することが可能となる。また、階調シルエット画像データ(変換される形状データ)は、対象物の深度データに関連付けられるので、対象物の形状に関して更に多くの情報量を有し、算出部1024Dによる対象物の各部分の寸法データを更に高精度に算出することが可能となる。
補足すると、算出部1024Dが、変換部1024Cにより変換された階調シルエット画像データ(形状データ)を次元削減する。この場合、1回目に削減される次元の数は、2値化データのシルエット画像に比して10倍程度大きくなる。また、重み係数の個数は、対象物の寸法箇所(i個)毎に、削減された次元に応じて準備される。
なお、ここでは階調シルエット画像を単なるシルエット画像と区別して記述したが、他の実施形態及び他の変形例においては、両者を区別せずに単にシルエット画像と記載する場合がある。
(1−4−3)
上記説明においては、算出部1024Dが、次元削減を2回実行しているが、必ずしもこのような処理が必要なわけではない。算出部1024Dは、次元削減を1回実行することで得られた各次元の値から、対象物の各部分の寸法データを算出するものでもよい。また、目的によっては、寸法データ算出装置1020は、形状データを次元削減せずに寸法データを算出するものでもよい。
(1−4−4)
上記説明においては、抽出部1024Bが、対象物の形状が特定されていない教師データを用いて構築されたセマンティックセグメンテーションのアルゴリズムを用いて、画像データに含まれる対象物領域を抽出するとしたが、必ずしもこのような教師データを利用しなければならないものではない。例えば、対象物の形状が特定された教師データを用いて構築されたセマンティックセグメンテーションのアルゴリズムを用いてもよい。対象物の形状が特定された教師データを用いることで、目的に応じて、寸法データの計算精度を高めるとともに、計算負荷を抑制することができる。
(1−5)製品製造システムへの適用
以下、上述した寸法データ算出装置1020を製品製造システム1001に適用する例について説明する。
(1−5−1)製品製造システムの構成
図4は本実施形態に係る製品製造システム1001の概念を示す模式図である。
製品製造システム1001は、ユーザ1005が保有する端末装置1010と通信可能な寸法データ算出装置1020と、製品製造装置1030とを備え、所望の製品1006を製造するためのシステムである。図4では、一例として、対象物1007が人であり、製品1006が椅子であるときの概念を示している。ただし、本実施形態に係る製品製造システムの対象物1007及び製品1006はこれらに限定されるものではない。
端末装置1010は、いわゆるスマートデバイスにより実現することができる。ここでは、スマートデバイスに、ユーザ用プログラムがインストールされることで端末装置1010が各種機能を発揮する。具体的には、端末装置1010は、ユーザ1005により撮像される画像データを生成する。ここで、端末装置1010は、対象物を複数の異なる方向から同時に撮影して、両眼視差を再現するステレオカメラ機能を有するものでもよい。なお、画像データは端末装置1010で撮影されるものに限定されず、例えば、店舗内に設置されたステレオカメラを用いて撮影されたものを利用してもよい。
また、端末装置1010は、対象物1007の属性を示す属性データの入力を受け付ける。「属性」としては、対象物1007の全長・重量・生成からの経過時間(年齢を含む)などが挙げられる。また、端末装置1010は、通信機能を有しており、寸法データ算出装置1020及び製品製造装置1030と各種情報の送受信を実行する。
寸法データ算出装置1020は任意のコンピュータにより実現することができる。ここでは、寸法データ算出装置1020の記憶部1021は、端末装置1010のユーザ1005を識別する識別情報に関連付けて、端末装置1010から送信される情報を記憶する。また、記憶部1021は、後述する情報処理を実行するために必要なパラメータ等を記憶する。例えば、記憶部1021は、対象物1007の属性の項目等に関連付けて、後述する情報処理を実行するために必要な重み係数W1piを記憶する。
また、寸法データ算出装置1020の処理部1024は、上述したように、取得部1024A、抽出部1024B、変換部1024C、及び算出部1024Dとして機能する。ここでは、取得部1024Aは、ユーザ1005により撮影された画像データ及び対象物1007の属性データを取得する。また、抽出部1024Bは、画像データから対象物1007の形状を示す形状データを抽出する。例えば、対象物の種類として「人」が予め設定されている場合には、人を識別するための教師データを用いてセマンティックセグメンテーションのアルゴリズムが構築されている。また、抽出部1024Bは、グラブカットアルゴリズムにより特定された対象物1007の画像を、対象物1007の特定部分の色画像に基づいて補正し、さらに高精度に対象物1007の形状データを生成する。また、変換部1024Cは、形状データを全長データに基づいて変換し、シルエット化する。算出部1024Dは、変換部1024Cにより変換された形状データを用いて、ユーザ1005の各部分の寸法データを算出する。ここでは、算出部1024Dは、削減した各次元の値と対象物1007の部分ごとに最適化された重み係数W1piとを線形結合等して所定値Z1iを求める。そして、算出部1024Dは、所定値Z1iと、対象物1007の属性データとを用いて次元削減し、削減した各次元の値に基づいて、対象物1007の各部分の寸法データを算出する。
製品製造装置1030は、寸法データ算出装置1020を用いて算出された寸法データを用いて、対象物1007の形状に関連する所望の製品を製造する製造装置である。なお、製品製造装置1030は、自動で製品を製造・加工できる任意の装置を採用することができ、例えば3次元プリンタなどにより実現することができる。
(1−5−2)製品製造システムの動作
図5は本実施形態に係る製品製造システム1001の動作を説明するためのシーケンス図である。また、図6,7は端末装置1010の画面遷移を示す模式図である。
まず、端末装置1010を介して対象物1007の全体が異なる方向から写るように複数回撮像されて、対象物1007が撮像された複数の画像データが生成される(T1001)。ここでは、図6,7にそれぞれ示すような、正面及び側面の写真が複数枚撮影される。
次に、ユーザ1005により端末装置1010に、対象物1007の属性を示す属性データが入力される(T1002)。ここでは、属性データとして、対象物1007の全長データ・重量データ・経時データ(年齢等を含む)等が入力される。
そして、これらの複数の画像データ及び属性データが端末装置1010から寸法データ算出装置1020に送信される。
寸法データ算出装置1020では、端末装置1010から複数の画像データ及び属性データを受信すると、これらのデータを用いて、対象物1007の各部分の寸法データを算出する(T1003)。なお、端末装置1010には、設定に応じて、寸法データが画面に表示される。
そして、製品製造装置1030が、寸法データ算出装置1020により算出された寸法データに基づいて所望の製品1006を製造する(T1004)。
(1−5−3)製品製造システムの特徴
以上説明したように、本実施形態に係る製品製造システム1001は、ユーザ1005が保有する端末装置1010と通信可能な寸法データ算出装置1020と、製品製造装置1030とを備える。端末装置1010(撮影装置)は、対象物1007の画像を複数枚撮影する。寸法データ算出装置1020は、取得部1024Aと、抽出部1024Bと、変換部1024Cと、算出部1024Dと、を備える。取得部1024Aは、端末装置1010から対象物1007の画像データを当該対象物1007の全長データとともに取得する。抽出部1024Bは、画像データから対象物1007の形状を示す形状データを抽出する。変換部1024Cは、形状データを全長データに基づいて変換し、シルエット化する。算出部1024Dは、変換部1024Cにより変換された形状データを用いて、対象物1007の各部分の寸法データを算出する。製品製造装置1030は、算出部1024Dにより算出された寸法データを用いて製品1006を製造する。
このような構成により、寸法データ算出装置1020が高精度に対象物1007の各部分を高精度に算出するので、対象物1007の形状に関連する所望の製品を提供できる。
例えば、製品製造システム1001により、心臓などの各種臓器の形状の測定から、臓器の模型を製造することができる。
また、例えば、人のウエスト形状の測定から各種ヘルスケア製品等を製造することができる。
また、例えば、人の形状から当該人のフィギュア製品を製造することができる。
また、例えば、人の形状から当該人に適合する椅子などを製造することができる。
また、例えば、車の形状から車のおもちゃを製造することができる。
また、例えば、任意の風景画からジオラマなどを製造することができる。
なお、上記説明においては、寸法データ算出装置1020と製品製造装置1030とが別部材の装置として説明しているが、これらは一体として構成されるものでもよい。
<第2実施形態>
以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。
(2−1)寸法データ算出装置の構成
図8は本実施形態に係る寸法データ算出装置2120の構成を示す模式図である。
寸法データ算出装置2120は任意のコンピュータにより実現することができ、記憶部2121、入出力部2122、通信部2123、及び処理部2124を備える。なお、寸法データ算出装置2120は、LSI(Large Scale Integration),ASIC(Application Specific Integrated Circuit),FPGA(Field-Programmable Gate Array)などを用いてハードウェアとして実現されるものでもよい。
記憶部2121は、各種情報を記憶するものであり、メモリ及びハードディスク等の任意の記憶装置により実現される。例えば、記憶部2121は、対象物の長さ及び重さ等に関連付けて、後述する情報処理を実行するために必要な重み係数Wriを記憶する。なお、重み係数は、後述する属性データ・寸法データからなる教師データから機械学習を実行することであらかじめ取得される。
入出力部2122は、前述の入出力部1022と同様の構成及び機能を有するものである。
通信部2123は、前述の通信部1023と同様の構成及び機能を有するものである。
処理部2124は、各種情報処理を実行するものであり、CPUやGPUといったプロセッサ及びメモリにより実現される。ここでは、コンピュータのCPU,GPU等に記憶部2121に記憶されたプログラムが読み込まれることにより、処理部2124が、取得部2124A、及び算出部2124Dとして機能する。
取得部2124Aは、対象物の全長データと重量データと経時データ(年齢等を含む)とのうちの少なくともいずれかを含む属性データDzr(rは属性データの要素数)を取得する。
算出部2124Dは、取得部2124Aにより取得された属性データを用いて、対象物の各部分の寸法データを算出する。具体的には、算出部2124Dは、属性データを、機械学習された重み係数Wsiを用いて二次回帰することにより、対象物の各部分の寸法データを算出する。重み係数は、対象物の部分ごとに最適化されており、対象物における第i番目の部分の重み係数をWsiと表記する。なお、i=1〜jであり、jは寸法データを算出しようとする寸法箇所の総数である。また、記号sは属性データから得られる演算に用いられる要素の数である。
詳しくは、算出部2124Dは、図9に示すように、属性データDzr(r=3)の各要素x1,x2,x3を2乗した値(図9における1行目の値であり、二次項ともいう。)、各要素を掛け合わせた値(図9における2行目の値であり、相互作用項ともいう。)、各要素自体の値(図9における3行目の値であり、一次項ともいう)を用いて、寸法データを算出する。なお、図9に示す例では、3つの属性データの要素x1,x2,x3から得られる値が9つあり、s=9であるので、重み係数Wsiはi×9個の要素を有することになる。
(2−2)寸法データ算出装置の特徴
以上説明したように、本実施形態に係る寸法データ算出装置2120は、取得部2124Aと、算出部2124Dとを備える。取得部2124Aは、対象物の全長データと重量データと経時データとのうちの少なくともいずれかを含む属性データを取得する。算出部2124Dは、属性データを用いて、対象物の各部分の寸法データを算出する。
したがって、寸法データ算出装置2120は、上記属性データを用いて対象物の各部分の寸法データを算出するので、高精度な寸法データを提供することができる。具体的には、算出部2124Dが、属性データを機械学習された係数を用いて二次回帰することにより、対象物の各部分の寸法データを高精度に算出する。
また、寸法データ算出装置2020では、多数のデータを一度に情報処理することが可能であるので、多数の寸法データを高速に提供することができる。
また、属性データとして、全長データと重量データと経時データとのうちの少なくともいずれかを含んでいる場合、生物の各部分の寸法データを高精度に算出することができる。
また、寸法データ算出装置2120を、各種製品を製造する製品製造装置に組み込むことで、対象物の形状に適合した製品を製造することが可能となる。
なお、上記説明においては、算出部2124Dが、属性データを二次回帰することにより、対象物の各部分の寸法データを算出するとしたが、算出部2124Dの演算はこれに限定されるものではない。算出部2124Dは、属性データを線形結合して寸法データを求めるものでもよい。
(2−3)製品製造システムへの適用
図10は本実施形態に係る製品製造システム2001Sの概念を示す模式図である。
本実施形態に係る寸法データ算出装置2120も、第1実施形態に係る寸法データ算出装置1020と同様に、製品製造システム2001Sに適用することが可能である。
本実施形態に係る端末装置2010Sは、対象物2007の属性を示す属性データの入力を受け付けるものであればよい。「属性」としては、対象物1007の全長・重量・生成からの経過時間(年齢を含む)などが挙げられる。
また、上述したように、寸法データ算出装置2120の処理部2124は、取得部2124A及び算出部2124Dとして機能する。算出部2124Dは、取得部2124Aにより取得された属性データを用いて、対象物2007の各部分の寸法データを算出する。具体的には、算出部2124Dは、属性データを機械学習された重み係数Wsiを用いて二次回帰することにより、対象物の各部分の寸法データを算出する。
製品製造システム2001Sでは、寸法データ算出装置2120が高精度に対象物2007の各部分を高精度に算出するので、対象物2007の形状に関連する所望の製品を提供できる。その他、第2実施形態に係る製品製造システム2001Sは、第1実施形態の製品製造システム1001と同様の効果を発揮することができる。
<第3実施形態>
以下に、本発明の製品製造装置及び寸法データ算出装置の実施形態に係る寸法データ算出システムを添付図面とともに説明する。以下の実施形態の説明において、情報処理装置及び寸法データ算出装置は、寸法データ算出システムの一部として実装される。
添付図面において、同一又は類似の要素には同一又は類似の参照符号が付され、各実施形態の説明において同一又は類似の要素に関する重複する説明は省略することがある。また、各実施形態で示される特徴は、互いに矛盾しない限り他の実施形態にも適用可能である。更に、図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
なお、以下の説明において、行列やベクトルなどを用いて複数の要素をまとめて表記する場合は大文字で表し、行列の個々の要素を表記する場合は小文字で表すことがある。例えば、形状パラメータの集合を示す場合等は行列Λと表記し、行列Λの要素を表す場合は、要素λと表記する場合がある。
(3−1)寸法データ算出システムの構成
図11は本実施形態に係る寸法データ算出システム3100の構成を示す模式図である。寸法データ算出システム3100は、寸法データ算出装置3020及び学習装置3025を備える。
寸法データ算出装置3020及び学習装置3025は、それぞれ、任意のコンピュータにより実現することができる。寸法データ算出装置3020は、記憶部3021、入出力部3022、通信部3023、及び処理部3024を備える。また、学習装置3025は、記憶部3026及び処理部3027を備える。なお、寸法データ算出装置3020及び学習装置3025は、LSI(Large Scale Integration),ASIC(Application Specific Integrated Circuit),FPGA(Field-Programmable Gate Array)等を用いてハードウェアとして実現されてもよい。
記憶部3021,3026は、何れも各種情報を記憶するものであり、メモリ及びハードディスク等の任意の記憶装置により実現される。例えば、記憶部3021は、処理部3024において寸法データ算出に関する情報処理を実行するために、対象物エンジン3021Aを含む各種データ、プログラム、情報等を格納する。また、記憶部3026は、対象物エンジン3021Aを生成するために、学習段階で利用される訓練データを格納する。
入出力部3022は、キーボード、マウス、タッチパネル等により実現され、コンピュータに各種情報を入力したり、コンピュータから各種情報を出力したりする。
通信部3023は、任意のネットワークカード等のネットワークインタフェースにより実現され、有線又は無線によりネットワーク上の通信機器との通信を可能にする。
処理部3024,3027は、何れも各種情報処理を実行するために、CPU(Central Processing Unit)及び/又はGPU(Graphical Processing Unit)といったプロセッサ、並びにメモリにより実現される。処理部3024は、コンピュータのCPU,GPU等に、記憶部3021に記憶されたプログラムが読み込まれることにより、取得部3024A、抽出部3024B、変換部3024C、推定部3024D、及び算出部3024Eとして機能する。同様に、処理部3027は、コンピュータのCPU,GPU等に、記憶部3026に記憶されたプログラムが読み込まれることにより、前処理部3027A及び学習部3027Bとして機能する。
寸法データ算出装置3020の処理部3024において、取得部3024Aは、対象物が撮影された画像データ、並びに対象物の全長データ及び重量データ等の属性データを取得する。取得部3024Aは、例えば、撮像装置により、対象物を複数の異なる方向から撮影した複数の画像データを取得する。
抽出部3024Bは、画像データから対象物の形状を示す形状データを抽出する。具体的には、抽出部3024Bは、対象物の種類毎に準備されたセマンティックセグメンテーションのアルゴリズム(Mask R-CNN等)を用いて、画像データに含まれる対象物領域を抽出することにより、対象物の形状データを抽出する。セマンティックセグメンテーションのアルゴリズムは、対象物の形状が特定されていない訓練データを用いて構築できる。
なお、セマンティックセグメンテーションのアルゴリズムが、形状が不特定の対象物の訓練データを用いて構築されている場合、必ずしも高精度に対象物の形状を抽出することができないことがある。このような場合、抽出部3024Bは、対象物領域からグラブカット(Grab Cut)アルゴリズムにより対象物の形状データを抽出する。これにより、高精度に対象物の形状を抽出することが可能になる。
また、抽出部3024Bは、グラブカットアルゴリズムにより特定された対象物の画像を、対象物の特定部分の色画像に基づいて補正することにより、対象物と対象物以外の背景画像とを分離してもよい。これにより、更に高精度に対象物の形状データを生成することが可能となる。
変換部3024Cは、形状データを全長データに基づいてシルエット化する。つまり、対象物の形状データを変換して、対象物のシルエット画像を生成する。これにより、形状データが規格化される。変換部3024Cは、生成されたシルエット画像を推定部3024Dに入力するための受付部としても機能することになる。
推定部3024Dは、シルエット画像から所定個数の形状パラメータの値を推定する。推定には、対象物エンジン3021Aが使用される。推定部3024Dで推定された所定個数の対象物の形状パラメータの値は、対象物が有する任意の部位に関連する寸法データに関連付けられる。
算出部3024Eは、推定部3024Dによって推定された所定個数の形状パラメータの値から、これに関連付けられた対象物の寸法データを算出する。具体的には、算出部3024Eは、推定部3024Dで推定された対象物の形状パラメータの値から、対象物における複数の頂点の3次元データを構成し、更に、当該3次元データに基づいて対象物における任意の2つの頂点の間の寸法データを算出する。
学習装置3025の処理部3027において、前処理部3027Aは、学習のための各種前処理を実施する。特に、前処理部3027Aは、サンプル対象物の3次元データを次元削減により特徴抽出することを通じて、所定個数の形状パラメータを特定する。また、サンプル対象物ごとに所定個数(次元)の形状パラメータの値を得る。サンプル対象物の形状パラメータの値は、訓練データとして記憶部3026に格納される。
また、前処理部3027Aは、サンプル対象物の3次元データに基づいて、3次元空間内にサンプル対象物の3次元物体を仮想的に構成した上で、3次元空間内に仮想的に設けた撮像装置を用いて所定方向から3次元物体を投影してサンプル対象物のシルエット画像を生成する。生成されたサンプル対象物のシルエット画像のデータは、訓練データとして記憶部3026に格納される。
学習部3027Bは、サンプル対象物のシルエット画像と、サンプル対象物に関連付けられる所定個数の形状パラメータの値との関係を関連付けるように学習する。学習の結果、対象物エンジン3021Aが生成される。生成された対象物エンジン3021Aは、電子ファイルの形態で保持できる。寸法データ算出装置3020において対象物の寸法データを算出する際には、対象物エンジン3021Aは、記憶部3021に格納されて推定部3024Dによって参照される。
(3−2)寸法データ算出システムの動作
図12及び図13を参照して、図11の寸法データ算出システム3100の動作を説明する。図12は、学習装置3025の動作(S3010)を示すフローチャートであり、サンプル対象物データに基づいて対象物エンジン3021Aを生成する。図13は、寸法データ算出装置3020の動作を示すフローチャートであり、対象物の画像データに基づいて対象物の寸法データを算出する。
(3−2−1)学習装置の動作
最初に、サンプル対象物のデータが準備され、記憶部3026に格納される(S3011)。一例では、準備されるデータは、400個のサンプル対象物のデータであり、サンプル対象物ごとに5,000個の3次元データを含む。3次元データには、サンプル対象物が有する頂点の3次元座標データが含まれる。また、3次元データには、3次元物体を構成する各メッシュの頂点情報及び各頂点の法線方向等のメッシュ・データ、並びに、全長データ、重量データ、及び経時データ(年齢等を含む。)等の属性データが含まれてもよい。
サンプル対象物の3次元データは、頂点番号が関連付けられている。前述の例では、サンプル対象物ごとに、5,000個の頂点の3次元データが頂点番号#1〜#5,000に対応付けられている。また、頂点番号の全部又は一部は、対象物の部位の情報が関連付けられている。例えば、対象物が「人」の場合、頂点番号#20は「頭頂点」に関連付けられ、同様に、頂点番号#313は「左肩の肩峰」に、頂点番号#521は「右肩の肩峰」に関連付けられる等である。
続いて、前処理部3027Aは、次元削減により形状パラメータへの特徴変換を行う(S3012)。具体的には、サンプル対象物ごとに、サンプル対象物の3次元データを次元削減により特徴抽出を行う。その結果、所定個数(次元数)の形状パラメータを得る。一例では、形状パラメータの次元数は30である。次元削減は、主成分分析、Random Projection等の手法により実現される。
前処理部3027Aは、主成分分析の射影行列を用いて、サンプル対象物ごとに3次元データから所定個数の形状パラメータの値に変換する。これにより、関連する特徴的な情報を維持した上で、サンプル対象物の3次元データからノイズを取り除き、3次元データを圧縮することができる。
前述の例のように、サンプル対象物のデータが400個あり、各サンプル対象物が5,000個の頂点の3次元(座標)データを含み、各3次元データを30次元の形状パラメータに特徴変換することを想定する。ここでは、400個のサンプル対象物のデータを表す〔400行,15,000列(5,000×3)〕の頂点座標行列を行列Xとする。また、主成分分析によって生成される〔15,000行、30列〕の射影行列を行列Wとする。頂点座標行列Xに対し、射影行列Wを右から掛けることによって、〔400行、30列〕の形状パラメータ行列である行列Λを得ることができる。
つまり、形状パラメータ行列Λは次の数式から計算することができる。
射影行列Wを用いた行列演算の結果、400個のサンプル対象物がそれぞれ有する15,000次元のデータは、30次元の主成分の形状パラメータ(λ1,...,λ30)に特徴変換される。なお、主成分分析では、λiに対する400個分の値(λ1,1,...,λ400,1)の平均値がゼロになるように計算されている。
S3012の結果、形状パラメータ行列Λを得たのに続いて、前処理部3027Aは、形状パラメータ行列Λに含まれている形状パラメータのデータ・セットを、乱数を用いて拡張する(S3013)。前述の例では、400個のデータ・セット(λi,1,...,λi,30(1≦i≦400))を、10,000個の形状パラメータの拡張データ・セット(λj,1,...,λj,30(1≦j≦10,000))にデータ拡張する。データ拡張は、正規分布を有する乱数を用いて行う。拡張データ・セットは、各形状パラメータの値の分散が3σの正規分布となる。
拡張データ・セットに対し、射影行列Wに基づく逆変換を行うことにより、拡張データ・セットの3次元データを構成することができる。前述の例において、更に、10,000個の拡張データ・セットを表す、〔10,000行、30列〕の拡張形状パラメータ行列を行列Λ’(λj,k,...,λj,k(1≦j≦10,000及び1≦k≦30))とする。10,000個のサンプル対象物の3次元データを表す頂点座標行列X’は、拡張形状パラメータ行列Λ’に対して、〔30行,15,000列〕である射影行列Wの転置行列WTを右から掛けることによって得られる。
つまり、頂点座標行列X’は、次の数式から計算することができ、10,000個に拡張されたサンプル対象物ごとに、5,000個(15,000/3)の3次元データを得ることができる。
S3013の結果、頂点座標行列X’が得られたのに続いて、前処理部3027Aは、拡張されたサンプル対象物の3次元データに基づいて、それぞれのシルエット画像を生成する(S3014)。前述の例では、10,000個のサンプル対象物ごとに、3次元空間内において5,000個の3次元データから、サンプル対象物の3次元物体を仮想的に構成する。そして、同じく3次元空間内に仮想的に設けられ、任意の方向から投影可能な投影装置を用いて3次元物体を投影する。前述の例では、10,000個のサンプル対象物ごとに、正面方向及び側面方向の2枚のシルエット画像を投影により取得するのがよい。取得されるシルエット画像は、白黒の2値化データで表される。
最後に、学習部3027Bは、学習により、サンプル対象物に関連付けられた形状パラメータの値と、サンプル対象物のシルエット画像との関係を関連付ける(S3015)。具体的には、S3013で得た形状パラメータのデータ・セットと、S3014で得たシルエット画像との組を訓練データに用いて、両者の関係をディープラーニングにより学習させるのがよい。
より詳しくは、前述の例で10,000個に拡張されたサンプル対象物について、各シルエット画像の2値化データをディープラーニングのネットワーク・アーキテクチャに入力する。ディープラーニングにおける特徴抽出では、ネットワーク・アーキテクチャから出力されるデータが、30個の形状パラメータの値に近づくように、ネットワーク・アーキテクチャの重み係数が設定される。なお、ここでのディープラーニングは、一例では、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を利用する
ことができる。
このようにして、S3014では、サンプル対象物に関連付けられた形状パラメータの値と、サンプル対象物のシルエット画像との関係をディープラーニングにより学習させ、ディープラーニングのネットワーク・アーキテクチャが構築される。その結果、対象物のシルエット画像が入力されるのに応じて、形状パラメータの値を推定する推定モデルである対象物エンジン3021Aが生成される。
(3−2−2)寸法データ算出装置の動作
寸法データ算出装置3020は、学習装置3025で生成された対象物エンジン3021Aの電子ファイル、及び学習装置3025で得た主成分分析の射影情報を予め記憶部3021に格納して、対象物の寸法データ算出に使用する。
最初に、取得部3024Aは、入出力部3122を通じて、外部の端末装置等を介して対象物の全体を異なる方向から撮影した複数の画像データを、対象物の全長を示す全長データと共に取得する(S3021)。次いで、抽出部3024Bは、各画像データから対象物の各部分の形状を示す形状データをそれぞれ抽出する(S3022)。続いて、変換部3024Cは、全長データに基づいて各形状データを所定の大きさに変換するリスケール処理を実行する(S3023)。S3021〜S3023のステップを通じて、対象物のシルエット画像が生成され、寸法データ算出装置3020は対象物のシルエット画像を受け付ける。
次いで、予め記憶部3021に格納された対象物エンジン3021Aを使用して、推定部3024Dは、受け付けたシルエット画像から対象物の形状パラメータの値を推定する(S3024)。そして、算出部3024Eは、対象物の形状パラメータの値に基づいて、対象物が有する部位に関連する寸法データを算出する(S3025)。
具体的には、S3025での寸法データの算出では、最初に、対象物について対象物エンジン3021Aで推定された所定個数の形状パラメータの値から、対象物の頂点の3次元データを構成する。ここでは、学習段階において前処理部3027Aで実施した次元削減に係る射影(S3010)の逆変換を行えばよい。より詳しくは、推定された所定個数の形状パラメータの値(列ベクトル)に対し、主成分分析に係る射影行列Wの転置行列WTを右から掛けることによって、3次元データを得ることができる。
前述の例では、対象物の形状パラメータの値Λ’’に対し、対象物の3次元データX’
’は、次の数式から計算することができる。
S3025において、算出部3024Eは、3次元データを使用して、対象物における任意の2つの頂点の間の寸法データを算出する。ここでは、3次元データから3次元物体を仮想的に構成し、3次元物体上の曲面に沿って2つの頂点の間の寸法データを算出する。つまり、3次元物体の立体的な形状に沿うようにして、2つの頂点間の距離を立体的に算出することができる。2つの頂点間の距離を立体的に算出するためには、最初に、多数の頂点(前述の例では5,000個の3次元データ)によって構成される3次元のメッシュ上で2つの頂点の間を繋ぐ最短経路を探索し、最短経路が通るメッシュを特定する。次いで、特定されたメッシュの頂点座標データを用いて、最短経路に沿ってメッシュ毎に距離を算出し、合算する。その合計値が2つの頂点間の立体的な距離となる。なお、立体的な距離の計算には、3次元物体を構成する各メッシュの頂点情報及び各頂点の法線方向等のメッシュ・データを用いることができる。
例えば、対象物が「人」であり、人の「肩幅」を算出する場合を想定する。事前準備として、「肩幅=左肩の肩峰を示す頂点と右肩の肩峰を示す頂点の間の距離」であることを予め規定しておく。また、左肩の肩峰を示す頂点の頂点番号が例えば#313であり、右肩の肩峰を示す頂点の頂点番号が例えば#521であることを予め関連付けておく。これらの情報は予め記憶部3021に格納される。寸法データ算出の際は、頂点番号#313から#521に向けた最短経路を特定し、最短経路に関連して特定されたメッシュの頂点座標データを用いて、最短経路に沿ってメッシュ毎に距離を算出し、合計すればよい。
このように、本実施形態の寸法データ算出装置3020は、対象物エンジン3021Aを使用することにより、シルエット画像から所定個数の形状パラメータの値を高精度に推定することができる。また、高精度に推定された形状パラメータの値から、対象物の3次元データを高精度に復元することができるので、特定部位のみならず任意の2つの頂点間を採寸対象箇所として、高精度に算出することができる。特に、算出される2つの頂点の間の寸法データは、3次元データから構成される3次元物体に基づいて立体的な形状に沿って算出されるので、高精度である。
(3−3)寸法データ算出システムの特徴
a)以上説明したように、本実施形態に係る寸法データ算出システム3100は、寸法データ算出装置3020及び学習装置3025を備える。寸法データ算出装置3020の一部として構成される情報処理装置は、変換部(受付部)3024C及び推定部3024Dを備える。変換部(受付部)3024Cは、対象物のシルエット画像を受け付ける。推定部3024Dは、サンプル対象物のシルエット画像とサンプル対象物に関連付けられた所定個数の形状パラメータの値とを関連付けた対象物エンジン3021Aを使用して、受け付けたシルエット画像から対象物の形状パラメータの値を推定する。そして、推定された対象物の形状パラメータの値が、対象物が有する任意の部位に関連する寸法データに関連付けられる。
また、寸法データ算出装置3020は、取得部3024A、抽出部3024B、変換部3024C、推定部3024D、及び算出部3024Eを備える。取得部3024Aは、対象物が撮影された画像データ及び対象物の全長データを取得する。抽出部3024Bは、画像データから対象物の形状を示す形状データを抽出する。変換部3024Cは形状データを全長データに基づいてシルエット画像に変換する。推定部3024Dは、サンプル対象物のシルエット画像とサンプル対象物に関連付けられた所定個数の形状パラメータの値とを関連付けた対象物エンジン3021Aを使用して、シルエット画像から所定個数の形状パラメータの値を推定する。算出部3024Eは、推定された所定個数の形状パラメータの値に基づいて、対象物の寸法データを算出する。
したがって、かかる寸法データ算出装置3020は、予め作成済みの対象物エンジン3021Aを使用することにより、シルエット画像から所定個数の形状パラメータの値を高精度に推定することができる。また、高精度に推定された形状パラメータの値を用いることで、対象物の任意の部位に関連するデータを効率的且つ高精度で算出することができる。このように、寸法データ算出装置3020によれば、対象物について算出される寸法データを効率的且つ高精度で提供することができる。
かかる寸法データ算出装置3020を用いることで、例えば、対象物として生物の各部分の寸法データを高精度に算出することができる。また、対象物として車や各種荷物等、任意の物体の各部分の寸法データを高精度に算出することができる。更に、寸法データ算出装置3020を、各種製品を製造する製品製造装置に組み込むことで、対象物の形状に適合した製品を製造することが可能となる。
かかる寸法データ算出装置3020を用いることで、例えば、対象物として生物の各部位に関連する寸法データを高精度に算出することができる。また、対象物として車や各種荷物等、任意の物体の各部分の寸法データを高精度に算出することができる。また、寸法データ算出装置3020を、各種製品を製造する製品製造装置に組み込むことで、対象物の形状に適合した製品を製造することが可能となる。
b)かかる寸法データ算出装置3020では、サンプル対象物に関連付けられた所定個数の形状パラメータが、サンプル対象物の3次元データを次元削減することによって特定される。特に、次元削減は主成分分析により行われる。これにより、サンプル対象物の3次元データからノイズを効果的に取り除き、3次元データを圧縮することができる。
c)かかる寸法データ算出装置3020では、推定された所定個数の形状パラメータの値に対し、上記主成分分析に係る射影の逆変換により対象物の3次元データが算出され、3次元データが寸法データに関連付けられる。これにより、対象物のシルエット画像の入力に対し、3次元データを対象物の3次元データを高精度に構成することができる。
d)かかる寸法データ算出装置3020では、サンプル対象物のシルエット画像が、サンプル対象物の3次元データから構成される3次元物体における所定方向の投影画像である。つまり、サンプル対象物の3次元データを用いて3次元物体を構成した上で、これを投影することによりシルエット画像が得られる。正面方向及び側面方向の2枚のシルエット画像を投影により取得するのがよい。これにより、サンプル対象物のシルエット画像を高精度に生成することができる。
e)かかる寸法データ算出装置3020では、対象物エンジン3021Aが、サンプル対象物のシルエット画像とサンプル対象物に関連付けられた所定個数の形状パラメータの値との関係を学習することにより生成されている。当該学習は、ディープラーニングにより行うことができる。ディープラーニングによる学習を行うことにより、サンプル対象物のシルエット画像とサンプル対象物の形状パラメータの値との対応付けを高精度に行うことができる。
f)かかる寸法データ算出装置3020の算出部3024Eでは、対象物について推定された所定個数の形状パラメータの値から、対象物における複数の頂点の3次元データを構成する。そして、構成された3次元データに基づいて、対象物における任意の2つの頂点の間の寸法データを算出する。つまり、対象物の3次元データを用いて3次元物体を構成した上で、この寸法データを算出する。これにより、対象物の3次元物体の形状から2つの頂点の間の寸法データを算出することができるので、採寸対象箇所が特定部分に限定されることがない。
特に、かかる寸法データ算出装置3020の算出部3024Eでは、2つの頂点の間の寸法データが、対象物において複数の頂点の3次元データから構成される3次元物体上の曲面に沿って算出される。これにより、寸法データを更に高精度に算出することができる。
(3−4)変形例
(3−4−1)
上記説明においては、取得部3024Aが、対象物を異なる方向から撮影した複数の画像データを取得している。ここでは、対象物を複数の異なる方向から同時に撮影できる撮像装置として、深度データを併せて取得可能な深度データ測定装置が適用可能である。
深度データ測定装置の一例はステレオカメラである。本明細書において「ステレオカメラ」とは、対象物を複数の異なる方向から同時に撮影して、両眼視差を再現する任意の形態の撮像装置を意味している。他方、必ずしも画像データが複数必要であるわけではなく、対象物の画像データが一枚であっても各部分の寸法データを算出することが可能である。
深度データ測定装置として前述のステレオカメラを適用した場合、取得部3024Aで取得することができる画像データはRGB−D(Red、Green、Blue、Depth)データとすることができる。具体的には、画像データは、通常の単眼カメラで取得可能なRGB画像データに加えて、深度データに基づいてピクセル毎に深度データを有する深度マップを含むことができる。
(3−4−2)
上記説明においては、セマンティックセグメンテーションアルゴリズムやグラブカットアルゴリズムを採用して、対象物の形状データを抽出し、対象物と対象物以外の背景画像とを分離してもよいものとした。これに加えて、或いはこれに替えて、例えば、ステレオカメラを用いた場合には、ステレオカメラから取得される深度マップを用いて、対象物の形状データを対象物の深度データに関連付けて取得し、背景画像を分離してもよい。これにより、更に高精度に対象物の形状データを生成することが可能となる。
具体的には、ステレオカメラを用いる場合、抽出部3024Bは、取得部3024Aで取得した深度マップに基づいて、対象物が撮影された画像データから、対象物が写っている部分である対象物領域を抽出するのがよい。例えば、深度マップから、深度データが所定の範囲にはない領域を取り除くことにより、対象物領域が抽出される。抽出された対象物領域では、形状データは、ピクセルごとに対象物の深度データに関連付けられている。
変換部3024Cは、形状データを、前述の全長データに加えて、当該対象物領域の深度データにも基づいて新たな形状データに変換して、「階調シルエット画像」を生成する(後述)。
生成される階調シルエット画像は、単なる白黒の2値化データではなく、深度データに基づいて、例えば輝度値が0(「黒」)から1(「白」)までのデータで表された単色多階調のモノクロ画像である。つまり、階調シルエット画像データは、深度データに関連づけられて、対象物の形状に関して更に多くの情報量を有するものである。
階調シルエット画像を用いる場合、学習装置3025の処理部3027における処理は次のように実施するのがよい。なお、階調シルエット画像データは全長データにより規格化されている。
前処理部3027Aにおいて、3次元空間内に仮想的に設けた撮像装置を用いて所定方向からサンプル対象物の3次元物体を投影する際に、併せて撮像装置からサンプル対象物までの深度データも取得するのがよい。つまり、サンプル対象物のシルエット画像データは深度データに関連付けられる。生成されるサンプル対象物の階調シルエット画像は、深度データに基づいて、例えば輝度値が0(「黒」)から1(「白」)までで単色多階調のモノクロ画像とし、サンプル対象物の形状に関して更に多くの情報量を有する。
学習部3027Bにおいて対象物エンジン3021Aを生成する際には、サンプル対象物に関する所定個数の形状パラメータの値と、深度データに関連付けられたサンプル対象物の階調シルエット画像とを関連付けるように学習するのがよい。つまり、学習装置3025においてサンプル対象物の深度データに基づく学習処理は、更に多くの情報量に基づいているので、更に高精度な対象物エンジン3021Aが生成可能となる。
この変形例によれば、取得部3024Aに深度データを測定できる任意の機械を用いて構成される深度マップに基づいて対象物領域を抽出することにより、更に高精度に対象物の形状データを生成することが可能となる。また、階調シルエット画像データ(変換される形状データ)は対象物の深度データに関連付けられる。また、学習エンジン3021も深度データに基づく学習処理の結果生成されたものである。したがって、対象物の形状に関して更に多くの情報量を有し、算出部3024Dによる対象物の各部分の寸法データを更に高精度に算出することが可能となる。
更に、ステレオカメラ以外にも、LiDAR(Light Detection and Ranging)装置により深度データを求め、対象物と対象物以外の背景画像とを分離することが可能である。すなわち、取得部3024Aに深度データを測定できる任意の機械(深度データ測定装置)を用いることで、高精度に対象物の形状データを生成することが可能となる。
なお、ここでは階調シルエット画像を単なるシルエット画像と区別して記述したが、他の実施形態及び他の変形例においては、両者を区別せずに単にシルエット画像と記載する場合がある。
(3−4−3)
上記説明においては、S3013で、前処理部3027Aは、形状パラメータのデータ・セットを、乱数を用いて拡張するデータ拡張処理を行った。データ拡張処理は、サンプル対象物の数に応じてどの程度の数まで拡張するかを決定すればよい。サンプル数が予め十分に用意されている場合には、S3013の拡張処理は行わなくてもよい。
(3−4−4)
上記説明においては、サンプル対象物に対し、形状パラメータ(λ1,・・・,λ30)は学習装置3025の前処理部3027Aにおいて主成分分析によって取得した。ここで、サンプル対象物が「人」である場合の形状パラメータについて更に考察する。前述の例のように400個のサンプル対象物及び5,000個の頂点の3次元データを用いて主成分分析を行った結果、対象物が「人」である場合の形状パラメータは少なくとも次の特性を有することが考察された。
〔特性1〕
第1順位の主成分λ1は、人の身長との間で線形の関係を有するように関連付けられていた。具体的には、図14に示すように、第1順位の主成分λ1が大きくなればなるほど、人の身長が小さくなるというものであった。
特性1を考慮すれば、推定部3024Dによる人の形状パラメータの値の推定時は、第1順位の主成分λ1に関しては、対象物エンジン3021Aを用いることなく取得部3024Aで取得した身長データを利用すればよい。具体的には、第1順位の主成分λ1の値は、人の身長を説明変数とする線形回帰モデルを利用することにより、別途計算するよう
に構成すればよい。
この場合、学習段階で学習部3027Bにおいて対象物エンジン3021Aを生成する時においても、当該主成分λ1を学習対象から除いてもよい。前述のとおり、学習装置3025における学習段階では、ネットワーク・アーキテクチャの重み付けを行う。この際、入力されたシルエット画像を主成分分析することで得られる第1順位の主成分を除いた第2順位以降の主成分と、訓練データである形状パラメータλ2以降の値との誤差が最小化されるようにネットワーク・アーキテクチャの重み係数を設定してもよい。これにより、対象物が「人」である場合は、上記線形回帰モデルの利用と併せて、推定部3024Dにおける形状パラメータの値の推定精度を向上させることができる。
また、学習段階で学習部3027Bにおいて対象物エンジン3021Aを生成するときには、第1順位の主成分も含めて、形状パラメータλ1以降の値との誤差が最小化されるようにネットワーク・アーキテクチャの重み係数を設定してもよい。そして、第1順位の主成分λ1の値は、人の身長を説明変数とする線形回帰モデルを利用することにより、別途計算した値と置き換えてもよい。これにより、対象物が「人」である場合は、上記線形回帰モデルの利用と併せて、推定部3024Dにおける形状パラメータの値の推定精度を向上させることができる。
〔特性2〕
図15は、主成分である形状パラメータの再現率を示した概略グラフである。グラフにおいて横軸が寄与率によって順位付けされた主成分を示し、縦軸が固有値の分散説明率を示している。そして、棒グラフは、順位ごとの個別の分散説明率を示している。また、実線の折れ線グラフは、第1順位からの分散説明率の累積を示している。図15では、簡単のため、第10順位までの10個の主成分に関するグラフを概略的に示している。なお、主成分分析において求められる共分散行列の固有値は固有ベクトル(主成分)の大きさを表しており、固有値の分散説明率は主成分に対する再現率と考えてよい。
図15のグラフを参照すると、第1順位から第10順位までの10個の主成分で分散説明率の累積が約0.95を示している(破線矢印)。つまり、第1順位から第10順位までの10個の主成分の再現率が約95%であることが当業者には理解される。すなわち、前述の例では、次元削減によって特徴変換される形状パラメータは30次元としたが、これに限らず、仮に形状パラメータを10次元としても約95%をカバーできている。すなわち、上記説明において形状パラメータの個数(次元数)は30個としたが、特性2を考慮すれば、10個程度のものとしてよい。
(3−4−5)
上記説明においては、学習装置3025の前処理部3027Aにおいて、10,000個のサンプル対象物ごとに、正面方向及び側面方向の2枚のシルエット画像を投影により取得した。他方、対象物のシルエット画像は必ずしも2枚必要とするわけではなく、1枚でよい。
(3−5)製品製造システムへの適用
以下、前述の寸法データ算出装置3020を製品製造システム3001に適用する例について説明する。
(3−5−1)製品製造システムの構成
図16は本実施形態に係る製品製造システム3001の概念を示す模式図である。製品製造システム3001は、ユーザ3005が保有する端末装置3010と通信可能な寸法データ算出装置3020と、製品製造装置3030とを備え、所望の製品3006を製造するためのシステムである。図16では、一例として、対象物3007が人であり、製品3006が椅子であるときの概念を示している。但し、本実施形態に係る製品製造システム3001において、対象物3007及び製品3006はこれらに限定されるものではない。
端末装置3010は、所謂スマートデバイスにより実現することができる。ここでは、スマートデバイスに、ユーザ用プログラムがインストールされることで端末装置3010が各種機能を発揮する。具体的には、端末装置3010は、ユーザ3005により撮像される画像データを生成する。ここで、端末装置3010は、対象物を複数の異なる方向から同時に撮影して、両眼視差を再現するステレオカメラ機能を有するものでもよい。なお、画像データは端末装置3010で撮影されるものに限定されず、例えば、店舗内に設置されたステレオカメラを用いて撮影されたものを利用してもよい。
また、端末装置3010は、対象物3007の属性を示す属性データの入力を受け付ける。「属性」には、対象物3007の全長・重量・生成からの経過時間(年齢を含む。)等が含まれる。また、端末装置3010は、通信機能を有しており、寸法データ算出装置3020及び製品製造装置3030と端末装置3010との間で各種情報の送受信を実行する。
寸法データ算出装置3020は任意のコンピュータにより実現することができる。ここでは、寸法データ算出装置3020の記憶部3021は、端末装置3010のユーザ3005を識別する識別情報に関連付けて、端末装置3010から送信される情報を記憶する。また、記憶部3021は、寸法データを算出する情報処理を実行するために必要なパラメータ等を記憶する。
また、寸法データ算出装置3020の処理部3024は、前述のとおり、取得部3024A、抽出部3024B、変換部3024C、推定部3024D、及び算出部3024Eとして機能する。ここでは、取得部3024Aは、ユーザ3005によりステレオカメラで撮影された画像データ及び対象物3007の属性データを取得する。また、抽出部3024Bは、画像データから対象物3007の形状を示す形状データを抽出する。例えば、対象物の種類として「人」が予め設定されている場合には、人を識別するための訓練データを用いてセマンティックセグメンテーションのアルゴリズムが構築されている。また、抽出部3024Bは、ステレオカメラから取得される深度データに基づく深度マップを用いて、対象物と対象物以外の背景画像とを分離するものでもよい。この場合、変換部3024Cは、深度マップにおいて対象物の深度データに関連付けられた形状データを、全長データに基づいて階調シルエット画像に変換する。生成された階調シルエット画像は、深度データに基づいて、単色多階調のモノクロ画像とするのがよい。変換部3024Cは、生成されたシルエット画像を推定部3024Dに入力するための受付部としても機能することになる。
推定部3024Dは、サンプル対象物のシルエット画像とサンプル対象物に関連付けられた所定個数の形状パラメータの値とを関連付けた対象物エンジン3021Aを使用して、シルエット画像から所定個数の形状パラメータの値を推定する。算出部3024Eは、推定された所定個数の形状パラメータの値に基づいて、対象物の寸法データを算出する。具体的には、推定部3024Dで推定された対象物の形状パラメータの値から、対象物における複数の頂点の3次元データを構成し、更に、当該3次元データに基づいて対象物における任意の2つの頂点の間の寸法データを算出する。
製品製造装置3030は、寸法データ算出装置3020を用いて算出された少なくとも1つの寸法データを用いて、対象物3007の形状に関連する所望の製品を製造する製造装置である。なお、製品製造装置3030は、自動で製品を製造・加工できる任意の装置を採用することができ、例えば3次元プリンタ等により実現することができる。
(3−5−2)製品製造システムの動作
図17は、本実施形態に係る製品製造システム3001の動作を説明するためのシーケンス図である。また、図18及び図19は端末装置3010の画面遷移を示す模式図である。
まず、端末装置3010を介して対象物3007の全体が異なる方向から写るように複数回撮像され、対象物3007が撮像された複数の画像データが生成される(T3001)。ここでは、図18及び図19にそれぞれ示すような、正面及び側面の写真が複数枚撮影される。このような正面及び側面の写真は端末装置3010のステレオカメラ機能をオンにして撮影するのがよい。
次に、ユーザ3005により端末装置3010に、対象物3007の属性を示す属性データが入力される(T3002)。ここでは、属性データとして、対象物3007の全長データ・重量データ・経時データ(年齢等を含む。)等が入力される。そして、これらの複数の画像データ及び属性データが端末装置3010から寸法データ算出装置3020に送信される。
寸法データ算出装置3020は、端末装置3010から複数の画像データ及び属性データを受信すると、これらのデータを用いて対象物3007の各部分の寸法データを算出する(T3003)。なお、端末装置3010には、設定に応じて、寸法データが画面に表示される。そして、製品製造装置3030が、寸法データ算出装置3020により算出された寸法データに基づいて所望の製品3006を製造する(T3004)。
(3−5−3)製品製造システムの特徴
以上説明したように、本実施形態に係る製品製造システム3001は、ユーザ3005が保有する端末装置3010と通信可能な寸法データ算出装置3020と、製品製造装置3030とを備える。
端末装置3010(撮影装置)は、対象物3007の画像を複数枚撮影する。寸法データ算出装置3020は、取得部3024A、抽出部3024B、変換部3024C、推定部3024D、及び算出部3024Eを備える。取得部3024Aは、対象物が撮影された画像データ及び対象物の全長データを取得する。抽出部3024Bは、画像データから対象物の形状を示す形状データを抽出する。変換部3024Cは形状データを全長データに基づいてシルエット画像に変換する。推定部3024Dは、サンプル対象物のシルエット画像とサンプル対象物に関連付けられた所定個数の形状パラメータの値とを関連付けた対象物エンジン3021Aを使用して、シルエット画像から所定個数の形状パラメータの値を推定する。算出部3024Eは、推定された所定個数の形状パラメータの値に基づいて、対象物の寸法データを算出する。製品製造装置3030は、算出部3024Eにより算出された寸法データを用いて製品3006を製造する。このような構成により、寸法データ算出装置3020が高精度に対象物3007の各部分を高精度に算出するので、対象物3007の形状に関連する所望の製品を提供できる。
例えば、製品製造システム3001により、心臓等の各種臓器の形状の測定から、臓器の模型を製造することができる。また、例えば、人のウエスト形状の測定から各種ヘルスケア製品等を製造することができる。また、例えば、人の形状から当該人のフィギュア製品を製造することができる。また、例えば、人の形状から当該人に適合する椅子等を製造することができる。また、例えば、車の形状から車のおもちゃを製造することができる。また、例えば、任意の風景画からジオラマ等を製造することができる。
なお、上記説明においては、寸法データ算出装置3020と製品製造装置3030とが別部材の装置として説明しているが、これらは一体として構成されるものでもよい。
<第4実施形態>
以下、既に説明した構成及び機能については略同一符号を付して説明を省略する。
(4−1)寸法データ算出装置の構成
図20は本実施形態に係る寸法データ算出システム4200の構成を示す模式図である。寸法データ算出システム4200は、寸法データ算出装置4120及び学習装置4125を備える。
寸法データ算出装置4120は、記憶部4121、入出力部4122、通信部4123、及び処理部4124を備える。また、学習装置4125は、記憶部4126及び処理部4127を備える。なお、寸法データ算出装置4120及び学習装置4125は、LSI、ASIC、FPGA等を用いてハードウェアとして実現されてもよい。
記憶部4121,4126は、何れも各種情報を記憶するものであり、メモリ及びハードディスク等の任意の記憶装置により実現される。例えば、記憶部4121は、処理部4124において寸法データ算出に関する情報処理を実行するために、対象物エンジン4121Aを含む各種データ、プログラム、情報等を格納する。また、記憶部4126は、対象物エンジン4121Aを生成するために、学習段階で利用される訓練データを格納する。
入出力部4122は、前述の入出力部3022と同様の構成及び機能を有するものである。また、通信部4123は、前述の通信部3023と同様の構成及び機能を有するものである。
処理部4124は、コンピュータのCPU,GPU等に、記憶部4121に記憶されたプログラムが読み込まれることにより、取得部4124A、推定部4124D、及び算出部4124Eとして機能する。同様に、処理部4127は、コンピュータのCPU,GPU等に、記憶部4126に記憶されたプログラムが読み込まれることにより、前処理部4127A及び学習部4127Bとして機能する。
寸法データ算出装置4120の処理部4124において、取得部4124Aは、対象物の全長データ、重量データ、経時データ(年齢等を含む。)とのうちの少なくともいずれかを含む属性データを取得する。本実施形態では、取得部4124Aが、属性データを推定部4124Dに入力するための受付部としても機能することになる。
推定部4124Dは、属性データから所定個数の形状パラメータの値を推定する。推定には、対象物エンジン4121Aが使用される。推定部4124Dで推定された対象物の形状パラメータの値は、後述のように、対象物が有する任意の部位に関連する寸法データに関連付けることができる。
算出部4124Eは、推定部4124Dによって推定された対象物の形状パラメータの値から、対象物の寸法データを算出する。具体的には、算出部4124Eは、推定部4124Dで推定された対象物の形状パラメータの値から、対象物における複数の頂点の3次元データを構成し、更に、当該3次元データに基づいて対象物における任意の2つの頂点の間の寸法データを算出する。
学習装置4125の処理部4127において、前処理部4127Aは、学習のための各種前処理を実施する。特に、前処理部4127Aは、サンプル対象物の3次元データを次元削減により特徴抽出することを通じて、所定個数の形状パラメータを特定する。サンプル対象物の形状パラメータの値、及び対応する属性データは、訓練データとして予め記憶部4126に格納されている。
なお、サンプル対象物の3次元データとして、対応する属性データ(全長データ、重量データ、経時データ(年齢等を含む。))が用意されているとする。対応する属性データは、訓練データとして記憶部4126に格納される。
学習部4127Bは、サンプル対象物の形状パラメータの値と、対応する属性データとの関係を関連付けるように学習する。学習の結果、対象物エンジン4121Aが生成される。生成された対象物エンジン4121Aは、電子ファイルの形態で保持できる。寸法データ算出装置4120で対象物の寸法データを算出する際には、対象物エンジン4121Aは、記憶部4121に格納され推定部4124Dによって参照される。
(4−2)寸法データ算出システムの動作
図21及び図22を参照して、図20の寸法データ算出システム4200の動作を説明する。図21は、学習装置4125の動作(S4110)を示すフローチャートであり、ここでは、サンプル対象物データに基づいて対象物エンジン4121Aを生成する。図22は寸法データ算出装置4120の動作を示すフローチャートであり、ここでは、対象物の画像データに基づいて対象物の寸法データを算出する。
(4−2−1)学習装置の動作
最初に、サンプル対象物のデータが準備され、記憶部4126に格納される(S4111)。一例では、準備されるデータは、400個のサンプル対象物のデータであり、サンプル対象物ごとに準備される5,000個の3次元データと、サンプル対象物ごとに準備される属性データとを含む。3次元データには、サンプル対象物が有する頂点の3次元座標データが含まれる。また、3次元データには、3次元物体を構成する各メッシュの頂点情報及び各頂点の法線方向等のメッシュ・データが含まれてもよい。
また、第1実施形態と同様、サンプル対象物の3次元データは、頂点番号と共に部位の情報が関連付けられている。
続いて、前処理部4127Aは、次元削減により、所定個数(次元)の形状パラメータへの特徴変換を行う(S4112)。この特徴変換処理も第1実施形態と同様である。前述の例では、主成分分析に係る射影行列を用いた行列演算の結果、400個のサンプル対象物がそれぞれ有する15,000次元(5,000×3)のデータは、例えば30次元の主成分の形状パラメータΛに特徴変換される。
そして、学習部4127Bが、S4111で準備された複数のサンプル対象物の属性データと、S4112で得た複数の形状パラメータのデータ・セットとの組を訓練データに用いて、両者の関係を機械学習する(S4115)。
具体的には、学習部4027Bは、対象物の属性データから、変換属性データYを求める。変換属性データYの要素yrと形状パラメータΛの要素λmとを関連づける変換行列Zの要素をzrmと表記する。変換行列Zは、〔s行、n列〕からなる行列である。また、記号mは、1≦m≦nであり、前述の例ではnは形状パラメータΛの次元数である30である。記号rは、1≦r≦sであり、sは変換属性データYから得られる演算に用いられる要素の数である。
例えば、対象物の属性データが全長データh、重量データw、及び経時データaからなるものと想定する。つまり、属性データは、(h,w,a)の要素のセットである。この場合、学習部4027Bは、対象物の属性データの各要素(h,w,a)を2乗した値(二次項ともいう。)と、各要素を掛け合わせた値(相互作用項ともいう。)と、各要素自体の値(一次項ともいう。)とを求める。
その結果、次の9個の要素を有する変換属性データYが得られる。
次に、学習部4027Bは、400個のサンプル対象物に関連付けられた属性データから得られる変換属性データYと、サンプル対象物の3次元データから得られた形状パラメータΛとの組を回帰分析することにより、次に示すような、〔9行、30列〕からなる変換行列Zを求める。
このようにして求められた変換行列Zのデータは、対象物エンジン4121Aとして記憶部4026に記憶される。
(4−2−2)寸法データ算出装置の動作
寸法データ算出装置4120は、学習装置4125で生成された対象物エンジン4121Aの電子ファイル、及び学習装置4125で得た主成分分析の射影情報を記憶部4121に格納して、対象物の寸法データ算出に使用する。
最初に、取得部4124Aは、入出力部4122を通じて、対象物の属性データを取得する(S4121)。これにより、対象物の属性データを受け付ける。次いで、予め記憶部4121に格納された対象物エンジン4121Aを使用して、推定部4124Dは、受け付けた属性データから対象物の形状パラメータの値を推定する(S4124)。
例えば、対象物の属性データが全長データh、重量データw、及び経時データaからなるものと想定する。つまり、属性データは、(h,w,a)の要素のセットである。S4124では、上述したように、推定部4124Dは、対象物の属性データの各要素(h,w,a)を2乗した値と、各要素を掛け合わせた値と、各要素自体の値とからなる変換属性データYを得る。
最後に、算出部4124Eは、対象物の形状パラメータの値に基づいて、対象物が有する部位に関連する寸法データを算出する(S4125)。具体的には、取得部4124Aが取得した対象物の属性データから、変換属性データYを算出する。そして、その変換属性データYに上述した変換行列Zを掛け合わせることで形状パラメータΛを算出する。この後は、第3実施形態におけるもの(S3025)と同様に、3次元データから3次元物体を仮想的に構成し、3次元物体上の曲面に沿って2つの頂点の間の寸法データを算出する。なお、立体的な距離の計算には、3次元物体を構成する各メッシュの頂点情報及び各頂点の法線方向等のメッシュ・データを用いることができる。
このように、本実施形態の寸法データ算出装置4120は、対象物エンジン4121Aを使用することにより、対象物の属性データから所定個数の形状パラメータの値を高精度に推定することができる。第3実施形態とは異なり、対象物の画像入力の必要がなく、かつ図13のS3022(形状データの抽出処理)及びS3023(リスケール処理)を必要としないので、効率的である。
また、高精度に推定された形状パラメータの値から、対象物の3次元データを高精度に復元することができるので、特定部位のみならず任意の2つの頂点間を採寸対象箇所として、高精度に算出することができる。特に、算出される2つの頂点の間の寸法データは、3次元データから構成される3次元物体に基づいて、立体的な形状に沿って算出されるので、高精度である。
(4−3)寸法データ算出システムの特徴
以上説明したように、本実施形態に係る寸法データ算出システム4200は、寸法データ算出装置4120及び学習装置4125を備える。寸法データ算出装置4120の一部として構成される情報処理装置は、取得部(受付部)4124A、推定部4124D、及び算出部4124Eを備える。取得部(受付部)4124Aは、対象物の属性データを受け付ける。推定部4124Dは、サンプル対象物の属性データと、サンプル対象物に関連付けられた所定個数の形状パラメータの値とを関連付けた対象物エンジン4121Aを使用して、受け付けた属性データから対象物の形状パラメータの値を推定する。そして、推定された対象物の形状パラメータの値が、対象物が有する任意の部位に関連する寸法データに関連付けられる。
したがって、寸法データ算出装置4120は、予め作成済みの対象物エンジン4121Aを使用することにより、属性データから所定個数の形状パラメータの値を効率的に推定することができる。また、推定される形状パラメータの値は高精度である。また、高精度に推定された形状パラメータの値を用いることで、対象物の任意の部位に関連するデータを効率的且つ高精度で算出することができる。このように、寸法データ算出装置4120によれば、対象物について算出される寸法データを効率的且つ高精度で提供することができる。
(4−4)製品製造システムへの適用
図23は本実施形態に係る製品製造システム4001Sの概念を示す模式図である。本実施形態に係る寸法データ算出装置4120も、第3実施形態に係る寸法データ算出装置3020と同様に、製品製造システム4001Sに適用することが可能である。
本実施形態に係る端末装置4010Sは、対象物4007の属性を示す属性データの入力を受け付けるものであればよい。「属性」としては、対象物1007の全長・重量・生成からの経過時間(年齢を含む)等が挙げられる。
また、前述のように、寸法データ算出装置4120の処理部4124は、取得部4124A、推定部4124D、及び算出部4124Eとして機能する。算出部4124Eは、推定部4124Dで得られた対象物の形状パラメータの値に基づいて、対象物が有する部位に関連する寸法データを算出する。
製品製造システム4001Sでは、寸法データ算出装置4120が効率的且つ高精度に対象物1007の寸法データを算出するので、対象物1007の形状に関連する所望の製品を提供できる。その他、第4実施形態に係る製品製造システム4001Sは、第3実施形態の製品製造システム3001と同様の効果を発揮することができる。
<他の実施形態1:シルエット画像生成装置>
(5−1)シルエット画像生成装置の構成
図24は、他の実施形態に係るシルエット画像生成装置5020の構成を示す模式図である。第1実施形態及び第3実施形態において生成されるシルエット画像(階調シルエット画像を含む)は、このシルエット画像生成装置5020にしたがって生成されてもよい。つまり、シルエット画像生成装置5020は、第1実施形態に係る寸法データ算出装置1020の一部として、又は第3実施形態に係る寸法データ算出装置3020の一部として構成されてもよい。
シルエット画像生成装置5020は任意のコンピュータにより実現することができ、取得部5024A、抽出部5024B、及び変換部5024Cを備える。
取得部5024Aは、第1実施形態に係る寸法データ算出装置1020の取得部1024A、及び/又は第3実施形態に係る寸法データ算出装置3020の取得部3024Aの全部又は一部に相当してよい。また、抽出部5024Bは、第1実施形態に係る寸法データ算出装置1020の抽出部1024B、及び/又は第3実施形態に係る寸法データ算出装置3020の抽出部3024Bの全部又は一部に相当してよい。同様に、変換部5024Cは、第1実施形態に係る寸法データ算出装置1020の変換部1024C、及び/又は第3実施形態に係る寸法データ算出装置3020の変換部3024Cの全部又は一部に相当してよい。
取得部5024Aは、対象物が撮影された画像データを取得する。取得部5024Aは、例えば、撮像装置により、対象物を複数の異なる方向から撮影した複数の画像データを取得する。ここでは、深度データを取得可能な深度データ測定装置が適用可能であり、深度データに基づいてピクセル毎に深度データを有する深度マップが構成される。深度データ測定装置を適用することにより、取得部5024Aで取得することができる画像データは、RGB−D(Red、Green、Blue、Depth)データを含むことができる。具体的には、画像データは、通常の単眼カメラで取得可能なRGB画像データに加えて、このような深度マップを取得することができる。
深度データ測定装置の一例は、ステレオカメラであり、以下の説明においてもステレオカメラを適用するものとする。ステレオカメラで対象物(特に人物)を撮影する際は、対象物を正確に特定できるようにするために、ディスプレイの所定範囲にその全体が収容されるようユーザにガイドするのがよい。一例では、ディスプレイ上にガイド領域を表示する、又はガイドメッセージを表示してユーザに促すようにするのがよい。これにより、ステレオカメラから所望の方向及び距離に対象物を位置することができ、シルエット画像生成時のノイズを低減することができる。
抽出部5024Bは、画像データから対象物の形状を示す形状データを抽出する。より詳しくは、抽出部5024Bは、3次元点群生成部5124、背景点群除去部5224、平面点群除去部5324、対象物領域抽出部5424、形状データ抽出部5524、及び物体検出部5624を含む。
3次元点群生成部5124は、取得した深度マップから3次元点群データを生成し、仮想3次元座標空間に点の集合からなる3次元点群を配備する。それぞれの点は仮想3次元空間内に3次元座標を有する。なお、仮想3次元座標空間では、ステレオカメラが仮想的に原点に配置され、ステレオカメラの向きに応じて3次元座標(xyz)系が規定される。特に、ステレオカメラの光軸方向が奥行方向(z軸方向)として規定される。
背景点群除去部5224は、生成された3次元点群データのうち、仮想3次元座標空間の奥行方向に沿って所定の距離より離れて存在する3次元点群のデータを取り除く。取り除かれる点は、ステレオカメラから遠方に存在することから背景画像を構成するものとみなすことができ、対象物が撮影された画像データから背景部分を除去するのがよい。これにより、ノイズとなる3次元点群を効果的に除去することができるので、対象物領域抽出部5424で抽出される対象物領域の特定の精度を向上させることができる。
平面点群除去部5324は、生成された3次元点群データのうち平面の部分に対応して存在する3次元点群データを取り除く。対象物領域を精度よく特定するためには、対象物が撮影された画像データから、対象物の周囲に存在する平面部分を特定し、除去するのがよい。そのためには、生成された3次元点群のデータを用いて平面部分を推定する必要がある。
具体的には、平面点群除去部5324は次のように動作するのがよい。
まず深度マップから生成された3次元点群データから、画像データにおける平面部分を推定する。ここでの平面は例えば床である。つまり、対象物が人である場合は、平面部分は、直立した人が接している床部分である。
通常、3次元空間におけるxyz座標平面は次の方程式f(x,y,z)=0で表される。
f(x,y,z)=ax+by+cz+d=0
一例では、3次元点群が配備された仮想3次元座標空間において、平面部分は、公知のランダムサンプリング手法によりサンプルされる複数のサンプル平面の中から1つが選択される。典型的には、ランダムサンプリングは、RANSAC(Random Sample Consensus)によるロバスト推定のアルゴリズムが適用可能である。
より詳しくは、まず、法線ベクトル(a,b,c)及びdをランダムに決定することでサンプル平面をサンプルする。次いで、サンプル平面に対して、どれくらいの3次元点群が関連付けられるかについて、次の不等式を満たす3次元点群の点を特定する。なお、DSTは所定の閾値距離である。
|f(x,y,z)|=|ax+by+cz+d|≦DST
上記不等式を満たす点(x,y,z値をそれぞれ有する。)は、3次元点群のうちサンプル平面上に存在するものとみなされる。理論的には閾値距離DST=0であるが、撮影環境やステレオカメラの性能等を考慮して、サンプル平面から所定の微少距離内にある3次元点群データも含めるべく、閾値距離DSTは0に近い値に予め設定するのがよい。ランダムに決定される複数のサンプル平面のうち、上記不等式を満たす3次元点群の数が多いサンプル平面、つまり、3次元点群の含有率が最も大きいサンプル平面が、画像データにおける所望の平面部分であると推定される。
換言すると、平面点群除去部5324は、サンプル平面の抽出を複数回繰り返してから、3次元点群の含有率が最も大きいサンプル平面を決定するので、所望の平面部分の推定に対するロバスト性を高めることができる。
引き続き、平面点群除去部5324は、生成された3次元点群データから、推定された平面部分に存在する点の3次元点群データを取り除く。取り除かれる点を有する平面部分は、例えば、画像データにおける床部分である。つまり、平面点群除去部5324により、対象物が撮影された画像データから床部分を除去することができる。これにより、ノイズとなる3次元点群を効果的に除去することができるので、対象物領域抽出部5524で抽出される対象物の対象物領域の特定精度を向上させることができる。
また、平面点群除去部5324による処理を繰り返すことにより、別の平面部分を更に推定して、当該別の平面部分に存在する点の3次元点群データを更に取り除いてもよい。例えば、床部分を推定し、その3次元点群データを全体の3次元点群データから一旦取り除いた後に、再度、前述のランダムサンプリング手法によりサンプルされるサンプル平面の中から平面を推定する。これにより、今度は壁の部分を推定することができる。つまり、床部分のみならず壁部分の3次元点群データも画像データから除去することができ、対象物の対象物領域を特定する精度を更に向上させることができる。
なお、平面部分の推定の精度は、対象物を撮影する際の撮影環境にも依存する。例えば、平面部分の推定を正確に行うには、平面部分を構成する点の数を、対象物を構成する点の数よりも大きくする必要がある。したがって、例えば、多くの壁が写り込まない撮影環境をユーザに選択させる、又は店舗内のステレオカメラを多くの壁が写り込まない場所に固定的に設置する等を考慮するのがよい。
対象物領域抽出部5424は、3次元点群データを用いて対象物の対象物領域を抽出する。3次元点群生成部5124によって深度マップから生成された3次元点群から背景点群除去部5224及び/又は平面点群除去部5324によって取り除かれ、つまり、ノイズ除去された後の3次元点群データを用いて、更に対象物に相当する3次元点群を特定する。例えば、仮想3次元空間における所定の空間範囲にある3次元点群を特定すればよい。そして、特定された3次元点群データに基づくことで画像データにおける対象物の対象物領域を抽出することができる。このようにして抽出される対象物領域は、効果的にノイズ除去処理されたものであり、高精度である。これにより、変換部5024Cによって変換されるシルエット画像の精度をまた向上させることができる。
形状データ抽出部5524は、対象物領域抽出部5424によって抽出された対象物領域に対応する、深度マップ中の領域の深度データに基づいて、対象物の形状を示す形状データを抽出する。
物体検出部5624は、取得部5024Aで取得されたRGB画像データを用いて、物体検出により画像データにおける対象物の画像領域を抽出する。対象物の画像領域は、奥行き(z)方向に対して垂直となる2次元(xy)座標の領域で規定される。物体検出は公知の手法を用いてよく、例えば、ディープラーニングによる物体検出アルゴリズムを用いた領域特定が適用可能である。ディープラーニングによる物体検出アルゴリズムの一例は、R−CNN(Regions with Convolutional Neural Networks)である。
物体検出部5624で抽出された画像領域に対応する部分の深度マップに基づいて、前述の3次元点群生成部5124が3次元点群データを生成するようにしてもよい。これにより、更にノイズの少ない3次元点群データを生成することができ、その結果、形状データ抽出部5524により抽出される形状データの精度を向上させることができる。
変換部5024Cは、形状データ抽出部5524で抽出された形状データを変換して、対象物のシルエット画像を生成する。変換されるシルエット画像は、単なる白黒の2値化データで表されるのではなく、深度データに基づいて、対象物の画像領域が例えば輝度値が0(「黒」)から1(「白」)までのデータで表された単色多階調のモノクロ画像(階調シルエット画像)とすることができる。つまり、シルエット画像データは、対象物の画像領域を深度データに関連づけられることにより、更に多くの情報量を有することができる。
(5−2)シルエット画像生成装置の動作
図25は、図24で説明した他の実施形態に係るシルエット画像生成装置5020の動作を説明するためのフローチャートである。本フローチャートを通じて、対象物が撮影された画像データから対象物のシルエット画像を生成することができる(S5000)。
まず、取得部5024Aは、対象物が撮影された、深度マップを含む画像データを取得する(S5010)。次いで、物体検出部5624は、画像データに含まれるRGB画像データから、対象物の画像領域を抽出する(S5020)。なお、当該ステップは任意としてよい。続いて、3次元点群生成部5124は、画像データに含まれる深度マップに対応する3次元点群データを生成して仮想3次元座標空間を構成する(S5030)。S5020を実行している場合は、対象物の画像領域(xy座標領域)に対応する部分の深度マップに基づいて、3次元点群データを生成するのがよい。
次いで、背景点群除去部5224は、仮想3次元座標空間の奥行(z)方向に沿って所定の閾値距離より離れた3次元点群データを取り除く(S5040)。また、平面点群除去部5324は、画像データにおける平面部分を推定し(S5050)、更に3次元点群データから平面部分に対応する3次元点群データを取り除く(S5060)。なお、S5050及びS5060を繰り返して、画像データにおける複数の平面部分を推定し、3次元点群データを取り除いてもよい。
続いて、対象物領域抽出部5424は、取り除いた後の3次元点群データに基づいて、対象物の対象物領域を抽出する(S5070)。そして、形状データ抽出部5524は、深度マップにおける対象物領域の深度データに基づいて、対象物の形状を示す形状データを抽出する(S5080)。最後に、変換部5024Cは、形状データを変換することにより、対象物のシルエット画像を生成する。
(5−3)シルエット画像生成装置の特徴
(5−3−1)
以上説明したように、本実施形態に係るシルエット画像生成装置5020は、取得部5024A、抽出部5024B、及び変換部5024Cを備える。取得部5024Aは、対象物が撮影された、深度マップを含む画像データを取得する。抽出部5024Bは、深度マップから生成される3次元点群データを用いて対象物の対象物領域を抽出し、対象物領域に対応する深度マップの深度データに基づいて、対象物の形状を示す形状データを抽出する。変換部5024Cは、形状データを変換して、対象物のシルエット画像を生成する。
したがって、シルエット画像生成装置5020は、深度マップを用いて3次元点群データを生成した上で、対象物のシルエット画像を生成する。3次元点群データにおいて、効果的にノイズとなる3次元点群を特定し、除去することができるので、対象物の対象物領域の特定精度を向上させることができる。これにより、高精度なシルエット画像を得ることができる。また、深度マップを用いることにより、シルエット画像として、データに関連付けられたモノクロ画像である階調シルエット画像を生成することができ、対象物の形状に関して多くの情報量を有することができる。
(5−3−2)
また、シルエット画像生成装置5020では、抽出部5024Bが、3次元点群データのうち、奥行方向に沿って所定の閾値距離より離れて存在する3次元点群データを取り除いたものに基づいて、対象物の対象物領域を抽出する。これにより、画面データにおいて背景を構成しノイズとなる3次元点群を効果的に除去することができるので、対象物領域抽出部5524で抽出される対象物の対象物領域の特定精度を向上させることができる。
(5−3−3)
また、シルエット画像生成装置5020では、抽出部5024Bが、更に、深度マップから生成される3次元点群データから、画像データにおける平面部分を推定し、3次元点群データのうち、推定された平面部分に存在する3次元点群データを取り除いたものに基づいて、対象物の対象物領域を抽出する。
(5−3−4)
ここでは、抽出部5024Bが、ランダムサンプリングにしたがってサンプルされるサンプル平面に関連付けられる3次元点群データの含有率を算出することに基づいて、平面部分を推定する。そして、当該推定を繰り返すことにより、平面部分を推定する。これにより、サンプル平面の抽出を複数回繰り返してから、3次元点群データの含有率が最も大きいサンプル平面を決定するので、所望の平面部分の推定に対するロバスト性を高めることができる。
また、抽出部5024Bが、平面部分を推定する処理を繰り返すことにより、複数の平面部分を推定する。これにより、画面データにおいて平面を構成しノイズとなる3次元点群を効果的に除去することができるので、対象物領域抽出部5524で抽出される対象物の対象物領域の特定精度を向上させることができる。
(5−3−5)
更に、シルエット画像生成装置5020では、取得部5024Aが更に、RGB画像データを取得し、抽出部5024Bが更に、RGB画像データを用いて対象物の画像領域を抽出し、画像領域に対応する部分の深度マップから3次元点群データを生成する。3次元点群データの生成の前に、対象物の画像領域が予め抽出されることにより、対象物領域抽出部5524で抽出される対象物の対象物領域の特定精度をより一層向上させることができる。
(5−3−6)
更に、本実施形態においては、対象物が人であり、平面部分が床を含むものとするのが好適である。これにより、床に上に直立する人のシルエットが効果的に生成される。
<他の実施形態2:寸法データ算出装置>
(6−1)寸法データ算出装置の構成
図26は、他の実施形態に係る寸法データ算出装置6020の構成を示す模式図である。寸法データ算出装置6020は、形状パラメータ取得部6024D及び算出部6024Eを備える。
本実施形態に係る寸法データ算出装置6020は、第3実施形態及び第4実施形態、並びにこれらの変形例に適用可能である。例えば、本実施形態による寸法データ算出装置6020が備える形状パラメータ取得部6024Dは、第3実施形態の取得部3024A、抽出部3024B、変換部3024C、及び推定部3024Dの全部又は一部として構成されてもよい。或いは、第4実施形態の取得部4124A及び推定部4124Dの全部又は一部として構成されてもよい。また、本実施形態による寸法データ算出装置6020が備える算出部6024Eは、第3実施形態における算出部3024Eの全部又は一部、或いは第4実施形態における算出部4124Eの全部又は一部として構成されてもよい。
形状パラメータ取得部6024Dは、対象物の形状パラメータの値を取得する。
算出部6024Eは、対象物の形状パラメータの値から対象物の3次元データを構成し、所定の部位に関連付けられた所定の部位領域を構成する3次元データの頂点の情報に基づいて、任意の部位の寸法データを算出する。なお、寸法データは、任意の部位に関するものとすることができる。寸法データを算出するために、各部位に応じた算出アルゴリズムを設定することができる。
算出部6024Eは、3次元データ構成部6124、部位領域構成部6224、計算点抽出部6324、及び寸法データ算出部6424を備える。
算出部6024Eの3次元データ構成部6124は、取得した形状パラメータの値から対象物の3次元データを構成する。第3実施形態及び第4実施形態において説明したように、形状パラメータ取得部6024Dで取得した形状パラメータの値に対し、学習段階において実施した次元削減に関する射影の逆変換の処理を行うことにより、3次元データが構成される。構成される3次元データは、3次元メッシュ・データとするのがよく、3次元物体を構成するメッシュの頂点の集合の情報(例えば、頂点の3次元座標)である。
以下の例では、これに限定されないが、例えば、寸法測定対象となる対象物が人体であり、構成される3次元物体が人体モデルであることを想定する。図27a及び図27bは対象物を人体とした場合の3次元空間における人体モデルの概略図である。人体モデルは3次元メッシュ・データで構成されている(メッシュについて不図示)。また、人体モデルは、例えば水平面に直立したモデルとするのがよい。
図27aは人体モデルの平面図であり、図27bはその正面図である。人体モデルに対し、3次元空間において、側面方向がx軸、正面方向がy軸、及び身長方向がz軸となるように3次元座標系が調整されているものとする。より詳しくは、x軸は、正方向が人体モデルを正面から見て身体重心から左半身方向であり、負方向が同右半身方向である。y軸は、正方向が身体重心から背面方向であり、負方向が身体重心から正面方向である。z軸は、正方向が身長方向の身体重心から上半身方向(又は鉛直上向き方向)であり、負方向が同下半身(又は鉛直下向き方向)方向である。
図26に戻り、算出部6024Eの部位領域構成部6224は、3次元データ構成部6124で構成された3次元メッシュ・データの頂点の情報から、所定の部位に関連付けられる所定の部位領域を構成する。例えば、部位領域は、重心軸を有する筒状領域とするのがよい。筒状領域は、所定の部位に応じて、所定の範囲で3次元物体を部分的に構成する3次元メッシュ・データの頂点の集合によって構成される。また、部位領域の構成には、頂点の集合の分布を所定の条件で分類(クラスタリング)することを含んでもよい。
より詳しくは、部位「ヒップ」や「ウエスト」には、これらを収容する胴体領域がそれぞれ関連付けられ、同様に、部位「手首まわり」には腕領域が、部位「アームホール」には肩領域が関連付けられる。なお、部位領域は、筒状領域に限定されず、任意の3次元空間内の領域としてよい。また部位領域は立体領域のみならず平面領域としてもよい。
計算点抽出部6324は、部位領域を構成する3次元メッシュ・データの頂点の集合から、所定個数の計算点を抽出する。より詳しくは、計算点抽出部6324は、所定の部位に応じて、3次元メッシュ・データの頂点の集合から、部位領域に部分的に関連付けられる計算点を選択的に抽出する。例えば、筒状領域の重心軸に直交して規定され、重心軸を原点とする(2次元)座標系の各象限に関して筒状領域を分割し、各象限から個別に計算点を選択的に抽出する。
計算点抽出部6324で抽出される計算点の個数は、部位領域が筒状領域の場合には、計算量及び精度の観点から3〜5つの何れかとするのがよい。発明者の深い知見に基づけば、6つ以上の計算点を抽出すると計算量が増大し、計算効率が低下することになり得る一方、少なくとも3つの計算点が抽出できれば高い精度で寸法データが計算できることが判明している。
また、部位領域を分割する態様及びその分割数は、部位に応じて個別に設定するのがよい。更に、分割された部位領域に関連付けられる計算点を抽出するのに加えて、所定の条件を満たす3次元メッシュ・データの頂点を、付加的に計算点として抽出してもよい。
寸法データ算出部6424は、計算点抽出部6324で抽出された計算点に基づいて、寸法データを具体的に算出する。例えば、部位領域が筒状領域である場合は、抽出される計算点の情報に基づいて、筒状領域の周に沿って周の長さを計算することにより、寸法データが算出される。より詳しくは、筒状領域の周に沿って隣り合う計算点をそれぞれ線で繋ぐように距離の総和を計算することにより、周の長さが計算される。このように、抽出された計算点の情報を用いて筒状領域の周の長さを計算することにより、効率的かつ高精度に寸法データを算出することができる。
(6−2)寸法データ算出装置の動作
図28は、図26に関して説明した寸法データ算出装置6020の動作を説明するためのフローチャートである。本フローチャートによる処理(S6000)を通じて、対象物に関し、形状パラメータの値から所定の部位の寸法データを算出することができる。
まず、形状パラメータ取得部6024Dは、対象物の形状パラメータの値を取得する(S6010)。なお、当該ステップは、第3実施形態における推定部3024D及び第4実施形態の推定部4124Dにおける推定処理を通じて実施されるのがよい。
次に、算出部6024Eの3次元データ構成部6124は、対象物の形状パラメータの値から、3次元メッシュ・データを構成する(S6020)。構成される3次元メッシュ・データは、3次元物体を構成するメッシュの頂点の集合の情報(例えば、頂点の3次元座標)である。
引き続き、部位領域構成部6224は、構成された3次元メッシュ・データの頂点の集合の情報から、所定の部位に予め関連付けられている所定の部位領域を構成する(S6030)。
そして、計算点抽出部6324は、部位領域に関連付けられる特徴的な複数の計算点を選択的に抽出する(S6040)。より詳しくは、所定の部位に応じて部位領域が分割され、分割された部位領域から個別に計算点が3〜5つ程度選択される(具体的な部位に関する計算点の抽出例について後述)。
最後に、寸法データ算出部6424は、抽出された計算点に基づいて、寸法データを算出する(S6050)。例えば、部位領域が筒状領域である場合には、抽出された計算点に基づいて、筒状領域の周の長さを計算することにより、寸法データが算出される。より詳しくは、筒状領域の周に沿って隣り合う計算点をそれぞれ線で繋ぐようにして距離の総和を算出することにより、立体的な周の長さを計算する。
このように、対象物のモデルに対し、特徴的な計算点を抽出し、これを用いて、筒状領域の周の長さを計算することにより、効率的かつ高精度に寸法データを算出することができる。
(6−3)部位毎の計算点抽出の例
図29〜図35bを参照して、寸法データ算出装置6020の算出部6024Eが備える計算点抽出部6324に関し、具体的な部位に関して複数の計算点を選択的に抽出する例を説明する。ここでは、部位「ヒップ」、「ウエスト」、「手首まわり」、及び「アームホール」の例をそれぞれ説明するが、本実施形態による計算点の抽出は、これらの部位に限定されるのではない。
図29〜図31は、人体モデルに対し、筒状領域である胴体領域及び腕領域の範囲を特定して、それぞれの領域を構成する例を示した概略図である。図32a及び図32bはヒップに関する計算点を抽出する例を示した概略図である。同様に、図33a及び図33bはウエスト、図34a及び図34bは手首まわり、そして、図35a及び図35bはアームホールに関する計算点を抽出する例を示した概略図である。
(6−3−1)胴体領域及び腕領域の特定
図29の正面図に示すように、人体モデルの胴体領域BR及び腕領域ARは、身長方向(z軸方向)に所定の範囲にわたり抽出される立体領域を切り出すことで特定される。例えば、これに限定されないが、人体モデルにおいて、z軸に対し、身長の所定の割合(上からR%)の位置から上下に所定の距離(±Dcm)の領域を切り出すことにより、3次元メッシュ・データの頂点の集合を抽出するのがよい。切り出される領域は、右腕領域ARr、左腕領域ARl、及び胴体領域BRの部分を含む。なお、割合R及び距離Dの値は、算出対象の部位によって個別に選択されるのがよい。
図30は、右腕領域ARr、左腕領域ARl、及び胴体領域BRをz軸正方向から見たxy平面を示す。C(cx,cy)は人体モデルの中心点であり、3次元メッシュ・データの頂点の集合の各座標値から計算される。例えば、中心点C(cx,cy)は身体重心とするのがよい。
図31は、図29及び図30に示した右腕領域ARr、左腕領域ARl、及び胴体領域BRに関し、3次元メッシュ・データの頂点の分布を示した図である。図31の座標系の横軸は、中心点C(cx,cy)から各頂点までのx軸方向の距離を示している。また、縦軸は、中心点C(cx,cy)から各頂点までの距離を示している。
つまり、図31のグラフの横軸及び縦軸の値は、以下の数式で計算される。
・横軸の値=|x−cx|
・縦軸の値=(|x−cx|2+|y−cy|2)1/2
図31の分布のうち、領域arは、右腕領域ARr及び左腕領域ARlに対応した領域である。また、領域brは、胴体領域BRに対応した領域である。すなわち、身長方向(z軸方向)に所定の範囲にわたり抽出される立体領域の各頂点の集合は、領域ar,brに分類(クラスタリング)することができる。これにより、立体領域の各頂点が、胴体領域BRと、腕領域AR(ここでは、右腕領域ARr及び左腕領域ARl)との何れかに所属するものかを判別することができる。
部位「ヒップ」、「ウエスト」、「手首まわり」、及び「アームホール」における計算点は、次に説明するように、これら胴体領域BR又は腕領域ARの3次元メッシュ・データの頂点の集合の情報に基づいて抽出することができる。
(6−3−2)ヒップ
図32aは、図29に示した筒状の胴体領域BRを構成する3次元メッシュ・データの頂点の集合から、ヒップの寸法データを算出するために5つの計算点を抽出する例を示した概略平面図である。また、図32bは、その概略立体図である。
図32a及び図32bにおいて、身長方向に沿う胴体領域BR1の重心軸AX1をz’軸とし、且つ、当該z’軸に直交し重心軸AX1を原点とするx’y’平面を有するx’y’z’座標系が規定される。特に、重心軸AX1方向から見たx’y’平面座標系に関し、x’方向は、略楕円形状を有する胴体領域BR1の断面の長軸方向(つまり、人体モデルの側面方向)であり、y’方向は、同断面の短軸方向(つまり、人体モデルの正面(背面)方向)である。
図32a及び図32bのとおり、ヒップの寸法データを算出するために、計算点は5つ(a1,b1,c1,d1,e1)抽出されるのがよい。このうち4つ(a1,b1,c1,d1)は、重心軸AX1方向から見て、x’y’平面の象限に存在する3次元メッシュ・データの頂点の集合からそれぞれ個別に抽出される。各象限から1つずつ合計4つの計算点が抽出されてもよいし、任意の3つの象限から個別に合計3つの計算点が抽出されてもよい。以下では、合計4つの計算点を抽出する例を想定している。
具体的には、長軸であるx’値を−k1≦x’≦k1とする制限領域LR1を設け、各象限において制限領域LR1内に位置する3次元メッシュ・データの頂点から4つの計算点a1〜d1を個別に抽出するのがよい。なお、k1の値は、例えば、胴体領域BR1の断面の長軸方向の長さの約1/4程度とするのがよい。
より詳しくは、各象限において、x’軸方向に原点(重心軸AX1)から最も離れ、つまり、制限領域LR1内のうち境界に近接して存在する4つの頂点を計算点として個別に抽出するのがよい。つまり、第1象限及び第4象限においては、制限領域LR1内でx’値が最大となる頂点a1,d1を計算点として抽出するのがよく、また、第2象限及び第3象限においては、制限領域LR1内でx’値が最小となる頂点を計算点b1,c1として抽出するのがよい。
加えて、特にヒップは通常、人体モデルにおいて正面方向及び背面方向に出っ張る形状となる。そこで、前述の4つの計算点(a1〜d1)に加えて、残りの1つの計算点e1として、正面方向に出っ張りに相当する箇所に位置する頂点を付加的に抽出するのがよい。具体的には、計算点e1は、原点からy’軸(短軸)方向に最も離れた(ここではy’値が最小となる)頂点として抽出されるのがよい。
このように、ヒップに関し、人体モデルにおけるヒップ形状に応じて計算点を抽出することにより、寸法測定の精度を更に向上させることができる。なお、このような付加的な計算点e1の抽出は任意であり、必ずしも抽出しなければならない訳ではない。
(6−3−3)ウエスト
図33aは、図29に示した筒状の胴体領域BRを構成する3次元メッシュ・データの頂点の集合から、ウエストの寸法データを算出するために5つの計算点を抽出する例を示した概略平面図である。また、図33bは、その概略立体図である。
図33a及び図33bにおいて規定されるx’y’z’座標系は図32a及び図32bと同様に規定される。ここでは、胴体領域BR2の重心軸AX2がx’y’平面の原点となる。
図33a及び図33bのとおり、ウエストの寸法データを算出するために、計算点は5つ(a2,b2,c2,d2,e2)抽出されるのがよい。このうち4つ(a2,b2,c2,d2)は、重心軸AX2方向から見て、x’y’平面の象限に存在する3次元メッシュ・データの頂点の集合からそれぞれ個別に抽出される。各象限から1つずつ合計4つの計算点が抽出されてもよいし、任意の3つの象限から合計3つの計算点が抽出されてもよい。以下では、合計4つの計算点を抽出する例を想定する。
特に、ウエストに関しては、基準となる頂点stdを基準点として最初に選択し、基準点stdに関連付けられる頂点を4つの計算点a2,b2,c2,d2として個別に抽出するのがよい。通常、ウエストは人体モデルにおいて正面方向(ここでは、y’軸の負方向)が出っ張る形状となり、且つ3次元メッシュ・データの頂点の集合も出っ張りの部分に偏ることが知られる。この点、図33a及び図33bにおいても、胴体領域BR2の略断面形状の中心は、重心軸AX2である原点からy’軸の正方向に遷移している。
したがって、寸法データの算出に関し、このようなウエストの出っ張りの部分を考慮して、計算点を抽出すべきである。そして、前述の基準点stdは、このような出っ張りに相当する箇所に位置する頂点を特定したものである。基準点stdは、原点(重心軸AX2)から人体モデルにおける正面方向(ここでは、y’軸の負方向)に最も離れた(y’軸の値が最小となる)頂点として抽出されるのがよい。但し、ウエストの例では、必ずしも、当該基準点std自体を計算点として採用する必要はない。
基準点stdが抽出された後、各象限において、z’軸(重心軸AX2)方向において基準点stdの位置に近接する頂点を計算点a2,b2,c2,d2として個別に抽出するのがよい。つまり、計算点a2,b2,c2,d2は、z’軸の値が基準点stdのz’値に近く、凡そ同じ高さを有する頂点である。ウエストのように水平面に沿うように寸法が測定されるべき部位においては、身長方向に近い高さを有する頂点を抽出するのがよく、これにより、更に寸法の精度を向上させることができる。
ウエストの例では、更に、x’y’座標系において長軸であるx’値を−k2≦x’≦k2とする制限領域LR2を設けるのがよい。そして、残りの1つ計算点e2として、短軸であるy’軸方向に沿って原点に関して基準点stdと反対側(ここでは、y’軸の正方向)にある任意の頂点を付加的に抽出するのがよい。なお、k2の値は、例えば、胴体領域BR2の断面の長軸の長さの約1/4程度とするのがよい。
このように、4つの計算点a2,b2,c2,d2に加えて5つ目の計算点e2を付加的に抽出するのは、前述したように、ウエストの場合は特に、重心が正面方向に偏ることを考慮するためである。つまり、胴体領域BR2を構成する3次元メッシュ・データの頂点の集合は原点(重心軸AX2)から−y’領域に偏って分布することになる。このような事情を考慮して、基準点stdと反対側にある頂点を5つ目の計算点e2として付加的に抽出することにより、寸法上の誤差を生じさせないばかりか、寸法の精度を更に向上させるように工夫している。
(6−3−4)手首まわり
図34aは、図29に示した筒状の腕領域ARr又はARlを構成する3次元メッシュ・データの頂点の集合から、手首まわりの寸法データを算出するために4つの計算点を抽出する例を示した概略平面図である。また、図34bは、その概略立体図である。なお、腕領域はARr又はARlの何れか一方を寸法計測の対象としてよい(以下、腕領域ARと総称する。)。
図34a及び図34bにおいて、身長方向に沿う腕領域ARの重心軸AX3をz’軸とし、且つ、当該z’軸に直交し重心軸AX3を原点とするx’y’平面を有するx’y’z’座標系が規定される。特に、x’y’平面座標系に関し、x’方向は、略楕円形状を有する腕領域ARの断面の長軸方向(つまり、人体モデルの側面方向)であり、y’方向は、同断面の短軸方向(つまり、人体モデルの正面方向)である。
図34a及び図34bのとおり、手首まわりの寸法データを算出するために、計算点は4つ(a3,b3,c3,d3)抽出されるのがよい。手首まわりの領域は、腕領域のうち、最もくぼんだ部分であると想定することができる。
つまり、手首まわりの部位の場合は、最初に、腕領域ARを重心軸方向で走査して、長軸方向の長さ及び/又は短軸方向の長さが最小となる断面領域csを抽出することで、くぼんだ部分を特定するのがよい。ここでは、長軸方向の長さだけに基づいても、短軸方向だけの長さに基づいても、或いはその両方としてもよい。断面領域csは平面領域として規定されてもよいし、z’軸方向に厚みを有する立体領域としてもよい。なお、断面領域csは手の甲として部位が規定されてもよい。
次いで、腕領域ARを重心軸方向で走査して、3次元メッシュ・データの頂点の集合のうち、長軸方向に最も離れた2つの頂点と、短軸方向に最も離れた2つの頂点との4つを計算点(a3,b3,c3,d3)として抽出する。より詳細には、断面領域csにおいて、x’軸の正方向に最も離れた位置(ここでは、x’値が最大となる)でz’軸方向に最近傍の頂点を計算点a3、また、x’軸の負方向に最も離れた位置(ここでは、x’値が最小となる)でz’軸方向に最近傍の頂点を計算点c3として抽出する。同様に、断面領域csにおいてy’軸の正方向に最も離れた位置(ここでは、y’値が最大となる)でz’軸方向に最近傍の頂点を計算点b3、また、y’軸の負方向に最も離れた位置(ここでは、y’値が最小となる)でz’方向に最近傍の頂点を計算点d3として抽出する。
このように、腕領域を重心軸方向で走査して、長軸方向の長さ及び/又は短軸方向の長さが最小となる領域部分が該当部位であると推定して、4つの計算点(a3,b3,c3,d3)として抽出する。これにより、手首まわりの寸法データの算出を効率的に行うことができる。特に、手首まわりは、ヒップやウエストに比べて長さが短いので、このような手法で計算点を4点抽出すれば足り、必ずしも5点目は必要としない。
(6−3−5)アームホール
図35aは、図29に示した筒状の胴体領域BRに基づいて規定される筒状の肩領域SRを構成する3次元メッシュ・データの頂点の集合から、アームホールの寸法データを算出するために4つの計算点を抽出する例を示した概略平面図である。また、図35bは、その概略立体図である。
アームホールの例では、胴体領域を構成する3次元メッシュ・データの頂点の集合のうち、図32aで規定したようなx’y’z’座標系(不図示)においてx’軸方向に原点から最も離れた頂点のx’値を抽出する。更に、3次元メッシュ・データの頂点の全体の集合のうち、当該x’値を有する頂点の集合を抽出する。
このx’値を有する頂点の集合においてz’軸(重心軸)の正方向に最も離れた(最も高い)頂点を肩の頂点として規定し、肩の頂点を基準にしてx’y’z’方向に所定の範囲で切り出す。そして、切り出された範囲内に存在する3次元メッシュ・データの頂点の集合を用いて、筒状の肩領域SRを構成する。
図35a及び図35bにおいて、肩領域SRの重心軸AX4をx’’軸とし、且つ、当該x’’軸に直交し重心軸AX4を原点とするy’’z’’平面を有するx’’y’’z’‘座標系が規定される。特に、重心軸AX4方向から見たy’’z’’平面座標系に関し、y’’方向は、略楕円形状を有する肩領域SRの断面の短軸方向(つまり、人体モデルの正面(波面)方向)であり、z’’方向は、同断面の長軸方向(つまり、人体モデルの身長方向)である。
図35a及び図35bのとおり、アームホールの寸法データを算出するために、計算点は4つ(a4,b4,c4,e4)抽出されるのがよい。このうち3つ(a4,b4,c4)は、y’’z’’平面において、重心軸AX4から短軸の正負方向にそれぞれ最も離れた頂点、及び長軸(z’軸)の正方向(つまり鉛直上方向)に最も離れた頂点とするのがよい。
より詳しくは、重心軸AX4から短軸(y’’軸)の正方向に最も離れた(ここでは、y’’値が最大となる)頂点を計算点a4として抽出し、同様に、重心軸AX4から短軸の負方向に最も離れた頂点(ここでは、y’’値が最小となる)を計算点c4として抽出するのがよい。また、重心軸AX4から長軸(z’軸)の正方向(つまり鉛直上方向)に最も離れた頂点(ここでは、z’値が最大となる)を計算点b4として抽出するのがよい。
残りの1つの計算点e4について、z’’軸の負方向(つまり鉛直下方向)に、長軸のz’’値を所定の範囲(z’’≦−j)とする制限領域LR4を設け、制限領域LR4内で境界に近接する頂点(ここでは、制限領域LR4内でz’’値が最大となる)を抽出するのがよい。
ここで、制限領域LR4は、人体モデルの脇領域に応じて規定される。例えば、これに限定されないが、脇領域を鉛直方向下1/4に分割した領域を制限領域LR4とするのがよい。なお、脇領域(不図示)は、脇の頂点を基準にしてx’’y’’z’’方向に所定の範囲で切り出し、切り出された範囲内に存在する3次元メッシュ・データの頂点の集合を用いて構成するのがよい。脇の頂点は、図31で示したような胴体領域BRと腕領域ARの分類において、両者が判別できなくなるような高さ(z値)を有する頂点として規定するのがよい。補足すると、肩領域SRにおいて、脇領域は上に凸の形状となっているので、x’’軸方向に走査した場合、脇の頂点は、胴体領域BRと腕領域ARの分類において、両者が判別できなくなるような高さに対応することになる。
このように、アームホールにおいては、胴体領域に基づいて規定される肩領域SRを用いて4つの計算点が規定される。特に、脇領域に基づく制限領域LR4を設定することにより、効率的かつ高精度に寸法データを算出することができる。
(6−3−6)その他
人体モデルに関し、ヒップ、ウエスト、手首まわり、及びアームホールの各部位における計算点の抽出例について説明してきたが、これらを応用することにより、更に他の部位に関する計算点も抽出することができる。例えば、「胸囲」及び「二の腕」のような筒状領域に適用可能な計算点を3つ〜5つ抽出することができる。これにより、所定の部位に関連付けられる筒状領域に対し、計算点の抽出の手法が予め規定されていることを条件に、当該所定の部位の寸法データを効率的且つ高精度に算出することができる。
また、筒状領域における周の長さを計算するための計算点の抽出について説明してきたが、これに限らず、筒状領域以外の寸法データの算出にも応用可能である。例えば、手首まわりの計算点の抽出の途中で特定される手の甲の頂点と、及びアームホールの計算点の抽出の途中で特定される肩の頂点との情報に基づいて、部位「袖丈」の長さを計算することができる。また、左右両肩の頂点の情報に基づいて、部位「肩幅」の長さを計算することができる。
(6−4)寸法データ算出装置の算出部の特徴
(6−4−1)
以上説明したように、本実施形態に係る寸法データ算出装置6020は、形状パラメータ取得部6024D及び算出部6024Eを備える。形状パラメータ取得部6024Dは、対象物の形状パラメータの値を取得する。算出部6024Eは、対象物の形状パラメータの値から対象物の3次元メッシュ・データを構成し、所定の部位に関連付けられた所定の部位領域を構成する3次元メッシュ・データの頂点の情報に基づいて、所定の部位の寸法データを算出する。
かかる寸法データ算出装置6020によれば、部位領域を構成する3次元メッシュ・データの頂点の情報に基づいて、所定の部位の寸法データを算出することにより、測定対象の部位に関する寸法データの算出の精度を向上させることができる。
(6−4−2)
また、寸法データ算出装置6020において、算出部6024Eは、所定の部位に応じて、3次元メッシュ・データの頂点の集合から、部位領域に部分的に関連付けられる計算点を選択的に抽出し、各計算点に基づいて寸法データを算出する。これにより、計算点の選択的な抽出を効果的に行うことにより、寸法データの算出を効率化することができる。
(6−4−3)
更に、寸法データ算出装置6020において、部位領域が筒状領域であり、計算点に基づいて筒状領域の周の長さを計算することにより、寸法データが算出される。これにより、筒状形状の寸法データの算出を高精度化且つ効率化することができる。
(6−4−4)
加えて、周の長さが、筒状領域の周に沿って、隣り合う計算点をそれぞれ線で繋ぐように計算した距離の総和となるように計算される。これにより、筒状形状の寸法データの算出を更に高精度化且つ効率化することができる。
(6−4−5)
また、本実施形態に係る実施形態に係る寸法データ算出方法は、対象物の形状パラメータの値を取得するステップ(S6010)と、対象物の形状パラメータの値から対象物の3次元メッシュ・データを構成するステップと(S6020)、構成された3次元メッシュ・データの頂点の集合の情報から、所定の部位に予め関連付けられている所定の部位領域を構成するステップと(S6030)、部位領域に関連付けられる計算点を選択的に抽出するステップと(S6040)、抽出された計算点に基づいて、寸法データを算出するステップ(S6050)と、を含む。
かかる寸法データ算出方法によれば、部位領域を構成する3次元メッシュ・データの頂点の情報に基づいて、所定の部位の寸法データを算出することにより、測定対象の部位に関する寸法データの算出の精度を向上させることができる。
<他の実施形態3:端末装置>
図36は、他の実施形態に係る端末装置7020の構成を示す模式図である。
端末装置7020は、第1実施形態に係る端末装置1010、第2実施形態に係る端末装置2010S、第3実施形態に係る端末装置3010、又は第4実施形態に係る端末装置4010Sの各機能を有するものである。また、上述した各寸法データ算出装置1020,2120,3020,4120,6020に接続可能なものである。さらに、端末装置7020は、寸法データ算出装置に限られず、対象物7007が撮影された画像データから対象物7007に関する情報を処理する任意の情報処理装置と接続可能である。
端末装置7020は、取得部7011、通信部7012、処理部7013、及び入出力部7014を有する。
取得部7011は、対象物7007が撮影された画像データを取得するものである。例えば、取得部7011は、任意の単眼カメラにより構成される。取得部7011により取得されたデータは処理部7014で処理される。
通信部7012は、任意のネットワークカード等のネットワークインタフェースにより実現され、有線又は無線によりネットワーク上の通信機器との通信を可能にする。
処理部7013は、各種情報処理を実行するために、CPU(Central Processing Unit)及び/又はGPU(Graphical Processing Unit)といったプロセッサ、並びにメモリにより実現され、プログラムが読み込まれることにより処理を実行する。ここでは、処理部(判定部)7013は、画像データに含まれる(つまり、画像データに写る)対象物が予め登録された対象物であるか否かを判定する。詳しくは、処理部7013は、画素毎に所定の対象物であるか否かを識別する「対象物識別モデル」を用いて、画像データに含まれる対象物が予め登録された対象物であるか否かを判定する。
入出力部7014は、端末装置7020への各種情報の入力を受け付けたり、端末装置7020から各種情報を出力したりする。例えば、入出力部7014は、任意のタッチパネルにより実現される。入出力部(受付部)7014は、後述する処理部7013による判定結果を入出力部7014のスクリーン(出力部)に示す。また、入出力部7014は、対象物識別モデルを用いて識別された画素毎の識別結果から得られる判定用画像データを、取得部7011により取得された画像データに重畳して入出力部7014のスクリーンに示す。
例えば、図37に示すように、対象物7007(ここでは人)に対して、対象物以外の領域BGの画像データ(図37斜線部分)に重畳して表示される。重畳にはアルファブレンドなどの透過画像を重畳して描画する手法を用いることができる。また、入出力部(受付部)7014は、画像データを情報処理装置(例えば、寸法データ算出装置1020,2120,3020,4120,6020)に送信するか否かの入力を受け付ける。これにより、ユーザは重畳描画されている画像を目視して確認し、誤認識を誘発する物体が写っていないことを確認してから寸法データ算出装置に画像データを送信することが可能となる。
図38は端末装置7020の動作を説明するための端末装置7020と情報処理装置(例えば、寸法データ算出装置1020,2120,3020,4120,6020)との間のシーケンス図である。
まず、ユーザの操作により端末装置7020を介して対象物7007の画像データが取得される(V1)。次に、端末装置7020が、対象物識別モデルを用いて、画像データに含まれる対象物7007が予め登録された対象物であるか否かを判定し、入出力部7014を構成するスクリーン上に判定結果を出力する(V2)。例えば、図37に示すような画面が判定結果として表示される。
次に、ユーザの操作により端末装置7020を介して、取得した画像データを寸法データ算出装置に送信するか否かが入力される(V3)。端末装置7020は入出力部7014から送信許可の入力を受け付けた場合、端末装置7020は、通信部7012を通じて、取得した画像データを寸法データ算出装置に送信する(V3−Yes,V4)。
そして、当該画像データを受信した寸法データ算出装置により、端末装置7020から送信された画像データを用いて対象物7007の寸法データが算出される(V5,V6)。
以上説明したように、上記端末装置7020は、画像データに含まれる対象物が予め登録された対象物であるか否かの判定結果を出力するとともに、画像データを寸法データ算出装置に送信するか否かの入力を受け付けるので、ユーザによる操作時間を短縮し得る端末装置を提供することができる。
補足すると、寸法データ算出装置1020,2120,3020,4120,6020は、画像データを受信し、セグメンテーションすることで背景を分離しシルエット画像を生成する。そして、寸法データ算出装置は、例えば、人体各部の寸法データを算出する。このような寸法データ算出装置では、端末装置7020から寸法データ算出装置へ画像データを送信し、寸法データ算出装置による画像データの情報処理が完了してからでないと、算出結果の信頼性を確認することができない。そして、算出結果の信頼性が低い場合には、ユーザは端末装置7020を用いて画像データを改めて取得する必要がある。これに対し、上記端末装置7020を用いた場合には、対象物が写った画像データを送信する前に、ユーザに画像データの妥当性の確認を促すことができるので、寸法データ算出装置による信頼性の高い算出結果を得るまでの時間を短縮できる場合がある。
例えば、店舗のような多様な色を配する環境や、マネキンなどを人体と誤認識してしまう環境でも、寸法データ算出装置によるシルエット画像の生成が成功することを端末装置7020のユーザが予測及び確認しながら実行できるので、操作時間を短縮できる場合がある。
なお、端末装置7020に搭載される対象物識別モデルはセグメンテーションを高速に実行することが要求される。そのため、セグメンテーションの精度は多少犠牲にしても高速に推論できるモデルが好ましい。要するに、寸法データ算出装置側のセグメンテーションと、端末装置7020側のセグメンテーションとの両方を用意することで、精密なシルエット画像の生成と不要なオブジェクトの除去とを両立することが可能となる。
本開示は、上記各実施形態そのままに限定されるものではない。本開示は、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できるものである。また、本開示は、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の開示を形成できるものである。例えば、実施形態に示される全構成要素から幾つかの構成要素は削除してもよいものである。さらに、異なる実施形態に構成要素を適宜組み合わせてもよいものである。