(57)【要約】【課題】マークの探索を高速化する。【解決手段】マーク検出システム（１０００）の撮像装置（３００）はマークＭが付与された物品を部分的に撮影可能な視野を有する。記憶装置（２２０）は、マーク位置学習動作によって取得されたデータベース（ＤＢ）を記憶する。データベースは、物品の異なる部分を撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、マークの像を含まない各画像の少なくとも１つの画像特徴量、および、各画像が表す位置とマークの位置との関係を示す位置関係データ、を関係付けている。画像にマークの像が含まれていないとき、信号処理装置は、取得した画像の画像特徴量と記憶装置内の各画像の画像特徴量との比較し、比較結果が一致した場合、データベース内の、一致した画像に関係付けられた位置関係データを利用して撮像装置の位置を変化させ、その後再度撮影された画像からマークの像を検出する。
2020100522.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置を用いてマークを検出するマーク検出システムであって、  マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、  マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置と、  信号処理装置と  を備え、  マーク検出動作時において、前記信号処理装置は、    前記撮像装置で前記物品の一部を撮影させ、    前記撮像装置から取得した画像に前記マークの像が含まれていないとき、    前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較し、    比較結果が一致した場合には、前記データベースから、一致した画像に関係付けられた前記位置関係データを読み出し、    読み出した前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力し、    前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出する  マーク検出システム。
【請求項２】
前記記憶装置は、前記マークの像に関する特徴データを保持しており、  前記信号処理装置は、前記特徴データを参照して、前記撮像装置から取得した画像に前記マークの像が含まれているか否かを判定する、請求項１に記載のマーク検出システム。
【請求項３】
前記信号処理装置は、前記撮像装置から取得した画像に前記マークの像が含まれていると判定したときは、前記マークの検出位置を利用した、所定の位置決め処理を実行する、請求項２に記載のマーク検出システム。
【請求項４】
前記データベースは、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、各画像が表す位置と前記マークの位置との関係を示す前記位置関係データに加え、各画像の優先度を示す優先度データを関係付けており、  前記優先度は、関係付けられた前記画像特徴量を用いて画像特徴量の比較を行った場合の比較結果の一致のしやすさの程度を示しており、  前記信号処理装置は、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較し、前記記憶装置に記憶されている複数の画像について比較結果が一致したと判定した場合には、前記複数の画像の各々の優先度の大きさに応じて、特定の一枚の画像に関係付けられた前記位置関係データを読み出す、請求項１から３のいずれかに記載のマーク検出システム。
【請求項５】
前記信号処理装置は、前記特定の一枚の画像に関係付けられた前記位置関係データにしたがって前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出した場合には、前記特定の一枚の画像に関係付けられた前記優先度をより高くなるよう前記優先度データを更新する、請求項４に記載のマーク検出システム。
【請求項６】
前記データベースが保持する、前記各画像が表す位置と前記マークの位置との関係を示す前記位置関係データは、前記各画像が表す位置から前記マークの位置までの位置ずれ量を示しており、  前記マークの位置は、前記撮像装置で撮影したときに、取得された画像内の所定の位置において前記マークが検出される位置として決定されており、  前記信号処理装置は、前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出した場合であって、取得された画像内で前記マークの像を検出した位置が前記所定の位置に一致しない場合には、前記マークの像を検出した位置と前記所定の位置との差分を取得し、前記差分を用いて、前記データベースの各画像が表す位置と前記マークの位置との関係を示す前記位置関係データを更新する、請求項１から５のいずれかに記載のマーク検出システム。
【請求項７】
前記信号処理装置は、前記特定の一枚の画像に関係付けられた前記位置関係データにしたがって前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出できなかった場合には、予め定められた順序で、前記撮像装置の位置を変化させながら画像を取得し、取得した画像に前記マークの像が存在するか否かを判定する、請求項１から６のいずれかに記載のマーク検出システム。
【請求項８】
前記データベースが保持する前記各画像の少なくとも１つの画像特徴量は、前記各画像の複数の画像特徴量であり、  前記複数の画像特徴量の各々は、前記各画像を構成する複数の部分画像の各々から取得されており、  前記信号処理装置は、前記データベースを参照して、前記記憶装置に記憶されている前記各画像の各部分画像の画像特徴量が、取得した前記画像の画像特徴量に含まれているか否かを判定し、含まれている程度が所定の条件に合致した場合に、前記比較結果が一致したと判定する、請求項１から７のいずれかに記載のマーク検出システム。
【請求項９】
前記マークが付与された前記物品は、ワークを搬送する第１搬送車の載置台であり、  前記撮像装置は、前記第１搬送車と異なる第２搬送車に設けられている、請求項１から８のいずれかに記載のマーク検出システム。
【請求項１０】
前記第２搬送車は多関節ロボットを備えており、  前記信号処理装置による前記マークの像の検出結果に従って、前記多関節ロボットを動作させる、請求項９に記載のマーク検出システム。
【請求項１１】
撮像装置を用いて検出するマーク検出システムに用いられる信号処理回路であって、  前記マーク検出システムは、  マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、  マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置と  を備えており、  前記信号処理回路は、マーク検出動作時において、    前記撮像装置に前記物品の一部を撮影させ、    前記撮像装置から取得した画像に前記マークの像が含まれていないとき、    前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較し、    比較結果が一致した場合には、前記データベースから、一致した画像に関係付けられた前記位置関係データを読み出し、    読み出した前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力し、    前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出する、信号処理回路。
【請求項１２】
撮像装置を用いてマークを検出するマーク検出システムに用いられる信号処理回路を動作させるためのコンピュータプログラムであって、  前記マーク検出システムは、  マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、  マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置と  を備えており、  マーク検出動作時において、前記コンピュータプログラムは前記信号処理回路に、    前記撮像装置を制御して前記物品の一部を撮影させ、    前記撮像装置から取得した画像に前記マークの像が含まれていないとき、    前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較させ、    比較結果が一致した場合には、前記データベースから、一致した画像に関係付けられた前記位置関係データを読み出しさせ、    読み出した前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力させ、    前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出させる、コンピュータプログラム。
【請求項１３】
撮像装置を用いてマークを検出するマーク検出システムを用いて実行される方法であって、  前記マーク検出システムは、  マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、  マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置と、  信号処理装置と  を備えており、  マーク検出動作時において、    前記撮像装置に前記物品の一部を撮影させ、    前記信号処理回路に、前記撮像装置から取得した画像に前記マークの像が含まれているか否かを判定させ、    前記撮像装置から取得した画像に前
記マークの像が含まれていないとき、前記信号処理回路に、前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較させ、    比較結果が一致した場合には、前記データベースに、一致した画像に関係付けられた前記位置関係データを読み出しさせ、    前記信号処理回路に、前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力させ、    前記位置を変化させた後に、前記信号処理回路に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出させる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、マーク検出システム、信号処理回路、コンピュータプログラムおよび方法に関する。
【背景技術】
【０００２】
カメラでワークを撮影し、ワークに付与されたアラインメントマーク（以下、単に「マーク」と記述する。）を画像処理によって検出するマーク検出システムが知られている。アライメントマークの位置および向きに基づいて、ワークの位置および／または向きを決定することにより、その後の処理、例えばロボットによるワークの把持および搬出、が可能になる。  【０００３】
特開２０１２−１３８５４８号公報は、撮影基準位置でマークを検出できなかった場合、撮影基準位置の周辺から順に視野を移動させてマークを検出する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１３８５４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述した従来の技術は、マークの探索に時間を要していた。
【課題を解決するための手段】
【０００６】
本開示のマーク検出システムは、例示的な実施形態において、撮像装置を用いてマークを検出するマーク検出システムであって、マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置と、信号処理装置とを備え、マーク検出動作時において、前記信号処理装置は、前記撮像装置で前記物品の一部を撮影させ、前記撮像装置から取得した画像に前記マークの像が含まれていないとき、前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較し、比較結果が一致した場合には、前記データベースから、一致した画像に関係付けられた前記位置関係データを読み出し、読み出した前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力し、前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出する。  【０００７】
本開示の信号処理回路は、例示的な実施形態において、撮像装置を用いて検出するマーク検出システムに用いられる信号処理回路であって、前記マーク検出システムは、マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置とを備えており、前記信号処理回路は、マーク検出動作時において、前記撮像装置に前記物品の一部を撮影させ、前記撮像装置から取得した画像に前記マークの像が含まれていないとき、前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較し、比較結果が一致した場合には、前記データベースから、一致した画像に関係付けられた前記位置関係データを読み出し、読み出した前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力し、前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出する。  【０００８】
本開示のコンピュータプログラムは、例示的な実施形態において、撮像装置を用いてマークを検出するマーク検出システムに用いられる信号処理回路を動作させるためのコンピュータプログラムであって、前記マーク検出システムは、マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置とを備えており、マーク検出動作時において、前記コンピュータプログラムは前記信号処理回路に、前記撮像装置を制御して前記物品の一部を撮影させ、前記撮像装置から取得した画像に前記マークの像が含まれていないとき、前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較させ、比較結果が一致した場合には、前記データベースから、一致した画像に関係付けられた前記位置関係データを読み出しさせ、読み出した前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力させ、前記位置を変化させた後に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出させる。  【０００９】
本開示の方法は、例示的な実施形態において、撮像装置を用いてマークを検出するマーク検出システムを用いて実行される方法であって、前記マーク検出システムは、マークが付与された物品を部分的に撮影可能な視野を有する撮像装置と、マーク位置学習動作によって取得されたデータベースを記憶する記憶装置であって、前記データベースは、前記物品の異なる部分を前記撮像装置によって複数回に分けて撮影して得られた複数の画像のうちの、前記マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置と前記マークの位置との関係を示す位置関係データ、を関係付けている、記憶装置と、信号処理装置とを備えており、マーク検出動作時において、前記撮像装置に前記物品の一部を撮影させ、前記信号処理回路に、前記撮像装置から取得した画像に前記マークの像が含まれているか否かを判定させ、前記撮像装置から取得した画像に前記マークの像が含まれていないとき、前記信号処理回路に、前記データベースを参照して、取得した前記画像の画像特徴量と前記記憶装置に記憶されている前記各画像の画像特徴量とを比較させ、比較結果が一致した場合には、前記データベースに、一致した画像に関係付けられた前記位置関係データを読み出しさせ、前記信号処理回路に、前記位置関係データを利用して、前記撮像装置の視野に前記マークが入るよう、前記撮像装置の位置を変化させるための制御信号を生成して出力させ、前記位置を変化させた後に、前記信号処理回路に、前記撮像装置を用いて再度撮影された画像から前記マークの像を検出させる。
【発明の効果】
【００１０】
本開示の実施形態によれば、短時間でマークの検索が可能なマーク検出システム、信号処理回路、コンピュータプログラムおよび方法が提供される。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示のマーク検出システム１０００を模式的に示す図である。
【図２】図２は、多関節ロボット１００、コントローラ２００および撮像装置３００の接続関係と、コントローラ２００のハードウェア構成例とを示す図である。
【図３】図３は、本開示にかかるマークＭ、Ｍ１〜Ｍ３の形状の一例を示す図である。
【図４】図４は、３０個の領域に分けた天板１２を示す図である。
【図５】図５は、撮像装置３００によって撮影された領域Ａ３およびＡ４の画像ＧＡ３およびＧＡ４を示す図である。
【図６】図６は、パターンマッチングのために画像ＧＡ３を分割した複数の部分画像の例を示す図である。
【図７】図７は、画像ＧＡ３が表す位置とマークＭの位置との関係を説明するための図である。
【図８】図８は、部分画像３−１から画像特徴量を抽出する処理を示す図である。
【図９】図９は、位置ずれ量を示すデータと画像特徴量（エッジ画像ファイル）とが対応付けられたデータベースＤＢの一例を示す図である。
【図１０】図１０は、撮像装置３００が最初に撮影した領域Ｐ１を示す図である。
【図１１】図１１は、部分領域３−３の画像特徴量と、複数の部分領域２５２の各々の画像特徴量とを比較する処理の概念を示す図である。
【図１２】図１２は、学習に用いられた領域Ａ３の画像ＧＡ３と、撮像装置３００が撮影した領域Ｐ１の画像ＧＰ１とを示す図である。
【図１３】図１３は、画像ＧＡ３に含まれる部分領域２−３の画像特徴量と、画像ＧＰ１内に設定された複数の部分領域２５２の各々の画像特徴量とを比較する処理の概念を示す図である。
【図１４】図１４は、学習に用いられた領域Ａ３の画像ＧＡ３の各部分領域と、２乗誤差の和が最も小さい関係を有する、領域Ｐ１の画像ＧＰ１の部分領域との対応関係を矢印によって示す図である。
【図１５】図１５は、ＣＰＵ２１０によって実行される処理の手順を示すフローチャートである。
【図１６】図１６は、移動後の撮像装置３００の視野の中心Ｃと、マークの像ＧＭの中心点Ｏとが一致しない例を示す図である。
【図１７】図１７は、位置ずれΔｘおよびΔｙを更新した後の、新たな位置ずれΔｘ’およびΔｙ’を示す図である。
【図１８】図１８は、更新された画像ＧＡ３用データベースＤＢの一例を示す図である。
【図１９】図１９は、優先度が導入された画像ＧＡ３用データベースＤＢの例を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照しながら、例示的な実施形態にかかるマーク検出システムの実施形態を説明する。本明細書では、必要以上に詳細な説明は省略する場合がある。たとえば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、本発明者は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図しない。以下の説明においては、同一または類似する構成要素には、同一の参照符号を付している。  
【００１３】
＜用語＞  「無人搬送車」（ＡＧＶ）とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。「無人搬送車」は、物品が載置される載置台を有している。載置台は、天板、アームなどの、物品を載置可能な物を広く含み得る。  
【００１４】
「物品」（object）とは、ワーク、または、ワークの載置台を含む、物体である。「ワーク」は、製品または部品などの各種の物である。ある例では、物品がワークである場合、当該物品はＡＧＶの天板に載せられて搬送され、人手またはピックアップロボットによって運搬車に積み込まれ、搬出される。  
【００１５】
「マーク」とは、カメラなどの撮像装置によって取得可能な画像に基づいて、他から識別することが可能なしるしである。「マーク」は、文字、図形、記号若しくは色彩、またはこれらの結合を含み得る。特定のパターンを有する線図、模様、立体的な形状も、「マーク」に含まれる。位置決めのために利用されるマークを「アライメントマーク」と呼ぶ。位置決めを想定して設けられていなかった特定の形状等の「マーク」が位置決めに利用された場合、当該「マーク」は「アライメントマーク」である。本開示では「マーク」を位置決めのために利用する例を説明する。その場合、「マーク」は「ア
ライメントマーク」と同義である。  
【００１６】
以下、本開示にかかる例示的なマーク検出システムを説明する。マーク検出システムは、撮像装置を用いて予め定められたマークを検出するために利用される。特に、本実施形態にかかるマーク検出システムは、撮像装置の視野内にマークが存在しない場合にマークの位置に素早く撮像装置を移動させることが可能な処理を行う。  
【００１７】
図１は、本開示のマーク検出システム１０００を模式的に示している。本開示のマーク検出システム１０００は、非限定的で例示的な実施形態において、多関節ロボット１００と、コントローラ２００と、撮像装置３００とを有している。マーク検出システム１０００は、ワークが載置される載置台に付与されたマーク、または、撮像装置の視野に全体が収まらない大きさを有するワークそのものに付与されたマークを検出する。載置台の一例はＡＧＶの天板であるが、他の例は移動可能な台、固定された台である。  
【００１８】
例示的な実施形態では、ＡＧＶ１０が天板１２にワークＷを載せて搬送し、所定の位置で停止する。マークＭは、ワークＷの載置台に予め付与されている。マーク検出システム１０００は、撮像装置３００を用いてマークＭを検出する。マークＭを検出すると、マーク検出システム１０００はマークＭの位置および向きに基づいて、ワークの位置決め、すなわちワークの位置および／または向きの決定を行う。位置決めの後、マーク検出システム１０００は多関節ロボット１００を用いてワークＷをピックアップし、後の工程に送る。撮像装置３００を用いてマークＭを検出する処理の具体的な内容は後に詳細に説明する。  
【００１９】
図１に示す多関節ロボット１００およびコントローラ２００は床に固定されているが、このような設置方法は一例である。他の例は、多関節ロボット１００およびコントローラ２００が小型化され、ＡＧＶ１０とは異なる他のＡＧＶ上に設置されてもよい。  
【００２０】
さらに他の例は、ワークをＡＧＶ１０で搬送するのではなく、作業者が手押しする台車で搬送してもよい。作業者が台車を手押しする場合には台車の位置は常に同じ位置に停止するとは限られず、むしろ毎回異なり得る。そのような場合でも、後述する本開示にかかるマーク検出システムを用いれば短時間でマークを検出し、ワークの位置および／または向きの決定、ワークのピックアップが可能になる。  
【００２１】
以下、多関節ロボット１００、コントローラ２００および撮像装置３００を説明する。  
【００２２】
多関節ロボット１００は、一般に、ロボットアームまたはマニピュレータとも呼ばれる。多関節ロボット１００は、関節１１０Ａ〜１１０Ｃと、アーム１２０Ａおよび１２０Ｂと、エンドエフェクタ１３０とを有している。関節１１０Ａ〜１１０Ｃはそれぞれモータを有しており、回転軸の周りにアーム１２０Ａおよび／または１２０Ｂを回転させる。エンドエフェクタ１３０は、多関節ロボット１００が作業を行えるようにアーム１２０Ｂに取り付けて用いられる機器である。図１に示す例示的なエンドエフェクタ１３０は２指グリッパ１４０を有している。２指グリッパ１４０は２本の指の間隔を調整してワークＷを挟み、把持することができる。  
【００２３】
コントローラ２００の例は、コンピュータである。本実施形態では、コントローラ２００は、撮像装置３００に撮影を行わせ、撮影によって得られた画像信号を取得し、マークを検出する処理を行う。マークを検出すると、コントローラ２００は所定の位置決め処理を行ってワークＷの位置および／または向きを決定する。その後コントローラ２００は、決定した位置および／または向きに基づいて多関節ロボット１００および２指グリッパ１４０を制御して、ワークＷをピックアップさせる。なお、コントローラ２００が上述の全ての処理を行うことは必須ではない。例えば、多関節ロボット１００の制御と、マークを検出する処理とを別個のコンピュータに行わせてもよい。  
【００２４】
撮像装置３００は、撮影した被写体の画像の画像信号を出力する装置である。本実施形態では、画像信号は有線により、コントローラ２００に送られる。撮像装置３００の典型例は、多数のフォトダイオードが行列状に配列されたＣＭＯＳイメージセンサまたはＣＣＤイメージセンサなどのエリアセンサを備える撮像装置である。撮像装置３００は、被写体のカラー画像またはモノクローム画像のデータを生成する。撮像装置３００として、例えば外観検査用の各種カメラを使用することができる。  
【００２５】
いま、図１に示すように、ワークＷが天板１２よりも小さいとする。撮像装置３００は、ワークＷを部分的に撮影可能な、ワークＷよりも相対的に狭い視野を有している。ここでいう「視野」とは、例えば多関節ロボット１００が予め定められた姿勢をとり、かつ撮像装置３００が被写体に正対して、マークＭを撮影するためにマークＭの形状等の特徴を取得可能な距離に位置したときの視野をいう。  
【００２６】
撮像装置３００の視野が狭い理由は以下のとおりである。マークを検出し、ワークの位置および／または向きを決定するために用いられる撮像装置３００は、他の工程での高精度な作業に用いられることを想定しており、高倍率のレンズを採用している。そのため、必然的に視野が狭くなる。視野を広げるためには、マーク検出および位置決め用の撮像装置と、高精度作業用の撮像装置を少なくとも２台設け、前者には低倍率のレンズを採用することが考えられる。または、倍率を任意に変更可能なレンズを採用し、マーク検出時には低倍率にすることが考えられる。しかしながら、２台構成または可変倍率のレンズの採用は複雑になり、かつコストの上昇に繋がる。さらに、装置またはレンズの重量が増加するため、エンドエフェクタに搭載可能な重量の制約等によって搭載がそもそも許容されない場合もあり得る。  
【００２７】
図２は、多関節ロボット１００、コントローラ２００および撮像装置３００の接続関係と、コントローラ２００のハードウェア構成例とを示している。コントローラ２００は、信号処理装置であるＣＰＵ２１０と、記憶装置であるメモリ２２０とを有している。  
【００２８】
コントローラ２００は、図示されない１または複数の通信端子を介して多関節ロボット１００および撮像装置３００とそれぞれ有線で接続されている。コントローラ２００と多関節ロボット１００は、当該通信端子を介して信号を送受信する。またコントローラ２００と撮像装置３００とは、当該通信端子を介して撮影指示信号および撮影によって取得された画像信号を送受信する。なお、通信は無線で行われてもよい。  
【００２９】
コントローラ２００から多関節ロボット１００に送信される信号には、多関節ロボット１００の１または複数の関節の指定、指定された関節ごとの回転角度の指定、回転速度の指定等が含まれ得る。多関節ロボット１００からコントローラ２００に送信される信号には、送信された信号の受信確認、動作の完了通知が含まれ得る。  
【００３０】
メモリ２２０にはコンピュータプログラムが格納されている。コンピュータプログラムは、ＣＰＵ２１０が実行する命令の集合である。ＣＰＵ２１０がコントローラ２００の当該コンピュータプログラムを実行することにより、ＣＰＵ２１０は、撮像装置３００を用いた撮影処理、および、取得した画像を利用したマークＭの検出処理を実行する。撮像装置３００から取得した画像にマークＭの像が含まれていると判定したときは、ＣＰＵ２１０は、検出したマークＭを利用した所定の位置決め処理を実行する。位置決め処理の結果に基づき、ＣＰＵ２１０は、多関節ロボット１００の各関節の各モータの回転、およびワークＷのピックアップを行うことができる。  
【００３１】
本実施形態では、マーク検出システム１０００の動作はコントローラ２００のＣＰＵ２１０によって制御されるが、全ての説明にＣＰＵ２１０を登場させると記載が煩雑になる。そのため、以下では、単に「撮像装置３００が所定の領域を撮影する。」などと記載する場合がある。この表現によって実行される動作は、実際にはＣＰＵ２１０が多関節ロボット１００の各関節を回転させて撮像装置３００の視野が所定の領域に入るように制御すること、ＣＰＵ２１０が撮影指示信号（制御信号）を撮像装置３００に送信して、撮像装置３００に視野内の画像信号を取得させること、を少なくとも含む。さらに、ＣＰＵ２１０が撮像装置３００から画像信号を取得することも含み得る。  
【００３２】
メモリ２２０は、後述する学習を行った後の種々のデータを関係付けたデータベースＤＢを記憶している。データベースＤＢでは、学習のために用意された、マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、および、各画像が表す位置とマークの位置との関係を示す位置関係データ、が関係付けられている。データベースＤＢのより具体的な内容は後述する。  
【００３３】
図３は、本開示にかかるマークＭ、Ｍ１〜Ｍ３の形状の一例を示している。本例では４個のマークがＡＧＶ１０の天板１２の各辺中央付近に付与されている。各マークは互いに異なるパターンを有しており、検出したパターンの位置および向きにより、検出した位置が決定され得る。図３では、比較的大きなマークを記載しているが、これは記載の便宜のためである。マークはより小さくてもよい。またマークの数、位置、形状（パターン）等は任意である。当業者は、必要とされる範囲で、適宜、数を増減させ、位置およびパターンを変更することができる。  
【００３４】
記憶装置であるメモリ２２０は、上述の、マークの数、位置、形状等のデータを保持している。これらのデータを用いることにより、ＣＰＵ２１０は、撮像装置３００から取得した画像からマークの像を識別することができる。本明細書では、このような、撮影された画像からマークの像を識別するために利用されるデータを、マークの像に関する「特徴データ」と呼ぶ。ＣＰＵ２１０は、特徴データを参照して、撮影された画像にマークの像が含まれているか否かを判定する。具体的には、ＣＰＵ２１０は、メモリ２２０内の特徴データを参照して、撮影された画像内に特徴データに一致する特徴を有する画像オブジェクトが存在するか否かを判定する。特徴データに一致する特徴を有する画像オブジェクトが存在する場合には、ＣＰＵ２１０は、画像にマークの像が含まれていると判定する。そのような画像オブジェクトが存在しない場合には、ＣＰＵ２１０は、画像にマークの像が含まれていないと判定する。特徴データを予め用意しておけば、ＣＰＵ２１０は任意のマークを検出することができる。  
【００３５】
以下、本開示に係るマーク検出システム１０００が行うマークの検出動作を説明する。マーク検出システム１０００が行うマークの検出動作は、マーク位置学習動作、およびマーク検出動作を含む。マーク位置学習動作は、最初のマーク検出動作に先立って行われる。  
【００３６】
マーク位置学習動作とは、学習用に撮影された複数の画像を利用してマーク検出システム１０００が行う学習動作である。学習の対象は、マークが含まれていない画像の画像特徴量と、各画像が表す位置からマークの中心位置までの位置ずれ量（以下「ずれ量」と記述する。）との関係である。本実施形態では、撮像装置３００によって、ＡＧＶ１０の天板１２の少なくとも一部を視野に入れて複数回に分けて撮影する。その結果得られた複数の画像のうちの、マークの像を含まない複数の画像について、各画像の少なくとも１つの画像特徴量、例えば画像内のエッジに関する画像特徴量、および、マークの像を含まない各画像が表す位置（例えば各画像撮影時の視野の中心位置）からマークの中心位置までのずれ量との関係を学習する。学習結果である、マークが含まれていない画像の画像特徴量およびずれ量を示す位置関係データは関連付けられてデータベースＤＢとして記憶され、次のマーク検出動作時に利用される。  
【００３７】
マーク検出動作とは、マーク検出システム１０００のＣＰＵ２１０が、撮像装置３００に撮影させ、撮像装置３００から取得した画像を利用して行う、マークを検出する動作である。取得し
た画像がマークの像を含む場合は、そのまま画像からマークを検出すればよい。一方、取得した画像がマークの像を含まない場合、マーク検出システム１０００のＣＰＵ２１０は、データベースを参照して、取得した画像が有する画像特徴量と、データベースＤＢに格納された、学習した画像特徴量とを比較する。比較結果が所定の条件に合致した場合、ＣＰＵ２１０は２つの画像特徴量は一致する、と判定する。所定の条件の一例は、両者の一致する程度の大きさが予め定められた閾値未満であるか否か、である。例えば、画像特徴量として、画像内のエッジの位置および範囲を利用する場合を考える。取得した画像が有する画像特徴量と、データベースＤＢに格納された画像特徴量との差を求め、さらに当該差の二乗和を求める。二乗和の大きさが閾値未満であれば、２つの画像特徴量の差は小さいと言える。すなわち、取得した画像は、学習に用いた画像と同じ領域または重複する領域を含むと言える。画像特徴量は、取得した画像全体から求めてもよいし、取得した画像の一部である部分画像から求めてもよい。  
【００３８】
そこでＣＰＵ２１０はデータベースＤＢをさらに参照して、学習に用いた画像に関連付けられた、マークの中心位置までのずれ量を示す位置関係データを読み出す。当該ずれ量だけ撮像装置３００を移動させると、撮像装置３００の視野にはマークが入る。そこでＣＰＵ２１０は、読み出した位置関係データを利用して、撮像装置３００の視野にマークが入るよう、撮像装置３００の位置を変化させる制御信号を生成して出力する。撮像装置３００の位置を変化させた後、ＣＰＵ２１０は、撮像装置３００を用いて再度撮影された画像からマークの像を検出する。これにより、取得した画像がマークの像を含まない場合であっても、ＣＰＵ２１０は撮像装置３００をマークの位置まで移動させ、マークを検出することができる。撮影範囲を変えながら全ての領域を撮影してマークを検出する方法（総当たりによる検出方法）を採用する必要がないため、マークの位置を迅速に検出することが可能である。  
【００３９】
以下、マーク位置学習動作およびマーク検出動作をそれぞれ説明する。  
【００４０】
＜マーク位置学習動作＞  図４は、３０個の領域に分けた天板１２を示している。説明の便宜上、各領域は撮像装置３００の視野の大きさに等しいとする。図４では、左上の領域から右方向に順にＡ１，Ａ２，・・・、Ａ６という番号が振られ、次の行では右方向に順にＢ１，Ｂ２，・・・という番号が振られる。同様の規則で５段目（Ｅ列）の最後の領域Ｅ６まで番号を付与する。  
【００４１】
撮像装置３００は、総当たりによる検出方法で、各領域を撮影する。最上段のＡ行に注目する。領域Ａ４にはマークＭが付与されている。撮像装置３００による撮影の結果、領域Ａ４を撮影した画像にはマークの像が含まれ、領域Ａ１〜Ａ３、Ａ５およびＡ６を撮影した画像にはマークの像が含まれない。なお、Ａ行の領域を撮影した画像には、天板１２の像に加え、天板１２よりも下方にある床等の像も含まれ得る。以下、領域Ａ３およびＡ４に着目して説明する。  
【００４２】
図５は、撮像装置３００によって撮影された領域Ａ３およびＡ４の画像ＧＡ３およびＧＡ４を示している。図５では、説明の便宜のため画像ＧＡ３およびＧＡ４は隣接して配置されている。画像ＧＡ４には、マークＭの像であるマークの像ＧＭが存在する。一方、画像ＧＡ３にはマークの像ＧＭは含まれないが、学習時には隣接する画像ＧＡ４にはマークの像ＧＭが存在することは分かっている。そこで本実施形態では、画像ＧＡ３が表す位置とマークＭの位置との関係を示す位置関係データを取得する。  
【００４３】
画像ＧＡ３が表す位置とマークＭの位置との関係は、画像ＧＡ３内の所与の点（例：中心点）を基準とすれば一意に定まる。  
【００４４】
図６は、後述するパターンマッチングのために画像ＧＡ３を分割した複数の部分画像の例を示している。図６の例では、画像ＧＡ３は各々が同一の形状および面積を有する１６個の部分画像に分割されている。  
【００４５】
図７は、画像ＧＡ３が表す位置とマークＭの位置との関係を説明するための図である。説明の便宜上、画像ＧＡ３およびマークの像ＧＭの位置を利用して説明する。画像ＧＡ３の中心点Ｃの位置は撮像装置３００の視野の中心の位置に対応する。本実施形態では、画像ＧＡ３を取得した位置から撮像装置３００をどれだけ動かせば、マークＭの中心が視野の中心に一致するかを示すずれ量（Δｘ，Δｙ）を、コントローラ２００のＣＰＵ２１０が予め取得し、メモリ２２０に記憶しておく。  
【００４６】
図７には、画像ＧＡ３撮影時の視野の中心点ＣからマークＭの中心点Ｏまでの座標軸ごとのずれ量ΔｘおよびΔｙが示されている。例示したΔｘおよびΔｙは、それぞれΔｘ＝＋３０ｍｍ、Δｙ＝−７ｍｍである。Ｘ軸の符号「＋」は図面右方向を示し、Ｙ軸の符号「−」は図面上方を示している。この値はマーク検出システム１０００の操作者が測定して入力してもよいし、ＣＰＵ２１０が演算して求めてもよい。なお本実施形態では、画像ＧＡ３を構成する全ての部分画像１−１，１−２等に、同じずれ量（ΔｘおよびΔｙ）を関係付けている。  
【００４７】
このようにして、マークの像ＧＭを含まない画像、例えば図４に示す領域Ａ１，Ａ２，Ａ３等を撮影した画像、ごとに、撮影時の視野の中心位置からマークＭの中心位置までのずれ量（Δｘ，Δｙ）を取得することができる。マークＭが複数存在する場合には、各マークＭまでのずれ量Δｘｙを算出し、その中で最も小さいずれ量を、画像が表す位置とマークの位置との関係を示すデータとして採用し得る。  
【００４８】
次に、上述のずれ量に関係付けられる画像特徴量を、図７の部分画像３−１を例示して説明する。  
【００４９】
図８は、部分画像３−１から画像特徴量を抽出する処理を示している。コントローラ２００のＣＰＵ２１０は、部分画像３−１に含まれるエッジを抽出する処理を行い、抽出されたエッジ画像３−１−Ｅのデータを部分画像３−１の画像特徴量として採用する。ＣＰＵ２１０は、当該画像特徴量と、上述した画像が表す位置とマークの位置との関係（ずれ量）を示すデータとを関係付けてメモリ２２０にデータベースＤＢとして格納する。本実施形態では、部分画像内のエッジを画像特徴量として採用したが、これは一例に過ぎない。各部分画像に固有の任意の特徴を画像特徴量として採用することができる。  
【００５０】
図９は、ずれ量を示すデータと画像特徴量（エッジ画像ファイル）とが対応付けられたデータベースＤＢの一例を示している。ＣＰＵ２１０は、図４に示す領域を撮影した全ての画像（ただしマークの像ＧＭを含む画像を除く。）についてデータベースＤＢを作成し、メモリ２２０に格納する。なお、画像毎のデータベースＤＢを別個のファイルとして設けるのか、各画像のデータベースＤＢをまとめて１つのファイルに含めるかは任意である。  
【００５１】
以上の手順によって各画像のデータベースＤＢを作成することにより、マーク位置学習動作は終了する。  
【００５２】
＜マーク検出動作＞  マーク位置学習動作が終了すると、マーク検出システム１０００を用いたマークの検出が可能になる。この時点で、図４に示す各領域Ａ１〜Ｅ６を撮影して得られた各画像からは画像特徴量が抽出されてデータベースＤＢに格納されている。  
【００５３】
マーク検出動作は、図１に示すようにＡＧＶ１０がワークＷを搬送し、マーク検出システム１０００の前の所定の位置で停止した後、実行される。撮像装置３００はワークＷが載置された天板１２を撮影する。  
【００５４】
いま、図１０に示すように、撮像装置３００は最初に領域Ｐ１を撮影したとする。撮像装置３００が最初に視野に捉えた領域Ｐ１は天板１２の中心位置を含むとは限らない。  
【００５５】
コントローラ２００のＣＰＵ２１０はデータベースＤＢを参照して、領域Ｐ１に含まれる画像特徴量が、学習済みの領域のうちのどの領域の画像特徴量に含まれているかを判定する。具体的にはＣＰＵ２１０は、たとえば領域Ａ１（図４）から順に、最後の領域Ｅ６（図４）まで下記の処理を繰り返す。  
【００５６】
まずＣＰＵ２１０は、領域Ａ１（図４）に含まれる各部分領域の画像特徴量と、領域Ｐ１内に設定された複数の部分領域の各々の画像特徴量とを比較する。図１１は、学習に用いられた領域Ａ１の画像ＧＡ１に含まれる部分領域３−３の画像特徴量と、領域Ｐ１の画像ＧＰ１内に設定された複数の部分領域２５２の各々の画像特徴量とを比較する処理の概念を示している。複数の部分領域２５２は、例えば数画素ずつずらしながら、かつ、他の部分領域と重複しながら設定され得る。本実施形態では、部分領域３−３のサイズと、複数の部分領域２５２の各々のサイズとは同じである。この動作は、公知のテンプレートマッチングを利用して実行可能である。  
【００５７】
例えばＣＰＵ２１０は、部分領域３−３の画像特徴量と、複数の部分領域２５２の各々の画像特徴量の２乗誤差の和を求める。得られた２乗誤差の和の大きさは、各部分領域２５２内の画像がどれだけ部分領域３−３内の画像と近いかを評価するパラメータである。２乗誤差の和が小さいほど、２つの部分領域内の画像は似ていることを意味する。  
【００５８】
しかしながら図１１に示す２枚の画像ＧＡ１およびＧＰ１は一見して一致していないことからも理解されるように、画像ＧＡ１内の各部分領域が、画像ＧＰ１内で一致する程度は低い。ＣＰＵ２１０は、２つの画像間で、２乗誤差の和の大きさが予め定められた値Ｔ１以下である部分領域の組の数が、同じく予め定められた値Ｔ２以上存在しない、と判定する。このような場合、本明細書では、２つの画像の比較結果は一致しない、と表現することがある。逆に、２つの画像間で、２乗誤差の和の大きさが予め定められた値Ｔ１以下である部分領域の組の数が、同じく予め定められた値Ｔ２以上存在した場合を、２つの画像の比較結果が一致した、と表現する場合がある。  
【００５９】
ＣＰＵ２１０は、学習に用いられた領域Ａ２〜Ｅ６の各画像の各部分領域と、撮影された画像ＧＰ１内の各部分領域との２乗誤差の和の大きさを算出する。以下では、２つの画像の比較結果が一致する例として、学習に用いられた域Ａ３（図４）の画像と画像ＧＰ１とに関する処理を例示する。  
【００６０】
図１２は、学習に用いられた領域Ａ３の画像ＧＡ３と、撮像装置３００が撮影した領域Ｐ１の画像ＧＰ１とを示している。両者は撮影された環境が異なるため、得られた画像も相違している。図１３は、画像ＧＡ３に含まれる部分領域２−３の画像特徴量と、画像ＧＰ１内に設定された複数の部分領域２５２の各々の画像特徴量とを比較する処理の概念を示している。上述の例と同様、ＣＰＵ２１０は、画像ＧＰ１内に設定された部分領域ごとに、画像特徴量間の２乗誤差の和を算出する。  
【００６１】
図１４は、学習に用いられた領域Ａ３の画像ＧＡ３の各部分領域と、２乗誤差の和が最も小さい関係を有する、領域Ｐ１の画像ＧＰ１の部分領域との対応関係を矢印によって示している。ＣＰＵ２１０は、２つの画像間で、２乗誤差の和の大きさが予め定められた値Ｔ１以下である部分領域の組の数が、同じく予め定められた値Ｔ２以上存在した場合には、領域Ａ３の画像ＧＡ３と領域Ｐ１の画像ＧＰ１とが一致すると判定する。閾値である値Ｔ１およびＴ２は、画像ＧＡ３およびＧＰ１のサイズ、設定する部分領域の数等によって大きく変わり得るため、具体例の列挙は省略する。当業者であれば、条件に応じて適宜設定し得る。  
【００６２】
以上の処理により、２つの画像ＧＡ３とＧＰ１との比較結果が一致した場合、ＣＰＵ２１０はデータベースＤＢを参照して、位置ずれΔｘおよびΔｙを取得する。そしてＣＰＵ２１０は撮像装置３００を位置ずれΔｘおよびΔｙだけ移動させる。これにより、マークを含まない領域を撮影した画像からでも、迅速かつ確実にマークの位置に撮像装置３００を移動させることができる。  
【００６３】
なお、図１２では、画像ＧＡ３と画像ＧＰ１とが概ね一致している例を挙げたが、実際には画像ＧＰ１は、画像ＧＡ３と
は一致しないことが一般的であると考えられる。すなわち、画像ＧＡ３と画像ＧＰ１との間にはずれがあると考えられる。そのような場合を想定して、本開示では後に第１の変形例を設けて説明している。  
【００６４】
上述した説明を、一連の処理の流れで説明する。  
【００６５】
図１５は、ＣＰＵ２１０によって実行される処理の手順を示すフローチャートである。  
【００６６】
ステップＳ１において、ＣＰＵ２１０は撮像装置３００を制御して撮像装置３００に天板１２（載置台）の一部を撮影させる。例えばＣＰＵ２１０は撮像装置３００に撮影指示信号（制御信号）を送信する。撮像装置３００は制御信号に従い、天板１２の一部を撮影し、取得した画像の画像信号をコントローラ２００に送信する。  
【００６７】
ステップＳ２において、ＣＰＵ２１０は撮像装置３００から画像信号を受信し、撮影された画像を取得する。  
【００６８】
画像にマークの像が含まれていない場合、続くステップＳ３が行われる。  
【００６９】
ステップＳ３において、ＣＰＵ２１０はデータベースＤＢを参照して、取得した画像の画像特徴量と、メモリ２２０に記憶されている各画像の画像特徴量とを比較する。続くステップＳ４は、比較結果が一致した場合の処理である。  
【００７０】
ステップＳ４において、ＣＰＵ２１０は一致した画像に関係付けられた位置関係データをデータベースＤＢから読み出す。  
【００７１】
ステップＳ５において、ＣＰＵ２１０は読み出したデータを利用して、撮像装置３００の視野にマークが入るよう、撮像装置３００の位置を変化させるための制御信号を生成し出力する。出力された制御信号により、  ステップＳ６において、ＣＰＵ２１０は撮像装置３００の位置を変化させた後に、撮像装置３００を制御して撮像装置３００に天板１２の一部を撮影させる。  
【００７２】
ステップＳ７において、ＣＰＵ２１０は再度撮影された画像を撮像装置３００から受信して、画像からマークの像を検出する。  
【００７３】
本実施形態によれば、マーク位置学習動作により、マークＭの像を含む画像以外の各画像を表す位置からマークＭの中心位置までのずれ量との関係が学習されている。後のマーク検出動作時に入力された画像と同じ画像が学習された画像の中に含まれていることが分かった場合には、その画像に関係付けられた、マークＭの中心位置までのずれ量だけ撮像装置３００を移動させることにより、マークＭをより迅速かつ確実に検出することが可能になる。  
【００７４】
次に、上述した実施形態の変形例を説明する。  
【００７５】
第１の変形例はずれ量の更新（再学習）である。  
【００７６】
学習に用いた画像と、撮像装置３００によって取得した画像との比較結果が一致した場合、データベースＤＢから取得した位置ずれΔｘおよびΔｙを利用して撮像装置３００を移動させた。位置ずれΔｘおよびΔｙは、撮像装置３００を移動させた後に再度撮影すると、取得された画像内の所定の位置、例えば視野の中心、にマークＭが検出される位置として決定されている。よって、例えば撮像装置３００の視野の中心にマークＭが検出されるはずである。しかしながら、実際には視野の中心にマークＭが検出されることは稀である。その理由は、撮像装置３００が再取得した画像の範囲が、学習時に用いられた学習データにおける各画像の範囲と一致することが稀だからである。そのため、通常、移動後の撮像装置３００の視野の中心と、マークＭの中心点Ｏとは一致しない。  
【００７７】
図１６は、移動後の撮像装置３００の視野の中心Ｃと、マークの像ＧＭの中心点Ｏとが一致しない例を示している。図１６では、両者のずれを、それぞれ２つの差分（−δｘ）および（−δｙ）で示している。符号は、視野の中心Ｃから見たとき、中心点Ｏの位置が、図示されたＸ軸およびＹ軸の負の方向に存在していることを意味している。  
【００７８】
コントローラ２００のＣＰＵ２１０は、両者のずれを相殺するため、差分（−δｘ）および（−δｙ）を取得し、取得した差分（−δｘ）および（−δｙ）を用いて、当初の位置ずれΔｘおよびΔｙを更新する。すなわちＣＰＵ２１０は、取得した差分（−δｘ）および（−δｙ）を用いて、データベースＤＢの各画像が表す位置とマークＭの位置との関係を示す位置関係データである位置ずれΔｘおよびΔｙを更新する。  
【００７９】
図１７は、差分（−δｘ）および（−δｙ）を用いて位置ずれΔｘおよびΔｙを更新した後の、新たな位置ずれΔｘ’およびΔｙ’を示している。ＣＰＵ２１０は、Δｘ’＝Δｘ＋（−δｘ）、Δｙ’＝Δｙ＋（−δｙ）の演算によって、当初の位置ずれΔｘおよびΔｙを更新する。Δｘ’およびΔｙ’を利用して撮像装置３００を移動させると、撮像装置３００の視野の中心と、マークＭの中心点Ｏとが一致する。ＣＰＵ２１０は、当初の画像ＧＡ３が得られた位置からマークＭに移動するための、画像ＧＡ３のデータベースＤＢのずれ量を更新する。  
【００８０】
図１８は、更新された画像ＧＡ３用データベースＤＢの一例を示している。図９に示す更新前の画像ＧＡ３用データベースＤＢと比較すると、ずれ量の各値が更新されていることが理解される。なお画像特徴量の欄の記載は省略した。  
【００８１】
以上の処理によれば、マーク位置学習動作によって得られていたずれ量が、マーク検出動作の結果に応じて更新される。実際の動作環境に追従してデータベースＤＢを更新することができるため、以後は迅速にマーク検出動作を実行できる。  
【００８２】
なお、第１の変形例では、撮像装置３００を移動させた後の撮像装置３００の視野内には、マークＭが存在しているとした。しかしながら、視野内にマークＭが存在しない場合もあり得る。ＣＰＵ２１０は、比較結果が一致したデータベースＤＢ内の画像に関係付けられた位置関係データにしたがって撮像装置３００の位置を変化させた後に、撮像装置３００を用いて再度撮影された画像からマークＭの像を検出できるか否かを判定する。そしてＣＰＵ２１０は、マークＭの像を検出できなかった場合には、予め定められた順序で、撮像装置３００の位置を変化させながら画像を取得し、取得した画像にマークＭの像が存在するか否かを判定する。例えばＣＰＵ２１０は、その位置から総当たりによる検出方法でマークＭを検出する動作を行ってもよい。より具体的には、ＣＰＵ２１０は、予め定められた順序で、撮像装置３００の位置を変化させながら画像を取得し、取得した画像にマークＭの像が存在するか否かを判定する動作を行って、マークＭを検出する動作を行ってもよい。通常は、視野には入らなかったが比較的近接した位置にマークＭが存在すると考えられる。よって総当たりによる検出方法を採用しても、ＣＰＵ２１０は十分迅速にマークＭを検出することができる。そしてマークＭを検出できた場合、誤ったずれ量を与えたデータを更新してもよい。更新後のデータは、当初のずれ量に、総当たりによる検出動作で移動した方向および距離を加えて生成される。ＣＰＵ２１０は、データベースＤＢに記憶されている当初のずれ量を、生成した新たなずれ量に更新すればよい。  
【００８３】
一方、２枚の画像を誤って一致したと判定したことにより、各画像用のデータベースＤＢは正しいにもかかわらず、ずれ量が大きくなりすぎた場合も考えられる。そのため、撮像装置３００を移動させた後の視野内にマークＭが存在しない場合には、データベースＤＢの更新は行わず維持してもよい。  
【００８４】
次に、第２の変形例を説明する。  
【００８５】
第２の変形例は、各画像の優先度を示す優先度データの導入である。優先度データはマークＭの像を含まない複数の画像について、各画像の画像特徴量に関連付けてデータベースＤＢに格納される追加的なパラメータである。優先度は、２枚の画像を比較する際に利用される画像特徴量が、両者の一致を判定する上で有用である程度を示す。換言すると、優先度は、データベースＤＢ上で関係付けられた画像特徴量を用いて画像特徴量の比較を行った場合の比較結果の一致のしやすさの程度を示している。以下、図９に示した画像ＧＡ３を例に挙げながら、優先度およびそのデータベースＤＢを説明する。  
【００８６】
図１９は、優先度が導入された画像ＧＡ３用データベースＤＢの例を示している。当該データベースＤＢには、部分画像ごとの画像特徴量、各画像が表す位置とマークの位置との関係を示すずれ量（位置関係データ）に加え、各部分画像の「優先度」を示す優先度データが関係付けられている。  
【００８７】
図７を参照しながら、優先度の意義を説明する。例えば部分画像１−１〜１−４はいずれも全体的に色が濃く、本実施形態の画像特徴量であるエッジが一見して少ない。そのため、これらの部分画像の画像特徴量は、マーク検出動作時に撮像装置３００から取得された他の画像の画像特徴量と一致するかどうかを判定する際には有用とは言えないと考えられる。一方、例えば部分画像３−１は、形状および位置に関して特徴的なエッジが複数存在するため、当該部分画像と他の画像の画像特徴量と一致するかどうかを判定する際には有用であると考えられる。優先度は、このような事情を反映したパラメータである。  
【００８８】
優先度を設定すると、画像特徴量が一致すると判定された部分画像が１枚または複数の画像に亘って複数存在すると判定された場合に、どの部分画像のずれ量を利用して撮像装置３００を移動させるかを決定する際に特に有用である。具体的には、ＣＰＵ２１０は、取得した画像の部分領域の画像特徴量と、メモリ２２０に記憶されている各画像の部分領域の画像特徴量とを比較する。ＣＰＵ２１０は、メモリ２２０に記憶されている複数の画像について、比較結果が一致したと判定した場合には、当該複数の画像の各々の優先度の大きさに応じて、特定の一枚の画像に関係付けられた位置関係データを読み出す。より具体的には、最も高い優先度が設定された特定の一枚の画像に関係付けられた位置関係データを読み出す。ＣＰＵ２１０は、読み出したずれ量を利用して、撮像装置３００を移動させる。これにより、より確実にマークが存在する位置に撮像装置３００を移動させることができる。なお、上述の処理の説明では、取得した画像の部分領域の画像特徴量を例示したが、取得した画像全体から画像特徴量を求めてもよい。  
【００８９】
優先度は、固定されていてもよいし、更新されてもよい。更新する例を以下に説明する。  
【００９０】
例えば、ＣＰＵ２１０は、部分画像３−１の画像特徴量に一致する画像特徴量が他の画像内に存在すると判定すると、部分画像３−１に関連付けられたずれ量に従って撮像装置３００を移動させ位置を変化させる。位置を変化させた後、撮像装置３００から新たな画像を取得したＣＰＵ２１０は、当該画像内に実際にマークの像ＧＭが存在するか否かを判定する。新たな画像からマークＭの像を検出した場合、部分画像３−１に関連付けられたずれ量は正しかったと言うことができる。つまり、部分画像３−１の画像特徴量は一致判定において有用であったと言うことができる。そこで、新たな画像からマークＭの像を検出した場合、ＣＰＵ２１０は、部分画像３−１に関連付けられた優先度をより高くなるよう更新する。例えば図１９の例では、優先度を１増加させてもよい。実際の動作環境に追従して優先度を更新できるため、ＣＰＵ２１０は迅速にマーク検出動作を実行できる。  
【００９１】
優先度の初期値は、マーク検出システム１０００のユーザが適宜設定してもよいし、最初は一律の値、例えば優先度１、を与えておいてもよい。  
【００９２】
上述の説明では部分画像単位で優先度を説明したが、１枚の画像単位で優先度を設定してもよい。例えば図４において、天板１２の縁を含まない内部に識別に有用な画像特徴量が無いと言える場合には、画像全体として優先度を設定すれば十分であると考えられる。  
【００９３】
これまで説明した位置ずれのずれ量は、図７に示すようにＸ軸方向およびＹ軸方向の差分として表現したが、表現方法は一例である。他の例として、角度と距離を用いる極座標系を採用してもよい。  
【００９４】
なお、図１の例では、撮像装置３００は、本実施形
態ではエンドエフェクタ１３０に取り付けられていたが、当該構成は一例である。撮像装置３００は他の位置に設けられてもよい。例えば、撮像装置３００はＡＧＶ１０（第１搬送車）とは異なる他のＡＧＶ（第２搬送車）上に搭載され得る。マークＭが付与された物品が、ワークＷを搬送する第１搬送車の載置台すなわち天板である場合、第２搬送車上の撮像装置が第１搬送車の天板を撮影し、マークを検出することができる。さらに、当該第２搬送車が、撮像装置に加えて多関節ロボットを備えていてもよい。つまり当該第２搬送車が、図１に示すような、撮像装置３００を有する多関節ロボット１００を備えていてもよい。このような第２搬送車を用いると、コントローラ２００のＣＰＵ２１０はマークの像を検出し、その検出結果に従って、多関節ロボットを動作させることができる。これにより、任意の位置において、コントローラ２００はマークの像の検出結果に従って多関節ロボット１００を動作させ、ワークＷのピックアップおよび移動等を行うことができる。  
【００９５】
マーク検出システム１０００で行われる処理は、上述のとおり、ＣＰＵ２１０がメモリ２２０に格納されたコンピュータプログラムを実行することによって実現される。そのようなコンピュータプログラムは、ＣＰＵ２１０に図１５に示す処理の手順（方法）を実行させるための命令の集合であり、ＣＤ−ＲＯＭ等の記録媒体に記録されて製品として市場に流通され、または、インターネット等の電気通信回線を通じて伝送され得る。さらに、ＣＰＵ２１０およびコンピュータプログラムを格納したメモリ２２０は、１つの半導体回路にコンピュータプログラムを組み込んだＤＳＰ（Digital Signal Processor）等の信号処理回路として実現されてもよい。つまり、そのようなＤＳＰは図２のコントローラ２００として機能し得る。
【産業上の利用可能性】
【００９６】
本開示のマーク検出システムは、工場、倉庫、建設現場、物流、病院などで、撮影した画像を利用してマークを検出し、位置決めを行って荷物、部品等のワークを移動および搬送を行う際に好適に利用され得る。
【符号の説明】
【００９７】
１０・・・無人搬送車（ＡＧＶ）、１２・・・天板、１００・・・多関節ロボット、２００・・・コントローラ、２１０・・・ＣＰＵ、２２０・・・メモリ、３００・・・撮像装置、１０００・・・マーク検出システム、ＤＢ・・・データベース、ＧＭ・・・マークの像、Ｍ・・・マーク、Ｗ・・・ワーク
【図１】
2020100522.tif 000003
【図２】
2020100522.tif 000004
【図３】
2020100522.tif 000005
【図４】
2020100522.tif 000006
【図５】
2020100522.tif 000007
【図６】
2020100522.tif 000008
【図７】
2020100522.tif 000009
【図８】
2020100522.tif 000010
【図９】
2020100522.tif 000011
【図１０】
2020100522.tif 000012
【図１１】
2020100522.tif 000013
【図１２】
2020100522.tif 000014
【図１３】
2020100522.tif 000015
【図１４】
2020100522.tif 000016
【図１５】
2020100522.tif 000017
【図１６】
2020100522.tif 000018
【図１７】
2020100522.tif 000019
【図１８】
2020100522.tif 000020
【図１９】
2020100522.tif 000021
【国際調査報告】
2020100522.tif 000022
2020100522.tif 000023