JP2024032055A - 対象物の位置姿勢を認識する方法、及び、コンピュータープログラム - Google Patents

対象物の位置姿勢を認識する方法、及び、コンピュータープログラム Download PDF

Info

Publication number
JP2024032055A
JP2024032055A JP2022135489A JP2022135489A JP2024032055A JP 2024032055 A JP2024032055 A JP 2024032055A JP 2022135489 A JP2022135489 A JP 2022135489A JP 2022135489 A JP2022135489 A JP 2022135489A JP 2024032055 A JP2024032055 A JP 2024032055A
Authority
JP
Japan
Prior art keywords
key point
key points
map
key
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022135489A
Other languages
English (en)
Inventor
正樹 林
広和 笠原
國益 符
ゾンゼン ルオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2022135489A priority Critical patent/JP2024032055A/ja
Priority to US18/456,761 priority patent/US20240070896A1/en
Publication of JP2024032055A publication Critical patent/JP2024032055A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/771Feature selection, e.g. selecting representative features from a multi-dimensional feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Abstract

【課題】対象物の形状や表面特性が変化した場合にも対応可能な機械学習モデルを学習できる技術を提供する。【解決手段】本開示の方法は、(a)対象物の基本形状データを用いて、対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する工程と、(b)対象物が設置される環境に、複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、複数のシーンをそれぞれカメラで撮影して得られる複数のシミュレーション画像を生成する工程と、(c)複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、複数のシミュレーション画像のそれぞれに対応して生成する工程と、(d)複数のシミュレーション画像と複数の正解特徴マップとを教師データとして用いて、カメラで撮影された入力画像から特徴マップを推定する機械学習モデルを学習する工程と、を含む。【選択図】図4

Description

