(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】3次元モデルの生成方法、生成システム、及びプログラム
(51)【国際特許分類】
G06T 17/20 20060101AFI20241224BHJP
G06T 7/00 20170101ALI20241224BHJP
G06V 20/64 20220101ALI20241224BHJP
G06T 7/70 20170101ALI20241224BHJP
【FI】
G06T17/20
G06T7/00 C
G06V20/64
G06T7/70 B
(21)【出願番号】P 2022062508
(22)【出願日】2022-04-04
【審査請求日】2024-01-15
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】池田 拓也
【審査官】鈴木 明
(56)【参考文献】
【文献】国際公開第2016/132490(WO,A1)
【文献】国際公開第2018/003206(WO,A1)
【文献】米国特許出願公開第2005/0128197(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/20
G06T 7/00
G06V 20/64
G06T 7/70
(57)【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサが、
(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出し、
(2)前記初期基準座標系の軸を選択し、
(3)前記軸に対する回転対称性の有無を判定し、
(4)前記軸に対して、角度周期を有する回転対称性か否かを判定し、
(5)前記回転対称性がない場合、前記軸に対する面対称性を判定し、
(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行う、3次元モデルの生成方法。
【請求項2】
前記角度周期を有する回転対称性がある場合、又は、前記面対称性を有している場合、前記初期基準座標系を修正する請求項1に記載の3次元モデルの生成方法。
【請求項3】
前記3次元形状を示すメッシュモデルの各メッシュに対する法線の方向に基づいて、前記初期基準座標系を導出する請求項1、又は2に記載の3次元モデルの生成方法。
【請求項4】
前記物体を包含する直方体を3次元バウンディングボックスとして、前記直方体の中心を原点とし、前記直方体の各辺方向をxyz軸とする初期基準座標系を導出する請求項1、又は2に記載の3次元モデルの生成方法。
【請求項5】
前記面対称性を有する場合、その反転面に沿った軸を有するように、初期基準座標系の軸方向を修正する請求項1、又は2に記載の3次元モデルの生成方法。
【請求項6】
前記角度周期を有する回転対称性を有する場合、ピーク面に基づいて初期基準座標系の軸方向を修正する請求項1、又は2に記載の3次元モデルの生成方法。
【請求項7】
少なくとも一つのプロセッサを備えた3次元モデルの生成システムであって、
前記プロセッサが、
(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出し、
(2)前記初期基準座標系の軸を選択し、
(3)前記軸に対する回転対称性の有無を判定し、
(4)前記軸に対して、角度周期を有する回転対称性か否かを判定し、
(5)前記回転対称性がない場合、前記軸に対する面対称性を判定し、
(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行う、3次元モデルの生成システム。
【請求項8】
前記角度周期を有する回転対称性がある場合、又は、前記面対称性を有している場合、前記初期基準座標系を修正する請求項7に記載の3次元モデルの生成システム。
【請求項9】
前記3次元形状を示すメッシュモデルの各メッシュに対する法線の方向に基づいて、前記初期基準座標系を導出する請求項7、又は8に記載の3次元モデルの生成システム。
【請求項10】
前記物体を包含する直方体を3次元バウンディングボックスとして、前記直方体の中心を原点とし、前記直方体の各辺方向をxyz軸とする初期基準座標系を導出する請求項7、又は8に記載の3次元モデルの生成システム。
【請求項11】
前記面対称性を有する場合、その反転面に沿った軸を有するように、初期基準座標系の軸方向を修正する請求項7、又は8に記載の3次元モデルの生成システム。
【請求項12】
前記角度周期を有する回転対称性を有する場合、ピーク面に基づいて初期基準座標系の軸方向を修正する請求項7、又は8に記載の3次元モデルの生成システム。
【請求項13】
コンピュータに対して、3次元モデルの生成方法を実行させるためのプログラムであって、
前記生成方法は、
(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出するステップと、
(2)前記初期基準座標系の軸を選択するステップと、
(3)前記軸に対する回転対称性の有無を判定するステップと、
(4)前記軸に対して、角度周期を有する回転対称性か否かを判定するステップと、
(5)前記回転対称性がない場合、前記軸に対する面対称性を判定するステップと、
(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行うステップと、を備えているプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、3次元モデルの生成方法、生成システム、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、物体の位置姿勢を算出する情報処理装置が開示されている。特許文献1の情報処理装置は、物体の距離点群情報から3次元形状モデル(エッジ情報、点群情報)を取得し、第1軸周りの回転対称性を判定する。そして、情報処理装置は、第1の軸とは異なる第2の軸に周りにおける反転対称性を判定する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、第1軸の周りの回転対称性と第2軸周りの反転対称性とを判定している。従って、人間が座標軸の設定を行う必要があり、座標軸を自動で設定することが困難である。よって、様々な物体の3次元モデルを効率良く生成することが困難である。このように物体の対称性を考慮した基準座標系で3次元モデルを作成することができる。
【0005】
3次元形状モデルの生成において、例えば、物体の対称性を考慮した座標軸を設定することで、適切な情報をアノテーションすることができる。従って、物体の位置姿勢に関する位置姿勢情報を付加した学習用データを生成することができる。物体の位置姿勢情報を正解ラベル(教師データ)とする教師有り学習で物体の推定器を生成することができる。
【0006】
本開示は、このような問題を解決するためになされたものであり、適切な座標系における3次元モデルを効率良く生成することができる3次元モデルの生成方法、生成システム、プログラムを提供するものである。
【課題を解決するための手段】
【0007】
本実施の形態における3次元モデルの生成方法は、少なくとも一つのプロセッサが、(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出し、(2)前記初期基準座標系の軸を選択し、(3)前記軸に対する回転対称性の有無を判定し、(4)前記軸に対して、角度周期を有する回転対称性か否かを判定し、(5)前記回転対称性がない場合、前記軸に対する面対称性を判定し、(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行う。
【0008】
上記の方法において、前記角度周期を有する回転対称性がある場合、又は、前記面対称性を有している場合、前記初期基準座標系を修正するようにしてもよい。
【0009】
上記の方法において、前記3次元形状を示すメッシュモデルの各メッシュに対する法線の方向に基づいて、前記初期基準座標系を導出するようにしてもよい。
【0010】
上記の方法において、前記物体を包含する直方体を3次元バウンディングボックスとして、前記直方体の中心を原点とし、前記直方体の各辺方向をxyz軸とする初期基準座標系を導出するようにしてもよい。
【0011】
上記の方法において、前記面対称性を有する場合、その反転面に沿った軸を有するように、初期基準座標系の軸方向を修正するようにしてもよい。
【0012】
上記の方法において、前記角度周期を有する回転対称性を有する場合、ピーク面に基づいて初期基準座標系の軸方向を修正するようにしてもよい。
【0013】
本実施の形態におけるシステムは、少なくとも一つのプロセッサを備えた3次元モデルの生成システムであって、前記プロセッサが、(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出し、(2)前記初期基準座標系の軸を選択し、(3)前記軸に対する回転対称性の有無を判定し、(4)前記軸に対して、角度周期を有する回転対称性か否かを判定し、(5)前記回転対称性がない場合、前記軸に対する面対称性を判定し、(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行う。
【0014】
上記のシステムにおいて、前記角度周期を有する回転対称性がある場合、又は、前記面対称性を有している場合、前記初期基準座標系を修正するようにしてもよい。
【0015】
上記のシステムにおいて、前記3次元形状を示すメッシュモデルの各メッシュに対する法線の方向に基づいて、前記初期基準座標系を導出するようにしてもよい。
【0016】
上記のシステムにおいて、前記物体を包含する直方体を3次元バウンディングボックスとして、前記直方体の中心を原点とし、前記直方体の各辺方向をxyz軸とする初期基準座標系を導出するようにしてもよい。
【0017】
上記のシステムにおいて、前記面対称性を有する場合、その反転面に沿った軸を有するように、初期基準座標系の軸方向を修正するようにしてもよい。
【0018】
上記のシステムにおいて、前記角度周期を有する回転対称性を有する場合、ピーク面に基づいて初期基準座標系の軸方向を修正するようにしてもよい。
【0019】
本実施の形態におけるプログラムは、コンピュータに対して、3次元モデルの生成方法を実行させるためのプログラムであって、前記生成方法は、(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出するステップと、(2)前記初期基準座標系の軸を選択するステップと、(3)前記軸に対する回転対称性の有無を判定するステップと、(4)前記軸に対して、角度周期を有する回転対称性か否かを判定するステップと、(5)前記回転対称性がない場合、前記軸に対する面対称性を判定するステップと、(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行うステップと、を備えている。
【0020】
本開示により、適切な座標系における3次元モデルを効率良く生成することができる3次元モデルの生成方法、生成システム、プログラムを提供することができる。
【図面の簡単な説明】
【0021】
【
図2】本実施の形態にかかる3次元モデルの生成方法を示すフローチャートである。
【
図3】初期基準座標系の設定処理を示すフローチャートである。
【
図4】3次元バウンディングボックスを説明するための図である。
【
図5】回転対称性の判定処理を示すフローチャートである。
【
図6】物体の凸包の断面形状1cとr(θ)を説明するための図である。
【
図7】r’(θ)とそのフーリエ変換を示すグラフである。
【
図8】r(θ)とr(θ+ω
max)との差分を示すグラフである。
【
図9】面対称性の判定処理を示すフローチャートである。
【
図10】面対称性の判定処理を示すフローチャートである。
【
図11】面対称性の判定処理での断面形状を示す図である。
【
図12】面対称性の判定処理での軸を修正する処理を説明するための図である。
【
図13】処理装置100のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【0023】
近年、物体の位置姿勢を推定する推定器として、機械学習モデルが用いられている。このような推定器を機械学習により生成するためには、多数の学習用データを収集する必要がある。学習用データには、カメラが撮像した画像だけでなく、シミュレーションにより生成された合成画像が用いられることもある。
【0024】
レンダラやシミュレータは、物体の3次元形状を示す3次元モデル(3次元形状モデル、又は3Dモデルとも言う)から、合成画像を生成する。シミュレータなどを用いることで、物体の位置姿勢を変えた大量の合成画像を簡便に生成することができる。さらに、シミュレータ等は、位置姿勢等のラベルを合成画像にアノテーションすることができる。
【0025】
3次元モデルの作成には、ステレオカメラやデプスセンサなどのセンサが用いられる。例えば、デプスデプスが物体の点群データを計測する。点群データは、例えばXYZ3次元直交座標系における各点の位置座標の情報を含んでいる。また、点群データをエッジデータ、メッシュデータ、又はサーフィスデータ等に変換することで、3次元モデルを形成することができる。
【0026】
ここで、物体の3次元形状を示す3次元モデルでは、座標系の座標軸を適切に設定することが望まれる。例えば、物体が回転対称の場合、回転軸と一致する座標軸を設定することで、物体の位置姿勢を適切に変えることができる。物体の対称性を適切に判定することが望まれる。本実施の形態にかかる方法では、物体の対称性を適切に判定することができる。このようにすることで、推定器での6軸位置姿勢の推定の有用な座標系を設定することが可能となる。
【0027】
本実施の形態にかかる3次元モデルの生成システム、及び生成方法について、図を参照して説明する。
図1は、システム1の構成を示すブロック図である。システム1は、処理装置100と、センサ200と、を備えている。処理装置100は、物体Oの対称性を判定するための処理を行っている。
【0028】
センサ200は、物体Oの3次元形状を計測するための計測器である。センサ200は、例えば、3次元スキャナである。センサ200は、テーブル210とデプスセンサ220とを備えている。テーブル210は、水平面と平行な載置面を有している。ユーザ又はロボットは、テーブル210の上に計測対象となる物体Oを載置する。デプスセンサ220はテーブル210の上の物体Oまでの距離を計測する。これにより、デプス画像を撮像することができる。テーブル210は物体Oを鉛直方向と平行な回転軸周りに回転させる。そして、テーブル210が物体Oを回転させている間、デプスセンサ220が物体Oの表面まで距離を測定する。
【0029】
これにより、センサ200は、物体Oの全周の3次元形状を示す計測データを測定することができる。計測データは、デプスセンサ220から物体Oまで距離を示す測距データを複数有している。テーブル210の回転中に物体Oを計測することができるため、任意の方向からの物体Oの表面まで距離を測定することができる。さらに、物体Oの底面や上面の形状を測定するため、テーブル210上の物体Oの向きを変えて、センサ200が計測を行ってもよい。
【0030】
センサ200で計測された計測データは、例えば、複数の点を有する点群データである。各点は、センサ座標系における3次元座標の情報を含む。また、計測データはメッシュデータであってもよい。メッシュデータは、隣接する3点を結ぶ三角メッシュ(トライメッシュ)や隣接する4点を結ぶ四角メッシュ(クアッドメッシュ)で構成されている。センサ200は計測データを処理装置100に出力する。
【0031】
処理装置100は、パーソナルコンピュータの情報処理装置である。例えば、処理装置100は、メモリ、プロセッサ、各種インタフェース、入力デバイス、出力デバイス、モニタなどを備えている。処理装置100のプロセッサがメモリに格納されたプログラムを実行することで、後述する処理が行われる。さらに、処理装置100は、無線又は有線で通信可能な情報処理装置である。
【0032】
処理装置100は計測データ取得部110と、座標系設定部120と、第1判定部130と、第2判定部140と、第3判定部150と、修正部160と、を備えている。
【0033】
計測データ取得部110は、センサ200で計測された計測データを取得する。上記の通り、計測データは物体の3次元形状を示す点群データやメッシュデータとなっている。つまり、処理装置100は、3次元形状を示す3次元モデルのデータ(3次元データ)を取得する。以下、計測データ取得部110が、3次元形状を示すメッシュモデルを取得するものとして説明する。もちろん、計測データ取得部110は、センサ200から点群データを取得して、処理装置100が点群データからメッシュデータを生成しても良い。
【0034】
座標系設定部120は、計測データが示す3次元モデルについて、基準座標系を設定する。そのため、まず座標系設定部120は、初期基準座標系を導出する。XYZ3次元直交座標系を初期基準座標系として、設定する。座標系設定部120は3次元モデルについて原点と、X軸、Y軸、Z軸の方向を設定する。X軸、Y軸、及びZ軸は互いに直交する方向となる。
【0035】
第1判定部130は、物体Oの回転対称性を判定する。第1判定部130は、3軸のそれぞれについて、回転対称であるか否かを判定する。例えば、X軸について、物体Oが回転対称形状である場合、X軸が回転対称軸となる。したがって、物体をX軸周りにある角度回転させると、物体の形状が一致する。
【0036】
第2判定部140は、物体Oが角度周期を有する回転対称であるか否かを判定する。回転対称な軸がある場合、第2判定部140は、その軸についての回転対称性が角度周期を有するか否かを判定する。例えば、X軸が回転対称軸である場合、第2判定部140は、X軸について、角度周期を有する回転対称な形状であるか否かを判定する。
【0037】
角度周期を有する回転対称な形状の一例は、軸と直交する断面において、正多角形である。具体的には、断面が正四角形の場合、物体は4回対称の回転対称形状となる。角度周期を有しない回転対称な形状の一例は、例えば、軸と直交する断面において、円形である。
【0038】
第3判定部150は、面対称性を判定する。物体形状が面対称性を有する場合、平面に対して反転対称な形状となる。軸を含む平面に対して、反転対称である場合、第3判定部150は、物体が面対称であると判定する。
【0039】
修正部160は基準座標系を修正する。第2判定部140において、角度周期を有する回転対称であると判定された場合、修正部160が基準座標系を修正する。これにより、初期基準座標系と異なる基準座標系が設定される。具体的には、修正部160は、回転対称軸ではない軸の向きを修正する。例えば、X軸が回転対称軸である場合、修正部160は、Y軸とZ軸の向きを変える。修正部160は、Y軸とZ軸をX軸周りに回転する。
【0040】
また、修正部160は、第3判定部150において、物体Oが面対称性を有すると判定された場合、修正部160は、基準座標系を修正する。つまり、軸が対称面内に含まれるように基準座標系の軸方向を変化させる。このようにすることで、対称面と平行な2軸を座標軸とする基準座標系を設定することができる。
【0041】
図2を用いて本実施の形態にかかる3次元モデルの生成方法について説明する。
図2は、本実施の形態にかかる3次元モデルの生成方法を示すフローチャートである。
【0042】
計測データ取得部110がセンサ200で計測された計測データを取得する(S101)。計測データは,例えば、点群データ又はメッシュデータである。ここでは、計測データが、メッシュデータとなっている。あるいは、処理装置100は、点群データを三角形のメッシュモデルに変換してもよい。座標系設定部120は、計測データに対して,初期基準座標系を導出する(S102)。初期基準座標系は3次元直交座標系となっており。互いに直交するx軸、y軸、z軸を有する。この処理の詳細については後述する。
【0043】
第1判定部130が初期基準座標系における軸(x,y,z)を選択する(S103)。つまり、第1判定部130がx軸、y軸、z軸から1つの軸を選択する。第1判定部130は、選択された軸(以下、選択軸ともいう)について、物体0が回転対称か否かを判定する(S104)。回転対称は、選択軸周りに回転させた時の形状が元の形状と一致する形状である。
【0044】
物体Oが回転対称な場合(S104のYES)、第2判定部140は、回転対称性が角度周期を有するか否かを判定する(S105)。つまり、第3判定部150は、物体Oが角度周期を有する回転対称な形状か否かを判定する。角度周期を有する回転対称は、選択軸周りに所定の角度(0°より大きく360より小さい角度)だけ回転させた時の形状が元の形状と一致する形状である。換言すると、角度周期の示す角度以外の角度だけ軸周りに回転させた時の形状が、元の形状と一致しない。
【0045】
回転対称性が角度周期を有する場合(S105のYES)、修正部160が基準座標系を修正する(S106)。修正部160は、初期基準座標系において、選択軸以外の2軸の方向を変える。これにより、選択軸と直交する平面における2軸の方向が決定する。そして、処理がステップS109に移行する。回転対称性が角度周期を有していない場合(S105のNO)、処理がステップS109に移行する。
【0046】
物体Oが回転対称でない場合(S104のNO)、第3判定部150は、物体Oが面対称か否かを判定する(S107)。面対称性は、選択軸を含む平面において、物体Oを反転させた時の形状が、元の形状と一致する形状である。物体Oが面対称な場合(S107のYES)、修正部160が基準座標系を修正する(S108)。修正部160は、初期基準座標系において、選択軸以外の2軸の方向を変える。具体的には、選択軸以外の1軸を対称面(反転面)と平行な方向にする。そして、処理がS109に移行する。
【0047】
物体Oが面対称でない場合(S107のNO)、処理がS109に移行する。そして、第1判定部130が、全軸について処理が終了したか否かを判定する(S109)。全軸について処理が終了していない場合(S109のNO),ステップS103に戻り、第1判定部130が軸を選択する。つまり、対称性が判定されていない軸について、処理装置100が上記の処理を行う。例えば、z軸、y軸、x軸の順番でS104~S108の処理が行われる。全軸について処理が終了していない場合(S109のYES),処理を終了する。
【0048】
ステップS102の初期基準座標系の導出処理について、
図3を用いて説明する。
図3は、座標系設定部120における処理を説明するためのフローチャートである。
【0049】
座標系設定部120が、メッシュモデルの全ての面の法線を半球面上に投影する(S201)。座標系設定部120は、各メッシュの面(メッシュ面とも言う)と直交する法線(以下、メッシュ法線ともいう)を求める。以下の説明するように、メッシュ法線の方向に基づいて、座標系設定部120が初期基準座標を導出する。これにより、適切な初期基準座標系を簡便に決定することができる。ここで求められるメッシュ法線の数は、メッシュ面の数と一致する。つまり、物体Oのメッシュモデルに含まれるメッシュ面の数をn(nは2以上の整数)とすると、メッシュ法線の数はnとなる。
【0050】
座標系設定部120は、半球面上における法線を半球面上に投影する。例えば、座標系設定部120は、物体を包含する半球を生成する。座標系設定部120は、メッシュ法線を、半球面と直交する位置に投影する。具体的には、メッシュ法線は、半球面のある位置(一点)における半球面の法線と平行になる。座標系設定部120は、メッシュ法線が半球面の法線と平行になる半球面上の位置に、法線を投影する。このように、座標系設定部120は、メッシュ法線の方向に応じて、メッシュ法線を半球面上に投影する。方向が一致する2つのメッシュ法線は、半球面の同じ位置に投影される。
【0051】
座標系設定部120は、法線分布を緯度経度に変換した上で、離散化して重複をまとめる(S202)。例えば、座標系設定部120は、半球面上におけるメッシュ法線の投影位置の緯度及び経度を算出する。座標系設定部120は法線毎に、緯度経度を保存する。そして、座標系設定部120は、緯度経度が近い法線を重複する法線として一つにまとめる。つまり、2つの法線の緯度差と、経度差が所定値以下の場合、2つの法線を1つにまとめる。1つにまとめられた法線の緯度経度は、2つの法線の緯度経度の平均値としてもよい。あるいは、1つにまとめられた法線の緯度経度は、一方の緯度経度としてもよい。例えば、まとめられる前の法線の数をn(nは2以上の整数)とし、まとめられた後の法線の数をm(mは2以上かつ、n以下の整数)とすることができる。
【0052】
座標系設定部120は、各法線に対して、法線をz軸とする座標系を作成する(S203)。ここでは、z軸と直交するx軸及びy軸を有するxyz三次元直交座標系が設定される。まとめられた後の法線の数mだけ、座標系が作成される。(mは2以上の整数)。つまり、座標系設定部120はm個の座標系を作成する。半球面状の投影位置に応じてz軸の方向が異なる。よって、m個の座標系は軸方向が異なっている。
【0053】
座標系設定部120は、メッシュモデルの頂点をxy平面に投影して、二次元凸包を作成する(S204)。二次元凸包(convex hull)は、与えられた点を全て包含する最小の多角形である。換言すると、xy平面視において、二次元凸包は物体Oを包含する。座標系設定部120は、各座標系のxy平面上において、メッシュモデルの全頂点を包含する二次元凸包を作成する。ここでは、座標系設定部120は、公知のアルゴリズムを用いて、二次元凸包を作成することができる。ここでは、m個の座標系が設定されているため、m個の二次元凸包が作成される。m個の二次元凸包が作成される平面は異なる平面となっている。
【0054】
座標系設定部120は、二次元凸包を囲うバウンディングボックスの面積が最小となる変換を求める(S205)。バウンディングボックスは、xy平面において、二次元凸包を包含する長方形として定義される。そして、座標系設定部120は、二次元凸包を包含し、かつ、面積が最小となる長方形をバウンディングボックスとして生成する。ここでは、座標系毎にバウンディングボックスが求められる。よって、座標系設定部120は、m個のバウンディングボックスを生成する。バンディングボックスは、xy平面において、メッシュモデルの全ての頂点を包含する。
【0055】
座標系設定部120は、メッシュモデルの頂点のz軸方向の範囲を求め、3次元バウンディングボックスの体積を求める(S206)。
図4に示すように、3次元バウンディングボックスは物体を包含する直方体である。つまり、3次元バウンディングボックスはメッシュモデルの全頂点を包含する直方体である。座標系設定部120は、xy平面において二次元凸包を囲う長方形を底面とする3次元バウンディングボックスを設定する。つまり、ステップS205で求められたバウンディングボックスに対応する長方形が3次元バウンディングボックスのx方向とy方向のサイズを規定する。最も+z側にある頂点から最も-z側にある頂点までの長さが3次元バウンディングボックスのz方向のサイズを規定する。
【0056】
これにより、座標系設定部120は、3次元バウンディングボックスの体積を求めることができる。座標系設定部120は、二次元凸包を囲む最小の長方形の面積と、z軸サイズとの積を、3次元バウンディングボックスの体積として算出する。座標系設定部120は、それぞれの座標系について、3次元バウンディングボックスを決定して、その体積を求める。上記のように、m個の座標系が設定されているため、座標系設定部120は、m個の3次元バウンディングボックスの体積を算出する。
【0057】
座標系設定部120は、体積を最小とする3次元バウンディングボックスの座標軸を基準座標系の軸として設定する(S207)。つまり、座標系設定部120は、m個の3次元バウンディングボックスの体積を比較して、体積が最小の3次元バウンディングボックスを求める。座標系設定部120は、m個の3次元バウンディングボックスの中から最小の3次元バウンディングボックスを選択する。そして、抽出された3次元バウンディングボックスの各辺の方向を軸方向とする。したがって、x軸、y軸、z軸は、
図4に示すように、3次元バウンディングボックスの各辺と平行になる。
【0058】
座標系設定部120は、座標系の中心点(原点)を選択された3次元バウンディングボックスの中心とする(S208)。座標系設定部120は、物体Oを包含する直方体を3次元バウンディングボックスとしている。そして、座標系設定部120は、直方体の中心を原点とし、直方体の各辺方向をxyz軸とする初期基準座標系を導出している。座標系設定部120は、3次元バウンディングボックスの辺の長さ順に軸を入れ替える(S209)。例えば、辺が長い方から順にx軸、y軸、z軸とする。このようにすることで、座標系設定部120が、初期基準座標系を決定することができる。
【0059】
図5は、第1判定部130と第2判定部140における判定処理の一例を説明するためのフローチャートである。ここで、図のステップS103に選択された軸をaとして説明する。つまり、軸aは、初期基準座標系におけるx軸、y軸、z軸のいずれか一つである。以下の説明では、軸aがz軸として、軸aと直交する平面Pがxy平面であるとして説明する。
【0060】
第1判定部130が、軸aと直交する平面Pにおいて、物体モデルとその凸包の断面形状So、Scを作成する(S301)。断面形状So及び断面形状Scは、平面Pと物体モデルの交差から求められる。物体の断面形状Soは、平面Pにおける物体の輪郭を示す形状となる。凸包は平面Pにおいて、物体(つまり、断面形状So)を包含する最小の多角形となる。第1判定部130は、軸a上の位置を変えていき、断面形状So、Scを生成する。したがって、1つの物体Oについて、第1判定部130は、複数の断面形状So及び複数の断面形状Scを生成する。
【0061】
第1判定部130は、平面Pにおいて、直線lと断面形状Sc(もしくはSoでも可)との最も外側の交点と原点Poとの距離rを求める(S302)。
図6を用いて、断面形状Scとそのrを説明する。
図6は、平面Pを示している。ここで、直線lは、
図6に示すように、平面Pと平行で、平面Pの原点Poを通る直線である。また、直線lは原点P0を始点としている。平面Pにおいて直線lとx軸の成す角度はθとなっている。直線l上において、距離rは、原点Poと断面形状Scの外形までの距離を示す。なお、直線lと断面形状Scとの交点が2つ以上ある場合、最も外側の交点と原点Poとの距離をrとする。
【0062】
上記の通り、第1判定部130は、断面形状Scの代わりに、物体モデルの断面形状Soを用いてもよい。よって、以下のフローにおいて、断面形状Scを断面形状Soと置き換えることも可能である。断面形状Soを用いる場合、直線l上において、原点Poから断面形状Soの外形までの距離を距離rとする。以下の説明では、断面形状Scについての処理を行う例について説明する。このため、
図6に示すように、原点Poから、直線lと断面形状Scとの交点までの距離を距離rとして説明する。
【0063】
さらに、第1判定部130は、θを変えていき、距離rを求めていく。つまり、第1判定部130は、平面Pにおいて、原点Poを中心とする円の全周に渡って、rを算出する。第1判定部130は、例えば、θをδθ間隔で変化させて、rを求める。これにより、第1判定部130は、離散的な関数r(θ)を求めることができる。例えば、θは0°~360°の離散的な値を取る。r(θ)は、断面形状Scの極座標表現となる。つまり、r(θ)は、断面形状Scを極座標変換した関数に対応する。さらに、第1判定部130は、軸a上の位置(ここではz位置)を変えて生成された複数の断面形状Scについて、それぞれr(θ)を算出する。
【0064】
第1判定部130は、r(θ)を正規化する(S303)。例えば、第1判定部130は、r(θ)の最大値が1となるように、一定の係数をr(θ)に乗じる。これにより、r(θ)が0以上1以下の範囲となる。第1判定部130は、r(θ)の値が一定であるか否かを判定する(S304)。つまり、第1判定部130は、断面形状Scが円形であるか否かを判定する。より、詳細には、第1判定部130は、断面形状Scの外形が円形となるか否かを判定する。
【0065】
r(θ)が一定である場合(S304のYES)、第1判定部130は、物体が円形(回転対称)であると判定する(S305)。円形であると判定されると、第1判定部130,及び第2判定部140の処理が終了する。つまり、
図2のステップS105において、NOと判定される。断面形状が円形となる3次元物体の例としては、球、円柱、円錐、ラグビーボールなどがある。また、軸aの位置に応じて、直径が変わるビン、ボトルなどがある。これらの形状は、中心軸に対して、回転対称となる。
【0066】
r(θ)が一定でない場合(S304のNO)、第1判定部130は、物体が円形ではないと判定する(S306)。次に、第2判定部140が角度周期を有する回転対称性か否かを判定する。つまり、
図2のステップS105における判定処理が施される。
【0067】
第2判定部140は、r’(θ)について離散フーリエ変換を行う(S307)。ここで、r’(θ)はr(θ)とrの平均値r
aveとから算出される。具体的には、r’(θ)=r(θ)-r
aveで求めることができる。平均値r
aveはrのDC成分に対応する。また、離散フーリエ変換により得られたフーリエ級数(振幅スペクトル)R(ω)を
図7に示す。
図7の左側のグラフはr’(θ)を示し、右側のグラフはR(ω)を示す。なお、
図6に示すように断面形状Scが正六角形となる場合、
図7に示すR(w)では60°毎にピークが存在する。また、
図7では、実関数をフーリエ変換しているため、正負対称となっている。
【0068】
第2判定部140は、R(ω)から振幅Rが最大となる角度周期ω
maxを求める(S308)。ここで、ω
maxは0°以上180°以下とする。
図7では、R(60°)に最大となるピークが表れているため、ω
maxは60°(=π/3[rad))となる。
【0069】
第2判定部140は差(r(θ)―r(θ+ωmax))の絶対値の面積Eを求める(S309)。ここで、差とは、関数r(θ)と、関数r(θ)を角度周期ωmax分だけシフトさせた関数r(θ+ωmax)との差分値を示す。絶対値の面積Eは以下の式(1)で算出することができる。
【0070】
【0071】
絶対値をθについて0°~360°までの範囲で積分することで、面積Eが求められる。なお、式(1)において、θが離散的な値を取るため、θが0~360°の範囲における絶対値の総和が面積Eとなる。第2判定部140は面積Eがしきい値未満であるか否かを判定する(S310)。つまり、第3判定部150は面積Eを予め設定されているしきい値と比較する。
【0072】
しきい値未満である場合(S310のYES)、第2判定部140は、角度周期ωmaxを持つ回転対称(線対称)形状であると判定する(S311)。つまり、角度周期ωmaxだけシフトした時の関数の差が小さいため、第2判定部140は角度周期を有する回転対称(線対称形状)と判定する。しきい値未満でない場合(S310のNO)、第2判定部140は、角度周期を持つ回転対称(線対称形状)でないと判定する(S312)。
【0073】
図8に、r(θ)とr(θ+ω
max)を示す。
図8では、左側に回転対称形状でないグラフが示され、右側に回転対称な場合のグラフが示されている。回転対称ではない場合、r(θ)とr(θ+ω
max)の差が0とならないため、式(1)で求められる面積Eが大きくなる。角度周期のある回転対称形状の場合、r(θ)とr(θ+ω
max)とがほぼ一致する関数となる。よって、いずれのθにおいても、r(θ)とr(θ+ω
max)との差がほぼ0となり、面積Eがほぼ0となる。よって、第2判定部140が、面積Eを予め設定されたしきい値と比較することで、角度周期のある回転対称か否かを判定することができる。
【0074】
なお、軸a上の位置を変えていくことで、複数の断面形状Scが生成されている。回転対称性の判定は、断面形状Scのそれぞれについて判定される。よって、全ての断面形状Scについて、r(θ)の値が一定である場合、角度周期を有しない回転対称であると判定される。1つ以上の断面形状Scについて、面積Eがしきい値未満でない場合、回転対称ではないと判定される。一部の断面形状Scについて、面積Eがしきい値未満で有り、残りの全ての断面形状でr(θ)が一定である場合、角度周期を有する回転対称であると判定される。
また、全ての断面形状Scについて、面積Eがしきい値未満である場合であっても、角度周期ωmaxが異なる場合、角度周期を有する回転対称とはならないこともある。具体的には、全ての断面形状Scにおける角度周期ωmaxがずれていて、重ならない場合、角度周期を有する回転対称とはならない。例えば、ある断面形状において角度周期ωmaxが60°で、残りの断面形状において、角度周期ωmaxが72°の場合、角度周期を有する回転対称とならない。反対に、ある断面形状において角度周期ωmaxが60°で、残りの断面形状において、角度周期ωmaxが30°の場合、角度周期を有する回転対称となる。つまり、6回の回転対称となる。
【0075】
なお、物体が角度周期を有する回転対称性を有する場合(S311)、
図2のステップS106のように、修正部160が初期基準座標系を修正する。修正部160は、ピーク面に基づいて初期基準座標系の軸方向を修正してもよい。例えば、r(θ)が最大となる角度θ
maxの方向が軸方向となるように、修正部160が基準座標系を設定する。修正部160は、rが最大となるθ
maxを特定する。ここで、ω
maxは0°以上360°未満とする。
【0076】
r(θ
max)となる断面形状Sc又は断面形状Soの位置がピーク位置となる。修正部160は、x軸から角度θ
maxだけ傾いた直線を軸bとする。
図6ではθ
maxが0°となっている。軸bは原点とピーク位置を通る直線となる。選択軸(軸a)と軸bとを含む平面がピーク面となる。なお、r(θ)が最大となる角度θが複数ある場合、その一つのピーク位置に基づいて、軸bを設定すればよい。
【0077】
ステップS312の後、ステップS107のように、第3判定部150が面対称性の判定を行う。面対称性の判定の一例について、
図9~
図11を用いて説明する。
図9,
図10は、判定処理の一例を示すフローチャートである。
図11は、面対称な断面形状を示す図である。また、以下の説明では、凸包の断面形状Scについて、処理を行うが、物体の断面形状Soについて処理を行うことも可能である。よって、以下のフローにおいて、断面形状Scを断面形状Soと置き換えることも可能である。
【0078】
第3判定部150は、平面Pの原点P
Oを通る直線L(φ)を一定の角度間隔δ
φで引く(S401)。したがって、平面Pにおいて、複数の直線L(φ)が設定される。ここで、直線L(φ)は
図11に示すように、平面P上において、原点Poを通り、x軸から角度φとなる直線である。つまり、角度φは、平面Pにおいて、x軸と直線L(φ)との成す角度である。また、φは0°以上180°未満の範囲とする。直線L(φ)は、断面形状Scを横切るように設定される。
【0079】
第3判定部150は、直線L(φ)上に、一定間隔δm毎にサンプル点Qmを取る(S402)。これにより、直線(φ)上の複数点をサンプリングすることができる。第3判定部150は、各サンプル点Qmのxy座標を記録する。
図11には、直線L(φ)と、直線L(φ)上のサンプル点Qmの一部が示されている。ここでは、1本の直線L(φ)上に置かれた3点のサンプル点のみが示されている。また、第3判定部150は、角度φを変えることで複数の直線L(φ)を引く。第3判定部150は、それぞれの直線L(φ)上で、複数のサンプル点Qmを求める。以下の、処理では特に言及しない限り、それぞれの断面形状について、同様の処理を行う。
【0080】
第3判定部150は、全てのサンプル点Qmについて、Qmを通り直線L(φ)と直交する直交直線K(Qm)を引く(S403)。第3判定部150は、K(Qm)と断面形状Scとの交点Qmu、Qmlを求める(S404)。ここで、
図11に示すように、K(Qm)は凸包の断面形状Scを横切る直線であるため、K(Qm)は断面形状Scと2箇所で交わる。よって、
図12に示すように、K(Qm)と断面形状Scとの正側の交点をQmuとし、負側の交点をQmlとする。また、K(Qm)は断面形状Scと3箇所以上で交わる場合、正側において最も外側の交点をQmu、負側において最も外側の交点をQmlとする。
【0081】
第3判定部150は、サンプル点Qmから交点Qmu、Qmlの距離du、dlを求める(S405)。第3判定部150は、
図12に示すように、サンプル点Qmと交点Qmuとの距離をduとし、サンプル点Qmと交点Qmlとの距離をdlとする。
【0082】
次に、第3判定部150は、符号付き距離差分d=du-dlを計算する(S406)。第3判定部150は、dの平均値daveを算出する(S407)。第3判定部150は、1つの直線L(φ)上の複数のサンプル点Qmについて、dの総和を求め、総和をサンプル点数で除することで、平均値daveを求める。第3判定部150はdとdaveの差の絶対値の総和dsumを算出する(S408)。総和dsumは以下の式(2)で求めることが可能である。
【0083】
【0084】
第3判定部150は、総和dsumが最小となる角度φminを求める(S409)。上記のように、符号付き距離差分d、平均値dave、総和dsumのそれぞれは、角度φ毎に求められる。つまり、直線L(φ)のそれぞれについて、第3判定部150が、上記の処理を行うことで、符号付き距離差分d、平均値dave、総和dsumを算出する。第3判定部は、複数の総和dsumを比較して、最小となる総和dsumを求め、その時の直線L(φ)の角度φを求める。断面形状Scが直線L(φ)について最も線対称(反転対称)に近くなる角度φが角度φminとして設定される。
【0085】
第3判定部150は、角度φminの時の符号付き距離差分dの平均値dave_minと総和dsum_minを求める(S410)。総和dsum_minがしきい値未満か否かを判定する(S411)。第3判定部150は総和dsum_minを予め設定されているしきい値と比較する。
【0086】
総和dsum_minがしきい値未満でない場合(S411のNO)、第3判定部150は、対称形状ではないと判定する(S412)。つまり、軸aについて、断面形状Sc(又は断面形状So)が回転対称でもなく、面対称でもない。よって、物体は軸aについて、何の対称性も有していない。
【0087】
総和d
sum_minがしきい値未満である場合(S411のYES)、修正部160は、φ
minとd
ave_minとに基づいて、軸bを設定する(S413)。具体的には、軸bは、x軸に対して角度φの傾きを持ち、かつ、原点Poからのd
ave_minだけ離れた直線である。
図12に、z軸に直交する平面Pにおける軸bを示す。軸bは直線L(φmin)を直線と直交する方向にd
ave_minだけ平行移動した直線に相当する。また、原点Poの位置も同様に平行移動している。軸bと直交し、かつ軸aと直交する方向が残りの軸cとなる。第3判定部150は、軸aと軸bを含む平面(反転面)に対して、面対称であると判定する(S414)。このように、物体Oが面対称性を有する場合、修正部160は、反転面に沿った軸を有するように、初期基準座標系の軸方向を修正する。
【0088】
なお、
図9、
図10に示した面対称性の判定処理は、それぞれの断面形状Scについて行われる。そして、全ての断面形状Scについて、総和d
sum_minがしきい値未満であり、かつ、軸bが共通である場合、面対称として判定される。なお、
図3~
図12に示した処理は、判定処理の一例であり、本実施の形態は上記の処理に限定されるものではない。
【0089】
システム1は、上記の判定処理を初期基準座標系の3軸のそれぞれについて行う。つまり、3軸のそれぞれについての対称性が判定される。2軸以上で角度周期を持たない回転対称形状と判定された場合、球体形状と判定される。1軸で回転対称、かつ、他の1軸で面対称の場合、円柱やラグビーボール形状などの2つの対称性を持つ物体となる。1軸について回転対称である場合、角度周期を持つ対称性(離散対称性)か、角度周期を持つ対称性かを判別することができる。離散対称な断面形状としては正多角形や星形形状などがある。上記のアルゴリズムにより、様々な対称性を判定することができる。
【0090】
以上まとめると、処理装置100は、以下の処理(1)~(6)を実行する。
(1)物体の3次元形状を示す計測データに基づいて、初期基準座標系を導出し
(2)前記初期基準座標系の軸を選択し、
(3)前記軸に対する回転対称性の有無を判定し、
(4)前記軸に対して、角度周期を有する回転対称性か否かを判定し、
(5)前記回転対称性がない場合、前記軸に対する面対称性を判定し、
(6)前記(2)において選択される軸を変えることで、前記(3)~(5)の処理を前記初期基準座標系の3軸それぞれについて行う。
【0091】
このようにすることで、適切な座標系を設定することができる。そして、上記のように設定された3次元座標系を用いて、物体の3次元モデルを表現する。つまり、物体の3次元形状を示す3次元モデルが、適切な座標系で表される。例えば、3次元モデルを示す点群やメッシュの位置座標が適切な座標系で示される。様々な対称性に関する情報をアノテーションすることができる。対称性を考慮した座標軸で3次元形状モデルを作成することができる。
【0092】
処理装置100は、3次元モデルから初期基準座標を導出する。そして、処理装置100は、各軸における回転対称性、及び面対称性を順に探索することで、効率良く、計算を行うことができる。物体の3次元形状モデルに対する座標系設定と対称性に関する情報をアノテーションすることができる。適切な座標系における3次元モデルを効率良く生成することができる。
【0093】
対称性を有する物体の場合、座標系の軸が対称軸や対称面(反転面)を規定している。記角度周期を有する回転対称性がある場合、又は、面対称性を有している場合、修正部160が、初期基準座標系を修正する。修正された座標系の軸を用いることで、物体の位置姿勢を適切に変えることができる。学習用データの作成を簡便かつ適切に行うことができる。さらに、学習用データに位置姿勢を示す位置姿勢情報などを適切かつ簡便にアノテーションすることができる。推定器での6軸位置姿勢の推定の有用な座標系を設定することが可能となる。
【0094】
3次元形状を示すメッシュモデルの各メッシュに対する法線の方向に基づいて、座標系設定部120が初期基準座標を導出するようにしてもよい。これにより、適切な初期基準座標系を簡便に決定することができる。
【0095】
座標系設定部120は、物体Oを包含する直方体を3次元バウンディングボックスとしている。そして、座標系設定部120は、直方体の中心を原点とし、直方体の各辺方向をxyz軸とする初期基準座標系を導出している。
【0096】
物体が面対称性を有する場合、修正部160は、反転面に沿った軸を有するように、初期基準座標系の軸方向を修正する。
【0097】
物体が角度周期を有する回転対称性を有する場合、修正部160は、ピーク面に基づいて初期基準座標系の軸方向を修正する。
【0098】
上記の処理方法はコンピュータプログラムやハードウェアで実施可能である。つまり、処理装置100が所定のプログラムを実行することで、生成装置又は生成システムとして機能する。
図13に処理装置100のハードウェア構成の一例を示す。処理装置100はプロセッサ10,メモリ20、及びインタフェース30等を備えている。メモリ20は、プログラムや各種パラメータ、計測データなどを格納する。プロセッサ10は。メモリ20に格納されたプログラムを実行する。インタフェース30がセンサ200に対してデータを送信する。また、インタフェース30は、センサ200からのデータを受信する。
【0099】
処理装置100のプロセッサ10がプログラムを実行することで、本実施の形態にかかる方法を実行することができる。処理装置100は、少なくとも一つのプロセッサ10を有していればよい。そして、1つ以上のプロセッサ10がメモリに格納されたプログラムを実行することで、上記の処理が実施される。処理装置100は、物理的に単一な装置に限らず、複数の装置に分散されていてもよい。つまり、複数の装置が分散処理を行うことで、上記の方法を実行してもよい。
【0100】
上記処理のうちの一部又は全部は、コンピュータプログラムによって実行されてもよい。つまり、処理装置100を構成する制御コンピュータがプログラムを実行することで、上記の処理装置100の制御が実行される。上述したプログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0101】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限られたものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【0102】
1 システム
10 プロセッサ
20 メモリ
30 インタフェース
100 処理装置
110 計測データ取得部
120 座標系設定部
130 第1判定部
140 第2判定部
150 第3判定部
160 修正部
200 センサ
210 テーブル
220 デプスセンサ