(57)【特許請求の範囲】
【請求項１】
物体を撮像して得られる濃淡画像に対して、物体の少なくとも一部が横切るようなウィンドウ枠を有するウィンドウを、物体がおおよそ存在する位置に予め設定し、ウィンドウ枠に沿って濃淡画像を走査して各画素の画素データに基づいてウィンドウ枠上での物体の有撫を判断し、物体が存在するウィンドウ枠の位置に応じて濃淡画像を走査する走査方向と走査線移動方向とを選択するとともに、選択された走査線移動方向に沿って走査線を移動させながら、ウィンドウ内における走査線上での画素データに基づいて当該走査線上での物体の位置を検出し、さらに前記走査線移動方向に沿って移動させながら検出した各走査線上での物体の位置に基づいてウィンドウ内における物体の位置と姿勢を求めることを特徴とする物体の認識方法。
【請求項２】
撮像して得られる濃淡画像を濃度に基づいて二値化することで物体と背景とに分離された二値画像を得るとともに、この二値画像を走査したときの画素データの値が、所定の長さだけ連続して物体に対応する値と一致するかを判断することで走査線上での物体の位置を検出することを特徴とする請求項１記載の物体の認識方法。
【請求項３】
撮像して得られる濃淡画像を濃度に基づいて二値化することで物体と背景とに分離された二値画像を得るとともに、この二値画像を走査したときの画素データの値が最初に物体に対応する値と一致した画素を候補点とし、次に、走査線上を候補点より所定距離進んだ画素から候補点の方へ戻る方向に走査し、候補点に到達するまでに物体に対応する値と一致する値を持った画素データが存在する場合に当該画素データの位置を走査線上での物体の位置とすることを特徴とする請求項１記載の物体の認識方法。
【請求項４】
撮像して得られる濃淡画像を空間微分することで微分値画像と濃度方向画像を得るとともに、この微分値画像を走査したときに微分値が所定値以上となる画素を検出してその画素における濃度方向を物体と背景の境界の候補点として記憶し、次に、走査線上の候補点より所定距離内に候補点の濃度方向値と略１８０°異なる濃度方向値を有し且つ微分値が所定値以上である画素が存在する場合に当該画素の位置を走査線上での物体の位置とすることを特徴とする請求項１記載の物体の認識方法。
【請求項５】
撮像して得られる濃淡画像を空間微分することで微分値画像と濃度方向画像を得るとともに、この微分値画像を走査したときに微分値が所定値以上となる画素を検出してその画素における濃度方向を物体と背景の境界の候補点として記憶し、次に、走査線上を候補点より所定距離進んだ画素から候補点の方へ戻る方向に走査し、候補点に到達するまでに候補点の濃度方向値と略１８０°異なる濃度方向値を有し且つ微分値が所定値以上である画素が存在する場合に当該画素の位置を走査線上での物体の位置とすることを特徴とする請求項１記載の物体の認識方法。
【請求項６】
物体を撮像して得られるカラー画像から物体を表す特定色を抽出することで濃淡画像を作成することを特徴とする請求項１記載の物体の認識方法。
【請求項７】
ウィンドウ枠に沿って濃淡画像を走査したときの物体の有無の判断結果に応じて、物体が存在するウィンドウ枠の位置を含むウィンドウ枠の一辺と略平行な方向を走査方向に選択することを特徴とする請求項１記載の物体の認識方法。
【請求項８】
ウィンドウ枠に沿って濃淡画像を走査したときの物体の有無の判断結果に応じて、物体が存在するウィンドウ枠の位置を含むウィンドウ枠の一辺と略平行な方向のみを空間微分の方向としたことを特徴とする請求項４又は５記載の物体の認識方法。
【請求項９】
ウィンドウ枠に沿って濃淡画像を走査したときの物体の有無の判断結果に応じて、物体が存在するウィンドウ枠の位置を含むウィンドウ枠の一辺を第一の走査線とするとともに、第一の走査線に対向するウィンドウ枠の他の一辺を第二の走査線とし、第一の走査線に基づいて選択された走査線移動方向へ第一の走査線と第二の走査線の間の距離の略２分の１だけ離れた位置に走査線を移動させ且つこの走査線上での物体の有無を判断し、物体が有る場合には物体が有ると判断した走査線を新たに第一の走査線とし、物体が無い場合には物体が無いと判断した走査線を新たに第二の走査線とするとともに、選択された走査方向と逆方向へ第一の走査線と第二の走査線の間の距離の略２分の１だけ離れた位置に走査線を移動させ且つこの走査線上での物体の有無を判断する処理を、第一の走査線と第二の走査線とが隣合うようになるまで繰り返し、処理の繰り返しが終了した時点における第一の走査線上の物体の位置を求めることを特徴とする請求項１記載の物体の認識方法。
【請求項１０】
物体が存存するウィンドウ枠上における物体の方向に略直交するように所定距離だけ離れた位置に走査線を移動させ、この走査線上で物体の有無を判断し、物体が有る場合には、この走査線上における物体の方向に略直交するように所定距離だけ離れた位置に走査線を移動させて物体の有撫を判断するとともに、物体が無い場分には、一つ前の走査線上における物体の方向に略直交するように始めの所定距離より短い距離だけ離れた位置に走査線を移動させて物体の有無を判断する処理を、既に物体有無の判断処理を行った走査線の位置に達するまで繰り返し、最終の走査線位置を物体の位置として求めることを特徴とする請求項１記載の物体の認識方法。
【請求項１１】
走査線上における物体の有無を判断するためのパラメータを物体の濃淡画像における濃度値ごとに予め登録しておき、ウィンドウ枠上で物体の有無を判断する時に、走査線上の各点の濃度値を、既に登録してある物体の濃淡画像における濃度値と比較することで予め登録されたパラメータのうちから最適なパラメータを選択し、選択したパラメータを用いて走査線上における物体の有無を判断することを特徴とする請求項１記載の物体の認識方法。
【請求項１２】
予め複数の物体を個々に分離させた後、物体を単体ごとに撮像して濃淡画像を得ることを特徴とする請求項１記載の物体の認識方法。
【請求項１３】
予め濃淡画像内の各画素における物体の存在位置までの距離を測定して登録しておき、物体の位置と姿勢を求める際に、求めた物体の濃淡画像上での位置と、登録された物体までの距離とを参照して、三次元での物体の位置と姿勢を求めることを特徴とする請求項１記載の物体の認識方法。
【請求項１４】
求めた物体の位置における走査線と、この走査線から所定距離だけ離れた位置にある別の走査線上での物体の位置とから物体の姿勢を求めることを特徴とする請求項１記載の物体の認識方法。
【請求項１５】
求めた物体の位置における画素の濃度方向から物体の姿勢を求めることを特徴とする請求項４又は５記載の物体の認識方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物体を撮像して得られる濃淡画像に基づいて物体の位置と姿勢を認識する物体の認識方法に関する。
【０００２】
【従来の技術】
従来より、所謂ピックアンドプレイス（物体を保持して所定の位置に移動させる装置）やロボット等により部品（物体）を拾い上げる時、特に部品が位置決めされていないような場合には、撮像装置により撮像した部品の画像を画像処理することで部品の位置と姿勢を認識した後、認識された部品の位置と姿勢の情報を用いてロボット等による作業が行われていた。このような場合の画像処理には高速な処理が要求されるため、二値化された画像（二値画像）を使って重心と２次モーメントを求めることにより物体の位置と姿勢を認識する方法が一般に採られている。
【０００３】
【発明が解決しようとする課題】
しかし、上記従来方法では、部品を撮像した画像を構成する全ての画素に対して処理を行うため、検出精度を高めるために分解能の高い画像、すなわち、画像サイズが大きい画像になると、計算量が多く処理時間がかかるという問題がある。また、二値画像を用いる画像処理において検出精度を高めるためには、認識対象となる物体と背景とのコントラストが高いことが必要となるが、実際の生産ラインでは、部品と背景とのコントラストを高くすることができない場合があり、精度の高い位置と姿勢の認識の妨げとなっている。
【０００４】
本発明は上記問題に鑑みて為されたものであり、その目的とするところは、二値画像並びに多値画像の両画像に対応できる高速な物体の認識方法を提供することにある。
【０００５】
【課題を解決するための手段】
請求項１の発明は、上記目的を達成するために、物体を撮像して得られる濃淡画像に対して、物体の少なくとも一部が横切るようなウィンドウ枠を有するウィンドウを、物体がおおよそ存在する位置に予め設定し、ウィンドウ枠に沿って濃淡画像を走査して各画素の画素データに基づいてウィンドウ枠上での物体の有撫を判断し、物体が存在するウィンドウ枠の位置に応じて濃淡画像を走査する走査方向と走査線移動方向とを選択するとともに、選択された走査線移動方向に沿って走査線を移動させながら、ウィンドウ内における走査線上での画素データに基づいて当該走査線上での物体の位置を検出し、さらに前記走査線移動方向に沿って移動させながら検出した各走査線上での物体の位置に基づいてウィンドウ内における物体の位置と姿勢を求めることを特徴とし、物体がおおよそ存在する位置に設定されたウィンドウ枠上での物体の有無を判断して処理の最初に物体のおおよその位置・方向を求め、その情報に基づき走査線を移動させて物体の詳細な位置と姿勢の認識を行うことにより、物体の存在している可能性の高い位置に効率良く物体検出のための走査線の位置を設定でき、物体の位置と姿勢を求める処理の回数を減らすことができる。
【０００６】
また、走査線上における物体の有無の判断は走査線上の画素データの変化に基づいて行うため、請求項４の発明のように、濃淡画像を空間微分して得られる微分値画像も使用でき、コントラストの低い物体の画像に対しても物体と背景との境界を良く表した画像を使って物体の位置と姿勢を認識することができる。
【０００７】
【発明の実施の形態】
（実施形態１）
図１は本実施形態における物体の認識方法を実現するためのシステム構成を示すブロック図である。なお、本実施形態は濃淡画像を二値化して得られる二値画像を用いて物体の位置と姿勢の認識処理を行うものである。
【０００８】
テレビカメラのような撮像装置１により対象物（物体）を撮像し、撮像したアナログ画像をＡ／Ｄ変換部２においてディジタル値に変換することで図２に示すような濃淡画像を得ている。ここで、濃淡画像とは、各画素ごとに濃度に応じた値（画素データ）が与えられた画像をいう。次に、この濃淡画像の中の物体の部分（図２中のＡの部分、以下、物体Ａと表記する）と、物体Ａ以外の背景の部分（図２中のＢの部分、以下、背景Ｂと表記する）とを各々の明るさ（濃度値＝画素データ）に応じて分離するように、濃淡画像を画像蓄積部３において二値化し、得られた二値画像を図示しない画像処理装置内のメモリに蓄える。
【０００９】
図２に示した濃淡画像を二値化して得られる二値画像を図３に示す。このように、本実施形態の場合では、物体Ａは’１’（明部）、背景は’０’（暗部）に二値化される。この二値画像に対して、ウィンドウ生成部４では、図４に示すように、矩形のウィンドウ枠Ｆの少なくとも一辺ｆ１  〜ｆ４  が物体Ａを横切るようにウィンドウＷを設定する。なお、説明を簡単にするために、ウィンドウ枠Ｆの上辺をｆ１  、右辺をｆ２  、下辺をｆ３  、左辺をｆ４  と表記する（図４参照）。また、上辺ｆ１  及び下辺ｆ３  に平行な軸をｘ軸、右辺ｆ２  及び左辺ｆ４  に平行な軸をｙ軸とする二次元直交座標系を想定する。
【００１０】
そして、物体初期検出部５は、図５のフローチャートに示すような処理を行なって、物体Ａと交差するウィンドウ枠Ｆの辺ｆ１  〜ｆ４  を検出する。図５を参照して上記検出処理をさらに詳しく説明する。まず、ウィンドウ枠Ｆの何れかの辺ｆ１  〜ｆ４  上に走査開始点を設定し、走査開始点に設定された画素から各辺ｆ１  〜ｆ４  に沿って順次アドレスを進ませながら、各画素のデータにより物体Ａの存在を検出する。すなわち、画素データが「１」の場合には物体Ａ有り、「０」の場合には物体Ａ無しというように判断する。そして、物体Ａと交差する（横切る）ウィンドウ枠Ｆの辺（図４の場合であれば下辺ｆ３  ）が検出できれば、その辺ｆ３  を記憶し、ウィンドウ枠Ｆの全ての辺ｆ１  〜ｆ４  についての走査が終わればこの処理は終了する。なお、何れの辺ｆ１  〜ｆ４  も物体Ａと交差していない場合には、ウィンドウ生成部４において再度別のウィンドウＷを設定し、新しいウィンドウＷに対して上記検出処理を行なえばよい。
【００１１】
次に走査方向選択部６は、図６のフローチャートに示すような処理を行ない、物体初期検出部５の検出結果に応じて、ウィンドウ枠Ｆの上辺ｆ１  あるいは下辺ｆ３  が物体Ａと交差する場合には走査方向をｘ軸に平行とし、右辺ｆ２  あるいは左辺ｆ４  が物体Ａと交差する場合には走査方向をｙ軸に平行とする。すなわち、図４に示すような場合には下辺ｆ３  が物体Ａと交差しているから、走査方向選択部６においてｘ軸方向が走査方向として選択される。なお、何れの辺ｆ１  〜ｆ４  も物体Ａと交差しない場合には、上述のようにウィンドウの設定からやり直すようにすればよい。
【００１２】
走査線移動部７は、図７のフローチャートに示すような処理を行ない、上記のように走査方向選択部６にて選択された移動方向へ走査線の移動を行う。図７を参照して上記移動処理をさらに詳しく説明する。まず、初期値として、物体初期検出部５で検出されたウィンドウ枠Ｆの下辺（物体Ａと交差する辺）ｆ３  を第一走査線、第一走査線（下辺ｆ３  ）に平行して対向するウィンドウ枠Ｆの上辺ｆ１  を第二走査線と設定する。次に、第一走査線と第二走査線の中間位置に第三走査線を設定し、この第三走査線上で物体Ａが検出されれば（第三走査線が物体Ａと交差すれば）、第三走査線を新たに第一走査線とする。反対に第三走査線上で物体Ａが検出されなければ（第三走査線が物体Ａと交差しなければ）、第三走査線を新たに第二走査線とする。その後、第一走査線と第二走査線の間隔が１画素となるまで上記処理を繰り返し行なう。そして、繰り返し処理の終了時における第一走査線上の物体が存在する位置を物体位置と認識する。
【００１３】
次に、物体検出部８における上記走査線上での物体検出の処理を、図３及び図８に示すフローチャートを参照して説明する。図３において、走査線Ｌ１  上の画素データを順次読みだしながら、読み出した画素データが「１」であれば、物体存在長さＫに１を加えるとともにその画素の二値画像上でのアドレス（ｘｙ二次元直交座標系における座標値で示される）を記憶する。反対に画素データが「０」であれば、物体存在長さＫを０に初期化するとともに、記憶しているその画素のアドレスを消去する。そして、物体存在長さＫを所定値αと比較し、物体存在長さＫが所定値α以上であれば、記憶している１乃至複数の画素のアドレスの重心（Ｃｘ，Ｃｙ）を求め、その重心（Ｃｘ，Ｃｙ）を走査線Ｌ１  上の物体位置とする。また、物体存在長さＫが所定値αより小さい間は、画素データの読み出しからアドレスを記憶するまでの上記処理を繰り返す。ここで、上記所定値αは、例えば二値画像上での物体Ａの見かけ上の物体幅の最小値に基づいて設定すればよい。
【００１４】
なお、本実施形態では、撮像装置１から入力された濃淡画像を予め二値化した二値画像に対して物体検出の走査を行なっているが、物体検出の走査を入力濃淡画像に対して行ない、画素データの二値化と物体検出とを同時に行なうようにすることも可能であって、何れの方法でも同様の結果が得られることはいうまでもない。
【００１５】
そして、走査線移動部７および物体検出部８の処理により得られた各走査線上での物体の位置（画素のアドレス）に基づいて、位置・姿勢認識部９で物体の位置と姿勢の認識を行う。以下、この位置・姿勢認識部９における位置・姿勢認識処理を、図９及び図１０のフローチャートを参照して説明する。まず、物体Ａの位置を検出した走査線Ｌ２  上における物体位置を二値画像上の座標Ｓ（ｘＳ  ，ｙＳ  ）とし、走査線Ｌ２  より所定距離Ｎだけ離れた位置に別の走査線Ｌ３  を設定する。次に、この新たに設定された走査線Ｌ３  上での物体位置を座標Ｕ（ｘｕ  ，ｙｕ  ）とし、点Ｓと点Ｕを結ぶ線分と直交軸（今の場合はｘ軸）とのなす角度Θを下式により求め、この角度Θを物体Ａの姿勢とする。
【００１６】
Θ＝ａｒｃｔａｎ｛（ｙｕ  −ｙＳ  ）／（ｘｕ  −ｘＳ  ）｝
このようにして、物体Ａの位置Ｓと姿勢Θとを求めることができる。
上述のように本実施形態によれば、物体Ａがおおよそ存在する位置にウィンドウを設定し、設定されたウィンドウのウィンドウ枠上での物体Ａの有無を判断して、処理の最初に物体Ａのおおよその位置及び方向を求めた後、その位置及び方向の情報に基づいて走査線を移動させ、物体Ａの詳細な位置と姿勢の認識を行うようにしているため、物体Ａの存在している可能性の高い範囲に効率良く物体検出のための走査線を設定でき、物体検出に要する処理の回数を減らすことができ、高速に処理を行うことができる。
【００１７】
（実施形態２）
本実施形態は、濃淡画像を空間微分して得られる微分値画像と濃度方向画像とを利用する点に特徴がある。なお、本実施形態の認識方法を実現するためのシステム構成は図１に示した実施形態１の構成と共通であるから、システム構成についての図示及び説明は省略する。
【００１８】
撮像装置１により対象物（物体）を撮像し、撮像したアナログ画像をＡ／Ｄ変換部２においてディジタル値に変換して濃淡画像を得る（図２参照）。次に、画像蓄積部３において、この濃淡画像を空間微分して図示しない画像処理装置内のメモリに蓄える。図１１（ａ）に濃淡画像に対する微分値画像、同図（ｂ）に濃度方向画像をそれぞれ示す。ここで、空間微分の方法は従来から各種提案されているが、例えば次に示すような方法を用いることができる。すなわち、着目画素の８近傍画素の濃度値Ｄ（ｘ，ｙ）から、下式により求められるｘ軸及びｙ軸方向の微分値Ｇｘ，Ｇｙを利用するものである。
0003552419.tif 000002
これらより、着目画素（ｘ，ｙ）における微分値Ｇおよび濃度方向値θは以下の様になる。
【００１９】
Ｇ＝（Ｇｘ２  ＋Ｇｙ２  ）１／２  
θ＝ａｒｃｔａｎ（Ｇｙ／Ｇｘ）
そして、上記微分値Ｇならびに濃度方向値θを画素データに持つ微分値画像と濃度方向画像を得ることができる。
画像処理装置内のメモリに蓄えられたメモリ画像（微分値画像及び濃度方向画像）に対して、ウィンドウ生成部１４では、図４に示すように実施形態１と同様にして、矩形のウィンドウ枠Ｆの少なくとも一辺ｆ１  〜ｆ４  が物体Ａを横切るようにウィンドウＷを設定する。
【００２０】
そして、物体初期検出部５は、図５のフローチャートに示すような実施形態１と同様の処理を行なって、物体Ａと交差するウィンドウ枠Ｆの辺ｆ１  〜ｆ４  を検出する。なお、各辺ｆ１  〜ｆ４  を走査して物体Ａの有無を検出する方法については後述する。
次に走査方向選択部６は、図６のフローチャートに示すような実施形態１と同様の処理を行ない、物体初期検出部５の検出結果に応じて、ウィンドウ枠Ｆの上辺ｆ１  あるいは下辺ｆ３  が物体Ａと交差する場合には走査方向をｘ軸に平行とし、右辺ｆ２  あるいは左辺ｆ４  が物体Ａと交差する場合には走査方向をｙ軸に平行とする。
【００２１】
走査線移動部７は、図１３に示すような処理を行ない、上記のように走査方向選択部６にて選択された移動方向へ走査線の移動を行う。図１２及び図１３のフローチャートを参照して上記移動処理をさらに詳しく説明する。まず、初期値として、物体初期検出部５で検出されたウィンドウ枠Ｆの辺ｆ３  を第一走査線Ｌ１１、第一走査線Ｌ１１（＝辺ｆ３  ）上での物体Ａの濃度方向（図１２における矢印イ）に直交する方向（同図における矢印ロ）を走査線移動方向に設定する。次に、第一走査線Ｌ１１から走査線移動方向ロに所定距離Ｍだけ離れた位置に、走査移動方向ロと略直交する第二走査線Ｌ１２を設定する。この第二走査線Ｌ１２上で物体Ａが検出されれば（第二走査線Ｌ１２が物体Ａと交差すれば）、第二走査線Ｌ１２上での物体Ａの濃度方向に直交する方向を新たな走査線移動方向、第二走査線Ｌ１２を新たな第一走査線と置き直す。反対に第二走査線Ｌ１２上で物体Ａが検出されなければ（第二走査線Ｌ１２が物体Ａと交差しなければ）、上記所定距離ＭをＭ＝Ｍ／２に置き直す。その後、所定距離Ｍが１画素以下となるまで上記処理を繰り返し行なう。そして、繰り返し処理の終了時における第一走査線上の物体が存在する位置を物体位置として認識する。
【００２２】
次に、物体検出部８における上記走査線上での物体検出の処理を、図１１及び図１４に示すフローチャートを参照して説明する。まず、図１１（ａ）（ｂ）に示す微分値画像及び濃度方向画像に対して、ｘ軸に略平行な走査線Ｌ１４上の画素データ（微分値Ｇ）を順次読みだし、画素データがしきい値以上である点Ｐを検出し、点Ｐのアドレス（ｘｐ  ，ｙｐ  ）及び濃度方向値θ１  を記憶する。さらに、点Ｐから走査線Ｌ１４上の画素データを順次読みだし、画素データがしきい値以上である点Ｑ（候補点）を検出し、点Ｑのアドレス（ｘｑ  ，ｙｑ  ）及び濃度方向値θ２  を記憶する。このとき、点Ｐ−Ｑ間の距離Ｌが所定値β以下であり、且つ１８０−Δθ＜｜θ１  −θ２  ｜＜１８０＋Δθであれば、点Ｐと点Ｑとの中点を走査線Ｌ１４上の物体位置とする。ここで、上記所定値βは、微分値画像あるいは濃度方向画像上での物体Ａの見かけの物体幅の最大値に基づき設定され、Δθは濃度方向値の許容誤差を表す。
【００２３】
なお、本実施形態では、撮像装置１から入力された濃淡画像を予め空間微分した微分値画像及び濃度方向画像に対して物体検出の走査を行なっているが、物体検出の走査を入力濃淡画像に対して行ない、濃淡画像に対する空間微分と物体検出とを同時に行なうようにすることも可能であって、何れの方法でも同様の結果が得られることはいうまでもない。
【００２４】
そして、走査線移動部７および物体検出部８の処理により得られた各走査線上での物体の位置（画素のアドレス）に基づいて、位置・姿勢認識部９で物体の位置と姿勢の認識を行う。以下、この位置・姿勢認識部９における位置・姿勢認識処理を、図１５及び図１６のフローチャートを参照して説明する。まず、物体Ａの位置を検出した走査線Ｌ１５上における物体Ａと背景Ｂとの境界点のアドレスをそれぞれ点Ｒ（ｘｒ  ，ｙｒ  ），点Ｔ（ｘｔ  ，ｙｔ  ）とし、各点における濃度方向値θｒ  ，θｔ  （図１５における矢印ハ，ニ）を記憶する。次に点Ｒ，Ｔの座標（（アドレス）から下式により物体位置Ｓ（ｘｓ  ，ｙｓ  ）を計算する。
【００２５】
ｘｓ  ＝（ｘｒ  ＋ｘｔ  ）／２
ｙｓ  ＝（ｙｒ  ＋ｙｔ  ）／２
さらに、各交点Ｒ，Ｔにおける濃度方向値θｒ  ，θｔ  を用いて物体Ａと直交軸（今の場合はｘ軸）とのなす角度Θを下式により求め、この角度Θ（図１５における矢印ホの方向）を物体Ａの姿勢とする。
【００２６】
Θ＝（θｒ  ＋θｔ  ）／２
このようにして、物体Ａの位置Ｓと姿勢Θとを求めることができる。
上述のように本実施形態によれば、実施形態１と同様に物体Ａの存在している可能性の高い範囲に効率良く物体検出のための走査線を設定でき、物体検出に要する処理の回数を減らすことができ、高速に処理を行うことができる。また、濃淡画像を空間微分して得られる微分値画像から物体Ａの位置と姿勢の認識を行なうことにより、コントラストの低い物体の画像に対しても、物体Ａと背景Ｂとの境界を良く表した画像（微分値画像及び濃度方向画像）を使って検出することができ、精度の高い位置と姿勢の認識ができるという利点がある。
【００２７】
（実施形態３）
本実施形態は物体検出部８における物体の検出方法に特徴を有し、他の構成及び処理方法などは実施形態１と共通である。よって、共通する部分についての説明は省略する。
本実施形態の特徴である物体検出部８における物体の検出方法を、図１７及び図１８のフローチャートを参照して説明する。図１７において、走査線Ｌ１  上の画素データを順次読みだしながら、画素データが「１」である点Ｐを検出する。この点Ｐから所定距離Ｌだけ走査線Ｌ１  上を進んだ点Ｒから逆方向（点Ｐに近づく方向）に走査線Ｌ１  を走査し、画素データが「１」である点Ｑを検出する。
そして、点Ｐ−Ｑ間の距離が所定値α以上であれば、点Ｐと点Ｑの中点を走査線Ｌ１  上の物体位置とする。また、点Ｐ−Ｑ間の距離が所定値αよりも小さければ、点Ｒのアドレスに戻って上記処理を繰り返す。ここで、上記所定値αは、例えば二値画像上での物体Ａの見かけの物体幅の最小値に基づいて設定される。
【００２８】
本実施形態によれば、物体Ａと背景Ｂとの境界部分を検出することで物体Ａの位置を検出するようにしているため、例えば図１９に示すように物体Ａの表面内側に文字（”９６０９１６”）が表されているような場合であっても、その影響を受けずに物体Ａの位置と姿勢の認識を行うことができるという利点がある。
なお、本実施形態では、撮像装置１から入力された濃淡画像を予め二値化した二値画像に対して物体検出の走査を行なっているが、物体検出の走査を入力濃淡画像に対して行ない、画素データの二値化と物体検出とを同時に行なうようにすることも可能であって、何れの方法でも同様の結果が得られることはいうまでもない。
【００２９】
（実施形態４）
本実施形態は物体検出部８における物体の検出方法に特徴を有し、他の構成及び処理方法などは実施形態２と共通である。よって、共通する部分についての説明は省略する。
本実施形態の特徴である物体検出部８における物体の検出方法を、図２０及び図２１のフローチャートを参照して説明する。まず、図２０（ａ）（ｂ）に示す微分値画像及び濃度方向画像に対して、ｘ軸に略平行な走査線Ｌ１４上の画素データ（微分値Ｇ）を順次読みだし、画素データがしきい値以上である点Ｐを検出し、点Ｐのアドレス（ｘｐ  ，ｙｐ  ）及び濃度方向値θ１  を記憶する。さらに、点Ｐから所定距離Ｌだけ走査線Ｌ１４上を進んだ点Ｒ（候補点）から走査線Ｌ１４を逆方向に走査して、画素データがしきい値以上である点Ｑを検出し、点Ｑのアドレス（ｘｑ  ，ｙｑ  ）及び濃度方向値θ２  を記憶する。このとき、点Ｐ−Ｑ間の距離が所定値β以下であり、且つ１８０−Δθ＜｜θ１  −θ２  ｜＜１８０＋Δθであれば、点Ｐと点Ｑとの中点を走査線Ｌ１４上の物体位置とする。ここで、上記所定値βは、微分値画像あるいは濃度方向画像上での物体Ａの見かけの物体幅の最大値に基づき設定され、Δθは濃度方向値の許容誤差を表す。
【００３０】
本実施形態によれば、物体Ａと背景Ｂとの境界部分を検出することで物体Ａの位置を検出するようにしているため、実施形態３と同様に物体Ａの表面内側に文字が表されているような場合であっても、その影響を受けずに物体Ａの位置と姿勢の認識を行うことができるという利点がある。
なお、本実施形態では、撮像装置１から入力された濃淡画像を予め空間微分した微分値画像及び濃度方向画像に対して物体検出の走査を行なっているが、物体検出の走査を入力濃淡画像に対して行ない、濃淡画像に対する空間微分と物体検出とを同時に行なうようにすることも可能であって、何れの方法でも同様の結果が得られることはいうまでもない。
【００３１】
（実施形態５）
本実施形態は、撮像装置１’にカラーのテレビカメラを用い、物体Ａを撮像して得られるカラー画像中から、物体Ａの輪郭の特徴を最も顕著に表す特定色を抽出して、濃淡画像を得るようにしている点に特徴がある。なお、他の処理については実施形態１あるいは実施形態２と共通であるから、共通する部分については同一の符号を付して説明は省略する。
【００３２】
図２２は本実施形態の認識方法を実現するためのシステム構成を示すブロック図である。カラーの撮像装置１’より得られる入力カラー画像中から、特定色抽出部１０において物体Ａの輪郭の特徴を最も顕著に表す特定色を抽出して濃淡画像を得る。そして、実施形態１と同様に濃淡画像から二値画像を得る場合には、濃淡画像の中の物体の部分と、物体Ａ以外の背景の部分とを各々の明るさ（濃度値＝画素データ）に応じて分離するように、濃淡画像を画像蓄積部３において二値化し、得られた二値画像を図示しない画像処理装置内のメモリに蓄える。あるいは、実施形態２と同様に、画像蓄積部３において、濃淡画像を空間微分して微分値画像と濃度方向画像とを求め、図示しない画像処理装置内のメモリに蓄える。以降の処理は、実施形態１あるいは実施形態２と同様である。
【００３３】
なお、本実施形態ではカラーのテレビカメラを撮像装置１’に用いて特定色の抽出を行なっているが、例えば図２３に示すように、実施形態１や実施形態２と同様に白黒のテレビカメラのような撮像装置１を用い、撮像装置１のレンズの前に色フィルタ１１を配置し、この色フィルタ１１を通して撮像した物体Ａの濃淡画像を用いても、同様の結果が得られることはいうまでもない。
【００３４】
（実施形態６）
本実施形態は、実施形態１あるいは実施形態２において、物体検出部８で走査線上の物体の検出を行なう際に用いられるパラメータを、物体Ａの明るさ（濃度値）に応じて変更するようにしている点に特徴がある。なお、本実施形態の認識方法を実現するためのシステム構成は実施形態１あるいは実施形態２と共通であり、共通する部分については説明を省略する。
【００３５】
以下、本実施形態におけるパラメータの選択方法について、図２４及び図２５のフローチャートを参照して説明する。例えば図２４に示すように、画面内に２つの物体Ａ１  ，Ａ２  が存在し、各物体Ａ１  ，Ａ２  の位置と姿勢を認識するために、それぞれの物体Ａ１  ，Ａ２  に対してウィンドウ枠Ｆ１  ，Ｆ２  を設定しているとする。なお、一方の物体Ａ２  の濃度値は、他方の物体Ａ１  の濃度値よりも高い（明るい）ものとする。従って、それぞれの物体Ａ１  ，Ａ２  の物体検出を行なうために、濃淡画像を二値化あるいは空間微分を行う際の最適なしきい値は、それぞれの物体Ａ１  ，Ａ２  により異なることになる。
【００３６】
そこで、予め物体の濃度値（明るさ）としきい値とを対応づけるパラメータ選択テーブルを登録しておき、物体初期検出部５にて図２５のフローチャートに示すような処理を行なうことにより、ウィンドウ枠Ｆ１  ，Ｆ２  上での物体Ａ１  ，Ａ２  の濃度値の検出を行なうとともに、検出された濃度値に対してパラメータ選択テーブルから最適なパラメータを選択する。
【００３７】
図２５を参照して上記処理をもう少し詳しく説明すると、実施形態１あるいは実施形態２と同様に、ウィンドウ枠Ｆ１  ，Ｆ２  の何れかの辺ｆ１  〜ｆ４  上に走査開始点を設定し、走査開始点に設定された画素から各辺ｆ１  〜ｆ４  に沿って順次アドレスを進ませながら、各画素のデータにより物体Ａ１  ，Ａ２  の存在を検出する。この際、物体検出のしきい値はパラメータ選択テーブルに登録されている中で一番濃度値の低い（暗い）ものに対する値を用いればよい。
【００３８】
そして、物体Ａが検出されれば、その画素の画素データ（物体Ａ１  ，Ａ２  の明るさ）を記憶し、ウィンドウ枠Ｆの全ての辺ｆ１  〜ｆ４  についての走査が終了した後、パラメータ選択テーブルより上記画素データに対応するパラメータを選択し、このパラメータを物体検出のしきい値とする。
本実施形態によれば、物体の明るさ（濃度値）に応じて、物体検出を行なう際のパラメータを最適な値に設定するようにしているので、安定した物体検出を行なうことができる。
【００３９】
（実施形態７）
本実施形態では、実施形態１あるいは実施形態２において、位置と姿勢の認識を行う前に、予め対象物（物体Ａ）を機械的に分離しておくことにより、物体Ａの位置と姿勢の認識の性能を高めるようにしている。以下、図２６を参照して説明する。
【００４０】
多数の物体Ａはホッパー１２に貯められており、ホッパー１２より振動フィーダー１３に供給される。この振動フィーダー１３は従来周知の構成を有し、各物体Ａを個別に分離させて単体でコンベア１４上へ供給する。但し、振動フィーダー１３においては、所謂ツーリング等の姿勢矯正は行わない。
そして、コンベア１４上に供給された個々の物体Ａを撮像装置１にて撮像し、得られた濃淡画像から実施形態１〜６で説明したような構成及び方法を用いて、各物体Ａごとにその位置並びに姿勢を認識する。
【００４１】
さらに、位置・姿勢認識部９において検出された各物体Ａごとの位置・姿勢検出結果である二次元位置アドレス（ｘ，ｙ）と姿勢θを、通信部１５よりロボット装置１６に送信する。ロボット装置１６は従来周知の構成を有するものであって、通信部１５から受信したアドレス（ｘ，ｙ）と姿勢θに基づいて動作し、物体Ａのピックアップを行う。
【００４２】
上述のように、予め複数の物体Ａを個々に分離させた後、物体Ａを単体ごとに撮像して濃淡画像を得るようにすれば、認識処理が簡素化できるとともに認識の精度も向上させることができる。
なお、本実施形態では複数の物体Ａを単体に分離するのに振動フィーダー１３を用いているがこれに限定する主旨ではなく、複数の物体Ａを分離する機能を有する装置であれば、同様の結果が得られることはいうまでもない。
【００４３】
（実施形態８）
本実施形態は、実施形態１あるいは実施形態２において、予め決められた台又はコンベア１４上に置かれた物体Ａをロボット装置１６でピックアップする時に、ロボット装置１６に対して二次元位置アドレス（ｘ，ｙ）と姿勢θのデータに加えて距離データも一緒に送ることにより、効率の良い処理を行うようにしたものである。以下、図２６〜図２８を参照して説明する。
【００４４】
まず始めに、撮像装置１にて撮像される画像上の各画素位置（二次元直交座標系の座標値）に対して、ロボット装置１６における座標系（例えば、三次元直交座標系）の物体位置（Ｘ，Ｙ，Ｚ）を求めておき、画像上での各画素位置とロボット装置１６における座標系（以下、ロボット座標系と呼ぶ。）での物体位置とを対応づける、図２７に示すような変換テーブルを予め登録しておく。この変換テーブルにおいて、Ｔ（ｘｍ  ，ｙｎ  ）は、画像上のアドレス（ｘｍ  ，ｙｎ  ）に対応するロボット座標系における物体位置（Ｘｍｎ，Ｙｍｎ，Ｚｍｎ）への変換（関数）を示すものである。
【００４５】
次に、図２６に示すように、コンベア１４上の物体Ａを撮像装置１により撮像して得られる濃淡画像から、画像上の物体Ａの位置及び姿勢を表す二次元位置アドレス（ｘ，ｙ）及び姿勢θを求める。なお、濃淡画像から二次元位置アドレス（ｘ，ｙ）及び姿勢θを検出する処理は実施形態１あるいは実施形態２の方法を用いればよく、詳しい説明は省略する。
【００４６】
本実施形態では、位置・姿勢認識部９’において図２８のフローチャートに示すような処理を行なうことにより、検出された二次元位置アドレス（ｘｍ  ，ｙｎ  ）を変換テーブルを用いてロボット座標系における物体位置（Ｘｍｎ，Ｙｍｎ，Ｚｍｎ）に変換するとともに、このロボット座標系における物体位置（Ｘｍｎ，Ｙｍｎ，Ｚｍｎ）と姿勢θとから、ロボット座標系における物体位置と姿勢を表す指示データ（Ｘｍｎ，Ｙｍｎ，Ｚｍｎ，θ）を作成し、通信部１５よりロボット装置１６へ送信している。そして、ロボット装置１６は通信部１５から受信した指示データ（Ｘｍｎ，Ｙｍｎ，Ｚｍｎ，θ）に基づいて動作し、物体Ａのピックアップを行う。
【００４７】
上述のように画像上の物体位置を変換テーブルを用いてロボット座標系の物体位置に変換することにより、ロボット装置１６の制御が容易になるという利点がある。
なお、本実施形態では、画像上の各画素位置をロボット座標系における物体位置に変換するために変換テーブルを用いているが、画像上の任意の画素位置とロボット座標系における物体位置との関係式を最小２乗法などを用いて求め、その関係式を上記変換テーブルの代わりに用いても同様の結果が得られることはいうまでもない。
【００４８】
（実施形態９）
本実施形態は、実施形態２において、物体検出を行なう際の空間微分を行う方向を選択する処理に関するものである。
以下、本実施形態の特徴である上記処理を図４、図５並びに図２９のフローチャートを参照して説明する。なお、他の処理については実施形態２と共通であるから説明は省略する。
【００４９】
まず、実施形態２で説明したように、物体初期検出部５が図５のフローチャートに示すような処理を行なって物体Ａが存在する（物体Ａと交差する）ウィンドウ枠Ｆの辺ｆ３  を検出する。
次に、物体検出部８では物体初期検出部５での検出結果を用い、図２９のフローチャートに示すような処理を行なう。すなわち、ウィンドウ枠Ｆの上辺ｆ１  あるいは下辺ｆ３  が物体Ａと交差する場合には微分方向をｘ軸に平行とし、右辺ｆ２  あるいは左辺ｆ４  が物体Ａと交差する場合には微分方向をｙ軸に平行として、濃淡画像に対する空間微分を再度行うことで微分値画像及び濃度方向画像を作成し直し、以後の処理は作成し直した新たな微分値画像及び濃度方向画像を用いて行う。
【００５０】
本実施形態によれば、ウィンドウ枠Ｆの何れの辺ｆ１  〜ｆ４  が物体Ａと交差しているかによって、濃淡画像を空間微分する際の微分方向を変えるようにしているため、コントラストが低い場合にも物体Ａを鮮明に表すことができ、安定した物体の検出を行なうことができるという利点がある。
【００５１】
【発明の効果】
請求項１の発明は、物体を撮像して得られる濃淡画像に対して、物体の少なくとも一部が横切るようなウィンドウ枠を有するウィンドウを、物体がおおよそ存在する位置に予め設定し、ウィンドウ枠に沿って濃淡画像を走査して各画素の画素データに基づいてウィンドウ枠上での物体の有撫を判断し、物体が存在するウィンドウ枠の位置に応じて濃淡画像を走査する走査方向と走査線移動方向とを選択するとともに、選択された走査線移動方向に沿って走査線を移動させながら、ウィンドウ内における走査線上での画素データに基づいて当該走査線上での物体の位置を検出し、さらに前記走査線移動方向に沿って移動させながら検出した各走査線上での物体の位置に基づいてウィンドウ内における物体の位置と姿勢を求めるので、物体がおおよそ存在する位置に設定されたウィンドウ枠上での物体の有無を判断して処理の最初に物体のおおよその位置・方向を求め、その情報に基づき走査線を移動させて物体の詳細な位置・姿勢の認識を行うことにより、物体の存在している可能性の高い位置に効率良く物体検出のための走査線の位置を設定でき、物体の位置と姿勢を求める処理の回数を減らすことができるという効果がある。
【００５２】
また、走査線上における物体の有無の判断は走査線上の画素データの変化に基づいて行うため、請求項４の発明のように、濃淡画像を空間微分して得られる微分値画像も使用でき、コントラストの低い物体の画像に対しても物体と背景との境界を良く表した画像を使って物体の位置と姿勢を認識することができる。
【図面の簡単な説明】
【図１】実施形態１における物体の位置と姿勢の認識を行なうためのシステム構成図である。
【図２】同上における濃淡画像を示す図である。
【図３】同上における二値画像を示す図である。
【図４】同上を説明するための説明図である。
【図５】同上を説明するためのフローチャートである。
【図６】同上を説明するためのフローチャートである。
【図７】同上を説明するためのフローチャートである。
【図８】同上を説明するためのフローチャートである。
【図９】同上を説明するための説明図である。
【図１０】同上を説明するためのフローチャートである。
【図１１】（ａ）及び（ｂ）はそれぞれ実施形態２における微分値画像及び濃度方向画像を示す図である。
【図１２】同上を説明するための説明図である。
【図１３】同上を説明するためのフローチャートである。
【図１４】同上を説明するためのフローチャートである。
【図１５】同上を説明するための説明図である。
【図１６】同上を説明するためのフローチャートである。
【図１７】実施形態３を説明するための説明図である。
【図１８】同上を説明するためのフローチャートである。
【図１９】同上を説明するための説明図である。
【図２０】（ａ）及び（ｂ）はそれぞれ実施形態４における微分値画像及び濃度方向画像を示す図である。
【図２１】同上を説明するためのフローチャートである。
【図２２】実施形態５における物体の位置と姿勢の認識を行なうためのシステム構成図である。
【図２３】同上を説明するための説明図である。
【図２４】実施形態６を説明するための説明図である。
【図２５】同上を説明するためのフローチャートである。
【図２６】実施形態７を説明するための説明図である。
【図２７】実施形態８を説明するための説明図である。
【図２８】同上を説明するためのフローチャートである。
【図２９】実施形態９を説明するためのフローチャートである。
【符号の説明】
１  撮像装置
２  Ａ／Ｄ変換部
３  画像蓄積部
４  ウィンドウ生成部
５  物体初期検出部
６  走査方向選択部
７  走査線移動部
８  物体検出部
９  位置・姿勢認識部
【図１】
0003552419.tif 000003
【図２】
0003552419.tif 000004
【図３】
0003552419.tif 000005
【図４】
0003552419.tif 000006
【図５】
0003552419.tif 000007
【図６】
0003552419.tif 000008
【図７】
0003552419.tif 000009
【図８】
0003552419.tif 000010
【図９】
0003552419.tif 000011
【図１０】
0003552419.tif 000012
【図１１】
0003552419.tif 000013
【図１２】
0003552419.tif 000014
【図１３】
0003552419.tif 000015
【図１４】
0003552419.tif 000016
【図１５】
0003552419.tif 000017
【図１６】
0003552419.tif 000018
【図１７】
0003552419.tif 000019
【図１８】
0003552419.tif 000020
【図１９】
0003552419.tif 000021
【図２０】
0003552419.tif 000022
【図２１】
0003552419.tif 000023
【図２２】
0003552419.tif 000024
【図２３】
0003552419.tif 000025
【図２４】
0003552419.tif 000026
【図２５】
0003552419.tif 000027
【図２６】
0003552419.tif 000028
【図２７】
0003552419.tif 000029
【図２８】
0003552419.tif 000030
【図２９】
0003552419.tif 000031