本開示は、対象物の位置姿勢の認識に使用する機械学習モデルを学習する方法、対象物の位置姿勢を認識する方法、及び、コンピュータープログラムに関する。
非特許文献1,2には、対象物の画像から、対象物に予め設定された特徴的な複数のキーポイントをニューラルネットワークで推定することによって、対象物の位置姿勢を認識する技術が開示されている。
Feedback Control for Category-Level Robotic Manipulation (IEEE Robotics and Automation Letter, arXiv:2102.06279v1) An Affordance Keypoint Detection Network for Robot Manipulation (IEEE Robotics and Automation Letters, Volume: 6, Issue: 2, April 2021)
上記非特許文献1,2に記載された技術では、画像の変化に対して或る程度ロバストに対象物の位置姿勢を認識することができる。しかしながら、ニューラルネットワークを学習する際に、対象物の形状や周辺環境などの条件が異なる場合にもロバストに対象物を認識するためには、それらの種々の条件の組み合わせに対応した大量の学習データを準備する必要がある。また、手動による正解ラベルの付与は、人によるバラツキが存在するため正解ラベルに誤差が混入してしまい、識別精度の劣化を引き起こすという問題がある。更に、従来技術では、対象物が1つの場合のみを想定しているので、複数の対象物の位置姿勢を認識できないという問題がある。そこで、これらの問題点の少なくとも一部を解決することが望まれている。
本開示の第1の形態によれば、カメラで撮影される対象物の位置姿勢を前記対象物に設定された複数のキーポイントを用いて認識するために使用する機械学習モデルを学習する方法が提供される。この方法は、(a)前記対象物の基本形状データを用いて、前記対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する工程と、(b)前記対象物が設置される環境に、前記複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、前記複数のシーンをそれぞれ前記カメラで撮影して得られる複数のシミュレーション画像を生成する工程と、(c)前記複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、前記複数のシミュレーション画像のそれぞれに対応して生成する工程と、(d)前記複数のシミュレーション画像と複数の前記正解特徴マップとを教師データとして用いて、前記カメラで撮影された入力画像から特徴マップを推定する前記機械学習モデルを学習する工程と、を含む。
本開示の第2の形態によれば、カメラで撮影される対象物の位置姿勢を前記対象物に設定された複数のキーポイントを用いて認識するために使用する機械学習モデルを学習する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記対象物の基本形状データを用いて、前記対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する処理と、(b)前記対象物が設置される環境に、前記複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、前記複数のシーンをそれぞれ前記カメラで撮影して得られる複数のシミュレーション画像を生成する処理と、(c)前記複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、前記複数のシミュレーション画像のそれぞれに対応して生成する処理と、(d)前記複数のシミュレーション画像と複数の前記正解特徴マップとを教師データとして用いて、前記カメラで撮影された入力画像から特徴マップを推定する前記機械学習モデルを学習する処理と、を前記プロセッサーに実行させる。
本開示の第3の形態によれば、Mを1以上の整数とし、Nを2以上の整数とするとき、対象物に設定された1番目からN番目までのN個のキーポイントを用いて前記対象物の位置姿勢を認識する方法が提供される。この方法は、(a)M個の前記対象物を含むシーンをカメラで撮影することによって、入力画像を生成する工程と、(b)前記入力画像を入力とし、前記N個のキーポイントに関連した特徴量を示す特徴マップを出力とする学習済みの機械学習モデルを用いて、前記入力画像から前記特徴マップを得る工程と、(c)前記特徴マップを用いて、前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を求める工程と、(d)前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を用いて、前記M個の対象物のうちの1つ以上の対象物の位置姿勢を決定する工程と、を含む。前記工程(c)は、(c1)前記M個の対象物との対応関係が未定であるM×N個のキーポイントを求めるとともに、前記M×N個のキーポイントの前記3次元座標を決定する工程と、(c2)前記M×N個のキーポイントを、前記M個の対象物のそれぞれに属する前記N個のキーポイントにグルーピングする工程と、を含む。
本開示の第4の形態によれば、Mを1以上の整数とし、Nを2以上の整数とするとき、対象物に設定された1番目からN番目までのN個のキーポイントを用いて前記対象物の位置姿勢を認識する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)M個の前記対象物を含むシーンをカメラで撮影することによって、入力画像を生成する処理と、(b)前記入力画像を入力とし、前記N個のキーポイントに関連した特徴量を示す特徴マップを出力とする学習済みの機械学習モデルを用いて、前記入力画像から前記特徴マップを得る処理と、(c)前記特徴マップを用いて、前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を求める処理と、(d)前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を用いて、前記M個の対象物のうちの1つ以上の対象物の位置姿勢を決定する処理と、を前記プロセッサーに実行させる。前記処理(c)は、(c1)前記M個の対象物との対応関係が未定であるM×N個のキーポイントを求めるとともに、前記M×N個のキーポイントの前記3次元座標を決定する処理と、(c2)前記M×N個のキーポイントを、前記M個の対象物のそれぞれに属する前記N個のキーポイントにグルーピングする処理と、を含む。
ロボットシステムの構成を示す説明図。 情報処理装置の機能ブロック図。 位置姿勢認識部による対象物の位置姿勢の認識機能を示す説明図。 機械学習モデルの学習工程の処理手順を示すフローチャート。 複数の学習用対象物モデルを示す説明図。 複数のシミュレーション画像を示す説明図。 第1種の特徴マップとしてのヒートマップを示す説明図。 第2種の特徴マップとしての方向ベクトルマップを示す説明図。 第3種の特徴マップとしてのキーポイント距離マップを示す説明図。 第4種の特徴マップとしてのノイズレス距離マップを示す説明図。 第5種の特徴マップとしてのアフィニティフィールドマップを示す説明図。 第6種の特徴マップとしてのセマンティックフィールドマップを示す説明図。 第7種の特徴マップとしてのセマンティック構造マスクマップを示す説明図。 位置姿勢認識工程の処理手順を示すフローチャート。 キーポイント推定処理の詳細手順を示すフローチャート。 グルーピング処理の詳細手順を示すフローチャート。 第1適合度算出処理の詳細手順を示すフローチャート。 第1適合度算出処理の内容を示す説明図。 第2適合度算出処理の内容を示す説明図。 フィールドマップを用いたグルーピング処理の手順を示すフローチャート。 フィールドマップを用いたグルーピング処理の内容を示す説明図。 グルーピング確定処理の一例を示すフローチャート。 グルーピング確定処理の他の例を示すフローチャート。
図1は、一実施形態におけるロボットシステムの一例を示す説明図である。このロボットシステムは、ロボット100と、ロボット100を制御する制御装置200と、情報処理装置300と、カメラ400と、架台500とを備える。情報処理装置300は、例えばパーソナルコンピューターである。図1には、3次元空間の直交座標系を規定する3つの軸X,Y,Zが描かれている。X軸とY軸は水平方向の軸であり、Z軸は鉛直方向の軸である。これらのX,Y,Z軸は、ロボット100の予め定められた位置を原点とするロボット座標系Σrの座標軸である。
ロボット100は、基台110と、ロボットアーム120と、を備えている。ロボットアーム120の先端部であるアームエンド122には、エンドエフェクターとしてのハンド150が装着されている。ハンド150は、対象物OBを把持することが可能なグリッパーや吸着パッドとして実現可能である。ハンド150の先端部には、ロボット100の制御点としてのTCP(Tool Center Point)が設定されている。なお、制御点TCPは、任意の位置に設定可能である。
ロボットアーム120は、6つの関節J1~J6で順次接続されている。これらの関節J1~J6のうち、3つの関節J2,J3,J5は曲げ関節であり、他の3つの関節J1,J4,J6はねじり関節である。本実施形態では6軸ロボットを例示しているが、1個以上の関節を有する任意のロボットアーム機構を有するロボットを用いることが可能である。また、本実施形態のロボット100は、垂直多関節ロボットであるが、水平多関節ロボットを使用してもよい。
架台500には、第1トレイ510と第2トレイ520が設置されている。第1トレイ510には、複数の対象物OBがバラ積みされる。第2トレイ520は、第1トレイ510から取り出された対象物OBを載置する場所として使用される。ロボット100は、第1トレイ510から対象物OBを取り出して、第2トレイ520に載置する作業を実行する。
ロボットアーム120の先端部分には、第1トレイ510内の対象物OBの画像を撮影するカメラ400が設置されている。カメラ400で撮影された画像は、対象物OBの3次元的な位置及び姿勢を求めるために使用される。3次元的な位置及び姿勢を、以下では「位置姿勢」と呼ぶ。カメラ400としては、例えば、RGBDカメラや、ステレオカメラを用いることができる。RGBDカメラは、カラー画像を撮影するRGBカメラと、深度画像(Depth image)又は距離画像(Distance image)を撮影するDカメラと、を有するカメラである。本開示において、深度と距離は同義語として使用する。なお、カメラ400をロボットアーム120に設置する必要はなく、ロボット100と別個に設置してもよい。
図2は、情報処理装置300の機能を示すブロック図である。情報処理装置300は、プロセッサー310と、メモリー320と、インターフェイス回路330と、インターフェイス回路330に接続された入力デバイス340及び表示デバイス350と、を有している。インターフェイス回路330には、制御装置200とカメラ400も接続されている。
本実施形態において、カメラ400は、カラー画像を撮影する第1カメラ410と、距離画像を撮影する第2カメラ420と、第2カメラ420用の照明光を照射する照明部430とを有する。照明部430は、距離画像を撮影するための赤外線パターンを照射するプロジェクターである。
プロセッサー310は、モデル学習部610及び位置姿勢認識部620としての機能を有する。モデル学習部610は、教師データ作成部612と学習実行部614とを含む。教師データ作成部612は、対象物OBの位置姿勢の認識に用いる機械学習モデル630の学習に用いる教師データを作成する。学習実行部614は、教師データ作成部612で作成された教師データを用いて機械学習モデル630の学習を実行する。位置姿勢認識部620は、キーポイント推定部622と位置姿勢決定部624とを含んでいる。キーポイント推定部622は、学習済みの機械学習モデル630を用いて、対象物OBに予め設定された複数のキーポイントを推定する。位置姿勢決定部624は、推定された複数のキーポイントを用いて対象物OBの位置姿勢を決定する。モデル学習部610と位置姿勢認識部620の機能は、メモリー320に格納されたコンピュータープログラムをプロセッサー310が実行することによってそれぞれ実現される。但し、モデル学習部610と位置姿勢認識部620の機能の一部又は全部をハードウェア回路で実現してもよい。
メモリー320には、機械学習モデル630と、対象物OBの基本形状を表す基本形状データBFDと、複数の学習用対象物モデルLOBと、複数のシミュレーション画像SMと、複数の正解特徴マップGCMと、ロボット制御プログラムRPが格納される。ロボット制御プログラムRPは、ロボット100を動作させる複数の命令で構成される。ロボット制御プログラムRP以外のデータの内容については後述する。
図3は、位置姿勢認識部620による対象物OBの位置姿勢の認識機能を示す説明図である。カメラ400は予めキャリブレーションされており、カメラ座標系Σcと図1に示したロボット座標系Σrとの相対関係は既知である。カメラ400は、1つ以上の対象物OBを含むシーンを撮影することによって入力画像IMを作成する。図3の例では、入力画像IMには3つの対象物OB1~OB3が含まれている。これらの対象物OB1~OB3は、形状と表面特性とが同一である同一型式の物体であってもよく、或いは、形状と表面特性の少なくとも一部が異なる複数種類の物体を含むようにしてもよい。本実施形態において、入力画像IMは、2次元のカラー画像と距離画像とを含む。距離画像は、位相シフト法や空間コード法、ステレオブロックマッチング法などを用いて作成される。キーポイント推定部622は、学習済みの機械学習モデル630を用いて、入力画像IMに含まれているM個の対象物OBmのそれぞれにおけるN個のキーポイントKPを推定する。ここで、Mは1以上の整数であり、Nは2以上の整数である。但し、Mは、2以上の整数とすることが好ましい。また、Nは3以上の整数とすることが好ましい。
図3の左下部には、1つの対象物OBに設定された3つのキーポイントKP1~KP3が例示されている。この例では、対象物OBはマグカップである。第1のキーポイントKP1は、対象物OBの底面Btに設定されている。第2のキーポイントKP2は、対象物OBの把手Hdに設定されている。第3のキーポイントKP3は、対象物OBの上部開口Tpに設定されている。個々のキーポイントKPは、対象物OBの特定部分を代表する代表位置を示すものであり、キーポイントKPの位置は3次元座標(x, y, z)で表される。例えば、第1のキーポイントKP1は、対象物OBの底面Btの中心位置の3次元座標で表現される。他のキーポイントKP2,KP3も同様である。キーポイントKPの設定時において、キーポイントKPを表す3次元座標は、対象物OBの基準点を座標原点とする対象物座標系Σbで表現される。図3では、図示の便宜上、対象物座標系Σbの原点位置を対象物OBからやや離れた場所に描いているが、対象物座標系Σbの原点は、底面Btの中心などの任意の位置に設定可能である。なお、キーポイントKPは、対象物OBの特定部分の代表位置に設定されている意味のある点なので、「セマンティックキーポイント」と呼ぶことも可能である。
対象物OBが回転対称でない場合には、1つの対象物OBに設定されるキーポイントKPの数Nを3以上とすることが好ましい。こうすれば、カメラ座標系Σcやロボット座標系Σrなどの3次元座標系におけるN個のキーポイントKPの3次元位置から、対象物OBの3次元位置と3軸廻りの回転角とを確定することが可能である。
図3では、キーポイントを示す基本的な符号「KP」の末尾に、互いを区別するための付加的な符号「1」~「3」が付されている場合と、これらの付加的な符号が省略されている場合がある。この例のように、本開示の図面や明細書では、互いを区別するための付加的な符号を省略する場合がある。これは、キーポイントKP以外の語句や物の符号についても同様である。
機械学習モデル630は、入力画像IMを入力として、複数のキーポイントKPに関連した特徴量を示す特徴マップCMを出力するように構成されている。特徴マップCMの例については後述する。機械学習モデル630としては、例えば、VAE(Variational Autoencoder)やU-Netなどの種々のニューラルネットワークを使用することが可能である。
キーポイント推定部622は、機械学習モデル630で得られた特徴マップCMを用いて、M個の対象物OBのそれぞれについて、N個のキーポイントKPの3次元座標を推定する。このときのキーポイントKPの3次元座標は、例えばカメラ座標系Σcで表される。位置姿勢決定部624は、推定されたキーポイントKPを用いて、1つ以上の対象物OBmの位置姿勢PAmを決定する。位置姿勢PAmは、例えば、ロボット座標系Σrにおける位置(x,y,z)と姿勢(w,p,r)で表現される。姿勢は、3軸廻りの回転角度(w,p,r)で表される。図3の例では、入力画像IMに含まれているm番目の対象物OBmについて、それぞれの位置姿勢PAmが決定されている。但し、入力画像IMにおける対象物OBmの配置によっては、位置姿勢PAmを正しく決定できない対象物OBmも存在する。この場合にも、位置姿勢認識部620は、少なくとも1つの対象物OBmに関する位置姿勢PAmを認識することが好ましい。ロボット100は、ロボット制御プログラムRPに従って、認識された位置姿勢PAmを用いて対象物OBmのピッキング作業を実行する。
図4は、機械学習モデル630の学習工程の処理手順を示すフローチャートである。この学習工程は、ロボット100を用いた実作業を行う前の準備工程として実行される。この学習工程では、ロボット100やカメラ400は不要である。但し、図1に示した実作業環境におけるカメラ400と対象物OBの位置関係などの環境条件は既知であることが好ましい。
ステップS110では、教師データ作成部612が、対象物OBの基本形状データBFDを用いて、複数の学習用対象物モデルを生成する。複数の学習用対象物モデルは、基本形状データBFDに対して、その形状と表面特性のうちの少なくとも一部を変化させることによって作成される。
対象物OBの形状の変更方法としては、例えば、以下の2つの方法を利用できる。
<形状変更方法M1>
対象物OBの個々の位置の座標値(x, y, z)を、次式に従って変更する。
Figure 2024032055000002
ここで、xnew,ynew,znewは変更後の座標値、Sx,Sy,Szはスケールファクターである。スケールファクターSx,Sy,Szは、同じ値に設定してもよく、異なる値に設定してもよい。典型例では、スケールファクターSx,Sy,Szはそれぞれ0.5~2.0の範囲の値に設定される。また、過度の変形を防止するために、y方向のスケールファクターSyは、x方向のスケールファクターSxを基準として±10%以内の値に設定されることが好ましい。同様に、z方向のスケールファクターSzは、x方向のスケールファクターSxを基準として±30%以内の値に設定されることが好ましい。この形状変更方法M1では、x軸方向とy軸方向とz軸方向のそれぞれに関して対象物OBを拡大したり縮小したりすることができる。
<形状変更方法M2>
対象物OBの個々の位置の座標値(x, y, z)のうちのx座標値とy座標値を、次式に従って変更する。
Figure 2024032055000003
ここで、hは対象物OBの高さ、zminは対象物OBの高さ座標の最小値、tはテーパーファクターである。典型例では、テーパーファクターtは±1.0の範囲の値に設定される。この形状変更方法M2では、高さ方向に沿って水平方向のサイズが増加又は減少するテーパー形状となるように対象物OBを変形することができる。
図5は、上述した形状変更方法M2によって作成された種々の学習用対象物モデルの例を示している。ここでは、基本形状を有する2つの対象物OB1_0,OB2_0が使用されている。これらの対象物OB1_0,OB2_0は、変形前の基本形状をそれぞれ有している。第1の対象物OB1_0は、円筒状の本体Bd1と、上部開口Tp1と、底面Bt1と、把手Hd1と、を有するマグカップである。第2の対象物OB2_0は、角筒状の本体Bd2と、上部開口Tp2と、底面Bt2と、把手Hd2と、を有するマグカップである。これらの2つの対象物OB1_0,OB2_0は、互いに共通する形状特徴を持つ対象物である。即ち、2つの対象物OB1_0,OB2_0は、いずれも筒状の本体を有し、上部開口と、底面と、リング状の把手とを有している点で共通する。本開示において、互いに共通する形状特徴を持つ複数の対象物を「同一カテゴリーに属する対象物群」と呼ぶ。同一カテゴリーに属する対象物群は、大きさと、色や光沢度、模様などの表面特性と、形状特徴の部分的な形状は異なっても良い。
図5には更に、上述した形状変更方法M2によって変形された対象物OB1_1,OB1_2,OB2_1,OB2_2が示されている。これらは、基本形状の対象物OB1_0,OB2_0をテーパー状に変形したものである。基本形状の対象物OB1_0,OB2_0と、変形後の対象物OB1_1,OB1_2,OB2_1,OB2_2は、いずれも学習用対象物モデルとして使用することが可能である。
複数の学習用対象物モデルの少なくとも一部は、対象物OBの基本形状を等倍によるサイズ変更でない形状変更方法で変更した形状を有するものとすることが好ましい。「等倍によるサイズ変更」とは、上述した形状変更方法M1において、スケールファクターSx,Sy,Szを等しい値に設定した場合に相当する。基本形状を等倍によるサイズ変更でない形状変更方法で変更した形状を有する学習用対象物モデルを使用すれば、種々の形状を有する対象物OBの位置姿勢を認識するために使用する機械学習モデル630に適した教師データを作成できる。
学習用対象物モデルは、対象物OBの表面特性を変更することによって作成してもよい。表面特性の変更は、例えば、色、光沢度、又は、模様の変更によって行うことが可能である。即ち、教師データ作成部612は、対象物OBの基本形状データBFDを用いて、対象物OBの形状と表面特性のうちの少なくとも一部を変化させることによって複数の学習用対象物モデルを生成することができる。
ステップS120では、教師データ作成部612が、対象物OBが設置される環境に、1つ以上の学習用対象物モデルをそれぞれ配置した複数のシーンについて、複数のシミュレーション画像を生成する。「対象物OBが設置される環境」は、図1の例では、トレイ510の中を意味する。シミュレーション画像は、カメラ400で撮影される画像を模擬した画像である。
図6は、ステップS120で作成されるシミュレーション画像SM1,SM2の例を示す説明図である。第1のシミュレーション画像SM1には、3つの学習用対象物モデルOB_11~OB_13が配置されている。第2のシミュレーション画像SM2には、4つの学習用対象物モデルOB_21~OB_24と、1つの非対象物NOBが配置されている。非対象物NOBは、位置姿勢の認識対象とならない物体を意味する。学習用対象物モデルOBや非対象物NOBの位置や姿勢は、ランダムに決定されることが好ましい。例えば、多数の学習用対象物モデルOBを互いに重ならないように配置した状態を再現するために、重力落下や衝突などの物理シミュレーションを用いて、上方からランダムに学習用対象物モデルOBを落として現実に近い配置をシミュレートしても良い。なお、シミュレーション画像SMとしては、1つ以上の学習用対象物モデルOBを配置した画像が生成される。本実施形態では、カメラ400として、カラー画像と距離画像を生成するカメラを想定しているので、シミュレーション画像SMもカラー画像と距離画像を含むものが生成される。なお、以下の説明では、シミュレーション画像SMに含まれる学習用対象物モデルOBを単に「対象物OB」とも呼ぶ。
教師データ作成部612は、また、異なる複数の環境条件におけるシミュレーション画像SMを作成することが好ましい。環境条件としては、学習用対象物モデルOB以外の非対象物NOBの有無や、環境光や照明光の種類、方向、及び、強さを使用することができる。即ち、教師データ作成部612は、学習用対象物モデルOBの数と、学習用対象物モデルOBの配置と、環境条件と、のうちの1つ以上が互いに異なる多数のシミュレーション画像SMを作成することが好ましい。また、シミュレーション画像SMは、実際の環境においてカメラ400で撮影される画像に含まれるノイズを模擬した模擬ノイズが付与された画像とすることが好ましい。
ステップS130では、教師データ作成部612が、個々のシミュレーション画像SMに対する正解特徴マップを生成する。「正解特徴マップ」は、特徴マップの正解値を示すものである。「特徴マップ」は、図3で説明した複数のキーポイントKPに関連した特徴量のマップであり、シミュレーション画像SMや入力画像IMと同じサイズの画像領域を有している。正解特徴マップは、個々のシミュレーション画像SMに対応して作成される。本実施形態では、以下で説明する複数種類の特徴マップのうちの1つ以上について、正解特徴マップが作成される。
(1)ヒートマップ(Heat Map)
(2)方向ベクトルマップ(Directional Vector Map)
(3)キーポイント距離マップ(Keypoint Distance Map)
(4)ノイズレス距離マップ(Noiseless Distance Map)
(5)アフィニティフィールドマップ(Affinity Field Map)
(6)セマンティックフィールドマップ(Semantic Field Map)
(7)セマンティック構造マスクマップ(Semantic Structure Mask Map)
図7は、第1種の特徴マップとしてのヒートマップHMを示す説明図である。正解特徴マップとしてのヒートマップHMは、N個のキーポイントKPのそれぞれに対応して作成される。即ち、1つのシミュレーション画像SMに対して、N個のキーポイントKPに対応するN個のヒートマップHMが作成される。ヒートマップHMは、個々のキーポイントKPの中心位置からの距離に応じて、特定の分布形状で画素値が減少するマップである。特定の分布形状としては、例えばガウス分布を使用できる。図7の例では、個々のキーポイントKPの中心位置にガウス分布GDが描かれている。ヒートマップHMは、キーポイントKPの中心位置をピンポイントに推定するものではなく、キーポイントKPの存在確率が高い領域を示すものである。このようなヒートマップHMを使用すれば、カメラ400で撮影された入力画像IMに多少の誤差が存在してもロバストにキーポイントKPの位置を推定できる。
図8は、第2種の特徴マップとしての方向ベクトルマップDVMを示す説明図である。正解特徴マップとしての方向ベクトルマップDVMも、ヒートマップHMと同様に、N個のキーポイントKPのそれぞれに対応して作成される。jを1~Nの整数としたとき、j番目の方向ベクトルマップDVMは、j番目のキーポイントKPjを対象キーポイントとしたマップであり、同一の対象物OBに属する全画素のそれぞれから対象キーポイントKPjに向かう方向を示すベクトルを、各画素に割り当てたマップである。例えば、図8においてシミュレーション画像SMの下に示すように、対象物OB_11内の1番目のキーポイントKP1に対する方向ベクトルマップDVMは、同じ対象物OB_11に属する各画素からキーポイントKP1に向かう方向を示すベクトルを含んでいる。2番目以降のキーポイントKPに対する方向ベクトルマップDVMも同様である。但し、図8では図示の便宜上、個々のキーポイントKPに関して、同じ対象物OBに属する一部の画素からそのキーポイントKPに向かうベクトルのみが描かれている。方向ベクトルマップDVMにおけるベクトルは、画像領域内の2次元方向を示すベクトルである。
図9は、第3種の特徴マップとしてのキーポイント距離マップKDMを示す説明図である。正解特徴マップとしてのキーポイント距離マップKDMも、方向ベクトルマップDVMと同様に、N個のキーポイントKPのそれぞれに対応して作成される。キーポイント距離マップKDMは、カメラ400から対象キーポイントKPjまでの距離zKPjを示すマップである。即ち、同一の対象物OBに属する全画素には、同一の距離zKPjが画素値Dpとして割り当てられる。例えば、1番目のキーポイントKP1に対するキーポイント距離マップKDM_KP1では、個々の対象物OBに属する複数の画素に対して、カメラ400から1番目のキーポイントKP1までの距離zKP1を示す一定の画素値Dpが割り当てられる。キーポイント距離マップKDMは、図8に示した方向ベクトルマップDVMなどの他のマップのzチャンネルとして生成するようにしてもよい。
図10は、第4種の特徴マップとしてのノイズレス距離マップNDMを示す説明図である。カメラ400で生成される距離画像には、種々のノイズが生じる可能性がある。正解特徴マップとしてのノイズレス距離マップNDMは、ノイズの無い距離画像であり、画素毎にカメラ400からの距離を示すマップである。ノイズレス距離マップNDMを用いることによって、ノイズの無い正しい距離情報を推定することが可能になり、距離情報の欠損による推定精度の低下を防ぐことができる。正解特徴マップとしてのノイズレス距離マップNDMは、1つのシミュレーション画像SMに対して1つ作成される。より正確に言えば、ノイズレス距離マップNDMは、1つのシミュレーション画像SMに含まれる1つの距離画像に対して1つ作成される。前述したように、シミュレーション画像SMに含まれる距離画像には、ノイズが付与されている。実際には、正解特徴マップとしてのノイズレス距離マップNDMが最初に作成され、ノイズレス距離マップNDMにノイズを付与することによってシミュレーション画像SMの距離画像が作成される。
図3に示した対象物OBの位置姿勢の認識実行時には、入力画像IMから、特徴マップCMとしてのノイズレス距離マップNDMが機械学習モデル630によって生成される。但し、このノイズレス距離マップNDMにはある程度のノイズが含まれる。この例から理解できるように、位置姿勢の認識実行時に得られるノイズレス距離マップNDMは、入力画像IMに含まれる距離画像よりもノイズが少ないものを意味しており、ある程度のノイズを含んでいてもよい。
図9で説明したキーポイント距離マップKDMと図10で説明したノイズレス距離マップNDMは、いずれもカメラ400から個々の対象物OBに属する複数の画素までの距離を示すマップである点で共通する。本開示において、「距離マップ」という語句は、キーポイント距離マップKDMとノイズレス距離マップNDMの両方を含む意味で使用する。これらの距離マップの値は、カメラ400から複数のキーポイントKPまでの距離を推定するために使用できるので、複数のキーポイントKPに関連した特徴量と考えることができる。
図11は、第5種の特徴マップとしてのアフィニティフィールドマップAFMを示す説明図である。アフィニティフィールドマップAFMは、画素同士が同一の対象物OBに属するものであるか否かを示すマップである。より具体的に言えば、アフィニティフィールドマップAFMは、近傍ウィンドウWdの基準画素pに対して、基準画素pの周囲の近傍画素が、基準画素pと同じ対象物OBに属しているかを示す値のマップである。図11には、2つのアフィニティフィールドマップAFM1,AFM2が例示されている。これらのアフィニティフィールドマップAFM1,AFM2には、近傍ウィンドウWdがタイル状に配置されている。pは、個々の近傍ウィンドウWdの中心に設定された基準画素である。この例では、近傍ウィンドウWdは5×5画素のサイズを有しているが、3×3画素や7×7画素のような他のサイズを有していても良い。1番目のアフィニティフィールドマップAFM1では、画像領域の左上端にある画素が、近傍ウィンドウWdの基準画素pとなるように近傍ウィンドウWdが配置されている。個々の近傍ウィンドウWd内の画素の画素値Dpとして、基準画素pと同じ対象物OBに属している場合には1が割り当てられ、基準画素pと同じ対象物に属していない場合には0が割り当てられる。また、基準画素pが背景領域にある場合には、その近傍ウィンドウWd内のすべての画素の画素値Dpに0が割り当てられる。図11では、画素値Dpとして1が割り当てられている画素にハッチングが付されており、画素値Dpとして0が割り当てられている画素にはハッチングが付されていない。2番目のアフィニティフィールドマップAFM2は、1番目のアフィニティフィールドマップAFM1から近傍ウィンドウWdの位置を1つずらしたものである。一般に、近傍ウィンドウWdがQ個の画素を含む場合には、1つのシミュレーション画像SMに対してQ個のアフィニティフィールドマップAFMが作成される。図11の例では、近傍ウィンドウWdが25個の画素を含むので、1つのシミュレーション画像SMに対して25個のアフィニティフィールドマップAFMが作成される。これらのアフィニティフィールドマップAFMは、複数のキーポイントKPを、同一の対象物OBごとにグルーピングする際に使用できる。
図12は、第6種の特徴マップとしてのセマンティックフィールドマップSFMを示す説明図である。セマンティックフィールドマップSFMも、アフィニティフィールドマップAFMと同様に、画素同士が同一の対象物OBに属するものであるか否かを示すマップである。但し、セマンティックフィールドマップSFMは、近傍ウィンドウWdを用いておらず、シミュレーション画像SMと同じサイズの画像領域内の各画素に、同一の対象物OBに属するか否かを示す画素値Dpが割り当てられたマップである。例えば、シミュレーション画像SMがM個の対象物OBを含む場合には、M個の対象物領域に1~Mの画素値Dpがそれぞれ割り当てられる。図12の例では、m番目の対象物OBmに属する各画素に、画素値Dp=mが割り当てられている。セマンティックフィールドマップSFMは、画像に対していわゆるセマンティックセグメンテーションを実行することによって、画像領域をクラス分けしたものと等価である。正解特徴マップとしてのセマンティックフィールドマップSFMは、1つのシミュレーション画像SMに対して1つ作成される。
図11で説明したアフィニティフィールドマップAFMと図12で説明したセマンティックフィールドマップSFMは、いずれも画素同士が同一の対象物OBに属するものであるか否かを示すマップである点で共通する。本開示において、「フィールドマップ」という語句は、アフィニティフィールドマップAFMとセマンティックフィールドマップSFMの両方を含む意味で使用する。これらのフィールドマップの値は、複数のキーポイントKPが同一の対象物OBに属するものか否かを判定するために使用できるので、複数のキーポイントKPに関連した特徴量と考えることができる。
図13は、第7種の特徴マップとしてのセマンティック構造マスクマップSMMを示す説明図である。セマンティック構造マスクマップSMMは、対象物OBを意味のある部分に分割したマスクを示すマップである。図13の例では、シミュレーション画像SMに含まれる個々の対象物OBについて、上部開口Tpと底面Btと把手Hdの領域をそれぞれ示すマスクが設定されている。マスクとしては、少なくともN個のキーポイントKPに対応するN個の特徴形状を示すマスクが設定されることが好ましい。但し、キーポイントKPが設定されていない部分についてのマスクを追加してもよい。例えば、図5に示した対象物OB1_0の例では、本体Bd1についてのマスクを追加してもよい。セマンティック構造マスクマップSMMとしては、1つのシミュレーション画像SMに対して、N個のキーポイントKPに対応するN個のマップが少なくとも作成される。セマンティック構造マスクマップSMMは、複数のキーポイントKPを推定する際に使用できるので、複数のキーポイントKPに関連した特徴量と考えることができる。
図4のステップS140では、個々のシミュレーション画像SMに対して、上述した複数の特徴マップに対応する複数の正解特徴マップのうちの1つ以上が作成される。シミュレーション画像SMは、対象物OBの形状データを利用したシミュレーションによって作成されており、正解特徴マップは、シミュレーション画像SMに対応した正解値を示す特徴マップである。
ステップS150では、学習実行部614が、複数のシミュレーション画像SMとこれらに対応する正解特徴マップとを教師データとして用いて、機械学習モデル630の学習を実行する。図3で説明したように、機械学習モデル630は、カメラ400で撮影された入力画像IMを入力とし、特徴マップCMを出力とするように構成される。本実施形態において、機械学習モデル630は、カラー画像と距離画像とを含む入力画像IMに対して、上述した7種類の特徴マップの少なくとも一部を出力するように構成されたニューラルネットワークである。ニューラルネットワークとしては、例えば、VAE(Variational Autoencoder)やU-Netなどを使用することが可能である。機械学習モデル630の学習は、シミュレーション画像SMの入力に応じて機械学習モデル630で生成された特徴マップと、正解特徴マップとの誤差を損失関数(Loss Function)として、これを最小化するように確率的勾配降下法などの最適化手法を用いてニューラルネットワークを最適化することにより行われる。この際、個々の特徴マップに対応するニューラルネットワークを作成して、個別に学習することも可能である。また、複数種類の特徴マップを同じニューラルネットワークで学習するマルチタスク学習を行うことにより精度を向上させることができる。即ち、1つのニューラルネットワークで全種類の特徴マップを生成するようにニューラルネットワークを構成してもよい。
上述した実施形態の学習工程によれば、対象物OBの形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成して、それらを配置した複数のシーンに関する複数のシミュレーション画像SMを生成するとともに、これに対応する正解特徴マップを生成する。従って、対象物OBの形状や表面特性が変化しても、特徴マップを正しく推定できる機械学習モデル630を適切に学習させることができる。
図14は、位置姿勢認識工程の処理手順を示すフローチャートである。この位置姿勢認識工程は、図1に示したロボットシステムの実作業環境で実行される。
ステップS210では、キーポイント推定部622が、カメラ400を用いて対象物OBを含むシーンを撮影して入力画像IMを生成する。
ステップS220では、キーポイント推定部622が、入力画像IMを学習済みの機械学習モデル630に入力して、特徴マップCMを得る。機械学習モデル630は、1つの入力画像IMに対して、複数種類の特徴マップCMを出力するように構成されていることが好ましい。
ステップS230では、キーポイント推定部622が、特徴マップCMを用いて、複数のキーポイントKPを推定する。本実施形態では、図7に示したヒートマップHMと、図9に示したキーポイント距離マップKDMとを用いて、M×N個のキーポイントKPの3次元座標が推定される。ここで、Nは1つの対象物OBに設定されているキーポイントKPの数であり、MはN個のキーポイントKPがすべて推定され得る対象物OBの数である。Nは、2以上の整数であり、3以上とすることが好ましい。Mは、1以上の整数であり、2以上の整数とすることが好ましい。また、Mは、入力画像IMに含まれているすべての対象物OBの数以下の整数である。例えば、或る対象物OBが他の対象物や非対象物に隠れている場合には、N個のキーポイントKPがすべて推定され得る対象物OBの数Mは、入力画像IMに含まれているすべての対象物OBの数よりも少なくなる。
図15は、ステップS230の詳細手順を示すフローチャートである。ステップS231では、キーポイント推定部622が、n番目のキーポイントKPnに対するヒートマップHPを取得する。ここで、nは1~Nの整数である。ヒートマップHPは、ステップS220において特徴マップとして得られたものである。
ステップS232では、キーポイント推定部622が、ヒートマップHMの画素値を予め設定された閾値と比較して、各画素に1又は0を割り当てる。即ち、ヒートマップHMにおける各画素の画素値が閾値以上のときにはその画素に1が割り当てられ、閾値未満の場合にはその画素に0が割り当てられる。この2値化処理の閾値は、例えば0.5~0.8の範囲に設定される。2値化処理によって値1が割り当てられた画素はキーポイントKPの近傍画素であり、値0が割り当てられた画素はそれ以外の画素であるものと推定される。このステップS232の処理は、図13で説明したセマンティック構造マスクマップSMMを用いて、キーポイントKPが存在する領域内に限定して処理を実行してもよい。即ち、図13の例では、セマンティック構造マスクマップSMMは、上部開口Tpと底面Btと把手Hdの領域のマスクを含んでいるので、これらのマスクの領域内でのみステップS232の処理を実行してもよい。
ステップS233では、キーポイント推定部622が、ステップS232で値1が割り当てられた画素群を領域分離して、複数の分離領域に分離する。即ち、画素値が1である画素のうち、互いに隣接する画素は同じ分離領域に属するものとして、画像領域の全体が複数の分離領域に分離される。
ステップS234では、キーポイント推定部622が、ステップS233で分離された個々の分離領域の重心位置をキーポイントKPの2次元キーポイント座標(x, y)として決定する。キーポイントKPの2次元座標(x, y)は、入力画像IMと同じサイズの画像領域における画素座標である。
なお、ステップS232~S234の処理を行うことなく、ヒートマップHMのピーク値を有する画素座標(x, y)をキーポイントKPの2次元座標(x, y)としてそのまま使用しても良い。但し、ステップS232~S234の処理を行えば、入力画像IMに対して得られたヒートマップHMにある程度の誤差がある場合にも、キーポイントKPの2次元座標(x, y)を正確に決定できるという利点がある。
ステップS235では、キーポイント推定部622が、2次元キーポイント座標(x, y)におけるカメラ400からの距離zを求めて、3次元キーポイント座標(x, y, z)を決定する。ステップS235の処理では、図9で説明したキーポイント距離マップKDMを使用することができる。具体的には、例えば、ステップS233の処理で得られた個々の分離領域において、キーポイント距離マップKDMから得られるz座標値を、ヒートマップHMの画素値で重み付け平均することによって、2次元キーポイント座標(x, y)に対応するz座標値を決定するようにしてもよい。こうして得られる3次元キーポイント座標(x, y, z)は、カメラ座標系Σcで表現されることが好ましい。
なお、上述した重み付け平均を行うことなく、2次元キーポイント座標(x,y)におけるキーポイント距離マップKDMの距離zをそのまま使用することによって、2次元キーポイント座標(x,y)に対応する距離zを決定してもよい。但し、上述した重み付け平均によって距離zを決定するようにすれば、ヒートマップHMやキーポイント距離マップKDMにある程度の誤差がある場合にも、3次元キーポイント座標(x, y, z)を正確に推定できるという利点がある。以上のステップS231~S235の処理を1回実施することによって、n番目のキーポイントKPnについて、M個の3次元キーポイント座標(x, y, z)がそれぞれ決定される。
ステップS236では、1番目からN番目までのすべてのキーポイントKPについてステップS231~S235の処理が終了したか否かが判定され、終了していなければステップS231に戻ってステップS231~S235の処理が繰り返される。こうして、1番目からN番目までのキーポイントKPについての処理が終了すると、M×N個のキーポイントKPについて、3次元キーポイント座標(x, y, z)がそれぞれ得られる。これらのM×N個のキーポイントKPは、M個の対象物OBとの対応関係が未定の状態にある。個々の対象物OBとそれに属するN個のキーポイントKPとの対応関係は、後述するグルーピング処理で決定される。
なお、ステップS230におけるキーポイントKPの推定は、ヒートマップHMとキーポイント距離マップKDM以外の他の特徴マップを用いて行っても良い。例えば、ステップS235の処理は、キーポイント距離マップKDMの代わりに、図10に示したノイズレス距離マップNDMを用いて行うことも可能である。
図14のステップS240では、キーポイント推定部622が、ステップS230で推定されたM×N個のキーポイントKPを、同じ対象物OB毎にグルーピングする。即ち、M×N個のキーポイントKPが、M個の対象物OBのそれぞれに属するN個のキーポイントKPにグルーピングされる。ステップS240で使用する特徴マップとしては、例えば、図8に示した方向ベクトルマップDVMと、図11に示したアフィニティフィールドマップAFMを使用することができる。
図16は、ステップS240の詳細手順を示すフローチャートである。ステップS241では、キーポイント推定部622が、M個のi番目のキーポイントKPiの中から1つのキーポイントKPiを処理対象として選択するとともに、M個のj番目のキーポイントKPjの中から1つのキーポイントKPjを処理対象として選択する。ここで、i,jは1以上N以下の互いに異なる整数である。
ステップS242では、キーポイント推定部622が、i番目のキーポイントKPiとj番目のキーポイントKPjの第1適合度Dc1を算出する。
図17は、ステップS242の詳細手順を示すフローチャートであり、図18はその処理内容を示す説明図である。ステップS21では、キーポイント推定部622が、j番目の方向ベクトルマップDVMを用いて、i番目のキーポイントKPiの画素位置からj番目のキーポイントKPjに向かう第1ベクトルV1を得る。「i番目のキーポイントKPiの画素位置」は、i番目のキーポイントKPiの3次元キーポイント座標(x, y, z)で示される画素座標(x, y)の位置を意味する。「j番目のキーポイントKPjに向かう第1ベクトルV1」は、j番目の方向ベクトルマップDVMを参照することによって得られる。
図18は、i=1,j=3の場合におけるステップS21の処理内容を示している。図18の上部には、3番目のキーポイントKP3に関する方向ベクトルマップDVM_KP3を用いて、対象物OB1の1番目のキーポイントKP1の画素位置(xKP1, yKP1)から、3番目のキーポイントKP3に向かう第1ベクトルV1を得た状態が描かれている。図8で説明したように、3番目の方向ベクトルマップDVM_KP3は、個々の3番目のキーポイントKP3について、同じ対象物OBに属する各画素から3番目のキーポイントKP3に向かう方向を示すベクトルが各画素に割り当てられたマップである。従って、図18の例では、方向ベクトルマップDVM_KP3において、対象物OB1の1番目のキーポイントKP1の画素位置(xKP1, yKP1)を参照すれば、第1ベクトルV1を得ることができる。
ステップS22では、キーポイント推定部622が、i番目のキーポイントKPiの画素位置からj番目のキーポイントKPjの画素位置に向かう第2ベクトルV2を得る。ここで、i番目のキーポイントKPiの画素位置とj番目のキーポイントKPjの画素位置は、ステップS230の処理で得られた3次元キーポイント座標(x, y, z)で示される画素位置(x, y)を意味する。図18の下部には、i=1,j=3の場合に得られる第2ベクトルV2が描かれており、説明の便宜のために第1ベクトルV1も点線で描かれている。第2ベクトルV2は、1番目のキーポイントKP1の画素位置(xKP1, yKP1)から、3番目のキーポイントKP3の画素位置(xKP3, yKP3)に向かうベクトルである。この例では、1番目のキーポイントKP1は第1の対象物OB1に属しており、3番目のキーポイントKP3は第2の対象物OB2に属しているので、第2ベクトルV2は第1ベクトルV1とは異なる方向を向いている。
ステップS23では、キーポイント推定部622が、第1ベクトルV1と第2ベクトルV2の方向の一致度を示す第1適合度Dc1を算出する。第1適合度Dc1は、例えば、次式で算出することができる。
Figure 2024032055000004
ここで、D1は第1ベクトルV1の方向、D2は第2ベクトルV2の方向であり、(D1-D2)は2つベクトルV1,V2が成す角度θに相当する。
上記[3]式の代わりに、次式を用いて、2つのベクトルV1,V2のコサイン類似度を第1適合度Dc1として算出してもよい。
Figure 2024032055000005
第1適合度Dc1を求める関数としては、上述した[3]式や[4]式以外の関数を用いてもよい。但し、2つのベクトルV1,V2の方向の一致度が低下するのに応じて値が低下する関数を使用することが好ましい。本実施形態では、上記[3]式を用いて第1適合度Dc1を求める。従って、第1適合度Dc1は0~1の値を有する。
図16のステップS243では、キーポイント推定部622が、i番目のキーポイントKPiとj番目のキーポイントKPjの第2適合度Dc2を算出する。ステップS243における第2適合度Dc2の算出処理は、ステップS242における第1適合度Dc1の算出処理の「i番目のキーポイントKPi」と「j番目のキーポイントKPj」を互いに交換し、また、「第1ベクトル」と「第2ベクトル」を「第3ベクトル」と「第4ベクトル」にそれぞれ読み替えた処理に相当する。
図19は、第2適合度Dc2の算出に使用される第3ベクトルV3と第4ベクトルV4を示しており、図18と同じi=1,j=3の場合の例である。第3ベクトルV3は、i番目の方向ベクトルマップDVMから得られるベクトルであって、j番目のキーポイントKPjの画素位置からi番目のキーポイントKPiに向かう方向を示すベクトルである。図19の例では、1番目の方向ベクトルマップDVM_KP1を参照して、3番目のキーポイントKP3の画素位置(xKP3,yKP3)から1番目のキーポイントKP1に向かう方向を示す第3ベクトルV3が得られている。第4ベクトルV4は、j番目のキーポイントKPjの3次元キーポイント座標(x, y, z)で示される画素位置(x, y)からi番目のキーポイントKPiの3次元キーポイント座標(x, y, z)で示される画素位置(x, y)に向かう方向を示すベクトルである。図19の例では、3番目のキーポイントKP3の画素位置(xKP3, yKP3)から、1番目のキーポイントKP1の画素位置(xKP1, yKP1)に向かう第4ベクトルV4が得られている。第2適合度Dc2は、第3ベクトルV3と第4ベクトルV4の方向の一致度を示す適合度であり、前述した[3]式や[4]式と同様の関数を用いて算出される。
ステップS244では、キーポイント推定部622が、第1適合度Dc1と第2適合度Dc2とを統合した統合適合度Dctを算出する。統合適合度Dctは、例えば、第1適合度Dc1と第2適合度Dc2の和や、平均、乗算などの演算によって算出できる。本実施形態では、第1適合度Dc1と第2適合度Dc2の単純平均を取ることによって統合適合度Dctを求める。第1適合度Dc1と第2適合度Dc2はそれぞれ0~1の値を取るので、統合適合度Dctも0~1の値を取る。
ステップS245では、キーポイント推定部622が、第1ベクトルV1と第2ベクトルV2の統合適合度Dctが、予め設定された閾値Th以上であるか否かを判定する。閾値Thは、例えば0.90~0.98の値に設定される。統合適合度Dctが閾値Th以上である場合には、処理対象である2つのキーポイントKPi,KPjが同一の対象物OBに属するものと推定されて、後述するステップS246に進む。一方、統合適合度Dctが閾値Th未満である場合には、2つのキーポイントKPi,KPjが同一の対象物OBに属さないものと推定されて、ステップS247に進む。ステップS248では、キーポイント推定部622が、2つのキーポイントKPi,KPjの統合適合度Dctを、第1の値Daに調整する。第1の値Daは、例えば、統合適合度Dctが取り得る最低適合度値に設定される。本実施形態では、統合適合度Dctは0~1の範囲の値を取り得るので、第1の値Daは0に設定される。なお、第1の値Daとしては、元の統合適合度Dctの値をそのまま使用してもよい。
ステップS246では、キーポイント推定部622が、フィールドマップを用いて、2つのキーポイントKPi,KPjが同一の対象物OBに属するか否かを推定する。フィールドマップとしては、図11に示したアフィニティフィールドマップAFMと、図12に示したセマンティックフィールドマップSFMのいずれかを使用することが可能である。本実施形態では、アフィニティフィールドマップAFMを使用する。
図20は、ステップS246の詳細手順を示すフローチャートであり、図21は、ステップS246の処理内容を示す説明図である。ステップS61では、キーポイント推定部622が、i番目のキーポイントKPiの位置を、アフィニティフィールドマップAFMの近傍ウィンドウWdの基準画素pに設定する。図21の左側の例では、1番目のキーポイントKP1の位置(xKP1, yKP1)が、近傍ウィンドウWd1の基準画素pの位置に設定されている。実際には、ステップS61の処理は、図11に例示したような複数のアフィニティフィールドマップAFMのうちで、1番目のキーポイントKP1の位置(xKP1, yKP1)が近傍ウィンドウWdの基準画素pとなっている1つのアフィニティフィールドマップAFMを選択する処理である。なお、図21の例は、j番目のキーポイントKPjとして、1番目のキーポイントKP1と同じ対象物OBに属する3番目のキーポイントKP3が選択されている場合の例である。
ステップS62では、キーポイント推定部622が、近傍ウィンドウWdの中にj番目のキーポイントKPjが存在するか否かを判定する。図21の左側の例では、近傍ウィンドウWd1の中に、3番目のキーポイントKP3が存在するか否かが判定される。この例では、近傍ウィンドウWd1の中に3番目のキーポイントKP3は存在しない。近傍ウィンドウWdの中にj番目のキーポイントKPjが存在しない場合には、ステップS63に進む。
ステップS63では、キーポイント推定部622が、現在の近傍ウィンドウWdに含まれる画素値Dp=1の画素の中で、j番目のキーポイントKPjに最も近い画素に基準画素pを再設定する。図21の左側の例では、現在の近傍ウィンドウWd1に含まれる画素値Dp=1の画素の中で、3番目のキーポイントKP3に最も近い画素は、1番目のキーポイントKP1の位置から2画素分だけ上方にある画素である。そこで、ステップS63では、図21の右側の例に示すように、2画素分だけ上方に移動した位置に基準画素pと近傍ウィンドウWd2が再設定され、これに応じたアフィニティフィールドマップAFMが選択される。図21の左側のアフィニティフィールドマップAFMと右側のアフィニティフィールドマップAFMは異なるマップであるが、図示の便宜上、同じ符号「AFM」を付している。こうして、近傍ウィンドウWdの中にj番目のキーポイントKPjが存在する状態になるまで、ステップS62とステップS63が繰り返し実行される。
ステップS62において、近傍ウィンドウWdの中にj番目のキーポイントKPjが存在する場合には、ステップS64に進み、キーポイント推定部622が、j番目のキーポイントKPjが近傍ウィンドウWdの基準画素pと同じ対象物OBに属するか否かを判定する。具体的には、アフィニティフィールドマップAFMにおいて、j番目のキーポイントKPjにおける画素値Dpが1であれば、基準画素pと同じ対象物OBに属すると判定され、画素値Dpが0であれば基準画素pと同じ対象物OBに属さないと判定される。j番目のキーポイントKPjが近傍ウィンドウWdの基準画素pと同じ対象物OBに属さない場合には、ステップS65に進み、統合適合度Dctが第1の値Daに調整される。一方、j番目のキーポイントKPjが近傍ウィンドウWdの基準画素pと同じ対象物OBに属する場合には、ステップS66に進み、統合適合度Dctが第1の値Daよりも高い第2の値Dbに調整される。第1の値Daは、図16のステップS247で使用した第1の値Daと同じものを用いても良く、或いは、異なる値を用いても良い。また、第1の値Daとしては、元の統合適合度Dctの値をそのまま使用してもよい。ステップS65で使用される第1の値Daは、例えば、統合適合度Dctが取り得る最低適合度値に設定される。ステップS66で使用される第2の値Dbは、例えば、統合適合度Dctが取り得る最高適合度値に設定される。本実施形態では、統合適合度Dctは0~1の範囲の値を取り得るので、第1の値Daは0に設定され、第2の値Dbは1に設定される。但し、第1の値Daと第2の値Dbは、Da<Dbの関係を有するものであれば良く、最低適合度値や最高適合度値以外の値を使用してもよい。
このように、ステップS246の処理では、アフィニティフィールドマップAFMを用いて、2つのキーポイントKPi,KPjが同一の対象物OBに属するか否かを推定することができ、これに応じて統合適合度Dctの値を調整できる。
なお、アフィニティフィールドマップAFMの代わりに、図12に示したセマンティックフィールドマップSFMを使用することも可能である。この場合には、図15のステップS62,S63の繰り返し処理は不要であり、1回の処理で2つのキーポイントKPi,KPjが同一の対象物OBに属するか否かを推定することが可能である。
図16に戻り、ステップS246又はステップS247の処理が終了すると、ステップS248に進む。ステップS248では、i番目のキーポイントKPiとj番目のキーポイントKPjのすべての組み合わせについての処理が終了したか否かが判定される。終了していなければ、ステップS241に戻り、異なる組み合わせについて、ステップS241~S247の処理が繰り返される。一方、i番目のキーポイントKPiとj番目のキーポイントKPjのすべての組み合わせについての処理が終了すると、ステップS249に進み、キーポイント推定部622が、キーポイントKPのグルーピングを確定する処理を実行する。
図22は、ステップS249におけるグルーピング確定処理の一例を示すフローチャートである。ステップS311では、キーポイント推定部622が、M個のi番目のキーポイントKPiの中から1つのキーポイントKPiを処理対象として選択するとともに、M個のj番目のキーポイントKPjの中から1つのキーポイントKPjを処理対象として選択する。ここで、i,jは1以上N以下の互いに異なる整数である。
ステップS312では、キーポイント推定部622が、2つのキーポイントKPi,KPjの統合適合度Dctが、第2の値Dbか否かを判定する。図16及び図20で説明したように、本実施形態では、統合適合度Dctは、第1の値Daと第2の値Dbのいずれかに設定されており、Da<Dbである。統合適合度Dctが第2の値Dbである場合には、ステップS313に進み、キーポイント推定部622が、2つのキーポイントKPi,KPjをグルーピングすると確定する。即ち、2つのキーポイントKPi,KPjは、同一の対象物OBに属するものであることが確定する。一方、統合適合度Dctが第1の値Daである場合には、ステップS314に進み、キーポイント推定部622が、2つのキーポイントKPi,KPjをグルーピングしないと確定する。即ち、2つのキーポイントKPi,KPjは、同一の対象物OBに属しないものであることが確定する。ステップS315では、i番目のキーポイントKPiとj番目のキーポイントKPjのすべての組み合わせについての処理が終了したか否かが判定される。終了していなければ、ステップS311に戻り、異なる組み合わせについて、ステップS311~S314の処理が繰り返される。
上述した図22のグルーピング確定処理では、2つのキーポイントKPi,KPjの統合適合度Dctの値に応じて、2つのキーポイントKPi,KPjをグルーピングするか否かが確定される。但し、このグルーピング確定処理では、図16のステップS247及び図20のステップS65,S66における統合適合度Dctの調整を省略することも可能である。例えば、図16のステップS245において、統合適合度Dctが閾値Th未満の場合には、統合適合度Dctを調整することなく、2つのキーポイントKPi,KPjをグルーピングしないものと確定してもよい。また、図20のステップS64において、j番目のキーポイントKPjが基準画素pと同じ対象物OBに属するか否の判定に応じて、2つのキーポイントKPi,KPjをグルーピングするか否かを確定してもよい。
図23は、ステップS249におけるグルーピング確定処理の他の例を示すフローチャートである。このグルーピング確定処理では、N個のキーポイントKPで構成されるキーポイントセット毎に、グルーピングが確定される。
ステップS321では、キーポイント推定部622が、M×N個のキーポイントKPの中から、1番目のキーポイントKP1からN番目のキーポイントKPNまでのN個のキーポイントKPで構成される任意の1つのキーポイントセットを選択する。nを1~Nの整数としたとき、M×N個のキーポイントKPは、n番目のキーポイントKPnをそれぞれM個含んでいるので、M個のキーポイントセットを構成できる。ステップS321では、これらのM個のキーポイントセットの中の1つが選択される。
ステップS322では、キーポイント推定部622が、ステップS321で選択されたキーポイントセット内の複数のキーポイント対の統合適合度Dctを加算して、セット適合度Dsetを算出する。「キーポイント対」とは、一対のキーポイントKPを意味する。1つのキーポイントセットは、N個のキーポイントKPで構成されているので、N(N-1)/2個のキーポイント対を含んでいる。セット適合度Dsetは、これらのN(N-1)/2個のキーポイント対の統合適合度Dctを加算することによって得られる。
ステップS323では、すべてのキーポイントセットについてステップS321,S322の処理が終了したか否かが判定され、すべてのキーポイントセットについての処理が終了するまでステップS321,S322が繰り返し実行される。ステップS321~S323の処理によって、M個のキーポイントセットについてセット適合度Dsetがそれぞれ算出される。
ステップS324では、キーポイント推定部622が、セット適合度Dset順にすべてのキーポイントセットをソートする。ステップS325では、キーポイント推定部622が、グルーピングが未確定である未確定キーポイントセットのうちで、セット適合度Dsetが最も高いキーポイントセットのグルーピングを確定する。「未確定キーポイントセット」とは、そのキーポイントセットが同じ対象物OBに属するグループを構成することが確定されていないキーポイントセットを意味する。ステップS324が最初に実行される場合には、未確定キーポイントセットはM個存在する。
ステップS325では、キーポイント推定部622が、未確定キーポイントセットのうちでセット適合度Dsetが最も高いキーポイントセットのグルーピングを確定する。即ち、セット適合度Dsetが最も高いキーポイントセットは、同じ対象物OBに属するものであることが確定される。ステップS326では、キーポイント推定部622が、グルーピングが確定したキーポイントセットに含まれる任意のキーポイントKPを含む複数のキーポイントセットを、未確定キーポイントセットから除外する。
なお、オクルージョン(隠ぺい)などによってキーポイントKPが検出されない可能性があるので、この場合を考慮して、図16のステップS245において統合適合度Dctが閾値Thよりも低いキーポイントKPは、「欠損」と見なすようにしてもよい。作業によっては、対象物OBに設定されたN個のキーポイントKPのうちの一部の特定のキーポイントKPを検出できれば作業を完遂することができる。例えば、図3に示したカップの把手Hdを把持してテーブルに置く作業を想定して場合には、カップの底面Btに設定されたキーポイントKP1と把手Hdに設定されたキーポイントKP2が検出できれば作業を実行でき、上面Tpの開口部に設定されたキーポイントKP3は欠損していても問題なく作業を完遂できる。
ステップS327では、すべての未確定キーポイントセットについてステップS325,S326の処理が終了したか否かが判定され、終了していなければ、ステップS325に戻ってステップS325,S326が再度実行される。
上述した図23のグルーピング確定処理では、セット適合度Dsetの高い順に、キーポイントセットに関するグルーピングを確定している。従って、セット適合度Dsetを用いてキーポイントセット毎に正確なグルーピングを行うことができる。
なお、図16で説明したグルーピング処理では、ステップS242~S244の処理によって2つのキーポイントKPi,KPjの統合適合度Dctを求め、ステップS245において統合適合度Dctが閾値Th以上である場合に、ステップS246の処理によってキーポイントKPi,KPjが同一の対象物OBに属するか否かの推定を行っている。統合適合度Dctを用いる代わりに、第1適合度Dc1を用いてステップS245の判定を行ってもよい。但し、統合適合度Dctを用いるようにすれば、2つのキーポイントKPi,KPjが同一の対象物OBに属するか否かをより正確に推定できるという利点がある。
また、ステップS246、S247,S249の処理を省略し、統合適合度Dctと閾値Thとの比較結果のみで2つのキーポイントKPi,KPjをグルーピングするか否かを確定するようにしてもよい。更に、統合適合度Dctの代わりに第1適合度Dc1を用いて、第1適合度Dc1と閾値Thとの比較結果のみで2つのキーポイントKPi,KPjをグルーピングするか否かを確定するようにしてもよい。これらの場合に、i番目のキーポイントKPiに対して、統合適合度Dct又は第1適合度Dc1が閾値Th以上となるj番目のキーポイントKPjが複数個存在する場合が発生し得る。この場合には、例えば、統合適合度Dct又は第1適合度Dc1が最も高い1つのキーポイントKPjを選択してi番目のキーポイントKPiとグルーピングするようにしてもよい。
或いは、ステップS242~S245の処理を省略し、ステップS246の処理によって2つのキーポイントKPi,KPjをグルーピングするか否かを確定するようにしてもよい。即ち、フィールドマップを用いて2つのキーポイントKPi,KPjが同一の対象物OBに属するか否かを判定することによって、これらをグルーピングするか否かを決定するようにしてもよい。この場合には、適合度の算出処理も省略可能である。
なお、グルーピング処理の結果として、いずれの対象物OBにも属さないキーポイントKPが残存する可能性がある。この場合には、そのキーポイントKPは破棄してもよい。この点を考えると、入力画像IMの中に、位置姿勢が認識可能な対象物OBがM個存在する場合に、図14のステップS230の処理によって、M×N個よりも多数のキーポイントKPが推定される可能性がある。本開示において、「M×N個のキーポイントKPが推定される」という語句は、この場合のように、M×N個以よりも多数のキーポイントKPが推定される場合も含む広い意味で使用される。
図14のステップS250では、位置姿勢決定部624が、対象物OB毎に分類されたN個のキーポイントKPから対象物OBの位置姿勢を決定する。図3で説明したように、N個のキーポイントKPは、対象物OBのN個の特定部分を代表するN個の代表位置の3次元座標(x, y, z)を示しているので、同じ対象物OBに関するN個のキーポイントKPが分かれば、これらのキーポイントKPから対象物OBの位置姿勢を決定することが可能である。ステップS250では、少なくとも1つの対象物OBについて、その位置姿勢が決定される。
ステップS260では、ロボットシステムが、対象物OBの位置姿勢を用いて対象物OBのピッキング作業を実行する。ピッキング作業の内容は、ロボット制御プログラムRPに記述されている。ステップS210~S260の処理は、必要に応じて繰り返し実行される。
上述した実施形態の位置姿勢認識工程によれば、機械学習モデル630を用いて得られた特徴マップを用いて、M個の対象物OBのそれぞれに属するN個のキーポイントKPの3次元座標を求めることができる。また、少なくとも1つの対象物OBについてその位置姿勢を決定できる。
・他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の第1の形態によれば、カメラで撮影される対象物の位置姿勢を前記対象物に設定された複数のキーポイントを用いて認識するために使用する機械学習モデルを学習する方法が提供される。この方法は、(a)前記対象物の基本形状データを用いて、前記対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する工程と、(b)前記対象物が設置される環境に、前記複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、前記複数のシーンをそれぞれ前記カメラで撮影して得られる複数のシミュレーション画像を生成する工程と、(c)前記複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、前記複数のシミュレーション画像のそれぞれに対応して生成する工程と、(d)前記複数のシミュレーション画像と複数の前記正解特徴マップとを教師データとして用いて、前記カメラで撮影された入力画像から特徴マップを推定する前記機械学習モデルを学習する工程と、を含む。
この方法によれば、対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成して、それらを配置した複数のシーンに関する複数のシミュレーション画像を生成するとともに、これに対応する正解特徴マップを生成する。従って、対象物の形状や表面特性が変化しても、特徴マップを正しく推定できる機械学習モデルを適切に学習させることができる。
(2)上記方法において、前記複数の学習用対象物モデルの少なくとも1つは、前記基本形状データで表される基本形状を等倍によるサイズ変更でない形状変更方法で変更した形状を有するものとしてもよい。
この方法によれば、種々の形状を有する対象物の位置姿勢を認識するために使用する機械学習モデルに適した教師データを作成できる。
(3)本開示の第2の形態によれば、カメラで撮影される対象物の位置姿勢を前記対象物に設定された複数のキーポイントを用いて認識するために使用する機械学習モデルを学習する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記対象物の基本形状データを用いて、前記対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する処理と、(b)前記対象物が設置される環境に、前記複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、前記複数のシーンをそれぞれ前記カメラで撮影して得られる複数のシミュレーション画像を生成する処理と、(c)前記複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、前記複数のシミュレーション画像のそれぞれに対応して生成する処理と、(d)前記複数のシミュレーション画像と複数の前記正解特徴マップとを教師データとして用いて、前記カメラで撮影された入力画像から特徴マップを推定する前記機械学習モデルを学習する処理と、を前記プロセッサーに実行させる。
(4)本開示の第3の形態によれば、Mを1以上の整数とし、Nを2以上の整数とするとき、対象物に設定された1番目からN番目までのN個のキーポイントを用いて前記対象物の位置姿勢を認識する方法が提供される。この方法は、(a)M個の前記対象物を含むシーンをカメラで撮影することによって、入力画像を生成する工程と、(b)前記入力画像を入力とし、前記N個のキーポイントに関連した特徴量を示す特徴マップを出力とする学習済みの機械学習モデルを用いて、前記入力画像から前記特徴マップを得る工程と、(c)前記特徴マップを用いて、前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を求める工程と、(d)前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を用いて、前記M個の対象物のうちの1つ以上の対象物の位置姿勢を決定する工程と、を含む。前記工程(c)は、(c1)前記M個の対象物との対応関係が未定であるM×N個のキーポイントを求めるとともに、前記M×N個のキーポイントの前記3次元座標を決定する工程と、(c2)前記M×N個のキーポイントを、前記M個の対象物のそれぞれに属する前記N個のキーポイントにグルーピングする工程と、を含む。
この方法によれば、機械学習モデルを用いて得られた特徴マップを用いてM個の対象物のそれぞれに属するN個のキーポイントの3次元座標を求めることができ、また、少なくとも1つの対象物についてその位置姿勢を決定できる。
(5)上記方法において、前記工程(c2)で使用する前記特徴マップは、前記N個のキーポイントのそれぞれを対象キーポイントとしたとき、同一の対象物に属する複数の画素から前記対象キーポイントに向かう方向を示すベクトルを前記複数の画素に割り当てたマップであるN個の方向ベクトルマップを含むものとしてもよい。前記工程(c2)は、i,jを1以上N以下の互いに異なる整数としたとき、(c2-1)M個のi番目のキーポイントから1つのi番目のキーポイントを選択するとともに、M個のj番目のキーポイントから1つのj番目のキーポイントを選択する工程と、(c2-2)j番目の方向ベクトルマップから得られる第1ベクトルであって前記i番目のキーポイントの画素位置から前記j番目のキーポイントに向かう方向を示す第1ベクトルと、前記i番目のキーポイントの前記3次元座標で示される画素位置から前記j番目のキーポイントの前記3次元座標で示される画素位置に向かう方向を示す第2ベクトルと、の方向の一致度を示す第1適合度を算出する工程と、(c2-3)前記工程(c2-1),(c2-2)を繰り返し、前記第1適合度に応じて前記M×N個のキーポイントの前記グルーピングを行う工程と、を含むものとしてもよい。
この方法によれば、方向ベクトルマップを用いてキーポイントのグルーピングを行うことができる。
(6)上記方法において、前記工程(c2-2)は、(2a)i番目の方向ベクトルマップから得られる第3ベクトルであって前記j番目のキーポイントの画素位置から前記i番目のキーポイントに向かう方向を示す第3ベクトルと、前記j番目のキーポイントの前記3次元座標で示される画素位置から前記i番目のキーポイントの前記3次元座標で示される画素位置に向かう方向を示す第4ベクトルと、の方向の一致度を示す第2適合度を算出する工程と、(2b)前記第1適合度と前記第2適合度を統合した統合適合度を算出する工程と、を含み、前記工程(c2-3)は、前記統合適合度に応じて前記グルーピングを実行する、ものとしてもよい。
この方法によれば、統合適合度を用いてキーポイントのグルーピングをより正確に行うことが可能である。
(7)上記方法において、前記工程(c2)で使用する前記特徴マップは、更に、画素同士が同一の対象物に属するものであるか否かを示すフィールドマップを含むものとしてもよい。前記工程(c2-3)は、(3a)前記統合適合度が閾値未満である場合に、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属さないものと推定する工程と、(3b)前記統合適合度が前記閾値以上である場合に、前記フィールドマップを用いて、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属するか否かを推定する工程と、を含むものとしてもよい。
この方法によれば、2つのキーポイントの方向が十分に近接していて統合適合度が高い場合に、フィールドマップを用いて、2つのキーポイントが同一の対象物に属するか否かを推定できる。
(8)上記方法において、前記工程(c2-3)は、更に、(3c)前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属さないものと推定した場合には前記統合適合度を第1の値に調整し、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属するものと推定した場合には前記統合適合度を前記第1の値よりも高い第2の値に調整する工程と、(3d)前記M×N個のキーポイントの中から、1番目のキーポイントからN番目のキーポイントまでのN個のキーポイントで構成される任意の1つのキーポイントセットを選択する工程と、(3e)前記キーポイントセットに含まれる任意の2つのキーポイントでそれぞれ構成されるN(N-1)/2個のキーポイント対に対する前記統合適合度を加算することによって、前記キーポイントセットに対するセット適合度を算出する工程と、(3f)前記工程(3d),(3e)を繰り返すことによって、複数の前記キーポイントセットに対する前記セット適合度を求める工程と、(3g)前記セット適合度の高い順に、前記キーポイントセットに関する前記グルーピングを確定する工程と、を含むものとしてもよい。
この方法によれば、セット適合度を用いてキーポイントセット毎に正確なグルーピングを行うことができる。
(9)上記方法において、前記工程(c2)で使用する前記特徴マップは、画素同士が同一の対象物に属するものであるか否かを示すフィールドマップを含むものとしてもよい。前記工程(c2)は、i,jを1以上N以下の互いに異なる整数としたとき、(c2-1)M個のi番目のキーポイントから1つのi番目のキーポイントを選択するとともに、M個のj番目のキーポイントから1つのj番目のキーポイントを選択する工程と、(c2-2)前記フィールドマップを用いて、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属するか否かを決定する工程と、を含むものとしてもよい。
この方法によれば、フィールドマップを用いて、2つのキーポイントが同一の対象物に属するか否かを決定できる。
(10)上記方法において、前記工程(c1)で使用する前記特徴マップは、前記N個のキーポイントのそれぞれを対象キーポイントとしたとき、前記対象キーポイントが存在する確率を示すマップであるN個のヒートマップと、前記カメラから、前記M個の対象物のそれぞれに属する複数の画素までの距離を示す距離マップと、を含むものとしてもよい。また、前記工程(c1)は、(c1-1)nを1以上N以下の整数とするとき、n番目のヒートマップを用いてn番目のキーポイントの2次元座標をM個求める工程と、(c1-2)前記距離マップと前記M個の前記n番目のキーポイントの前記2次元座標から、前記M個の前記n番目のキーポイントの3次元座標を決定する工程と、(c1-3)前記工程(c1-1),(c1-2)を繰り返すことによって、前記M×N個のキーポイントの前記3次元座標を決定する工程と、を含むものとしてもよい。
この方法によれば、機械学習モデルを用いて得られた特徴マップを用いてM×N個のキーポイントの3次元座標を求めることができる。
(11)本開示の第4の形態によれば、Mを1以上の整数とし、Nを2以上の整数とするとき、対象物に設定された1番目からN番目までのN個のキーポイントを用いて前記対象物の位置姿勢を認識する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)M個の前記対象物を含むシーンをカメラで撮影することによって、入力画像を生成する処理と、(b)前記入力画像を入力とし、前記N個のキーポイントに関連した特徴量を示す特徴マップを出力とする学習済みの機械学習モデルを用いて、前記入力画像から前記特徴マップを得る処理と、(c)前記特徴マップを用いて、前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を求める処理と、(d)前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を用いて、前記M個の対象物のうちの1つ以上の対象物の位置姿勢を決定する処理と、を前記プロセッサーに実行させる。前記処理(c)は、(c1)前記M個の対象物との対応関係が未定であるM×N個のキーポイントを求めるとともに、前記M×N個のキーポイントの前記3次元座標を決定する処理と、(c2)前記M×N個のキーポイントを、前記M個の対象物のそれぞれに属する前記N個のキーポイントにグルーピングする処理と、を含む。
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット制御装置とを備えたロボットシステム、ロボット制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
100…ロボット、110…基台、120…ロボットアーム、122…アームエンド、150…ハンド、200…制御装置、300…情報処理装置、310…プロセッサー、320…メモリー、330…インターフェイス回路、340…入力デバイス、350…表示デバイス、400…カメラ、410…第1カメラ、420…第2カメラ、430…照明部、500…架台、510…第1トレイ、520…第2トレイ、610…モデル学習部、612…教師データ作成部、614…学習実行部、620…位置姿勢認識部、622…キーポイント推定部、624…位置姿勢決定部、630…機械学習モデル

