(57)【要約】【課題】投影ドットパターンを複数回投影することなく計測できる三次元計測技術を提供する。【解決手段】三次元計測方法は、投影ドットパターンを物体に投影した状態で物体をステレオカメラで撮影して基準画像と比較画像を取得する画像取得工程と、基準画像と比較画像の視差を求める視差算出工程と、を備える。視差算出工程は、基準画像内に第１画素ブロックを設定し、分類器を用いて第１画素ブロックに対する第1スコアを求め、比較画像内に第１画素ブロックに対応づけられたサイズの複数の第２画素ブロックを設定し、分類器を用いて複数の第２画素ブロックに対する第２スコアを求め、これらのスコアを用いて、複数の第２画素ブロックの中から第１画素ブロックとの一致度が最も高い特定第２画素ブロックを選択し、第１画素ブロックの位置と特定第２画素ブロックの位置を用いて視差を決定する。【選択図】図１０
2020071034.tif 000002
【特許請求の範囲】
【請求項１】
物体の三次元計測方法であって、
投影ドットパターンを前記物体に投影した状態で前記物体をステレオカメラで撮影することによって、基準画像と比較画像を取得する画像取得工程と、
前記基準画像と前記比較画像の視差を求める視差算出工程と、
を備え、前記視差算出工程は、
（ａ）前記基準画像内に、処理対象となる予め定められたサイズの第１画素ブロックを設定する工程と、
（ｂ）任意の画素ブロックについて、予め設定された互いに異なる複数の参照ドットパターンとの一致度をスコアとして出力する分類器を用いて、前記第１画素ブロックに対する前記スコアを第１スコアとして求める工程と、
（ｃ）前記比較画像内に、前記第１画素ブロックに対応づけられた前記サイズの複数の第２画素ブロックを設定する工程と、
（ｄ）前記分類器を用いて、前記複数の第２画素ブロックに対する前記スコアを第２スコアとして求める工程と、
（ｅ）前記第１スコアと、前記第２スコアとを用いて、前記複数の第２画素ブロックの中から前記第１画素ブロックとの一致度が最も高い特定第２画素ブロックを選択する工程と、
（ｆ）前記第１画素ブロックの位置と前記特定第２画素ブロックの位置を用いて前記視差を決定する工程と、
を含む、三次元計測方法。
【請求項２】
請求項１に記載の三次元計測方法であって、
Ｎ及びＭをそれぞれ２以上の整数としたとき、前記予め定められたサイズはＮ×Ｍ画素であり、
前記分類器は、前記サイズの画素ブロックを入力として、２N×M個の前記サイズの前記参照ドットパターンとの一致度を２N×M個のスコアとして出力する、三次元計測方法。
【請求項３】
請求項１又は２に記載の三次元計測方法であって、
前記視差算出工程は、
前記第１画素ブロックに対する前記第１スコアを用いて、前記複数の参照ドットパターンの中から前記第１画素ブロックとの一致度が最も高い特定参照ドットパターンを選択する第１選択工程と、
前記複数の第２画素ブロックに対する前記第２スコアを用いて、前記複数の第２画素ブロックの中から前記特定参照ドットパターンとの一致度が最も高い第２画素ブロックを前記特定第２画素ブロックとして選択する第２選択工程と、
を含む、三次元計測方法。
【請求項４】
請求項３に記載の三次元計測方法であって、
前記第１選択工程において、前記複数の参照ドットパターンの中で前記スコアの差が予め定めた許容閾値以下である２つ以上の参照ドットパターンが存在する場合には、
過去に前記第１選択工程において選択された前記特定参照ドットパターンの履歴を用いて前記投影ドットパターンを参照して、現在処理対象となっている前記第１画素ブロックとの一致度が最も高くなる推定参照ドットパターンを推定し、
前記２つ以上の参照ドットパターンのうちで前記推定参照ドットパターンとの一致度が最も高い参照ドットパターンを前記特定参照ドットパターンとして選択する、三次元計測方法。
【請求項５】
請求項１〜４のいずれか一項に記載の三次元計測方法であって、
前記分類器は、畳み込みニューラルネットワークである、三次元計測方法。
【請求項６】
物体の三次元計測装置であって、
投影ドットパターンを前記物体に投影した状態で前記物体をステレオカメラで撮影することによって、基準画像と比較画像を取得する画像取得部と、
前記基準画像と前記比較画像の視差を求める視差算出部と、
を備え、
前記視差算出部は、任意の画素ブロックについて、予め設定された複数の参照ドットパターンとの一致度をスコアとして出力する分類器を有し、
前記視差算出部は、
（ａ）前記基準画像内に、処理対象となる予め定められたサイズの第１画素ブロックを設定し、
（ｂ）前記分類器を用いて、前記第１画素ブロックに対する前記スコアを第１スコアとして求め、
（ｃ）前記比較画像内に、前記第１画素ブロックに対応づけられた前記予め定められたサイズの複数の第２画素ブロックを設定し、
（ｄ）前記分類器を用いて、前記複数の第２画素ブロックに対する前記スコアを第２スコアとして求め、
（ｅ）前記第１スコアと、前記第２スコアとを用いて、前記複数の第２画素ブロックの中から前記第１画素ブロックとの一致度が最も高い特定第２画素ブロックを選択し、
（ｆ）前記第１画素ブロックの位置と前記特定第２画素ブロックの位置を用いて前記視差を決定する、
三次元計測装置。
【請求項７】
ロボットと、
前記ロボットに接続された請求項６に記載の三次元計測装置と、
を備えるロボットシステム。
【請求項８】
請求項７に記載のロボットシステムであって、
Ｎ及びＭをそれぞれ２以上の整数としたとき、前記予め定められたサイズはＮ×Ｍ画素であり、
前記分類器は、前記サイズの画素ブロックを入力として、前記Ｎ×Ｍ画素のサイズの２N×M個の参照ドットパターンとの一致度を２N×M個のスコアとして出力する、ロボットシステム。
【請求項９】
請求項８に記載のロボットシステムであって、
前記画像取得部は、前記分類器の学習のために、前記物体を前記ロボットに把持させて前記物体の角度を変え、前記２N×M個の参照ドットパターンを前記物体にそれぞれ投影した状態で前記物体を前記ステレオカメラで撮影することによって、学習用の基準画像及び比較画像を取得し、
前記分類器は、前記学習用の基準画像及び比較画像を用いて学習を実行する、ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ステレオカメラを用いた物体の三次元計測技術に関するものである。
【背景技術】
【０００２】
ロボットなどの各種の装置において、三次元物体を認識する物体認識技術が利用される。物体認識技術の一つとして、ステレオカメラで撮影した画像を用いて物体の視差や深度を求める三次元計測技術が利用されている。三次元計測技術では、いわゆるステレオブロックマッチングを利用して、視差や深度を算出することが多い。「深度」とは、カメラからの距離を意味している。一般に、視差と深度は互いに換算可能である。視差を画素値とする画像は、視差画像又は距離画像と呼ばれている。
【０００３】
特許文献１には、投影ドットパターンを物体に投光して物体表面にテクスチャを発生させ、三次元計測精度を向上させるステレオ法が記載されている。具体的には、三次元形状計測用の投影ドットパターンをパターンマッチング等により評価してパターンを決定することで画像同士を対応付け、距離画像生成処理におけるミスマッチングを解消し、高精度な距離画像を生成可能としている。また、生成した投影ドットパターンを物体に投影した状態で撮影した撮影画像に基づいて、パターンマッチング等を行なって撮影画像を評価し、適性でないと判定された場合には、新たな投影ドットパターンを生成して投影するフィードバック処理により、距離画像の生成処理においてミスマッチングの発生を抑制し、高精度な距離画像の生成を可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１４７１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、投影ドットパターンを物体に投影した状態で撮像した画像に基づいて物体の三次元形状を計測する際に、撮像した画像が適性でないと判定される度に新たな投影ドットパターンを生成して再度投影する必要があるため、計測完了までのサイクルタイムが長くなるという問題があった。
【課題を解決するための手段】
【０００６】
本開示の一形態によれば、物体の三次元計測方法が提供される。この三次元計測方法は、投影ドットパターンを前記物体に投影した状態で前記物体をステレオカメラで撮影することによって、基準画像と比較画像を取得する画像取得工程と、前記基準画像と前記比較画像の視差を求める視差算出工程と、を備える。前記視差算出工程は、（ａ）前記基準画像内に、処理対象となる予め定められたサイズの第１画素ブロックを設定する工程と、（ｂ）任意の画素ブロックについて、予め設定された互いに異なる複数の参照ドットパターンとの一致度をスコアとして出力する分類器を用いて、前記第１画素ブロックに対する前記スコアを第１スコアとして求める工程と、（ｃ）前記比較画像内に、前記第１画素ブロックに対応づけられた前記サイズの複数の第２画素ブロックを設定する工程と、（ｄ）前記分類器を用いて、前記複数の第２画素ブロックに対する前記スコアを第２スコアとして求める工程と、（ｅ）前記第１スコアと、前記第２スコアとを用いて、前記複数の第２画素ブロックの中から前記第１画素ブロックとの一致度が最も高い特定第２画素ブロックを選択する工程と、（ｆ）前記第１画素ブロックの位置と前記特定第２画素ブロックの位置を用いて前記視差を決定する工程と、を含む。
【図面の簡単な説明】
【０００７】
【図１】ロボットシステムの概念図。
【図２】複数のプロセッサーを有する制御装置の一例を示す概念図。
【図３】複数のプロセッサーを有する制御装置の他の例を示す概念図。
【図４】制御装置の機能を示すブロック図。
【図５】パーツフィーダーに収容された複数の部品を示す平面図。
【図６】部品の斜視図。
【図７】物体認識処理の手順を示すフローチャート。
【図８】物体認識処理の説明図。
【図９】視差計算の手順を示すフローチャート。
【図１０】基準画像と比較画像の画素ブロックの対応関係の説明図。
【図１１】分類器が使用する参照ドットパターンの説明図。
【図１２】第１画素ブロックに対するスコアの説明図。
【図１３】投影ドットパターンから推定される特定参照ドットパターンの説明図。
【図１４】複数の第２画素ブロックに対するスコアの説明図。
【図１５】サブピクセル推定の説明図。
【発明を実施するための形態】
【０００８】
図１は、一実施形態としてのロボットシステムの概念図である。このロボットシステムは、架台７００に設置されており、ロボット１００と、ロボット１００に接続された制御装置２００と、ティーチングペンダント３００と、パーツフィーダー４００と、ホッパー５００と、パーツトレイ６００と、投影装置８１０と、ステレオカメラ８２０とを備えている。ロボット１００は、架台７００の天板７１０の下に固定されている。パーツフィーダー４００と、ホッパー５００と、パーツトレイ６００は、架台７００のテーブル部７２０に載置されている。ロボット１００は、ティーチングプレイバック方式のロボットである。ロボット１００を用いた作業は、予め作成された教示データに従って実行される。このロボットシステムには、直交する３つの座標軸Ｘ，Ｙ，Ｚで規定されるシステム座標系Σｓが設定されている。図１の例では、Ｘ軸とＹ軸は水平方向であり、Ｚ軸は鉛直上方向である。教示データに含まれる教示点やエンドエフェクターの姿勢は、このシステム座標系Σｓの座標値と各軸回りの角度で表現される。
【０００９】
ロボット１００は、基台１２０と、アーム１３０とを備えている。アーム１３０は、４つの関節Ｊ１〜Ｊ４で順次接続されている。これらの関節Ｊ１〜Ｊ４のうち、３つの関節Ｊ１，Ｊ２，Ｊ４はねじり関節であり、１つの関節Ｊ３は並進関節である。本実施形態では４軸ロボットを例示しているが、１個以上の関節を有する任意のアーム機構を有するロボットを用いることが可能である。
【００１０】
アーム１３０の先端部に設けられたアームフランジ１３２には、エンドエフェクター１６０が装着されている。図１の例では、エンドエフェクター１６０は、把持機構１６４を用いてパーツを把持して拾い上げるグリッパーである。但し、エンドエフェクター１６０としては、吸着ピックアップ機構などの他の機構を取り付けることも可能である。
【００１１】
パーツフィーダー４００は、エンドエフェクター１６０が把持するパーツを収容する収容装置である。パーツフィーダー４００は、パーツを振動させてパーツ同士を分散させる振動機構を有するように構成されていてもよい。ホッパー５００は、パーツフィーダー４００にパーツを補給するパーツ補給装置である。パーツトレイ６００は、パーツを個別に収容するための多数の凹部を有するトレイである。本実施形態において、ロボット１００は、パーツフィーダー４００の中からパーツを拾い上げて、パーツトレイ６００内の適切な位置に収納する作業を実行する。但し、ロボットシステムは、これ以外の他の作業を行う場合にも適用可能である。
【００１２】
制御装置２００は、プロセッサー２１０と、メインメモリー２２０と、不揮発性メモリー２３０と、表示制御部２４０と、表示部２５０と、Ｉ／Ｏインターフェース２６０とを有している。これらの各部は、バスを介して接続されている。プロセッサー２１０は、例えばマイクロプロセッサー又はプロセッサー回路である。制御装置２００は、Ｉ／Ｏインターフェース２６０を介して、ロボット１００と、ティーチングペンダント３００と、パーツフィーダー４００と、ホッパー５００とに接続される。制御装置２００は、更に、Ｉ／Ｏインターフェース２６０を介して投影装置８１０とステレオカメラ８２０にも接続される。
【００１３】
制御装置２００の構成としては、図１に示した構成以外の種々の構成を採用することが可能である。例えば、プロセッサー２１０とメインメモリー２２０を図１の制御装置２００から削除し、この制御装置２００と通信可能に接続された他の装置にプロセッサー２１０とメインメモリー２２０を設けるようにしてもよい。この場合には、当該他の装置と制御装置２００とを合わせた装置全体が、ロボット１００の制御装置として機能する。他の実施形態では、制御装置２００は、２つ以上のプロセッサー２１０を有していてもよい。更に他の実施形態では、制御装置２００は、互いに通信可能に接続された複数の装置によって実現されていてもよい。これらの各種の実施形態において、制御装置２００は、１つ以上のプロセッサー２１０を備える装置又は装置群として構成される。
【００１４】
図２は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット１００及びその制御装置２００の他に、パーソナルコンピューター１４００，１４１０と、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス１５００とが描かれている。パーソナルコンピューター１４００，１４１０は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス１５００においてもプロセッサーとメモリーを利用可能である。これらの複数のプロセッサーの一部又は全部を利用して、ロボット１００の制御装置を実現することが可能である。
【００１５】
図３は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット１００の制御装置２００が、ロボット１００の中に格納されている点が図２と異なる。この例においても、複数のプロセッサーの一部又は全部を利用して、ロボット１００の制御装置を実現することが可能である。
【００１６】
図４は、制御装置２００の機能を示すブロック図である。制御装置２００のプロセッサー２１０は、不揮発性メモリー２３０に予め記憶された各種のプログラム命令２３１を実行することにより、ロボット制御部２１１と、パーツフィーダー制御部２１２と、ホッパー制御部２１３と、三次元計測部２７０の機能をそれぞれ実現する。
【００１７】
三次元計測部２７０は、ステレオカメラ８２０を用いて基準画像と比較画像を取得する画像取得部２７１と、基準画像と比較画像を用いて視差を求める視差算出部２７２と、視差を用いて点群を生成する点群生成部２７３と、画像内の物体の輪郭を抽出する輪郭抽出部２７４と、生成された点群と輪郭を用いて物体を認識する物体認識実行部２７５とを含んでいる。視差算出部２７２は、後述する分類器２７６を用いて視差を決定する。分類器２７６は、視差算出部２７２に含まれていても良い。これらの各部の機能については後述する。三次元計測部２７０を含む制御装置２００は、「三次元計測装置」に相当する。
【００１８】
不揮発性メモリー２３０は、プログラム命令２３１と教示データ２３２の他に、画像の撮影に使用する投影ドットパターン２３３と、物体認識に使用する物体の３次元モデルデータ２３４とを記憶する。
【００１９】
図５は、パーツフィーダー４００に複数の部品ＰＰが収容された状態を示す平面図である。三次元計測部２７０は、複数の同一の部品ＰＰをステレオカメラ８２０で撮像し、その画像を解析して部品ＰＰを認識する物体認識処理を実行する。認識された部品ＰＰはエンドエフェクター１６０で把持することが可能である。以下では、部品ＰＰを「物体ＰＰ」とも呼ぶ。なお、物体認識処理を、ロボット以外の用途に使用してもよい。
【００２０】
投影装置８１０は、ステレオカメラ８２０を用いて部品ＰＰを撮影する際に、特定の投影ドットパターンを照射するために設けられている。投影ドットパターンの例については後述する。
【００２１】
本実施形態の物体認識処理には、画像から得られる点群と輪郭とを使用する。「点群」とは、画像の画素の位置を、長さの単位の３次元座標値Ｘ[mm]，Ｙ[mm]，Ｚ[mm]で表現した点データの集合である。３次元座標としては、カメラ座標系や、システム座標系Σｓ、ロボット座標系などの任意の座標系を使用できる。
【００２２】
図６は、部品ＰＰの斜視図である。この部品ＰＰは、平面である下面ＬＦと、上面ＵＦとを有する。上面ＵＦは、下面ＬＦに平行な水平面ＵＦｆと、水平面ＵＦｆから傾いた斜面ＵＦｓとを有する。このような斜面ＵＦｓについては、ステレオカメラ８２０で撮影された画像において、投影ドットパターンＲＰの形状が歪んでしまう可能性がある。この結果、従来のステレオブロックマッチングによって左右の画像同士の対応点を精度良く検出することが困難となり、視差を精度良く求められない場合がある。本実施形態の三次元計測方法は、物体に斜面があるか否かに拘わらず、ステレオ画像から物体の視差を求めることが可能である。但し、本実施形態の三次元計測方法は、斜面のある物体についても視差を精度良く求めることができる点で顕著な効果がある。
【００２３】
図７は、三次元計測方法を利用した物体認識処理のフローチャートであり、図８はその説明図である。図７のステップＳ１１０〜Ｓ１２０は画像取得部２７１によって実行され、ステップＳ２００は視差算出部２７２によって実行され、ステップＳ３００は点群生成部２７３によって実行され、ステップＳ４００は輪郭抽出部２７４によって実行され、ステップＳ５００は物体認識実行部２７５によって実行される。
【００２４】
ステップＳ１１０では、投影ドットパターンＲＰを物体に投影し、ステップＳ１２０でステレオカメラ８２０を用いて物体を撮影することによって、左画像ＬＭ１と右画像ＲＭ１を取得する。図８に示すように、本実施形態では、投影ドットパターンＲＰとして、２値のランダムドットパターンを使用する。ランダムドットパターンを投影すると、部品ＰＰの表面にテクスチャを付与することができるので、部品ＰＰの視差を高精度で求められるという利点がある。図８では図示の便宜上、投影ドットパターンＲＰの画素を比較的大きく描いているが、実際には部品ＰＰのサイズに比べて十分に小さい画素で投影ドットパターンＲＰが形成される。投影ドットパターンＲＰとしては、ランダムドットパターンに限らず、他の投影ドットパターンを使用してもよい。投影ドットパターンＲＰは、後述する分類器２７６による分類を精度良く行うために、２値のドットパターンとすることが好ましい。
【００２５】
ステップＳ２００では、視差算出部２７２が、左画像ＬＭ１と右画像ＲＭ１を用いて視差を計算し、図８に示すように視差画像ＤＭを求める。以下の処理では、左画像ＬＭ１を「基準画像ＬＭ１」とも呼び、右画像ＲＭ１を「比較画像ＲＭ１」とも呼ぶ。但し、基準画像と比較画像を逆にしてもよい。ステップＳ２００における視差計算の詳細については後述する。
【００２６】
視差画像ＤＭは、ステレオカメラ８２０の左右の視差を画素値とした画像である。視差Ｄと、ステレオカメラ８２０からの距離Ｚとの関係は、次式で与えられる。
【数１】
2020071034.tif 000003
ここで、ｆはカメラの焦点距離、Ｔはステレオカメラ８２０を構成する２つのカメラの光軸間の距離である。
【００２７】
なお、視差計算の前に、左画像ＬＭ１と右画像ＲＬ１に前処理を行うことが好ましい。前処理としては、例えば、レンズによる画像の歪みを補正する歪み補正と、左画像ＬＭ１と右画像ＲＭ１の向きを平行化する平行化処理とを含む幾何補正が行われる。
【００２８】
ステップＳ３００では、点群生成部２７３が、視差画像ＤＭから点群ＰＧを生成する。このとき、視差画像ＤＭの視差Ｄから上記（１）式に従って算出した距離Ｚを使用する。前述したように、「点群」は、画像の画素の位置を３次元座標値Ｘ[mm]，Ｙ[mm]，Ｚ[mm]で表現した点データの集合である。なお、視差画像ＤＭの視差Ｄ又は距離Ｚを用いた点群生成の処理は周知なので、ここではその説明は省略する。
【００２９】
ステップＳ４００では、輪郭抽出部２７４が、基準画像ＬＭ１に対して輪郭抽出処理を実行することによって、図８に示すように輪郭画像ＰＭを生成する。この輪郭画像ＰＭは、部品ＰＰの輪郭を含む画像である。ステップＳ５００では、物体認識実行部２７５が、点群ＰＧと輪郭画像ＰＭの輪郭とを用いて、物体としての部品ＰＰの３次元形状を認識する。
【００３０】
点群と輪郭を用いた物体の３次元形状の認識方法としては、例えば、本願の出願人により開示された特開２０１７−１８２２７４号公報に記載された方法を利用可能である。或いは、"Model Globally, Match Locally: Efficient and Robust 3D Object Recognition", Bertram Drost他, http://campar.in.tum.de/pub/drost2010CVPR/drost2010CVPR.pdf, に記載された方法や、「ベクトルペアマッチングによる高信頼な３次元位置姿勢認識」,秋月秀一, http://isl.sist.chukyo-u.ac.jp/Archives/vpm.pdf, に記載された方法などを利用してもよい。これらの方法は、点群と、輪郭と、物体の３次元モデルデータを使用した物体認識方法である。但し、３次元モデルデータを使用せずに、点群と輪郭から物体の３次元形状を認識するようにしてもよい。
【００３１】
物体としての部品ＰＰの認識結果は、三次元計測部２７０からロボット制御部２１１に与えられる。この結果、ロボット制御部２１１がこの認識結果を利用して部品ＰＰの把持動作を実行することが可能となる。
【００３２】
図９は、視差計算の手順を示すフローチャートである。ステップＳ２１０〜Ｓ２６０の処理では、基準画像ＬＭ１内に第１画素ブロックを設定し、分類器２７６を用いて第１画素ブロックのスコアを求め、また、比較画像ＲＭ１内に複数の第２画素ブロックを設定し、分類器２７６を用いて第２画素ブロックのスコアを求める。ここで求めるスコアは、複数の第２画素ブロックのすべてに対するスコアをスコア群として保持してもよいし、複数の第２ブロックの一部に対するスコアを部分スコア群として保持してもよい。
【００３３】
図１０は、図９のステップＳ２１０〜Ｓ２６０において基準画像ＬＭ１に設定される第１画素ブロックＰＢ１と、比較画像ＲＭ１に設定される複数の第２画素ブロックＰＢ２を示す説明図である。図１０の上方には、部品ＰＰの斜面ＵＦｓに投影ドットパターンＲＰが投影された状態で左カメラ８２０Ｌと右カメラ８２０Ｒによって撮像が行われる様子を示している。図１０の下方には、撮影で得られた基準画像ＬＭ１と比較画像ＲＭ１の一部が描かれている。基準画像ＬＭ１と比較画像ＲＭ１は、前処理によって平行化されているものと仮定する。従って、基準画像ＬＭ１と比較画像ＲＭ１の左右方向は、図１０の上方に示したエピポーラ線ＥＰＬに平行である。以下の説明では、基準画像ＬＭ１と比較画像ＲＭ１の左右方向をｘ方向と呼ぶ。第１画素ブロックＰＢ１と第２画素ブロックＰＢ２は、同一のエピポーラ線上の位置に設定される。
【００３４】
ステップＳ２１０では、予め定められたサイズを有する第１画素ブロックＰＢ１が基準画像ＬＭ１の任意の位置に設定される。実際には、第１画素ブロックＰＢ１は、図９のフローにおいて、基準画像ＬＭ１の左上端から右下端まで１画素ずつ順にずれた位置に設定される。図１０では、第１画素ブロックＰＢ１のｘ方向の位置がＬ_x1である場合が例示されている。第１画素ブロックＰＢ１のサイズは、一般に、Ｎ×Ｍ画素の大きさに設定可能である。ここで、ＮとＭはそれぞれ２以上の整数である。以下では、Ｎ＝Ｍ＝３の場合を説明する。
【００３５】
ステップＳ２２０では、視差算出部２７２が分類器２７６を用いて第１画素ブロックＰＢ１のスコアを求める。分類器２７６は、予め定められたサイズを有する任意の画素ブロックについて、予め設定された互いに異なる複数の参照ドットパターンとの一致度をスコアとして出力する機能を有する。
【００３６】
図１１は、分類器２７６が使用する複数の参照ドットパターンＤＰの一例を示す説明図である。複数の参照ドットパターンＤＰは、第１画素ブロックＰＢ１と同じ３×３画素のサイズを有し、互いに異なる２値のドットパターンである。従って、参照ドットパターンＤＰの個数は２3×3個である。参照ドットパターンＤＰのサイズがＮ×Ｍ画素の大きさである場合には、参照ドットパターンＤＰの個数は２N×M個となる。これらのうちの一部の参照ドットパターンＤＰのみを使用してもよいが、２N×M個のすべての参照ドットパターンＤＰを使用すれば、視差の計算をより精度良く行うことが可能である。
【００３７】
分類器２７６は、ステップＳ２２０において、図１０に示した第１画素ブロックＰＢ１に関して、図１１に示した複数の参照ドットパターンＤＰのスコアを算出し、スコアが最高となる参照ドットパターンＤＰを求める。このステップＳ２２０は、「第１選択工程」に相当する。
【００３８】
図１２は、第１画素ブロックＰＢ１に対するスコアの説明図である。横軸は図１１に示した参照ドットパターンＤＰのパターン番号であり、縦軸はスコアの値である。スコアは、第１画素ブロックＰＢ１と参照ドットパターンＤＰのパターンが一致するほど高い値を示す。この例では、ｍ番目の参照ドットパターンＤＰのスコアが最も高い。以下では、第１画素ブロックＰＢ１との一致度が最も高い参照ドットパターンＤＰを、「特定参照ドットパターンＤＰｓ」と呼ぶ。
【００３９】
分類器２７６は、例えば、第１画素ブロックＰＢ１の画像を入力とする畳み込みニューラルネットワーク（ＣＮＮ）として構成することが可能である。このＣＮＮは、例えば、畳み込み層と、活性化関数を正規化線形関数（Rectified Linear Unit）としたReLU層とを有し、最終的に全結合層から複数の参照ドットパターンＤＰに対するスコアを出力するものとして構成可能である。また、ReLU層の後に、必要に応じてプーリング層を加えてもよい。
【００４０】
分類器２７６を畳み込みニューラルネットワークとして構成する場合には、ロボット１００を用いて学習用の教師データを作成するようにしてもよい。例えば、画像取得部２７１は、分類器２７６の学習のために、部品ＰＰをロボット１００に把持させて部品ＰＰの角度を変え、２N×M個の参照ドットパターンＤＰを１つずつ部品ＰＰにそれぞれ投影した状態でステレオカメラ８２０で撮影を行うことによって、学習用の基準画像及び比較画像を取得することができる。また、分類器２７６は、こうして得られた学習用の基準画像及び比較画像を用いて学習を実行することができる。こうすれば、ロボット１００を利用して分類器２７６の学習を行うことによって、分類器２７６の精度を向上させることができる。
【００４１】
分類器２７６としては、以下のような他の構成も採用可能である。
＜分類器２７６の他の構成例１＞
白画素値を１、黒画素値を−１とし、次式に示すように、画素ブロックP(i,j)とドットパターンQ(i,j)のコンボリューションの計算結果をスコアＳとする分類器。
【数２】
2020071034.tif 000004
この分類器２７６のスコアＳは、−１〜＋１の範囲の値をとる。但し、スコアＳをRectified Linear Unit（ReLU）に入力すれば、マイナス値がゼロに置換されるのでスコアＳを０〜１の範囲とすることができる。この分類器２７６の構成例において、黒画素の値と白画素の値を逆にしてもよい。これは後述する他の構成例も同様である。
【００４２】
＜分類器２７６の他の構成例２＞
白画素値を１、黒画素値を０とし、次式に示すように、論理演算を利用してスコアＳを計算する分類器。
【数３】
2020071034.tif 000005
ここで、XNORは画素ブロックP(i,j)とドットパターンQ(i,j)の対応する画素の否定排他的論理和を取る演算子である。この分類器２７６のスコアＳは０〜１の範囲の値を取る。
【００４３】
＜分類器２７６の他の構成例３＞
白画素値を１、黒画素値を０とし、次式に示すように、SAD（Sum of Absolute Differences）を利用してスコアＳを計算する分類器。
【数４】
2020071034.tif 000006
この分類器２７６のスコアＳも０〜１の範囲の値を取る。
【００４４】
上述した分類器２７６の他の構成例１〜３は、分類器２７６の学習が不要な点で好ましい。一方、畳み込みニューラルネットワークで構成された分類器２７６は、物体の表面にテクスチャや模様が存在する場合にもスコアを精度良く算出できる可能性が高い点で好ましい。また、分類器２７６の他の構成例１〜３では、分類器２７６に画素ブロックの画像を入力する前に２値化が必要となるが、畳み込みニューラルネットワークで構成された分類器２７６では、画像を２値化せずに多階調画像をそのまま入力することができる。
【００４５】
なお、ステップＳ２２０でスコアを計算した結果、複数の参照ドットパターンＤＰの中に、スコアの差が予め定めた許容閾値以下である２つ以上の参照ドットパターンＤＰが存在する場合が考えられる。この場合には、以下に説明するように、特定参照ドットパターンＤＰｓの過去の履歴と投影ドットパターンＲＰとを利用して、現在の第１画素ブロックＰＢ１に対する特定参照ドットパターンＤＰｓを決定するようにしても良い。
【００４６】
図１３は、特定参照ドットパターンＤＰｓの過去の履歴と投影ドットパターンＲＰとを利用して、現在の第１画素ブロックＰＢ１に対する特定参照ドットパターンＤＰｓを決定する方法を示す説明図である。図１３には投影ドットパターンＲＰと基準画像ＬＭ１の一部がそれぞれ描かれている。特定参照ドットパターンＤＰｓ（１）〜ＤＰｓ（４）は、基準画像ＬＭ１の４つの画素位置における第１画素ブロックＰＢ１（１）〜ＰＢ１（４）に対して過去に選択された特定参照ドットパターンＤＰｓの履歴である。参照ドットパターンＤＰ*（５）は、５番目の画素位置における第１画素ブロックＰＢ１（５）に対して、特定参照ドットパターンＤＰｓの履歴から推定される特定参照ドットパターンである。過去の特定参照ドットパターンＤＰｓ（１）〜ＤＰｓ（４）の履歴は、投影ドットパターンＲＰに由来するので、投影ドットパターンＲＰの中にこれらの特定参照ドットパターンＤＰｓ（１）〜ＤＰｓ（４）の配列と同じ配列が存在するはずである。図１３の例では、投影ドットパターンＲＰの線Ｌの上に、特定参照ドットパターンＤＰｓ（１）〜ＤＰｓ（４）の配列と同じ配列が存在する。
【００４７】
ここで、５番目の画素位置の第１画素ブロックＰＢ１（５）についてステップＳ２２０でスコアを計算した結果、スコアの差が予め定めた許容閾値以下である２つ以上の参照ドットパターンＤＰが存在する場合を想定する。このとき、５番目の画素位置に対する特定参照ドットパターンは、投影ドットパターンＲＰの線Ｌの上で、４番目の画素位置に対する特定参照ドットパターンＤＰｓ（４）から右に１画素ずれたパターンＤＰ*（５）になるものと推定される。従って、ステップＳ２２０においてスコアの差が予め定めた許容閾値以下であった２つ以上の参照ドットパターンＤＰのうちで、図１３に従って推定された参照ドットパターンＤＰ*（５）との一致度が最も高いものを、５番目の画素位置に対する特定参照ドットパターンとして選択することができる。２つ以上の参照ドットパターンＤＰと推定された参照ドットパターンＤＰ*（５）との一致度の算出も、分類器２７６を用いて行うことができる。
【００４８】
図１３で説明した処理は、過去にステップＳ２２０において選択された特定参照ドットパターンＤＰｓの履歴を用いて投影ドットパターンＲＰを参照して、現在処理対象となっている第１画素ブロックＰＢ１との一致度が最も高くなる参照ドットパターンＤＰ*を推定し、上記２つ以上の参照ドットパターンＤＰのうちで、推定された参照ドットパターンＤＰ*との一致度が最も高い１つの参照ドットパターンＤＰを特定参照ドットパターンＤＰｓとして選択する処理である。この処理によれば、スコアの差が予め定めた許容閾値以下である２つ以上の参照ドットパターンＤＰが存在する場合にも、第１画素ブロックＰＢ１との一致度が高い特定参照ドットパターンＤＰｓを確実に決定することが可能である。なお、スコアが０〜１の範囲で定義されている場合には、スコアの許容閾値は、例えば０．０５以上０．１０以下の範囲の値に設定される。
【００４９】
ステップＳ２３０では、第２画素ブロックＰＢ２が比較画像ＲＭ１に設定される。この第２画素ブロックＰＢ２は、図１０に示したように、同じエピポーラ線ＥＰＬ上において、第１画素ブロックＰＢ１のｘ方向の位置L_x1を基準として決定される以下の範囲R_xdend〜R_x1の位置に設定される。
【数５】
2020071034.tif 000007
ここで、R_x1は第２画素ブロックＰＢ２の探索範囲の開始点位置、R_xdendは第２画素ブロックＰＢ２の探索範囲の終点位置、dとdoffosetは予め設定した一定値である。値dは、観測したい深度Ｚの予想される最大値を上述した（１）式に代入して得られる視差の最小値である。また、値doffsetは、実験的又は経験的に設定される値である。この値doffsetを小さくすれば、探索範囲を狭めることができる。
【００５０】
ステップＳ２４０では、視差算出部２７２が分類器２７６を用いて第２画素ブロックＰＢ２のスコアを求める。ステップＳ２５０では、上述した探索範囲R_xdend〜R_x1について第２画素ブロックＰＢ２のスコアの計算が終了したか否かが判定される。終了していれば後述するステップＳ２７０に進み、終了していなければステップＳ２６０に進む。ステップＳ２６０では、第２画素ブロックＰＢ２の位置を１画素ずらしてステップＳ２３０に戻り、ステップＳ２３０〜Ｓ２５０の処理を繰り返す。
【００５１】
ステップＳ２３０〜Ｓ２５０の処理が終了すると、ステップＳ２７０において、第１画素ブロックＰＢ１と最も一致度が高い第２画素ブロックＰＢ２が選択される。この第２画素ブロックＰＢ２を「特定第２画素ブロックＰＢ２ｓ」と呼ぶ。前述した図１０の例では、位置R_xdにおける第２画素ブロックＰＢ２が特定第２画素ブロックＰＢ２ｓとなっている。ステップＳ２７０は、「第２選択工程」に相当する。
【００５２】
図１４は、ステップＳ２３０〜Ｓ２５０を繰り返すことによって得られる複数の第２画素ブロックＰＢ２に対するスコアの説明図である。ここでは、図１０に示した３つの位置R_x1，R_xd，R_xdendに第２画素ブロックＰＢ２を配置したときのスコアを示している。図１２で説明したように、第１画素ブロックＰＢ１に対してはｍ番目の参照ドットパターンＤＰのスコアが最も高かったので、これが特定参照ドットパターンＤＰｓである。図１４では、この特定参照ドットパターンＤＰｓについて、第２画素ブロックＰＢ２の複数の位置におけるスコアを比較する。この結果、第２画素ブロックＰＢ２が位置R_xdにある場合において最もスコアが高いので、この位置R_xdにおける第２画素ブロックＰＢ２が、第１画素ブロックＰＢ１との一致度が最も高いことが解る。従って、この位置R_xdにおける第２画素ブロックＰＢ２が、「特定第２画素ブロックＰＢ２ｓ」となる。ステップＳ２７０では、特定参照ドットパターンＤＰｓについて第２画素ブロックＰＢ２の複数の位置におけるスコアを比較すれば良いので、他の参照ドットパターンＤＰについては第２画素ブロックＰＢ２のスコアの計算を省略しても良い。
【００５３】
特定第２画素ブロックＰＢ２ｓが選択されると、次式に従って視差Ｄを算出することができる。
【数６】
2020071034.tif 000008
ここで、L_x1は第１画素ブロックＰＢ１のｘ方向位置、R_xdは特定第２画素ブロックＰＢ２ｓのｘ方向位置である。
【００５４】
この（６）式で得られる視差Ｄを視差画像の画素値として使用してもよいが、視差Ｄをより精度良く求めるために、ステップＳ２８０においてサブピクセル推定を行っても良い。
【００５５】
図１５は、サブピクセル推定の説明図である。サブピクセル推定では、特定第２画素ブロックＰＢ２ｓのスコアのみでなく、特定第２画素ブロックＰＢ２ｓの位置R_xdの両隣の画素位置におけるスコアも利用して、視差Ｄをより精度良く求めることができる。このサブピクセル推定では、図１５で例示する等角直線フィッティングや、パラボラフィッティングなどのフィッティング方法を用いて、第１画素ブロックＰＢ１に対応する第２画素ブロックＰＢ２の位置をサブピクセル単位で決定することができる。
【００５６】
ステップＳ２９０は、基準画像ＬＭ１における探索が終了したか否かが判定される。すなわち、基準画像ＬＭ１内の探索範囲のすべての位置に第１画素ブロックＰＢ１を配置した状態で、視差の計算が終了したか否かが判定される。探索が終了していなければステップＳ２１０に戻り、上述した処理が繰り返される。探索が終了した場合には、図９の処理を終了する。
【００５７】
以上のように、本実施形態では、分類器２７６を用いて算出されたスコアを用いて第１画素ブロックＰＢ１との一致度が高い特定第２画素ブロックＰＢ２ｓを選択して視差を決定するので、投影ドットパターンＲＰを１回投影すれば良く、三次元計測のサイクルタイムが短くなるので、生産性を向上させることが可能である。
【００５８】
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態（aspect）によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【００５９】
（１）本開示の第１の形態によれば、物体の三次元計測方法が提供される。この三次元計測方法は、投影ドットパターンを前記物体に投影した状態で前記物体をステレオカメラで撮影することによって、基準画像と比較画像を取得する画像取得工程と、前記基準画像と前記比較画像の視差を求める視差算出工程と、を備える。前記視差算出工程は、（ａ）前記基準画像内に、処理対象となる予め定められたサイズの第１画素ブロックを設定する工程と、（ｂ）任意の画素ブロックについて、予め設定された互いに異なる複数の参照ドットパターンとの一致度をスコアとして出力する分類器を用いて、前記第１画素ブロックに対する前記スコアを第１スコアとして求める工程と、（ｃ）前記比較画像内に、前記第１画素ブロックに対応づけられた前記サイズの複数の第２画素ブロックを設定する工程と、（ｄ）前記分類器を用いて、前記複数の第２画素ブロックに対する前記スコアを第２スコアとして求める工程と、（ｅ）前記第１スコアと、前記第２スコアとを用いて、前記複数の第２画素ブロックの中から前記第１画素ブロックとの一致度が最も高い特定第２画素ブロックを選択する工程と、（ｆ）前記第１画素ブロックの位置と前記特定第２画素ブロックの位置を用いて前記視差を決定する工程と、を含む。
この方法によれば、分類器を用いて算出されたスコアを用いて第１画素ブロックとの一致度が高い特定第２画素ブロックを選択して視差を決定するので、投影ドットパターンを１回投影すれば良く、三次元計測のサイクルタイムが短くなるので、生産性を向上させることが可能である。
【００６０】
（２）上記三次元計測方法において、Ｎ及びＭをそれぞれ２以上の整数としたとき、前記予め定められたサイズはＮ×Ｍ画素であり、前記分類器は、前記サイズの画素ブロックを入力として、２N×M個の前記サイズの前記参照ドットパターンとの一致度を２N×M個のスコアとして出力するものとしてもよい。
この方法によれば、分類器が、Ｎ×Ｍ画素サイズの２値の参照ドットパターンとして取り得るすべてパターンについてスコアを算出するので、視差を精度良く求めることが可能である。
【００６１】
（３）上記三次元計測方法において、前記視差算出工程は、前記第１画素ブロックに対する前記第１スコアを用いて、前記複数の参照ドットパターンの中から前記第１画素ブロックとの一致度が最も高い特定参照ドットパターンを選択する第１選択工程と、前記複数の第２画素ブロックに対する前記第２スコアを用いて、前記複数の第２画素ブロックの中から前記特定参照ドットパターンとの一致度が最も高い第２画素ブロックを前記特定第２画素ブロックとして選択する第２選択工程と、を含むものとしてもよい。
この方法によれば、参照ドットパターンとの一致度を利用して、第１画素ブロックに近い参照ドットパターンを有する特定第２画素ブロックを選択できるので、視差を精度良く求めることが可能である。
【００６２】
（４）上記三次元計測方法は、前記第１選択工程において、前記複数の参照ドットパターンの中で前記スコアの差が予め定めた許容閾値以下である２つ以上の参照ドットパターンが存在する場合には、過去に前記第１選択工程において選択された前記特定参照ドットパターンの履歴を用いて前記投影ドットパターンを参照して、現在処理対象となっている前記第１画素ブロックとの一致度が最も高くなる推定参照ドットパターンを推定し、
前記２つ以上の参照ドットパターンのうちで前記推定参照ドットパターンとの一致度が最も高い参照ドットパターンを前記特定参照ドットパターンとして選択するものとしてもよい。
この方法によれば、スコアの差が予め定めた許容閾値以下である２つ以上の参照ドットパターンが存在する場合にも、第１画素ブロックとの一致度が高い参照ドットパターンを確実に決定することが可能である。
【００６３】
（５）上記三次元計測方法において、前記分類器は、畳み込みニューラルネットワークであるものとしてもよい。
この方法によれば、畳み込みニューラルネットワークとして構成された分類器を用いるので、任意の画素ブロックについて、複数の参照ドットパターンとの一致度をスコアとして精度良く算出することが可能である。
【００６４】
（６）本開示の第２の形態によれば、物体の三次元計測装置が提供される。この三次元計測装置は、投影ドットパターンを前記物体に投影した状態で前記物体をステレオカメラで撮影することによって、基準画像と比較画像を取得する画像取得部と、前記基準画像と前記比較画像の視差を求める視差算出部と、を備える。前記視差算出部は、任意の画素ブロックについて、予め設定された複数の参照ドットパターンとの一致度をスコアとして出力する分類器を有し、前記視差算出部は、（ａ）前記基準画像内に、処理対象となる予め定められたサイズの第１画素ブロックを設定し、（ｂ）前記分類器を用いて、前記第１画素ブロックに対する前記スコアを第１スコアとして求め、（ｃ）前記比較画像内に、前記第１画素ブロックに対応づけられた前記予め定められたサイズの複数の第２画素ブロックを設定し、（ｄ）前記分類器を用いて、前記複数の第２画素ブロックに対する前記スコアを第２スコアとして求め、（ｅ）前記第１スコアと、前記第２スコアとを用いて、前記複数の第２画素ブロックの中から前記第１画素ブロックとの一致度が最も高い特定第２画素ブロックを選択し、（ｆ）前記第１画素ブロックの位置と前記特定第２画素ブロックの位置を用いて前記視差を決定する。
この装置によれば、分類器を用いて算出されたスコアを用いて第１画素ブロックとの一致度が高い特定第２画素ブロックを選択して視差を決定するので、投影ドットパターンを１回投影すれば良く、三次元計測のサイクルタイムが短くなるので、生産性を向上させることが可能である。
【００６５】
（７）本開示の第３の形態によれば、ロボットと、前記ロボットに接続された上記三次元計測装置と、を備えるロボットシステムが提供される。
このロボットシステムによれば、分類器を用いて算出されたスコアを用いて第１画素ブロックとの一致度が高い特定第２画素ブロックを選択して視差を決定するので、投影ドットパターンを１回投影すれば良く、三次元計測のサイクルタイムが短くなるので、ロボットを用いた作業の生産性を向上させることが可能である。
【００６６】
（８）上記ロボットシステムにおいて、Ｎ及びＭをそれぞれ２以上の整数としたとき、前記予め定められたサイズはＮ×Ｍ画素であり、前記分類器は、前記サイズの画素ブロックを入力として、前記Ｎ×Ｍ画素のサイズの２N×M個の参照ドットパターンとの一致度を２N×M個のスコアとして出力するものとしてもよい。
このロボットシステムによれば、分類器が、Ｎ×Ｍ画素サイズの２値の参照ドットパターンとして取り得るすべてパターンについてスコアを算出するので、視差を精度良く求めることが可能である。
【００６７】
（９）上記ロボットシステムにおいて、前記画像取得部は、前記分類器の学習のために、前記物体を前記ロボットに把持させて前記物体の角度を変え、前記２N×M個の参照ドットパターンを前記物体にそれぞれ投影した状態で前記物体を前記ステレオカメラで撮影することによって、学習用の基準画像及び比較画像を取得し、前記分類器は、前記学習用の基準画像及び比較画像を用いて学習を実行するものとしてもよい。
このロボットシステムによれば、ロボットを利用して分類器の学習を行うことによって、分類器の精度を向上させることができる。
【符号の説明】
【００６８】
１００…ロボット、１２０…基台、１３０…アーム、１３２…アームフランジ、１６０…エンドエフェクター、１６４…把持機構、２００…制御装置、２１０…プロセッサー、２１１…ロボット制御部、２１２…パーツフィーダー制御部、２１３…ホッパー制御部、２２０…メインメモリー、２３０…不揮発性メモリー、２３１…プログラム命令、２３２…教示データ、２３３…投影ドットパターン、２３４…３次元モデルデータ、２４０…表示制御部、２５０…表示部、２６０…Ｉ／Ｏインターフェース、２７０…三次元計測部、２７１…画像取得部、２７２…視差算出部、２７３…点群生成部、２７４…輪郭抽出部、２７５…物体認識実行部、２７６…分類器、３００…ティーチングペンダント、４００…パーツフィーダー、５００…ホッパー、６００…パーツトレイ、７００…架台、７１０…天板、７２０…テーブル部、８１０…投影装置、８２０…ステレオカメラ、８２０Ｌ…左カメラ、８２０Ｒ…右カメラ、１４００，１４１０…パーソナルコンピューター、１５００…クラウドサービス
【図１】
2020071034.tif 000009
【図２】
2020071034.tif 000010
【図３】
2020071034.tif 000011
【図４】
2020071034.tif 000012
【図５】
2020071034.tif 000013
【図６】
2020071034.tif 000014
【図７】
2020071034.tif 000015
【図８】
2020071034.tif 000016
【図９】
2020071034.tif 000017
【図１０】
2020071034.tif 000018
【図１１】
2020071034.tif 000019
【図１２】
2020071034.tif 000020
【図１３】
2020071034.tif 000021
【図１４】
2020071034.tif 000022
【図１５】
2020071034.tif 000023