(57)【要約】【課題】  この発明は，従来のパターンマッチングによる物体検出方法を改善し，カメラとの距離が変わってシーン中で大きさが変わったり，対象物が回転している時でも，対象物の画像を複数枚用いることなく，演算量を少なくして高速に検出する。【解決手段】  この物体検出方法は，カメラで撮像した対象物１とシーンとの画像からエッジ抽出処理によって求めた対象物１とシーンにおけるエッジを構成する点同士の位置の偏差を求め，その出現回数から対象物１の移動量や回転量を求める。この物体検出方法は，従来のパターンマッチングに比べて扱うデータ量が少なく，演算も加減算だけでよいため，シーン中の対象物１の位置や対象物１の回転方向を高速で検出することができる。【選択図】図１
2008234261.tif 000002
【特許請求の範囲】
【請求項１】
カメラによって撮像した画像を画像処理することによってシーン中での対象物の位置を検出する物体検出方法において，
前記対象物の画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第一の点群を構成する点を所定の倍率だけ拡大・縮小した第三の点群を求め，前記シーンの画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第二の点群を求め，前記第二の点群と前記第三の点群とを構成するそれぞれの点の全ての組合せについて，前記第二の点群を構成する点の位置情報と前記第三の点群を構成する点の位置情報との編差の頻度を求め，前記倍率の値を変えながら求めた複数の前記第三の点群において画像処理を実行し，前記位置情報の偏差の頻度が最も多いときの偏差と前記第三の点群の前記倍率とによって前記対象物の前記シーン中での位置と拡大・縮小率とを検出することを特徴とする物体検出方法。
【請求項２】
カメラによって撮像した画像を画像処理することによってシーン中での対象物の位置を検出する物体検出方法において，
前記対象物の画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第一の点群を構成する点を，所定の回転角度だけ回転且つ所定の倍率だけ拡大・縮小した第三の点群を求め，前記シーンの画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第二の点群を求め，前記第二の点群と前記第三の点群とを構成するそれぞれの点の全ての組合せについて，前記第二の点群を構成する点の位置情報と前記第三の点群を構成する点の位置情報との編差の頻度を求め，前記回転角度と前記倍率の値を変えながら求めた複数の前記第三の点群において前記偏差の頻度を求める処理を実行し，前記位置情報の偏差の頻度が最も多いときの偏差と前記第三の点群の前記回転角度と前記倍率とによって前記対象物の前記シーン中での位置と方向と拡大・縮小率を検出することを特徴とする物体検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は，対象物をカメラで撮像した画像を画像処理することによって対象物を検出する物体検出方法に関する。
【背景技術】
【０００２】
従来，カメラで撮像した対象物の画像を画像処理により対象物を検出する技術は，産業界の様々な分野で利用されている。例えば，産業用ロボットは，予めプログラムされた位置に基づいて動作しており，作業対象のワークが何らかの理由で所定の位置からずれると，産業用ロボットがワークに対する作業が実行できなくなる。そこで，カメラを使って撮像した画像から，画像処理により対象物であるワークの位置を求め，そのワークの位置に応答してロボットの位置を補正する手段がとられている。また，半導体技術分野での応用例では，電気回路の基板上にＩＣ，抵抗等の部品を設置する組立装置において，基板上に設置する部品が所定の位置に配置されるように，カメラにより電気回路の基板上の穴，マーク等の部分を撮像し，撮像した画像の位置の画像処理を行って電気回路の基板全体の位置を補正している。  
【０００３】
また，その他の物体検出の応用例では，従来，動き検出方法として，動画像中において複数のオブジェクトが動きを有して重複することにより，各オブジェクトが変形しても正確に各オブジェクトについての動きベクトルを検出するものが知られている。該動き検出方法は，動画像を構成する第１の画像に含まれる複数の動画像オブジェクトについて，エッジ抽出を行って第１の輪郭情報を得るとともに，動画像を構成した第１の画像と時間的に前後する第２の画像に含まれる複数の動画像オブジェクトについてエッジ抽出を行って第２の輪郭情報を得て，各動画像オブジェクトごとに第１の輪郭情報を第２の輪郭情報にマッチングさせてマッチング位置を検出し，上記マッチング位置に基づいて，各動画像オブジェクトについての動きベクトルを推定し，上記マッチング位置に基づいて，第１の輪郭情報と第２の輪郭情報との一致度を示す変形率を，各動画像オブジェクトについて演算し，上記各動画像オブジェクトの変形率のうち，最小の値の変形率を有する動画像オブジェクトの動きベクトルを，上記推定した動きベクトルに確定するものである（例えば，特許文献１参照）。
【０００４】
このような物体の検出のための画像処理では，主にパターンマッチングが用いられる。パターンマッチングでは，予め対象物の画像を登録しておき，実際の作業において対象物を含むシーンの画像を撮像し，その画像と登録画像との相関値を計算してその値によって対象物の有無や位置を検出している（例えば，非特許文献１参照）。  
【０００５】
図８にはパターンマッチングの処理の例が示されている。図８の（ａ）には，登録された対象物１のモデルの濃淡画像である登録画像３０が示されており，図８の（ｂ）には，対象物１を含むシーンの濃淡画像であるシーン画像３１が示されている。ここで，登録画像３０のサイズを，横をｍとし，縦をｎとし，画像を構成する画素の濃淡値を〔数１〕で表わす。
【０００６】
【数１】
2008234261.tif 000003
例えば，図の左上の画素の濃淡値はｆ（１，１），右下の画素の濃淡値はｆ（ｍ，ｎ）である。一方，シーン画像３１のサイズを横がＭ，縦がＮとし画像を構成する画素の濃淡値を〔数２〕で表わす。
【０００７】
【数２】
2008234261.tif 000004
同様に図の左上の画素の濃淡値はｇ（１，１），右下の画素の濃淡値はｇ（Ｍ，Ｎ）である。これより二つの画像の相関値は，〔数３〕で与えられる。
【０００８】
【数３】
2008234261.tif 000005
ここで，ｘとｙは登録画像３０のシーン画像３１中での比較する位置を表しており，パターンマッチングにおいては，ｘとｙを変えながら上式の値を計算し，その値が最大となるｘとｙを求めている。図８（ｂ）のシーン画像３１においてはＸとＹの時が最大となり，これらの値から対象物１の位置を求めている。また，〔数３〕の値は１より小さく，二つの画像が全く同一のときに１となる。
【特許文献１】特開２０００−２５９８３７号公報
【非特許文献１】昭晃堂発行「画像処理ハンドブック」（第３０３，３０４頁）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一般的には，直観的にはパターンマッチングの処理は，登録画像をシーン画像上で重ねてずらしていき，画像同士が最も一致したときに相関値が最大となる。しかしながら，図９に示すように，カメラと対象物１の距離が変化し画面中での大きさが変わり，あるいは対象物１が回転している場合に，図８（ａ）の登録画像３０と重ねても一致しないことから分かるように対象物１の検出ができなくなる。ここで，カメラと対象物との距離が変化する場合というのは，通常，カメラは固定されているため対象物の相対位置が変化する場合であり，例えば，ロボットによるパレタイジング作業やビンピッキング作業などがある。パレタイジング作業は，段ボール箱や搬送用のケースなどが整列して積み上げられている中から，ロボットが上に積まれたケースから所定のケースを取り出す作業であり，あるいは逆にロボットがケースを積み上げる作業である。これらの作業においては，カメラは積み上げられるケースの上に固定されるが，ケースの量によって高さが変わるため，カメラとの距離が変わることになる。また，ビンピッキング作業は，運搬用箱の中に複数のパーツが山積み状態で置かれており，それをロボットが上から一つずつ取り出す作業である。これも，作業の進行状況によって山の高さが変わるため，運搬用箱の上に固定されたカメラからの距離が変わることになる。このような作業以外にも，例えば，移動ロボットにカメラを搭載して目印となる場所のマークを検出する場合において，移動ロボットとマークの距離は変化するため，カメラと対象物との距離が変わってくる。このようにカメラと対象物の距離が変わると画面中での対象物の大きさが変わるため，それに対応した，即ち対象物の拡大・縮小に対応した物体検出法が必要となってくる。これによって画面中での対象物の拡大・縮小率を取得することによって，レンズの焦点距離などの光学的条件から実際のカメラと対象物との距離を計算できるため，ロボットによる適切な作業が可能となる。
【００１０】
しかし，パターンマッチングの手法では上記の対象物の回転に対応するためだけでも，図１０に示すように，対象物１を少しずつ回転させた画像を登録しておき，それぞれの登録画像に対して〔数３〕により相関値を求め，相関値が最大となるときの登録画像の回転角度とｘとｙから対象物１の位置と回転方向を求めている。このとき，対象物１の回転角度を１度間隔にした場合に，３６０枚の登録画像を使うことになり，登録画像が１枚のときの３６０倍の処理時間がかかることになるため，実用性が失われてしまう。さらに，画面中で対象物の大きさの変化に対応するには，登録画像の数が増えることは言うまでもない。
【００１１】
従来の物体検出方法は，主として，パターンマッチングの方法が取られており，パターンマッチングは，予め登録した対象物の画像を実際のシーンの画像上で動かしてゆき，シーン画像との一致度が大きい位置を検出する処理である。しかしながら，上記のようなパターンマッチングによる物体検出方法では，対象物がシーン中での大きさが変化したり回転していると，登録した画像と一致しないため，対象物が検出ができないという問題があった。また，従来の物体検出方法では，このような場合には，登録画像として大きさと回転角度の異なる対象物の画像を複数枚用いることになり，そのため，演算量が多くなり，処理に時間がかかるという問題があった。
【００１２】
この発明の目的は，上記の課題を解決することであり，産業用ロボット，半導体製造装置等の各種装置に適用されるものであり，カメラを使用してシーンを撮像し，撮像された画像を画像処理することによって，登録されている対象物の画像を検出してシーン中での対象物の位置を求めたり，さらに，対象物が回転した場合，あるいはカメラと対象物の距離が変化し画面中での大きさが変わった場合でも，対象物を検出することができるものであり，画像からエッジ抽出処理によるエッジ情報を用いて高速に対象物の検出ができる物体検出方法を提供することである。
【課題を解決するための手段】
【００１３】
この発明は，カメラによって撮像した画像を画像処理することによってシーン中での対象物の位置を検出する物体検出方法において，
前記対象物の画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第一の点群を構成する点を所定の倍率だけ拡大・縮小した第三の点群を求め，前記シーンの画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第二の点群を求め，前記第二の点群と前記第三の点群とを構成するそれぞれの点の全ての組合せについて，前記第二の点群を構成する点の位置情報と前記第三の点群を構成する点の位置情報との編差の頻度を求め，前記倍率の値を変えながら求めた複数の前記第三の点群において画像処理を実行し，前記位置情報の偏差の頻度が最も多いときの偏差と前記第三の点群の前記倍率とによって前記対象物の前記シーン中での位置と拡大・縮小率とを検出することを特徴とする物体検出方法に関する。
【００１４】
また，この発明は，カメラによって撮像した画像を画像処理することによってシーン中での対象物の位置を検出する物体検出方法において，
前記対象物の画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第一の点群を構成する点を，所定の回転角度だけ回転，かつ所定の倍率だけ拡大・縮小した第三の点群を求め，前記シーンの画像からエッジ抽出処理によって求めたエッジを構成する点の全て又は一部から成る第二の点群を求め，前記第二の点群と前記第三の点群とを構成するそれぞれの点の全ての組合せについて，前記第二の点群を構成する点の位置情報と前記第三の点群を構成する点の位置情報との編差の頻度を求め，前記回転角度と前記倍率の値を変えながら求めた複数の前記第三の点群において前記偏差の頻度を求める処理を実行し，前記位置情報の偏差の頻度が最も多いときの偏差と前記第三の点群の前記回転角度と前記倍率とによって前記対象物の前記シーン中での位置と方向と拡大・縮小率を検出することを特徴とする物体検出方法に関する。
【発明の効果】
【００１５】
この物体検出方法は，上記のように構成されているので，対象物のエッジ情報のみ扱うためデータ量が少なくなり，パターンマッチングに比べて演算量が少なくなり，加減算のみの演算処理で画像処理が実行でき，それによって，高速で移動しているシーン中での対象物の位置を検出できる。また，この物体検出方法は，予め回転や拡大・縮小した対象物の位置情報を取得しておくことにより，画面中で対象物の大きさが変わったり，対象物が回転している場合でも，上記のように，加減算のみの演算処理で画像処理が実行でき，シーン中での対象物の位置を高速で検出することができる。
【発明を実施するための最良の形態】
【００１６】
この発明による物体検出方法は，概して，対象物とシーンにおけるエッジを構成する点同士の位置の偏差を求め，その出現回数から対象物の移動量や拡大・縮小率，回転量を求めるものであり，従来のパターンマッチングに比べて，扱うデータ量が少なくなり，演算も加減算だけでよいため高速で対象物の物体検出が可能になるものである。
【００１７】
以下，図面を参照して，この発明による物体検出方法の実施例について説明する。この発明による物体検出方法では，検出に用いるのは対象物１のエッジ情報である。対象物１のエッジ情報とは，主に対象物１の輪郭情報であり，微分オペレータ等を画像に施すことによって得ることができる。図３には，対象物１及びシーン画像３１でのエッジ情報の例が示されている。図３（ａ）は，図８（ａ）の対象物１のエッジ画像であり，また，図３（ｂ）は，図８（ｂ）のシーン画像３１のエッジ画像であり，これらは各種の物体の輪郭のみの情報である。この物体検出方法においては，対象物１のエッジとシーン画像３１のエッジとのマッチングになり，〔数３〕に示すように，パターンマッチングにおいて登録画像の全ての点を計算に用いるのに比べて，エッジ情報を用いることによって扱うデータ量が少なくなり，処理時間の高速化を図ることができる。
【００１８】
次に，この物体検出方法の原理を，図６に示すような簡単な実例を用いて説明する。この実例では，エッジではなく，三角形の頂点で説明する。図６に示すように，三角形２が平行移動により三角形３に移動したときの移動量を求める。まず，三角形２の頂点をａ１，ａ２，ａ３とし，それぞれのｘ，ｙ座標を（２，２），（２，６），（８，６）とする。ここで，原点は画面の左上になる。また，三角形３の頂点をｂ１，ｂ２，ｂ３とし，それぞれのｘ，ｙ座標を（１４，１３），（８，９），（８，１３）とする。そこで，頂点ａ１，ａ２，ａ３と，頂点ｂ１，ｂ２，ｂ３の全ての組合せ９通りについて位置の偏差を表１に示す。
【００１９】
【表１】
2008234261.tif 000006
例えば，最初の行は，もし，ａ１とｂ１とが対応するとしたら，そのときの平行移動量が偏差（１２，１１）となることを意味している。そこで，この偏差の出現回数に着目すると，実際の平行移動量に対応する偏差の回数が最も多くなることが分かる。そこで，偏差の頻度を求めるのに，図７に示す投票テーブルを用いることとする。投票テーブルのそれぞれの四角が投票箱であり，横方向の位置はｘ方向の偏差，縦方向の位置はｙ方向の偏差を表す。表１より偏差（０，３），（０，７），（６，３），（６，１１），（１２，７），（１２，１１）は，それぞれ一回出現しており，対応する各投票箱には１が入り，偏差（６，７）は，三回の頻度のため対応する投票箱に３が入り，これが最も頻度が多いため三角形２から三角形３への平行移動量は（６，７）となることが分かる。この例では，三角形の頂点を用いて説明したが，実際には，対象物１の輪郭であるエッジを構成する点について同様な処理を行うことによって，対象物１の移動量を求めることができる。
【実施例１】
【００２０】
次に，図１を参照して，上記の原理を基にして，この発明による物体検出方法の一実施例（＝実施例１）の画像処理について説明する。実施例１は，対象物１がシーン中で大きさが変わり，かつ平行移動している場合である。画像処理は，予め実行するモデル登録と実際の物体即ち対象物１の検出に分かれる。図１の（ａ）がモデル登録の処理の流れである。対象物１だけの画像であるモデル画像１０からエッジ処理１１によってエッジを抽出し，その各点の座標１２（ｘi ，ｙi ）ｉ＝ｌ，．．．，ｐを求める。これらは，図３の（ａ）に示す対象物１の輪郭線の座標に対応するものである。次に，処理１３において，座標１２を０．９倍，１．０倍，１．１倍した座標１４を計算する。
この座標１４は，（ｘｓ，i ，ｙｓ，i ）ｉ＝ｌ，．．．，ｐ    ｓ＝１，２，３で表し，ｓが１の時が０．９倍，２の時が１．０倍，及び３の時が１．１倍に拡大したときである。これらの座標は，図４に示すように，対象物１の大きさを変化させたときの輪郭線の位置情報になる。また，実施例１では，拡大・縮小率を０．９倍，１．０倍，１．１倍としているが，実際の状況に応じた倍率で構わないことは勿論である。
【００２１】
これらの座標１４を基にした物体検出の処理の流れを図１の（ｂ）に示す。まず，シーン画像１５からエッジ処理１６によってエッジを抽出し，エッジの各点の座標１７（Ｘj ，Ｙj ）ｊ＝ｌ，．．．，ｑを求める。これらは図３の（ｂ）に示す対象物１や楕円，三角形の輪郭線に対応することである。次に，画像処理１８を，ｓをｌから３まで，ｉを１からｐまで，さらにｊをｌからｑまで変えて繰り返す。画像処理１８では，各拡大・縮小率ｓのときのｉとｊの繰り返しにより，モデルのエッジの座標１４とシーン画像１５のエッジの座標１７の全ての組合せについて偏差ｄｘ，ｄｙを計算し，投票テーブルでその頻度を求める。ここで，三次元の配列Ｖが投票テーブルを表し，初期値は全ての値が０であり，添字の値が拡大・縮小率と偏差を表し，ここでは，Ｖ（ｓ，ｄｘ，ｄｙ）のカウント値を一つ増やしている。最後に処理１９によって配列Ｖ（ｓ，ｘ，ｙ）の最大となるｓとｘ，ｙとを求める。この値が対象物１のシーン画像１５中での拡大・縮小率と移動量になる。また，ここでは図示していないが，モデル画像１０のエッジ処理１１で求めた点の座標１２，及びシーンのエッジ処理１６で求めた点の座標１７については，必ずしもエッジ処理で求まった全ての点を用いる必要はなく，画像処理の高速化のために対象物の位置が特定できる程度にエッジの一部の点を用いることができることは勿論である。
【実施例２】
【００２２】
次に，図２を参照して，この発明による物体検出方法の別の実施例（＝実施例２）の画像処理について説明する。実施例２は，対象物１の大きさが変化し，さらに回転している場合の物体検出の処理の流れによる物体検出方法である。図２に示すように，処理は予め実行するモデル登録と実際の物体検出に分かれる。図２の（ａ）がモデル登録の処理の流れである。実施例２は，実施例１と同様に，最初に対象物１のモデル画像２０からエッジ処理２１によってエッジの点の座標２２（ｘi ，ｙi ）ｉ＝ｌ，．．．，ｐを求める。
これらのエッジの点は，図３の（ａ）に示すように，対象物１の輪郭線に対応するものである。
次に，処理２３において，座標２２を０．９倍，１．０倍，１．１倍に拡大・縮小し，さらに１度から３５９度まで１度間隔で回転させた座標２４を計算する。この座標２４は，（ｘｓ，ｒ，ｉ，ｙｓ，ｒ，ｉ）  ｉ＝１，．．．，ｐ  ｓ＝１，２，３  
ｒ＝１，２，．．．，３５９  で表し，ｓが実施例１と同じ拡大・縮小率，ｒが回転角度である。
これらの座標は，図５に示すように，対象物１を拡大・縮小および回転させたときの輪郭線の位置情報である。図５では，上段の画像は対象物１をそのまま，即ち拡大・縮小率１倍で回転させたデータである。一方，中段の画像は対象物１を０．９倍に縮小したモデル４１をさらに所定の角度だけ回転させたデータ，下段は対象物１を１．１倍に拡大したモデル４２をさらに所定の角度だけ回転させたデータである。また，実施例２では，拡大・縮小率を０．９，１．０，及び１．１倍，回転角度を１度から３５９度までとしているが，実際の状況に応じた回転角度で構わないことは勿論である。
【００２３】
図２の（ｂ）を参照して，上記の座標２４を基にした物体即ち対象物１の検出の処理の流れを説明する。まず，シーン画像２５からエッジ処理２６によってエッジの各点の座標２７（Ｘj ，Ｙj ）ｊ＝１，．．．，ｑを求める。次に，ｓを１から３まで，ｒをｌから３５９まで，ｉをｌからｐまで，更に，ｊをｌからｑまで変えて画像処理２８を繰り返す。画像処理２８では，各拡大・縮小率ｓと各回転角度ｒのときのｉとｊの繰り返しにより，モデルのエッジの座標２４とシーン画像２５のエッジの座標２７の全ての組合せについて偏差ｄｘ，ｄｙを計算し，投票テーブルでその頻度を求める。ここで，四次元の配列Ｖが投票テーブルを表し，初期値は全ての値が０であり，添字の値が拡大・縮小率と回転角度，偏差を表し，ここでは，Ｖ（ｓ，ｒ，ｄｘ，ｄｙ）のカウント値を一つ増やしている。最後に処理２９によって配列Ｖ（ｓ，ｒ，ｘ，ｙ）の最大となるｓとｒ，ｘ，ｙとを求める。この値が対象物１のシーン画像２５中での拡大・縮小率と回転量および移動量になる。
【００２４】
この物体検出方法では，上記のように，モデルとシーンにおけるエッジを構成する点同士の位置の偏差を求め，その出現回数から対象物１の移動量と拡大・縮小率と回転量を求めている。従って，この物体検出方法は，パターンマッチングと比べて，扱うデータ量が少なく，演算も加減算だけでよいため，物体即ち対象物１を高速で検出することができる。
【産業上の利用可能性】
【００２５】
この発明による物体検出方法は，例えば，対象物の物体検出が可能となるため，産業用ロボットによるハンドリング作業，半導体製造装置や組立装置における基板の位置合わせ作業に適用することができる。
【図面の簡単な説明】
【００２６】
【図１】この発明による物体検出方法の第１実施例について，処理の流れを示す説明図である。
【図２】この発明による物体検出方法の第２実施例について，処理の流れを示す説明図である。
【図３】対象物とシーンとのエッジ処理を示す説明図である。
【図４】第２実施例のモデルの登録を示す説明図である。
【図５】この発明による物体検出法の第２実施例について，モデルの登録を示す説明図である。
【図６】この発明による物体検出方法の原理を示す説明図である。
【図７】投票テーブルを示す説明図である。
【図８】従来の物体検出方法の一例を示す説明図である。
【図９】従来の物体検出方法における対象物が拡大・縮小及び回転した例を示す説明図である。
【図１０】従来の物体検出方法における対象物が種々に回転した別の例を示す説明図である。
【符号の説明】
【００２７】
１    対象物
２    移動前の三角形
３    移動後の三角形
１０  モデル画像
１１  エッジ処理
１２  モデルのエッジ点の座標
１３  モデルのエッジ点の拡大・縮小処理
１４  拡大・縮小したエッジ点の座標
１５  シーン画像
１６  エッジ処理
１７  シーンのエッジ点の座標
１８  投票処理
１９  投票テーブルの最大値を求める処理
２０  モデル画像
２１  エッジ処理
２２  モデルのエッジ点の座標
２３  モデルのエッジ点の拡大・縮小処理と回転処理
２４  拡大・縮小と回転したエッジ点の座標
２５  シーン画像
２６  エッジ処理
２７  シーンのエッジ点の座標
２８  投票処理
２９  投票テーブルの最大値を求める処理
３０  モデルの濃淡画像
３１  シーンの濃淡画像
４１  対象物を縮小したモデル
４２  対象物を拡大したモデル
【図１】
2008234261.tif 000007
【図２】
2008234261.tif 000008
【図３】
2008234261.tif 000009
【図４】
2008234261.tif 000010
【図５】
2008234261.tif 000011
【図６】
2008234261.tif 000012
【図７】
2008234261.tif 000013
【図８】
2008234261.tif 000014
【図９】
2008234261.tif 000015
【図１０】
2008234261.tif 000016