Claims (11)

  1. カメラで撮影される対象物の位置姿勢を前記対象物に設定された複数のキーポイントを用いて認識するために使用する機械学習モデルを学習する方法であって、
    (a)前記対象物の基本形状データを用いて、前記対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する工程と、
    (b)前記対象物が設置される環境に、前記複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、前記複数のシーンをそれぞれ前記カメラで撮影して得られる複数のシミュレーション画像を生成する工程と、
    (c)前記複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、前記複数のシミュレーション画像のそれぞれに対応して生成する工程と、
    (d)前記複数のシミュレーション画像と複数の前記正解特徴マップとを教師データとして用いて、前記カメラで撮影された入力画像から特徴マップを推定する前記機械学習モデルを学習する工程と、
    を含む、方法。
  2. 請求項1に記載の方法であって、
    前記複数の学習用対象物モデルの少なくとも1つは、前記基本形状データで表される基本形状を等倍によるサイズ変更でない形状変更方法で変更した形状を有する、
    方法。
  3. カメラで撮影される対象物の位置姿勢を前記対象物に設定された複数のキーポイントを用いて認識するために使用する機械学習モデルを学習する処理をプロセッサーに実行させるコンピュータープログラムであって、
    (a)前記対象物の基本形状データを用いて、前記対象物の形状と表面特性のうちの少なくとも一部を変化させた複数の学習用対象物モデルを生成する処理と、
    (b)前記対象物が設置される環境に、前記複数の学習用対象物モデルの一部又は全部を配置した複数のシーンをシミュレーションで生成するとともに、前記複数のシーンをそれぞれ前記カメラで撮影して得られる複数のシミュレーション画像を生成する処理と、
    (c)前記複数のキーポイントに関連した特徴量の正解値を示す正解特徴マップを、前記複数のシミュレーション画像のそれぞれに対応して生成する処理と、
    (d)前記複数のシミュレーション画像と複数の前記正解特徴マップとを教師データとして用いて、前記カメラで撮影された入力画像から特徴マップを推定する前記機械学習モデルを学習する処理と、
    を前記プロセッサーに実行させる、コンピュータープログラム。
  4. Mを1以上の整数とし、Nを2以上の整数とするとき、対象物に設定された1番目からN番目までのN個のキーポイントを用いて前記対象物の位置姿勢を認識する方法であって、
    (a)M個の前記対象物を含むシーンをカメラで撮影することによって、入力画像を生成する工程と、
    (b)前記入力画像を入力とし、前記N個のキーポイントに関連した特徴量を示す特徴マップを出力とする学習済みの機械学習モデルを用いて、前記入力画像から前記特徴マップを得る工程と、
    (c)前記特徴マップを用いて、前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を求める工程と、
    (d)前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を用いて、前記M個の対象物のうちの1つ以上の対象物の位置姿勢を決定する工程と、
    を含み、
    前記工程(c)は、
    (c1)前記M個の対象物との対応関係が未定であるM×N個のキーポイントを求めるとともに、前記M×N個のキーポイントの前記3次元座標を決定する工程と、
    (c2)前記M×N個のキーポイントを、前記M個の対象物のそれぞれに属する前記N個のキーポイントにグルーピングする工程と、
    を含む、方法。
  5. 請求項4に記載の方法であって、
    前記工程(c2)で使用する前記特徴マップは、前記N個のキーポイントのそれぞれを対象キーポイントとしたとき、同一の対象物に属する複数の画素から前記対象キーポイントに向かう方向を示すベクトルを前記複数の画素に割り当てたマップであるN個の方向ベクトルマップを含み、
    前記工程(c2)は、i,jを1以上N以下の互いに異なる整数としたとき、
    (c2-1)M個のi番目のキーポイントから1つのi番目のキーポイントを選択するとともに、M個のj番目のキーポイントから1つのj番目のキーポイントを選択する工程と、
    (c2-2)j番目の方向ベクトルマップから得られる第1ベクトルであって前記i番目のキーポイントの画素位置から前記j番目のキーポイントに向かう方向を示す第1ベクトルと、前記i番目のキーポイントの前記3次元座標で示される画素位置から前記j番目のキーポイントの前記3次元座標で示される画素位置に向かう方向を示す第2ベクトルと、の方向の一致度を示す第1適合度を算出する工程と、
    (c2-3)前記工程(c2-1),(c2-2)を繰り返し、前記第1適合度に応じて前記M×N個のキーポイントの前記グルーピングを行う工程と、
    を含む、方法。
  6. 請求項5に記載の方法であって、
    前記工程(c2-2)は、
    (2a)i番目の方向ベクトルマップから得られる第3ベクトルであって前記j番目のキーポイントの画素位置から前記i番目のキーポイントに向かう方向を示す第3ベクトルと、前記j番目のキーポイントの前記3次元座標で示される画素位置から前記i番目のキーポイントの前記3次元座標で示される画素位置に向かう方向を示す第4ベクトルと、の方向の一致度を示す第2適合度を算出する工程と、
    (2b)前記第1適合度と前記第2適合度を統合した統合適合度を算出する工程と、
    を含み、
    前記工程(c2-3)は、前記統合適合度に応じて前記グルーピングを実行する、
    方法。
  7. 請求項6に記載の方法であって、
    前記工程(c2)で使用する前記特徴マップは、更に、
    画素同士が同一の対象物に属するものであるか否かを示すフィールドマップを含み、
    前記工程(c2-3)は、
    (3a)前記統合適合度が閾値未満である場合に、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属さないものと推定する工程と、
    (3b)前記統合適合度が前記閾値以上である場合に、前記フィールドマップを用いて、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属するか否かを推定する工程と、
    を含む、方法。
  8. 請求項7に記載の方法であって、
    前記工程(c2-3)は、更に、
    (3c)前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属さないものと推定した場合には前記統合適合度を第1の値に調整し、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属するものと推定した場合には前記統合適合度を前記第1の値よりも高い第2の値に調整する工程と、
    (3d)前記M×N個のキーポイントの中から、1番目のキーポイントからN番目のキーポイントまでのN個のキーポイントで構成される任意の1つのキーポイントセットを選択する工程と、
    (3e)前記キーポイントセットに含まれる任意の2つのキーポイントでそれぞれ構成されるN(N-1)/2個のキーポイント対に対する前記統合適合度を加算することによって、前記キーポイントセットに対するセット適合度を算出する工程と、
    (3f)前記工程(3d),(3e)を繰り返すことによって、複数の前記キーポイントセットに対する前記セット適合度を求める工程と、
    (3g)前記セット適合度の高い順に、前記キーポイントセットに関する前記グルーピングを確定する工程と、
    を含む、方法。
  9. 請求項4に記載の方法であって、
    前記工程(c2)で使用する前記特徴マップは、
    画素同士が同一の対象物に属するものであるか否かを示すフィールドマップを含み、
    前記工程(c2)は、i,jを1以上N以下の互いに異なる整数としたとき、
    (c2-1)M個のi番目のキーポイントから1つのi番目のキーポイントを選択するとともに、M個のj番目のキーポイントから1つのj番目のキーポイントを選択する工程と、
    (c2-2)前記フィールドマップを用いて、前記i番目のキーポイントと前記j番目のキーポイントが同一の対象物に属するか否かを決定する工程と、
    を含む、方法。
  10. 請求項4に記載の方法であって、
    前記工程(c1)で使用する前記特徴マップは、
    前記N個のキーポイントのそれぞれを対象キーポイントとしたとき、前記対象キーポイントが存在する確率を示すマップであるN個のヒートマップと、
    前記カメラから、前記M個の対象物のそれぞれに属する複数の画素までの距離を示す距離マップと、
    を含み、
    前記工程(c1)は、
    (c1-1)nを1以上N以下の整数とするとき、n番目のヒートマップを用いてn番目のキーポイントの2次元座標をM個求める工程と、
    (c1-2)前記距離マップと前記M個の前記n番目のキーポイントの前記2次元座標から、前記M個の前記n番目のキーポイントの3次元座標を決定する工程と、
    (c1-3)前記工程(c1-1),(c1-2)を繰り返すことによって、前記M×N個のキーポイントの前記3次元座標を決定する工程と、
    を含む、方法。
  11. Mを1以上の整数とし、Nを2以上の整数とするとき、対象物に設定された1番目からN番目までのN個のキーポイントを用いて前記対象物の位置姿勢を認識する処理をプロセッサーに実行させるコンピュータープログラムであって、
    (a)M個の前記対象物を含むシーンをカメラで撮影することによって、入力画像を生成する処理と、
    (b)前記入力画像を入力とし、前記N個のキーポイントに関連した特徴量を示す特徴マップを出力とする学習済みの機械学習モデルを用いて、前記入力画像から前記特徴マップを得る処理と、
    (c)前記特徴マップを用いて、前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を求める処理と、
    (d)前記M個の対象物のそれぞれに属する前記N個のキーポイントの3次元座標を用いて、前記M個の対象物のうちの1つ以上の対象物の位置姿勢を決定する処理と、
    を前記プロセッサーに実行させ、
    前記処理(c)は、
    (c1)前記M個の対象物との対応関係が未定であるM×N個のキーポイントを求めるとともに、前記M×N個のキーポイントの前記3次元座標を決定する処理と、
    (c2)前記M×N個のキーポイントを、前記M個の対象物のそれぞれに属する前記N個のキーポイントにグルーピングする処理と、
    を含む、コンピュータープログラム。
