(57)【要約】【課題】撮像画像に基づいて物体の個数を計数する場合において、より精度を高くできる技術を提供する。【解決手段】物体計数方法であって、撮像工程と、物体の配置状態を示す第１パラメーターと、物体の形状を示す第２パラメーターと、の入力を受け付ける受付工程と、対応判定モードを選択するモード選択工程と、抽出工程と、信頼度算出工程と、モード選択工程によって選択した対応判定モードに基づいて、第１物体候補と第２物体候補との重なり度合いを算出する重なり算出工程と、重なり度合いと、第１信頼度と、第２信頼度と、に基づいて、複数の物体の個数を計数する計数工程と、を備える。【選択図】図６
2020087243.tif 000002
【特許請求の範囲】
【請求項１】
物体計数方法であって、
複数の物体を撮像して撮像画像を取得する撮像工程と、
前記物体の配置状態を示す第１パラメーターと、前記物体の形状を示す第２パラメーターと、の入力を受け付ける受付工程と、
前記受付工程によって受け付けた前記第１パラメーターおよび前記第２パラメーターに基づいて、第１物体候補と第２物体候補との重なり度合いを判定する対応判定モードを選択するモード選択工程と、
前記撮像画像から前記第１物体候補および前記第２物体候補を抽出する抽出工程と、
前記第１物体候補が前記物体を示す物体モデルと一致する度合いを示す第１信頼度と、前記第２物体候補が前記物体モデルと一致する度合いを示す第２信頼度と、を算出する信頼度算出工程と、
前記モード選択工程によって選択した前記対応判定モードに基づいて、前記重なり度合いを算出する重なり算出工程と、
前記重なり度合いと、前記第１信頼度と、前記第２信頼度と、に基づいて、前記第１物体候補と前記第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果に基づいて前記撮像画像に含まれる前記複数の物体の個数を計数する計数工程と、を備える、物体計数方法。
【請求項２】
請求項１に記載の物体計数方法であって、
前記モード選択工程は、前記第１パラメーターが、前記複数の物体が間隔を空けて配置された離間配置状態を示す場合には、前記対応判定モードとして、前記第１物体候補と前記第２物体候補とを含む二次元画像である前記撮像画像に基づいて前記重なり度合いを判定する二次元判定モードを選択し、
前記重なり算出工程は、前記二次元判定モードに基づいて前記撮像画像上における前記第１物体候補と前記第２物体候補との前記重なり度合いを算出する、物体計数方法。
【請求項３】
請求項１または請求項２に記載の物体計数方法であって、
前記モード選択工程は、前記第１パラメーターが、前記複数の物体が間隔を空けずに配置される状態を含む非離間配置状態であり、前記第２パラメーターが示す前記形状が、直方体と円柱と球の少なくとも一つを含む場合には、前記対応判定モードとして、前記第２パラメーターが示す前記物体の立体形状に基づいて前記重なり度合いを判定する形状判定モードを選択し、
前記重なり算出工程は、前記撮像画像をもとに三次元空間座標における前記第１物体候補および前記第２物体候補を抽出し、前記形状判定モードに基づいて前記第１物体候補と前記第２物体候補との前記重なり度合いを算出する、物体計数方法。
【請求項４】
請求項１から請求項３までのいずれか一項に記載の物体計数方法であって、
前記モード選択工程は、前記第１パラメーターが示す前記配置状態が、前記複数の物体が間隔を空けずに配置される状態を含む非離間配置状態であり、前記第２パラメーターが示す前記形状が、凸によって形成された形状である場合には、前記対応判定モードとして、凸包の衝突判定によって前記重なり度合いを判定する凸包判定モードを選択し、
前記重なり算出工程は、前記撮像画像をもとに三次元空間座標における前記第１物体候補および前記第２物体候補を抽出し、前記凸包判定モードに基づいて前記第１物体候補と前記第２物体候補との前記重なり度合いを算出する、物体計数方法。
【請求項５】
請求項１から請求項４までのいずれか一項に記載の物体計数方法であって、
前記モード選択工程は、前記第１パラメーターが示す前記配置状態が、前記複数の物体が間隔を空けずに配置される状態を含む非離間配置状態であり、前記第２パラメーターが示す前記形状が、凹部を含む場合には、前記対応判定モードとして、前記物体の三次元モデルを用いた衝突判定によって前記重なり度合いを判定する立体判定モードを選択し、
前記重なり算出工程は、前記撮像画像をもとに三次元空間座標における前記第１物体候補および前記第２物体候補を抽出し、前記立体判定モードに基づいて前記第１物体候補と前記第２物体候補との前記重なり度合いを算出する、物体計数方法。
【請求項６】
請求項１から請求項５までのいずれか一項に記載の物体計数方法であって、
前記撮像工程は、ステレオカメラによって前記複数の物体を撮像する工程を含む、物体計数方法。
【請求項７】
物体計数装置であって、
複数の物体を撮像して撮像画像を取得する撮像装置と、
前記撮像画像に基づいて前記複数の物体の計数を行う制御装置と、を備え、
前記制御装置は、
前記物体の配置状態を示す第１パラメーターと、前記物体の形状を示す第２パラメーターと、の入力を受け付ける受付部と、
前記受付部によって受け付けた前記第１パラメーターおよび前記第２パラメーターに基づいて、第１物体候補と第２物体候補との重なり度合いを判定する対応判定モードを選択するモード選択部と、
前記撮像画像から前記第１物体候補および前記第２物体候補を抽出する抽出部と、
前記第１物体候補が前記物体を示す物体モデルと一致する度合いを示す第１信頼度と、前記第２物体候補が前記物体モデルと一致する度合いを示す第２信頼度と、を算出する信頼度算出部と、
前記モード選択部によって選択した前記対応判定モードに基づいて、前記第１物体候補と前記第２物体候補との前記重なり度合いを算出する重なり算出部と、
前記重なり度合いと、前記第１信頼度と、前記第２信頼度と、に基づいて、前記第１物体候補と前記第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果に基づいて前記撮像画像に含まれる前記複数の物体の個数を計数する計数部と、を備える、物体計数装置。
【請求項８】
請求項７に記載の物体計数装置と、
前記物体計数装置によって計数された前記物体の個数に基づいて、前記制御装置によって制御されるロボットと、を備える、ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、物体の個数を数える技術に関する。
【背景技術】
【０００２】
従来、カメラで取得した撮像画像を用いて、複数の平板状物体の重なり領域において、局所マッチングを行うことで複数の物体の重なり状態を認識する技術が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−５３９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術において、撮像画像を用いて複数の物体の重なり状態を認識して物体の個数を計数する場合において、撮像画像のブレや物体の影の影響によって、実際には物体が一つしか存在していないにも拘わらず複数個の物体が存在するという誤検出が生じる場合があった。また、実際には複数個の物体が存在するにも拘わらず１つの物体が存在するという誤検出が生じる場合もあった。
【課題を解決するための手段】
【０００５】
本開示の一形態によれば、物体計数方法が提供される。この物体計数方法は、複数の物体を撮像して撮像画像を取得する撮像工程と、前記物体の配置状態を示す第１パラメーターと、前記物体の形状を示す第２パラメーターと、の入力を受け付ける受付工程と、前記受付工程によって受け付けた前記第１パラメーターおよび前記第２パラメーターに基づいて、第１物体候補と第２物体候補との重なり度合いを判定する対応判定モードを選択するモード選択工程と、前記撮像画像から前記第１物体候補および前記第２物体候補を抽出する抽出工程と、前記第１物体候補が前記物体を示す物体モデルと一致する度合いを示す第１信頼度と、前記第２物体候補が前記物体モデルと一致する度合いを示す第２信頼度と、を算出する信頼度算出工程と、前記モード選択工程によって選択した前記対応判定モードに基づいて、前記重なり度合いを算出する重なり算出工程と、前記重なり度合いと、前記第１信頼度と、前記第２信頼度と、に基づいて、前記第１物体候補と前記第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果に基づいて前記撮像画像に含まれる前記複数の物体の個数を計数する計数工程と、を備える。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態としてのロボットシステムを説明するための図。
【図２】制御装置の機能を示すブロック図。
【図３】表示入力装置の入力画面の一例を示す図。
【図４】判定モードを説明するための図。
【図５】円柱の衝突判定を説明するための図。
【図６】物体の計数処理のフローチャート。
【図７】第２実施形態としてのロボットシステムを説明するための図。
【発明を実施するための形態】
【０００７】
Ａ．第１実施形態：
図１は、本開示の第１実施形態としてのロボットシステム３００を説明するための図である。ロボットシステム３００は、例えば、工場内の搬送台１００上の製造物である物体８００の個数を計数するために用いられる。
【０００８】
ロボットシステム３００は、ロボット３０１と、ロボット３０１に内蔵された制御装置２００とを備える。ロボット３０１は、２つのアーム３１０Ｌ，３１０Ｒを有する双腕ロボットである。アーム３１０Ｌ，３１０Ｒには、力検出部３３０Ｌ，３３０Ｒと、エンドエフェクターとしてのハンド３５０Ｌ，３５０Ｒとが装着されている。ハンド３５０Ｌ，３５０Ｒは、ワークや道具を把持可能な把持機構である。ロボット３０１の頭部には、撮像装置３７０が設けられている。撮像装置３７０はステレオカメラであり、左右に間隔を空けて配置された２つのカメラ３７０Ｌ，３７０Ｒを有する。制御装置２００は、２つのカメラ３７０Ｌ，３７０Ｒによって取得した２つの撮像画像を用いて、複数の物体８００を容易に三次元座標で表すことができる。撮像装置３７０と制御装置２００とは、物体計数装置を構成する。
【０００９】
ロボット３０１は、複数の物体８００が収容された箱体１２０を、２つのハンド３５０Ｌ，３５０Ｒの間に挟んで保持した状態で搬送する搬送作業を実行することが可能である。ロボットシステム３００において、アーム３１０Ｌ，３１０Ｒとエンドエフェクターであるハンド３５０Ｌ，３５０Ｒとを併せた機構が可動部ＭＵとして機能する。なお、ロボット３０１は、アーム３１０Ｌ，３１０Ｒとエンドエフェクターであるハンド３５０Ｌ，３５０Ｒを省略してもよいし、一方のアーム３１０Ｌ，３１０Ｒと、一方のハンド３５０Ｌ，３５０Ｒを省略してもよい。
【００１０】
撮像装置３７０は、搬送台１００上の箱体１２０が視野に含まれるように設置されている。撮像装置３７０は、箱体１２０に収容された物体８００を撮像することで撮像画像を取得する。制御装置２００は撮像画像を用いて物体８００の個数を計数することで、計画通りの個数が、製造されているかどうか検査する。ロボット３０１は、物体８００の個数を計数した後に、可動部ＭＵを用いて箱体１２０を他の場所に移動させる。
【００１１】
図２は、制御装置２００の機能を示すブロック図である。制御装置２００は、プロセッサー２１０と、メモリー２５０と、表示入力装置２６０とを備える。制御装置２００は、撮像装置３７０が撮像することで取得した撮像画像を用いて複数の物体８００の個数を計数する。メモリー２５０は、メインメモリーと不揮発性メモリーとを含む。
【００１２】
メモリー２５０は、ロボットシステム３００を制御するための制御プログラム２５２と、判定モード２５３と、物体モデル２５５とを格納する。物体モデル２５５は、計数対象となる物体８００の形状を三次元座標で表した三次元モデルを含む。この三次元モデルのファイルフォーマットは、ＳＴＬ(Standard Triangulated Language)である。物体モデル２５５は、工場で製造される複数種類の物体８００ごとに作成されている。また、物体モデル２５５は物体８００の形状を所定の投影面に投影した二次元座標で表した二次元モデルを含んでもよい。
【００１３】
複数種類の物体８００としては、例えば、ネジや、板状の基板や、球状や円柱形状の製品が挙げられる。判定モード２５３は、箱体１２０に収容された同一種類の複数の物体８００の重なり度合いを算出するための複数の算出手法を規定する。複数の算出手法の一つを用いて、重なり算出部２１６は重なり度合いを算出する。判定モード２５３の詳細については後述する。
【００１４】
表示入力装置２６０は、タッチパネル式のモニターである。教示者や作業者などの利用者による入力や設定が表示入力装置２６０を用いて行われる。また、表示入力装置２６０は、プロセッサー２１０からの制御によって、計数結果などの各種情報を表示する。
【００１５】
プロセッサー２１０は、予め格納された制御プログラム２５２を実行することにより、受付部２１２と、モード選択部２１３と、抽出部２１４と、信頼度算出部２１５と、重なり算出部２１６と、計数部２１７と、アーム制御部２１８として機能する。メモリー２５０には、ロボット３０１の作業シーケンスを記述したプログラムが予め格納されている。プロセッサー２１０は、このプログラムを実行することによって各種の作業をロボット３０１に実行させる。なお、プロセッサー２１０が実現する機能の少なくとも一部をハードウェア回路で実現してもよい。アーム制御部２１８は、可動部ＭＵの動作を制御する。
【００１６】
受付部２１２は、物体８００の計数に必要な情報の入力を受け付ける。具体的には、受付部２１２は、計数対象である物体８００の種類と、物体８００の配置状態を示す第１パラメーターと、物体８００の形状を示す第２パラメーターとの入力を、表示入力装置２６０を介して受け付ける。受け付けた情報は、メモリー２５０に格納される。入力する情報の詳細については後述する。
【００１７】
モード選択部２１３は、計数対象としての第１物体候補と第２物体候補との重なり度合いを判定する複数の判定モードの中から、受付部２１２によって受け付けた第１パラメーターおよび第２パラメーターに対応した対応判定モードを選択する。
【００１８】
抽出部２１４は、撮像画像から計数対象となる物体８００の候補となる第１物体候補および第２物体候補を含む複数の物体候補を抽出する。例えば、撮像装置３７０の２つのカメラ３７０Ｌ．３７０Ｒの一方から取得した二次元画像からパターンマッチングによって複数の物体候補を抽出する。なお、抽出部２１４が行う物体候補の抽出方法は上記に限定されるものではない。例えば、抽出部２１４は、ステレオカメラである撮像装置３７０によって取得された撮像画像を用いてプロセッサー２１０が生成した撮像画像中の物体候補を三次元座標で表したデータと、計測対象の物体８００を示す物体モデル２５５の三次元モデルとを比較して複数の物体候補を抽出してもよい。三次元座標系は、カメラ座標系や、ロボット座標系や、ワールド座標系などの任意の座標を使用できる。
【００１９】
信頼度算出部２１５は、第１物体候補が計数対象である物体８００を示す物体モデル２５５と一致する度合いを示す第１信頼度と、第２物体候補が計数対象である物体８００を示す物体モデル２５５と一致する度合いを示す第２信頼度と、を算出する。信頼度算出部２１５は、撮像装置３７０の２つのカメラ３７０Ｌ，３７０Ｒの一方から取得した二次元画像から物体候補のエッジを検出し、メモリー２５０に記憶された計数対象の物体８００の物体モデル２５５を二次元画像に射影した輪郭との一致度［％］を算出し、算出した一致度を信頼度してもよい。また信頼度算出部２１５は、撮像装置３７０が取得した２つの撮像画像から作成した物体候補の点群と、計数対象の物体８００の物体モデル２５５との一致度［％］を算出し、算出した一致度を信頼度としてもよい。物体候補の点群と、計数対象の三次元モデルである物体モデル２５５との一致度は、点群が三次元モデルの表面と重なる数をカウントすることで算出できる。「点群」とは、画像の画素の位置を、長さの単位の三次元座標値ｘ［ｍｍ］，ｙ［ｍｍ］，ｚ［ｍｍ］で表現した点データの集合である。
【００２０】
重なり算出部２１６は、モード選択部２１３によって選択した対応判定モードを用いて、第１物体候補と第２物体候補との重なり度合い［％］を算出する。重なり度合いの算出方法については後述する。
【００２１】
計数部２１７は、重なり度合いと、第１信頼度と、第２信頼度とを用いて、第１物体候補と第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果を用いて撮像画像に含まれる複数の物体８００の個数を計数する。計数部２１７は、例えば、表示入力装置２６０によって入力された閾値を用いて第１物体候補と第２物体候補のいずれか一方を計数対象から除外するか否かを決定する。入力された閾値としては、重なり度合いの閾値である第１閾値と、第１信頼度と第２信頼度との差の閾値である第２閾値とがある。計数部２１７は、例えば、重なり度合いが第１閾値よりも大きい場合には、第２閾値の値に拘わらず、第１信頼度と第２信頼度のうちで低い方の信頼度の物体候補を計数対象から除外する。また計数部２１７は、例えば、重なり度合いが第１閾値以下の場合であって、第１信頼度と第２信頼度との差が第２閾値以下の場合には、第１物体候補と第２物体候補の両方を計数対象とする。また計数部２１７は、例えば、重なり度合いが第１閾値以下の場合であって、第１信頼度と第２信頼度との差が第２閾値より大きい場合には、第１信頼度と第２信頼度のうちで低い方の信頼度の物体候補を計数対象から除外する。第１閾値としては、重なり度合いが低く第１物体候補と第２物体候補とが別物体である可能性が高いと判定できる値に設定されることが好ましい。例えば、第１閾値は２０％以下に設定されてもよく、１０％以下に設定されてもよい。また、第２閾値は、第１物体候補および第２物体候補が計数対象の物体８００である可能性が高いと判定できる値に設定されることが好ましい。例えば、第２閾値は、２０％以下に設定されてもよく、１０％以下に設定されてもよい。
【００２２】
また例えば、計数部２１７は、第１物体候補と第２物体候補が重なっている場合、すなわち重なり度合いが０％よりも大きい場合にのみ、第１信頼度と第２信頼度のうちで低い方の信頼度の物体候補を計数対象から除外してもよい。つまり、第１物体候補と第２物体候補とが重なっていない場合、すなわち重なり度合いが０％の場合には、第１信頼度と第２信頼度の値に拘わらず第１物体候補と第２物体候補の両方を計測対象とする。
【００２３】
計数部２１７は、撮像画像から抽出された複数の物体候補について、任意の２つの物体候補を選択して計数対象である第１物体候補と第２物体候補として決定する。この決定を複数の物体候補の全ての組み合わせで行うことで、計数部２１７は撮像画像に含まれる複数の物体８００の個数を計数する。
【００２４】
図３は、表示入力装置２６０の入力画面の一例を示す図である。入力画面には、物体８００の個数を計数するために必要な情報を入力する画像ＩＭ１，ＩＭ２，ＩＭ３，ＩＭ４が表示されている。
【００２５】
画像ＩＭ１は、計数対象となる物体８００に関する情報を入力するための画像である。画像ＩＭ１には、物体８００の種類を入力する項目Ａ１と、物体８００の配置状態を入力する項目Ａ２と、物体８００の形状を入力する項目Ａ３と、を含む。
【００２６】
項目Ａ１には、物体８００の種類が複数表示されている。本実施形態では、項目Ａ１には、計数対象候補となる第１種物体，第２種物体，第３種物体の名称が表示されている。利用者は、計数対象となる物体８００を第１種物体〜第３種物体の中から選択して、表示領域をタッチする。
【００２７】
項目Ａ２には、物体８００の配置状態を示す第１パラメーターが複数表示されている。物体８００の配置状態とは、箱体１２０に配置された計数対象である物体８００の配置状態を示す。本実施形態では、項目Ａ２には、第１パラメーターである「離間配置状態」と「非離間配置状態」とが表示されている。離間配置状態とは、複数の物体８００間隔を空けて配置された状態であり、いわゆるバラ置き状態である。この離間配置状態は、撮像装置３７０の撮像方向から見たときに、複数の物体８００が間隔を空けて配置された状態であればよい。非離間配置状態とは、複数の物体８００の少なくとも一部が接触したり、重なったりして配置された状態である。つまり、非離間配置状態とは、複数の物体８００が間隔を空けずに配置される状態を含む。利用者は、計数対象となる物体８００の配置状態を選択して、該当する表示領域をタッチする。
【００２８】
項目Ａ３には、物体８００の形状を示す第２パラメーターが複数表示されている。本実施形態では、箱体１２０に配置された計数対象である物体８００の形状を３つのパターンに分けて表示している。３つのパターンは、「単純な形状」、「凸物体形状」、「その他の形状」である。
【００２９】
「単純な形状」とは、直方体と、円柱と、球との少なくとも一つを含む形状である。「単純な形状」の具体例としては、回路基板、ペットボトルのキャップ、ボールなどが挙げられる。
【００３０】
「凸物体形状」とは、上記の「単純な形状」以外の形状であって、凸によって形成された形状である。つまり「凸物体形状」とは、物体８００が凹部や切り欠きなどを有さず、物体８００同士が絡み合う可能性が無い形状である。「凸物体形状」の具体例としては、例えば、凸多面体や、穴を有さない物体や、多少の凹みがあっても凸包で近似できる物体などが挙げられる。
【００３１】
「その他の形状」とは、「単純な形状」と「凸物体形状」以外の形状である。「その他の形状」の具体例としては、例えば、ナットやボルトや歯車などが挙げられる。
【００３２】
利用者は、計数対象となる物体８００の形状を選択して、該当する表示領域をタッチする。なお、利用者は「単純な形状」について選択する場合には、さらに下位概念の「直方体」、「円柱」、「球」の少なくとも一つの表示領域をタッチする。
【００３３】
画像ＩＭ２は、重なり度合いについての第１閾値の設定と、第１信頼度と第２信頼度との差についての第２閾値の設定とを行うための画像である。利用者は、第１閾値と第２閾値とを入力するための枠状の画像をタッチした後に、画像ＩＭ４によって表示された数字の画像をタッチすることで第１閾値と第２閾値とを入力する。なお、画像ＩＭ２は省略してもよい。この場合、第１閾値と第２閾値は予め定められた一つの値であってもよいし、項目Ａ１〜Ａ３の入力内容ごとに予め定められた値であってもよい。
【００３４】
画像ＩＭ４は、「ＯＫ」および「キャンセル」と表示された画像であり、利用者は画像ＩＭ４の「ＯＫ」と表示された画像をタッチすることで、画像ＩＭ１，ＩＭ２に入力した情報が受付部２１２に受け付けられる。一方で、利用者は、「キャンセル」と表示された画像をタッチすることで、項目Ａ１〜Ａ３、第１閾値および第２閾値の再入力を実行できる。
【００３５】
図４は、判定モード２５３を説明するための図である。判定モード２５３は、計数対象としての第１物体候補と第２物体候補との重なり度合いを判定する複数の判定モードを有する。複数の判定モードは、二次元判定モードＭ１と、形状判定モードＭ２と、凸包判定モードＭ３と、立体判定モードＭ４とである。
【００３６】
二次元判定モードＭ１は、受付部２１２によって受け付けられた第１パラメーターが示す配置状態が、離間配置状態を示す場合に選択されるモードである。二次元判定モードＭ１は、撮像装置３７０の２つのカメラ３７０Ｌ，３７０Ｒの一方から取得した箱体１２０内の複数の物体８００を撮像した二次元画像に基づいて重なり度合いを判定するモードである。つまり、二次元判定モードＭ１は、第１物体候補と第２物体候補とを含む二次元画像である撮像画像に基づいて重なり度合いを判定するモードである。重なり算出部２１６は、例えば、抽出部２１４によって抽出された第１物体候補の輪郭と第２物体候補の輪郭とが交わっている場合に、第１物体候補と第２物体候補とが重なっていると判定する。また、重なり算出部２１６は、第１物体候補と第２物体候補とが重なっている場合には、物体モデル２５５と第１物体候補の輪郭と第２物体候補の輪郭とに基づいて、重なっている領域が占める面積を算出する。そして、重なり算出部２１６は、第１物体候補と第２物体候補とが重なっていない場合における、二次元画像中における第１物体候補または第２物体候補の面積に対する、重なっている領域が占める面積の割合を百分率で算出することで重なり度合いを算出する。
【００３７】
形状判定モードＭ２は、受付部２１２によって受け付けられた、第１パラメーターが示す配置状態が非離間状態であり、第２パラメーターが示す形状が単純な形状としての直方体と円柱と球のいずれか一つ、または、直方体と円柱と球の２つ以上の組み合わせである場合に選択されるモードである。形状判定モードＭ２では、受付部２１２が受け付けた物体８００の立体形状に基づいて物体８００の重なり度合いを判定するモードである。重なり算出部２１６は、２つのカメラ３７０Ｌ，３７０Ｒから取得した２つの撮像画像をもとに三次元空間座標によって箱体１２０内の複数の物体８００を表す。そして、重なり算出部２１６は、三次元空間座標によって表された第１物体候補と第２物体候補を抽出し、形状判定モードＭ２に基づいて第１物体候補と第２物体候補との重なり度合いを算出する。具体的には、重なり算出部２１６は、第２パラメーターが示す形状が直方体である場合には、分離軸を用いた衝突判定を行い、衝突していると判定した場合は、重なり度合いを算出する。
【００３８】
また重なり算出部２１６は、第２パラメーターが示す形状が円柱である場合には、第１物体候補および第２物体候補の形状が円柱であるときの衝突判定を行い、衝突していると判定した場合は、重なり度合いを算出する。
【００３９】
また重なり算出部２１６は、第２パラメーターが示す形状が球である場合には、第１物体候補および第２物体候補の形状が球であるときの衝突判定を行い、衝突している場合には衝突の度合いを算出する。球の衝突判定は、第１物体候補の中心点の座標と、第２物体候補の中心点の座標と、第１物体候補および第２物体候補の半径とに基づいて公知の判定手法で行われる。
【００４０】
凸包判定モードＭ３は、受付部２１２によって受け付けられた、第１パラメーターが示す配置状態が非離間状態であり、第２パラメーターが示す形状が凸物体である場合に選択されるモードである。凸包判定モードＭ３は、凸包の衝突判定によって重なり判定を行うモードである。重なり算出部２１６は、２つのカメラ３７０Ｌ，３７０Ｒから取得した２つの撮像画像をもとに三次元空間座標によって箱体１２０内の複数の物体８００を表す。そして、重なり算出部２１６は、三次元空間座標によって表された第１物体候補と第２物体候補を抽出し、凸包判定モードＭ３に基づいて第１物体候補と第２物体候補との衝突判定を行い、衝突していると判定した場合は重なり度合いを算出する。
【００４１】
立体判定モードＭ４は、受付部２１２によって受け付けられた、第１パラメーターが示す配置状態が非離間状態であり、第２パラメーターが示す形状がその他形状である場合に選択されるモードである。立体判定モードＭ４は、物体モデル２５５に格納された物体８００の三次元モデルを用いた衝突判定によって重なり度合いを判定するモードである。重なり算出部２１６は、２つのカメラ３７０Ｌ，３７０Ｒから取得した２つの撮像画像をもとに三次元空間座標によって箱体１２０内の複数の物体８００を表す。そして、重なり算出部２１６は、三次元空間座標によって表された第１物体候補と第２物体候補を抽出し、立体判定モードＭ４に基づいて第１物体候補と第２物体候補との衝突判定を行い、衝突している場合に重なり度合いを算出する。
【００４２】
各モードを用いた衝突判定によって重なり度合いを判定する手法については、公知の手法を用いることができる。例えば、以下の非特許文献１に開示の手法を用いることができる。
非特許文献１：
文献名：Real-Time Rendering 4th edition、著者：T. Moller, E.Hanies and N. Hoffman
【００４３】
また、ＯＢＢ(Oriented Bounding Box)を用いて計数を行う手法としては、以下に記載の非特許文献２に開示の手法を用いることができる。
非特許文献２：
文献名：第２８回日本ロボット学会学術講演会  「ステレオビジョンシステムを用いた３次元物体位置姿勢計測と同一形状の計数」  著者：丸山健一、川端聡、河井良浩、富田文明
【００４４】
以下に、重なり算出部２１６が実行する重なり度合いの算出方法の一例を説明する。図５は、重なり算出部２１６が形状判定モードＭ２に基づいて実行する円柱の衝突判定を説明するための図である。図５には、第１候補物体８００ａと第２候補物体８００ｂとが図示されている。重なり算出部２１６は、第１候補物体８００ａの中心軸ＣＸａと第２候補物体８００ｂの中心軸ＣＸｂとを決定する。次に、重なり算出部２１６は、第１候補物体８００ａと第２候補物体８００ｂの最短距離Ｄを算出する。最短距離Ｄは、第１候補物体８００ａに含まれる中心軸ＣＸａと第２候補物体８００ｂに含まれる中心軸ＣＸｂとの距離である。次に重なり算出部２１６は、距離Ｄと第１候補物体８００ａおよび第２候補物体８００ｂの直径である２ｒと距離Ｄとを比較し、距離Ｄが直径２ｒよりも小さければ第１候補物体８００ａと第２候補物体８００ｂとは衝突していると判定する。第１候補物体８００ａと第２候補物体８００ｂとが衝突している場合、重なり算出部２１６は、例えば、（２ｒ−Ｄ）×１００／２ｒの値を重なり度合いとして算出する。
【００４５】
図６は、プロセッサー２１０が実行する物体８００の計数処理のフローチャートである。この計数処理は、プロセッサー２１０が表示入力装置２６０を介して計数処理の開始指示を受け付けたことをトリガーに開始される。
【００４６】
プロセッサー２１０は、ステップＳ１０において撮像工程を実行する。撮像工程では、ステレオカメラである撮像装置３７０が、撮像対象である箱体１２０内の複数の物体８００を撮像して、撮像画像を取得する。なおステップＳ１０は、後述するステップＳ３０の開始前までに実行されれば順番は問わない。
【００４７】
また、プロセッサー２１０は、ステップＳ２０において受付工程を実行する。受付工程では、受付部２１２が、表示入力装置２６０に図３に示す各種情報を受け付ける画面を表示して、第１パラメーターと第２パラメーターとを含む情報の入力を受け付ける。
【００４８】
またプロセッサー２１０は、ステップＳ３０においてモード選択工程を実行する。モード選択工程では、モード選択部２１３が、受付工程によって受け付けた第１パラメーターおよび第２パラメーターに基づいて、第１物体候補と第２物体候補との重なり度合いを判定する対応判定モードを選択する。対応判定モードは、複数の判定モードＭ１，Ｍ２，Ｍ３，Ｍ４の中から選択される。
【００４９】
またプロセッサー２１０は、ステップＳ４０において抽出工程を実行する。抽出工程では、抽出部２１４が撮像画像から第１物体候補および第２物体候補を抽出する。
【００５０】
またプロセッサー２１０は、ステップＳ５０において信頼度算出工程を実行する。信頼度算出工程では、信頼度算出部２１５が、第１物体候補が計数対象の物体モデル２５５と一致する度合いを示す第１信頼度と、第２物体候補が計数対象の物体モデル２５５と一致する度合いを示す第２信頼度と、を算出する。ステップＳ３０において二次元判定モードＭ１が選択された場合には、信頼度算出部２１５は以下の方法で信頼度を算出してもよい。つまり、信頼度算出部２１５は、撮像装置３７０の２つのカメラ３７０Ｌ，３７０Ｒの一方から取得した二次元画像から物体候補のエッジを検出し、メモリー２５０に記憶された計数対象の三次元モデルを二次元画像に射影した輪郭との一致度［％］を算出し、算出した一致度を信頼度とする。また、ステップＳ３０において形状判定モードＭ２や凸方判定モードＭ３や立体判定モードＭ４が選択された場合には、信頼度算出部２１５は以下の方法で信頼度を算出してもよい。つまり、信頼度算出部２１５は、物体候補の点群と、計数対象の三次元モデルである物体モデル２５５との一致度［％］を算出し、算出した一致度を信頼度としてもよい。
【００５１】
またプロセッサー２１０は、ステップＳ６０において重なり算出工程を実行する。重なり算出工程では、重なり算出部２１６がモード選択工程によって選択した対応判定モードに基づいて、第１物体候補と第２物体候補との重なり度合いを算出する。
【００５２】
次にプロセッサー２１０は、ステップＳ７０において計数工程を実行する。計数工程では、計数部２１７が、重なり度合いと第１信頼度と第２信頼度とに基づいて、第１物体候補と第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果に基づいて撮像画像に含まれる複数の物体８００の個数を計数する。これにより、ステップＳ７０の実行後に計数処理が終了する。なお、プロセッサー２１０は、計数結果を表示入力装置２６０に表示してもよい。
【００５３】
また、１つの箱体１２０内の物体８００の計数処理が終了した後に、ロボット３０１は、計数処理が終了した箱体１２０を他の場所に搬送すると共に、次の箱体１２０を可動部ＭＵによって把持して撮像装置３７０の撮像領域内に移動させる。その後に、次の箱体１２０の計数処理が開始される。つまり、ロボット３０１は、制御装置２００によって計数された物体８００の個数に基づいて制御される。なお、ロボット３０１は、物体８００の個数が予め定めた閾値以上であれば、第１の場所に箱体１２０を搬送し、閾値未満であれば第２の場所に箱体１２０を搬送してもよい。
【００５４】
上記第１実施形態によれば、第１パラメーターおよび第２パラメーターに対応した対応判定モードを用いて重なり度合いを算出することで、第１パラメーターおよび第２パラメーターに応じた適切な判定モードで重なり度合いを算出できる。具体的には、配置状態が離間配置状態の場合には、二次元判定モードＭ１を用いて重なり度合いを算出することで、計数処理時間を短出できる。また、配置状態が非離間状態であり、第２パラメーターが示す形状が単純な形状である場合には、形状判定モードＭ２を用いて三次元空間座標における第１物体候補と第２物体候補との重なり度合いを算出する。これにより、重なり度合いをより精度良く算出できる。また、配置状態が非離間配置状態であり、第２パラメーターが示す形状が凸によって形成された形状である場合には、凸包判定モードＭ３を用いて三次元空間座標における第１物体候補と第２物体候補との重なり度合いを算出する。これにより、重なり度合いをより精度良く算出できる。また、配置状態が非離間配置状態であり、第２パラメーターが示す形状が単純な形状でもなく、かつ、凸形状でもない場合には、すなわち、第２パラメーターが示す形状が凹部を含まない場合には、立体判定モードＭ４を用いて三次元空間座標における第１物体候補と第２物体候補との重なり度合いを算出する。これにより、重なり度合いをより精度良く算出できる。
【００５５】
また上記第１実施形態によれば、重なり度合いと第１信頼度と第２信頼度とを用いて、第１物体候補と第２物体候補のいずれか一方を計数対象から除外するか否かを決定するため、物体８００の個数の計数をより精度良くできる。
【００５６】
また上記第１実施形態によれば、撮像装置３７０による１回の撮像工程によって、物体８００の個数を計数できるので、複数の箱体１２０内の物体８００の個数を順次計数する場合における工数を低減できる。
【００５７】
Ｂ．第２実施形態：
図７は、本開示の第２実施形態としてのロボットシステム３００ａを説明するための図である。ロボットシステム３００ａは、撮像装置３７０ａとロボット３０１ａが別体である点と、ロボット３０１ａを制御するためのロボット制御装置２００ａと、物体８００を計数するための計数装置５００ａとが別装置である点とが上記第１実施形態とは異なる。その他の構成については上記第１実施形態と同様の構成であるため、同一の構成については同一符号を付すと共に説明を省略する。
【００５８】
撮像装置３７０ａは、ロボット３０１ａとは離れた位置に配置されている。撮像装置３７０ａは、上記第１実施形態と同様にステレオカメラである。計数装置５００ａとロボット制御装置２００ａとは、第１実施形態の制御装置２００を構成する。計数装置５００ａは、物体８００の個数を計数するための機能を有する。つまり、計数装置５００ａは、受付部２１２とモード選択部２１３と抽出部２１４と信頼度算出部２１５と重なり算出部２１６として機能するプロセッサーと、物体８００の個数を計数するために必要な情報、例えば判定モード２５３や物体モデル２５５を格納したメモリーとを備える。また、計数装置５００ａは、表示入力装置２６０を備える。他の実施形態では、表示入力装置２６０は計数装置５００ａとは別体であってもよい。
【００５９】
ロボット制御装置２００ａは、ロボット３０１ａの動作を制御するための機能を有する。つまり、ロボット制御装置２００ａは、アーム制御部２１８として機能するプロセッサーと、ロボット３０１ａの動作を制御するためのプログラムを格納したメモリーとを備える。ロボット制御装置２００ａと計数装置５００ａとは、互いにデータ通信可能なように有線や無線で接続されている。ロボットシステム３００ａは、第１実施形態のロボットシステム３００と同様に、計数処理を実行できる。
【００６０】
上記第２実施形態によれば、上記第１実施形態と同様の効果を奏する。例えば、第１パラメーターおよび第２パラメーターに対応した対応判定モードを用いて重なり度合いを算出することで、第１パラメーターおよび第２パラメーターに応じた適切な判定モードで重なり度合いを算出できる。なお、上記第２実施形態に代えて、ロボットシステム３００ａにおいて、撮像装置３７０ａはロボット３０１ａのアーム３１０Ｌ，３１０Ｒや筐体に取り付けられてもよい。
【００６１】
Ｃ．他の実施形態：
Ｃ−１．他の実施形態１：
上記第１，第２実施形態では、ステレオカメラである撮像装置３７０，３７０ａによって撮像した撮像画像を用いて、物体８００を三次元座標で表していたが、物体８００を三次元座標で表すことができれば他の構成であってもよい。例えば、ロボットシステム３００，３００ａは、単眼カメラである撮像装置と、三次元距離センサーを備えていてもよい。三次元距離センサーとしては、例えば、LiDARやパターン光を複数の物体８００に投影して、投影した画像から三次元点群データを生成するセンサーを用いることができる。
【００６２】
Ｃ−２．他の実施形態２：
上記第１，第２実施形態では、第１パラメーターと第２パラメーターは、表示入力装置２６０を介して利用者が入力していたが、これに限定されるものではない。例えば、撮像装置３７０，３７０ａが撮像した撮像画像をプロセッサー２１０が画像解析することで、第１パラメーターと第２パラメーターを自動的に決定してもよい。自動的に決定した第１パラメーターと第２パラメーターは、受付部２１２によって受け付けられる。
【００６３】
Ｄ．他の形態：
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、複数の物体８００のうち、３つ以上の物体８００が重なっていたとしても、そのうちの２つの重なり度合いの判定を繰り返すことで、物体８００の計数処理を正しく実行することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【００６４】
（１）本開示の一形態によれば、物体計数方法が提供される。この物体計数方法は、複数の物体を撮像して撮像画像を取得する撮像工程と、前記物体の配置状態を示す第１パラメーターと、前記物体の形状を示す第２パラメーターと、の入力を受け付ける受付工程と、前記受付工程によって受け付けた前記第１パラメーターおよび前記第２パラメーターに基づいて、第１物体候補と第２物体候補との重なり度合いを判定する対応判定モードを選択するモード選択工程と、前記撮像画像から前記第１物体候補および前記第２物体候補を抽出する抽出工程と、前記第１物体候補が前記物体を示す物体モデルと一致する度合いを示す第１信頼度と、前記第２物体候補が前記物体モデルと一致する度合いを示す第２信頼度と、を算出する信頼度算出工程と、前記モード選択工程によって選択した前記対応判定モードに基づいて、前記重なり度合いを算出する重なり算出工程と、前記重なり度合いと、前記第１信頼度と、前記第２信頼度と、に基づいて、前記第１物体候補と前記第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果に基づいて前記撮像画像に含まれる前記複数の物体の個数を計数する計数工程と、を備える。この形態によれば、第１パラメーターおよび第２パラメーターに基づいて選択された対応判定モードを用いて重なり度合いを算出することで、第１パラメーターおよび第２パラメーターに応じた適切な判定モードで重なり度合いを算出できる。またこの形態によれば、重なり度合いと第１信頼度と第２信頼度とに基づいて、第１物体候補と第２物体候補のいずれか一方を計数対象から除外するか否かを決定するため、物体の個数の計数をより精度良くできる。
【００６５】
（２）上記形態であって、前記モード選択工程は、前記第１パラメーターが、前記複数の物体が間隔を空けて配置された離間配置状態を示す場合には、前記対応判定モードとして、前記第１物体候補と前記第２物体候補とを含む二次元画像である前記撮像画像に基づいて前記重なり度合いを判定する二次元判定モードを選択し、前記重なり算出工程は、前記二次元判定モードに基づいて前記撮像画像上における前記第１物体候補と前記第２物体候補との前記重なり度合いを算出してもよい。この形態によれば、配置状態が離間配置状態の場合には、二次元画像上において重なり度合いの算出を行うことで、物体計数の処理時間を短縮できる。
【００６６】
（３）上記形態であって、前記モード選択工程は、前記第１パラメーターが、前記複数の物体が間隔を空けずに配置される状態を含む非離間配置状態であり、前記第２パラメーターが示す前記形状が、直方体と円柱と球の少なくとも一つを含む場合には、前記対応判定モードとして、前記第２パラメーターが示す前記物体の立体形状に基づいて前記重なり度合いを判定する形状判定モードを選択し、前記重なり算出工程は、前記撮像画像をもとに三次元空間座標における前記第１物体候補および前記第２物体候補を抽出し、前記形状判定モードに基づいて前記第１物体候補と前記第２物体候補との前記重なり度合いを算出してもよい。この形態によれば、第２パラメーターが示す形状が直方体と円柱と球の少なくとも一つを含む場合には、第２パラメーターが示す物体の立体形状に基づいて重なり度合いを算出することで、重なり度合いをより精度良く算出できる。
【００６７】
（４）上記形態であって、前記モード選択工程は、前記第１パラメーターが示す前記配置状態が、前記複数の物体が間隔を空けずに配置される状態を含む非離間配置状態であり、前記第２パラメーターが示す前記形状が、凸によって形成された形状である場合には、前記対応判定モードとして、凸包の衝突判定によって前記重なり度合いを判定する凸包判定モードを選択し、前記重なり算出工程は、前記撮像画像をもとに三次元空間座標における前記第１物体候補および前記第２物体候補を抽出し、前記凸包判定モードに基づいて前記第１物体候補と前記第２物体候補との前記重なり度合いを算出してもよい。この形態によれば、配置状態が非離間配置状態であり、第２パラメーターが示す形状が凸によって形成された形状である場合には、凸包判定モードに基づいて重なり度合いの算出を行うことで、重なり度合いをより精度良く算出できる。
【００６８】
（５）上記形態であって、前記モード選択工程は、前記第１パラメーターが示す前記配置状態が、前記複数の物体が間隔を空けずに配置される状態を含む非離間配置状態であり、前記第２パラメーターが示す前記形状が、凹部を含む場合には、前記対応判定モードとして、前記物体の三次元モデルを用いた衝突判定によって前記重なり度合いを判定する立体判定モードを選択し、前記重なり算出工程は、前記撮像画像をもとに三次元空間座標における前記第１物体候補および前記第２物体候補を抽出し、前記立体判定モードに基づいて前記第１物体候補と前記第２物体候補との前記重なり度合いを算出してもよい。この形態によれば、配置状態が非離間配置状態であり、第２パラメーターが示す形状が凹部を含むような場合には、物体の三次元モデルを用いた衝突判定によって重なり度合いを算出することで、重なり度合いをより精度良く算出できる。
【００６９】
（６）上記形態であって、前記撮像工程は、ステレオカメラによって前記複数の物体を撮像する工程を含んでもよい。この形態によれば、ステレオカメラによって撮像した撮像画像を用いて容易に物体を三次元座標系で表すことができる。
【００７０】
（７）本開示の他の一形態によれば、物体計数装置が提供される。この物体計数装置は、複数の物体を撮像して撮像画像を取得する撮像装置と、前記撮像画像に基づいて前記複数の物体の計数を行う制御装置と、を備え、前記制御装置は、前記物体の配置状態を示す第１パラメーターと、前記物体の形状を示す第２パラメーターと、の入力を受け付ける受付部と、前記受付部によって受け付けた前記第１パラメーターおよび前記第２パラメーターに基づいて、第１物体候補と第２物体候補との重なり度合いを判定する対応判定モードを選択するモード選択部と、前記撮像画像から前記第１物体候補および前記第２物体候補を抽出する抽出部と、前記第１物体候補が前記物体を示す物体モデルと一致する度合いを示す第１信頼度と、前記第２物体候補が前記物体モデルと一致する度合いを示す第２信頼度と、を算出する信頼度算出部と、前記モード選択部によって選択した前記対応判定モードに基づいて、前記第１物体候補と前記第２物体候補との前記重なり度合いを算出する重なり算出部と、前記重なり度合いと、前記第１信頼度と、前記第２信頼度と、に基づいて、前記第１物体候補と前記第２物体候補のいずれか一方を計数対象から除外するか否かを決定し、決定した結果に基づいて前記撮像画像に含まれる前記複数の物体の個数を計数する計数部と、を備える。この形態によれば、第１パラメーターおよび前記第２パラメーターに基づいて選択された対応判定モードを用いて重なり度合いを算出することで、第１パラメーターおよび第２パラメーターに応じた適切な判定モードで重なり度合いを算出できる。またこの形態によれば、重なり度合いと第１信頼度と第２信頼度とに基づいて、第１物体候補と第２物体候補のいずれか一方を計数対象から除外するか否かを決定するため、物体の個数の計数をより精度良くできる。
【００７１】
（８）本開示の他の一形態によれば、上記形態の物体計数装置と、前記物体計数装置によって計数された前記物体の個数に基づいて、前記制御装置によって制御されるロボットとを備えるロボットシステムが提供される。この形態によれば、物体の個数の計数をより精度良くできるロボットシステムを提供できる。
【００７２】
本開示は、物体計数方法、物体計数装置、ロボットシステム以外の種々の形態で実現することも可能である。例えば、例えば、物体計数方法、物体計数装置、ロボットシステムを実現するコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【００７３】
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部又は全部を上述した本開示の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本開示の独立した一形態とすることも可能である。
【符号の説明】
【００７４】
１００…搬送台、１２０…箱体、２００…制御装置、２００ａ…ロボット制御装置、２１０…プロセッサー、２１２…受付部、２１３…モード選択部、２１４…抽出部、２１５…信頼度算出部、２１６…重なり算出部、２１７…計数部、２１８…アーム制御部、２５０…メモリー、２５２…制御プログラム、２５３…判定モード、２５５…物体モデル、２６０…表示入力装置、３００，３００ａ…ロボットシステム、３０１，３０１ａ…ロボット、３１０Ｌ，３１０Ｒ…アーム、３３０Ｌ，３３０Ｒ…力検出部、３５０Ｌ，３５０Ｒ…ハンド、３７０，３７０ａ…撮像装置、３７０Ｌ，３５０Ｒ…カメラ、５００ａ…計数装置、８００ａ…第１候補物体、８００…物体、８００ｂ…第２候補物体、ＣＸａ…中心軸、ＣＸｂ…中心軸
【図１】
2020087243.tif 000003
【図２】
2020087243.tif 000004
【図３】
2020087243.tif 000005
【図４】
2020087243.tif 000006
【図５】
2020087243.tif 000007
【図６】
2020087243.tif 000008
【図７】
2020087243.tif 000009