JPH09251544A - ワークエッジ検出画像処理装置 - Google Patents

ワークエッジ検出画像処理装置

Info

Publication number
JPH09251544A
JPH09251544A JP8085799A JP8579996A JPH09251544A JP H09251544 A JPH09251544 A JP H09251544A JP 8085799 A JP8085799 A JP 8085799A JP 8579996 A JP8579996 A JP 8579996A JP H09251544 A JPH09251544 A JP H09251544A
Authority
JP
Japan
Prior art keywords
work
edge
straight line
arc
contour
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP8085799A
Other languages
English (en)
Inventor
Michihiro Uenohara
道 宏 植之原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP8085799A priority Critical patent/JPH09251544A/ja
Publication of JPH09251544A publication Critical patent/JPH09251544A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 輪郭が直線と円弧との組み合わせで構成され
ていることが既知のワークの画像から輪郭を構成する円
弧と直線を表す各々の方程式を求めるワークエッジ検出
画像処理装置を提供する。 【解決手段】 輪郭が直線と円弧との組み合わせで構成
されているワークの画像から前記輪郭を構成する円弧と
直線を求めるワークエッジ検出画像処理装置であって、
入力されるワークの入力画像からワークの背景を識別し
ワークの領域を抽出するワーク領域抽出手段(5)と、
抽出されたワーク領域の境界を構成する境界点の点列を
求めるワーク境界点抽出手段(6)と、求めた境界点の
点列からどの境界点からどの境界点までが単一の直線あ
るいは単一の円弧で表されるかを検出し、ワークの輪郭
を構成する円弧と直線の方程式を求めるエッジ検出手段
(7)と、を備えたことを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ワークの輪郭が直
線と円弧との組み合わせで構成されていることが既知の
ワークの画像から輪郭を構成する円弧と直線を表す各々
の方程式を求めるワークエッジ検出画像処理装置に関す
る。
【0002】
【従来の技術】工場の製造ラインにおいては、すでにさ
まざまな形で画像処理装置が用いられている。半導体チ
ップの信号供給端子からリード線へのワイヤボンディン
グ工程でのチップあるいはリード線の位置ずれ検出や、
コンベア上を流れてくる多種のワークをハンドリング
し、それぞれのパレットへの移載作業をロボットに行わ
せる際のワークの位置と種類の検出、あるいは製造部品
の検査にも用いられている。
【0003】従来の多くの画像処理装置では、ビデオカ
メラによりとらえた画像を適切なしきい値で2値化した
後、ラベリング、重心位置計算などの認識処理を行って
いる。2値化する目的は、計算量を減少させ画像処理に
要する時間を短くするとともに、装置の価格も低く抑え
ることにあった。ただし、2値化しても背景とワークが
識別可能なように照明条件には多くの制約が加えられて
いた。
【0004】近年、これまでの2値化画像のみを扱う画
像処理装置に加えて、濃淡画像を直接処理する画像処理
装置も開発されてきている。濃淡画像による検出すべき
物体のパターンをあらかじめ登録しておき、パターンマ
ッチングにより入力画像中の物体の位置を検出するもの
である。濃淡画像を扱うことにより、周囲の明るさの大
幅な変化や対象物のぼやけ、多段階明度を持つ対象物に
対しても安定した認識結果を得ることができる。
【0005】また、濃淡画像を扱う画像処理装置とし
て、パターンマッチングだけでなく、エッジ検出などの
特徴抽出処理を行うことのできるものも表れている。こ
れらの画像処理装置では、あらかじめ画像中のどこの領
域に対してどのような特徴抽出処理を行うかの手順を指
定しておくことにより、欠陥検査や品種判別などに用い
ることができる。
【0006】以上のように、コンピュータの高速化にも
助けられ、濃淡画像を扱いより高度な画像処理を行う画
像処理装置はいろいろ開発されてきている。
【0007】
【発明が解決しようとする課題】しかしながら、既存の
画像処理装置は、既知の対象物を入力画像の中から検出
するものであり、形状のあらかじめわかってない物体
を、その入力画像から形状を検出するものではなかっ
た。あらかじめ、背景と検出対象物の明暗に差をつけて
おき、2値化処理をすることにより、対象物の領域を求
めたのちに、その面積やモーメントを算出して、あらか
じめ登録しておいた物体の面積やモーメントの値と比較
することにより、登録しておいたどの物体が見えている
かを求めることはできたが、どのような形状かわからな
い状態で入力画像のみから、どのような直線・曲線から
構成される物体が見えているかを求める実用的なものは
なかった。
【0008】研究レベルでは、入力画像からエッジ検出
を行い、2台のカメラからの映像でのエッジ検出結果か
ら、それぞれ対応するエッジを求めステレオ法によりエ
ッジの3次元位置を算出した後に、対象物の3次元形状
を求めようという試みはさまざまある。しかしながら、
多くの研究ではエッジが直線のみからなる多面体に近似
して扱っている。曲面も扱うものもあるものの、研究レ
ベルでは背景に制限を加えない一般的形状認識をめざし
ており、それなりに成果はあがりつつあるものの、実用
的に信頼性よく動作するものはこれまでになかった。ま
た、ワークと背景が容易に識別できるように背景に制限
を加えたり、対象物を直線と円弧のみから稜線が構成さ
れるものに限定することにより、実用的に信頼性よく動
作するものもこれまでにはなかった。
【0009】請求項1に記載の発明に関係して このように、従来の画像処理装置では、あらかじめ検出
しようとする対象物の形状がわからない状態で、入力画
像から物体の形状を信頼性よく検出することができなか
った。
【0010】そこで、本発明は、産業用部品の多くが、
そのエッジは直線あるいは円弧であることに着目し、背
景とワークとの画面上の境界が直線と円弧のみの組み合
わせで構成されている状況設定下で、背景とワークとの
境界を構成するワークエッジの方程式および端点の座標
値を画像から検出する画像処理装置を提供することを目
的とする。ワークのあるひとつの平面のみを直上から見
るようにビデオカメラを設置した状況を想定している。
そのような状況では、背景とワークとの境界は直線と円
弧の組み合わせになる。
【0011】請求項5に記載の発明に関係して このように、従来の画像処理装置では、あらかじめ検出
しようとする対象物の形状がわからない状態で、入力画
像から物体の形状を信頼性よく検出することができなか
った。
【0012】そこで、本発明は、産業用部品の多くが、
そのエッジは直線あるいは円弧であることに着目し、背
景とワークとの画面上の境界を構成するエッジが物理的
には直線と円弧のみの組み合わせで同一平面上にあり、
しかもその平面の3次元空間での方程式が既知の条件下
であれば、たとえ背景とワークとの境界を構成するエッ
ジの一部が画面上では楕円に見える場合でも、ワークエ
ッジの3次元方程式および端点の3次元座標値を画像か
ら検出する画像処理装置を提供することを目的とする。
【0013】請求項6に記載の発明に関係して このように、従来の画像処理装置では、あらかじめ検出
しようとする対象物の形状がわからない状態で、入力画
像から物体の形状を信頼性よく検出することができなか
った。
【0014】そこで、本発明は、板から切り出された部
品の特徴である、上下面が平行で側面は上下面に垂直で
あり、エッジは直線あるいは円弧であるという対象物の
エッジの3次元情報を1台のカメラからの入力画像から
検出する画像処理装置を提供することを目的とする。ワ
ークは、あらかじめ、その3次元位置が既知な平面の上
に設置されているが、その平面のどこに設置されている
か不明であるとする。
【0015】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に記載の発明は、輪郭が直線と円弧との組
み合わせで構成されているワークの画像から前記輪郭を
構成する円弧と直線を求めるワークエッジ検出画像処理
装置であって、入力されるワークの入力画像からワーク
の背景を識別しワークの領域を抽出するワーク領域抽出
手段と、抽出されたワーク領域の境界を構成する境界点
の点列を求めるワーク境界点抽出手段と、求めた境界点
の点列からどの境界点からどの境界点までが単一の直線
あるいは単一の円弧で表されるかを検出し、ワークの輪
郭を構成する円弧と直線の方程式を求めるエッジ検出手
段と、を備えたことを特徴とする。
【0016】また、前記エッジ検出手段は、ふたつの境
界点を結ぶ直線を求め、ふたつの境界点の間の境界点の
中で前記直線から所定距離以上離れたはみ出し境界点が
あるか否かを判定し、はみ出し境界点がない場合には、
前記ふたつの境界点の間はひとつの直線とみなすという
判断基準により、前記境界点列全体を折れ線近似する折
れ線近似演算部と、(a)前記折れ線近似演算部により
求められた各折れ線について、その隣接する折れ線との
交点をなす境界点において、その境界点の両側の折れ線
のなす角度を求め、その角度が所定角度より大きい場合
には、その境界点を区切端点として求め、(b)区切端
点と他の区切端点との間に折れ線がひとつのみ存在する
場合には、その折れ線を直線として登録し、(c)区切
端点と他の区切端点との間に折れ線が複数存在する場合
には、その複数の折れ線を構成する境界点列の一部ある
いは全体が同一の円弧を構成するか否かを判断し、同一
の円弧を構成する部分があると判断される場合には、同
一円弧を構成すると判断された折れ線の一部あるいは全
体をワークの輪郭を構成する円弧として採用するととと
もに、円弧として採用されなかった部分については直線
として登録し、ワークの輪郭を構成する円弧あるいは直
線の方程式を求める円弧直線特定手段と、を備えてい
る。
【0017】前記円弧直線特定手段の前記(c)におけ
る、区切端点と他の区切端点との間の複数折れ線を構成
する境界点列の一部あるいは全体が同一の円弧を構成す
るか否かの判断は、区切端点のひとつを始点とする折れ
線を探索初期エッジとし、前記探索初期エッジに近接す
る順番に前記折れ線と前記探索初期エッジとのなす角度
を求めて前記探索初期エッジに対し所定角度以上の角度
をなす折れ線を探索終端エッジとして採用し、前記探索
終端エッジからの前記探索初期エッジに向かってひとつ
ひとつ折れ線を追加してゆき、それらの折れ線群を構成
する境界点列のすべてが同一の円弧を構成するか否か判
定し、同一の円弧を構成しないと判定されるまで折れ線
を追加してゆくととともに、前記探索終端エッジから前
記探索初期エッジとは反対に向かってひとつひとつ折れ
線を追加してゆき、それらの折れ線群を構成する境界点
列のすべてが同一の円弧を構成するか否かを判定し、同
一の円弧を構成しないと判定されるまで折れ線を追加し
てゆくことにより、円弧の両端を特定することを特徴と
する。
【0018】前記エッジ検出手段においては、前記境界
点列のどこからどこまでがひとつの直線あるいは円弧か
を求め、ひとつの直線あるいは円弧に含まれると判定さ
れた境界点列の座標値より各直線と円弧の方程式を求め
るとともに、前記エッジ検出手段により求められた直線
と円弧の方程式をもとに、各直線あるいは円弧が存在さ
れると予想されるワーク画像の一部に対してエッジ検出
処理を行うことにより、より正確に各直線と円弧の方程
式を修正し、修正した直線と円弧の方程式の交点を演算
することによりワーク輪郭を構成する直線と円弧の各交
点を求めるエッジ数値情報検出手段を備えている。
【0019】また、上記目的を達成するために、請求項
5に記載の発明は、輪郭が直線と円弧との組み合わせで
構成されているワークの画像から前記輪郭を構成する円
弧と直線を求めるワークエッジ検出画像処理装置であっ
て、ワークの輪郭を構成する直線と円弧が同一の平面に
あることと、3次元空間における前記平面を表す方程式
とが既知であり、ワークの入力画像からワークの背景を
識別しワークの領域を抽出するワーク領域抽出手段と、
抽出されたワーク領域の境界を構成する境界点の点列を
求めるワーク境界点抽出手段と、求めた境界点の点列が
存在する平面を表す方程式を参照しどの境界点からどの
境界点までが単一の直線あるいは単一の円弧で表される
かを検出し、ワークの輪郭を構成する円弧と直線の方程
式を求めるエッジ検出手段と、前記エッジ検出手段によ
り求められた直線と円弧の方程式をもとに、各直線ある
いは円弧が存在されると予想されるワーク画像の一部に
対してエッジ検出処理を行うことにより、より正確に各
直線と円弧の方程式を修正し、修正した直線と円弧の方
程式の交点を演算することによりワーク輪郭を構成する
直線と円弧の各交点を求めるエッジ数値情報検出手段
と、を備えたことを特徴とする。
【0020】また、上記目的を達成するために、請求項
6に記載の発明は、輪郭が直線と円弧との組み合わせで
構成されているワークの画像から前記輪郭を構成する円
弧と直線を求めるワークエッジ検出画像処理装置であっ
て、ワークの表面が互いに平行に位置する上下の平面と
この上下の平面に垂直な側面とを有することと、ワーク
の下面が配置される平面の方程式とが既知であり、ワー
クの入力画像からワークの背景を識別しワークの領域を
抽出するワーク領域抽出手段と、抽出されたワーク領域
の境界を構成する境界点の点列を求めるワーク境界点抽
出手段と、求めた境界点の点列が存在する平面を表す方
程式を参照しどの境界点からどの境界点までが単一の直
線あるいは単一の円弧で表われるかを検出し、ワークの
輪郭を構成する円弧と直線の方程式を求めるエッジ検出
手段と、前記エッジ検出手段により求められた直線と円
弧の方程式をもとに、各直線あるいは円弧が存在される
と予想されるワーク画像の一部に対してエッジ検出処理
を行うことにより、より正確に各直線と円弧の方程式を
修正し、修正した直線と円弧の方程式の交点を演算する
ことによりワーク輪郭を構成する直線と円弧の各交点を
求めるエッジ数値情報検出手段と、前記エッジ数値情報
検出手段で修正した直線と円弧の方程式と前記交点の座
標値とを用い、未だ求められていない残された直線と円
弧の方程式と交点の座標値とを演算する非輪郭エッジ数
値情報検出手段と、を備えたことを特徴とする。
【0021】具体的には、請求項1に記載の発明は、画
像を入力する1台のビデオカメラ、カメラからの映像信
号をデジタル化してコンピュータに入力する画像入力装
置、画像の中からワークの領域を抽出するワーク領域抽
出装置、ワーク抽出装置の出力からワーク領域の境界と
なる点列を取り出すワーク境界点抽出装置、ワーク境界
点列からどの点からどの点までがひとつの直線あるいは
円弧であるかを検出するエッジ検出装置、およびエッジ
検出装置の出力をもとに各エッジの方程式を算出した後
に各エッジの交点の座標値を算出するエッジ数値情報検
出装置から構成されることが可能である。
【0022】また、具体的には、請求項5に記載の発明
は、画像を入力する1台のビデオカメラ、カメラからの
映像信号をデジタル化してコンピュータに入力する画像
入力装置、画像の中からワークの領域を抽出するワーク
領域抽出装置、ワーク抽出装置の出力からワーク領域の
境界となる点列を取り出すワーク境界点抽出装置、ワー
ク境界点が存在する平面の方程式をもとにワーク境界点
列からどの点からどの点までがひとつの直線あるいは円
弧であるかを検出するエッジ検出装置、およびエッジ検
出装置の出力をもとに各エッジの3次元空間での方程式
を算出した後に各エッジの交点の3次元空間での座標値
を算出するエッジ数値情報検出装置から構成されること
が可能である。
【0023】また、具体的には、請求項6に記載の発明
は、ワークを設置する面の3次元空間での方程式が既知
なワーク設置装置、画像を入力する1台のカメラ、カメ
ラからの映像信号をコンピュータに入力する画像入力装
置、画像の中からワークの領域を抽出するワーク領域抽
出装置と、ワーク抽出装置の出力からワーク領域の境界
となる点列を取り出すワーク境界点抽出装置と、ワーク
境界点列のどの点からどの点までがひとつの直線あるい
は円弧であるかを検出するワーク輪郭エッジ数値情報検
出装置、ワーク輪郭のエッジ情報をもとに残りのワーク
のエッジ方程式および端点座標値を求めるワーク非輪郭
エッジ数値情報検出装置から構成されることが可能であ
る。
【0024】次に、上述の本発明の作用について説明す
る。
【0025】請求項1に記載の発明についてエッジ検出
手段は、ワーク境界点抽出手段によって求めた境界点の
点列からどの境界点からどの境界点までが単一の直線あ
るいは単一の円弧で表されるかを折れ線近似を用いて検
出し、ワークの輪郭を構成する円弧あるいは直線の方程
式を求める。
【0026】エッジ検出手段は、ある境界点と近接する
境界点とを直線で結び、前記近接境界点に至るまでの境
界点の中で前記直線から所定距離以上離れたはみ出し境
界点があるか否かを判定し、同一の直線を構成する境界
点の集合を見い出し、同一の直線を構成しない境界点を
複数の折れ線で表す。
【0027】エッジ数値情報検出手段は、前記エッジ検
出手段によって求めたワークの輪郭を構成する円弧と直
線の方程式の精度をさらに上げるためのものである。ワ
ーク領域抽出手段とワーク領域抽出手段によって求めた
境界点の点列には、ワークの入力画像を画像処理して求
めているため、誤差があり得る。この誤差を、エッジ検
出手段で求めたエッジの方程式を修正し改良する。
【0028】具体的には、請求項1に記載の本発明のワ
ークのエッジ検出画像処理装置によれば、そのエッジが
直線および円弧の組み合わせから構成されるワークの直
上にビデオカメラが設置され、ワークの画像がそのビデ
オカメラにより入力され、映像信号がコンピュータの画
像入力装置によりデジタル化されコンピュータのメモリ
に取り込まれる。コンピュータは、あらかじめワークが
設置されていない際の背景の明るさ、あるいはワークが
設置されていない際の背景画像を保存しており、ワーク
のみを検出するようにしきい値を設定して2値化する
か、あるいはワークを含む入力画像と背景画像との差分
をとることにより背景との差分画像を生成する。
【0029】2値化画像では、ワークの領域のみが値が
1となっており、差分画像ではワークの領域では値が大
きく、それ以外ではほとんど値が0になっているので、
容易にワークの領域を検出することができる。ワークの
領域を検出した後に、ワークとの境界となる点列を、時
計まわり、あるいは反時計まわりに求めてゆく。求めら
れたワーク境界点列から、まず折れ線近似により、どの
点からどの点までがひとつの直線に属するか、求めてゆ
く。その結果、ワークの境界はいくつかの折れ線により
近似され、各折れ線はワーク境界点列の何番から何番の
点までであるかが求められる。
【0030】次に、連続する複数の折れ線をひとつの円
弧で十分近似できるものを探し、順次折れ線を円弧で置
き換えてゆく。
【0031】以上の処理の結果、ワーク境界がどのよう
に直線と円弧の組み合わせで構成されているかが求めら
れたので、各直線部分や円弧部分の方程式を入力画像に
エッジ検出処理を直接ほどこすことにより、より正確に
求め、それらの方程式の交点を算出することにより、各
直線部分や円弧部分の交点の座標値を求める。
【0032】また、請求項5に記載の本発明のワークの
エッジ検出画像処理装置によれば、そのエッジが直線お
よび円弧の組み合わせから構成されるワークの画像がビ
デオカメラにより入力され、映像信号がコンピュータの
画像入力装置によりデジタル化されコンピュータのメモ
リに取り込まれる。コンピュータは、あらかじめワーク
が設置されていない際の背景の明るさ、あるいはワーク
が設置されていない際の背景画像を保存しており、ワー
クのみを検出するようにしきい値を設定して2値化する
か、あるいはワークを含む入力画像と背景画像との差分
をとることにより背景と差分画像を生成する。
【0033】2値化画像では、ワークの領域のみが値が
1となっており、差分画像ではワークの領域では値が大
きく、それ以外ではほとんど値が0になっているので、
容易にワークの領域を検出することができる。ワークの
領域を検出した後に、背景とワークとの境界となる点列
を、時計まわり、あるいは反時計まわりに求めてゆく。
求められたワーク境界点列から、まず折れ線近似によ
り、どの点からどの点までがひとつの直線に属するか、
求めてゆく。その結果、ワークの境界はいくつかの折れ
線により近似され、各折れ線はワーク境界点列の何番か
ら何番の点までであるかが求められる。検出されたワー
ク境界が属する平面の3次元空間での方程式が既知であ
るので、連続する複数の折れ線をひとつの円弧からなる
と仮定して、その円弧の方程式をワーク境界点列の中の
3点から算出した後に、残りのワーク境界点とのずれか
ら、ひとつの円弧とみなせるかどうかの判定を行ってゆ
くことにより、複数の折れ線がひとつの円弧で十分近似
できるものを探し、順次折れ線を円弧で置き換えてゆ
く。
【0034】以上の処理の結果、ワーク境界がどのよう
に直線と円弧の組み合わせで構成されているかが求めら
れたので、各直線部分や円弧部分の方程式を入力画像に
エッジ検出処理を直接ほどこすことにより、より正確に
求め、それらの方程式の交点を算出することにより、各
直線部分や円弧部分の交点の座標値が求められる。
【0035】請求項6に記載の本発明のワークのエッジ
検出画像処理装置によれば、あらかじめその3次元的な
位置が既知なワーク載置台上の任意箇所に設置されたワ
ークの画像がビデオカメラにより入力され、その映像信
号がコンピュータの画像入力装置によりデジタル化され
コンピュータのメモリに取り込まれる。コンピュータ
は、あらかじめワークが設置されていない際の背景の明
るさ、あるいはワークが設置されていない際の背景画像
を保存しており、ワークのみを検出するようにしきい値
を設定して2値化するか、あるいはワークを含む入力画
像と背景画像との差分をとることにより背景と差分画像
を生成する。2値化画像では、ワークの領域のみが値が
1となっており、差分画像ではワークの領域では値が大
きく、それ以外ではほとんど値が0になっているので、
容易にワークの領域を検出することができる。
【0036】ワークの領域を検出した後に、背景とワー
クとの境界となる点列を、時計まわり、あるいは反時計
まわりに求めてゆく。求められたワーク境界点列から、
まず折れ線近似により、どの点からどの点までがひとつ
の直線に属するか、求めてゆく。その結果、ワークの境
界はいくつかの折れ線により近似され、各折れ線はワー
ク境界点列の何番から何番の点までであるかが求められ
る。
【0037】次に、ワークの設置されているワーク設置
台の平面の方程式を用いてワーク側面のエッジを検出す
る。各折れ線がワーク側面のエッジであると仮定する
と、その折れ線の端点の一方はワーク設置台上に保存す
るはずであり、ワーク設置台の平面の方程式とその端点
の画面内での座標値から3次元空間での座標値が算出で
きる。また、その折れ線がワーク側面のエッジであれば
ワーク設置台上にある端点を通り、ワーク設置台に垂直
であるはずであるので、その3次元空間での直線の方程
式が算出でき、従って画面内での直線の方程式も算出で
きる。算出された直線の方程式と実際の折れ線とを比較
することにより、各折れ線が側面のエッジであるかどう
かを判定する。
【0038】ワーク側面のエッジには、曲面の境界線が
見えている場合もあり、その場合にはそのエッジはワー
ク載置台に垂直にならないが、傾きの判定に余裕をもた
せるとともに、両隣りのエッジがワーク上面に属するか
下面に属するかを調べることにより、判定を行う。ワー
ク側面のエッジが検出されたら、各折れ線がワーク上面
に属するか、下面に属するか、側面に属するかを調べ
る。ワーク側面のエッジについて、ワーク載置台の平面
の方程式を用いることにより、その両端点の3次元空間
での座標値が計算されるのでワーク高さが算出される。
やはり、側面のエッジが曲面の境界線の場合には、正確
にワーク高さが求められない。
【0039】そこで、この大まかなワーク高さの推定値
を用いて、ワーク下面に属するエッジの中で、最も長い
エッジを探し、そのエッジと平行な上面に属するエッジ
の画面内での位置を、ワーク高さの推定値を用いて計算
し、その近傍領域のエッジ検出を行うことにより、正確
な位置を算出する。このふたつの平行なエッジの画面内
での位置からワーク高さを正確に求める。ワーク高さが
求められたら、ワーク上面の3次元空間での方程式は容
易に求められるので、各折れ線が属する平面の3次元空
間での方程式が定まる。その後、連続する複数の折れ線
がひとつの円弧からなると仮定して、その円弧の3次元
空間での方程式をワーク境界点列の中の3点の座標値お
よび折れ線が属する平面の方程式を用いて算出した後
に、残りのワーク境界点とのずれから、ひとつの円弧と
みなせるかどうかの判定を行ってゆくことにより、複数
の折れ線がひとつの円弧で十分近似できるものを探し、
順次折れ線を円弧で置き換えてゆく。
【0040】以上の処理の結果、ワーク境界がどのよう
に直線と円弧の組み合わせで構成されているかが求めら
れたので、各直線部分や円弧部分の方程式を入力画像に
エッジ検出処理を直接施すことにより、より正確に求め
られ、それらの方程式の交点を算出することにより、各
直線部分や円弧部分の交点の座標値が求められる。ワー
ク上面のエッジの中には、輪郭を構成するエッジとして
すでに検出されているエッジと、まだ検出されていない
エッジがある。検出されていないエッジは、それと平行
な下面のエッジの画面内での位置、ワークの高さから、
その画面内でのおよその位置を推定した後に、推定され
た位置近傍のエッジ検出処理を行い、正確な位置を算出
する。ワーク上面のエッジの画面内の正確な位置が全て
算出されれば、ワークの高さが算出されているので、ワ
ーク形状が完全にわかったことになる。最後に、画面内
の各エッジの位置、ワーク載置台の3次元的な位置およ
びワークの高さの値から各エッジの3次元的な位置を算
出することにより、ワークの3次元的な完全な形状およ
び位置を算出できたことになる。
【0041】
【発明の実施の態様】以下に、本発明の実施例について
図面を参照しつつ説明する。図1は、ワークのエッジ検
出画像処理装置に係わる本発明請求項1に対応する一実
施形態について概略構成を示すものである。
【0042】この図において、ワークのエッジ検出画像
処理装置は、ビデオカメラ3と、画像入力装置4と、画
像の中からワークの領域を抽出するワーク領域抽出装置
5と、ワーク抽出装置の出力からワーク領域の境界とな
る点列を取り出すワーク境界点抽出装置6と、ワーク境
界点列からどの点から点までがひとつの直線あるいは円
弧でるかを検出するエッジ検出装置7、およびエッジ検
出装置の出力をもとに各エッジの方程式を算出した後に
各エッジの交点の座標値を算出するエッジ数値情報検出
装置8から構成されている。ワーク2は、ワーク設置装
置1の上に設置される。
【0043】以下、上記構成のワークのエッジ検出画像
処理装置を用いてワーク設置台1に設置されたワーク2
の輪郭を構成する直線・円弧を検出する方法を図2をも
参照しつつ説明する。
【0044】図2は、ビデオカメラ3の出力信号である
映像信号が画像入力装置4でデジタル化された後の画像
処理手順を示したものである。まず、ステップS101
では、画像入力装置4にてデジタル化された画像データ
を入力して2次元配列 pixel[y][x] を生成する。(y,x)は画面内でのy,x座標値であ
り、各配列要素であるpixel[y][x]は画面上
での座標値(y,x)での画像の輝度を表す。なおこの
例では、画像は白黒画像とし、255階長、つまり8b
itで、画像のサイズは高さがV、幅がHとする。
【0045】ステップS102では、ビデオカメラ3で
あらかじめ取得しておいたワークの載せてないワーク設
置装置1の画像と、現在のワークを含む入力画像との差
分を取ることによりワーク部分以外はほぼ除去された差
分画像が生成される。ステップS103では、差分画像
からワークの輪郭を検出し、輪郭の座標値列 chain[i][] を得る。chain[i][0]はi番目の輪郭点のx
座標値、chain[i][1]はi番目の輪郭点のy
座標値である。ステップS104では、輪郭の座標値列
から、ワーク輪郭の各部分が直線か円弧かを判別し、以
下のようなデータを作成する。
【0046】 cdgelist[i][0]:i番目のエッジの最初の輪郭点番号 [1]:i番目のエッジの最後の輪郭点番号 [2]:円弧か直線かの識別 (0:直線、1:円弧) 例えば、cdgelist[0][0]が0で、cdg
elist[0][1]が25であるときには、0番目
のエッジは、 chain[0]からchain[25] までの座標値であるということを意味する。
【0047】ステップS105では、ステップS104
で検出された各エッジの点列の近傍領域をまずエッジ強
調処理した後に、エッジの正確な位置をハフ変換などの
エッジ検出処理により算出する。直線や円弧であるエッ
ジの画面内の位置とは、直線や円弧の方程式および、両
端点の座標値のことである。
【0048】図3は、板状のサンプルワークからエッジ
を検出する各段階での処理結果を示した例である。図3
(a)が入力画像であり、図3(b)は背景画像と入力
画像の差分画像である。この例ではしきい値を30に設
定してあり、差が30以下の画素については、背景との
差がないとみなし値を0にしてある。従って、値が0で
ない部分がおよそワークに対応するが、影があればワー
クの周辺部分も含んでしまう。図3(c)は図3(b)
の差分画像からワーク輪郭を検出したものである。ワー
ク輪郭を検出する際には、後述するようにしきい値を動
的に修正しながら輪郭の検出を行っているので、図3
(b)では含まれている可能性がある影も除去される。
図3(d)はワーク輪郭の直線部分と円弧部分を認識し
てそれらの方程式や端点位置を算出した結果である。
【0049】図4は、入力画像とあらかじめ取得してお
いたワークを含まない背景画像との差分画像の生成手順
を説明したものである。なお、背景がほぼ均一な明るさ
であり、ワークとその明るさがはっきりと異なる場合に
は、背景画像との差分画像をとらず、あらかじめ背景の
明るさに設定されたしきい値により、入力画像を2値化
すれば、ワークの領域のみが値が1となる2値化画像が
得られ、同様の処理によりワーク境界点列が検出でき
る。
【0050】ステップS201では、入力画像の全画素
の平均を算出する。例えば、入力画像を ipixel[y][x] そのサイズを高さV、幅Hとすると、その平均は
【0051】
【数1】 により計算されるiaveとなる。
【0052】ステップS202では、あらかじめ取得て
おいた背景画像の全画素の平均をステップS201と同
様に計算し、これをbaveとする。
【0053】ステップS203では、入力画像と背景画
像の各画素について差をとる。その際に、ステップS2
01およびステップS202で算出されたそれぞれの画
面平均値の値の違いを考慮して差分をとる。つまり、 diff[i][j]=ipixel[i][j]−iave−bpixel[i][j]+bave により差分画像である2次元配列diff[i][j]
を生成する。それぞれの画面の平均値の違いは除去され
るので、背景画像を取得した際の照明の明るさと入力画
像を取得した際の照明の明るさに違いがある際にも、そ
の照明の違いの影響をある程度除去することができる。
【0054】ステップS204では、ステップS203
で生成された差分画像の各画素について、あらかじめ設
定しておいたしきい値と値を比較して、そのしきい値以
下の画素については値を0に設定する。ステップS20
4で生成された修正差分画像の値が0でない領域にワー
クが存在するとほぼみなせる。ただし、背景と入力画像
と違いが十分有意なものであるかの識別をする。このし
きい値の設定は照明条件やワークと背景の色などにより
適切な値が異なるために、一般には難しい。しきい値を
小さく設定しすぎるとワークによる影や、その他の背景
部分のわずかな見え方の変化も検出してしまう可能性が
ある。
【0055】一方、しきい値を大きく設定しすぎるとワ
ークの一部を検出できない可能性がある。そこで、本発
明では、ステップS204でのしきい値は十分小さな値
に設定しておき、ワークの検出もれを防ぐとともに、修
正差分画像では除去できないで残っている影などのワー
ク以外の領域は、後述のワーク輪郭の検出処理を工夫す
ることにより除去するようにしている。
【0056】図5は、物体輪郭点列を時計まわりに検出
する手順を説明したものである。ステップS301では
修正差分画像の値を調べることにより、値が0ではない
ワークの左上端の座標値(x0,y0)を求める。次
に、ステップS302では画面の上から下へ向かって、
修正差分画像の各列を探索してワーク境界の座標値を求
め、ひとつの境界を求めた後に右隣の列を再び画面の上
から下へ向かって探索してゆく。この手順をワークの右
端に達するまで続ける。
【0057】次に、ステップS303で画面の右から左
へ向かって、修正差分画像の各行を探索してワーク境界
の座標値を求め、ひとつの境界を求めた後に下隣の行を
再び画面の右から左へ向かって探索してゆく。この手順
をワークの右端に達するまで続ける。ステップS304
では画面の下から上へ向かって、修正差分画像の各列を
探索してワーク境界の座標値を求め、ひとつの境界を求
めた後に左隣の列を再び画面の上から下へ向かって探索
してゆく。この手順をワークの左端に達するまで続け
る。ステップS305では、画面の左から右へ向かっ
て、修正差分画像の各行を探索してワーク境界の座標値
を求め、ひとつの境界を求めた後に上隣の行を再び画面
の左から右へ向かって探索してゆく。この手順をワーク
の上端に達するまで、あるいはすでに検出したワーク境
界に戻ってきたら終了する。
【0058】以上の結果、ワークの輪郭の各座標値が時
計まわりに求められたことになる。ここでは、ワーク輪
郭の座標値列が chain[i][] に納めることとする。chain[i][0]がi番目
の輪郭点のx座標値、chain[i][1]がi番目
の輪郭点のy座標値である。
【0059】図6は、図5ではフローで示したワーク輪
郭の探索の流れを画面上で視覚的に示したものである。
図中の(1)から(3)までがステップS302の画面
上から下への物体輪郭の探索に対応する。(4)と
(5)がステップS303の画面右から左への物体輪郭
の探索、(6)がステップS304の画面下から上への
物体輪郭の探索、(7)がステップS305の画面左か
ら右への物体輪郭の探索に対応する。
【0060】図7は、局所的なワーク輪郭点の検出手順
を示したものである。また、図8は修正差分画像の上か
ら下へ輪郭を探索する様子を視覚的に示したものであ
り、図9は雑音成分を含む場合の輪郭探索の様子を視覚
的に示したものである。輪郭の探索方向としては、前述
のように上から下へ、右から左へ、下から上へ、左から
右へ、の4通りがある。探索方向の設定方法は後述し、
ここでは上から下への探索を行っているものとし、ひと
つの輪郭を見つけた後の移動方向は左から右であるとす
る。他の探索方向の際にもワーク検出の流れは探索方向
を除いて同じである。まず、ステップS401で、ひと
つ前の輪郭点の座標値(xb,yb)から探索初期位置
(xo,yo)を設定する。探索方向が上から下へ、探
索の移動方向が左から右への場合には、以下のように探
索初期位置が決定される。
【0061】xo=xb+1 yo=yb−10 つまり、隣の列の10画素だけ探索方向とは逆に戻った
位置を探索初期位置としている。探索方向が右から左
で、探索の移動方向が上から下の場合には、ひとつ前の
輪郭点の位置から一行下で右に10画素移動した点を探
索初期位置として設定される。他の探索方向の場合にも
同様である。
【0062】ステップS402ではカウンタcount
の値を0に初期化する。このカウンタの値は、その探索
位置の値diff[i][j]がしきい値より大きいと
識別されると、ひとつずつカウントアップされるもので
あり、カウンタの値が1であると、この座標値が輪郭上
の点である可能性があるので、輪郭の候補として座標値
を記憶しておく。図8(a)では(x0,y0)が輪郭
の候補である。各画素についてすべての処理を終了する
と探索位置を更新する。上から下へ探索している際には
y座標値のみをひとつ大きくした点を次の探索位置とす
る。連続5画素について、その値がしきい値以上であれ
ばカウンタの値が5となるので、記憶ずみの座標値を輪
郭として認め、前述の chain[i][] に値を設定する。図8では(b)まで探索が進んだ段階
で図8(a)の(x0,y0)が輪郭として認められ
る。
【0063】修正差分画像の値がしきい値を越えたら単
純にワーク境界として認識しないのは、図9に示すよう
なノイズに対処するためである。本発明では図7のフロ
ーに示すように、カウンタ値が5以上になってはじめ
て、カウンタが1になったときの座標値をワーク輪郭と
して認識するとともに、探索位置の画素の値がしきい値
を3画素連続して下回る場合には、カウンタの値を0に
クリアしている。図9は、ワーク外の領域に値がしきい
値以上の画素が存在するとともに、ワーク内にも値がし
きい値以下の画素が存在している例である。このような
状況でも、図7に示すワーク輪郭の検出手続きによれ
ば、図9(a)に示すようにワーク外のノイズがいった
ん輪郭の候補として記憶されるものの、その後3画素以
上連続してしきい値を下回る画素が続くので、図9
(a)で検出された輪郭候補(x1,y1)は輪郭候補
として捨てられ、この列のワーク輪郭として正しいワー
ク輪郭が検出される。また、ワーク内にしきい値を下回
る画素が存在する列についても、しきい値を下回る画素
が1画素のみであるので、カウンタがクリアされずに、
さらに3画素探索が進んだ時点で(x0,y0)が正し
くワーク輪郭として検出される。
【0064】なお、上から下への探索を行い続け、画面
下端まで到達してもワーク輪郭が検出されない場合に
は、探索を終了する。探索の移動方向が左から右である
場合には、ワークの右端を越えたことを意味するので、
探索方向を右から左に設定し、探索の移動方向を上から
下へ設定する。探索方向および探索の移動方向へ変更に
ついては後述する。
【0065】ワークの輪郭が検出されると、検出された
輪郭点の内側の5点の値の平均を計算する。この値は輪
郭点近傍おける背景と入力画像との差となる。しきい値
Tは5点の値の平均が大きいときには大きく、小さいと
きには小さくするのが好ましいが、例えば adiff=(diff[xo][yo+1]+diff[xo][yo+2]+diff[xo][yo+
3]+diff[xo-1][yo+2]:+diff[xo+1][yo+2])/5 error = adiff - sthreshold T = sthreshold + error*0.5 のように設定すればよい。adiff は5点の平均値であ
り、しきい値Tはほぼ5点の平均値の変化に追従して変
化してゆくが、上記の計算式により局所的なノイズに対
して急変しないようになっている。また、しきい値に上
限と下限を設けておき、それらを越えた値をとらないよ
うにすることも有効である。図10(a)にしきい値の
更新方法を視覚的に示している。図10(b)は、本発
明のしきい値の動的な更新方法によれば、影等によりワ
ーク外側に背景とは明るさの違う領域が存在する際に
も、影がない領域でしきい値が高く設定されるので、図
10(b)の影のある領域に達した際にもワーク輪郭が
正しく検出されるのを示したものである。影がない領域
の値によりしきい値が高く設定されるので、図中の影の
領域に達したときに、影の領域の値はしきい値以下にな
るので輪郭としては検出されずに正しくワーク輪郭が検
出される。
【0066】図11はワーク輪郭の傾きにより輪郭探索
の結果求められる輪郭点の座標値が急に変化する場合を
示している。上から下への探索の場合には、ワーク輪郭
が画面内で垂直、あるいは垂直に近い領域では前述のワ
ーク輪郭探索の結果求められる輪郭点の座標値がとなり
同士で大きく変化する。このような場合には、探索方向
を図11(b)のように左から右に変更するのが望まし
いのは明かである。そこで、本発明では図7に示すよう
にひとつ前の輪郭との距離が5画素を越える場合には、
探索方向および探索位置の移動方向の変更を行う。
【0067】 探索方向および探索位置の移動方向の変更は以下のように行われる。 探索方向: 上から下へ 新探索方向: 左から右へ 探索位置の移動方向:左から右へ → 新探索位置の移動方向:下から上へ 輪郭の移動方向 :下から上へ 探索方向: 上から下へ 新探索方向: 右から左へ 探索位置の移動方向:左から右へ → 新探索位置の移動方向:上から下へ 輪郭の移動方向 :上から下へ 探索方向: 右から左へ 新探索方向: 下から上へ 探索位置の移動方向:上から下へ → 新探索位置の移動方向:右から左へ 輪郭の移動方向 :右から左へ 探索方向: 右から左へ 新探索方向: 上から下へ 探索位置の移動方向:上から下へ → 新探索位置の移動方向:左から右へ 輪郭の移動方向 :左から右へ 探索方向: 下から上へ 新探索方向: 左から右へ 探索位置の移動方向:右から左へ → 新探索位置の移動方向:下から上へ 輪郭の移動方向 :下から上へ 探索方向: 下から上へ 新探索方向: 右から左へ 探索位置の移動方向:右から左へ → 新探索位置の移動方向:上から下へ 輪郭の移動方向 :上から下へ 探索方向: 左から右へ 新探索方向: 下から上へ 探索位置の移動方向:下から上へ → 新探索位置の移動方向:右から左へ 輪郭の移動方向 :右から左へ 探索方向: 左から右へ 新探索方向: 上から下へ 探索位置の移動方向:下から上へ → 新探索位置の移動方向:左から右へ 輪郭の移動方向 :左から右へ また、上述の探索方向および探索位置の移動方向は、こ
の探索方向と探索位置の移動方向の変更が行われる際に
検出された新しい輪郭の座標値まで到達した時点でもと
の探索方向および探索位置の移動方向に戻る。つまり臨
時の探索方向および探索位置の移動方向である。図11
の例では、図11(a)の新しい境界に到達した時点
で、探索方向は上から下へ、探索位置の移動方向は左か
ら右に戻る。以上のような探索方向の変更により、図1
2に示すような形状の物体の輪郭もくまなく探索するこ
とが可能になる。図13は、画面の上から下へ向かって
ワーク輪郭を探索する際の、探索方向と探索位置の移動
方向の変更も含めた、ワーク輪郭の探索手続きを示した
ものである。
【0068】図14は、ワーク輪郭の座標値列が検出さ
れた後に、どの部分が直線でどの部分が円弧であるかを
識別する手続きを示したものである。この手続きは図2
中のステップS104に対応し、ステップS103まで
の処理によりワーク輪郭を構成する座標値列 chain[i] [] が得られている。本手続きの目的は、この座標値列の何
番から何番までがひとつの直線、あるいは円弧であるの
かを求めることにある。
【0069】ステップS501では、ワーク境界点列の
折れ線近似を求める。各折れ線がワーク境界点列の何番
目の点から何番目の点までであるかを求める。ステップ
S502では、各折れ線の端点の両側において、ワーク
境界の傾きが急変しているかどうかを調べ、その結果を
配列に保存してステップS503で利用できるようにす
る。ステップS501では、折れ線近似を求めている
が、その中には実際にはひとつの円弧であるものが折れ
線近似により、複数の折れ線として検出されているもの
もあれば、実際に直線であり、正しく検出されているも
のもある。端点の両側がもし直線であれば、その端点の
両側で傾きが異なるはずである。一方、その端点が、ひ
とつの円弧が折れ線近似により分割されてできた折れ線
の間の端点であれば、その端点の両側では傾きがほどと
ん異ならないはずである。画像からワーク境界を検出す
る際の誤差も考慮して、ステップS502では、各橋店
の両側の傾きを調べ、ある値以上、傾きが異なる端点に
ついては1、傾きの違いがある値未満の端点については
0が代入される配列 dtilt[i] を計算により求めている。dtilt[i]の値が1で
あれば、i番目の端点の両側の傾きが大きく異なること
を意味する。ステップS503では、以上の結果を受け
て、ひとつの円弧としてみなせる連続する折れ線を検出
する。連続する折れ線LiからLjまでをひとつの円弧
としてみなすための基準は、以下の通りである。
【0070】1)折れ線Liから折れ線Liまでの間の
端点の両側の傾きがすべて大きく異ならないものである (dtklt[]の値がすべて0) 2)折れ線Liから折れ線Liまでのすべてのワーク境
界点列を平均1画素以下の誤差で近似する円弧が存在す
る 3)折れ線Liの端での傾きと折れ線Ljの端での傾き
の違いが一定以上 3)の条件は、ワーク境界に、ほとんど傾きが異ならな
いふたつの直線が隣り合って存在する場合に、非常に大
きな半径をもったひとつの円弧でふたつの直線を近似す
ることが可能になるが、それはひとつの円弧としては認
めないための条件である。本当に大きな半径をもったひ
とつの円弧が折れ線近似されたものであれば、さらにほ
とんど傾きが異ならない直線が面なるはずであるので、
連続する折れ線の両端での傾きの違いの一定の値以上に
なって、はじめてひとつの円弧として認めている。も
し、非常に大きな半径をもった円弧のごく一部が存在し
た場合には、3)の条件を満たさなくなるので、折れ線
近似のままになるが、そのような場合は実際にはほとん
ど存在しない。図15は図14に示された手続きを視覚
的に表したものである。
【0071】図16は図14中のステップS501であ
る、折れ線近似を求める手続きを示したものである。ワ
ーク境界点列より、ひとつの直線とみなせる点の集合を
順に求めてゆく。まず、ステップS601で各折れ線の
探索を始める点である探索点の初期値として、ワーク境
界点列の最初の点を設定した後に、ステップS602以
下の手続きをワーク境界点列の最後に達するまで繰り返
し行う。ステップS602では、ワーク境界点列の探索
点からどの点までがひとつの直線としてみなせるかの判
定を行う。探索点がno.i(ワーク境界点列のi番目
の点)だとすると、no.iからno.(i+1),n
o.iからno.(i+2),no.iからno.(i
+3),−−−のように調べる範囲をひとつずつのばし
てゆき、ひとつの直線とはみなせなくなる点jを見つ
け、ステップS603でno.iおよびno.jをその
折れ線の両端点として記憶する。ステップS604で
は、ワーク境界点列の最後まで調べたかの判定を行って
おり、最後まで調べていればすべての処理を終了し、ま
だ最後まで到達していなければ、新しい探索点としてn
o.jを設定して、ステップS602に戻る。
【0072】以上の処理をワーク境界点列の最後で行う
ことにより、以下の配列を生成する。
【0073】 edgelist[i][0]:i番目のエッジの最初の輪郭点番号 [1]:i番目のエッジの最後の輪郭点番号 [2]:円弧か直線かの識別 (0:直線, 1:円弧) 例えば、edgelist[0][0]が0で、edg
elist[0][1]が25であるときには、0番目
のエッジは、 chain[0] から chain[25] までの座標値であるということを意味する。なお、ed
gelist[i][2]は、この段階ではすべて0が
設定されている。
【0074】図17は図14中のステップS602であ
る、探索点からひとつの直線とみなせる範囲の探索手続
きを示したものである。ワーク境界点列および、探索を
開始するワーク境界点の番号が与えられるので、まず探
索終端点の初期値として、与えられた探索初期点の番号
をひとつ増やした番号をステップS701で設定する。
つまり探索終端点の初期値は探索初期位置のとなりの境
界点とする。以後、ステップS702以下の処理を、探
索初期位置から探索終端位置までをひとつの直線とみな
せなくなるまで探索終端位置を更新してゆきながら続け
る。ステップS702では、探索初期位置と探索終端位
置を結んだ直線αの方程式を算出し、ワーク境界点の探
索初期位置から探索終端位置までを調べ、直線αから最
も離れている点(xp,yp)を求める。図18(a)
はワーク境界の直線部分を探索している場合には、上述
のような手続きで求めた点(xp,yp)は直線の端点
となることを示している。一方、図18(b)はワーク
境界の円弧部分を探索している場合には、点(xp,y
p)は探索初期位置と探索終端位置の中央の点が求めら
れることを示している。
【0075】点(xp,yp)が求められたら、点(x
p,yp)と直線αの距離L1を算出する。また、ワー
ク境界列の中で点(xp,yp)の両隣の点から直線α
までの距離L2,L3を算出し、L1からL3までがい
づれも1.5画素以上の距離であるかどうかを調べる。
L1からL3までがいづれも1.5画素以上の距離であ
る場合には、最も直線αと離れている点と直線αとの距
離であるL1を探索初期位置から探索終端位置までの距
離で割った値であるratioを計算し、この値が0.
05以上であれば、探索初期位置から探索終端位置まで
のワーク輪郭はひとつの直線としてはみなせないと判定
する。
【0076】図18に従って、上述の手続きを説明す
る。図18(a)では、探索初期位置は点(x0,y
0)であり、探索終端位置の初期値は点(x0,y0)
の右隣の点となる。探索初期位置から探索終端位置まで
の距離が短い間は、探索初期位置と探索終端位置を結ん
だ直線との距離が1.5画素を越えることがないのでひ
とつの直線とみなされる。順次探索終端位置が右に移動
してゆくが、探索終端位置が点(xp,yp)に達する
まではワーク輪郭がひとつの直線であるので、L1から
L3までの値が1.5画素を越えることも、ratio
の値が0.05を越えることもない。探索終端位置が点
(xp,yp)を越えると、L1,L2,L3の値およ
びratioの値が順次大きくなり、点(x1,y1)
で初めて上記のふたつの条件を満たすので、ひとつの直
線とはみなせないと判定し、点(x0,y0)から点
(xp,yp)までと、点(xp,yp)から点(x
1,y1)までに分割する。L1,L2,L3と点(x
p,yp)と直線αとの距離だけでなく、その両隣の点
と直線αとの距離も計算して比較するのは、ワーク輪郭
の検出において正しくワーク輪郭を検出できずにひとつ
ふたつの輪郭点が誤って正しいワーク輪郭を飛び出して
検出されたり、中に食い込んで検出されることがあって
も、そのひとつやふたつの点での誤検出によりエッジを
分割しないためである。
【0077】以上の処理により、ワーク境界の折れ線近
似が求められる。図15では(b)の段階に対応する。
次に、図14におけるステップS502である折れ線の
各端点の両側での傾きの変化のチェックを行う。たとえ
ば、以下のような処理により各端点の両側での傾きを算
出する。いま両側の傾きを判定しようとしている端点を
ワーク境界点列のno.iであるとし、端点の隣り4点
の近傍領域の傾きで両側の傾きを判定するものとする。
すると、端点no.iからno.(i−3)までの座標
値は (x,y)=(chain[i][0],chain
[i][1] |(chain[i−3][0],chain[i−
3][1]) のようにすでにわかっているので、この4点の近傍領域
(たとえば5画素)のエッジ強調処理を行い、ハフ変換
によりエッジの傾きを算出することにより、端点の片側
の傾きが算出される。近傍領域は、たとえば端点no.
iとno.(i−3)を結ぶ線分のまわり5画素の長方
形領域とすればよい。同様に、端点no.iからno.
(i+3)までのワーク境界点の近傍領域のエッジ強調
処理を行い、ハフ変換によりエッジの傾きを算出するこ
とにより、端点のもう一方の傾きが算出される。なお、
エッジ強調処理およびハフ変換については後述する。
【0078】以上の手続きにより、端点の両側でのエッ
ジの傾きが算出されるので、各端点についてその両側で
傾きがたとえば45度以上異なる端点については1、傾
きの違いがある値未満の端点については0が代入される
配列 dtilt[i] を生成する。また、各エッジの両端点付近での傾きを配
列tiltarray[][]に保存する。tilta
rray[i][0]はi番目の折れ線のはじめの端点
付近での傾きである。これらの配列はステップS503
で利用される。
【0079】図19は、ステップS503の手続きをし
めしたものである。ステップS502までに、ワーク境
界点列の折れ線近似が求められていて、配列edgel
ist[][]にその結果が納められている。ステップ
S801では、探索初期エッジとして、最初の折れ線を
設定する。ステップS802以下の処理は、探索初期エ
ッジから、折れ線の傾きが一定の値(たとえば30度)
以上変化するエッジまで探索した後に、その範囲にひと
つの円弧としてみなせる折れ線の組がないかどうかを調
べる処理であり、すべての折れ線について判定を行うま
で探索初期エッジを更新しながら繰り返し行われる。ス
テップS802では、現在の探索初期エッジから、順に
各折れ線の端点を調べ、傾きが探索初期エッジから一定
の値以上異なるエッジを見つけ、探索終端エッジとして
設定する。探索終端エッジは、探索初期エッジから順
に、配列dtilt[i]や配列tiltarra
y[][]の値を調べることにより容易に見つけること
ができる。ステップS803では、探索終端エッジが探
索初期エッジ自身であるかどうかを調べている。もし探
索終端エッジが探索初期エッジ自身であれば、その折れ
線の両端点について、その両側で傾きが急変しているわ
けであるから、その折れ線は直線であるとして設定し
て、ステップS802に戻る。図15(b)では、n
o.1の折れ線やno.8の折れ線などは、その両端点
について両側で傾きが急変しているので、すぐにステッ
プS807で直線として設定する。
【0080】探索終端エッジが探索初期エッジと等しく
ない場合には、ステップS804で、探索終端エッジか
ら探索初期エッジに向かって、ひとつの円弧としてみな
せる範囲を調べる。次に、ステップS805で、探索終
端エッジから探索初期エッジとは反対側に、同様にひと
つの円弧としてみなせる範囲を調べる。すべての折れ線
について調べ終わっていれば、それで終了し、まだ終わ
っていなければ新しい探索初期エッジとして、現在の探
索終端エッジの次のエッジを設定してステップS802
に戻る。以上の手続きにより、すべての折れ線について
円弧か直線かの判定が行われる。以上の結果は、配列e
dgelistに保存される。そして、配列edgel
istを調べ、連続する円弧については、ひとつの円弧
としてまとめることにより、ワークがどのような直線と
円弧で構成されているかが判明したことになる。図15
の例では、折れ線近似では8本の折れ線が検出されてい
るが、no.2からno.5までがひとつの円弧として
まとめられるので、最終的に4本の直線とひとつの円弧
として正しく求められることになる。
【0081】図20に、ステップS804の詳細な説明
を示す。なお、探索初期エッジから探索終端エッジまで
の直線と円弧の組み合わせとしては以下の3通りがあ
る。
【0082】1)すべて直線 2)すべて円弧 3)直線の後に円弧 探索終端エッジは、探索初期エッジから順に折れ線を探
索してゆき、探索初期エッジと傾きが一定の値以上異な
るはじめのエッジである。もし、円弧があり、その後に
直線が続けば、円弧の部分で傾きが十分変化するので、
探索終端エッジは円弧部分となる。傾きの変化量のしき
い値はたとえば30度程度とし、傾きの変化が30度以
下であるような円弧のごく一部のみからなる部分は、実
際のNC機械等で加工されるものにはまず存在しないの
で、本発明ではないものとする。円弧部分が検出される
と、その円弧の端まで、後述するように探索し続けた後
に、探索初期エッジを更新して、新しいステップS80
4を実行するので、円弧の一部のみが検出されずに残る
ことはない。従って、探索初期エッジから探索終端エッ
ジまでの間の直線と円弧の組み合わせは上述の3通りの
みであり、もしその中に円弧が含まれれば、探索終端エ
ッジは円弧である。そこで、ステップS804で探索終
端エッジから探索初期エッジに向かって円弧を探し、そ
の後にステップとS805で探索終端エッジから先を探
索する。
【0083】ステップS901で臨時初期エッジとし
て、探索終端エッジのひとつ手前のエッジを設定すると
ともに、ひとつの円弧としてみなせる複数のエッジであ
ったことを示すフラグであるfoundを0に初期設定
する。これは、まだみつかっていないことに対応する。
以後、ステップS902からの処理を臨時初期エッジを
更新しながら、探索初期エッジに達するかひとつの円弧
としてみなせないことが判明するまで続ける。ステップ
S902では、臨時初期エッジから探索終端エッジまで
がひとつの円弧としてみなせるかどうかの判定を行う。
もし、ひとつの円弧としてみなせることが判明すれば、
ステップS903で、フラグfoundを1に設定す
る。
【0084】ステップS904では、すでに探索初期エ
ッジまで調べてしまったかどうかの判定を行っており、
もし探索初期エッジまで達していなければ、臨時初期エ
ッジをひとつ手前に変更して、ステップS902に戻
り、ひとつの円弧としてみなせる範囲がさらに広がるか
どうかの判定を行うことになる。もし、探索初期エッジ
まで達していれば、探索初期エッジから探索終端エッジ
までについて、直線か円弧か、判明した結果を配列に設
定して探索を終了する。もし、探索初期エッジまで達し
ていなければ、臨時初期エッジをひとつ手前のエッジに
変更して、ステップS902に戻る。
【0085】ステップS903で、ひとつの円弧として
みなせないと判定されたときにも、ふたつの場合があ
る。ひとつは、エッジの傾きの変化がまだ不十分なとき
であり、もうひとつの場合は、ひとつの円弧としては近
似できない場合である。エッジの傾きが不十分な場合に
は、ステップS906で、臨時初期エッジが探索初期エ
ッジと等しいかどうか調べ、もし等しければ探索を終了
するが、等しくなければ臨時初期エッジをひとつ手前の
エッジに変更して、ステップS902に戻る。つまり、
エッジの傾きが不十分な場合には、判定を保留してひと
つ手前の折れ線も含めて判定を行おうということであ
る。もし、ステップS904で、ひとつの円弧では近似
できないと判定された場合には、そこで探索を終了し
て、それまでの探索結果を配列edgelistに設定
する。フラグfoundが0であれば、探索初期エッジ
から探索終端エッジまで、すべての折れ線は直線であ
る。一方、フラグfoundが1であれば、探索終端エ
ッジから、ひとつの円弧としてみなせると判定されたエ
ッジまでが円弧で、残りは直線である。
【0086】ステップS805は、ステップS804と
同様の処理を探索終端エッジから、探索初期エッジとは
反対側に行う。ただし、ステップS804では、臨時初
期エッジが探索初期エッジに達したら探索を終了してい
たが、ステップS805では臨時終端エッジが最後の折
れ線まで達するか、あるいは折れ線の端点の両側で傾き
が急変しているところまで達したら探索を終了する。
【0087】ステップS903「ひとつの円弧としてみ
なせるか」は、以下のような手続きである。臨時初期エ
ッジをi番目の折れ線、探索終端エッジをj番目の折れ
線とする。i番目の折れ線の端点での傾きと、j番目の
折れ線の端点での傾きが基準値より小さい場合には、判
定を保留して、傾きの違いが小さいという結果をだし終
了する。一方、傾きが基準値以上の場合には、以下のよ
うにして、ひとつの円弧としてみなせるか判定する。臨
時初期エッジの端点である、ワーク境界点列の中のed
gelist[i][0]番目の点Pおよび、探索終端
エッジの端点である、ワーク境界点列の中のedgel
ist[j][1]番目の点Qおよび、以上の2点の真
ん中に位置するワーク境界点の座標値を通る円弧の方程
式を算出する。円弧は、3点を指定すれば一意に定ま
る。算出された円弧の方程式から、その円弧上の点の座
標値を1度ごとに360点について計算して配列xfc
irleに保存する。点Pから点Qまでのワーク境界点
の各点について、配列xfcircleの中で、最も距
離が小さい点を探し、その点との距離Liを計算する。
各ワーク境界点についての距離Liの平均をとり、その
値が1画素を越えない場合には、ひとつの円弧としてみ
なせると判定し、1画素以上の場合には、ひとつの円弧
としてみなせないと判定する。
【0088】以上でステップS103「物体輪郭の直線
・円弧区分」が終了して、ワーク境界点列のどこからど
こまでが直線あるいは円弧であるかが判明したことにな
る。次に、ステップS104「物体輪郭となる直線・円
弧の方程式の算出および各輪郭の交点の算出」を行う。
物体輪郭となる直線・円弧の方程式は、以下のように算
出する。
【0089】図21は、ある線分が指定されたときに、
その近傍の領域を設定して領域内のエッジ強調処理をし
てハフ変換により直線の方程式を求める手順を示してい
る。ステップS103までで、各直線に対応するワーク
境界点列が求められている。そこで、各直線対応するワ
ーク境界点列の両端点の座標値から直線を算出すればよ
い。両端点の座標値は前述の配列edgelistに設
定されている。
【0090】まず、線分が与えられると、その線分を囲
む長方形の領域を設定する。この領域の大きさはたとえ
ば線分のまわりの5画素の領域などが適当な値である。
領域が設定されたら、その領域内のエッジ強調処理を行
う。図21(b)はワークの輪郭を構成するエッジの中
で側面のエッジ以外のエッジの近傍の領域をエッジ強調
した結果を示しており、点線で囲まれた領域が図21
(a)の点線で囲まれた領域をエッジ強調した結果であ
る。エッジ強調処理は各画素について以下のようなサイ
ズが7×7のフィルタリング計算を行った結果の絶対値
をとることである。
【0091】
【数2】 filter[i][j]はフィルタのパターンであり、この場合は
エッジの傾きに垂直な方向に傾けたガウシアン関数を微
分したもの(DoG(Derivative of Gaussian))であ
る。エッジの傾きは、ワーク境界点列から求められたエ
ッジの両端点の座標値から算出する。
【0092】このエッジ強調処理により図21(b)の
ようにエッジ上の画素の値は大きく、それ以外の画素の
値は小さくなる。
【0093】エッジ強調画像が得られたら、直線または
円弧の方程式をハフ変換により求める。ハフ変換は、直
線や楕円などの方程式を求める代表的な手法のひとつで
あり、ノイズのある画面からも安定して検出できる特長
がある。
【0094】Houghが提案した直線検出用のハフ変
換は、直線を傾きa、切片bを用いて y=ax+b と表現し、特徴点(Xi,Yi)が与えられたとき、直
線のパラメータaとbによって張られる「パラメータ空
間」に b=Yi−aXi によって表される軌跡を描く。そして、すべての特徴点
について軌跡を描いた後、パラメータ空間中で多くの軌
跡が交わる点を抽出することにより、その点に対応する
直線が画像空間中に存在するものとみなす。
【0095】実際にプログラムでハフ変換を行う際に
は、パラメータ空間を「セル」と呼ばれる要素に分解
し、各特徴点についての軌跡を描く際に、パラメータ空
間で軌跡が通過する各セルの投票度数を1増やす。すべ
ての特徴点についての投票が終了した後に、投票度数が
最も大きい値を有するセルを抽出することにより直線の
パラメータ(a,b)が求められる。
【0096】また、パラメータ(a,b)を用いて画像
中の直線を表現する場合には、直線が画面内で垂直に近
づくにつれて無限大になるので、パラメータ空間が有界
にはならない。この問題を解決するために、通常は画像
空間中の直線を垂角θと原点からの符号つき距離ρを用
いて ρ=xcosθ+ysinθ と表してパラメータ空間としては(ρ,θ)空間を用い
る。図21(c)に直線に対する(ρ,θ)パラメータ
空間の設定とハフ変換によるパラメータの決定方法を示
す。本発明においては、点線で囲まれたエッジ強調処理
がなされた領域内の各点について、その点での値(エッ
ジ強調処理された値)を、上式により計算される(ρ,
θ)パラメータ空間で直線上の各セルについて加算す
る。従って、エッジ強調処理された結果の値が大きい点
をより多く通る直線が選ばれる。
【0097】図22は円弧を含む図形に対してエッジ強
調を行い、ハフ変換により円弧中心の(x,y)座標値
および半径の値を求める様子を示す。未知な値としては
円弧中心の(x,y)座標値および円弧の判定の計3で
あるので、(x,y)座標値および半径rの値をパラメ
ータとする3次元のパラメータ空間において前述と同様
の投票を行うことにより円弧の方程式、つまり位置が決
定される。エッジ強調処理は直線の場合と同様に、Do
Gフィルタをワーク輪郭点列の値から算出したエッジの
傾きと直角な方向に設定したフィルタをかけている。た
だし、直線の場合と違いエッジの傾きが連続的に変化し
てゆくので、各点のエッジ強調処理を行う際に、その点
の近傍のワーク輪郭点列の座標値からエッジの傾きを計
算し、DoGフィルタの傾きを設定している。(x,
y,r)パラメータ空間の(x,y)平面の各セルにつ
いて、点Pとの距離Lを算出する。距離Lが、この点P
に対応する円弧半径の値であるので、そのセルの値を点
Pの値(エッジ強調処理された値)だけ加算する。この
処理を(x,y)平面の各セルについて行い、(x,
y,r)パラメータ空間で投票度数が最大のセルを見つ
けることにより円弧中心の座標値および半径の値が求め
られる。
【0098】以上のように各直線と円弧の方程式を算出
後、各エッジの交点の座標値を算出する。直線と直線の
交点はふたつの直線の方程式の交点を算出することによ
り求める。一方、円弧と直線の交点は、接点となる場合
があり、そのような場合には、直接方程式の交点を求め
ようとすると正確に求められない。そこで、まずハフ変
換により求められた円弧中心のx,y座標値と半径の値
から、円弧上の1度ごとの点の画面内での位置を算出す
る。直線の両端点の画面内位置は、ステップS104に
てワーク輪郭点の番号としてすでに求められている。た
だし、円弧と直線の交点を算出することにより正確な位
置を計算しなおす。
【0099】すでに求められている直線の両端点の位置
と円弧上の1度ごとの点の位置を比較して、最も距離が
小さい直線端点と円弧上の点Xの組を求める。この円弧
上の点Xの近傍に交点が存在する。そこで、円弧の点X
近傍の±20度の範囲にわたり0.2度ごとの円弧上の
点を算出して、各点での円弧の傾きを、その前後の点の
位置から計算することにより求め、直線の傾きと最も一
致する点を求める。その点が直線と円弧の交点となる。
【0100】図23は、ワークのエッジ検出画像処理装
置に係わる本発明の請求項5に対応する一実施形態につ
いて概略構成を示すものである。ビデオカメラは、第一
の実施例のときとは異なり、斜めからワークを見るよう
に設置されている。
【0101】この図において、ワークのエッジ検出画像
処理装置は、ビデオカメラ11と、画像入力装置12
と、画像の中からワークの領域を抽出するワーク領域抽
出装置13と、ワーク抽出装置の出力からワーク領域の
境界となる点列を取り出すワーク境界点抽出装置14
と、ワーク境界点が存在する平面の方程式をもとにワー
ク境界点列からどの点からどの点までがひとつの直線あ
るいは円弧であるかを検出するエッジ検出装置15、お
よびエッジ検出装置の出力をもとに各エッジの3次元空
間での方程式を算出した後に各エッジの交点の3次元空
間での座標値を算出するエッジ数値情報検出装置16か
ら構成されている。ワーク10は、板を切り出したもの
であり、上の面のみが機械加工されていることにより、
明らかに明るく見えるものとする。また、ワークの上の
面と下の面は平行であり、ワーク設置装置9の上に設置
され、ワーク設置装置の上面の3次元空間での方程式お
よびワークの高さは既知であるものとする。従って、検
出すべきワークの上面の3次元空間での方程式は既知で
ある。
【0102】以下、上記構成のワークのエッジ検出画像
処理装置を用いてワーク設置台9に設置されたワーク1
0の輪郭を構成する直線・円弧を検出する方法を図24
をも参照しつつ説明する。
【0103】ステップS1001からステップS100
3までは、ステップ101からステップ103までと同
じ処理であり、ワークの境界点列が求められる。ステッ
プS1004では、ワーク面の3次元空間での方程式を
利用してワーク境界点列からワーク輪郭の各部分が直線
か円弧かを判別し、以下のようなデータを作成する。
【0104】 edgelist[i][0]:i番目のエッジの最初の輪郭点番号 [1]:i番目のエッジの最後の輪郭点番号 [2]:円弧か直線かの識別 (0:直線, 1:円弧) 例えば、edgelist[0][0]が0で、edg
elist[0][1]が25であるときには、0番目
のエッジは、 chain[0] から chain[25] までの座標値であるということを意味する。
【0105】ステップS1005では、ステップS10
04で検出された各エッジの点列の近傍領域をまずエッ
ジ強調処理した後に、エッジの正確な位置をハフ変換等
のエッジ検出処理により算出する。直線については、画
面内での方程式が算出され、円弧については、3次元空
間での円弧中心のx,y座標値および半径の値が求めら
れる。その後直線については、画面内での方程式および
ワーク平面の方程式から、3次元空間での方程式を算出
する。また、各エッジの方程式から交点の3次元空間で
の座標値を算出する。
【0106】ステップS1004の手続きは、実施例1
と同様に図14の手続きとなる。ただし、図中の「ワー
ク境界の円弧の検出」の手続きが少し異なる。ワーク境
界の円弧を検出する手続きの中には、ステップS903
「ひとつの円弧としてみなせるか」という手続きがあ
り、この部分のみが異なる。
【0107】第二の実施形態では、ステップS903
「ひとつの円弧としてみなせるか」は、以下のような手
続きとなる。臨時初期エッジをi番目の折れ線、探索終
端エッジをj番目の折れ線とする。i番目の折れ線の端
点での傾きと、j番目の折れ線の端点での傾きが基準値
より小さい場合には、判定を保留して、傾きの違いが小
さいという結果をだし終了する。一方、傾きが基準値以
上の場合には、以下のようにして、ひとつの円弧として
みなせるか判定する。臨時初期エッジの端点である、ワ
ーク境界点列の中のedgelist[i][0]番目
の点Pおよび、探索終端エッジの端点である、ワーク境
界点列の中のedgelist[j][1]番目の点Q
および、以上の2点の真ん中に位置するワーク境界点の
座標値の値と、ワーク平面の3次元空間での方程式か
ら、以上3点を通る円弧の方程式を算出する。
【0108】円弧の方程式の算出は以下のように行う。
まず、上記3点の3次元空間での座標値を算出する。点
Xの画面内での座標値が(xf0,yf0)、点Xが存
在する平面の3次元空間での方程式を ax+by+cz+d=0 とする。点Xの3次元空間での座標値(xc0,yc
0,zc0)と画面内での座標値(xf0,yf0)と
の間には以下のように関係がある。
【0109】
【数3】 fはビデオカメラのレンズの焦点距離である。点Xの画
面内での座標値は、画面中心を原点とする座標系での値
であるものとする。また、座標系(xc,yc,zc)
と、座標系(xf,yf)のx,y軸は平行であるもの
とする。図25にふたつの座標系の関係を示す。
【0110】すると、上記のふたつの関係式から、点X
の3次元空間での座標値(xc0,yc0,zc0)が
算出できることが容易にわかる。
【0111】前述の3点について、その3次元空間での
座標値が求められると、その3点を通る円弧の中心位置
は、やはり既知のワーク平面上に存在するはずであるの
で、円弧中心位置から3点までの距離は等しいというふ
たつの方程式および、円弧中心は既知のワーク平面上の
点であるという方程式により、円弧中心の座標値が算出
され、その結果、円弧の半径は容易に算出される。円弧
中心の座標値を(xcp,ycp,zcp)とすると、
以下のように円弧中心の座標値が算出できる。
【0112】
【数4】 算出された円弧の方程式から、その円弧上の点の座標値
を1度ごとに360点について計算して、各点について
画面内での座標値に変換して配列xfcirleに保存
する。点Pから点Qまでのワーク境界点の各点につい
て、配列xfcircleの中で、最も距離が小さい点
を探し、その点との距離Liを計算する。各ワーク境界
点についての距離Liの平均をとり、その値が1画素を
越えない場合には、ひとつの円弧としてみなせると判定
し、1画素以上の場合には、ひとつの円弧としてみなせ
ないと判定する。
【0113】ステップS1005では、ハフ変換によ
り、円弧中心の座標値および半径の値を正確に求める手
続きが第一の実施例と少しことなる。第二の実施例も、
ワーク平面の方程式が既知であるので、未知な値として
は円弧中心の(x,y)座標値および円弧の判定の計3
であるので、(x,y)座標値および半径rの値をパラ
メータとする3次元のパラメータ空間において前述と同
様の投票を行うことにより円弧の方程式、つまり位置が
決定される。エッジ強調処理は直線の場合と同様に、D
oGフィルタをワーク輪郭点列の値から算出したエッジ
の傾きと直角な方向に設定したフィルタをかけている。
エッジの傾きが連続的に変化してゆくので、各点のエッ
ジ強調処理を行う際に、その点の近傍のワーク輪郭点列
の座標値からエッジの傾きを計算し、DoGフィルタの
傾きを設定している。(x,y,r)パラメータ空間の
(x,y)平面の各セルについて、x,y座標値の値と
ワーク平面の方程式からz座標値を算出し、点Pも3次
元空間での座標値を算出した後に、2点間の距離Lを算
出する。距離Lが、この点Pに対応する円弧半径の値で
あるので、そのセルの値を点Pの値(エッジ強調処理さ
れた値)だけ加算する。
【0114】この処理を(x,y)平面の各セルについ
て行い、(x,y,r)パラメータ空間で投票度数が最
大のセルを見つけることにより円弧中心の座標値のx,
y座標値および半径の値が求められる。最後に円弧中心
のz座標値を、ワーク平面の方程式を用いて算出する。
【0115】画面内での直線の方程式および、円弧の3
次元空間での方程式が算出されると、同様にしてワーク
平面の方程式を用いて、各直線の3次元空間での方程式
を算出する。また、各エッジを交点を第一の実施例と同
様に算出する。ただし、第二の実施例では3次元空間で
の座標値を算出することになる。
【0116】図26は、ワークのエッジ検出画像処理装
置に係わる本発明の請求項6の一実施形態について概略
構成を示すものである。ビデオカメラは、第二の実施形
態のときと同様に、斜めからワークを見るように設置さ
れている。
【0117】この図において、ワークのエッジ検出画像
処理装置は、ビデオカメラ19と、画像入力装置20
と、画像の中からワークの領域を抽出するワーク領域抽
出装置21と、ワーク抽出装置の出力からワーク領域の
境界となる点列を取り出すワーク境界点抽出装置22
と、ワーク境界点が存在する平面の方程式をもとにワー
ク境界点列からどの点からどの点までがひとつの直線あ
るいは円弧であるかを検出するワーク輪郭エッジ検出装
置23、ワーク高さ検出装置24、ワーク輪郭エッジ検
出装置23の出力をもとにワーク輪郭の各エッジの3次
元空間での方程式を算出した後に各エッジの交点の3次
元空間での座標値を算出するワーク輪郭エッジ数値情報
検出装置25、ワーク輪郭のエッジ情報をもとに残りの
ワークのエッジ方程式および端点座標値を求めるワーク
非輪郭エッジ数値情報検出装置26から構成されてい
る。
【0118】ワーク18は、板を切り出したものであ
り、平行な上下面および上下面と垂直な側面を有し、し
かも直線と円弧のエッジのみから構成されているものと
する。ただし、上の面のみが明らかに明るく見えるとは
限らない。また、ワークの上の面と下の面は平行であ
り、ワーク設置装置17の上に設置され、ワーク設置装
置の上面の3次元空間での方程式は既知であるものとす
る。従って、検出すべきワークの下面の3次元空間での
方程式は既知であるが、上面の方程式は高さを算出する
までは既知ではない。
【0119】以下、上記構成のワークのエッジ検出画像
処理装置を用いてワーク設置台17に設置されたワーク
18の全輪郭を構成する直線・円弧を検出する方法を図
27をも参照しつつ説明する。
【0120】ステップS1101からステップS110
3までは、ステップ101からステップ103までと同
じ処理であり、ワークの境界点列が求められる。ステッ
プS1104では、ワーク境界点列からワーク輪郭の各
部分が直線か円弧かを判別し、以下のようなデータを作
成する。
【0121】 edgelist[i][0]:i番目のエッジの最初の輪郭点番号 [1]:i番目のエッジの最後の輪郭点番号 [2]:円弧か直線かの識別 (0:直線, 1:円弧) ステップS1103までに求められたワーク境界点列か
ら、まず折れ線近似により、どの点からどの点までがひ
とつの直線に属するか、第一および第二の実施例と同様
に求めてゆく。その結果、ワークの境界はいくつの折れ
線により近似され、各折れ線はワーク境界点列の何番か
ら何番の点までであるかが求められる。つぎに、各折れ
線がワークの上の面に属するか、下の面に属するか、あ
るいは側面に属するかを求める。図28にその手続きを
示す。まずステップS1201にて、エッジ近傍の修正
差分画像の値から、各エッジが上面のエッジか下面のエ
ッジかのラフな判定を行った後に、ステップS1202
にて側面のエッジを検出する。
【0122】図29は、各折れ線がワークのどの面に属
するかの判定手続きを説明するものである。それまでの
手続きにより各エッジの両端点がわかっているので、エ
ッジの中央点を求める。たとえばワーク輪郭の座標値列
が chain[i][] に納められているとし、エッジの両端点が輪郭点のi番
目とj番目の点である場合には、chain[(i+
j)/2][]がエッジの中央点となる。
【0123】次に、エッジ中央点から上へ向かって、修
正差分画像の値が0となるまでの画素数Nuを数える。
また、エッジ中央点から下に向かって、修正差分画像の
値が0となるまでの画素数Ndを数える。もし、Nuが
Ndより大きい場合には、そのエッジは下面のエッジと
判定し、逆にNdがNuより大きい場合には、そのエッ
ジは上面のエッジと判定する。
【0124】図30は、図29で説明した手続きを視覚
的に示したものである。この例では、エッジの両端点が
(x0,y0)および(x1,y1)である。エッジ中
央点が(xc,yc)となり、Ndは0であるので、N
uの方が大きく下面のエッジと判定される。
【0125】つぎに、ワークの設置されているワーク設
置台の平面の方程式を用いてワーク側面のエッジを検出
する。ワーク側面のエッジには、ふたつの平面が直線で
接しているものが見えている場合と、ワーク側面の曲面
の一部のみが見えているために、その境界線が見えてい
る場合のふたとおりがある。前者の場合には、ワーク側
面のエッジは、ワーク設置台面に垂直である。そこで、
以下のようにして、各折れ線が側面のエッジであるかど
うかの判定を行うことができる。
【0126】各折れ線がワーク側面のエッジであると仮
定すると、その折れ線の端点の一方はワーク設置台上に
存在するはずであり、ワーク設置台の平面の方程式とそ
の端点の画面内での座標値から3次元空間での座標値が
算出できる。また、その折れ線がワーク側面のエッジで
あればワーク設置台上にある端点を通り、ワーク設置台
に垂直であるはずであるので、その3次元空間での直線
の方程式が算出できる。ワーク設置台の平面の方程式が ax+by+cz+d=0 であるとすると、ワーク設置台面と垂直なベクトルは (a,b,c) となるので、ワーク設置台上の点Pの3次元座標値か
ら、ワーク設置台に垂直な直線上にあり、点Pから距離
が10の点Qの3次元座標値は容易に計算でき、点Pと
点Qの画面内での位置を算出することにより、画面内で
の直線の方程式も算出できる。算出された直線の方程式
と実際の折れ線とを比較することにより、各折れ線が側
面のエッジであるかどうかを判定する。判定基準は傾き
の違いとする。図31に検出されたワークのエッジが側
面のエッジであると仮定したときのエッジの位置と、実
際の位置を比較する様子を示す。
【0127】ワーク側面のエッジには、曲面の境界線が
見えている場合もあることを考慮して、実際には以下の
ような手続きにより検出を行う。図32は、側面のエッ
ジを検出するために各エッジに対して行われる手続きを
示したものである。この段階では、前述のようにすでに
各エッジは上面のエッジか下面のエッジかとりあえず判
定されている。
【0128】そのエッジiのひとつ前のエッジが上面の
エッジであり、しかもひとつ後のエッジが下面のエッジ
であるか、ひとつ前のエッジが下面のエッジであり、し
かもひとつ後のエッジが上面のエッジであれば、そのエ
ッジiが側面のエッジである可能性があるので、エッジ
iの両端点のうち画面下側に位置する端点が下面のエッ
ジであると仮定して、その点を通りワーク設置台に垂直
な直線の画面での傾きを計算する。この側面のエッジで
あると仮定したときに算出されるエッジの傾きと、実際
のエッジの傾きを比較して、十分に傾きが近い場合に
は、そのエッジが側面のエッジであると判定する。この
判定の際に、曲面の境界線が見えている場合には、傾き
が少し異なるはずであるので、傾きを比較する際の基準
は、曲面の境界が見えている場合も検出できる程度のも
のにしておく。また、側面のエッジと判定されない場合
にはステップS1201で設定された値を変更しないで
おく。以上の手続きにより、各エッジが上面のエッジで
あるか、下面のエッジであるか、あるいは側面のエッジ
であるかの判定を行う。
【0129】この結果、各折れ線がワークの上面に属す
るか、下面に属するか、側面に属するかが判定されてい
る。つぎにワークの高さを算出するのに適した、エッジ
の長さが十分に長いひと組の平行なエッジを検出して、
そのひと組のエッジの画面内の位置からワークの高さを
算出する。
【0130】図33はワークの高さを算出する手続きを
示したものである。まず、ワーク下面のエッジの中で最
も長いエッジを探す。最も長いエッジを用いてワークの
高さを計算することにより、算出された高さの精度を良
くすることができる。次に、入力画像の中で、検出され
た最も長いエッジの近傍の領域をエッジ強調した後に、
ハフ変換によりエッジの正確な位置を算出する。最も長
いエッジの位置が正確に算出されたら、すでに検出され
ている側面のエッジの長さや傾きから、その最も長いエ
ッジと平行な上面のエッジのおおまかな位置を推定す
る。推定されたおおまかな位置の近傍の領域をエッジ強
調した後にハフ変換により上面のエッジの正確な位置を
算出する。上下面のエッジの画面内での正確な位置が算
出されたら、それらの値からワークの高さを算出する。
【0131】ふたつのエッジの正確な位置が算出された
ら、ワークの高さを算出する。
【0132】ふたつのエッジが直線の場合には、まず下
面のエッジの両端点の3次元座標値を、両端点の画面内
での位置と下面の方程式から算出する。次に、図25に
示す、ほぼ画面中央に存在する投影変換中心に原点を有
する座標系でのふたつのエッジ切片の値を算出する。以
上の値をもとに、以下の式によりワーク高さを算出す
る。
【0133】 c1 =a(zc1−zc0)| +| c(xc0−xc1) d1 =zc1xc0−zc0xc1 c2 =a(yc1−yc0)+b(xc0−xc1) d2 =yc1xc0−yc0xc1
【0134】
【数5】 以下に上式でワークの高さが算出される理由を示す。図
25に示す投影変換中心に原点を有する画面内での2次
元座標系Σfでの位置を(xf,yf)とし、投影変換
中心に原点を有し、Z軸をビデオカメラの光軸とする3
次元座標系Σcでの対応する点の位置を(xc,yc,
zc)とする。また、ワークの高さをhとし、ワーク設
置台表面のΣc座標系での方程式を ax+by+cz+d=0 とする。ふたつのエッジのΣf座標系での傾きと切片の
値をそれぞれ 上面のエッジ:au, bu 下面のエッジ:ad, bd とし、各エッジの端点の画面内での座標値の値を、それ
ぞれ(xf0,yf0),(xf1,yf1),(xf2,yf
2),(xf3,yf3)とする。各エッジ端点のΣc座標
系での3次元位置は(xc0,yc0,zc0),(xc1,y
c1,zc1),(xc2,yc2,zc2),(xc3,yc3,z
c3)とする。ワーク設置台上にある(xc0,yc0,zc
0),(xc1,yc1,zc1)の値はそれぞれ(xf0,yf
0),(xf1,yf1)から計算可能である。一方、(xc
2,yc2,zc2),(xc3,yc3,zc3)については、
ワークの高さhを用いて、以下のように表せる。
【0135】xc2=xc0+ah yc2=yc0+bh zc2=zc0+ch xc3=xc1+ah yc3=yc1+bh zc3=zc1+ch Σc座標系での値とΣf座標系での値の間の関係は
【0136】
【数6】 のようになる。fはレンズの焦点距離等の影響を表す係
数である。
【0137】また、上面のエッジの切片buの値と各端
点との間の関係は
【0138】
【数7】 のようになる。上式にxf2,xf3,yf2,yf3を代入す
ると、以下の式を得る。
【0139】
【数8】 下面のエッジの切片bdの値については、上式でh=0
とした関係が成り立つ。そこで、bdとbuの差をとっ
た式からhを未知数として解くと前述の式を得られる。
【0140】一方、ふたつのエッジが円弧の場合には、
まず下面のエッジの円弧の正確な位置を前述のハフ変換
により算出する。そして、上面のエッジも同じ半径を有
し、その中心位置は下面のエッジ中心からワーク設置台
の法線方向にのびた直線を通るはずであるので、上面の
エッジが存在するであろうと思われる領域を下面のエッ
ジの画面内の位置と画面左右端の側面のエッジの向きや
長さから推定し、その近傍領域のエッジ強調処理を行っ
た後に、唯一の未知数をワークの高さとするハフ変換に
よりワークの高さを求める。以下にその手続きを説明す
る。
【0141】まずワークの高さの取り得る最小・最大の
値を、すでに検出している画面左右端の側面エッジの長
さから設定し、一定の間隔で離散化する。エッジ強調し
た領域の各点Pについて、離散化したワーク高さの各値
について、その高さであると仮定して円弧中心および点
Pの3次元位置を算出して距離を計算して半径の値と比
較する。計算された距離が最も半径の値と近いワーク高
さの値が最もらしいということで、その投票度数を点P
の値(エッジ強調された値)だけ加算する。以上の手続
きをエッジ強調した領域のすべての点について行い、最
も投票度数が大きいワーク高さを選択することによりワ
ーク高さを求める。
【0142】以上の手続きにより、各折れ線がワーク上
面か下面に属している場合には、その折れ線が属する平
面の3次元空間での方程式が定まる。また、側面のエッ
ジは直線であるので、ワークの上面か下面に属する折れ
線について、連続する複数の折れ線がひとつの円弧から
なると仮定して、その円弧の3次元空間での方程式をワ
ーク境界点列の中の3点の座標値および折れ線が属する
平面の方程式を用いて算出した後に、残りのワーク境界
点とのずれから、ひとつの円弧とみなせるかどうかの判
定を行ってゆくことにより、複数の折れ線がひとつの円
弧で十分近似できるものを探し、順次折れ線を円弧で置
き換えてゆく。
【0143】ステップS1105では、ステップS11
04で検出された各エッジの点列の近傍領域をまずエッ
ジ強調処理した後に、エッジの正確な位置をハフ変換等
のエッジ検出処理により算出する。直線については、画
面内での方程式が算出され、円弧については、3次元空
間での円弧中心のx,y座標値および半径の値が求めら
れる。その後に、各エッジの交点を求める。直線と直線
の交点はふたつの直線の方程式の交点を算出することに
より求める。
【0144】一方、円弧と直線の交点は、接点となる場
合がある。そのような場合に直接方程式の交点を求めよ
うとすると正確に求められない。そこで、直線と円弧の
境付近での傾きを比較し、近い場合には、円弧と直線の
交点を求める際には、まずハフ変換により求められた円
弧中心のx,y座標値と半径の値、およびその円弧が含
まれる面の方程式から、円弧上の1度ごとの点の3次元
座標値を求めた後に、各点の画面内での位置を算出す
る。直線の両端点の画面内位置は、ステップS1103
にてワーク輪郭点の番号としてすでに求められている。
ただし、円弧と直線の交点を算出することにより正確な
位置を計算しなおす。すでに求められている直線の両端
点の位置と円弧上の1度ごとの点の位置を比較して、最
も距離が小さい直線端点と円弧上の点Xの組を求める。
この円弧上の点Xの近傍に交点が存在する。そこで、円
弧の点X近傍の±20度の範囲にわたり0.2度ごとの
円弧上の点を算出して、各点での円弧の傾きを、その前
後の点の位置から計算することにより求め、直線の傾き
と最も一致する点を求める。その点が直線と円弧の交点
となる。その後直線については、画面内での方程式およ
びワーク平面の方程式から、3次元空間での方程式を算
出する。また、各エッジの方程式から交点の3次元空間
での座標値を算出する。
【0145】以上のようにワーク輪郭を構成する各エッ
ジの画面内の正確な位置および各エッジが上面のエッジ
か下面のエッジか、あるいは側面のエッジかの情報を検
出した後に、ステップS1106でワーク上面のエッジ
を順に検出してゆく。上面のエッジの中には、画面内で
の輪郭を構成するエッジとしてすでに検出されているエ
ッジと、まだステップS1106までに検出されていな
いエッジがある。検出されていないエッジは、それらの
エッジと対応する、平行な下面のエッジは輪郭を構成す
るエッジとなるのですでに検出されている。これらの、
いま検出しようとしている上面のエッジと平行な既検出
の下面のエッジの位置とワークの高さの値を用いて、検
出しようとしている上面のエッジの位置を推定した後
に、その推定位置近傍のエッジ強調を行い、ハフ変換に
よりエッジの正確な位置を算出する。
【0146】図34はステップS1106の物体の上面
のエッジ位置を算出する手続きを示したものであり、ま
た図35は上面のエッジ位置を算出してゆく様子を示し
たものである。まず、すでに検出されているワーク輪郭
を構成するエッジの中で、画面で最も上に位置するエッ
ジを検出する。一般に画面の一番上に位置する点はエッ
ジ端点であり、ふたつのエッジにより共有されている
が、そのいずれかのエッジを検出する。画面の一番上に
位置するエッジは上面のエッジである。なぜならば、も
し画面の一番上に位置するエッジが下面のエッジであれ
ば、それと平行な上面のエッジが存在して下面のエッジ
より画面で上に位置するはずであるので画面の一番上に
位置するということと矛盾する。
【0147】画面の一番上に位置するエッジを検出した
ら、そのエッジをこれから検出する上面のエッジ列の先
頭に登録するとともに、探索エッジの初期値としても設
定する。以後、この探索エッジを更新しながら以下の手
続きを行う。
【0148】まず、ステップS1404にて探索エッジ
が上面のエッジかどうかを判定する。もし、探索エッジ
が上面のエッジの場合には、その探索エッジを上面のエ
ッジ列に追加し、ステップS1105までに算出された
ワーク輪郭のエッジ列の中で、現在の探索エッジの次の
エッジを新しい探索エッジとして設定する。もし、新し
い探索エッジがステップS1401で求められた画面で
最も上に位置するエッジに戻ってきたら上面のエッジを
すべて探索したことになるので終了する。
【0149】もし、探索エッジが上面のエッジではな
く、側面のエッジである場合には、ステップS1410
にて、次の側面エッジLまで下面エッジを探索してゆ
き、各下面エッジに平行な上面エッジを求めてゆく。図
35(c)および(d)にその例を示す。各上面のエッ
ジの正確な位置を算出する手続きは、ステップS130
3およびステップS1304と同様に、まずワーク輪郭
の一部であるのですでに正確な位置が検出されている下
面のエッジの位置から、そのエッジと平行な上面のエッ
ジのおおまかな位置を推定し、推定された位置のまわり
の領域をエッジ強調した後にハフ変換により正確な位置
を算出する。また各エッジの正確な位置を求めるたび
に、ステップS1105と同様に隣合うエッジとの交点
の位置を算出する。以上の手続きが完了したら、ワーク
輪郭のエッジ列の中で側面エッジLの次のエッジは上面
のエッジになるので、新しい探索エッジとして側面エッ
ジLの次のエッジを図35(e)のように設定して、ス
テップS1404に戻る。もし、ワーク輪郭をすべて探
索し終わっていたら、ステップS1404には戻らずに
終了する。
【0150】さらに、ステップS1405にて探索エッ
ジが下面のエッジである場合は、ワーク輪郭が上面のエ
ッジから側面のエッジが見えずに下面のエッジが見えた
ことになる。図35(e)の実線がオーバレイされてい
るエッジの次が図中で底面のエッジと記載されているエ
ッジとなっているのがその例である。ふたつのエッジ端
点を結ぶ側面のエッジは存在するがワークの背後に隠れ
ているので見えていない。側面のエッジだけでなく、こ
の時点での探索エッジも一部がワークにより隠されてい
るので、まずステップS1410にて、ワーク輪郭のエ
ッジ列を次の側面のエッジL2まで探索してゆく。そし
て側面のエッジL2の上側の端点から逆方向に上面のエ
ッジの正確な位置を求めてゆく。その際に、ステップS
1408と同様に、求めようとしている上面のエッジと
平行な下面のエッジの情報を利用して上面のエッジの正
確な位置を算出する。その具体的な手続きはステップS
1303およびステップS1304と同様に、まずワー
ク輪郭の一部であるのですでに正確な位置が検出されて
いる下面のエッジの位置から、そのエッジと平行な上面
のエッジのおおまかな位置を推定し、推定された位置の
まわりの領域をエッジ強調した後にハフ変換により正確
な位置を算出する。
【0151】ただし、ステップS1410の場合には、
上記の手続きの最後に探索エッジと平行な上面のエッジ
を求めることになるが、探索エッジの一部がワークに隠
されているので、上面のエッジを必ずしも正確には求め
られない。そこで、まず下面のエッジである探索エッジ
の位置からそれと平行な上面のエッジL3のおおまかな
位置を推定して、エッジ強調した後にハフ変換で正確な
位置を求める。その後、となりの上面のエッジとの交点
を算出する。となりの上面のエッジとは、図34のそれ
までの手続きにて求められた上面のエッジ列の最後のエ
ッジであり、図36(b)に交点を求める様子を示して
いる。この交点がいま正確な位置を求めようとしている
上面のエッジL3の一方の端点であるので、この時点で
エッジL3の両端点の位置がほぼ求められたことにな
る。そこで、両端点を結ぶ直線の近傍の領域をエッジ強
調した後にハフ変換により正確な位置を求めることによ
り、最終的なエッジの正確な位置を算出している。各エ
ッジの正確な位置を求めるたびに、やはり隣合うエッジ
との交点を算出する。
【0152】ステップS1411では、ステップS14
09と同様に、ワーク輪郭のエッジの中で側面のエッジ
L2の次のエッジを新しい探索エッジとして設定してス
テップS1404に戻るか、すべての探索が終了してい
れば終了する。
【0153】以上の手続きにより、ワーク上面のすべて
の直線エッジの画面内での方程式、円弧エッジの3次元
空間での方程式、および各エッジの画面内での交点の座
標値が算出されている。ワーク設置台の方程式、ワーク
高さの値を用いて、各直線エッジの3次元空間での方程
式および各エッジ交点の3次元空間での座標値を算出す
る。
【0154】ワーク上面のエッジの3次元位置が算出さ
れれば、ワークの形状が平行な上下面および上下面と垂
直な側面を有するものに限定されているので、下面のエ
ッジの正確な3次元位置もワークの高さの値を用いるこ
とにより、容易に算出することができる。また、側面の
エッジの3次元位置も上下面のエッジの端点の位置から
容易に算出することができるので、ワークのすべてのエ
ッジの3次元位置が算出される。
【0155】図37は、T字型のワークからエッジを検
出する各段階での処理結果を示した例である。図37
(a)が入力画像であり、図37(b)は背景画像と入
力画像の差分画像である。この例ではしきい値を30に
設定してあり、差が30以下の画素については、背景と
の差がないとみなし値を0にしてある。従って、値が0
でない部分がおよそワークに対応するが、影によりワー
クの周辺部分も含んでいる。図37(c)は図37
(b)の差分画像からワーク輪郭を検出したものであ
る。ワーク輪郭を検出する際には、後述するようにしき
い値を動的に修正しながら輪郭の検出を行っているの
で、図37(b)では含まれていた影が除去されてい
る。図37(d)はワーク輪郭の直線部分と円弧部分を
認識してそれらの方程式や端点位置を算出した結果であ
り、図37(e)はワークの上面のエッジをすべて検出
した結果である。
【0156】
【発明の効果】以上説明したように本発明のワークのエ
ッジ検出画像処理装置によれば、求めた境界点の点列か
らどの境界点からどの境界点までが単一の直線あるいは
単一の円弧で表されるかを検出し、ワークの輪郭を構成
する円弧と直線の方程式を求めるエッジ検出手段を備え
ているので、画像情報から非接触にワークのエッジ位置
を得ることが可能になる。また、予めCAD情報等が得
られずワークの形状が計算機内にとりこまれていない場
合でも、ワークの形状を自動的に計算機内にとりこむこ
とができる。この結果、ロボットなどの作業の自動化な
どが実現することが可能となる。
【図面の簡単な説明】
【図1】ワークのエッジ検出画像処理装置に係わる本発
明の請求項1に対応する実施形態の概略構成を示すブロ
ックダイヤグラム。
【図2】画像データを処理してワークエッジ情報を求め
る手続きを示すフローチャート。
【図3】T字型ワークのエッジを検出した例をディスプ
レー上に表示した画像で示す写真。
【図4】背景との差分画像を生成する手続きを示すフロ
ーチャート。
【図5】物体の輪郭を検出する手続きを示すフローチャ
ート。
【図6】物体の輪郭を探索してゆく流れを示す図。
【図7】画面のひとつの行または列での物体輪郭を検出
する手続きを示すフローチャート。
【図8】画面のひとつの行または列で物体輪郭が検出す
る手順を示す図。
【図9】ノイズがある際の画面のひとつの行または列で
物体輪郭が検出されるまでの手順を示す図。
【図10】物体輪郭を検出する際のしきい値の設定方法
とその働きを示す図。
【図11】物体輪郭を探索する際に探索方向を変更する
様子を示す図。
【図12】ワーク全体を、順次探索方向を変更してゆき
ながら物体輪郭を探索してゆく様子を示す図。
【図13】画面の上から下へ向かって物体輪郭を探索し
てゆく手続きを示すフローチャート。
【図14】ワーク輪郭を構成する直線および円弧を順次
求めてゆく手続きを示すフローチャート。
【図15】画面内で折れ線近似が求められ、その中から
円弧が見つけられる手順を示す図。
【図16】ワーク境界点列から折れ線近似を求めてゆく
手続きを示すフローチャート。
【図17】ひとつのエッジの端点までを探索する手続き
を示す図。
【図18】ある範囲のワーク境界点列がひとつの直線と
してみなせるかどうかの判定方法を示す図。
【図19】折れ線の中から円弧を探す手続きを示すフロ
ーチャート。
【図20】連続するある範囲の折れ線の組について、そ
の中に円弧があるかどうかを判定する手続きを示す図。
【図21】直線エッジの正確な位置をハフ変換により求
める手続きを示すためのディスプレー上に表示した画像
を示す写真(a),(b)と説明図(c)。
【図22】円弧エッジの正確な位置をハフ変換により求
める手続きを示す写真(a),(b)と説明図(c)。
【図23】ワークのエッジ検出画像処理装置に係わる本
発明の請求項5に対応する実施形態の概略構成を示すブ
ロックダイヤグラム。
【図24】画像データを処理してワークエッジ情報を求
める手続きを示すフローチャート。
【図25】画面内での座標値と3次元空間での座標値と
の関係を示す図。
【図26】ワークのエッジ検出画像処理装置に係わる本
発明の請求項6に対応する実施形態の概略構成を示すブ
ロックダイヤグラム。
【図27】画像データを処理してワークエッジ情報を求
める手続きを示すフローチャート。
【図28】各エッジがワーク上面に属するか、下面に属
するか、あるいは側面に属するかの判定手続きを示すフ
ローチャート。
【図29】エッジ近傍の画像の値から各エッジが上面の
エッジか下面のエッジかの判定を行う手続きを示すフロ
ーチャート。
【図30】エッジ近傍の画像の値から各エッジが上面の
エッジか下面のエッジかの判定を行う手続きを示す図。
【図31】各エッジがワーク側面のエッジであるかどう
かの判定手続きを示す図。
【図32】各エッジがワーク側面のエッジであるかどう
かの判定手続きを示すフローチャート。
【図33】ワーク高さの算出手続きを示すフローチャー
ト。
【図34】ワーク上面のエッジをすべて求める手続きを
示すフローチャート。
【図35】ワーク上面のエッジを探索する際に、ワーク
輪郭上にある下面のエッジ情報を利用して上面のエッジ
位置を限定する様子を示すためのディスプレー上に表示
した画像を示す写真。
【図36】ワーク上面のエッジを探索する際に、ワーク
輪郭上にある下面のエッジの一部がワークにより隠され
ている場合の上面のエッジ位置を限定する手続きを示す
ためのディスプレー上に表示した画像を示す写真。
【図37】T字型ワークのエッジを検出した例をディス
プレー上に表示した画像で示す写真。
【符号の説明】
1,9,17 ワーク設置台 2,10,18 ワーク 3,11,19 ビデオカメラ 4,12,20 画像入力装置 5,13,21 ワーク領域抽出装置 6,14,22 ワーク境界点抽出装置 7,15,23 エッジ検出装置 8,16,24 エッジ数値情報検出装置
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成8年7月9日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図22
【補正方法】変更
【補正内容】
【図22】円弧エッジの正確な位置をハフ変換により求
める手続きを示すためのディスプレー上に表示した画像
を示す写真(a),(b)と説明図(c)。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】輪郭が直線と円弧との組み合わせで構成さ
    れているワークの画像から前記輪郭を構成する円弧と直
    線を求めるワークエッジ検出画像処理装置であって、 入力されるワークの入力画像からワークの背景を識別し
    ワークの領域を抽出するワーク領域抽出手段と、 抽出されたワーク領域の境界を構成する境界点の点列を
    求めるワーク境界点抽出手段と、 求めた境界点の点列からどの境界点からどの境界点まで
    が単一の直線あるいは単一の円弧で表されるかを検出
    し、ワークの輪郭を構成する円弧と直線の方程式を求め
    るエッジ検出手段と、を備えたことを特徴とするワーク
    エッジ検出画像処理装置。
  2. 【請求項2】前記エッジ検出手段は、 ふたつの境界点を結ぶ直線を求め、ふたつの境界点の間
    の境界点の中で前記直線から所定距離以上離れたはみ出
    し境界点があるか否かを判定し、はみ出し境界点がない
    場合には、前記ふたつの境界点の間はひとつの直線とみ
    なすという判断基準により、前記境界点列全体を折れ線
    近似する折れ線近似演算部と、 (a)前記折れ線近似演算部により求められた各折れ線
    について、その隣接する折れ線との交点をなす境界点に
    おいて、その境界点の両側の折れ線のなす角度を求め、
    その角度が所定角度より大きい場合には、その境界点を
    区切端点として求め、 (b)区切端点と他の区切端点との間に折れ線がひとつ
    のみ存在する場合には、その折れ線を直線として登録
    し、 (c)区切端点と他の区切端点との間に折れ線が複数存
    在する場合には、その複数の折れ線を構成する境界点列
    の一部あるいは全体が同一の円弧を構成するか否かを判
    断し、同一の円弧を構成する部分があると判断される場
    合には、同一円弧を構成すると判断された折れ線の一部
    あるいは全体をワークの輪郭を構成する円弧として採用
    するととともに、円弧として採用されなかった部分につ
    いては直線として登録し、 ワークの輪郭を構成する円弧あるいは直線の方程式を求
    める円弧直線特定手段と、を備えることを特徴とする請
    求項1記載のワークエッジ検出画像処理装置。
  3. 【請求項3】前記円弧直線特定手段の前記(c)におけ
    る、区切端点と他の区切端点との間の複数折れ線を構成
    する境界点列の一部あるいは全体が同一の円弧を構成す
    るか否かの判断は、 区切端点のひとつを始点とする折れ線を探索初期エッジ
    とし、前記探索初期エッジに近接する順番に前記折れ線
    と前記探索初期エッジとのなす角度を求めて前記探索初
    期エッジに対し所定角度以上の角度をなす折れ線を探索
    終端エッジとして採用し、 前記探索終端エッジからの前記探索初期エッジに向かっ
    てひとつひとつ折れ線を追加してゆき、それらの折れ線
    群を構成する境界点列のすべてが同一の円弧を構成する
    か否か判定し、同一の円弧を構成しないと判定されるま
    で折れ線を追加してゆくととともに、前記探索終端エッ
    ジから前記探索初期エッジとは反対に向かってひとつひ
    とつ折れ線を追加してゆき、それらの折れ線群を構成す
    る境界点列のすべてが同一の円弧を構成するか否かを判
    定し、同一の円弧を構成しないと判定されるまで折れ線
    を追加してゆくことにより、円弧の両端を特定すること
    を特徴とする請求項2に記載のワークエッジ検出画像処
    理装置。
  4. 【請求項4】前記エッジ検出手段においては、前記境界
    点列のどこからどこまでがひとつの直線あるいは円弧か
    を求め、ひとつの直線あるいは円弧に含まれると判定さ
    れた境界点列の座標値より各直線と円弧の方程式を求め
    るとともに、前記エッジ検出手段により求められた直線
    と円弧の方程式をもとに、各直線あるいは円弧が存在さ
    れると予想されるワーク画像の一部に対してエッジ検出
    処理を行うことにより、より正確に各直線と円弧の方程
    式を修正し、修正した直線と円弧の方程式の交点を演算
    することによりワーク輪郭を構成する直線と円弧の各交
    点を求めるエッジ数値情報検出手段を備えたことを特徴
    とする請求項1に記載のワークエッジ検出画像処理装
    置。
  5. 【請求項5】輪郭が直線と円弧との組み合わせで構成さ
    れているワークの画像から前記輪郭を構成する円弧と直
    線を求めるワークエッジ検出画像処理装置であって、 ワークの輪郭を構成する直線と円弧が同一の平面にある
    ことと、3次元空間における前記平面を表す方程式とが
    既知であり、ワークの入力画像からワークの背景を識別
    しワークの領域を抽出するワーク領域抽出手段と、 抽出されたワーク領域の境界を構成する境界点の点列を
    求めるワーク境界点抽出手段と、 求めた境界点の点列が存在する平面を表す方程式を参照
    しどの境界点からどの境界点までが単一の直線あるいは
    単一の円弧で表されるかを検出し、ワークの輪郭を構成
    する円弧と直線の方程式を求めるエッジ検出手段と、 前記エッジ検出手段により求められた直線と円弧の方程
    式をもとに、各直線あるいは円弧が存在されると予想さ
    れるワーク画像の一部に対してエッジ検出処理を行うこ
    とにより、より正確に各直線と円弧の方程式を修正し、
    修正した直線と円弧の方程式の交点を演算することによ
    りワーク輪郭を構成する直線と円弧の各交点を求めるエ
    ッジ数値情報検出手段と、を備えたことを特徴とするワ
    ークエッジ検出画像処理装置。
  6. 【請求項6】輪郭が直線と円弧との組み合わせで構成さ
    れているワークの画像から前記輪郭を構成する円弧と直
    線を求めるワークエッジ検出画像処理装置であって、 ワークの表面が互いに平行に位置する上下の平面とこの
    上下の平面に垂直な側面とを有することと、ワークの下
    面が配置される平面の方程式とが既知であり、 ワークの入力画像からワークの背景を識別しワークの領
    域を抽出するワーク領域抽出手段と、 抽出されたワーク領域の境界を構成する境界点の点列を
    求めるワーク境界点抽出手段と、 求めた境界点の点列が存在する平面を表す方程式を参照
    しどの境界点からどの境界点までが単一の直線あるいは
    単一の円弧で表われるかを検出し、ワークの輪郭を構成
    する円弧と直線の方程式を求めるエッジ検出手段と、 前記エッジ検出手段により求められた直線と円弧の方程
    式をもとに、各直線あるいは円弧が存在されると予想さ
    れるワーク画像の一部に対してエッジ検出処理を行うこ
    とにより、より正確に各直線と円弧の方程式を修正し、
    修正した直線と円弧の方程式の交点を演算することによ
    りワーク輪郭を構成する直線と円弧の各交点を求めるエ
    ッジ数値情報検出手段と、 前記エッジ数値情報検出手段で修正した直線と円弧の方
    程式と前記交点の座標値とを用い、未だ求められていな
    い残された直線と円弧の方程式と交点の座標値とを演算
    する非輪郭エッジ数値情報検出手段と、を備えたことを
    特徴とするワークエッジ検出画像処理装置。
  7. 【請求項7】前記エッジ検出手段は、 ふたつの境界点を結ぶ直線を求め、ふたつの境界点の間
    の境界点の中で前記直線から所定距離以上離れたはみ出
    し境界点があるか否かを判定し、はみ出し境界点がない
    場合には、前記ふたつの境界点の間はひとつの直線とみ
    なすという判断基準により、前記境界点列全体を折れ線
    近似する折れ線近似演算部と、 (a)前記折れ線近似演算部により求められた各折れ線
    について、その隣接する折れ線との交点をなす境界点に
    おいて、その境界点の両側の折れ線のなす角度を求め、
    その角度が所定角度より大きい場合には、その境界点を
    区切端点として求め、 (b)区切端点と他の区切端点との間に折れ線がひとつ
    のみ存在する場合には、その折れ線を直線として登録
    し、 (c)区切端点と他の区切端点との間に折れ線が複数存
    在する場合には、その複数の折れ線を構成する境界点列
    の一部あるいは全体が同一の円弧を構成するか否かを判
    断し、同一の円弧を構成する部分があると判断される場
    合には、同一円弧を構成すると判断された折れ線の一部
    あるいは全体をワークの輪郭を構成する円弧として採用
    するととともに、円弧として採用されなかった部分につ
    いては直線として登録し、 ワークの輪郭を構成する円弧あるいは直線の方程式を求
    める円弧直線特定手段と、を備えることを特徴とする請
    求項5または6のいずれか1項に記載のワークエッジ検
    出画像処理装置。