JP2022135489A 2022-08-29 2022-08-29 対象物の位置姿勢を認識する方法、及び、コンピュータープログラム Pending JP2024032055A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022135489A JP2024032055A (ja) 2022-08-29 2022-08-29 対象物の位置姿勢を認識する方法、及び、コンピュータープログラム
US18/456,761 US20240070896A1 (en) 2022-08-29 2023-08-28 Method Of Recognizing Position And Attitude Of Object, And Non-Transitory Computer-Readable Storage Medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022135489A JP2024032055A (ja) 2022-08-29 2022-08-29 対象物の位置姿勢を認識する方法、及び、コンピュータープログラム

Publications (1)

Publication Number Publication Date
JP2024032055A true JP2024032055A (ja) 2024-03-12

Family

ID=89996785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022135489A Pending JP2024032055A (ja) 2022-08-29 2022-08-29 対象物の位置姿勢を認識する方法、及び、コンピュータープログラム

Country Status (2)

Country Link
US (1) US20240070896A1 (ja)
JP (1) JP2024032055A (ja)

Also Published As

Publication number Publication date
US20240070896A1 (en) 2024-02-29

Similar Documents

Publication Publication Date Title
JP6546618B2 (ja) 学習装置、学習方法、学習モデル、検出装置及び把持システム
CN110842914B (zh) 基于差分进化算法的手眼标定参数辨识方法、系统及介质
CN109344882B (zh) 基于卷积神经网络的机器人控制目标位姿识别方法
JP4556873B2 (ja) 画像照合システム及び画像照合方法
CN112297013B (zh) 一种基于数字孪生和深度神经网络的机器人智能抓取方法
CN110634161B (zh) 一种基于点云数据的工件位姿快速高精度估算方法及装置
JP6011102B2 (ja) 物体姿勢推定方法
CN111775152A (zh) 基于三维测量引导机械臂抓取散乱堆叠工件的方法及系统
CN107813310A (zh) 一种基于双目视觉多手势机器人控制方法
JP2015100866A (ja) ロボットシミュレーション装置、プログラム、記録媒体及び方法
JP2021163503A (ja) 2次元カメラによる3次元の姿勢推定
CN111079565A (zh) 视图二维姿态模板的构建方法及识别方法、定位抓取系统
WO2022021156A1 (zh) 用于机器人抓取三维物体的方法和装置
CN113393524B (zh) 一种结合深度学习和轮廓点云重建的目标位姿估计方法
JP5762099B2 (ja) 姿勢認識装置、作業ロボット、姿勢認識方法、プログラム及び記録媒体
CN112101145B (zh) 基于svm分类器的移动机器人位姿估计方法
JP7051751B2 (ja) 学習装置、学習方法、学習モデル、検出装置及び把持システム
CN113496524A (zh) 通过深度学习和矢量场估计的特征检测
CN111198563B (zh) 一种用于足式机器人动态运动的地形识别方法及系统
JP2024032055A (ja) 対象物の位置姿勢を認識する方法、及び、コンピュータープログラム
CN113436293B (zh) 一种基于条件生成式对抗网络的智能抓取图像生成方法
Marlier et al. Simulation-based bayesian inference for multi-fingered robotic grasping
JP2021061014A (ja) 学習装置、学習方法、学習モデル、検出装置及び把持システム
WO2023042306A1 (ja) 画像処理装置、部品把持システム、画像処理方法および部品把持方法
Zabbah et al. Visual tracking using learning histogram of oriented gradients by svm on mobile robot

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230622