以下、本発明の一実施形態について図面に基づき詳細に説明する。本実施形態では、オブジェクトが撮影された画像を入力し、その姿勢を推定する情報処理システムに発明を適用した場合について説明する。
この情報処理システムは、撮影された画像の少なくとも一部がオブジェクトを含むか否かを判定する機械学習モデルと、オブジェクトを含む画像からそのオブジェクトの推定される姿勢を示す情報を出力する機械学習モデルとを含んでいる。また情報処理システムはその学習を短時間で完了するように構成されている。所要時間は、例えば、オブジェクトを把持して回転させるのに数十秒、機械学習に数分程度が想定されている。
図1は、本発明の一実施形態にかかる情報処理システムの構成の一例を示す図である。本実施形態にかかる情報処理システムは、情報処理装置10を含む。情報処理装置10は、例えば、ゲームコンソールやパーソナルコンピュータなどのコンピュータである。図1に示すように、情報処理装置10は、例えば、プロセッサ11、記憶部12、通信部14、操作部16、表示部18、撮影部20を含んでいる。情報処理システムは1台の情報処理装置10により構成されてもよいし、情報処理装置10を含む複数の装置により構成されてもよい。
プロセッサ11は、例えば情報処理装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。
記憶部12は、ROMやRAM等の記憶素子やソリッドステートドライブのような外部記憶装置のうち少なくとも一部からなる。記憶部12には、プロセッサ11によって実行されるプログラムなどが記憶される。
通信部14は、例えばネットワークインタフェースカードのような、有線通信又は無線通信用の通信インタフェースであり、インターネット等のコンピュータネットワークを介して、他のコンピュータや端末との間でデータを授受する。
操作部16は、例えば、キーボード、マウス、タッチパネル、ゲームコンソールのコントローラ等の入力デバイスであって、ユーザの操作入力を受け付けて、その内容を示す信号をプロセッサ11に出力する。
表示部18は、液晶ディスプレイ等の表示デバイスであって、プロセッサ11の指示に従って各種の画像を表示する。表示部18は、外部の表示デバイスに対して映像信号を出力するデバイスであってもよい。
撮影部20は、デジタルカメラ等の撮影デバイスである。本実施形態にかかる撮影部20は、例えば動画像の撮影が可能なカメラである。撮影部20は、可視のRGB画像を取得可能なカメラであってよい。撮影部20は、可視のRGB画像と、そのRGB画像と同期した深度情報とを取得可能なカメラであってもよい。撮影部20は情報処理装置10の外部にあってもよく、この場合は情報処理装置10と撮影部20とが、通信部14または後述の入出力部を介して接続されてよい。
なお、情報処理装置10は、マイクやスピーカなどといった音声入出力デバイスを含んでいてもよい。また、情報処理装置10は、例えば、ネットワークボードなどの通信インタフェース、DVD-ROMやBlu-ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、外部機器とデータの入出力をするための入出力部(USB(Universal Serial Bus)ポート)を含んでいてもよい。
図2は、本発明の一実施形態に係る情報処理システムで実装される機能の一例を示す機能ブロック図である。図2に示すように、情報処理システムは、機能的に、対象領域取得部21、姿勢推定部25、撮影画像取得部33、識別訓練データ生成部34、識別学習部35、形状モデル取得部36、推定訓練データ生成部37、推定学習部38、信頼度取得部39を含む。対象領域取得部21は、機能的に、領域抽出部22、特徴抽出部23、および識別モデル24を含む。姿勢推定部25は、機能的に、推定モデル26、キーポイント決定部27、および姿勢算出部28を含む。識別モデル24および推定モデル26は、どちらも機械学習モデルの一種である。
これらの機能は、主にプロセッサ11及び記憶部12により実装される。より具体的には、これらの機能は、コンピュータである情報処理装置10にインストールされた、以上の機能に対応する実行命令を含むプログラムをプロセッサ11で実行することにより実装されてよい。また、このプログラムは、例えば、光学的ディスク、磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介して情報処理装置10に供給されてもよい。
なお、本実施形態にかかる情報処理システムに、必ずしも図2に示す機能のすべてが実装されていなくてもよく、また、図2に示す機能以外の機能が実装されていてもよい。
対象領域取得部21は、撮影部20により撮影された入力画像を取得し、その取得された入力画像に含まれる1または複数の候補領域56(図3参照)のそれぞれが対象オブジェクト51の画像を含むか否か判定する。領域抽出部22は、この1または複数の候補領域56を抽出し、特徴抽出部23は候補領域56のそれぞれから画像の特徴を示す特徴量を抽出する。識別モデル24には、その候補領域56の画像としてその特徴量が入力され、その候補領域56が対象オブジェクト51の画像を含むか否かを示す情報を出力する。
対象領域取得部21は、候補領域56が対象オブジェクト51を含む場合に、入力画像から抽出される、対象オブジェクト51の画像を含む対象領域55を取得する。対象オブジェクト51は、情報処理装置10において姿勢の推定の対象となるオブジェクトである。対象オブジェクト51は事前の学習の対象となる。
図3は、入力画像の一例を示す図である。図3の例では、対象オブジェクト51は電動工具であり、以降の図においても特に説明のない場合は対象オブジェクト51の例は電動工具であるとする。入力画像は、撮影部20により撮影されており、対象領域55は対象オブジェクト51およびその近傍を含む矩形の領域である。なお、対象領域55の取得の過程において、対象オブジェクト51を含む領域の候補として、対象オブジェクト51を含まない領域も含む1または複数の候補領域56も抽出される。
領域抽出部22は、入力画像から、識別モデル24の判定の対象となる候補領域56の画像を抽出する。より具体的には、領域抽出部22は、公知のRegion Proposal技術により、入力画像から、何らかのオブジェクトが撮影された1または複数の候補領域56を識別し、その1または複数の候補領域56のそれぞれを抽出する。
識別モデル24は機械学習モデルであり、訓練データにより学習され、学習済の識別モデル24は、入力データが入力されると、識別の結果としてデータを出力する。識別モデル24に入力される入力データは、候補領域56の画像を示す情報であり、例えば、特徴抽出部23がその画像から抽出した特徴量である。また、識別モデル24は、入力データが入力されると、その候補領域56の画像が対象オブジェクト51の画像を含むか否かを示す情報を出力する。
識別モデル24の訓練データは、対象オブジェクト51が撮影された画像を含む複数の正例画像と、対象オブジェクト51を含まない複数の負例画像とを含む学習画像のそれぞれを示すデータを含む。識別モデル24およびその学習の詳細については後述する。学習画像のそれぞれは、撮影された画像のうち対象オブジェクト51が存在する領域の画像であってよい。その領域の抽出は、領域抽出部22と同様の手法で行われてよい。なお、識別モデル24は、上記の訓練データだけでなく、追加の訓練データによっても学習される。
なお、特徴抽出部23を介さずに候補領域56の画像が識別モデル24に直接的に入力されてもよい。精度が低下する恐れはあるが、領域抽出部22が存在しなくてもよい。この場合、特徴抽出部23が入力画像そのものから特徴を抽出し、識別モデル24がその入力画像に対象オブジェクト51が存在するか判定してもよいし、入力画像が直接的に識別モデル24に入力されてもよい。
姿勢推定部25は、推定モデル26に対象領域55が入力された際に出力される情報に基づいて、対象オブジェクト51の姿勢を推定する。推定モデル26は、機械学習モデルであり、訓練データにより学習され、学習済の推定モデル26は、入力データが入力されると、推定結果としてデータを出力する。訓練データは、対象オブジェクト51の3次元形状モデルによりレンダリングされた複数の学習画像とその学習画像における対象オブジェクト51の姿勢に関する情報である正解データとを含む。
学習済の推定モデル26には、対象領域55の画像を示す情報が入力され、推定モデル26は対象オブジェクトの姿勢推定のためのキーポイントの位置を示す情報を出力する。対象領域55は、識別モデル24の出力に基づいて選択された候補領域56に基づく画像である。推定モデル26の訓練データは、対象オブジェクト51の3次元形状モデルによりレンダリングされた複数の学習画像と、学習画像における前記対象オブジェクト51のキーポイントの位置を示す正解データとを含む。キーポイントは、対象オブジェクト51内にある仮想的な点であって、姿勢の算出に用いる点である。なお、推定モデル26は、上記の訓練データだけでなく、追加の訓練データによっても学習される。追加の訓練データは、入力画像に基づいて生成される画像を含み、また入力画像に基づいて訓練データを追加するか否かは推定モデル26の出力に基づいて判定される。
図4は、対象オブジェクト51のキーポイントの一例を示す図である。対象オブジェクト51のキーポイントの3次元位置は、対象オブジェクト51の3次元形状モデル(より具体的には3次元形状モデルに含まれる頂点の情報)から、例えば公知のFarthest Point アルゴリズムにより決定される。図4には説明の容易のため、3つのキーポイントK1~K3が記載されているが、実際のキーポイントの数はより多くてよい。例えば本実施形態では対象オブジェクト51の実際のキーポイントの数は8である。
学習済の推定モデル26は、対象領域55が入力された際に、対象領域55における対象オブジェクト51のキーポイントの2次元位置を示す情報を出力する。対象領域55におけるキーポイントの2次元位置と入力画像における対象領域55の位置とから、入力画像におけるキーポイントの2次元位置が求められる。キーポイントの位置を示すデータは、各点がその点とキーポイントとの位置関係(例えば方向)を示す位置画像であってよい。
図5は、対象領域55における位置画像の一例を模式的に示す図である。位置画像は、キーポイントの種類ごとに生成されてよい。位置画像は、各点におけるその点とキーポイントとの相対的な方向を示す。図5に示される位置画像では、各点の値に応じたパターンが記載され、各点の値は、その点の座標とキーポイントの座標との方向を示している。図5はあくまで模式的な図であり、各点の実際の値は連続的に変化する。図では明示されていないが、位置画像は、各点におけるその点を基準としたキーポイントの相対的な方向を示すVector Field画像である。
キーポイント決定部27は、推定モデル26の出力に基づいて、対象領域55および入力画像におけるキーポイントの2次元位置を決定する。より具体的には、例えば、キーポイント決定部27は、推定モデル26から出力される位置画像に基づいて、対象領域55におけるキーポイントの2次元位置の候補を算出し、算出された2次元位置の候補から入力画像におけるキーポイントの2次元位置を決定する。キーポイント決定部27は、例えば、位置画像のうちの任意の2点の組み合わせのそれぞれからキーポイントの候補点を算出し、複数の候補点に対して位置画像の各点が示す方向と合致しているかを示すスコアを生成する。キーポイント決定部27はそのスコアが最も大きい候補点をキーポイントの位置と推定してよい。またキーポイント決定部27は、キーポイントごとに上記の処理を繰り返す。
姿勢算出部28は、入力画像におけるキーポイントの2次元位置を示す情報と対象オブジェクト51の3次元形状モデルにおけるキーポイントの3次元位置を示す情報とに基づいて、対象オブジェクト51の姿勢を推定し、推定された姿勢を示す姿勢データを出力する。対象オブジェクト51の姿勢は、公知のアルゴリズムによって推定される。例えば、姿勢推定についてのPerspective-n-Point(PNP)問題の解法(例えばEPnP)により推定されてよい。また、姿勢算出部28は対象オブジェクト51の姿勢だけでなく入力画像における対象オブジェクト51の位置も推定し、姿勢データにその位置を示す情報が含まれてもよい。
推定モデル26、キーポイント決定部27、姿勢算出部28の詳細は、PVNet: Pixel-Wise Voting Network for 6DoF Pose Estimationの論文に記載されたものであってよい。
撮影画像取得部33、識別訓練データ生成部34、識別学習部35、形状モデル取得部36、推定訓練データ生成部37、推定学習部38、信頼度取得部39は、識別モデル24および推定モデルの学習に関する構成である。本実施形態では、まず、対象オブジェクト51が撮影された画像に基づいて、識別モデル24および推定モデル26が、例えばそれぞれ数秒、数分といった短時間で学習され、学習済の識別モデル24、推定モデル26に基づく対象領域取得部21および姿勢推定部25の動作の後に、識別モデル24、推定モデル26についての再度の学習が行われる。
撮影画像取得部33は姿勢推定部25に含まれる推定モデル26および/または対象領域取得部21に含まれる識別モデル24を学習させるために、撮影部20により対象オブジェクト51が撮影された撮影画像を取得する。撮影部20は、予めキャリブレーションによってカメラ内部パラメータが取得されているものとする。このパラメータは、PnP問題を解く際に用いられる。
識別訓練データ生成部34は、対象オブジェクト51を含む画像に基づく正例訓練データと、対象オブジェクト51を含まない画像に基づく負例訓練データとを生成する。対象オブジェクト51を含む画像は、撮影画像取得部33により取得されてよい。
識別学習部35は、識別訓練データ生成部34により生成された訓練データに基づいて、対象領域取得部21に含まれる識別モデル24を学習させる。
形状モデル取得部36は、撮影画像取得部33により取得された対象オブジェクト51についての複数の撮影画像のそれぞれについて局所的な特徴を示す複数の特徴ベクトルを抽出し、複数の撮影画像から抽出された互いに対応する複数の特徴ベクトルと撮影画像においてその特徴ベクトルが抽出された位置とからその特徴ベクトルが抽出された点の3次元位置を求め、その3次元位置に基づいて対象オブジェクト51の3次元形状モデルを取得する。この方法は、いわゆるSfMやVisual SLAMを実現するソフトウェアでも用いられる公知の方法であるので、詳細の説明は省略する。
推定訓練データ生成部37は、推定モデル26を学習させるための訓練データを生成する。より具体的には、推定訓練データ生成部37は、初期の訓練データとして、対象オブジェクト51の3次元形状モデルから、レンダリングされた訓練画像と、キーポイントの位置を示す正解データとを含む訓練データを生成する。
推定学習部38は、推定訓練データ生成部37により生成された訓練データにより、姿勢推定部25に含まれる推定モデル26を学習させる。
信頼度取得部39は、入力データが入力された際の機械学習モデルの出力に基づいて、その入力データに対する機械学習モデルの出力の信頼度を取得する。機械学習モデルの出力に基づいて信頼度を取得するとは、例えば、機械学習モデルである識別モデル24の出力、より具体的にはその出力を受けた後段の処理の結果に基づいて信頼度を算出することであり、推定モデル26が出力する位置画像に基づいて信頼度を算出することである。
次に、姿勢の推定に関する処理について説明する。図6は、主に対象領域取得部21および姿勢推定部25の処理の一例を示すフロー図である。図6に示される処理は、定期的に繰り返し実行されてよい。
はじめに、対象領域取得部21に含まれる領域抽出部22は、撮影部20により撮影された入力画像を取得する(S101)。領域抽出部22は、撮影部20から直接的に入力画像を受信することにより入力画像を取得してもよいし、撮影部20から受信され記憶部12に格納された入力画像を取得してもよい。
領域抽出部22は、入力画像から、何らかの物体が写っている1または複数の候補領域56を抽出する(S102)。領域抽出部22は、予め学習されたRPN(Regional Proposal Network)を含んでよい。RPNは、対象オブジェクト51が撮影された画像と関連しない訓練データによって学習されてよい。この処理によって、計算の無駄が低減され、環境に対する一定のロバストネスが確保される。
ここで、領域抽出部22は、さらに、抽出された候補領域56の画像に対して、例えば、背景の除去処理(マスク処理)やサイズ調整などの加工処理を実行してよい。また加工された候補領域56の画像が以降の処理に用いられてよい。この処理によって、背景や照明条件によるドメインギャップを縮小させ、少ない訓練データで識別モデル24を学習させることが可能になる。
対象領域取得部21は、候補領域56のそれぞれが対象オブジェクト51の画像を含むか判定する(S103)。この処理は、特徴抽出部23が候補領域56の画像から特徴量を抽出する処理と、識別モデル24がその特徴量から候補領域56が対象オブジェクト51を含むか否かを示す情報を出力する処理とを含む。
特徴抽出部23は、候補領域56の画像からその画像に応じた特徴量を出力する。特徴抽出部23は、学習済のCNN(Convolutional Neural Network)を含む。このCNNは、画像の入力に応じて、当該画像に対応する特徴量を示す特徴量データ(入力特徴量データ)を出力する。特徴抽出部23は、RPNにより抽出された候補領域56の画像から特徴量を抽出してもよいし、例えばFaster R-CNNのように、RPNの処理において抽出された特徴量を取得してもよい。
識別モデル24は、SVM(Support Vector Machine)などであり、一種の機械学習モデルである。識別モデル24は、候補領域56の画像に対応する特徴量を示す入力特徴量データの入力に応じて、候補領域56に写るオブジェクトが識別モデル24における正クラスに属するものである確率を示す識別スコアを出力する。識別モデル24は、正例についての複数の正例訓練データと負例についての複数の負例訓練データとにより学習されている。正例訓練データは対象オブジェクト51が撮影された画像を含む学習画像から生成され、負例訓練データは対象オブジェクト51と異なるオブジェクトの画像であって、予め準備された画像から生成される。負例訓練データは、撮影部20により撮影された、その撮影部20の環境を撮影することにより生成されてもよい。
本実施形態では、このCNNを用いて、正規化処理が実行された画像に対応する特徴量を示す特徴量データの生成が行われる。なお、特徴抽出部23は、画像の特徴を示す特徴量を算出する他の公知のアルゴリズムにより、画像の入力に応じて、当該画像に対応する特徴量を示す特徴量データを出力してもよい。
対象領域取得部21は、例えば識別スコアが閾値より大きい場合に、その候補領域56が対象オブジェクト51の画像を含むと判定する。
候補領域56のそれぞれが対象オブジェクト51の画像を含むか判定されると、対象領域取得部21はその判定結果に基づいて対象領域55を決定する(S104)。より具体的には、対象領域取得部21は、対象オブジェクト51を含むと判定された候補領域56に基づいて、対象オブジェクト51の近傍の領域を含む矩形の領域を対象領域55として取得する。対象領域取得部21は、対象オブジェクト51の近傍の領域を含む正方形の領域を対象領域55として取得してよいし、単に候補領域56を対象領域55として取得してもよい。なお、対象領域取得部21は、常にS102,S103の処理により対象領域55を取得しなくてもよい。例えば、対象領域取得部21は、対象領域55を取得した後に取得された入力画像に対して、公知の時系列の追尾処理を行うことにより、対象領域55を取得してもよい。
姿勢推定部25は、学習済の推定モデル26に、対象領域55の画像を入力する(S105)。ここで入力される対象領域55の画像は、推定モデル26の入力画像のサイズにあわせてサイズが調整(拡大または縮小)された画像であってよい。サイズを調整(正規化)することにより、推定モデル26の学習の効率が向上する。なお、姿勢推定部25は、対象領域55の画像の背景をマスクし、その背景がマスクされた対象領域55の画像を推定モデル26に入力してよい。
姿勢推定部25に含まれるキーポイント決定部27は、推定モデル26の出力に基づいて、対象領域55および入力画像におけるキーポイントの2次元位置を決定する(S106)。推定モデル26の出力が位置画像である場合には、キーポイント決定部27は位置画像の各点からキーポイントの位置の候補を算出し、その候補に基づいてキーポイントの位置を決定する。推定モデル26の出力が対象領域55におけるキーポイントの位置である場合には、その位置から入力画像におけるキーポイントの位置を算出してよい。なお、S105、S106の処理はキーポイントの種類ごとに行われる。
姿勢推定部25に含まれる姿勢算出部28は、決定されたキーポイントの2次元位置に基づいて、対象オブジェクト51の推定される姿勢を算出する(S107)。姿勢算出部28は姿勢とともに対象オブジェクト51の位置を算出してよい。姿勢および位置は、前述のPNP問題の解法により算出されてよい。
図7は、検出された対象オブジェクト51の姿勢を説明する図である。図7では、説明の容易のため、対象オブジェクト51のローカル座標系を示すローカル座標軸59により対象オブジェクト51の姿勢を表している。ローカル座標軸59の原点の位置が対象オブジェクト51の位置を示し、ローカル座標軸59の線の向きが姿勢を示している。
ここで、信頼度取得部39は、対象領域55に対する推定モデル26の出力について信頼度を算出する(S108)。そして、その信頼度があらかじめ定められた条件を満たす場合に、識別訓練データ生成部34および推定訓練データ生成部37は、その対象領域に基づいて、それぞれ識別モデル24および推定モデル26に対する追加の訓練データを生成する(S109)。S109の処理は、機械学習モデルの学習後(推論時)に、その機械学習モデルに入力されるデータに基づいて追加の訓練データを生成するものである。S108およびS109の処理の詳細については後述する。
推定された対象オブジェクト51の姿勢および位置は、様々に利用されてよい。例えば、コントローラによって入力される操作情報の代わりにゲームなどのアプリケーションソフトウェアに入力されてよい。そしてアプリケーションソフトウェアの実行コードを実行するプロセッサ11は、その姿勢(および位置)に基づいて、画像のデータを生成し、表示部18にその画像を出力させてよい。またプロセッサ11は、情報処理装置10または情報処理装置10に接続される音声出力装置に、その姿勢(および位置)に基づく音を出力させてよい。またプロセッサ11は、例えばロボットのようなAIエージェントにオブジェクトの位置姿勢を通知することにより、AIエージェントの動作を制御し、例えば物体の把持などを行わせてもよい。
次に、識別モデル24および推定モデル26の学習の概要について説明する。図8は、識別モデル24および推定モデル26の学習を概略的に説明するフロー図である。
はじめに、識別訓練データ生成部34は識別モデル24の初期の訓練データを取得し、推定訓練データ生成部37は、推定モデル26の初期の訓練データを取得する(S201)。
ステップS201の処理についてさらに詳細に説明する。図9は、初期の訓練データを生成する処理の一例を示すフロー図である。
撮影画像取得部33は、対象オブジェクト51が撮影された複数の撮影画像を取得する(S301)。
図10は、対象オブジェクト51の撮影を説明する図である。対象オブジェクト51は、例えば手53によって保持されており、撮影部20により撮影される。本実施形態では、対象オブジェクト51を様々な方向から撮影することが望ましい。そのため、撮影部20は動画撮影のように定期的に画像を撮影しつつ、対象オブジェクト51の撮影方向を変化させる。例えば手53によって対象オブジェクト51の姿勢を変化させることで対象オブジェクト51の撮影方向を変化させてよい。またARマーカー上に対象オブジェクト51を配置し、撮影部20を動かすことにより撮影方向を変化させてもよい。後述の処理で用いられる撮影画像の取得間隔は、動画の撮影間隔より広くてもよい。
撮影画像が取得されると、撮影画像取得部33は、それらの撮影画像から手53の画像をマスクする(S302)。手53の画像のマスクは公知の方法により行われてよい。例えば、撮影画像取得部33は、撮影画像に含まれる肌の色の領域を検出することにより手53の画像をマスクしてよい。
そして形状モデル取得部36は、複数の撮影画像から、対象オブジェクト51の3次元形状モデルと、撮影画像のそれぞれにおける姿勢とを算出する(S303)。この処理は、いわゆるSfMやVisual SLAMを実現するソフトウェアでも用いられる前述の公知の方法より行われてよい。形状モデル取得部36は、この方法によるカメラの撮影方向の算出ロジックに基づいて対象オブジェクト51の姿勢を算出してよい。
対象オブジェクト51の3次元形状モデルが算出されると、形状モデル取得部36は、その3次元形状モデルの姿勢の推定に用いる複数のキーポイントの3次元位置を決定する(S304)。形状モデル取得部36は、例えば、公知のFarthest Pointアルゴリズムにより複数のキーポイントの3次元位置を決定してよい。
キーポイントの3次元位置が算出されると、推定訓練データ生成部37は、推定モデル26向けに、複数の訓練画像と、複数の位置画像とを含む訓練データを生成する(S305)。より具体的には、推定訓練データ生成部37は、3次元形状モデルからレンダリングされた複数の訓練画像を生成し、その複数の訓練画像におけるキーポイントの位置を示す位置画像を生成する。複数の訓練画像は、互いに異なる複数の方向からみた対象オブジェクト51のレンダリング画像であり、位置画像は訓練画像とキーポイントとの組み合わせごとに生成される。
推定訓練データ生成部37はレンダリングされた訓練画像にキーポイントの位置を仮想的に投影し、その投影されたキーポイントの位置と画像内の各点との相対位置に基づいて位置画像を生成する。推定モデル26の学習に用いる訓練データは訓練画像と位置画像とを含む。
初期の訓練データに含まれる訓練画像は、レンダリングされた画像である。これは、短時間で多様な撮影方向から撮影された撮影画像を取得することが難しい一方、3次元形状モデルを用いれば容易に多様な撮影方向からみた画像を生成できるからである。なお、初期の訓練データに実写の訓練画像が含まれてもよい。
識別訓練データ生成部34は、撮影画像取得部33により取得された複数の撮影画像、より具体的には対象オブジェクト51を含む画像から、正例訓練データを生成し、例えば記憶部12に格納された対象オブジェクトを含まない画像から負例訓練データを取得する(S306)。正例訓練データおよび負例訓練データが、識別モデル24の訓練データである。
識別訓練データ生成部34は、識別モデル24に入力される画像に応じた加工、例えば対象オブジェクト51を含む領域の切り出し、サイズの正規化、背景のマスク、特徴量の抽出をすることにより、撮影画像から正例訓練データを生成してよい。識別訓練データ生成部34は、予め記憶部12に格納される負例サンプル画像を特徴抽出部23に入力し、出力される特徴量データを取得することにより複数の負例訓練データを生成する。特徴量は、識別モデル24に含まれる特徴抽出部23と同じ処理により抽出される。負例サンプル画像は、例えば、予め撮影部20によって撮影された画像、Webから収集された画像、他の物体についての正例の画像であってよい。負例訓練データは予め生成され記憶部12に格納されていてもよい。
なお識別モデル24はこれまでに説明したものには限られず、画像から直接的に対象オブジェクト51が存在するか判定するものであってもよい。
識別モデル24および推定モデル26の初期の訓練データが取得されると、識別学習部35は識別モデル24を識別モデル向けの初期の訓練データにより学習させ、推定学習部38は推定モデル26を識別モデル向けの初期の訓練データにより学習させる(S202)。識別モデル24は、例えばSVMであり、識別学習部35はそのSVMを正例訓練データおよび負例訓練データにより学習させてよい。
識別モデル24および推定モデル26が学習されると、S203からS207において、情報処理システムは、それらのモデルを用いていわゆる推論の処理を実行しつつ、信頼度に応じて識別モデル24および推定モデル26のそれぞれについての追加の訓練データ(追加訓練データ)を取得する。
S203においては、情報処理システムは、撮影された画像を入力画像として対象領域取得部21に入力し、対象領域取得部21および姿勢推定部25は対象領域55の抽出および対象領域55に含まれる対象オブジェクト51の姿勢の推定の処理を実行する。S203の処理は、図6のS101からS107までの処理に相当する。
次に、信頼度取得部39は、姿勢推定部25に含まれる推定モデル26の出力に基づいて、その出力の信頼度を算出する(S204)。この処理は図6のS108の処理に相当する。
より具体的には、信頼度取得部39は例えば以下の手順で信頼度を算出する。信頼度取得部39は推定モデル26が出力する位置画像から、それぞれ2つの点を含む複数のグループを選択する。信頼度取得部39は、そのグループのそれぞれについて、グループに含まれる各点が示すキーポイントの方向に基づいて、キーポイントの候補位置を算出する。候補位置は、ある点からその点が示す方向に伸ばした直線と、もう一つの点からその点が示す方向に伸ばした直線との交点に相当する。グループのそれぞれについて信頼度が算出されると、信頼度取得部39は、候補位置のばらつきを示す値を信頼度として算出する。信頼度取得部39は、例えば候補位置の重心からの距離の平均値を信頼度としてとってもよいし、候補位置の任意の方向の標準偏差を信頼度として算出してもよい。
信頼度取得部39は、候補位置のばらつきを示す値以外から信頼度を算出してもよい。例えば、信頼度取得部39は、例えば対象領域の画像のような入力画像が推定モデル26に入力された際のその推定モデル26の出力と、その入力画像が所定の加工処理により加工された加工画像が推定モデル26に入力された際の出力との相違を示す情報に基づいて、信頼度を算出してもよい。
より具体的には、はじめに、信頼度取得部39は、対象領域の画像に所定の加工(Augmentation)を実行する。この加工は例えば明度の変更やノイズの付加のうちいずれかであってよい。次に信頼度取得部39は、加工された画像を推定モデル26に入力し、その出力である位置画像を取得する。そして信頼度取得部39は、当初の対象領域の画像に対して出力された位置画像(当初の出力)と、加工された画像により出力された位置画像との違いを示す値を信頼度として算出する。この値は、当初の出力と加工された画像に対する出力との各点における値の違いの統計量であってもよいし、当初の出力により算出されたキーポイントの位置と加工された画像に対する出力により算出されたキーポイントの位置との距離であってもよい。また当初の対象領域の画像に対する出力の代わりに、対象領域の画像に所定の加工と異なる加工がされた画像を推定モデル26に入力した際の出力が用いられてもよい。なお、ここで行われる加工(Augmentation)は、後述の推定訓練データ生成部37による加工と手法が異なってよい。手法が異なることにより、追加訓練データにより学習された推定モデルに26を用いて信頼度を算出する際に生じる信頼度の精度が抑制される。
信頼度取得部39は、候補位置のばらつきを示す値から算出される信頼度(の要素)と、当初の出力と加工された画像に対する出力との違いを示す値とを組み合わせて最終的な信頼度を出力してよい。信頼度取得部39は例えば前者と後者とを重みづけ加算した値を信頼度として出力してよい。
信頼度が算出されると、信頼度取得部39は、算出された信頼度が訓練データを追加するための追加条件を満たすか判定する(S205)。追加条件は、例えば、信頼度として算出されたばらつきの値が閾値より小さいことであってよい。
信頼度が追加条件を満たす場合には(S205のY)、識別訓練データ生成部34および推定訓練データ生成部37は、それぞれ識別モデル24および推定モデル26の訓練データに追加される追加訓練データを生成する(S206)。S205およびS206は図6のS109の処理に相当する。
より具体的には、識別訓練データ生成部34はその位置画像の元となった対象領域55に相当する画像(例えば対応する候補領域56の画像)を正例画像として決定し、その正例画像のデータを識別モデルの訓練データに追加する。識別訓練データ生成部34は正例画像として決定された画像に、識別モデル24に入力される画像に応じた加工、例えば特徴量の抽出をすることにより、撮影画像から正例訓練データを生成してよい。
また推定訓練データ生成部37は、その位置画像の元となった対象領域の画像に基づいて第1の追加画像、第2の追加画像のセットを生成し、そのセットを推定モデルの追加訓練データに追加する。
より具体的には、推定訓練データ生成部37は、対象領域の画像に第1の加工(Augmentation)を実行し、加工された画像を第1の追加画像として取得する。また推定訓練データ生成部37は、対象領域の画像に第2の加工(Augmentation)を実行し、加工された画像を第2の追加画像として取得する。第1の加工および第2の加工は互いに異なり、それぞれ、例えば明度の変更やノイズの付加のうちいずれかが行われてよい。また、第1の加工および第2の加工のうち一方は、実質的な加工を行わないものであってもよい。第1の追加画像および第2の追加画像のセットを用いた推定モデルの学習の手法(Consistency loss)については後述する。
なお、推定訓練データ生成部37は、その位置画像の元となった対象領域の画像と、その画像について姿勢推定部25により算出された姿勢を示す正解データとのセットを追加訓練データに追加してもよい。こちらについては初期の学習と同じ手法により推定モデル26が学習されてよい。
本実施形態では、学習済の機械学習モデルを用いて推論をする際の入力データの一部を訓練データに追加している。一方、通常は推論の際の入力データを訓練データに追加することはない。例えば入力データに対する出力が誤っている場合に、その入力データの追加により訓練データの質の低下を招く恐れがあるからである。本実施形態では、機械学習モデルの出力について信頼度を算出し、その信頼度を用いて訓練データに追加するか否かをフィルタリングすることにより、その追加されるデータの質を確保し、訓練データの生成の手間を減らしつつ機械学習モデルの精度を向上させることを可能にしている。
ここで、本実施形態で算出される信頼度は、識別モデル24および推定モデル26の信頼度と考えることができる。識別モデル24の出力の信頼度という観点では、識別モデル24の後段にある推定モデル26が出力する位置画像がキーポイントを正確に求められる状態であるかを示す信頼度を求めているといえる。このように後段の機械学習モデルを含む処理が適切に行えることを信頼度の指標とすることで、簡易かつ効果的に信頼度を算出することができる。また推定モデル26の出力の信頼度という観点では、出力となる位置画像からキーポイントを求める後段の処理が適切に行えることを信頼度の指標としているといえる。
追加訓練データが取得されると、再学習を開始する条件を満たさない限り(S207のN)、S203以降の処理が繰り返し実行される。再学習を開始する条件は、取得された追加訓練データの数が閾値に達することであってもよいし、いわゆる繰り返しの推定の処理の終了の操作が入力されることであってもよい。
再学習を開始する条件が満たされると(S207のY)、識別学習部35および推定学習部38は、それぞれ識別モデル24および推定モデル26を再学習させる(S208)。
ここで、再学習は、追加訓練データを含む訓練データを用いて機械学習モデルを学習させることを指している。学習の対象となる機械学習モデル(識別モデル24および推定モデル26)は、推論を実行している機械学習モデルである識別モデル24および推定モデル26と異なるインスタンスであってよいし、推論を実行している機械学習モデルと同一のインスタンスであってもよい。前者の場合には、学習が終了した後に推論に用いる識別モデル24および推定モデル26のインスタンスが切り替えられてよい。またインスタンスの切替の代わりに、推論に用いる識別モデル24および推定モデル26のインスタンスに対して新たに学習された機械学習モデルのパラメータがコピーされてもよい。
識別モデル24については、識別学習部35は初期の訓練データに追加訓練データを追加し、その追加後の訓練データにより識別モデル24を学習してよい。また識別モデル24の学習に用いられる訓練データは、初期の訓練データおよび追加訓練データのすべてであってもよいし、それらの一部でああってもよい。識別モデル24の学習に用いられる一部の訓練データは、例えばその数がサンプル総数の最大値以下になるように選択されたものであってもよいし、何らかの手法で品質が低いと判定されたサンプルが除外されたものであってもよい。
一方、第1の追加画像および第2の追加画像についての追加訓練データを有する推定モデル26の再学習の手法は異なる。図11は、推定モデルの再学習の処理の一例を示すフロー図であり、再学習においては、図11に示される処理が複数回繰り返し実行される。
まず、推定学習部38は、推定モデル26向けの初期の訓練データにより、推定モデル26を学習させる(S501)。この学習は、ステップS202における推定モデル26の学習と同様の手法、より具体的には、推定学習部38は、推定モデル26が出力する位置画像と正解データとの相違(L1ロス)を教師信号として、推定モデル26のパラメータを調整する。
次に、推定学習部38は、推定モデル26向けの追加訓練データに含まれる未取得のセットのうち1つを取得する(S502)。推定学習部38はそのセットに含まれる第1の追加画像を推定モデル26に入力し、推定モデル26の出力(第1の出力)を取得する(S503)。また推定学習部38はそのセットに含まれる第2の追加画像を推定モデル26に入力し、推定モデル26の出力(第2の出力)を取得する(S504)。
推定学習部38は、第1の出力と第2の出力との相違(Consistency loss)を示す情報を算出し(S505)、その相違を示す情報に基づいて推定モデル26のパラメータを調整する(S506)。相違を示す情報は、第1の出力および第2の出力の各点における値の違いの統計量(例えば平均)であってよい。
ここで、追加訓練データについては、第1の出力と第2の出力との相違に応じた学習が行われるため、主にこの手法で学習すると、例えば入力に関わらず同じ位置画像を出力するように推定モデル26のパラメータが収束する恐れがある。その事態を避けるため、初期の訓練データを含むすべての訓練データの数に対する追加訓練データの数の割合を所定の値(例えば20%)以内に抑えることが望ましい。
追加訓練データを用いて、同一の画像をベースとする2つの画像が一致するか否かで再学習させることにより、正解のラベルのない訓練データも用いて学習させることが可能になり、精度を向上させることができる。
本実施形態では、対象領域取得部21の処理により、推定モデル26に入力する画像を、撮影された画像のうち対象オブジェクト51が存在する領域の画像であって、対象オブジェクト51が中央に存在する蓋然性が十分に高い画像に限定している。また姿勢推定部25の推定モデル26は3次元形状モデルにより生成された訓練データにより学習され、一方で、対象領域取得部21の識別モデル24は、対象オブジェクト51が撮影された画像に基づいて学習されている。
推定モデル26に入力される画像を適切に限定することにより、推定モデル26の出力の精度が向上し、推定される対象オブジェクト51の姿勢の精度が向上する。さらに、識別モデル24を、3次元形状モデルに基づく画像ではなく撮影画像に基づいて学習させることにより、対象領域55をより正確に選択することが可能になり、ひいては推定モデル26の精度を向上させることができる。
本実施形態では、姿勢推定部25の推定モデル26を学習するための3次元形状モデルを生成するための撮影画像を、識別モデル24を学習する際にも用いている。これにより、対象オブジェクト51の撮影にかかる手間を低減し、推定モデル26および識別モデル24の学習にかかる時間を低減する。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、識別モデル24は、任意のカーネルのSVMであってもよい。また、識別モデル24は、K近傍法、ロジスティック回帰、アダブースト等のブースティング方法などの方法を用いた識別器であってもよい。また、識別モデル24が、ニューラルネットワーク、ナイーブベイズ分類器、ランダムフォレスト、決定木などによって実装されてもよい。
推定モデル26の出力は、キーポイントの位置を示すヒートマップのような位置画像であってもよい。この場合、例えば、信頼度取得部39は、推定モデル26が出力する位置画像が有するピークの数を信頼度として求めてよい。このピークの数が閾値より小さい場合に、入力データが訓練データに追加されてよい。
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されず、必要に応じて改変されてよい。