(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024043785
(43)【公開日】2024-04-02
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20240326BHJP
【FI】
G06T19/00 A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022148974
(22)【出願日】2022-09-20
(71)【出願人】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(71)【出願人】
【識別番号】504136568
【氏名又は名称】国立大学法人広島大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】奈良村 五十志
(72)【発明者】
【氏名】相澤 宏旭
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050AA03
5B050BA06
5B050BA09
5B050BA13
5B050CA01
5B050DA04
5B050EA19
5B050EA26
5B050FA02
5B050FA05
(57)【要約】 (修正有)
【課題】外観と幾何形状ともに一貫性を持つ写実的な画像を生成し、観測視点に応じた輝度変化を反映した画像を生成する情報処理装置、情報処理方法及びプログラムを提供する。
【解決手段】制御装置、情報処理装置及び学習装置を含む情報処理システムにおいて、情報処理装置は、オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得する取得部と、前記姿勢データの次元数を減らした低次元姿勢データを生成するデータ変換部242と、予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成される画像であって、前記オブジェクトの密度を含む画像を生成する画像生成部243と、を備える。
【選択図】
図4
【特許請求の範囲】
【請求項1】
オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得する取得部と、
前記姿勢データの次元数を減らした低次元姿勢データを生成する第1生成部と、
予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成され得る画像であって、前記オブジェクトの密度を含む画像を生成する第2生成部と、
を備える情報処理装置。
【請求項2】
前記姿勢データには、前記エンドエフェクタに設けられた複数の関節の其々の位置及び向きが要素として含まれ、
前記第1生成部は、多変量解析により前記姿勢データに含まれる複数の前記要素を減らすことで、前記低次元姿勢データを生成する、
請求項1に記載の情報処理装置。
【請求項3】
前記第2生成部は、
前記機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データから、前記視線上における前記シーンの色及び密度を推定し、
前記シーンの色及び密度を前記視線上において可視化することで、前記画像を生成する、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記機械学習モデルは、前記低次元姿勢データ、前記方向データ、及び前記位置データに対して、正解となる前記画像がラベル付けられたトレーニングデータセットに基づいて学習されたニューラルレイディアンスフィールズである、
請求項3に記載の情報処理装置。
【請求項5】
前記第2生成部は、
前記低次元姿勢データ、前記方向データ、及び前記位置データの其々を高次元化し、
高次元化された前記低次元姿勢データ、前記方向データ、及び前記位置データを前記ニューラルレイディアンスフィールズに入力し、
高次元化された前記低次元姿勢データ、前記方向データ、及び前記位置データが入力されたことに応じて前記ニューラルレイディアンスフィールズが出力した前記シーンの色及び密度に基づいて、前記画像を生成する、
請求項4に記載の情報処理装置。
【請求項6】
カメラによって撮像された前記シーンの画像と、前記第2生成部によって生成された画像とに基づいて、前記エンドエフェクタの姿勢を制御する制御部を更に備える、
請求項1又は2に記載の情報処理装置。
【請求項7】
コンピュータを用いた情報処理方法であって、
オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得すること、
前記姿勢データの次元数を減らした低次元姿勢データを生成すること、
予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成され得る画像であって、前記オブジェクトの密度を含む画像を生成すること、
を含む情報処理方法。
【請求項8】
コンピュータに実行させるためのプログラムであって、
オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得すること、
前記姿勢データの次元数を減らした低次元姿勢データを生成すること、
予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成され得る画像であって、前記オブジェクトの密度を含む画像を生成すること、
を含むプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
多層パーセプトロン(Multilayer Perceptrons:MLPs)を含む機械学習モデルを用いて、あるオブジェクト又はシーンを任意の視点から観測した際に得られる画像(ビュー)を生成又は合成するコンピューティングシステムが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら従来の技術では、機械学習モデルに対して互いに種類の異なる複数のデータを入力する際に、それらデータの次元数に偏りが生じる場合、機械学習モデルの学習が失敗する場合があった。この結果、オブジェクト又はシーンの外観及び幾何形状が写実的でない画像が生成されたり、又は観測視点に応じた輝度変化が反映されていない画像が生成されたりする場合があった。
【0005】
本発明は、このような事情を考慮してなされたものであり、外観と幾何形状ともに一貫性を持つ写実的な画像や、観測視点に応じた輝度変化を反映した画像を生成することができる情報処理装置、情報処理方法、及びプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明に係る情報処理装置、情報処理方法、及びプログラムは以下の構成を採用した。
(1)本発明の第1の態様は、オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得する取得部と、前記姿勢データの次元数を減らした低次元姿勢データを生成する第1生成部と、予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成され得る画像であって、前記オブジェクトの密度を含む画像を生成する第2生成部と、を備える情報処理装置である。
【0007】
(2)本発明の第2の態様は、第1の態様において、前記姿勢データには、前記エンドエフェクタに設けられた複数の関節の其々の位置及び向きが要素として含まれ、前記第1生成部は、多変量解析により前記姿勢データに含まれる複数の前記要素を減らすことで、前記低次元姿勢データを生成するものである。
【0008】
(3)本発明の第3の態様は、第1又は第2の態様において、前記第2生成部は、予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データから、前記視線上における前記シーンの色及び密度を推定し、前記シーンの色及び密度を前記視線上において可視化することで、前記画像を生成するものである。
【0009】
(4)本発明の第4の態様は、第3の態様において、前記機械学習モデルは、前記低次元姿勢データ、前記方向データ、及び前記位置データに対して、正解となる前記画像がラベル付けられたトレーニングデータセットに基づいて学習されたニューラルレイディアンスフィールズであるものである。
【0010】
(5)本発明の第5の態様は、第4の態様において、前記第2生成部は、前記低次元姿勢データ、前記方向データ、及び前記位置データの其々を高次元化し、高次元化された前記低次元姿勢データ、前記方向データ、及び前記位置データを前記ニューラルレイディアンスフィールズに入力し、高次元化された前記低次元姿勢データ、前記方向データ、及び前記位置データが入力されたことに応じて前記ニューラルレイディアンスフィールズが出力した前記シーンの色及び密度に基づいて、前記画像を生成するものである。
【0011】
(6)本発明の第6の態様は、第1又は第2の態様において、カメラによって撮像された前記シーンの画像と、前記第2生成部によって生成された画像とに基づいて、前記エンドエフェクタの姿勢を制御する制御部を更に備えるものである。
【0012】
(7)本発明の第7の態様は、コンピュータを用いた情報処理方法であり、オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得すること、前記姿勢データの次元数を減らした低次元姿勢データを生成すること、予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成され得る画像であって、前記オブジェクトの密度を含む画像を生成すること、を含む情報処理方法である。
【0013】
(8)本発明の第8の態様は、コンピュータに実行させるためのプログラムであり、オブジェクトを把持又は操作可能なエンドエフェクタの姿勢データと、ある視点から前記オブジェクトを観測する際の視線の方向データと、前記視点の位置データとを取得すること、前記姿勢データの次元数を減らした低次元姿勢データを生成すること、予め学習された機械学習モデルを用いて、前記低次元姿勢データ、前記方向データ、及び前記位置データを基に、前記エンドエフェクタによって前記オブジェクトが把持又は操作されるシーンが前記視点から観測された場合に生成され得る画像であって、前記オブジェクトの密度を含む画像を生成すること、を含むプログラムである。
【発明の効果】
【0014】
上記の態様によれば、外観と幾何形状ともに一貫性を持つ写実的な画像を生成したり、観測視点に応じた輝度変化を反映した画像を生成したりすることができる。
【図面の簡単な説明】
【0015】
【
図1】第1実施形態に係る情報処理システム1の構成の一例を表す図である。
【
図2】第1実施形態に係るロボット10の外観を模式的に表す図である。
【
図3】第1実施形態に係るロボット10及び制御装置100の構成図である。
【
図4】第1実施形態に係る情報処理装置200の構成図である。
【
図6】第1実施形態に係る処理部240の一連の処理の流れを表すフローチャートである。
【
図8】P-NeRFのネットワーク構成の一例を表す図である。
【
図9】第1実施形態に係る学習装置300の構成図である。
【
図10】機械学習モデルの学習方法を説明するための図である。
【
図11】第2実施形態に係るロボット10及び制御装置100Aの構成図である。
【発明を実施するための形態】
【0016】
以下、図面を参照し、本発明の情報処理装置、情報処理方法、及びプログラムの実施形態について説明する。
【0017】
<第1実施形態>
[システムの構成]
図1は、第1実施形態に係る情報処理システム1の構成の一例を表す図である。情報処理システム1は、例えば、制御装置100と、情報処理装置200と、学習装置300とを備える。制御装置100、情報処理装置200、及び学習装置300は、ネットワークNWを介して接続される。ネットワークNWは、LAN(Local Area Network)やWAN(Wide Area Network)などを含む。
【0018】
制御装置100は、ロボット10が自律的に行動するように自律制御を行う。制御装置100は、典型的には、ロボット10に搭載され、直接ロボット10を制御する。また、制御装置100は、ロボット10から遠く離れた地点に設置され、ネットワークNWを介して遠隔でロボット10を制御してもよい。
【0019】
情報処理装置200は、機械学習モデルを用いて、ロボット10に搭載されたカメラ11や、ロボット10が作業する空間(例えば室内)に設置された監視カメラ20とは異なる別視点から観測されたシーンの画像を人工的に生成又は合成する。
【0020】
学習装置300は、情報処理装置200によって利用される機械学習モデルを学習する。
【0021】
情報処理装置200及び学習装置300の一方又は双方は、単一の装置であってもよいし、ネットワークNWを介して接続された複数の装置が互いに協働して動作する一つのシステムであってもよい。すなわち、情報処理装置200及び学習装置300の一方又は双方は、分散コンピューティングシステムやクラウドコンピューティングシステムに含まれる複数のコンピュータ(プロセッサ)によって実現されてもよい。
【0022】
[ロボットの外観]
図2は、第1実施形態に係るロボット10の外観を模式的に表す図である。ロボット10は、典型的には、エンドエフェクタによってオブジェクトOBを把持したり、又は操作したりすることができる人型ロボット(ヒューマノイドロボット)であるがこれに限られず、オブジェクトOBを把持又は操作できれば如何なる態様のロボットであってもよい。例えば、ロボット10は、四足歩行の動物型のロボットであってもよいし、産業用ロボットであってもよいし、軍事用ロボットであってもよいし、家庭用の掃除用ロボットであってもよいし、その他種々のロボットであってよい。
【0023】
エンドエフェクタは、ロボットハンドともいう。そのため以下の説明では、エンドエフェクタのことを単に「手」と称して説明する場合がある。ロボット10のエンドエフェクタには、例えば、数本の指がグリッパーとして設けられてよい。
【0024】
ロボット10は、例えば、ロボット10から見た外界環境を画像化するためのカメラ11や、ロボット10の動作を制御するための制御装置100などを備えており、制御装置100によって決定された行動に従って目的のタスクを実行する。
【0025】
タスクとは、例えば、オブジェクトOBを手で掴んだり、オブジェクトOBをもう一方の手に持ち替えたり、又はオブジェクトOBを移動させたりすることである。なお、タスクはこれらに限られず、任意のタスクが設定可能である。
【0026】
カメラ11は、ロボット10のボディの一部(典型的には頭部)に設置される。カメラ11は、例えば、デプスカメラ(3Dカメラ)であってよい。例えば、カメラ11は、エンドエフェクタによってオブジェクトOBが把持されたり、又は操作されたりするシーンを撮像し、そのシーンを写した画像データを制御装置100に送信する。
【0027】
[ロボット及び制御装置の構成]
図3は、第1実施形態に係るロボット10及び制御装置100の構成図である。ロボット10は、上述したカメラ11に加えて、更にアクチュエータ12と、状態センサ13と、動作制御部14とを備える。
【0028】
アクチュエータ12は、動作制御部14の制御を受けてロボット10の各部位(腕、指、足、頭、胴、腰等)を駆動する。アクチュエータ12は、例えば、電磁モータ、ギア、人工筋などを含む。
【0029】
状態センサ13は、ロボット10の状態(例えば関節角度や角速度、トルク等)を検出するセンサである。状態センサ13は、例えば、ロボット10やエンドエフェクタの関節の回動の度合いを検出するロータリエンコーダや、関節を回動させるためのワイヤーの張力を検出する張力センサ、関節軸にかかるトルクを検出するトルクセンサ、ロボット10の姿勢を検出するための加速度センサやジャイロセンサなどを含む。
【0030】
動作制御部14は、制御装置100によって生成された制御コマンドに基づいて、アクチュエータ12を制御する。
【0031】
制御装置100は、例えば、通信インターフェース110と、処理部120と、記憶部130とを備える。
【0032】
通信インターフェース110は、ネットワークNWを介して外部装置と通信したり、バスのような通信線を介してロボット10と通信したりする。外部装置は、例えば、ロボット10に対してタスクの実行を要求するユーザが利用可能な端末装置(スマートフォンやパーソナルコンピュータなど)である。通信インターフェース110には、例えば、受信機や送信機を含む無線通信モジュールや、NIC(Network Interface Card)などが含まれる。
【0033】
処理部120は、例えば、取得部121と、把持姿勢決定部122と、コマンド生成部123と、通信制御部124とを備える。
【0034】
取得部121は、通信インターフェース110を介して、ロボット10から画像データと状態データを取得する。
【0035】
画像データは、カメラ11がオブジェクトOBを撮像した際に生成された画像データである。例えば、カメラ11がロボット10の頭部に設置された場合、取得部121は、エンドエフェクタによってオブジェクトOBが把持されたり又は操作されたりするシーンを、ロボット10の頭部という視点から観測したときの画像データを取得する。
【0036】
状態データには、例えば、ロボット10の状態センサ13の検出値が含まれる。具体的には、状態データには、ロータリエンコーダにより検出されたロボット10又はエンドエフェクタの関節の角度、張力センサにより検出されたロボット10又はエンドエフェクタの関節のワイヤー張力、トルクセンサにより検出されたロボット10又はエンドエフェクタの関節軸のトルク、加速度センサにより検出されたロボット10又はエンドエフェクタの加速度、ジャイロセンサにより検出されたロボット10又はエンドエフェクタの角速度などが含まれる。
【0037】
取得部121は、ロボット10の作業空間上に監視カメラ20が存在する場合、ロボット10から画像データを取得することに加えて、或いは代えて、監視カメラ20から画像データを取得してもよい。以下、カメラ11及び/又は監視カメラ20によって観測されたシーンの画像データのことを「カメラ視点画像データ」と称して説明する。
【0038】
更に取得部121は、通信インターフェース110を介して、カメラ11又は監視カメラ20とは異なる別視点から観測されたシーンの画像データを、情報処理装置200から取得する。以下、別視点から観測されたシーンの画像データのことを「別視点画像データ」と称して説明する。
【0039】
把持姿勢決定部122は、カメラ視点画像データと、別視点画像データとに基づいて、エンドエフェクタがとるべき姿勢(ポーズ)を決定する。例えば、把持姿勢決定部122は、別視点画像データに含まれるオブジェクトOBと、カメラ視点画像データに含まれるオブジェクトOBとが画像平面上において一致するように、エンドエフェクタの姿勢を決定する。
【0040】
コマンド生成部123は、把持姿勢決定部122によって決定されたエンドエフェクタの姿勢と、取得部121によって取得された状態データとに基づいて、ロボット10の各アクチュエータ12を制御するための制御コマンドを生成する。
【0041】
通信制御部124は、通信インターフェース110を介して、コマンド生成部123によって生成された制御コマンドをロボット10に送信する。ロボット10の動作制御部14は、制御装置100から制御コマンドを受信すると、その制御コマンドに基づいてアクチュエータ12を制御する。これによってロボット10が行動し、オブジェクトOBを把持したり操作したりするようなタスクが実行される。
【0042】
処理部120の構成要素は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などが記憶部130に格納されたプログラム又はインストラクションを実行することにより実現される。これらの構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0043】
記憶部130は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより実現される。記憶部130は、ファームウェアやアプリケーションプログラム、処理部120の演算結果などを格納する。
【0044】
[情報処理装置の構成]
以下、第1実施形態に係る情報処理装置200の構成を説明する。
図4は、第1実施形態に係る情報処理装置200の構成図である。情報処理装置200は、例えば、通信インターフェース210と、入力インターフェース220と、出力インターフェース230と、処理部240と、記憶部250とを備える。
【0045】
通信インターフェース210は、ネットワークNWを介して制御装置100や学習装置300と通信する。通信インターフェース310には、例えば、受信機や送信機を含む無線通信モジュールや、NICなどが含まれる。
【0046】
入力インターフェース220は、ユーザからの各種の入力操作を受け付け、受け付けた入力操作を電気信号に変換して処理部240に出力する。例えば、入力インターフェース220は、マウス、キーボード、トラックボール、スイッチ、ボタン、ジョイスティック、タッチパネル等を含む。
【0047】
出力インターフェース230は、例えば、ディスプレイやスピーカなどを備える。ディスプレイは、処理部240によって生成された画像や、操作者からの各種の入力操作を受け付けるためのGUI(Graphical User Interface)等を表示する。例えば、ディスプレイは、LCD(Liquid Crystal Display)や、有機EL(Electro Luminescence)ディスプレイ等である。スピーカは、処理部240から入力された情報を音声として出力する。
【0048】
処理部240は、例えば、取得部241と、データ変換部242と、画像生成部243と、出力制御部244とを備える。データ変換部242は「第1生成部」の一例であり、画像生成部243は「第2生成部」の一例である。
【0049】
処理部240の構成要素は、例えば、CPUやGPUなどが記憶部250に格納されたプログラムを実行することにより実現される。これらの構成要素の一部または全部は、LSI、ASIC、またはFPGAなどのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0050】
記憶部250は、例えば、HDD、フラッシュメモリ、EEPROM、ROM、RAMなどにより実現される。記憶部250は、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、モデルデータを格納する。
【0051】
モデルデータは、別視点画像データを生成又は合成する際に利用される機械学習モデルを定義したプログラム又はアルゴリズムである。本実施形態の機械学習モデルは、複数の中間層を含むニューラルネットワークである。例えば、モデルデータには、ニューラルネットワークを構成する複数の層のそれぞれに含まれるユニットが互いにどのように結合されるのかという結合情報や、結合されたユニット間で入出力されるデータに付与される結合係数などの各種情報が含まれる。結合情報とは、例えば、各層に含まれるユニット数や、各ユニットの結合先のユニットの種類を指定する情報、各ユニットを実現する活性化関数、隠れ層のユニット間に設けられたゲートなどの情報を含む。ユニットの活性化関数は、例えば、正規化線形関数(ReLU関数)であってもよいし、シグモイド関数や、ステップ関数、Softplus関数、その他の関数などであってもよい。ゲートは、例えば、活性化関数によって返される値(例えば1または0)に応じて、ユニット間で伝達されるデータを選択的に通過させたり、重み付けたりする。結合係数は、例えば、ニューラルネットワークの中間層において、ある層のユニットから、より深い層のユニットにデータが出力される際に、出力データに対して付与される重みを含む。結合係数は、各層の固有のバイアス成分などを含んでもよい。
【0052】
例えば、機械学習モデルは、対象とするシーンを観測することができる任意の視点が指定され、更に、その視点からシーンを観測する際の視線の方向が指定された場合、指定された視点及び方向で対象シーンを観測したときに人間であれば認識し得るような三次元構造に関する情報を出力するように予め学習されたモデルである。このような機械学習モデルは、例えば、NeRF(Neural Radiance Fields)によって実装することができる。
【0053】
NeRFは、主に、複数の視点の画像から、任意の視点(新たな視点)の画像を生成するタスク(新規視点画像生成(Novel View Synthesis)という)を実現するために提案された手法である。
【0054】
図5は、NeRFの概要を説明するための図である。NeRFは、ある視点の三次元位置を示す位置ベクトルx(→)=(x,y,z)と、その視点からシーンを観測する際の視線の方向を示す方向ベクトルd(→)=(θ,φ)とが指定されると、視線上においてN個のサンプリング点を定め、各サンプリング点の色を示す色ベクトルc(→)=(R,G,B)と密度σを出力する。括弧付きの矢印(→)はベクトルを表している。例えば、xは三次元空間の幅を表し、yは奥行きを表し、zは高さを表してよい。θ及びφのうち一方は仰角を表し、θ及びφのうち他方は方位角を表してよい。Rは赤色を表し、Gは緑色を表し、Bは青色を表している。Nは任意の自然数である。
【0055】
本実施形態では、ロボット10のエンドエフェクタの姿勢を制御するため、そのエンドエフェクタの関節の姿勢によって条件付けられたNeRFを利用する。人の身体などのポーズを制御することを目的としたNeRFモデルは既にいくつか提案されており、最もシンプルなモデルとして、Pose-conditioned NeRF(以下、P-NeRFという)が知られている。本実施形態では、一例として、エンドエフェクタの関節の姿勢によって条件付られたP-NeRFによって機械学習モデルが実装されるものとして説明する。
【0056】
[情報処理装置の処理フロー]
以下、情報処理装置200の処理部240の各構成要素についてフローチャートを用いて説明する。
図6は、第1実施形態に係る処理部240の一連の処理の流れを表すフローチャートである。
【0057】
まず、取得部241は、視点の三次元位置を表す位置ベクトルx(→)と、視線の方向を示す方向ベクトルd(→)とを取得する(ステップS100)。位置ベクトルx(→)は「位置データ」の一例であり、方向ベクトルd(→)は「方向データ」の一例である。
【0058】
例えば、ユーザが入力インターフェース220に対して、視点の三次元位置や視線の方向を入力した場合、取得部241は、入力インターフェース220に対するユーザの入力を、視点の位置ベクトルx(→)及び視線の方向ベクトルd(→)として取得してよい。
【0059】
また、視点の三次元位置や視線の方向は、ロボット10に与えられたタスクに応じて決定される場合がある。例えば、オブジェクトOBがエンドエフェクタに比べて小さく、オブジェクトOBの大部分がエンドエフェクタによって覆われてしまう場合、カメラ視点画像データ上では、オブジェクトOBの三次元構造が十分に認識できない場合がある。また、カメラ視点画像データ上では、オブジェクトOBの表面の三次元構造は認識できたとしても、オブジェクトOBの裏面や側面の三次元構造は表面に比べて認識しにくい。
【0060】
このような場合、取得部241は、通信インターフェース210を介して、ロボット10又は制御装置100からタスクを取得し、その取得したタスクに基づいて、カメラ11又は監視カメラ20から見てオブジェクトOBの三次元構造が認識しにくいと想定される視点位置及び視線方向を算出する。そして、取得部241は、算出したそれら視点位置及び視線方向の其々のベクトルを取得する。
【0061】
次に、取得部241は、エンドエフェクタの関節の姿勢を表す姿勢ベクトルl(→)を取得する(ステップS102)。姿勢ベクトルl(→)は、エンドエフェクタに設けられた複数の関節の其々の回転行列と平行移動ベクトルからなる4×4次元のポーズ変換行列li(i=1,...,P)として表される。以下、回転行列と平行移動ベクトルをまとめて「変換行列」と説明する場合がある。Pは関節数である。つまり、姿勢ベクトルl(→)は、P×4×4次元である。例えば、関節数Pが17である場合、姿勢ベクトルl(→)は272次元となる。位置ベクトルx(→)が3次元であり、方向ベクトルd(→)が2次元であることを考慮すると、これらベクトルに比べて姿勢ベクトルl(→)は非常に高次元なベクトルである。
【0062】
例えば、取得部241は、通信インターフェース210を介して、ロボット10又は制御装置100から、状態センサ13の検出値が含まれる状態データを取得する。そして、取得部241は、状態データに含まれる複数の検出値の中から、エンドエフェクタに設けられた複数の関節の其々の変換行列(回転行列及び平行移動ベクトル)を抽出し、これらを組み合わせて姿勢ベクトルl(→)を生成する。姿勢ベクトルl(→)は「姿勢データ」の一例である。
【0063】
次に、データ変換部242は、姿勢ベクトルl(→)を低次元表現に変換(圧縮)する(ステップS104)。
【0064】
エンドエフェクタの関節からなる可動域の空間は、より低次元の空間で表現することができる。例えば、取得部241は、、関節数Pで各関節の変換行列を横に並べた姿勢ベクトルl(→)をNサンプル分取得する。データ変換部242は、それらNサンプルの姿勢ベクトルl(→)を(x,y,z,yaw,pitch,roll)の6次元ベクトルに変換し、その6次元ベクトルに変換したNサンプルの姿勢ベクトルl(→)の集合D∈{li}N
i=1に対して主成分分析を行う。データ変換部242は、主成分分析により得られた共分散行列の固有値と固有ベクトルを用いて、P×4×4次元の姿勢ベクトルl(→)を、d次元の低次元表現e(→)に変換(圧縮)する。
【0065】
P×4×4次元の姿勢ベクトルl(→)は、関節数Pの増加に比例して次元数が増加する。一方、低次元表現e(→)は、関節数Pに依存せず固定長のベクトル表現(次元数が一定のベクトル)である。以下、低次元表現e(→)のことを「固有把持表現(Eigengrasp representation)」と称して説明する。固有把持表現e(→)は「低次元姿勢データ」の一例である。
【0066】
なお、データ変換部242は、主成分分析の代わりに、重回帰分析や独立成分分析、因子分析といったその他の多変量解析を行ってもよい。また、データ変換部242は、多変量解析を行うことで姿勢ベクトルl(→)を固有把持表現e(→)に変換する代わりに、オートエンコーダを用いて姿勢ベクトルl(→)を固有把持表現e(→)に変換してもよい。オートエンコーダは、入力データの次元を圧縮するように予め学習されたモデルであり、例えば、畳み込み層を含むニューラルネットワークによって実装される。
【0067】
次に、データ変換部242は、位置ベクトルx(→)、方向ベクトルd(→)、及び固有把持表現e(→)の其々を高次元化させる(ステップS106)。言い換えれば、データ変換部242は、位置ベクトルx(→)、方向ベクトルd(→)、及び固有把持表現e(→)の其々を高次元空間に埋め込む。
【0068】
上述したように一般的なNeRFは、3次元の位置ベクトルx(→)と2次元の方向ベクトルd(→)が入力されると、色ベクトルc(→)と密度σを出力する。しかしながら、入力データの次元は5次元のみである。多層パーセプトロン(MLPs)は任意の連続関数を理論上近似できるが、低次元の入力は色と形状の高周波成分を表現できないことが知られている。これは周波数バイアスやスペクトラルバイアスと呼ばれる。この現象はNeural Tangent Kernelの深層学習の理論分野で研究されている現象であり、ニューラルネットワークは低周波な信号から高周波な信号へ学習されるというものである。言い換えると、簡単な関数から複雑な関数へフィッティングされる。結果として、多層パーセプトロン(MLPs)の出力が低周波成分へ収束し、自然画像が持つ高周波成分を捉えるのに失敗し、不鮮明な画像生成につながることが知られている。
【0069】
従って、データ変換部242は、データ変換部242は、低次元な入力データ(位置ベクトルx(→)、方向ベクトルd(→)、及び固有把持表現e(→))を高次元空間に埋め込む。例えば、データ変換部242は、Positional Encodingと呼ばれる手法によって、低次元な入力データを低次元の入力を高次元空間に埋め込んでよい。Positional Encodingは、数式(1)によって表される。
【0070】
【0071】
ρは入力データ、つまり位置ベクトルx(→)、方向ベクトルd(→)、及び固有把持表現e(→)のいずれかを表しており、Lは、入力データρの埋め込み対象となる高次元空間の次元数を表している。Lはハイパーパラメータである。
【0072】
例えば、データ変換部242は、数式(1)に表すPositional Encodingによって、位置ベクトルx(→)をより高次元のベクトルγ(x(→))に変換し、方向ベクトルd(→)をより高次元のベクトルγ(d(→))に変換し、固有把持表現e(→)をより高次元のベクトルγ(e(→))に変換する。
【0073】
次に、画像生成部243は、機械学習モデルの一つであるP-NeRFを用いて、データ変換部242によって高次元化されたベクトルγ(x(→))、γ(d(→))、γ(e(→))を基に、別視点画像データを生成する(ステップS108)。
【0074】
図7は、P-NeRFを模式的に表す図である。図示のように、画像生成部243は、P-NeRFに対して、データ変換部242によって高次元化されたベクトルγ(x(→))、γ(d(→))、γ(e(→))を入力する。これを受けてP-NeRFは、それら高次元化されたベクトルが入力されたことに応じて色ベクトルc(→)と密度σを出力する。画像生成部243は、P-NeRFによって出力された色ベクトルc(→)と密度σに基づいて、別視点画像データを生成する。
【0075】
図8は、P-NeRFのネットワーク構成の一例を表す図である。本実施形態のP-NeRF(エンドエフェクタの関節の姿勢によって条件付けられたNeRF)は、図示のように、複数の中間層を含む。中間層は、FC(Fully Connected)層であり、密度σを出力する出力層と、色ベクトルc(→)を出力する出力層とに途中で分岐している。例えば、各中間層の次元数は256であってよく、活性化関数はReLUであってよい。
【0076】
P-NeRFでは、γ(x(→))とγ(e(→))が最前段の中間層と真中の中間層との其々に入力され、γ(d(→))とγ(e(→))が色ベクトルc(→)を出力する出力層の前々段の中間層に入力される。
【0077】
固有把持表現e(→)により条件付けられたP-NeRFは、数式(2)によって表される。以下、固有把持表現e(→)により条件付けられたP-NeRFを「Eigen-NeRF(Eigengrasp-conditioned NeRF)」と称して説明する。
【0078】
【0079】
Eigen-NeRFは、γ(x(→))、γ(d(→))、γ(e(→))が入力されたことに応じて色ベクトルc(→)と密度σを出力する。画像生成部243は、Eigen-NeRFによって出力された色ベクトルc(→)と密度σを視線方向(方向ベクトルd(→))上においてボリュームレンダリングすることで、位置ベクトルx(→)が示す三次元位置から観測したときに得られるであろうシーンの別視点画像データを生成する。
【0080】
例えば、画像生成部243は、ボリュームレンダリングとして、人間が知覚する視覚が網膜に入射する光の輝度から決定されるように、視線方向(方向ベクトルd(→))上の色を密度に応じて積算することで、別視点画像中の画素値を決定する。
【0081】
このとき、視線方向に沿って、光源から視点へ逆向きに進む光を、光線rと呼ぶ。画像生成部243は、3次元空間上を進む光線r上の各サンプル点において、NeRFによって決定された各サンプル点の色ベクトルc(→)と密度σから、画像空間上の画素値をボリュームレンダリングによって決定する。この一連のレンダリング手順を定式化する。光線rに沿った画像空間上の色C(r)を決定するために、ボリュームレンダリングではオブジェクトOBが位置する3次元空間上を通る光線rを画像空間上の一点を決定する方向dに沿って飛ばす。この方向dはカメラ11(又は監視カメラ20)のパラメータから決定される。カメラ11(又は監視カメラ20)の位置を原点o(→)としたとき、光線r上の任意の点r(t)はカメラ原点o(→)から方向d(→)に向かってどれだけ進むかを示すパラメータtを用いて数式(3)のように表すことができる。
【0082】
【0083】
光線上の密度σ(r(→)(t))と色c(r(→)(t),d(→))をtで積分することで、画像面上の色を決定できる。このとき、光線rの評価はカメラ原点o(→)から無限遠に渡って計算することができるが、ボリュームレンダリングでは光線rを評価する下限tnと上限tfを設定する。画像空間上の点の色C(r(→))を決定する積算処理は数式(4)及び(5)で定義される。
【0084】
【0085】
【0086】
ここで,関数TはAccumulated Transmittanceと呼ばれ、光源から観測視点(カメラ)へ向かう光線の輝度が観測視点により近い物質又は物体によって減衰する現象を表現している。数式(5)の通り、積分内の項は密度σが高いと積分値が大きくなり、結果として関数Tの出力値が小さくなる。これによって、その点の光線r(t)の影響が小さくなる。実装上、この積分は離散化して計算される。そのために、カメラの位置である原点o(→)からの距離に応じた区間[tn,tf]で、ハイパーパラメータによって決定されるN個の評価したい光線の3次元位置をサンプリングする。レンダリング時は、光線上のサンプリングされた点でのみ評価され、画素値に影響する。このとき、一定間隔ではなく、数式(6)のように一様分布Uに基づくランダム性が付与され、光線がサンプリングされる。
【0087】
【0088】
このサンプリングされたtiの集合に対して、NeRFは密度σiと色ci(→)を出力する。この密度σiと色ci(→)を離散的に積分することで、画像空間上の色C^(r)を決定する。C^(r)は、数式(7)によって表される。数式(7)におけるTiは数式(8)によって表され、δiは数式(9)によって表される。
【0089】
【0090】
【0091】
【0092】
ここでδiは隣接するサンプル点の間の距離を示す。画像生成部243は、ボリュームレンダリングによって画像上の画素値C^(r)を求めることを、全ての画素に対して実行することで、別視点画像を生成する。
【0093】
画像生成部243は、写実的な別視点画像をより効果的に生成するために、オブジェクトOBの境界付近などの色が急激に変動する領域やオブジェクトOBが密集する領域において、重点的に光線をサンプリングしてよい(Hierarchical Volume Sampling)。
【0094】
また、画像生成部243は、Eigen-NeRFによって出力された密度σと、光線r上のサンプリング点tまでの距離zを用いて深度画像を別視点画像データとしてレンダリングしてもよい。深度は数式(10)によって計算できる。
【0095】
【0096】
なお、画像生成部243は、ボリュームレンダリングに代えて、例えば最大値投影法やサーフェスレンダリングといった他の手法で別視点画像を生成してもよい。また、画像生成部243は、Eigen-NeRFによって出力された密度σからSDF(Signed Distance Field)を構成し、3次元再構成した後に通常の3次元2次元射影を行うことで別視点画像を生成してもよい。
【0097】
フローチャートの説明に戻る。次に、出力制御部244は、画像生成部243によって生成された別視点画像データを出力する(ステップS110)。例えば、出力制御部244は、通信インターフェース210を介して、制御装置100に別視点画像データを送信してもよいし、出力インターフェース230のディスプレイに別視点画像データを表示させてもよい。これによって本フローチャートの処理が終了する。
【0098】
例えば、制御装置100の通信インターフェース110が情報処理装置200から別視点画像データを受信すると、把持姿勢決定部122は、カメラ視点画像データと、別視点画像データとに基づいて、エンドエフェクタがとるべき姿勢を決定する。これによってロボット10に目的のタスクを実行させるような制御コマンドを生成することができる。
【0099】
[学習装置の構成]
以下、第1実施形態に係る学習装置300の構成を説明する。
図9は、第1実施形態に係る学習装置300の構成図である。学習装置300は、例えば、通信インターフェース310と、処理部320と、記憶部330とを備える。
【0100】
通信インターフェース310は、ネットワークNWを介して情報処理装置200と通信する。通信インターフェース310には、例えば、受信機や送信機を含む無線通信モジュールや、NICなどが含まれる。
【0101】
処理部320は、例えば、取得部321と、学習部322と、通信制御部323とを備える。
【0102】
処理部320の構成要素は、例えば、CPUやGPUなどが記憶部330に格納されたプログラムを実行することにより実現される。これらの構成要素の一部または全部は、LSI、ASIC、またはFPGAなどのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0103】
記憶部330は、例えば、HDD、フラッシュメモリ、EEPROM、ROM、RAMなどにより実現される。記憶部330は、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、未学習の機械学習モデル(Eigen-NeRF)を定義したモデルデータを格納する。未学習の機械学習モデルとは、一度も学習されたことがないモデルであってもよいし、少なくとも一度は学習されたものの、その学習が十分でないモデルであってもよい。
【0104】
取得部321は、未学習の機械学習モデルを学習するためのトレーニングデータセットを取得する。
【0105】
トレーニングデータセットは、トレーニングのために用意された高次元ベクトルγ(x(→))、γ(d(→))、γ(e(→))に対して、機械学習モデルが出力すべき正解の別視点画像データがラベル付けられたデータセットである。言い換えれば、トレーニングデータセットは、高次元ベクトルγ(x(→))、γ(d(→))、γ(e(→))を入力データとし、機械学習モデルが出力すべき正解の別視点画像データを出力データとしたデータセットである。
【0106】
例えば、取得部321は、通信インターフェース310を介して他の装置(例えばデータソース)からトレーニングデータセットを取得してよい。また、記憶部330に既にトレーニングデータセットが格納されている場合、取得部321は、記憶部330からトレーニングデータセットを読み出してよい。更に学習装置300のドライブ装置に、トレーニングデータセットが格納された非一過性の記憶媒体(例えばフレッシュメモリ等)が接続された場合、取得部321は、記憶媒体からトレーニングデータセットを読み出してもよい。
【0107】
学習部322は、取得部321によって取得されたトレーニングデータセットを用いて未学習の機械学習モデルを学習する。
【0108】
図10は、機械学習モデルの学習方法を説明するための図である。例えば、学習部322は、トレーニングデータセットに入力データとして含まれる高次元ベクトルγ(x(→))、γ(d(→))、γ(e(→))を、未学習の機械学習モデル(Eigen-NeRF)に入力する。
【0109】
未学習の機械学習モデルは、高次元ベクトルγ(x(→))、γ(d(→))、γ(e(→))が入力されたことに応じて、色ベクトルc(→)と密度σを出力する。学習部322は、機械学習モデルによって出力された色ベクトルc(→)と密度σを視線方向(方向ベクトルd(→))上においてボリュームレンダリングすることで、別視点画像データを生成する。
【0110】
学習部322は、ボリュームレンダリングにより生成した別視点画像データと、トレーニングデータセットに出力データとして含まれる正解の別視点画像データとの誤差Lcolorを算出する。学習部322は、誤差Lcolorが小さくなるように、機械学習モデルのパラメータである重み係数やバイアス成分などを確率的勾配降下法などを用いて決定(更新)する。誤差Lcolorは、例えば、数式(11)によって計算されてよい。
【0111】
【0112】
ここで、Rは光線の集合であり、Ct(r)は正解の別視点画像の画素値である。数式(11)の通り、カメラパラメータを与えられ、Coarse Network及びFine Networkからレンダリングした別視点画像と、正解の別視点画像との二乗誤差を最小化する。トレーニングデータとしては目的の視点の画像のみが必要であり、3Dモデルのような3次元のトレーニングデータが必要ない。これは微分可能なレンダラーを利用する強みである。加えて、機械学習モデルに別視点画像データとして深度画像を出力させたい場合、上記の色に関する誤差関数に加えて深度推定に関する誤差項を考慮する。深度推定の誤差を数式(12)に示す。
【0113】
【0114】
ここで、Dt(r)は正解の別視点画像の深度値であり、D^c,D^fはそれぞれCoarse NetworkとFine Networkから推定された深度値である。最終的な誤差関数Ldepthは、深度を考慮しない場合はL=Lcolorとし、深度を考慮する場合はL=Lcolor+Ldepthとすればよい。
【0115】
通信制御部323は、学習部322によって学習された機械学習モデルを定義したモデルデータを、通信インターフェース310を介して情報処理装置200に送信する。これによって情報処理装置200では、学習済みの機械学習モデルを用いて別視点画像データを生成することができる。
【0116】
以上説明した第1実施形態によれば、情報処理装置200は、オブジェクトOBを把持又は操作可能なエンドエフェクタの関節の姿勢ベクトルl(→)と、ある視点からオブジェクトOBを観測する際の視線の方向ベクトルd(→)と、視点の位置データx(→)とを取得する。情報処理装置200は、姿勢ベクトルl(→)に比べて次元数が少ない固有把持表現e(→)を、姿勢ベクトルl(→)から生成する。情報処理装置200は、Eigen-NeRFによって実装された機械学習モデルを用いて、固有把持表現e(→)、方向ベクトルd(→)、及び位置データx(→)を基に、エンドエフェクタによってオブジェクトOBが把持又は操作されるシーンが上記視点から観測された場合に生成される別視点画像データを生成する。このような処理によって、外観と幾何形状ともに一貫性を持つ写実的な画像や、観測視点に応じた輝度変化を反映した画像を生成することができる。
【0117】
更に上述した第1実施形態によれば、情報処理装置200は、Positional Encodingの前に(高次元化の前に)、位置ベクトルx(→)や方向ベクトルd(→)に比べてより高次元の姿勢ベクトルl(→)を、多変量解析やオートエンコーダを用いて固定長の固有把持表現e(→)に変換する。これによって、NeRFに入力する互い種類の異なる複数のデータ間の次元数の割合の偏りを減らすことができる。より具体的には、方向ベクトルd(→)や位置データx(→)の次元数に比べて、姿勢ベクトルl(→)の次元数が著しく大きくなるのを抑制することができる。この結果、Positional Encodingの次元のチューニングが容易になり、NeRFの学習精度を高めることができる。
【0118】
<第2実施形態>
以下、第2実施形態について説明する。上述した第1実施形態では、情報処理システム1に含まれる制御装置100と、情報処理装置200と、学習装置300とが互いに独立した別々の装置であるものとして説明した。第2実施形態では、これら装置のうち一部又は全部が一体となった装置である点で上述した第1実施形態と相違する。以下、第1実施形態との相違点を中心に説明し、第1実施形態と共通する点については説明を省略する。なお、第2実施形態の説明において、第1実施形態と同じ部分については同一符号を付して説明する。
【0119】
図11は、第2実施形態に係るロボット10及び制御装置100Aの構成図である。第2実施形態に係る制御装置100Aの処理部120Aは、上述した取得部121、把持姿勢決定部122、コマンド生成部123、及び通信制御部124に加えて更に、データ変換部242と、画像生成部243とを備える。これによって、制御装置100A単独で別視点画像データを生成することができる。
【0120】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0121】
1…情報処理システム、10…ロボット、11…カメラ、12…アクチュエータ、13…状態センサ、14…動作制御部、100…制御装置、110…通信インターフェース、120…処理部、130…記憶部、200…情報処理装置、210…通信インターフェース、220…入力インターフェース、230…出力インターフェース、240…処理部、250…記憶部、300…学習装置、310…通信インターフェース、320…処理部、330…記憶部