IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

<>
  • 特開-画像処理装置 図1
  • 特開-画像処理装置 図2
  • 特開-画像処理装置 図3
  • 特開-画像処理装置 図4
  • 特開-画像処理装置 図5
  • 特開-画像処理装置 図6
  • 特開-画像処理装置 図7
  • 特開-画像処理装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023119037
(43)【公開日】2023-08-25
(54)【発明の名称】画像処理装置
(51)【国際特許分類】
   G06V 10/77 20220101AFI20230818BHJP
   G06T 7/00 20170101ALI20230818BHJP
【FI】
G06V10/77
G06T7/00 300F
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023112951
(22)【出願日】2023-07-10
(62)【分割の表示】P 2021575785の分割
【原出願日】2021-02-01
(31)【優先権主張番号】P 2020017190
(32)【優先日】2020-02-04
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【弁理士】
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】小倉 翔太郎
(57)【要約】
【課題】所望の検出結果を得るのに適した検出パラメータの設定を自動化するこのできる画像処理装置を提供する。
【解決手段】画像処理装置21であって、検出パラメータを用いて入力画像データから対象物の像を検出する対象物検出部221と、対象物検出部による検出結果と所望の検出結果を表す情報とを比較することで、対象物検出部による対象物の検出における未検出率と誤検出率の少なくともいずれかを算出する検出率計算部225と、未検出率と誤検出率の少なくとも一方を入力変数とする目的関数の値を算出する目的関数値計算部226と、目的関数の値が所定の条件を満たすか又は検出パラメータの探索回数が規定数に達するまで検出パラメータの値を変更して対象物の検出、未検出率と前記誤検出率の少なくともいずれかの算出、及び目的関数の値の算出を繰り返すことにより検出パラメータの探索を行う検出パラメータ探索部227と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
対象物のモデルパターンに基づいて1以上の入力画像データ中の前記対象物の像を検出する画像処理装置であって、
検出パラメータを用いて前記モデルパターンの特徴量と前記1以上の入力画像データから抽出された特徴量とのマッチングを行い前記1以上の入力画像データから前記対象物の像を検出する対象物検出部と、
前記検出パラメータの値の設定前に予め準備された前記1以上の入力画像データに対する前記対象物検出部による検出結果と、前記1以上の入力画像データに対して前記対象物の像の検出を行った場合の所望の検出結果を表す情報とを比較することで、前記対象物検出部による前記対象物の検出における未検出率と誤検出率の少なくともいずれかを算出する検出率計算部と、
前記未検出率と前記誤検出率の少なくとも一方を入力変数とする関数として定義される目的関数の値を算出する目的関数値計算部と、
前記目的関数の値が所定の条件を満たすか又は前記検出パラメータの探索回数が規定数に達するまで前記検出パラメータの値を変更して前記対象物検出部による前記対象物の検出、前記検出率計算部による前記未検出率と前記誤検出率の少なくともいずれかの算出、及び前記目的関数値計算部による前記目的関数の値の算出を繰り返すことにより前記検出パラメータの探索を行う検出パラメータ探索部と、
を備える画像処理装置。
【請求項2】
前記目的関数は、前記未検出率、前記誤検出率、及び前記対象物検出部による前記対象物の像の検出に要した処理時間のそれぞれに対して重み値を乗じて加算した値として定義される請求項1に記載の画像処理装置。
【請求項3】
前記対象物検出部は、前記モデルパターンの第1の特徴点と前記1以上の入力画像データから抽出される第2の特徴点との間でマッチングを行い、
前記検出パラメータは、前記第1の特徴点と当該第1の特徴点に対応する前記1以上の入力画像データ中の前記第2の特徴点との間の許容距離を含む、請求項1又は2に記載の画像処理装置。
【請求項4】
前記検出パラメータは、前記モデルパターンの前記第1の特徴点の総数に対する、前記第1の特徴点に対応する前記第2の特徴点として前記許容距離内にあるものの数の比率として定義される一致度についての閾値を更に含む、請求項3に記載の画像処理装置。
【請求項5】
前記所定の条件は、前記目的関数の値が予め設定した設定値よりも低くなることである、請求項1から4のいずれか一項に記載の画像処理装置。
【請求項6】
前記検出パラメータ探索部は、前記検出パラメータの探索にベイズ最適化、ランダムサーチのいずれかを用いる、請求項1から5のいずれか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置に関する。
【背景技術】
【0002】
撮像装置の視野内の画像の中から特定の対象物の像を検出する画像処理装置が知られている。このような画像処理装置では、対象物を表す基準情報(一般に、モデルパターン、テンプレート等と称される)と撮像装置で取得した入力画像との間で特徴量のマッチングを行い、一致度が所定のレベルを超えたときに対象物の検出に成功したと判定すること一般的である(例えば、特許文献1参照)。
【0003】
また、特許文献2は、パラメタ制御装置の構成として、「照合第1段目照合1段目では、高速ではあるが低精度の照合処理によって登録データの絞込みを行う。続いて、照合2段目では、中速かつ中精度の照合処理によって、照合1段目からさらに登録データの絞り込みを行う。そして、照合m段目では、前段の複数の照合処理で絞り込まれた少数の登録データに対して低速ではあるが高精度の照合処理を行い、一の登録データの特定を行う。各照合段階の登録データの絞り込みの精度及び速度を調整するパラメタを登録データに合わせて照合速度及び/又は照合精度が最適になるよう自動的に算出する。」と記載する(要約書)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017-91079号公報
【特許文献2】特開2010-92119号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特徴量のマッチングでは、例えば、モデルパターンの特徴点と、それに対応する入力画像中の対応点との距離の許容範囲が検出パラメータとして用いられる。このような検出パラメータを用いて対象物の検出を行う場合に、検出したい対象物の未検出が生じないようにする、或いは誤検出が出ないようにするといった所望の検出結果を得るためには操作者の試行錯誤による検出パラメータの調整が必要になる。所望の検出結果を得るのに適した検出パラメータの設定を自動化するこのできる画像処理装置が望まれる。
【課題を解決するための手段】
【0006】
本開示の一態様は、対象物のモデルパターンに基づいて1以上の入力画像データ中の前記対象物の像を検出する画像処理装置であって、検出パラメータを用いて前記モデルパターンの特徴量と前記1以上の入力画像データから抽出された特徴量とのマッチングを行い前記1以上の入力画像データから前記対象物の像を検出する対象物検出部と、前記検出パラメータの値の設定前に予め準備された前記1以上の入力画像データに対する前記対象物検出部による検出結果と、前記1以上の入力画像データに対し前記対象物の像の検出を行った場合の所望の検出結果を表す情報とを比較することで、前記対象物検出部による前記対象物の検出における未検出率と誤検出率の少なくともいずれかを算出する検出率計算部と、前記未検出率と前記誤検出率の少なくとも一方を入力変数とする関数として定義される目的関数の値を算出する目的関数値計算部と、前記目的関数の値が所定の条件を満たすか又は前記検出パラメータの探索回数が規定数に達するまで前記検出パラメータの値を変更して前記対象物検出部による前記対象物の検出、前記検出率計算部による前記未検出率と前記誤検出率の少なくともいずれかの算出、及び前記目的関数値計算部による前記目的関数の値の算出を繰り返すことにより前記検出パラメータの探索を行う検出パラメータ探索部と、を備える画像処理装置である。
【発明の効果】
【0007】
上記構成によれば、所望の検出結果を得るのに適した検出パラメータの設定を自動化することができる。
【0008】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る画像処理装置の構成を表すブロック図である。
図2】画像処理装置を有する視覚センサ制御装置及び視覚センサにより対象物を検出する構成例を示す図である。
図3】ロボットのアーム先端部に設置した視覚センサの画像から対象物を検出する構成例を表す図である。
図4】検出パラメータ設定処理のフローチャートである。
図5】モデルパターンの作成手順を示すフローチャートである。
図6】対象物のモデルパターンの例を示す図である。
図7】撮像した画像におけるモデルパターン指定領域の例を示す図である。
図8】正解リストを作成するために検出された各像にラベル付けを行った状態を表す図である。
【発明を実施するための形態】
【0010】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0011】
図1は一実施形態に係る画像処理装置21の構成を表すブロック図である。図1に示すように、画像処理装置21には、視覚センサ10、操作盤31、及び表示装置32が接続されている。画像処理装置21は、視覚センサ10の視野内の画像から特定の対象物の像を検出する機能を具備する。画像処理装置21は、CPU、ROM、RAM、記憶装置、入出力インタフェース、ネットワークインタフェース等を有する一般的なコンピュータとしての構成を有していても良い。操作盤31及び表示装置32は画像処理装置21に一体に設けられていても良い。
【0012】
視覚センサ10は、濃淡画像やカラー画像を撮像するカメラでも、距離画像や3次元点群を取得できるステレオカメラや3次元センサでもよい。本実施形態では、視覚センサ10としてカメラを用い、視覚センサ10が濃淡画像を出力するものとして説明を行う。カメラは、例えばCCD(Charge Coupled Device)等の撮像素子を有する電子カメラであり、撮像面(CCDアレイ面上)で2次元画像を検出する機能を持つ周知の受光デバイスである。撮像面における2次元座標系を以下では画像座標系と呼ぶ。
【0013】
図2は、画像処理装置21を有する視覚センサ制御装置20及び視覚センサ10により対象物を検出する構成例を示す図である。図2に示すように、視覚センサ10を対象物1が撮像できる位置に固定設置し、対象物1は作業台2に載置する。この構成において、視覚センサ10により撮像された画像内で対象物1の検出を行う。
【0014】
図3は、ロボット制御装置13により制御されるロボット11のハンド12で、作業台2上の対象物1をハンドリングする場合に、ロボット11のアーム先端部に設置した視覚センサ10の画像から対象物1を検出する構成例を表す図である。図3の構成例では、視覚センサ10で撮像された画像を視覚センサ制御装置20に搭載した画像処理装置21で処理して対象物1を検出し、検出した対象物1の位置情報をロボット制御装置13に供給する。本構成例のように、視覚センサ10は、ロボット11のアーム先端部などの可動部に設置してもよい。
【0015】
図1に示すように、画像処理装置21は、画像処理部22と、モデルパターン記憶部26と、検出結果記憶部27とを有する。画像処理部22は、対象物検出部221と、対応点選択部222と、正解リスト作成部223と、検出結果リスト作成部224と、検出率計算部225と、目的関数値計算部226と、検出パラメータ探索部227とを有する。図1に示す画像処理装置21が有する各機能は、画像処理装置21のCPUが、記憶装置に格納された各種ソフトウェアを実行することで実現されても良く、或いは、ASIC(Application Specific Integrated IC)等のハードウェアを主体とした構成により実現されても良い。
【0016】
対象物検出部221は、対象物が撮像された一乃至複数の入力画像(入力画像データ)のそれぞれについて、該入力画像から抽出した複数の第2の特徴点と、モデルパターンを構成する複数の第1の特徴点とのマッチングを行って対象物の一乃至複数の像を検出する。対応点選択部222は、一乃至複数の入力画像から検出した一乃至複数の対象物の像のそれぞれについて、該像を構成する複数の第2の特徴点からモデルパターンを構成する複数の第1の特徴点に対応する第2の特徴点を選択し、該第2の特徴点を対応点として該第1の特徴点に関連付けて記憶する。
【0017】
正解リスト作成部223は、検出対象が写った画像が含まれる一乃至複数の入力画像に対して検出処理を行うことで取得された検出結果に対して、操作者による正しい検出結果か、間違った検出結果かを入力する操作を受け付け、正しい検出結果のみで構成される正解リスト(すなわち、操作者にとって所望の検出結果を表す情報)を作成する。検出結果リスト作成部224は、設定した検出パラメータを使って、検出対象が写った画像が含まれる一乃至複数の入力画像に対して検出処理を行うことで取得された検出結果と、当該検出処理にかかった処理時間とを記録した検出結果リストを作成する。
【0018】
検出率計算部225は、検出結果リスト作成部224が作成した検出結果リストと正解リストとを比較し、未検出率と誤検出率の少なくともいずれかを計算する。目的関数値計算部226は、未検出率と誤検出率の少なくとも一方を入力変数とする関数として定義される目的関数の値を算出する。検出パラメータ探索部227は、目的関数の値が所定の条件を満たすか又は検出パラメータの探索回数が規定数に達するまで、検出パラメータの値を変更して、対象物の検出、未検出率及び誤検出率の計算、及び目的関数の値の計算を繰り返すことにより検出パラメータの探索を行う。
【0019】
視覚センサ10は、画像処理装置21に通信ケーブルで接続されている。視覚センサ10は、撮像した画像データを画像処理装置21に供給する。操作盤31は、画像処理装置21に通信ケーブルで接続されている。操作盤31は、画像処理装置21で対象物1を検出するために必要な視覚センサ10の設定を行うのに使用される。表示装置32は、画像処理装置21に通信ケーブルで接続されている。表示装置32には、視覚センサ10で撮像した画像や操作盤31で設定する設定内容が表示される。
【0020】
画像処理装置21は、対象物を表す基準情報(モデルパターン、テンプレート等と称される)と視覚センサ10によって取得した入力画像との間で特徴量のマッチングを行い、一致度が所定のレベル(閾値)を超えたときに対象物の検出に成功したと判断する構成をとる。例えば、特徴量のマッチングで、モデルパターンの特徴点と対応する入力画像の対応点との距離の範囲(以下、「対応点の許容距離」と記載する)を検出パラメータとして設定する場合を想定する。この場合、検出パラメータとして小さい値を設定すると一致度が低下し検出したい対象物が見つからなくなってしまうことがある。それとは逆に検出パラメータとして大きい値を設定すると、モデルパターンの特徴点に対応する特徴点として妥当でない入力画像の特徴点に誤対応し誤検出の原因となる場合がある。本実施形態に係る画像処理装置21は、操作者の試行錯誤なしに、操作者が期待する検出結果を得るのに適した検出パラメータを自動的に設定する機能を有する。
【0021】
画像処理装置21は、以下のアルゴリズムで、操作者が期待した検出結果を得るのに適した検出パラメータを設定する。
(手順A11)検出対象が写った画像が含まれる一乃至複数の入力画像に対する、操作者の期待通りの検出結果のリスト(正解リスト)を作成する。
(手順A12)新たに検出パラメータを設定し、上記(手順A11)で使用した入力画像(すなわち、検出パラメータの値の設定前に予め準備された一乃至複数の入力画像)に対して検出を行うことで、新たに検出結果を取得する。その際に、検出にかかった処理時間を記録する(検出リストの作成)。
(手順A13)新たに取得した検出結果を正解リストと比較することで、新たに設定した検出パラメータで上記(手順A11)で使用した入力画像に対して検出を行った時の未検出率、誤検出率を計算する。
(手順A14)計算した未検出率、誤検出率及び記録した検出にかかった処理時間から目的関数の値を計算する。目的関数は、未検出率、誤検出率及び検出にかかる処理時間を操作者が任意の値で重みづけしたものを使用する。
(手順A15)目的関数の値が設定した値より小さくなった時、または規定数の検出パラメータを探索した時に、検出パラメータの探索を終了する。条件を満たさない場合は、新しい検出パラメータの探索を行う(手順A12に戻る)。
(手順A16)探索した検出パラメータの中で、目的関数の値が最小の時の検出パラメータを画像処理装置に設定する。
【0022】
目的関数を最小化する検出パラメータの探索には、当分野で知られたベイズ最適化、グリッドサーチ、ランダムサーチ等の各種探索法を用いることができる。ベイズ最適化では既に検討したパラメータから、良い目的関数の値を得られる可能性が高いパラメータの候補を確率的に求め、効率的にパラメータを探索するため、グリッドサーチやランダムサーチよりも少ない探索数で検出パラメータを最適化できる。ベイズ最適化はブラックボックス最適化手法の一つであり、入力に対する出力値は分かるが数式化の困難な関数(ブラックボックス関数)に対して、出力が最小となる入力を探索する手法である。なお、ランダムサーチは、検出パラメータの値をランダムに設定する探索手法である。本実施形態では、検出パラメータの探索にベイズ最適化を用いるものとする。
【0023】
目的関数は、未検出率、誤検出率及び検出にかかる処理時間を重みづけしたものを使用する。操作者は重みづけの値を変えることで、未検出率、誤検出率及び検出にかかる処理時間のどの値を優先して最小化するかを決めることができる。例えば誤検出率の重みを大きくすると、未検出が発生したとしても誤検出をゼロにするフェールセーフな検出を行う検出パラメータを優先して探索する。他方、未検出率の重みを大きくすると、特に未検出の発生を抑制するのに適した検出パラメータを得ることができる。また、処理時間の重みを増加させることで、特に処理時間を低減させるのに適した検出パラメータを得ることができる。
【0024】
正解リスト作成部223は、以下のアルゴリズムで、検出対象が写った画像が含まれる一乃至複数の入力画像に対する、操作者の期待通りの検出結果のリスト(正解リスト)を作成する。
(手順A21)検出対象が写った画像が含まれる一乃至複数の入力画像に対して検出を行い、検出結果を取得する。検出結果には検出した画像、検出位置、姿勢、サイズの情報が含まれる。ここでは、誤検出が多くても未検出がないまたは少ないことが望ましいので、比較的多くの検出結果が得られるように検出パラメータを比較的緩い値に設定して検出を行う。
(手順A22)操作者による各検出結果に対するラベル付けの操作を受け付ける。通常は操作者が目視で確認して、正解/不正解(正しく検出できたか、誤検出だったか)のラベルを付ける。
(手順A23)検出結果から正解のラベルを付けた検出結果だけを抜き出し、入力画像に対する操作者の期待通りの検出結果のリスト(正解リスト)を作成する。
【0025】
検出率計算部225は、以下のアルゴリズムで、新たに設定した検出パラメータで画像データセットに対して検出を行った時の未検出率、誤検出率を計算する。
(手順A31)入力画像に対し新たに取得した検出結果が、正解リストに含まれる検出結果と一致するかを判定する。検出位置、姿勢、サイズの差が設定した閾値内に収まっている時に、その検出結果が一致すると判定する。
(手順A32)全ての判定結果を合計し、未検出率、誤検出率を計算する。正解リストに含まれる全ての検出結果が新たに取得した検出結果のリストに含まれる場合に未検出率をゼロとし、正解リストに含まれない検出結果が新たに取得した検出結果のリストに一つも含まれない場合に誤検出率をゼロとする。操作者の期待したものが適切に検出される場合、未検出率、誤検出率は共にゼロになる。
【0026】
このように、検出対象が写った画像が含まれる一乃至複数の入力画像に対する正解ラベルの付いた検出結果のリストを作成することで、検出パラメータを変更した時に、操作者による確認を必要とせず、入力画像に対して検出を行った時の未検出率及び誤検出率を計算できる。そして、一例として、誤検出率をゼロにし、かつ、未検出率及び検出にかかる処理時間を最小化することを目的とし、検出パラメータの値を入力としたベイズ最適化による探索を行うことで、操作者が意図したものだけが検出される最適な検出パラメータを操作者の試行錯誤なしに設定することができる。
【0027】
図4は、操作者が期待する検出結果を得るのに適した検出パラメータを設定する上述のアルゴリズムを具体的に実現する処理(以下、検出パラメータ設定処理と記す)を表すフローチャートである。検出パラメータ設定処理は、画像処理装置21のCPUによる制御の下で実行される。検出パラメータとしては、上述の「対応点の許容距離」、及び、モデルパターンの特徴量と入力画像から抽出される特徴量との間の「一致度の閾値」を用いる。
【0028】
はじめに、モデルパターンの教示を行う(ステップS1)。すなわち、ステップS1で、画像処理部22がモデルパターンを作成し、作成したモデルパターンをモデルパターン記憶部26に記憶する。
【0029】
本実施形態におけるモデルパターンは複数の特徴点から構成される。特徴点としては様々な物が使用できるが、本実施形態ではエッジ点を特徴点として用いる。エッジ点は、画像中で輝度勾配が大きな点であり、対象物1の輪郭形状を取得するために使用できる。エッジ点を抽出する方法としては当分野で知られる各種手法を用いることができる。
【0030】
エッジ点の物理量としては、そのエッジ点の位置、輝度勾配方向、輝度勾配の大きさなどがある。エッジ点の輝度勾配の方向を特徴点の姿勢と定義すると、位置とあわせて特徴点の位置姿勢を定義することができる。本実施形態では、特徴点の物理量としてエッジ点の物理量、すなわちエッジ点の位置、姿勢(輝度勾配の方向)、輝度勾配の大きさを記憶する。
【0031】
図6は、対象物1のモデルパターンの例を示す図である。図6に示されるように、対象物1のモデルパターンは複数の第1の特徴点P_i(i=1~NP)で構成される。モデルパターンを構成する第1の特徴点P_iの位置姿勢はどのような形式で表してもよいが、一例としては、モデルパターンに座標系100を定義し(以下、モデルパターン座標系100)、モデルパターンを構成する特徴点の位置t_Pi(i=1~NP)や姿勢v_Pi(i=1~NP)をモデルパターン座標系100から見た位置ベクトルや方向ベクトルなどで表現する方法が挙げられる。
【0032】
モデルパターン座標系100の原点はどのように定義してもよい。例えば、モデルパターンを構成する第1の特徴点から任意の1点を選択して、その点を原点として定義してもよく、モデルパターンを構成するすべての特徴点の重心を原点として定義してもよい。
【0033】
モデルパターン座標系100の姿勢(軸の方向)もどのように定義してもよい。例えば、モデルパターンの作成を行った画像において画像座標系とモデルパターン座標系100とが平行になるように定義してもよいし、モデルパターンを構成する特徴点から任意の2点を選択して、その一方から他方に向かう方向がX軸方向となるように定義してもよい。
【0034】
モデルパターンを構成する第1の特徴点P_iは、モデルパターン記憶部26に、例えば、下記表1のような形式(位置、姿勢、輝度勾配の大きさを含む)で記憶される。
【0035】
【表1】
【0036】
図5は、図4のステップS1における画像処理部22によるモデルパターンの作成手順を示すフローチャートである。ステップS201で、モデルパターンとして教示したい対象物1を視覚センサ10の視野内に配置し、対象物1の画像を撮像する。この時の視覚センサ10と対象物1の位置関係は、対象物1を検出するときと同じになるようにして行うことが望ましい。
【0037】
ステップS202で、撮像した画像において対象物1が映った領域を矩形や円形でモデルパターン指定領域として指定する。図7は、撮像した画像におけるモデルパターン指定領域の例を示す図である。図7に示すように、撮像した画像において画像座標系210が定義され、その中で対象物1の像1Aを含むようにモデルパターン指定領域(ここでは矩形領域)220が指定される。モデルパターン指定領域220は、使用者が表示装置32で画像を見ながら操作盤31により入力した指示を画像処理部22が受けて設定しても、画像処理部22が画像における輝度勾配の大きい箇所を像1Aの輪郭として求め、像1Aが内部に含まれるように自動的に指定してもよい。
【0038】
次に、ステップS203で、モデルパターン指定領域220の範囲内でエッジ点を特徴点として抽出し、エッジ点の位置、姿勢( 輝度勾配の方向)、輝度勾配の大きさなどの物理量を求める。また、指定された領域内にモデルパターン座標系100を定義し、エッジ点の位置や姿勢を、画像座標系210で表現された値から、モデルパターン座標系100で表現された値に変換する。
【0039】
次に、ステップS204で、抽出されたエッジ点の物理量を、モデルパターンを構成する第1の特徴点P_iとしてモデルパターン記憶部26に記憶する。本実施形態では、特徴点としてエッジ点を用いたが、本実施形態で使用可能な特徴点がエッジ点に限定されるわけではなく、たとえば当分野で知られたSIFT(Scale-Invariant Feature Transform)のような特徴点を使用してもよい。
【0040】
また、対象物1の画像からエッジ点やSIFT特徴点などを抽出して、モデルパターンを構成する第1の特徴点とするのではなく、画像に写った対象物の輪郭線に合うように線分、矩形、円などの幾何図形を配置することでモデルパターンを作成してもよい。その場合、輪郭線を構成する幾何図形上に適当な間隔で特徴点を設ければよい。さらに、CADデータなどに基づいてモデルパターンを作成することもできる。
【0041】
図4のフローに戻り、次に、画像処理部22は、ステップS2~S5において、検出対象が写った画像が含まれる一乃至複数の入力画像に対する、操作者の期待通りの検出結果のリスト(正解リスト)を作成する。ステップS2~S5の処理は上述の正解リスト作成のアルゴリズム(手順A21~A23)に対応する。検出対象が写った画像が含まれる一乃至複数の入力画像を用意する。入力画像のそれぞれについて、適当な一致度の閾値及び対応点の許容距離を設定して対象物の検出を行い、検出結果を取得する。ここでは、誤検出が多くても未検出がないまたは少ないことが望ましいので、一致度の閾値を低く、対応点の許容距離を大きく設定する(ステップS2)。そして、検出対象が映った画像が含まれる一乃至複数の入力画像のそれぞれについて対象物1の像1A(以下、単に対象物1と称する場合がある)の検出を行い、検出結果を取得する(ステップS3)。検出結果には検出した画像、検出位置、姿勢、サイズの情報が含まれる。
【0042】
ステップS3における対象物1の検出について詳細に説明する。対象物の検出は以下の手順で行う。
手順101:対象物の検出
手順102:対応点の選択
手順103:検出パラメータに基づく評価
【0043】
以下、手順101~手順103を説明する。これらの手順は対象物検出部221による制御の下で実行される。手順101(対象物の検出)で、入力画像I_j(j=1~NI)のそれぞれについて対象物1の像1A(以下、単に対象物1と称する場合がある)の検出を行う。まず、入力画像I_jから第2の特徴点を抽出する。第2の特徴点はモデルパターンを作成する際に第1の特徴点を抽出した方法と同じ方法で抽出すればよい。本実施形態では、入力画像からエッジ点を抽出し、第2の特徴点とする。説明のため、入力画像I_jから抽出されたNQ_j個の第2の特徴点をQ_jk(k=1~NQ_j)とする。第2の特徴点Q_jkは入力画像I_jに関連づけて検出結果記憶部27に記憶する。この時点では、第2の特徴点Q_jkの位置や姿勢は画像座標系210で表現されている。
【0044】
次に、入力画像I_jから抽出した第2の特徴点Q_jkとモデルパターンを構成する第1の特徴点P_iとのマッチングを行い、対象物1の検出を行う。対象物を検出する方法は様々なものがあるが、たとえば、当分野で知られた、一般化ハフ変換、RANSAC(Random Sample Consensus)、ICP(Iterative Closest Point)アルゴリズムなどが利用できる。
【0045】
検出を行った結果、入力画像I_jから対象物の像がNT_j個検出されたとする。また、検出された像をT_jg(g=1~NT_j)、像T_jgの検出位置をR_Tjgとする。検出位置R_Tjgは、画像座標系210から見た対象物の像T_jgの位置姿勢、すなわち像T_jgにモデルパターンを重ね合わせた時の、画像座標系210から見たモデルパターン座標系100の位置姿勢を表す同次変換行列であり、次の式で表される。
【0046】
【数1】
【0047】
たとえば、対象物がカメラの光軸に対して傾くことがなく、画像に写る対象物の像の移動として合同変換だけを考えればよい場合には、a00~a12は以下のようになる。
a00=cosθ
a01=-sinθ
a02=x
a10=sinθ
a11=cosθ
a12=y
ただし、(x、y)は画像上での位置、θは画像上での回転移動量である。
【0048】
また、対象物がカメラの光軸に対して傾くことはないが、対象物とカメラの距離が一定でない場合は、距離に応じて画像に映る対象物の像の大きさが変わるため、画像に写る対象物の像の移動としては相似変換となる。その場合、a00~a12は以下のようになる。
a00=s・cosθ
a01=-s・sinθ
a02=x
a10=s・sinθ
a11=s・cosθ
a12=y
ただし、sは教示されたモデルパターンの大きさと対象物の像T_jgの大きさの比である。
【0049】
入力画像I_j(j=1~NI)のそれぞれについて同様の処理を行い、トータルでNT個の像が検出されたものとする。なお、トータルの個数NTは次の式で表される。
【0050】
【数2】
【0051】
検出位置R_Tjgを、入力画像I_jに関連付けて検出結果記憶部27に記憶しておく。
【0052】
次に手順102(対応点の選択)について説明する。手順102の処理機能は、対応点選択部222により提供される。手順102において、各入力画像I_j(j=1~NI)から検出された対象物の像T_jg(j=1~NI、g=1~NT_j)の検出位置R_Tjgに基づいて、入力画像I_jから抽出された第2の特徴点Q_jk(j=1~NI, k=1~NQ_j)のうち、モデルパターンを構成する第1の特徴点P_iに対応するものを対応点として選択する。
【0053】
説明のため、モデルパターンを構成する第1の特徴点P_iの位置姿勢をそれぞれ同次変換行列R_Piで表すことにする。R_Piは以下のように記述できる。
【0054】
【数3】
【0055】
b00= vx_Pi
b01=-vy_Pi
b02= tx_Pi
b10= vy_Pi
b11= vx_Pi
b12= ty_Pi
ただし、t_Pi =(tx_Pi, ty_Pi)はモデルパターン座標系でのP_iの位置、v_Pi =(vx_Pi, vy_Pi)はモデルパターン座標系でのP_iの姿勢である。
【0056】
なお、P_iの姿勢をベクトルではなく角度r_Piで表現することもできる。v_Piはr_Piを使って、v_Pi = (vx_Pi, vy_Pi) = (cos r_Pi, sin r_Pi)と表現できる。同様に、入力画像I_jから抽出した第2の特徴点_Q_jkの位置姿勢も、同次変換行列R_Qjkで表すことにする。
【0057】
ここで、モデルパターンを構成する第1の特徴点P_iの位置姿勢R_Piはモデルパターン座標系で表現されており、入力画像I_jから抽出された第2の特徴点Q_jkの位置姿勢R_Qjkは画像座標系で表現されていることに注意が必要である。そこで、両者の関係を明確にしておく。
【0058】
画像I_jに写った対象物の像T_jgにモデルパターンを重ねた時の、画像座標系から見た第1の特徴点P_iの位置姿勢をR_Pi’とすると、R_Pi’は、モデルパターン座標系からみた第1の特徴点P_iの位置姿勢R_Piと、画像座標系から見た像T_jgの検出位置R_Tjgを用いて、以下のように表せる。
R_Pi'=R_Tjg・R_Pi ・・・(1)
【0059】
同様に、対象物の像T_jgにモデルパターンを重ねた時の、モデルパターン座標系から見た第2の特徴点Q_jkの位置姿勢をR_Qjk’とすると、R_Qjk’は、画像座標系から見たQ_jkの位置姿勢R_Qjkと、画像座標系から見た像T_jgの検出位置R_Tjgを用いて、以下のように表せる。
R_Qjk'=R_Tjg-1・R_Qjk ・・・(2)
【0060】
なお、後の説明のため、画像座標系から見たP_iの位置をt_Pi’、画像座標系から見たP_iの姿勢をv_Pi’、画像座標系から見たQ_jkの位置をt_Qjk、画像座標系から見たQ_jkの姿勢をv_Qjk、モデルパターン座標系から見たQ_jkの位置をt_Qjk’、モデルパターン座標系から見たQ_jkの姿勢をv_Qjk’とする。
【0061】
以上を踏まえて、モデルパターンを構成する第1の特徴点P_iと、入力画像I_jから抽出された第2の特徴点Q_jk(j=1~NI, k=1~NQ_j)の対応付けを、以下の手順で行う。
【0062】
B1.入力画像I_jから検出された対象物の像T_jgの検出位置R_Tjgに基づいて、モデルパターンを構成する第1の特徴点P_iの位置姿勢R_Piを、式(1)により、画像座標系から見た位置姿勢R_Pi’に変換する。
【0063】
B2.第1の特徴点P_iのそれぞれについて、第2の特徴点Q_jkの中から最も近いものを探索する。探索には以下のような手法を使うことができる。
(ア)第1の特徴点の位置姿勢R_Pi’と全ての第2の特徴点の位置姿勢R_Qjkとの距離を計算し、最も距離が近い第2の特徴点Q_jkを選択する。
(イ)入力画像I_jの画素数と同じ要素数の2次元配列に、第2の特徴点の位置姿勢R_Qjkをその位置の画素に対応する2次元配列の要素に格納し、2次元配列の第1の特徴点の位置姿勢R_Piに対応する画素近傍を2次元的に探索し、最初に見つかった第2の特徴点Q_jkを選択する。
【0064】
B3.選択された第2の特徴点Q_jkが、その第1の特徴点P_iの対応点として妥当であるか評価する。たとえば、第1の特徴点P_iの位置姿勢R_Pi’と第2の特徴点Q_jkの位置姿勢R_Qjkの距離を計算し、距離が閾値以下であれば、選択された第2の特徴点Q_jkはその第1の特徴点P_iの対応点として妥当であるとする。
【0065】
さらに、第1の特徴点P_iと第2の特徴点Q_jkの姿勢や輝度勾配の大きさなどの物理量の差も合わせて評価して、それらも閾値以下または閾値以上であるときに選択された第2の特徴点Q_jkはその第1の特徴点P_iの対応点として妥当であると判断するようにしてもよい。
【0066】
B4.選択された第2の特徴点Q_jkが、その第1の特徴点P_iの対応点として妥当であると判断した場合は、選択された第2の特徴点Q_jkをその第1の特徴点P_iの対応点O_imとして、P_iに関連付けて検出結果記憶部27に記憶する。対応点O_imの画像座標系から見た位置姿勢R_Oimとすると、R_Oim=R_Qjkであり、これは画像座標系から見た位置姿勢であるので、モデルパターン座標系から見た位置姿勢R_Oim’に変換してから記憶するようにする。R_Oim’は、式(2)により、以下のようにして計算できる。
【0067】
【数4】
【0068】
以上の処理を、入力画像I_j(j=1~NI)から検出されたNT個の検出位置R_Tjg(j=1~NI、g=1~NQ_j)のそれぞれについて行うことにより、モデルパターンのi番目の特徴点P_iに対応すると判定された対応点がNO_i個見つかったものとする。また、モデルパターンのi番目の特徴点P_iに対応するm個目の対応点をO_im(m=1~NO_i)とする。なお、入力画像I_jから検出された対象物の像の総数がNTであるので、NO_i <= NTである。得られた対応点は下記表2のような形態でモデルパターン記憶部26に記憶する。
【0069】
【表2】
【0070】
次に、手順103(検出パラメータに基づく評価)について説明する。ここでは、上記手順102(対応点の選択)により選択された第2の特徴点が第1の特徴点P_iの対応点として妥当であるかを確認する。ここで検出パラメータとしての「対応点の許容距離」を用いる。像T_jgにモデルパターンを重ね合わせた時の、第1の特徴点P_iとそれに対応する第2の特徴点Q_jkとの距離が「対応点の許容距離」以下のときに当該対応点(第2の特徴点)は妥当であるとする。妥当である対応点はP_iの対応点O_iとして検出結果記憶部27に記憶する。
【0071】
上記手順102及び手順103を全ての第1の特徴点P_i(i=1~NP)に対して行うことで、NO個の対応点が選択できたものとする。モデルパターンを構成する第1の特徴点の総数NPと見つかった対応点の数NOを使用して、NO/NPを求めることで、モデルパターンと像T_xの一致度を0.0から1.0の間の値で表現できる。一致度が「一致度の閾値」未満の像T_xは検出結果から除外する。
【0072】
図4のフローに戻り、次にステップS4では、検出結果にラベルを付ける。通常は操作者が目視で確認して、正解/不正解(正しく検出できたか、誤検出だったか)のラベルを付ける。図8は、上記ステップS3での検出処理(手順101~103)により、一例として、入力画像から8個の対象物の像A11-A18が検出され、表示装置32に表示されている状態を表す。操作者は、検出された像の一つ一つに正解(OK)/不正解(NG)のラベルを付ける。ラベル付けは、画像上のラベル画像301の部分をクリック操作することでOK/NGが切り替わるようになっていても良い。図8の例では、操作者は、像A11、A13-A16、A18については正解とし、像A12、A17については不正解としている。
【0073】
次に、ステップS5では、検出結果から正解のラベルを付けた検出結果だけを抜き出し、抜き出した検出結果を、入力画像に対する操作者の期待する検出結果(正解リスト)とする。図8の例の場合には、正解リストには、像A11、A13-A16、A18が含められる。
【0074】
次に、ステップS6-S11のループ処理では、ベイズ最適化により検出パラメータを探索する。まず、新たな検出パラメータ(一致度の閾値及び対応点の許容距離)を設定し(ステップS6)、正解リスト作成に用いた入力画像に対して上述の検出処理(手順101~103)を行うことで検出結果を取得する(ステップS7)。検出結果には検出した画像、検出位置、姿勢、サイズの情報が含まれる。また、この際、検出にかかった処理時間を記録する。
【0075】
次に、ステップS8では、検出率計算部225は、ステップS7で得られた検出結果を正解リストと比較することで、ステップS6で新たに設定した検出パラメータ(一致度の閾値及び対応点の許容距離)で入力画像に対して検出を行った時の未検出率、誤検出率を計算する。この際、検出率計算部225は、検出対象とされた画像が同じものであり(画像に付したID番号が同じであること)、かつ検出位置、姿勢、サイズの差が事前に設定した閾値内に収まっている時に、検出結果が一致したと判定する。
【0076】
検出率計算部225は、正解リストに含まれる全ての検出結果が新たに取得した検出結果に含まれる場合に未検出率がゼロとなるように未検出率を算出する。また、検出率計算部225は、正解リストに含まれない検出結果が新たに取得した検出結果のリストに一つも含まれない場合に誤検出率がゼロとなるように誤検出率を算出する。具体的には、正解リストに含まれる像の数をN個、新たな検出パラメータにより検出された像のうち正解リストに含まれる像の数をm0個とするとき、検出率計算部225は、以下の数式により未検出率を算出しても良い。

