【実施例1】
【0017】
[対象物認識装置]
図1は、対象物認識装置のブロック図である。
【0018】
図1の本発明実施例1の対象物認識装置1は、例えば巻ばね3・・・の認識を行うものである。各巻ばね3は、外形が複雑で、隙間があり、奥が見える形状であり、側面形状に空間部が存在して輪郭を分断された同一形状の対象物、すなわち、リング状の端面と空間部が存在して輪郭を分断された側面とを備えた同一形状の対象物の一例である。この各巻ばね3が、トレー5内にばら積みされ、不規則に集合している。このばら積みの各巻ばね3の中で、対象物認識装置1は、各巻ばね3を認識する。この巻ばね3の認識とは、カメラ画像から個々の巻ばね3がどこに存在するかを検出することである。
【0019】
トレー5内の巻ばね3・・・に、照明具として、例えばLEDスポットライト7により照明光が当てられ、この集合した対象物全体であるばら積みの巻ばね3・・・の全体に照明光を当てた状態でカメラ9により撮像され、画像データが対象物認識装置1へ入力され、データ記憶部11に記憶保持される。
【0020】
ここで、認識方法の概要を述べておく。巻ばねは、その形状に、
・平面部が少ない
・同じような形状が連続している
・隙間があり奥が見えてしまう
などの特徴があるため、一般に画像処理で用いられる形状特徴に乏しい。したがって、巻ばねが三次元的にばら積みされている場合は、汎用的な画像処理手法による認識は困難であった。
【0021】
これに対し、本発明実施例の手法では、照明によって巻ばねに生じるハイライト(
図2)に着目して認識する。通常、ハイライトは元の物体を隠してしまうものとして画像処理では敬遠されることが多い。しかし、巻ばねでは規則的にハイライトができることを利用し、認識処理を単純化することに成功した。
【0022】
認識処理ではまず、カメラ画像を二値化することによってハイライト部分を抽出する。巻ばねが寝ている場合には側面ハイライトが抽出され、立っている場合には端面ハイライトが主に抽出される。面積(ピクセル数)によって側面ハイライトと端面ハイライトとを分ける。面積が小さいもの、あるいは中途半端なものは、認識に利用するには不適切なハイライト(ノイズや複数のハイライトが結合してしまったものなど)として無視する。続いて、側面ハイライトについては、同一巻ばねに属するものをグルーピングする。グルーピングができれば、その巻ばねを認識できたと言ってよい。
【0023】
同一の巻ばねに属するハイライトは、
・距離が近接している
・形状が類似している
・一定間隔で一直線上に並んでいる
という性質があるので、これを利用してグルーピングを行う。距離の近接はハイライト重心間の距離をチェックし、形状の類似はハイライト面積(ピクセル数)・ハイライトに対する画像楕円の長軸方向・湾曲情報を表す三次元画像モーメント等を用いる。一定間隔で一直線上に並んでいることは、ハイライト重心を見てチェックする。一定数以上のハイライトを同一のグループにまとめることができれば、一つの巻ばねを認識したとみなす。
【0024】
寝ているばねでありながら少数の側面ハイライトしか検出できないものは、他の巻ばねの下に一部が隠されているなどの状況であり、ピッキングには適さないと予想される。したがって、この時点で認識できなくてもかまわない(ピッキング作業が進むにつれて認識される)。
【0025】
端面ハイライトについては、それが一つ検出できれば、巻ばねを一つ認識できたと言える。端面はほぼ円形をしており、画像上は巻ばねの傾きに応じた楕円形になるとみなせる。そこで、楕円当てはめに成功したものを端面として検出する。本手法を実装し認識を行った結果の例は、後述する。
【0026】
対象物認識装置1は、例えばCPU、ROM、RAM等を備えたコンピュータで構成され、データ記憶部11の他、ハイライト抽出処理部13と、ハイライト判別処理部15と、特徴量抽出処理部17と、仮グループ化処理部19と、グループ化処理部21と、端面ハイライト検出部22と、登録部23とを備えている。なお、対象物が球状等で有ればハイライト判別処理部15は、省略することもできる。
【0027】
ハイライト抽出処理部13は、画像を二値化処理して各反射形状のハイライトを抽出するものである。
【0028】
すなわち、カメラ9による画像データをデータ記憶部11から読み出し、二値化処理してハイライトを抽出する。
【0029】
ハイライト判別処理部15は、ハイライトを抽出した二値化画像データに面積の閾値処理を施し巻ばね3の側面に対応する側面のハイライト(以下、「側面ハイライト」と称する。)と巻ばね3の端面に対応する端面のハイライト(以下、「端面ハイライト」と称する。)とを判別するものである。
【0030】
すなわち、データ記憶部11から二値化画像データを読み出し、ラべリングにより得られた領域から面積の閾値により側面ハイライトと端面ハイライトとを抽出する。抽出した側面ハイライト及び端面ハイライトは、データ記憶部11に記憶される。
【0031】
特徴量抽出処理部17は、巻ばね3の側面形状(対象物の形状)に対応させるための複数の特徴量を各側面ハイライト(ハイライト)から抽出するものである。
【0032】
すなわち、データ記憶部11から側面ハイライトを順に読み出し、各側面ハイライトから、特徴量としてハイライトの形状、ハイライトの直線的な並び、間隔、及び数を抽出する。側面ハイライトの形状は、例えば、側面ハイライトの面積と側面ハイライトの長軸方向と側面ハイライトの湾曲情報としている。
【0033】
湾曲情報は、後述のように楕円の当てはめによる湾曲の大きさや向きとし、さらに精度を高めるために、後述のように画像モーメントを導入することもできる。画像モーメントでは、後述のように側面ハイライトの湾曲の大きさを3次モーメントとし、向きを3次モーメントの正負とする。
【0034】
仮グループ化処理部19は、複数の特徴量から選択した特定の特徴量により側面ハイライトを複数1組毎の仮グループとする処理を行う。
【0035】
すなわち、データ記憶部11から側面ハイライトを順に読み出し、特徴量として特定した形状の近さにより側面ハイライトを複数1組毎の仮グループとする処理を行う。この仮グループ化処理部19は、形状を側面ハイライトの面積と側面ハイライトの長軸方向と側面ハイライトの湾曲情報とする処理を行う。
【0036】
この場合、仮グループ化処理部19は、側面ハイライトの一つを選択すると共に近傍の側面ハイライトをリストアップしてから上記の仮グループとする処理を行う。
【0037】
グループ化処理部21は、仮グループとされた側面ハイライトを複数の特徴量から選択した特定の他の特徴量によりグループとして決定する処理を行う。
【0038】
すなわち、データ記憶部11から仮グループを順に読み出し、特徴量として選択した他の特徴量として側面ハイライトの直線的な並び、間隔、及び数により仮グループをグループとして決定する処理を行う。
【0039】
この場合、グループ化処理部21は、仮グループを順次選択すると共にこの選択された仮グループ毎にグループとして決定する処理を行う。
【0040】
端面ハイライト検出部22は、判別された端面のハイライトから端面のハイライトを決定するものである。本実施例の端面ハイライト検出部22は、ノイズとして除外された面積の大きなハイライトに収縮処理をかけ且つ端面のハイライトとみなす閾値範囲に入っていることにより大きなハイライトを切り離してそれぞれ端面のハイライトとする。この端面のハイライトから後述のように端面ハイライトが決定される。具体的には後述する。
【0041】
決定された側面ハイライトのグループ及び端面ハイライトは、登録部23に登録される。
【0042】
したがって、ばら積みされた巻ばね3・・・を夫々認識することが可能となり、ばら積みされた巻ばね3・・・のロボットによるピッキングの自動化等に供することができる。
[ハイライトの抽出と判別]
図2(A)は、カメラの画像データ、(B)は、(A)の二値化画像データ、(C)は、側面ハイライトの画像データ、(D)は、端面ハイライトの画像データである。
【0043】
ハイライトの抽出と判別は、LEDスポットライト7の照明光が巻ばね3に当たることでできるハイライトに着目する。カメラ9で捉えた
図2(A)の画像データに二値化処理を施すと
図2(B)のようにハイライトが抽出できる。
図2(B)の二値化画像データに対し、ハイライトの面積で閾値処理を施し、ノイズを除去し、
図2(C)の側面ハイライトと
図2(D)の端面ハイライトとを判別する。
[側面ハイライトのグルーピング]
(楕円当てはめによるグルーピング)
本発明実施例のハイライトのグルーピングは、後述の画像モーメントによるものであり、制御フローチャートも画像モーメントによる処理である。しかし、楕円当てはめによるグルーピングを排除するものではなく、画像モーメントによるグルーピングの前に若干精度は落ちるものの、グループ化できる可能性のあるものとしてその手順を先に述べておく。
【0044】
図3は、側面ハイライトの面積等を示す説明図、
図4は、側面ハイライトの湾曲を示す説明図である。
【0045】
側面ハイライトは、端面ハイライトと異なり、一つのハイライトから巻ばね3の情報を得ることは困難である。そこで、同一の巻ばね3について側面ハイライトのグルーピングを行う。
【0046】
この場合、グルーピングに必要な各側面ハイライトのパラメータ(特徴量)を求めることになる。以下で計算方法を説明する。
【0047】
・ハイライトの面積、長軸方向、ハイライト間距離(
図3)
ハイライトの面積h
area [pixel]、長軸方向h
laxis [deg]は画像のモーメントから計算することができる。また、画像モーメントからハイライトの重心座標を計算することができる。ここで、ハイライトの重心座標間の距離をハイライト間距離d
r[pixel]と定義する。
【0048】
・ハイライトの湾曲(
図4)
ハイライトの湾曲を求めるために、ハイライトのスケルトンを抽出する。抽出したスケルトンを構成する点群に楕円を当てはめ、当てはめた楕円の中心とスケルトン間で最短距離となるスケルトン上の点を求める。当てはめた楕円中心と求めたスケルトン上の点を結ぶ直線の長さを、湾曲の大きさc
mag [pixel]とし、向きをハイライトの湾曲の向きc
dir [deg]とする。
【0049】
次に、以下のパラメータについて閾値を設定し、側面ハイライトのグルーピングを行う。
【0050】
・ハイライトの面積:h
area [pixel]
・ハイライトの長軸方向:h
laxis [deg](0≦h
laxis<180°)
・ハイライトの湾曲の大きさ:c
mag [pixel]
・ハイライトの湾曲の向き:c
dir [deg](0≦c
dir<360°)
・ハイライト間距離:d
r[pixel]
ハイライトのグルーピングの手順は、以下の通りである。
【0051】
(1)検出したすべての側面ハイライトからハイライトを一つ選ぶ(基準ハイライト)
(a)基準ハイライトの湾曲が大きい場合
i.基準ハイライト以外のハイライトで湾曲が大きいハイライトを選ぶ。
ii.ハイライトの面積h
area、長軸方向h
laxis、ハイライト間距離d
r、湾曲の向きc
dirを比較し、条件を満たす場合に基準ハイライトのグループに含める。
iii.すべてのハイライトに対してi、iiを行う。
(b)基準ハイライトの湾曲が小さい場合
i.基準ハイライト以外のハイライトで湾曲が小さいハイライトを選ぶ。
ii.ハイライトの面積h
area、長軸方向h
laxis、ハイライト間距離d
rを比較し、条件を満たす場合に基準ハイライトのグループに含める。
iii.すべてのハイライトに対してi、iiを行う。
(2)基準ハイライトを変えて(1)を行う。
(3)すべてのハイライトに対して(1)を行ったらグルーピング終了。
【0052】
湾曲の大きさによるグルーピング手順の違いは、パラメータに湾曲の向きc
dirが含まれるか否かのみである。これは、湾曲が小さいハイライトは、湾曲の向きが同一グループでも全く異なり、グルーピングに悪影響を与えるためである。また、湾曲の大きさc
magをグルーピングのパラメータに直接加えず、大きいか小さいかの二通りにしか分けていない。これは、湾曲の大きさについてはノイズの影響が大きく、グルーピングのパラメータに加えるとグルーピングに失敗しやすくなってしまうためである。
【0053】
ここまでの手順により、仮グループとする。
【0054】
しかし、上記の手順だけではグループの重複や巻ばねが並列に並んでいる場合にグルーピングの失敗が起こる。
【0055】
そこで、同一グループではハイライトが直線に並ぶことや隣接するハイライト間距離が等間隔であること、同一巻ばねを表すグループが重複した場合グループに含まれるハイライト数が多いものを採用することの条件を加えてグルーピングの結果を修正し、最終的なグルーピングとする。
【0056】
(画像モーメントによる湾曲情報及びグルーピング)
図5は、座標の回転を示す説明図、
図6は、側面ハイライトの湾曲方向を示す説明図、
図7は、側面ハイライトの湾曲方向を示す説明図である。
【0057】
図3、
図4の上記では、各側面ハイライトのスケルトンに楕円を当てはめ、その楕円より湾曲の大きさや向きを求めた。しかし、湾曲の大きさが小さいときは楕円当てはめによる湾曲情報の精度に限界がある。
【0058】
これに対し、画像モーメントを用いて湾曲情報を得ることで精度が向上する。
【0059】
まず、湾曲の大きさを3次モーメントμ´
21とする。
図5のようにxy座標を反時計回りにθ回転させた座標をx´y´座標と定義すると、μ´
21の値は式(1)で求められる。ただし、θは式(2)で表される。
【0060】
【数1】
【0061】
ただし、μは元の座標系における画像の(i+j)次モーメントである.
【0062】
【数2】
【0063】
このままでは画像の拡大・縮小の影響を受けてしまうため、式(3)のように無次元化する。
【0064】
【数3】
【0065】
次に、巻ばね3の側面ハイライトの形は通常湾曲しているので、その方向を判別する。ハイライトの長手方向は、画像楕円の長軸方向として判別できるので、それに直交する短軸方向のどちら側に湾曲しているかが問題となる。θだけ座標軸を回転すると、長軸方向がx´軸、短軸方向がy´軸となる。
【0066】
側面ハイライトの典型的な形状として三日月形を想定すると、x´軸方向にはほぼ対称であり、y´軸方向のどちらかに湾曲することとなる。
【0067】
・三日月形の両端付近では、x´は正負両方の値をとり絶対値は大きい。Y´は正負いずれかの値をとり、この符号が湾曲の向きと対応する。
【0068】
・三日月形の中心付近では、x´は正負両方の値をとり絶対値は小さい。Y´は正負いずれかの値をとり、両端付近と異符号となる。
【0069】
ここで、x´
2y´の積分に対応するμ
´21を計算すると、x´
2の重みつきでy´を積分するわけであるから、両端付近の符号が大きな重みがかかり、結果的に湾曲の向きが分かる。すなわち、
・μ
´21<0のとき:y´軸負方向に両端が突き出た湾曲(
図6)
・μ
´21>0のとき:y´軸正方向に両端が突き出た湾曲(
図7)
となる。
【0070】
以上より、ハイライトの湾曲の大きさに関係なく、ハイライトの湾曲の大きさと向きを、グルーピングのパラメータに用いる。すなわち、ハイライトのグルーピングアルゴリズムは以下のようになる。
【0071】
(1)検出したすべての側面ハイライトからハイライトを一つ選ぶ(基準ハイライト)
(a)基準ハイライト以外のハイライトを選ぶ。
(b)ハイライトの面積h
area、長軸方向h
laxis、ハイライト間距離dr、湾曲の大きさ、湾曲の向きを比較し、条件を満たす場合に基準ハイライトのグループに含める。
(c)すべてのハイライトに対して(a),(b)を行う。
(2)基準ハイライトを変えて(1)を行う。
(3)すべてのハイライトに対して(1)を行ったらグルーピング終了
画像モーメントは画像全体の情報の総和として求まるので、ロバストなグルーピングができる。
[側面ハイライト情報からの端面の検出]
図8は、側面ハイライトの情報からの端面の検出を示す説明図である。
【0072】
巻ばねが傾いている場合は側面と端面が見えるため、側面の情報からさらに端面検出を行うこともできる。側面ハイライトには、水平では湾曲せず、傾きが垂直に近づくほど湾曲が大きくなる特徴がある。このことから、大きく湾曲しているハイライトを含むグループの巻ばねは端面が見えている可能性がある。グループの向きg
dir、湾曲の方向c
dirにより端面の位置を推定し、ROI(Region of Interest)を設定し、RANSAC(RANdom Sample Consensus)[Fischler1981]により端面を検出できる。
【0073】
端面の形状を楕円と仮定すると巻ばねが傾いている場合は端面の形状が歪む。そのため、
図8のように、巻ばねの向きから端面の長軸・短軸方向がある程度推定できる。
【0074】
すなわち、RANSACで得られる楕円の短軸の向きの範囲をg
dirに対して、±Δφという制約を加えることができる。以下に、RANSACによる端面検出アルゴリズムを示す。
【0075】
(1)二値化しCanny法でエッジを検出する。
(2)エッジからランダムに5点選択し、5点を通る楕円の式を求める。
(3)楕円の短軸の向きが[g
dir −Δφ, g
dir +Δφ]の範囲に入っているか確認する。
(4)(3)を満たせば、選んだ5点以外のすべての点について求めた楕円との距離を求め、設定したしきい値より距離が小さい点の個数を数え、その合計を楕円の得点とする。
(5)(2)から(4)を数回繰り返し、複数の楕円を検出する。
(6)得られた複数の楕円から、最も得点の高い楕円を端面形状として採用する。
[端面ハイライトによる認識]
端面ハイライト近傍に注目してROIを設定し、端面検出を行う。巻ばね3が直立状態の場合、端面の形状は歪まないため、検出楕円に制約は加えない。
【0076】
設定したROIにおいて輪郭抽出を行い,楕円あてはめを行うことで端面を検出する。画像にノイズが多い場合には,上記と同様のRANSACを用いて検出をすることも可能である。
【0077】
上記では、エッジから5点の座標を選択し楕円を導出した。巻ばねのグループの向きと検出楕円の短軸の向きは等しいはずであるが、5点の座標を用いた場合、向きが正しくない楕円も導出してしまう。このため、無駄にRANSACによる計算を行なうことになる。
【0078】
そこで、楕円の向きは側面ハイライトのグループの向きからわかっているため、4点の座標と角度から楕円を導出することにしてもよい。すなわち、RANSACによる端面検出アルゴリズムは以下のようになる。
【0079】
(1)二値化しCanny法でエッジを検出する。
(2)エッジからランダムに4点選択し、4点を通り、楕円の向きがグループの向きとなる楕円の式を求める。
(3)選んだ4点以外のすべての点について求めた楕円との距離を求め、設定した閾値より距離が小さい点の個数を数え、その合計を楕円の得点とする。
(4)(2)から(3)を数回繰り返し、複数の楕円を検出する。
(5)得られた複数の楕円から、最も得点の高い楕円を端面形状として採用する。
【0080】
これにより同等の計算時間でRANSACによる楕円検出数を増やすことができるので、楕円検出の成功率が向上する。
[直立した巻ばねが並んだときの認識]
図9は、端面ハイライトの結合を示す画像データ、
図10は、端面ハイライトの検出を示す画像データである。
【0081】
図9のように、直立した巻ばねが並んでいる場合は、端面ハイライトの面積が大きくなり、上記[ハイライトの抽出と判別]での説明におけるハイライト抽出でノイズとみなされてしまう。
【0082】
そこでハイライト面積が大きい時は収縮処理によりハイライトの切り離しを行う。以下に、アルゴリズムを示す。
【0083】
(1)ハイライトに収縮処理をかける。
(2)ハイライト面積が端面ハイライトとみなす範囲に入っているか確認する。
(3)(1)(2)を繰り返す。
(4)(2)を満たせば、ハイライトが切り離されたとみなす。
(5)切り離されたハイライトを別々の端面ハイライトとする。
【0084】
図9の端面ハイライトの結合においては、ハイライトがつながり、ハイライト面積が大きくなるため、ノイズとされてしまう。
【0085】
これに対し、上記アルゴリズムで切り離しを行った場合、
図10のように、ハイライト面積が大きい場合でも別々の巻ばねであると認識することができた。
[側面ハイライトのグループ化及び端面ハイライトの検出結果]
図11、
図12は、側面ハイライトのグループ化及び端面ハイライトの検出を示す画像データある。
図11は、楕円当てはめによる側面ハイライトの認識及びハイライトの切り離しを行なわない端面ハイライトの認識アルゴリズムによる画像データであり、
図12は、画像モーメントによる湾曲情報を用いた側面ハイライトの認識及びハイライトの切り離しを行なった端面ハイライトの認識アルゴリズムによる画像データである。
【0086】
図11、
図12の何れの場合も、画像中の四角で囲まれた部分の認識ができている。特に
図12の場合は、
図11の場合に比較してグルーピング可能な数が増加している。グルーピングの成功率と端面検出の成功率は若干向上している。
[対象物認識方法、プログラム、及び記録媒体]
図13〜
図15は、側面ハイライト及び端面ハイライトの検出に係るフローチャートである。
【0087】
対象物認識装置1でのデータの処理が開始されると、ステップS1(以下、各ステップをSにより略称する。)において、二値化処理が実行される。この処理では、カメラ9による画像データが二値化処理により二値化画像データとされ、S2ヘ移行する。
【0088】
S2では、ハイライト抽出の処理により、二値化画像データにおいてラベリングにより得られた領域から、面積によって側面ハイライトと端面ハイライトとを抽出し、S3、S4ヘ移行する。ハイライトの抽出では、各側面ハイライトから前記の特徴量が抽出され記憶される。
【0089】
S3では、「側面ハイライトの仮グルーピング」の処理により、すべての側面ハイライトを対象に仮グルーピングが行なわれてS5ヘ移行する。S3での仮グルーピングは、
図14のサブルーチンで実行される。
【0090】
S4では、「端面ハイライトの検出」が行われる。S4での端面ハイライトの検出は、上記の通りである。
【0091】
S5では、「側面ハイライトのグルーピング」の処理により、側面ハイライトがグループ化され、処理は終了する。S5の詳細は、
図15のサブルーチンで説明する。
【0092】
図13のS3を実行する
図14のサブルーチンでは、S31の「ハイライトを一つ選ぶ」の処理により、側面ハイライトの一つが読み出され、S32ヘ移行する。
【0093】
S32では、「近傍のハイライトをリストアップ」の処理により、S31で選ばれた一つの側面ハイライトに対し、ハイライト間距離、連続数等の閾値により近傍のハイライトを順にリストアップし、S33ヘ移行する。このリストアップは、一つの側面ハイライトに対し、近傍の側面ハイライトを1個ずつリストとして読み込む。
【0094】
S33では、「形状が近い?」の判断処理により、リストアップされた側面ハイライトのグループに対し、側面ハイライトの形状が近いか否かにより判別される。「形状が近い」か否かは、ハイライト面積(ピクセル数)、ハイライトの長軸方向、湾曲情報(三次画像モーメント)が近いかどうかで判断される。形状が近いと判断されれば(YES)、S34ヘ移行し、形状が近くないと判断されれば(NO)、S35ヘ移行する。
【0095】
S34では、「仮グループに入れる」の処理により、形状が近い側面ハイライトが仮グループとして記憶され、S35ヘ移行する。
【0096】
S35では、「近傍のハイライトをすべて調べ終えた?」の判断処理が行われ、調べ終えていないと判断されれば(NO)、S32へ処理が戻され、S32、S33、S35が繰り返される。調べ終えたと判断されれば(YES)、S36へ移行する。
【0097】
S36では、「ハイライトをすべて調べ終えた?」の判断処理が行われ、調べ終えていないと判断されれば(NO)、S31へ処理が戻され、S31、S32、S33、S35、S36が繰り返される。調べ終えたと判断されれば(YES)、仮グルーピングの処理は終了する。
【0098】
図13のS5を実行する
図15のサブルーチンでは、S501の「仮グループを一つ選ぶ」の処理により、S3で仮グループ化された側面ハイライトの仮グループの一つが読み出され、S502ヘ移行する。
【0099】
S502では、「直線状に並んでいない構成ハイライトを削除」の処理により、S501で選ばれた仮グループを構成する側面ハイライトで、構成ハイライトがほぼ同一直線上に乗っているか確認し、乗っていないものは削除し、S503ヘ移行する。巻ばね3の側面ハイライトは、ほぼ同一直線上に乗っている性質を利用して判断するものである。
【0100】
S503では、「構成ハイライトが少ない?」の判断処理が行われる。S502での削除の結果、巻ばね3の側面ハイライトを構成するには数が少ないと思われる仮グループか否かを判断する。構成ハイライトが少ないと判断されれば(YES)、S504ヘ移行し、構成ハイライトが少なくないと判断されれば(NO)、S505ヘ移行する。
【0101】
S504では、「仮グループを削除」の処理により、側面ハイライトを構成するには数が少ないと思われる仮グループがデータとして削除され、S505ヘ移行する。
【0102】
S505では、「すべての仮グループを調べ終えた?」の判断処理が行われ、調べ終えていないと判断されれば(NO)、S501へ処理が戻され、S501〜S505が繰り返される。調べ終えたと判断されれば(YES)、S506へ移行する。
【0103】
S506では、「構成ハイライト数の多い順(同じならハイライト面積の大きい順)でソート」の処理が行われる。この処理により、直線上に並んだ所定数の仮グループ群が、構成ハイライト数の多い順に整列され、S507ヘ移行する。但し、構成ハイライト数が同じ時は、ハイライト面積の大きい順に並べられ、S507ヘ移行する。
【0104】
S507では、「仮グループを順に一つ選ぶ」の処理により、S505でソートされた仮グループの一つが順に読み出され、S508ヘ移行する。
【0105】
S508では、「登録済み他グループと重複する構成ハイライトを消す」の処理により、既にグループとして決定された側面ハイライトに対しデータとして重複する構成ハイライトを現処理の仮グループから削除され、S509ヘ移行する。
【0106】
S509では、「ハイライト間距離が一定でない構成ハイライトを消す」の処理が行われる。巻ばね3の側面において素線間距離は一定であるため、距離が一定でないハイライトをノイズとして除去し、S510ヘ移行する。
【0107】
S510では、「構成ハイライト数が基準の範囲内?」の判断処理が行われる。巻ばね3の側面において素線の連続数は決まっており、仮グループを構成する側面ハイライトの数が、基準を越えていたり、少ない時は、グループとしての登録から排除される。したがって、S510で構成ハイライト数が基準の範囲内であると判断されれば(YES)、S511へ移行し、基準の範囲内ではないと判断されれば(NO)、S512へ移行する。
【0108】
S511では、「グループとして登録」の処理により、処理された仮グループがグループとして決定され、登録部23(
図1)に登録され、S512へ移行する。
【0109】
S512では、「すべての仮グループを調べ終えた?」の判断処理が行われ、調べ終えていないと判断されれば(NO)、S507へ処理が戻され、S507〜S512が繰り返される。調べ終えたと判断されれば(YES)、グルーピングの処理は終了する。
【0110】
このようにして、ばら積みの巻ばね3を認識する機能を対象物認識装置1としてのコンピュータに実現させる対象物認識プログラムであって、ばら積みの巻ばね3・・・全体にLEDスポットライト7により照明光を当てた状態でカメラ9により撮像された画像を二値化処理して各反射形状のハイライトを抽出するハイライト抽出機能S1、S2と、抽出されたハイライトに面積の閾値処理を施し巻ばね3の側面に対応する側面ハイライトと巻ばね3の端面に対応する端面ハイライトとを判別するハイライト判別機能S2と、巻ばね3の形状に対応させるための形状等の複数の特徴量を各側面ハイライトから抽出する特徴量抽出機能S2と、複数の特徴量から選択した特定の特徴量により側面ハイライトを複数1組毎の仮グループとする仮グループ化機能S3と、仮グループとされた側面ハイライトを複数の特徴量から選択した特定の他の特徴量によりグループとして決定するグループ化機能S5とを前記機能として備えた。
【0111】
したがって、ばら積みされた巻ばね3・・・の認識を正確に行わせることができ、ばら積みの巻ばね3・・・のピッキングの自動化等に供することができる。
【0112】
対象物認識プログラムは、前記機能として、前記判別された端面のハイライトから端面のハイライトを決定する端面ハイライト検出機能S4を備えた。
【0113】
したがって、端面ハイライトからも巻ばね3・・・の認識を行わせることができる。
【0114】
この場合、端面ハイライト検出機能S4は、ノイズとして除外された面積の大きなハイライトに収縮処理をかけ且つ端面のハイライトとみなす閾値範囲に入っていることにより大きなハイライトを切り離してそれぞれ端面のハイライトとする。
【0115】
このため、端面ハイライトから巻ばね3・・・の認識をより正確に行わせることができる。
【0116】
本発明実施例は、ばら積みの巻ばね3を認識する対象物認識方法であって、ばら積みの巻ばね3・・・全体にLEDスポットライト7により照明光を当てた状態でカメラ9により撮像された画像を二値化処理して各反射形状のハイライトを抽出するハイライト抽出ステップS1、S2と、抽出されたハイライトに面積の閾値処理を施し巻ばね3の側面に対応する側面ハイライトと巻ばね3の端面に対応する端面ハイライトとを判別するハイライト判別ステップS2と、巻ばね3の形状に対応させるための形状等の複数の特徴量を前記各ハイライトから抽出する特徴量抽出ステップS2と、前記複数の特徴量から選択した特定の特徴量により前記ハイライトを複数1組毎の仮グループとする仮グループ化ステップS3と、前記仮グループとされたハイライトを前記複数の特徴量から選択した特定の他の特徴量によりグループとして決定するグループ化ステップS5とを備えた。
【0117】
したがって、上記同様に、巻ばね3・・・のピッキングの自動化等に供することができる。
【0118】
本発明実施例は、ばら積みの巻ばね3を認識する機能を実現させるための前記対象物認識プログラムを坦持したコンピュータ読み取り可能な記録媒体とした。
【0119】
したがって、巻ばね3・・・のピッキングの自動化等のために、対象物認識プログラムをコンピュータに読み取らせることができる。
【0120】
[その他]
本発明は、対象物として巻ばねに限らず、その他、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で各対象物を認識する場合、例えば、巻ばねと同一形状であるがばね性を有しない対象物、矩形体、球体等で形状に空間部が存在して輪郭を分断された対象物の認識にも適用することができる。
【0121】
本発明は、対象物のピッキングに限らず、対象物を認識する必要のある場合、例えば対象物の集合毎の分類等にも広く適用することができる。