JP8085799A 1996-03-14 1996-03-14 ワークエッジ検出画像処理装置 Withdrawn JPH09251544A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8085799A JPH09251544A (ja) 1996-03-14 1996-03-14 ワークエッジ検出画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8085799A JPH09251544A (ja) 1996-03-14 1996-03-14 ワークエッジ検出画像処理装置

Publications (1)

Publication Number Publication Date
JPH09251544A true JPH09251544A (ja) 1997-09-22

Family

ID=13868938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8085799A Withdrawn JPH09251544A (ja) 1996-03-14 1996-03-14 ワークエッジ検出画像処理装置

Country Status (1)

Country Link
JP (1) JPH09251544A (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007138987A1 (ja) * 2006-05-25 2007-12-06 Takehiro Ishizaki 作業ロボット
JP2011039998A (ja) * 2009-08-18 2011-02-24 Clarion Co Ltd 直線成分低減装置および歩行者検出表示システム
WO2013031418A1 (ja) * 2011-08-30 2013-03-07 株式会社メガチップス 線分および円弧検出装置
JP2013050762A (ja) * 2011-08-30 2013-03-14 Mega Chips Corp 線分および円弧検出装置
JP2013069043A (ja) * 2011-09-21 2013-04-18 Mega Chips Corp 線分および円弧検出装置
JP2019084609A (ja) * 2017-11-06 2019-06-06 セイコーエプソン株式会社 ロボット制御装置、ロボットおよびロボットシステム
CN112000824A (zh) * 2019-05-27 2020-11-27 英业达科技有限公司 对象辨识系统及其方法
CN112329501A (zh) * 2020-01-08 2021-02-05 沈阳和研科技有限公司 一种划片机检测工件形状的方法
CN113218970A (zh) * 2021-03-17 2021-08-06 上海师范大学 一种基于x射线的bga封装质量自动检测方法
CN113588663A (zh) * 2021-08-03 2021-11-02 上海圭目机器人有限公司 一种管线缺陷识别与信息提取方法
CN114463425A (zh) * 2022-01-26 2022-05-10 武汉理工大学 一种基于概率Hough直线检测的工件表面无特征点定位方法
CN115311291A (zh) * 2022-10-12 2022-11-08 南通虎神金属制品有限公司 用于孔洞加工的孔洞堵塞的清洗方法
CN116630315A (zh) * 2023-07-24 2023-08-22 山东东阿亿福缘阿胶制品有限公司 基于计算机视觉的饮料包装缺陷智能检测方法
CN117372422A (zh) * 2023-12-04 2024-01-09 青岛宜霖赛瑞智能科技有限公司 用于零件生产的材料折弯程度检测方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007138987A1 (ja) * 2006-05-25 2007-12-06 Takehiro Ishizaki 作業ロボット
US8930025B2 (en) 2006-05-25 2015-01-06 Takehiro Ishizaki Work robot
JP2011039998A (ja) * 2009-08-18 2011-02-24 Clarion Co Ltd 直線成分低減装置および歩行者検出表示システム
WO2013031418A1 (ja) * 2011-08-30 2013-03-07 株式会社メガチップス 線分および円弧検出装置
JP2013050762A (ja) * 2011-08-30 2013-03-14 Mega Chips Corp 線分および円弧検出装置
US9443318B2 (en) 2011-08-30 2016-09-13 Megachips Corporation Line segment and arc detection apparatus
US9721179B2 (en) 2011-08-30 2017-08-01 Megachips Corporation Line segment and arc detection apparatus
JP2013069043A (ja) * 2011-09-21 2013-04-18 Mega Chips Corp 線分および円弧検出装置
JP2019084609A (ja) * 2017-11-06 2019-06-06 セイコーエプソン株式会社 ロボット制御装置、ロボットおよびロボットシステム
CN112000824A (zh) * 2019-05-27 2020-11-27 英业达科技有限公司 对象辨识系统及其方法
CN112329501A (zh) * 2020-01-08 2021-02-05 沈阳和研科技有限公司 一种划片机检测工件形状的方法
CN113218970A (zh) * 2021-03-17 2021-08-06 上海师范大学 一种基于x射线的bga封装质量自动检测方法
CN113588663A (zh) * 2021-08-03 2021-11-02 上海圭目机器人有限公司 一种管线缺陷识别与信息提取方法
CN113588663B (zh) * 2021-08-03 2024-01-23 上海圭目机器人有限公司 一种管线缺陷识别与信息提取方法
CN114463425A (zh) * 2022-01-26 2022-05-10 武汉理工大学 一种基于概率Hough直线检测的工件表面无特征点定位方法
CN114463425B (zh) * 2022-01-26 2024-04-16 武汉理工大学 一种基于概率Hough直线检测的工件表面无特征点定位方法
CN115311291A (zh) * 2022-10-12 2022-11-08 南通虎神金属制品有限公司 用于孔洞加工的孔洞堵塞的清洗方法
CN116630315A (zh) * 2023-07-24 2023-08-22 山东东阿亿福缘阿胶制品有限公司 基于计算机视觉的饮料包装缺陷智能检测方法
CN116630315B (zh) * 2023-07-24 2023-09-29 山东东阿亿福缘阿胶制品有限公司 基于计算机视觉的饮料包装缺陷智能检测方法
CN117372422A (zh) * 2023-12-04 2024-01-09 青岛宜霖赛瑞智能科技有限公司 用于零件生产的材料折弯程度检测方法
CN117372422B (zh) * 2023-12-04 2024-02-13 青岛宜霖赛瑞智能科技有限公司 用于零件生产的材料折弯程度检测方法

Similar Documents

Publication Publication Date Title
JP2885823B2 (ja) 視覚認識装置
Lagunovsky et al. Straight-line-based primitive extraction in grey-scale object recognition
US7340089B2 (en) Geometric pattern matching using dynamic feature combinations
JPH09251544A (ja) ワークエッジ検出画像処理装置
EP2101296A1 (en) Eye detecting device, eye detecting method, and program
JPH0676062A (ja) 画像処理装置
JP2007508633A (ja) 物体輪郭画像を解析する方法および画像処理装置、物体を検出する方法および画像処理装置、産業用視覚装置、スマートカメラ、画像ディスプレイ、セキュリティシステム、ならびにコンピュータプログラム製品
CN114863492B (zh) 一种低质量指纹图像的修复方法及修复装置
JPH02306386A (ja) 文字認識装置
Chi et al. Separation of single-and double-touching handwritten numeral strings
JPH09128547A (ja) 実装部品検査装置
JP2007188407A (ja) 画像処理装置及び画像処理プログラム
WO2020125528A1 (zh) 锚定物检测方法及装置、电子设备及存储介质
JP5010627B2 (ja) 文字認識装置及び文字認識方法
KR101637977B1 (ko) 레이저 비전 시스템을 이용한 용접 조인트의 특징점 검출 방법
Lagunovsky et al. Fast line and rectangle detection by clustering and grouping
JPH06103275B2 (ja) 外観検査による欠陥抽出方法
JPH06129992A (ja) 周期性パターンの検査装置
US11699245B1 (en) Feature describing the shape of spatially distributed data set
US11715222B1 (en) Quasi-rotation-invariant shape descriptor
KR0158417B1 (ko) 화상처리장치를 이용한 물체의 위치 판단방법
JP3675366B2 (ja) 画像抽出処理装置
Śluzek A local algorithm for real-time junction detection in contour images
KR101244822B1 (ko) 육면체 검출 장치 및 방법
Lagunovsky et al. Rectangle-shaped object detection in aerial images

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030603