(未検出率)=(N-m0)/N

また、正解リストに含まれる像の数をN個、新たな検出パラメータで検出にされた像のうち正解リストに含まれない像の数をm1個とするとき、また、検出率計算部225は、以下の数式により誤検出率を算出しても良い。

(誤検出率)=m1/N
【0077】
次に、ステップS9では、目的関数値計算部226は、ステップS8で計算された未検出率、誤検出率と、ステップS7における検出にかかった処理時間とに対して、重み値入力操作によって入力された重み値によって重み付けした目的関数の値を計算する。この場合、目的関数値計算部226は、操作者による操作盤31を介した操作による重み値の入力を受け付ける。ここで、x1、x2、x3をそれぞれ未検出率、誤検出率、処理時間とし、w1、w2、w3をそれぞれx1、x2、x3に対する重み値とするとき、目的関数fは、以下の数式により表される。
【数5】
【0078】
以上のように目的関数を計算し、目的関数の値が予め設定した設定値より小さくなった時(S10:YES)、または規定数の探索をした時(S11:YES)、探索を終了する。目的関数が設定値以上であり未だ規定数の探索が終了していない場合(S10:NO、S11:NO)、新たな検出パラメータを設定して検出を行うステップS6からS11の一連の処理を再び実行する。
【0079】
上記のようにパラメータ探索処理では、上述のように目的関数を計算し、目的関数の値が最小化乃至は十分に低下したときに検出パラメータの探索を終了させる。以上説明したように、パラメータ設定処理によれば、操作者の試行錯誤なしに、操作者が期待する検出結果を得るのに最適な検出パラメータを自動的に設定することができる。
【0080】
画像処理装置21は、以上の処理により得られた検出パラメータを対象物の検出に用いる検出パラメータとして設定する。
【0081】
以上説明したように、本実施形態によれば、所望の検出結果を得るのに適した検出パラメータの設定を自動化することができる。
【0082】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【0083】
上述の実施形態では、検出パラメータとして「対応点の許容距離」及び「一致度の閾値」を用いたが、これは例示であり、これらに代えて又はこれらに加えて他の検出パラメータが用いられても良い。例えば、検出パラメータとして、エッジ点の輝度勾配方向に許容範囲を設定したり、エッジ点の輝度勾配の大きさに許容範囲を設定しても良い。
【0084】
図4に示した検出パラメータ設定処理におけるステップS6~S11のループ処理(すなわち、ベイズ最適化における検出パラメータの探索処理)においては操作者が予めいくつかの検出パラメータと目的関数の値の計算値を与え、探索処理の時間(探索回数)を低減するようにしても良い。
【0085】
上述の実施形態では、目的関数fとして未検出率、誤検出率、及び処理時間の3つの入力変数を有する関数を用いているが、これらの入力変数の少なくともいずれか一つを入力変数とする目的関数を用いても良い。例えば、未検出率を入力変数とする目的変数を用いた場合、未検出率の低減に適した検出パラメータを探索することができる。検出率計算部225は、未検出率、誤検出率のいずれか一方を算出する構成であっても良い。
【0086】
上述した実施形態における検出パラメータ設定処理等の各種の処理を実行するプログラムは、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
【符号の説明】
【0087】
1 対象物
10 視覚センサ
11 ロボット
12 ハンド
20 視覚センサ制御装置
21 画像処理装置
22 画像処理部
31 操作盤
32 表示装置
221 対象物検出部
222 対応点選択部
223 正解リスト作成部
224 検出結果リスト作成部
225 検出率計算部
226 目的関数値計算部
227 検出パラメータ探索部
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2023-08-01
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
本開示の一態様は、少なくとも1つの入力画像に対する対象物の検出結果の正解リストを記憶可能な少なくとも1つのメモリと、少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサは、検出パラメータに基づいて検出された、少なくとも1つの入力画像に対する対象物の検出結果を取得し、取得した前記検出結果と前記正解リストに基づいて、対象物の検出率に関する目的関数の値を算出し、前記目的関数の値に基づいて、前記検出パラメータを調整する、処理装置である。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも1つの入力画像に対する対象物の検出結果の正解リストを記憶可能な少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
検出パラメータに基づいて検出された、少なくとも1つの入力画像に対する対象物の検出結果を取得し、
取得した前記検出結果と前記正解リストに基づいて、対象物の検出率に関する目的関数の値を算出し、
前記目的関数の値に基づいて、前記検出パラメータを調整する、
処理装置。
【請求項2】
前記少なくとも1つのプロセッサは、前記目的関数の値が所定の条件を満たすか又は前記検出パラメータの探索回数が規定数に達するまで前記検出パラメータの値を調整する、請求項1に記載の処理装置。
【請求項3】
前記目的関数は、未検出率、誤検出率、及び対象物の検出に要した処理時間の少なくともいずれか1つに基づいて算出された値として定義される、請求項1又は2に記載の処理装置。
【請求項4】
前記目的関数は、前記未検出率、前記誤検出率、及び前記処理時間に対して重み値を乗じて加算した値として定義される、請求項3に記載の処理装置。
【請求項5】
前記少なくとも1つのメモリは、対象物を表す基準情報を記憶し、
取得した前記検出結果は、少なくとも1つの入力画像と前記基準情報とのマッチングに基づいて生成される、請求項1から4のいずれか一項に記載の処理装置。
【請求項6】
前記基準情報は、少なくとも1つの特徴点を有し、
前記少なくとも1つの特徴点は、位置、姿勢、輝度勾配の大きさの少なくともいずれかの形式を含む、
請求項5に記載の処理装置。
【請求項7】
前記少なくとも1つのプロセッサは、前記検出パラメータとして、少なくとも1つの入力画像と前記基準情報との間で特徴量のマッチングを行う場合の一致度に関する値の入力を受け付ける、請求項5または6に記載の処理装置。
【請求項8】
前記検出パラメータは、前記基準情報としての前記対象物のモデルパターンの第1の特徴点と、当該第1の特徴点に対応する前記少なくとも1つの入力画像中の第2の特徴点との間の許容距離を含む、請求項7に記載の処理装置。
【請求項9】
前記検出パラメータは、前記モデルパターンの前記第1の特徴点の総数に対する、前記第1の特徴点に対応する前記第2の特徴点として前記許容距離内にあるものの数の比率として定義される一致度についての閾値を更に含む、請求項8に記載の処理装置。
【請求項10】
前記少なくとも1つのプロセッサは、前記重み値を設定するための入力を受け付ける、請求項4に記載の処理装置。
【請求項11】
前記少なくとも1つのプロセッサは、前記目的関数の値に基づく前記検出パラメータの探索にベイズ最適化、ランダムサーチのいずれかを用いる、請求項1から10のいずれか一項に記載の処理装置。
【請求項12】
前記少なくとも1つのプロセッサは、前記目的関数の値が小さくなるように前記検出パラメータを調整する、請求項1から11のいずれか一項に記載の処理装置。
【請求項13】
コンピュータのプロセッサに、
少なくとも1つの入力画像に対する対象物の検出結果の正解リストを取得する手順と、
検出パラメータに基づいて検出された、少なくとも1つの入力画像に対する対象物の検出結果を取得する手順と、
取得した前記検出結果と前記正解リストに基づいて、対象物の検出率に関する目的関数の値を算出する手順と、
前記目的関数の値に基づいて、前記検出パラメータを調整する手順と、
を実行させるためのプログラム。
【請求項14】
前記プロセッサに、更に、前記目的関数の値が所定の条件を満たすか又は前記検出パラメータの探索回数が規定数に達するまで前記検出パラメータの値を調整する手順を実行させる、請求項13に記載のプログラム。
【請求項15】
前記目的関数は、未検出率、誤検出率、及び対象物の検出に要した処理時間の少なくともいずれか1つに基づいて算出された値として定義される、
請求項13又は14に記載のプログラム。
【請求項16】
前記プロセッサに、更に、前記検出パラメータとして、少なくとも1つの入力画像と対象物を表す基準情報との間で特徴量のマッチングを行う場合の一致度に関する値の入力を受け付ける手順を実行させる、請求項13から15のいずれか一項に記載のプログラム。
【請求項17】
処理装置上で実行される方法であって、
少なくとも1つの入力画像に対する対象物の検出結果の正解リストを取得する手順と、
検出パラメータに基づいて検出された、少なくとも1つの入力画像に対する対象物の検出結果を取得する手順と、
取得した前記検出結果と前記正解リストに基づいて、対象物の検出率に関する目的関数の値を算出する手順と、
前記目的関数の値に基づいて、前記検出パラメータを調整する手順と、
を含む方法。