(57)【要約】【課題】巻ばね等の外形が複雑で、隙間があり、奥が見える対象物を認識しハンドにより把持して移動することを可能とする対象物移動装置、方法、プログラム、及び記録媒体を提供する。【解決手段】輪郭を分断された同一形状の対象物が不規則に集合した中で対象物３を認識しハンドにより把持する対象物移動装置であって、照明光の下、複数台のカメラにより撮像された各画像を二値化処理してハイライトを画像毎にそれぞれ抽出するハイライト抽出処理部１３と、特徴量を各ハイライトから抽出する特徴量抽出処理部１７と、特徴量によりハイライトを複数１組毎のグループとして画像毎に決定するグループ化処理部１９、２１と、グループの対応を検出する対応検出処理部２５と、対応したグループで対象物を認識し位置、姿勢を演算する位・姿勢演算部２７と、対象物の位置、姿勢によりハンドの動作を制御する制御部とを備えたことを特徴とする。【選択図】図２
2014109466.tif 000002
【特許請求の範囲】
【請求項１】
形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動する対象物移動装置であって、
前記集合した対象物全体に照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを前記画像毎にそれぞれ抽出するハイライト抽出処理部と、
前記対象物の形状に対応させるための特徴量を前記各ハイライトから抽出する特徴量抽出処理部と、
前記特徴量により前記ハイライトを複数１組毎のグループとして前記画像毎に決定するグループ化処理部と、
前記グループの前記画像間での対応を検出する対応検出処理部と、
前記検出により対応したグループで前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢をステレオ画像処理により演算する位置・姿勢演算部と、
前記演算された対象物の位置、姿勢により前記ハンドの動作を制御する制御部と、
を備えたことを特徴とする対象物移動装置。
【請求項２】
請求項1記載の対象物移載装置であって、
前記特徴量抽出処理部は、前記特徴量を複数抽出し、
前記複数の特徴量から選択した特定の特徴量により前記ハイライトを複数１組毎の仮グループとする仮グループ化処理部を備え、
前記グループ化処理部は、前記仮グループとされたハイライトを前記複数の特徴量から選択した特定の他の特徴量によりグループとして決定する、
ことを特徴とする対象物移載装置。
【請求項３】
請求項１記載の対象物移動装置であって、
前記対象物は、端面と空間部が存在して輪郭を分断された側面とを備え、
前記抽出されたハイライトに面積の閾値処理を施し前記対象物の側面に対応する側面のハイライトと前記対象物の端面に対応する端面のハイライトとを判別するハイライト判別処理部を備え、
前記特徴量抽出処理部は、前記対象物の側面形状に対応させるための複数の特徴量を前記各側面のハイライトから抽出する処理を行い、
前記グループ化処理部は、前記特徴量により前記側面のハイライトを複数１組毎のグループとして前記画像毎に決定する、
ことを特徴とする対象物移載装置。
【請求項４】
請求項２記載の対象物移動装置であって、
前記対象物は、端面と空間部が存在して輪郭を分断された側面とを備え、
前記抽出されたハイライトに面積の閾値処理を施し前記対象物の側面に対応する側面のハイライトと前記対象物の端面に対応する端面のハイライトとを判別するハイライト判別処理部を備え、
前記特徴量抽出処理部は、前記対象物の側面形状に対応させるための複数の特徴量を前記各側面のハイライトから抽出する処理を行い、
前記仮グループ化処理部は、前記複数の特徴量から選択した特定の特徴量により前記側面のハイライトを複数１組毎の仮グループとする処理を行い、
前記グループ化処理部は、前記仮グループとされた側面のハイライトを前記複数の特徴量から選択した特定の他の特徴量によりグループとして決定する処理を行う、
ことを特徴とする対象物移動装置。
【請求項５】
請求項３又は４記載の対象物移動装置であって、
前記判別された端面のハイライトから最終的な端面のハイライトを決定する端面ハイライト検出部を備え、
前記対応検出処理部は、前記端面のハイライトの前記画像間での対応を検出し、
前記位置・姿勢演算部は、前記検出により対応したグループ及び端面のハイライトにより前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢を演算する、
ことを特徴とする対象物移動装置。
【請求項６】
請求項１〜５の何れか1項記載の対象物移動装置であって、
前記対応検出処理部は、前記グループの対応を前記ハイライトの面積、重心位置、並びの向き、グループ重心間距離、数、重心の縦方向位置の何れかの組み合わせにより検出する、
ことを特徴とする対象物移動装置。
【請求項７】
請求項１〜６の何れか1項記載の対象物移動装置であって、
前記対応検出処理部は、前記ハイライトのグループの並びの向きが水平又は水平と看做されるとき前記カメラにより撮像された各元画像の対比により前記グループの対応を検出する、
ことを特徴とする対象物移動装置。
【請求項８】
請求項７記載の対象物移動装置であって、
前記対応検出処理部は、前記水平又は水平と看做されるグループを含む前記カメラにより撮像された元画像内の探索領域を周辺情報を含めるように設定する、
ことを特徴とする対象物移動装置。
【請求項９】
請求項１〜８の何れか１項記載の対象物移動装置であって、
前記対象物は、巻ばねである、
ことを特徴とする対象物移動装置。
【請求項１０】
形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動する対象物移動方法であって、
前記集合した対象物全体に照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを前記画像毎にそれぞれ抽出するハイライト抽出ステップと、
前記対象物の形状に対応させるための特徴量を前記各ハイライトから抽出する特徴量抽出ステップと、
前記特徴量により前記ハイライトを複数１組毎のグループとして前記画像毎に決定するグループ化ステップと、
前記グループの前記画像間での対応を検出する対応検出ステップと、
前記検出により対応したグループで前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢を決定する位置・姿勢決定ステップと、
前記対象物の位置、姿勢により前記ハンドの動作を行わせる動作ステップと、
を備えたことを特徴とする対象物移動方法。
【請求項１１】
請求項１０記載の対象物移動方法であって、
前記対象物は、端面と空間部が存在して輪郭を分断された側面とを備え、
前記抽出されたハイライトに面積の閾値処理を施し前記対象物の側面に対応する側面のハイライトと前記対象物の端面に対応する端面のハイライトとを判別するハイライト判別ステップを備え、
前記特徴量抽出ステップは、前記対象物の側面形状に対応させるための複数の特徴量を前記各側面のハイライトから抽出する処理を行い、
前記グループ化ステップは、前記特徴量により前記側面のハイライトを複数１組毎のグループとして前記画像毎に決定し、
前記判別された端面のハイライトから最終的な端面のハイライトを決定する端面ハイライト検出ステップを備え、
前記対応検出ステップは、前記端面のハイライトの前記画像間での対応を検出し、
前記位置・姿勢決定ステップは、前記検出により対応したグループ及び端面のハイライトにより前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢とする、
ことを特徴とする対象物移動方法。
【請求項１２】
形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動する機能をコンピュータに実現させる対象物移動プログラムであって、
前記集合した対象物全体に照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを前記画像毎にそれぞれ抽出するハイライト抽出機能と、
前記対象物の形状に対応させるための特徴量を前記各ハイライトから抽出する特徴量抽出機能と、
前記特徴量により前記ハイライトを複数１組毎のグループとして前記画像毎に決定するグループ化機能と、
前記グループの前記画像間での対応を検出する対応検出機能と、
前記検出により対応したグループで前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢をステレオ画像処理により演算する位置・姿勢演算機能と、
前記演算された対象物の位置、姿勢により前記ハンドの動作を制御する動作制御機能と、
を前記機能として備えたことを特徴とする対象物移動プログラム。
【請求項１３】
請求項１２記載の対象物移動プログラムであって、
前記対象物は、端面と空間部が存在して輪郭を分断された側面とを備え、
前記抽出されたハイライトに面積の閾値処理を施し前記対象物の側面に対応する側面のハイライトと前記対象物の端面に対応する端面のハイライトとを判別するハイライト判別機能を備え、
前記特徴量抽出機能は、前記対象物の側面形状に対応させるための複数の特徴量を前記各側面のハイライトから抽出する処理を行い、
前記グループ化機能は、前記特徴量により前記側面のハイライトを複数１組毎のグループとして前記画像毎に決定し、
前記判別された端面のハイライトから最終的な端面のハイライトを決定する端面ハイライト検出機能を備え、
前記対応検出機能は、前記端面のハイライトの前記画像間での対応を検出し、
前記位置・姿勢演算機能は、前記検出により対応したグループ及び端面のハイライトにより前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢をステレオ画像処理により演算する、
ことを特徴とする対象物移動プログラム。
【請求項１４】
請求項１２又は１３記載の対象物移動プログラムを坦持したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バラ積みされた巻ばね等、側面形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で、各対象物を認識しハンドにより把持して移動する対象物移動装置、方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
各種産業では、ワークの把持、搬送などの取り扱いにロボットが使用されている。このようなロボットの用途の中には、収容箱内やパレット上に乱雑におかれた状態のワークの中から個々のワークの取り出しを行う用途、いわゆる「バラ積み取り出し」用途がある。
【０００３】
バラ積み取り出し用途では、まずＣＣＤカメラなどを用いた全体探索用センサによって撮像した広範囲の領域の２次元画像に基づいて、取り出すべきワークのおおよその位置を判断した後、３次元視覚センサのような精密測定用センサによる狭範囲の領域の撮像データに基づいて特定のワークの３次元位置及び姿勢の精密な測定を行い、測定されたワークの３次元位置及び姿勢に基づいて、ロボットによるワークの把持が行われる。３次元視覚センサとしては、スリット光やスポット光を対象物に投射して対象物面上に周辺よりも高輝度の光帯又は光点を形成し、これをＣＣＤカメラ等の撮像装置によって観測して三角測量の原理によって対象物の３次元計測を行うものや、２台の撮像装置を用いてスレテオ画像処理によって対象物の位置を３次元的に計測するものが知られている。
【０００４】
例えば、特許文献１には、広範囲の領域の２次元画像を取得するためのＣＣＤカメラと、狭範囲の領域でワークの３次元位置を測定するためのレーザセンサとを組み合わせて使用した複合センサロボットシステムが開示されている。
【０００５】
また、特許文献２には、広範囲の領域を撮像するカメラによって検出された各ワークの部分的特徴に基づいて、検出された複数のワークの取り出し優先順位を決定する技術が開示されている。
【０００６】
しかし、これら従来の技術は、ボルト等連続した輪郭を備えたワークに適用され、エッジ検出が前提となるため、巻ばねのように外形が複雑で、隙間があり、奥が見えて平面部が少ない対象物では、一般に画像処理で用いられる明確な特徴がなく、適用が困難であるという問題が有る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第９７／２４２０６号パンフレット
【特許文献２】特開２００４−５０３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
解決しようとする問題点は、巻ばね等の外形が複雑で、隙間があり、奥が見える対象物を認識しハンドにより把持して移動することが困難であった点である。
【課題を解決するための手段】
【０００９】
本発明は、巻ばね等の外形が複雑で、隙間があり、奥が見える対象物を認識しハンドにより把持して移動することを可能とするため、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動する対象物移動装置であって、前記集合した対象物全体に照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを前記画像毎にそれぞれ抽出するハイライト抽出処理部と、前記対象物の形状に対応させるための特徴量を前記各ハイライトから抽出する特徴量抽出処理部と、前記特徴量により前記ハイライトを複数１組毎のグループとして前記画像毎に決定するグループ化処理部と、前記グループの前記画像間での対応を検出する対応検出処理部と、前記検出により対応したグループで前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢をステレオ画像処理により演算する位置・姿勢演算部と、前記演算された対象物の位置、姿勢により前記ハンドの動作を制御する制御部とを備えたことを対象物移動装置の特徴とする。
【００１０】
本発明は、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動する対象物移動方法であって、前記集合した対象物全体に照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを前記画像毎にそれぞれ抽出するハイライト抽出ステップと、前記対象物の形状に対応させるための特徴量を前記各ハイライトから抽出する特徴量抽出ステップと、前記特徴量により前記ハイライトを複数１組毎のグループとして前記画像毎に決定するグループ化ステップと、前記グループの前記画像間での対応を検出するグループ対応ステップと、前記検出により対応したグループで前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢を決定する位置・姿勢決定ステップと、前記決定された対象物の位置、姿勢により前記ハンドの動作を行わせる動作ステップとを備えたことを対象物移動方法の特徴とする。
【００１１】
本発明は、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動する機能をコンピュータに実現させる対象物移動プログラムであって、前記集合した対象物全体に照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを前記画像毎にそれぞれ抽出するハイライト抽出機能と、前記対象物の形状に対応させるための特徴量を前記各ハイライトから抽出する特徴量抽出機能と、前記特徴量により前記ハイライトを複数１組毎のグループとして前記画像毎に決定するグループ化機能と、前記グループの前記画像間での対応を検出する対応検出機能と、前記検出により対応したグループで前記対象物を認識し前記各カメラの位置を基準とした該対象物の位置、姿勢をステレオ画像処理により演算する位置・姿勢演算機能と、前記演算された対象物の位置、姿勢により前記ハンドの動作を制御する動作制御機能とを前記機能として備えたことを対象物移動プログラムの特徴とする。
【００１２】
本発明は、前記機能を備えた対象物認識プログラムを坦持したことを記録媒体の特徴とする。
【発明の効果】
【００１３】
本発明の対象物移動装置は、上記構成であるから、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で、２台のカメラにより撮像された各画像の画像処理によって得られたハイライトから抽出した特徴量によりハイライトを複数１組毎のグループとし、画像間で対応したグループで対象物を認識し各カメラの位置を基準とした対象物の位置、姿勢をステレオ画像処理により演算し、ハンドの動作を制御して対象物を把持、移動することができる。
【００１４】
本発明の対象物認識方法は、上記構成であるから、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で、２台のカメラにより撮像された各画像の画像処理によって得られたハイライトから抽出した特徴量によりハイライトを複数１組毎のグループとし、画像間で対応したグループで対象物を認識し各カメラの位置を基準とした対象物の位置、姿勢をステレオ画像処理により決定し、この決定によるハンドの動作により対象物を把持、移動することができる。
【００１５】
本発明の対象物認識プログラムは、上記構成であるから、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で、２台のカメラにより撮像された各画像の画像処理によって得られたハイライトから抽出した特徴量によりハイライトを複数１組毎のグループとし、画像間で対応したグループで対象物を認識し各カメラの位置を基準とした対象物の位置、姿勢をステレオ画像処理により演算し、ハンドの動作を制御して対象物を把持、移動する機能をコンピュータに実現させることができる。
【００１６】
本発明の記録媒体は、上記構成であるから、各対象物を認識しハンドにより把持し移動する機能を実現させるための対象物認識プログラムを坦持し、コンピュータに読み取らせることができる。
【図面の簡単な説明】
【００１７】
【図１】対象物移動装置のブロック図である。（実施例１）
【図２】対象物特定装置のブロック図である。（実施例１）
【図３】（Ａ）は、カメラの画像データ、（Ｂ）は、（Ａ）の二値化画像データ、（Ｃ）は、側面ハイライトの画像データ、（Ｄ）は、端面ハイライトの画像データである。（実施例１）
【図４】側面ハイライトの面積等を示す説明図である。（実施例１）
【図５】側面ハイライトの湾曲を示す説明図である。（実施例１）
【図６】座標の回転を示す説明図である。（実施例１）
【図７】側面ハイライトの湾曲方向を示す説明図である。（実施例１）
【図８】側面ハイライトの湾曲方向を示す説明図である。（実施例１）
【図９】側面ハイライト情報からの端面の検出を示す説明図である。（実施例１）
【図１０】端面ハイライトの結合を示す画像データである。（実施例１）
【図１１】最終的な端面ハイライトの検出を示す画像データである。（実施例１）
【図１２】側面ハイライトのグループ化及び端面ハイライトの検出を示す画像データである。（実施例１）
【図１３】側面ハイライトのグループ化及び端面ハイライトの検出を示す画像データである。（実施例１）
【図１４】ステレオ画像処理装置の模式図である。（実施例１）
【図１５】（Ａ）は、各側面ハイライトの重心及びグループの重心を示し、（Ｂ）は、グループの並びの向きを示す説明図である。（実施例１）
【図１６】グループ重心間距離に係り、グループ重心のｘ座標を表示した側面ハイライトのグループを左右で示す説明図である。（実施例１）
【図１７】側面ハイライトの対応付けに係り、グループ重心を表示した側面ハイライトのグループを左右で示す説明図である。（実施例１）
【図１８】左右の側面ハイライトのグループが水平状態であることを示す説明図である。（実施例１）
【図１９】左右の側面ハイライトのグループの元画像マッチング及び領域の拡大を示す説明図である。（実施例１）
【図２０】巻ばねの高さと姿勢の定義に係る説明図である。（実施例１）
【図２１】変数を示すカメラの鳥瞰図である。（実施例１）
【図２２】巻ばねの姿勢評価に係る説明図である。（実施例１）
【図２３】（Ａ）は、左右の元画像を示す説明図、（Ｂ）は、左右画像でのグルーピングを示す説明図、（Ｃ）は、左右グループの対応を示す説明図である。（実施例１）
【図２４】（Ａ）は、左右画像でのグルーピングを示す拡大説明図、（Ｂ）は、左右グループの対応を示す拡大説明図である。（実施例１）
【図２５】（Ａ）は、左右画像でのグルーピングを示す拡大説明図、（Ｂ）は、左右グループの対応を示す拡大説明図である。（実施例１）
【図２６】（Ａ）は、左右画像でのグルーピングを示す拡大説明図、（Ｂ）は、左右グループの対応を示す拡大説明図である。（実施例１）
【図２７】鉛直方向からのアプローチによる巻ばねのピッキングを示し、（Ａ）は、θ＝０、（Ｂ）は、０＜θ＜９０°、（Ｃ）は、θ＝９０°の説明図である。（実施例１）
【図２８】姿勢に応じたアプローチによる巻ばねのピッキングを示し、（Ａ）は、θ＝９０°、（Ｂ）は、０≦θ＜４５°、（Ｃ）は、４５°≦θ＜９０°の説明図である。（実施例１）
【図２９】ピッキングに係るフローチャートである。（実施例１）
【図３０】巻ばね認識のサブルーチンを示し、側面ハイライト及び端面ハイライトの検出に係るフローチャートである。（実施例１）
【図３１】巻ばね認識のサブルーチンを示し、側面ハイライトの仮グループ化に係るフローチャートである。（実施例１）
【図３２】巻ばね認識のサブルーチンを示し、側面ハイライトのグループ化に係るフローチャートである。（実施例１）
【図３３】側面ハイライトグループ間対応検出のサブルーチンを示し、左右グループの対応付けに係るフローチャートである。（実施例１）
【図３４】側面ハイライトグループ間対応検出のサブルーチンを示し、ハイライト間対応検出に係るフローチャートである。（実施例１）
【図３５】側面ハイライトグループ間対応検出のサブルーチンを示し、画像マッチング検出に係るサブルーチンのフローチャートである。（実施例１）
【発明を実施するための形態】
【００１８】
巻ばね等の外形が複雑で、隙間があり、奥が見える対象物を認識しハンドにより把持して移動することを可能とするため、ばら積みされた巻ばね３・・・の中で巻ばね３を特定しハンド１０１１により把持して移動する対象物移動装置１００１であって、巻ばね３・・・全体に照明光を当てた状態で２台のカメラ１００５，１００７により撮像された各画像を二値化処理して各反射形状のハイライトを画像毎にそれぞれ抽出するハイライト抽出処理部１３と、巻ばね３の形状に対応させるための特徴量を各ハイライトから抽出する特徴量抽出処理部１７と、特徴量によりハイライトを複数１組毎のグループとして画像毎に決定するグループ化処理部１９、２１と、グループの画像間での対応を検出する対応検出処理部２５と、検出により対応したグループで巻ばね３を認識し各カメラ１００５，１００７の位置を基準とした巻ばね３の位置、姿勢をステレオ画像処理により演算する位置・姿勢演算部２７と、演算された巻ばね３の位置、姿勢によりハンド１０１１の動作を制御するロボットコントローラ１００９とを備えたことにより実現した。
【実施例１】
【００１９】
［対象物移動装置］
図１は、対象物移動装置のブロック図である。なお、以下の説明において左をＬ、右をＲと略称する。
【００２０】
対象物移動装置１００１は、対象物特定装置１００３、左右２台のカメラ（Ｌ）１００５、カメラ（Ｒ）１００７、ロボット・コントローラ１００９、ロボット／ハンド１０１１を備えている。
【００２１】
対象物特定装置１００３は、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で前記対象物を特定しハンドにより把持して移動するものである。
【００２２】
対象物として、例えば巻ばねを適用している。巻ばねは、外形が複雑で、隙間があり、奥が見える形状であり、側面形状に空間部が存在して輪郭を分断された同一形状の対象物、すなわち、リング状の端面と空間部が存在して輪郭を分断された側面とを備えた同一形状の対象物の一例となる。この各巻ばねが、トレー内にばら積みされ、不規則に集合し、このばら積みの各巻ばねの中で、対象物特定装置１００３は、各巻ばねを認識し、位置、姿勢を特定する。巻ばねの認識とは、２台のカメラ画像から個々の巻ばねがどこに存在するかを検出することであり、この認識の結果からステレオ画像処理により位置、姿勢を演算し、ピッキング対象の位置、姿勢を特定する。
【００２３】
すなわち、対象物特定装置１００３は、例えばＣＰＵ、ＲＯＭ、ＲＡＭ等を備えたコンピュータで構成され、左右２台のカメラ（Ｌ）１００５、カメラ（Ｒ）１００７で撮像した画像を入力し、対象物の認識を行い、位置、姿勢を演算してピッキング対象を特定する。
【００２４】
ロボット・コントローラ１００９は、制御部を構成し、前記のように演算された対象物の位置、姿勢によりハンド、すなわち、ロボット／ハンド１０１１の動作を制御し、後述のようにグリッパにより巻ばねを把持し移動させるものである。
【００２５】
したがって、トレー内にばら積みされた巻ばねを左右２台のカメラ（Ｌ）１００５、カメラ（Ｒ）１００７で撮像し、その左右各画像から対象物特定装置１００３がトレー内の巻ばねを認識し、その結果位置、姿勢を推定し、ロボット・コントローラ１００９によりロボット／ハンド１０１１が制御され、グリッパにより巻ばねが把持され順次所定箇所へ移動させることができる。
【００２６】
図２は、対象物特定装置のブロック図である。
【００２７】
図２のように、対象物特定装置１００３は、各巻ばね３が、トレー５内にばら積みされ、不規則に集合している中で、各巻ばね３を特定する。この巻ばね３の特定とは、上記のようにカメラ画像から個々の巻ばね３がどこに存在しどのような姿勢に有るかを検出することである。
【００２８】
この対象物特定装置１００３は、ばら積みされた巻ばね３・・・の認識を行う対象物認識部１を備えている。この巻ばね３の認識とは、カメラ画像から個々の巻ばね３がどこに存在するかを検出することである。
【００２９】
トレー５内の巻ばね３・・・に、照明具として、例えばＬＥＤスポットライト７により照明光が当てられ、この集合した対象物全体であるばら積みの巻ばね３・・・の全体に照明光を当てた状態で２台のカメラ１００５、１００７により撮像され、画像データが対象物認識部１へ入力され、データ記憶部１１に記憶保持される。なお、図示の便宜上、２台のカメラ１００５、１００７を一つのブロックとして示している。
【００３０】
対象物認識部１は、左右のカメラ１００５、１００７毎に処理を行い、左右画像でのグループ化処理及び端面ハイライト検出を行うものである。ここで、認識方法の概要を述べておく。巻ばねは、その形状に、
・平面部が少ない
・同じような形状が連続している
・隙間があり奥が見えてしまう
などの特徴があるため、一般に画像処理で用いられる形状特徴に乏しい。したがって、巻ばねが三次元的にばら積みされている場合は、汎用的な画像処理手法による認識は困難であった。
【００３１】
これに対し、本発明実施例の手法では、照明によって巻ばねに生じるハイライト（図３）に着目して認識する。通常、ハイライトは元の物体を隠してしまうものとして画像処理では敬遠されることが多い。しかし、巻ばねでは規則的にハイライトができることを利用し、認識処理を単純化することに成功した。
【００３２】
認識処理ではまず、カメラ画像を二値化することによってハイライト部分を抽出する。巻ばねが寝ている場合には側面ハイライトが抽出され、立っている場合には端面ハイライトが主に抽出される。面積（ピクセル数）によって側面ハイライトと端面ハイライトとを分ける。面積が小さいもの、あるいは中途半端なものは、認識に利用するには不適切なハイライト（ノイズや複数のハイライトが結合してしまったものなど）として無視する。続いて、側面ハイライトについては、同一巻ばねに属するものをグルーピングする。グルーピングができれば、その巻ばねを認識できたと言ってよい。
【００３３】
同一の巻ばねに属するハイライトは、
・距離が近接している
・形状が類似している
・一定間隔で一直線上に並んでいる
という性質があるので、これを利用してグルーピングを行う。距離の近接はハイライト重心間の距離をチェックし、形状の類似はハイライト面積（ピクセル数）・ハイライトに対する画像楕円の長軸方向・湾曲情報を表す三次元画像モーメントを用いる。一定間隔で一直線上に並んでいることは、ハイライト重心を見てチェックする。一定数以上のハイライトを同一のグループにまとめることができれば、一つの巻ばねを認識したとみなす。
【００３４】
寝ているばねでありながら少数の側面ハイライトしか検出できないものは、他の巻ばねの下に一部が隠されているなどの状況であり、ピッキングには適さないと予想される。したがって、この時点で認識できなくてもかまわない（ピッキング作業が進むにつれて認識される）。
【００３５】
端面ハイライトについては、それが一つ検出できれば、巻ばねを一つ認識できたと言える。端面はほぼ円形をしており、画像上は巻ばねの傾きに応じた楕円形になるとみなせる。そこで、楕円当てはめに成功したものを端面として検出する。本手法を実装し認識を行った結果の例は、後述する。
【００３６】
そこで、対象物認識部１は、データ記憶部１１の他、ハイライト抽出処理部１３と、ハイライト判別処理部１５と、特徴量抽出処理部１７と、仮グループ化処理部１９と、グループ化処理部２１と、端面ハイライト検出部２２と、登録部２３とを備えている。なお、対象物が巻ばね３以外であり、球状等で有ればハイライト判別処理部１５は、省略することもできる。
【００３７】
ハイライト抽出処理部１３は、画像を二値化処理して各反射形状のハイライトを抽出するものである。
【００３８】
すなわち、カメラ１００５、１００７による画像データをデータ記憶部１１から読み出し、二値化処理してハイライトを抽出する。
【００３９】
ハイライト判別処理部１５は、ハイライトを抽出した二値化画像データに面積の閾値処理を施し巻ばね３の側面に対応する側面のハイライト（以下、「側面ハイライト」と称する。）と巻ばね３の端面に対応する端面のハイライト（以下、「端面ハイライト」と称する。）とを判別するものである。
【００４０】
すなわち、データ記憶部１１から二値化画像データを読み出し、ラべリングにより得られた領域から面積の閾値により側面ハイライトと端面ハイライトとを抽出する。抽出した側面ハイライト及び端面ハイライトは、データ記憶部１１に記憶される。
【００４１】
特徴量抽出処理部１７は、巻ばね３の側面形状（対象物の形状）に対応させるための複数の特徴量を各側面ハイライト（ハイライト）から抽出するものである。
【００４２】
すなわち、データ記憶部１１から側面ハイライトを順に読み出し、各側面ハイライトから、特徴量としてハイライトの形状、ハイライトの直線的な並び、間隔、及び数を抽出する。側面ハイライトの形状は、例えば、側面ハイライトの面積と側面ハイライトの長軸方向と側面ハイライトの湾曲情報としている。
【００４３】
湾曲情報は、後述のように楕円の当てはめによる湾曲の大きさや向きとし、さらに精度を高めるために、後述のように画像モーメントを導入することもできる。画像モーメントでは、後述のように側面ハイライトの湾曲の大きさを３次モーメントとし、向きを３次モーメントの正負とする。
【００４４】
仮グループ化処理部１９は、複数の特徴量から選択した特定の特徴量により側面ハイライトを複数１組毎の仮グループとする処理を行う。
【００４５】
すなわち、データ記憶部１１から側面ハイライトを順に読み出し、特徴量として特定した形状の近さにより側面ハイライトを複数１組毎の仮グループとする処理を行う。この仮グループ化処理部１９は、形状を側面ハイライトの面積と側面ハイライトの長軸方向と側面ハイライトの湾曲情報とする処理を行う。
【００４６】
この場合、仮グループ化処理部１９は、側面ハイライトの一つを選択すると共に近傍の側面ハイライトをリストアップしてから上記の仮グループとする処理を行う。
【００４７】
グループ化処理部２１は、仮グループとされた側面ハイライトを複数の特徴量から選択した特定の他の特徴量によりグループとして決定する処理を行う。
【００４８】
すなわち、データ記憶部１１から仮グループを順に読み出し、特徴量として選択した他の特徴量として側面ハイライトの直線的な並び、間隔、及び数により仮グループをグループとして決定する処理を行う。
【００４９】
この場合、グループ化処理部２１は、仮グループを順次選択すると共にこの選択された仮グループ毎にグループとして決定する処理を行う。
【００５０】
端面ハイライト検出部２２は、判別された端面のハイライトから最終的な端面のハイライトを決定するものである。本実施例の端面ハイライト検出部２２は、ノイズとして除外された面積の大きなハイライトに収縮処理をかけ且つ端面のハイライトとみなす閾値範囲に入っていることにより大きなハイライトを切り離してそれぞれ端面のハイライトとする。この端面のハイライトから後述のように最終的な端面ハイライトが決定される。具体的には後述する。
【００５１】
決定された側面ハイライトのグループ及び端面ハイライトは、登録部２３に登録される。
【００５２】
前記対象物特定装置１００３は、前記対象物認識部１の他に、対応検出処理部２５及び位置・姿勢演算部２７を備えている。
【００５３】
対応検出処理部２５は、グループの左右の画像間での対応を検出し、位置・姿勢演算部２７は、検出により対応したグループで巻ばね３・・・を認識し、各カメラ１００５、１００７の位置を基準とした巻ばね３・・・の位置、姿勢をステレオ画像処理により演算する。
【００５４】
本実施例の対応検出処理部２５は、端面ハイライトの左右画像間での対応も検出し、位置・姿勢演算部２７は、検出により対応したグループ及び端面ハイライトにより巻ばね３・・・を認識し、各カメラ１００５、１００７の位置を基準とした巻ばね３・・・の位置、姿勢をステレオ画像処理により演算する。
【００５５】
この場合、対応検出処理部２５は、グループの対応をハイライトの面積、重心位置、並びの向き、グループ重心間距離、数、重心の縦方向位置の何れかの組み合わせにより後述のように検出する。
【００５６】
対応検出処理部２５は、側面ハイライトのグループの並びの向きが水平又は水平と看做されるときカメラ１００５、１００７により撮像された各画像の対比によりグループの対応を検出する。すなわち、カメラ１００５、１００７により撮像された各元画像に戻って画像マッチングにより対応を検出する。元画像を用いることで、ハイライト以外の部分や周囲のばねの情報なども利用して適切な対応関係を得ることが可能となる。
【００５７】
したがって、対応検出処理部２５は、水平又は水平と看做されるグループを含むカメラ１００５、１００７により撮像された元画像内の探索領域を拡大して周辺情報を含めるように設定する。
【００５８】
こうして、ばら積みされた巻ばね３・・・を夫々認識し、位置、姿勢をステレオ画像処理により検出することが可能となり、ばら積みされた巻ばね３・・・のロボットによるピッキングの自動化に供することができる。
［巻ばねの認識］
（ハイライトの抽出と判別）
図３（Ａ）は、カメラの画像データ、（Ｂ）は、（Ａ）の二値化画像データ、（Ｃ）は、側面ハイライトの画像データ、（Ｄ）は、端面ハイライトの画像データである。
【００５９】
ハイライトの抽出と判別は、ＬＥＤスポットライト７の照明光が巻ばね３に当たることでできるハイライトに着目する。カメラ１００５、１００７で捉えた図３（Ａ）の画像データに二値化処理を施すと図３（Ｂ）のようにハイライトが抽出できる。図３（Ｂ）の二値化画像データに対し、ハイライトの面積で閾値処理を施し、ノイズを除去し、図３（Ｃ）の側面ハイライトと図３（Ｄ）の端面ハイライトとを判別する。
【００６０】
（楕円当てはめによるグルーピング）
本発明実施例のハイライトのグルーピングは、後述の画像モーメントによるものであり、制御フローチャートも画像モーメントによる処理である。しかし、楕円当てはめによるグルーピングを排除するものではなく、画像モーメントによるグルーピングの前に若干精度は落ちるものの、グループ化できる可能性のあるものとしてその手順を先に述べておく。
【００６１】
図４は、側面ハイライトの面積等を示す説明図、図５は、側面ハイライトの湾曲を示す説明図である。
【００６２】
側面ハイライトは、端面ハイライトと異なり、一つのハイライトから巻ばね３の情報を得ることは困難である。そこで、同一の巻ばね３について側面ハイライトのグルーピングを行う。
【００６３】
この場合、グルーピングに必要な各側面ハイライトのパラメータ（特徴量）を求めることになる。以下で計算方法を説明する。
【００６４】
・ハイライトの面積、長軸方向、ハイライト間距離（図４）
ハイライトの面積ｈarea[pixel]、長軸方向ｈlaxis[deg]は画像のモーメントから計算することができる。また、画像モーメントからハイライトの重心座標を計算することができる。ここで、ハイライトの重心座標間の距離をハイライト間距離ｄr[pixel]と定義する。
【００６５】
・ハイライトの湾曲（図５）
ハイライトの湾曲を求めるために、ハイライトのスケルトンを抽出する。抽出したスケルトンを構成する点群に楕円を当てはめ、当てはめた楕円の中心とスケルトン間で最短距離となるスケルトン上の点を求める。当てはめた楕円中心と求めたスケルトン上の点を結ぶ直線の長さを、湾曲の大きさｃmag[pixel]とし、向きをハイライトの湾曲の向きｃdir[deg]とする。
【００６６】
次に、以下のパラメータについて閾値を設定し、側面ハイライトのグルーピングを行う。
【００６７】
・ハイライトの面積：ｈarea [pixel]
・ハイライトの長軸方向：ｈlaxis [deg](0≦ｈlaxis<180°)
・ハイライトの湾曲の大きさ：ｃmag [pixel]
・ハイライトの湾曲の向き：ｃdir [deg](0≦ｃdir <360°)
・ハイライト間距離：ｄr [pixel]
ハイライトのグルーピングの手順は、以下の通りである。
【００６８】
（１）検出したすべての側面ハイライトからハイライトを一つ選ぶ(基準ハイライト)
（ａ）基準ハイライトの湾曲が大きい場合
i．基準ハイライト以外のハイライトで湾曲が大きいハイライトを選ぶ。
ii．ハイライトの面積ｈarea、長軸方向ｈlaxis、ハイライト間距離ｄr、湾曲の向きｃdirを比較し、条件を満たす場合に基準ハイライトのグループに含める。
iii．すべてのハイライトに対して（ａ）のi、iiを行う。
（ｂ）基準ハイライトの湾曲が小さい場合
i．基準ハイライト以外のハイライトで湾曲が小さいハイライトを選ぶ。
ii．ハイライトの面積ｈarea、長軸方向ｈlaxis、ハイライト間距離ｄrを比較し、条件を満たす場合に基準ハイライトのグループに含める。
iii．すべてのハイライトに対して（ｂ）のi、iiを行う。
（２）基準ハイライトを変えて（１）を行う。
（３）すべてのハイライトに対して（１）を行ったらグルーピング終了。
【００６９】
湾曲の大きさによるグルーピング手順の違いは、パラメータに湾曲の向きｃdirが含まれるか否かのみである。これは、湾曲が小さいハイライトは、湾曲の向きが同一グループでも全く異なり、グルーピングに悪影響を与えるためである。また、湾曲の大きさｃmagをグルーピングのパラメータに直接加えず、大きいか小さいかの二通りにしか分けていない。これは、湾曲の大きさについてはノイズの影響が大きく、グルーピングのパラメータに加えるとグルーピングに失敗しやすくなってしまうためである。
【００７０】
ここまでの手順により、仮グループとする。
【００７１】
しかし、上記の手順だけではグループの重複や巻ばねが並列に並んでいる場合にグルーピングの失敗が起こる。
【００７２】
そこで、同一グループではハイライトが直線に並ぶことや隣接するハイライト間距離が等間隔であること、同一巻ばねを表すグループが重複した場合グループに含まれるハイライト数が多いものを採用することの条件を加えてグルーピングの結果を修正し、最終的なグルーピングとする。
【００７３】
（画像モーメントによる湾曲情報及びグルーピング）
図６は、座標の回転を示す説明図、図７は、側面ハイライトの湾曲方向を示す説明図、図８は、側面ハイライトの湾曲方向を示す説明図である。
【００７４】
図４、図５の上記では、各側面ハイライトのスケルトンに楕円を当てはめ、その楕円より湾曲の大きさや向きを求めた。しかし、湾曲の大きさが小さいときは楕円当てはめによる湾曲情報の精度に限界がある。
【００７５】
これに対し、画像モーメントを用いて湾曲情報を得ることで精度が向上する。
【００７６】
まず、湾曲の大きさを3次モーメントμ´２１とする。図６のようにｘｙ座標を反時計回りにθ回転させた座標をx´y´座標と定義すると、μ´２１の値は式(１)で求められる。ただし、θは式(２)で表される。
【００７７】
【数１】
2014109466.tif 000003
【００７８】
ただし，μは元の座標系における画像の(i+j)次モーメントである．
【００７９】
【数２】
2014109466.tif 000004
【００８０】
このままでは画像の拡大・縮小の影響を受けてしまうため、式（３）のように無次元化する。
【００８１】
【数３】
2014109466.tif 000005
【００８２】
次に、巻ばね３の側面ハイライトの形は通常湾曲しているので、その方向を判別する。ハイライトの長手方向は、画像楕円の長軸方向として判別できるので、それに直交する短軸方向のどちら側に湾曲しているかが問題となる。θだけ座標軸を回転すると、長軸方向がx´軸、短軸方向がy´軸となる。
【００８３】
側面ハイライトの典型的な形状として三日月形を想定すると、x´軸方向にはほぼ対称であり、y´軸方向のどちらかに湾曲することとなる。
【００８４】
・三日月形の両端付近では、x´は正負両方の値をとり絶対値は大きい。Y´は正負いずれかの値をとり、この符号が湾曲の向きと対応する。
【００８５】
・三日月形の中心付近では、x´は正負両方の値をとり絶対値は小さい。Y´は正負いずれかの値をとり、両端付近と異符号となる。
【００８６】
ここで、x´２y´の積分に対応するμ´２１を計算すると、x´２の重みつきでy´を積分するわけであるから、両端付近の符号が大きな重みがかかり、結果的に湾曲の向きが分かる。すなわち、
・μ´２１<0のとき：y´軸負方向に両端が突き出た湾曲（図７）
・μ´２１>0のとき：y´軸正方向に両端が突き出た湾曲（図８）
となる。
【００８７】
以上より、ハイライトの湾曲の大きさに関係なく、ハイライトの湾曲の向きを、グルーピングのパラメータに用いる。すなわち、ハイライトのグルーピングアルゴリズムは以下のようになる。
【００８８】
（１）検出したすべての側面ハイライトからハイライトを一つ選ぶ(基準ハイライト)
（ａ）基準ハイライト以外のハイライトを選ぶ。
（ｂ）ハイライトの面積ｈarea、長軸方向ｈlaxis、ハイライト間距離ｄr、湾曲の大きさ、湾曲の向きを比較し、条件を満たす場合に基準ハイライトのグループに含める。
（ｃ）すべてのハイライトに対して(a),(b)を行う。
（２）基準ハイライトを変えて（１）を行う。
（３）すべてのハイライトに対して（１）を行ったらグルーピング終了。
【００８９】
画像モーメントは画像全体の情報の総和として求まるので、ロバストなグルーピングができる。
【００９０】
（側面ハイライト情報からの端面の検出）
図９は、側面ハイライトの情報からの端面の検出を示す説明図である。
【００９１】
巻ばねが傾いている場合は側面と端面が見えるため、側面の情報からさらに端面検出を行うこともできる。側面ハイライトには水平では湾曲せず、傾きが垂直に近づくほど湾曲が大きくなる特徴がある。このことから、大きく湾曲しているハイライトを含むグループの巻ばねは端面が見えている可能性がある。グループの向きｇdir、湾曲の方向ｃdirにより端面の位置を推定し、ROI(RegionofInterest)を設定し、RANSAC(RANdomSAmpleConsensus)[Fischler1981]による端面を検出し決定する。
【００９２】
端面の形状を楕円と仮定すると巻ばねが傾いている場合は端面の形状が歪む。そのため、図９のように、巻ばねの向きから端面の長軸・短軸方向がある程度推定できる。
【００９３】
すなわち、RANSACで得られる楕円の短軸の向きの範囲をｇdirに対して、±Δφという制約を加えることができる。以下に、RANSACによる端面検出アルゴリズムを示す。
（１）二値化しCanny法でエッジを検出する。
（２）エッジからランダムに5点選択し、5点を通る楕円の式を求める。
（３）楕円の短軸の向きが[ｇdir −Δφ, ｇdir +Δφ]の範囲に入っているか確認する。
（４）（３）を満たせば、選んだ５点以外のすべての点について求めた楕円との距離を求め、設定したしきい値より距離が小さい点の個数を数え、その合計を楕円の得点とする。
（５）（２）から（４）を数回繰り返し、複数の楕円を検出する。
（６）得られた複数の楕円から、最も得点の高い楕円を端面形状として採用する。
【００９４】
（端面ハイライトによる認識）
端面ハイライト近傍に注目してROIを設定し、端面検出を行う。巻ばね３が直立状態の場合、端面の形状は歪まないため、検出楕円に制約は加えない。
【００９５】
設定したROIにおいて輪郭抽出を行い、楕円あてはめを行うことで端面を検出する。画像にノイズが多い場合には，上記と同様のRANSACを用いて検出をすることも可能である。
【００９６】
上記では、エッジから5点の座標を選択し楕円を導出した。巻ばねのグループの向きと検出楕円の短軸の向きは等しいはずであるが、5点の座標を用いた場合、向きが正しくない楕円も導出してしまう。このため、無駄にRANSACによる計算を行なうことになる。
【００９７】
そこで、楕円の向きは側面ハイライトのグループの向きからわかっているため、４点の座標と角度から楕円を導出することにしてもよい。すなわち、RANSACによる端面検出アルゴリズムは以下のようになる。
（１）二値化しCanny法でエッジを検出する。
（２）エッジからランダムに４点選択し、４点を通り、楕円の向きがグループの向きとなる楕円の式を求める。
（３）選んだ４点以外のすべての点について求めた楕円との距離を求め、設定した閾値より距離が小さい点の個数を数え、その合計を楕円の得点とする。
（４）（２）から（３）を数回繰り返し、複数の楕円を検出する。
（５）得られた複数の楕円から、最も得点の高い楕円を端面形状として採用する。
【００９８】
これにより同等の計算時間でRANSACによる楕円検出数を増やすことができるので、楕円検出の成功率が向上する。
【００９９】
（直立した巻ばねが並んだときの認識）
図１０は、端面ハイライトの結合を示す画像データ、図１１は、最終的な端面ハイライトの検出を示す画像データである。
【０１００】
図１０のように、直立した巻ばねが並んでいる場合は、端面ハイライトの面積が大きくなり、上記［ハイライトの抽出と判別］での説明におけるハイライト抽出でノイズとみなされてしまう。
【０１０１】
そこでハイライト面積が大きい時は収縮処理によりハイライトの切り離しを行う。以下に、アルゴリズムを示す。
（１）ハイライトに収縮処理をかける。
（２）ハイライト面積が端面ハイライトとみなす範囲に入っているか確認する。
（３）（１）（２）を繰り返す。
（４）（２）を満たせば、ハイライトが切り離されたとみなす。
（５）切り離されたハイライトを別々の端面ハイライトとする。
【０１０２】
図１０の端面ハイライトの結合においては、ハイライトがつながり、ハイライト面積が大きくなるため、ノイズとされてしまう。
【０１０３】
これに対し、上記アルゴリズムで切り離しを行った場合、図１１のように、ハイライト面積が大きい場合でも別々の巻ばねであると認識することができた。
【０１０４】
（側面ハイライトのグループ化及び端面ハイライトの検出）
図１２、図１３は、側面ハイライトのグループ化及び端面ハイライトの検出を示す画像データである。図１２は、楕円当てはめによる側面ハイライトの認識及びハイライトの切り離しを行なわない端面ハイライトの認識アルゴリズムによる画像データであり、図１３は、画像モーメントによる湾曲情報を用いた側面ハイライトの認識及びハイライトの切り離しを行なった端面ハイライトの認識アルゴリズムによる画像データである。
【０１０５】
図１２、図１３の何れの場合も、画像中の四角で囲まれた部分の認識ができている。特に図１３の場合は、図１２の場合に比較してグルーピング可能な数が増加している。グルーピングの成功率と端面検出の成功率は若干向上している。
［巻ばねの位置、姿勢推定］
（位置・姿勢検出の概要）
特定の巻ばねを認識できた後に、それをピッキングするためには、そのばねの位置と姿勢とを知る必要がある。単眼カメラを用いた場合、奥行き方向の情報を知ることは容易でない。このため、ここではステレオ画像処理を用いて三次元的な位置・姿勢推定を行う。一般的なステレオ画像処理では、２台のカメラ画像全体に対して対応点検出処理を行って三次元情報を獲得するのが普通だが、誤対応や計算負荷などが問題となる。特に巻ばねの場合は形状特徴が明確でないため難しい。
【０１０６】
そこで、本発明実施例では、２台のカメラの画像それぞれに対し、上述の巻ばね認識方法を適用し、そののちに、認識された巻ばねに対してのみのステレオ画像処理を行う。
【０１０７】
これによって簡便な処理で正確な位置・姿勢情報の取得を実現できた。本手法では視野の重なりを大きくとり、また左右の対応処理を容易にするため、２台のカメラを平行かつ近接して配置する。そして、右カメラと左カメラのそれぞれで上述の巻ばね認識方法を実行し、巻ばねに対応する側面ハイライトのグループおよび端面ハイライト（以降では便宜上これも「グループ」と呼ぶ場合がある。）を検出する。同一の巻ばねに対応するグループは、右カメラの画像と左カメラの画像でだいたい同じ位置にある。より詳しく言えば、上下方向には同じ位置にあり、左右方向にだけ（奥行きに応じて）少し異なる位置にあるはずである。
【０１０８】
そこで、一方のカメラの画像で認識されたグループに対して、もう一方のカメラの画像の限定された範囲内を探索すれば、対応するグループを見つけることができる。
【０１０９】
そして、左右の視差から奥行き情報を得ることができる。探索では、グループの形がほぼ同じであること、グループの位置関係が妥当であることを条件に、対応するグループを見つけている。形については、ハイライトの平均面積（ピクセル数）、ハイライト数、ハイライトの並びの向きを条件としている。また、位置関係については、グループ重心位置が左右方向には一定距離内であること、上下方向はほぼ同じであることを条件としている。
【０１１０】
但し、上述の方法では、左右でハイライトの認識結果が異なる場合（例えば、同一の巻ばねに対して、左カメラでは4個のハイライトが認識されたが、右カメラでは3個しか認識されなかった場合）に対応できない。
【０１１１】
そこで，グループ単位での対応がうまくとれなかった場合は、グループ内の個々のハイライト単位で左右の対応を調べ、対応を確認できたハイライトだけのグループについて、改めて対応するかどうかを調べる。
【０１１２】
個々のハイライトの対応づけは、重心位置が左右方向には一定距離内であること、上下方向はほぼ同じであることを調べて行う。
【０１１３】
なお，巻ばねが完全に左右方向を向いている場合は、ハイライトの対応の候補が複数考えられ、ハイライトだけからでは一つに絞り込むことができない。
【０１１４】
そこで、この場合は一方のカメラ側の元画像で、ハイライトのグループより一回り大きい領域を考える。そして、もう一方のカメラ側の元画像とのマッチングを行い、これを使って対応の位置関係を決定する。元画像を用いることで、ハイライトだけではない周囲の情報をもとに左右の対応を絞り込むことができる。
【０１１５】
以上の手法を用いて左右のカメラ画像から対応する巻ばねを求めた結果の例は後述する。
【０１１６】
左右のカメラ画像間で、ハイライトのグループの対応付けができれば、グループ重心の視差を用いて、ハイライトのグループ重心の奥行きを計算できる。これによって巻ばねの位置を求めることができる。巻ばねの姿勢（奥行き方向の傾き）については、側面ハイライトのグループに関し、ハイライト間の間隔と巻ばねのピッチとの関係から求めることができる。端面ハイライトについては、当てはめた楕円の長径と短径の比から求めることができる。
【０１１７】
なお、左右のカメラ画像において、ハイライトの出方は厳密には同じではない。これは、照明・カメラ・巻ばねの相対位置関係が異なるためである。このため、現在は視差を補正する実験式を用いることで、奥行き算出の精度を高めている。巻ばねの形状情報と照明の光源の情報から、補正式を理論的に算出することも可能である。
【０１１８】
以下、具体的に説明する。
【０１１９】
（奥行きの推定）
ステレオビジョンによる奥行きの理論式を導出する。
【０１２０】
図１４は、ステレオ画像処理装置の模式図である。記号は以下のように定義する。
【０１２１】
・Ol,、Or：投影中心
・xl、xr：画像平面のx方向原点
・cxleft、cxright：主点(光軸が画像平面と交差する点)
・P：実世界の点
・xleft、xright：Pの画像平面上の水平座標
・f：焦点距離
・T：基線長
・dp：視差
・Z：奥行き
・Ps：ピクセルサイズ
ステレオ装置は歪み補正され、行が揃い、正確に計測されていると仮定すると、奥行きZは式(４)で求められる。但し、dp=xleft−xrightである。
【０１２２】
【数４】
2014109466.tif 000006
【０１２３】
また、奥行きの分解能ΔZは視差の誤差Δdpを用いて式(５)で求められる。
【０１２４】
【数５】
2014109466.tif 000007
【０１２５】
（視差の算出）
＜視差の算出の位置＞
ステレオビジョンにより奥行きを算出するためには、視差を求める必要がある。本発明実施例では、視差の算出位置を巻ばねのグループのハイライト重心、あるいは楕円当てはめで得られる楕円中心とする。そのため、巻ばねの認識時に側面ハイライト情報からのRANSACによる端面検出を行わなくてもよい。側面ハイライトが見えている巻ばねはハイライトのグルーピングのみ行い、端面ハイライトのみが見えている巻ばねは端面ハイライトに楕円当てはめを行う。
【０１２６】
また、視差を求めるためには左右の画像の対応付けを行う必要がある。一般的なステレオビジョンでは画像全体に対して対応付けを行うが、巻ばねには一般に画像処理で用いられる明確な特徴がない。そこで本実施例では、巻ばねのハイライトのグループ毎に対応付けを行う。対応付けを行うにあたって、左右のカメラの視野が重なっている領域は広いほうが良い。
【０１２７】
また、左右のカメラで同一の巻ばねが同じように見えている必要がある。そこで、2台のカメラは基線長が短く、左右のカメラの光軸が平行であり、それぞれの光軸が基準面と垂直になるように設置されているものとする。
【０１２８】
＜巻ばねのグループのパラメータ＞
巻ばねのグループの対応付けに用いるパラメータの計算方法について説明する。
【０１２９】
・グループ重心、平均ハイライト面積、ハイライト数、グループの向き
図１５（Ａ）は、各側面ハイライトの重心及びグループの重心を示し、（Ｂ）は、グループの並びの向きを示す説明図である。
【０１３０】
図１５において、各ハイライトの重心座標、面積は画像モーメントにより求められる。よって、グループ重心はグループに含まれるハイライトの重心座標の平均値、平均ハイライト面積は、グループに含まれるハイライトの面積の平均値で計算できる。グループに含まれるハイライト数は、グルーピング時に求まる。グループの向きは各ハイライトの重心に直線をフィッティングすることで求める。
【０１３１】
・グループ重心間距離（図１６）
図１６は、グループ重心間距離に係り、グループ重心のｘ座標を表示した側面ハイライトのグループを左右で示す説明図である。
【０１３２】
図１６において、左画像のグループ重心x座標をxlg、対応した右画像のグループ重心x座標をxrgとする。左右の画像が平行化されていれば、左画像のグループ重心x座標の右画像での座標値xtlgは式（６）で求められる。Zが既知であれば、xtlg=xrgとなる。しかし、Zは分からないため、Zが取りうる値の範囲の中央値を用いると、xtlgとxrgにはずれが生じる。このずれをグループ重心間距離gdisと定義し、式（７）で表す。
【０１３３】
【数６】
2014109466.tif 000008
【０１３４】
【数７】
2014109466.tif 000009
【０１３５】
＜巻ばねのグループの対応付け方法＞
巻ばねのグループの対応付けアルゴリズムを以下に示す。
（１）左右の画像の平行化を行い、y座標を揃える。
（２）左右の画像それぞれでグルーピングを行う。
（３）左画像で認識した巻ばねのグループから1つ選ぶ（左グループ）
（ａ）左グループのグループ重心座標を右画像での座標に変換する。
（ｂ）右画像で認識した巻ばねのグループから1つ選ぶ(右グループ)
i.左グループと右グループのグループ重心間距離gdisを計算する。
（ｃ）右画像で認識した巻ばねのグループ全てに対して（ｂ）を行う。
（ｄ）左グループと全ての右グループに対し、次の条件を確認する。
条件1-1グループの平均ハイライト面積がほぼ等しい
条件1-2グループ重心間距離gdis<閾値
条件1-3グループの向きがほぼ等しい
（ｅ）（ｄ）の条件を全て満たした右グループを対応の候補とする（候補右グループ）
（ｆ）候補右グループがある場合
i.左グループと候補右グループに対し、次の条件を確認する。
条件2-1グループに含まれるハイライト数が同じ
条件2-2グループ重心y座標がほぼ等しい
ii.i.の条件を全て満たした左グループと候補右グループは対応している。
（ｇ）候補右グループがない場合、対応なしとする。
（４）左画像で認識した巻ばねのグループ全てに対して（３）を行う。
【０１３６】
端面ハイライトのみが見えている巻ばねについては、条件1-2、条件2-2のみで対応付けを行う。
【０１３７】
＜グループ内のハイライト毎の対応付け方法＞
巻ばねのグループの対応付け方法で述べたアルゴリズムは、左右の認識が同一の場合のみ対応を取ることが可能である。すなわち、左右の認識が異なる場合は、前記条件2-1、2-2を満たさないため、対応を取ることができない。
【０１３８】
そこで、条件２を満たさない場合は図１７のように、ハイライト毎の対応を取る。図１７は、側面ハイライトの対応付けに係り、グループ重心を表示した側面ハイライトのグループを左右で示す説明図である。
【０１３９】
以下にハイライト毎の対応付けアルゴリズムを示す。
（１）左グループに含まれるハイライトから1つ選ぶ（左ハイライト）。
（ａ）左ハイライトのハイライト重心座標を右画像での座標に変換する。
（ｂ）候補右グループに含まれるハイライトから1つ選ぶ（右ハイライト）。
i.左ハイライトと右ハイライトのハイライト重心間距離を計算する。
（ｃ）候補右グループに含まれるハイライト全てに対して（ｂ）を行う。
（ｄ）左ハイライトと全ての右ハイライトに対し、次の条件を確認する。
条件3-1ハイライト重心間距離<閾値
条件3-2ハイライト重心y座標がほぼ等しい
（ｅ）（ｄ）の条件を全て満たした左ハイライトと右ハイライトは対応している。
（２）左グループに含まれるハイライト全てに対して（１）を行う。
（３）対応付けされたハイライトのみを左右のグループに含める。
【０１４０】
ハイライト重心間距離は、巻ばねのグループのパラメータで述べたグループ重心間距離と同様に定義する。すなわち、左画像のハイライト重心x座標の右画像での座標値と対応した右画像のハイライト重心x座標のずれである。
【０１４１】
なお、図１８は、左右の側面ハイライトのグループが水平状態であることを示す説明図である。この図１８のように、巻ばねが完全に左右方向を向いている場合は、ハイライトの対応の候補が複数考えられ、ハイライトだけからでは一つに絞り込むことができない。
【０１４２】
そこで、この場合は一方のカメラ側の元画像で、図１９のように処理する。図１９は、左右の側面ハイライトのグループの元画像マッチング及び領域の拡大を示す説明図である。図１９のように、左側の元画像に対し、右側の元画像では、ハイライトのグループより一回り大きい領域を考え、領域を拡大した。
【０１４３】
そして、一方の元画像（右側の元画像）と他方のカメラの元画像（左側の元画像）とのマッチングを行い、これを使って対応の位置関係を決定する。元画像を用いることで、ハイライトだけではない周囲の情報をもとに左右の対応を絞り込むことができる。
【０１４４】
（巻ばね位置姿勢推定）
＜高さと姿勢の定義＞
図２０は、巻ばねの高さと姿勢の定義に係る説明図である。
【０１４５】
図２０において、巻ばねの高さHspr[mm]と，姿勢(θ[deg],φ[deg])を次のように定義する。
【０１４６】
・Hspr[mm]：グループ重心と基準面の距離
・θ[deg](0≦θ≦90°)：中心線と巻ばねの中心線を基準面に投影した直線のなす角
・φ[deg](−90°≦θ≦90°)：巻ばねの中心線を基準面に投影した直線とx軸のなす角
＜位置の推定＞
・垂直方向の位置推定
カメラと基準面までの距離をL0と置く。カメラから被写体までの距離は式（４）で導出したZであるので、基準面と被写体の距離L´は次式で表される。
【０１４７】
【数８】
2014109466.tif 000010
【０１４８】
【数９】
2014109466.tif 000011
【０１４９】
これが、垂直方向の位置に関する理論式である。
【０１５０】
・水平方向の位置推定
図２１は、変数を示すカメラの鳥瞰図である。
【０１５１】
図２１に示すように、定義する変数は、次の通りである。カメラと被写体までの距離をL、画角の幅と高さをそれぞれ(W,H)、レンズの焦点距離をf、CCDサイズを(W´,V´)、画像の解像度をw×hと置くと、実距離とピクセル値の換算式は式（１０）で表すことができ、実際の長さDrealと画像内のピクセル値Dpixelの関係は式（１１）で表される。ここで、DrealはカメラからL離れた光軸に垂直な平面上に存在する必要がある。
【０１５２】
【数１０】
2014109466.tif 000012
【０１５３】
【数１１】
2014109466.tif 000013
【０１５４】
画像上の点をAp=(xp,yp)とする。ワールド座標Σwの原点を図２１のようにカメラの光軸と基準面の交点としているので、それに合わせて画像座標系Σpの原点を画像の中心へと移動した座標系Σ´pを考える．この座標系でのApであるA´pは次式で表される．
【０１５５】
【数１２】
2014109466.tif 000014
【０１５６】
撮像面（CCDセンサ）に投影されるA´´pを求めると次式となる。
【０１５７】
【数１３】
2014109466.tif 000015
【０１５８】
図２１に示すように、CCDセンサが作る高さfの四角錐と、カメラからL離れた平面が作る高さLの四角錐には相似関係があるため、次式が得られる。  
【０１５９】
【数１４】
2014109466.tif 000016
【０１６０】
これが被写体の水平方向の位置（ｘw，yw座標）の理論式である。
【０１６１】
＜姿勢の推定＞
図２２は、巻ばねの姿勢評価に係る説明図である。
【０１６２】
巻ばねの傾きはハイライト間距離を用いることで推定する。巻ばねのピッチをpとし、グループのハイライト数をNhと置くと、画像に写るグループの長さDplaneの実際の距離drealが次式で得られる。
【０１６３】
【数１５】
2014109466.tif 000017
【０１６４】
Dplaneとグループの長さの実距離dplaneの関係は、カメラから被写体までの距離Z、焦点距離f、ピクセルサイズPsを用いて次式となる。
【０１６５】
【数１６】
2014109466.tif 000018
【０１６６】
すなわち、図２２から、巻ばねの傾きθは次式で表すことができる。
【０１６７】
【数１７】
2014109466.tif 000019
【０１６８】
［認識・位置姿勢推定結果］
図２３（Ａ）は、左右の元画像を示す説明図、（Ｂ）は、左右画像でのグルーピングを示す説明図、（Ｃ）は、左右グループの対応を示す説明図、図２４（Ａ）は、左右画像でのグルーピングを示す拡大説明図、（Ｂ）は、左右グループの対応を示す拡大説明図、図２５（Ａ）は、左右画像でのグルーピングを示す拡大説明図、（Ｂ）は、左右グループの対応を示す拡大説明図、図２６（Ａ）は、左右画像でのグルーピングを示す拡大説明図、（Ｂ）は、左右グループの対応を示す拡大説明図である。
【０１６９】
図２３は、結果を示し、図２４〜図２６は、図２３のいくつかの巻ばねに注目し、拡大した。対応がとれた巻ばねは左右同じ四角で囲んである。グループ重心には、点を表示している。
【０１７０】
図２３、図２４の画像のように、端面ハイライト、側面ハイライトのグループで左右の認識が同一の場合は正しい対応が取れた。また、同一の巻ばねに複数のグループが検出された場合や左右の認識が異なる場合でも図２５、図２６のように正しい対応が取れた。
［巻ばねのピッキング］
図２７は、鉛直方向からのアプローチによる巻ばねのピッキングを示し、（Ａ）は、θ＝０、（Ｂ）は、０＜θ＜９０°、（Ｃ）は、θ＝９０°の説明図、図２８は、姿勢に応じたアプローチによる巻ばねのピッキングを示し、（Ａ）は、θ＝９０°（Ｂ）は、０≦θ＜４５°、（Ｃ）は、４５°≦θ＜９０°の説明図である。
【０１７１】
個々の巻ばね３の位置、姿勢が求まれば、それをもとにロボット１０１１（図１）によってピッキングすることができる。ここでの問題は、
・どれをピッキングするか
・どのようにピッキングするか
である。
【０１７２】
前者については、基本的に最も「高い」（カメラから見て奥行き方向に「近い」）巻ばね３をピッキングするのが有利と考えられる。障害物などを考慮すると必ずしもそうではない場合も考えられるが、現状では最も高い位置の巻ばね３をピッキングする。
【０１７３】
但し、ピッキングに失敗した場合は、一定回数は同じ巻ばね３をピッキングに行かないように設定している。これは、何らかの事情でピッキングが難しいものがあった場合，それにトライし続けると作業が全く進まなくなる恐れがあるためである。
【０１７４】
後者の「どのようにピッキングするか」については、グリッパである２本の爪１０１１ａ、１０１１ｂを用いたハンド１０１１により外径把持を行うことができた。
【０１７５】
図２７の単純に鉛直方向からアプローチする実装のほか、図２８のように巻ばね３の姿勢に合わせてアプローチ方向をずらす実装も行うことができた。
［対象物特定方法、プログラム、及び記録媒体］
図２９は、ピッキングに係るフローチャートである。
【０１７６】
対象物移動装置１００１の稼働により、図２９のフローチャートが実行されると、ステップＳ１Ｌ、Ｓ１Ｒ（以下、各ステップＳを「Ｓ」と略称する。）において、「画像取得（Ｌ）、（Ｒ）」が実行され、左右のカメラ（Ｌ）１００５、（Ｒ）１００７により撮像され、データ記憶部１１に記憶されている元画像データが読み込まれ、Ｓ２（Ｌ）、Ｓ２（Ｒ）へ移行する。
【０１７７】
Ｓ２Ｌ、Ｓ２Ｒでは、それぞれ「巻ばね認識（Ｌ）」、「巻ばね認識（Ｒ）」の処理により、左右の元画像を基に側面ハイライト、端面ハイライトの判別、側面ハイライトのグループ化等を左右それぞれで行ない、巻ばねの認識が行われる。具体的には、図３１〜図３３のサブルーチンにより実行され、左右画像のそれぞれでの巻ばねの認識により認識結果を登録部２３に登録し、Ｓ３ヘ移行する。
【０１７８】
Ｓ３では、「Ｌの巻ばねを一つ選ぶ」の処理により、登録部２３に登録されている左画像で認識した巻ばねのグループから1つ選び、Ｓ４へ移行する。このグループの選択は、左右何れかを基準とするためのものであり、右のＲのグループを選択する設定を行うこともできる。
【０１７９】
Ｓ４では、「側面ハイライトグループである？」の判断処理により、Ｓ３で選択されたものが側面ハイライトのグループか、端面ハイライトかを判断する。この判断は、ハイライトが複数か単一か等により行うことができる。側面ハイライトのグループであると判断されたときは（ＹＥＳ）、Ｓ５ヘ移行し、端面ハイライトと判断されたときは（ＮＯ）、Ｓ６へ移行する。
【０１８０】
Ｓ５では、「側面ハイライトグループ間対応検出」の処理により、選択された左Ｌの側面ハイライトのグループに対する右Ｒの側面ハイライトのグループ間の対応が検出される。具体的には、図３３のサブルーチンにより実行され、前記＜巻ばねのグループの対応付け方法＞のように、左右画像の対応グループが抽出され、Ｓ７ヘ移行する。
【０１８１】
Ｓ６では、「端面ハイライト対応検出」の処理により、左右画像の端面ハイライト間の対応が検出され、Ｓ７へ移行する。端面ハイライトは、楕円、円として対比される。
【０１８２】
Ｓ７では、「対応巻ばねがＲ内に見つかった？」の判断処理により、Ｓ５でのグループ間対応検出によりＬ内で選択された一つのグループに対し、対応するグループがＲ内に見つかったか否かが判断される。対応するグループが見つかれば（ＹＥＳ）、Ｓ８ヘ移行し、見つからなければ（ＮＯ）、Ｓ９ヘ移行する。
【０１８３】
Ｓ８では、「位置・姿勢算出」の処理により、Ｓ５での処理により、特定の巻ばねを認識できたとき、巻ばねの位置・姿勢が、上記［巻ばねの位置、姿勢推定］の手法により算出され、算出結果が登録部２３に登録されてＳ９へ移行する。
【０１８４】
Ｓ９では、「Ｌの巻ばねをすべて調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ３へ処理が戻され、Ｓ３〜Ｓ９が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、Ｓ１０ヘ移行する。
【０１８５】
Ｓ１０では、「ピッキング対象巻ばねの決定」の処理により、登録部２３から登録されている位置、姿勢からピッキングすべき巻ばねが決定され、Ｓ１１ヘ移行する。
【０１８６】
Ｓ１１では、「ピッキング」の処理により、前記［巻ばねのピッキング］の手法で巻ばねがハンド１０１１により順次ピッキングされ、所定箇所へ移動され、処理は終了する。
【０１８７】
（巻ばね認識）
図３０〜図３２は、図２９のＳ２Ｌ、Ｓ２Ｒを実行するものであり、図３０は、巻ばね認識のサブルーチンを示し、側面ハイライト及び端面ハイライトの検出に係るフローチャート、図３１は、同側面ハイライトの仮グループ化に係るフローチャート、図３２は、同側面ハイライトのグループ化に係るフローチャートである。
【０１８８】
ステップＳ２１において、二値化処理が実行される。この処理では、カメラ１００５、１００７による画像データが二値化処理により二値化画像データとされ、Ｓ２２ヘ移行する。
【０１８９】
Ｓ２２では、ハイライト抽出の処理により、二値化画像データにおいてラベリングにより得られた領域から、面積によって側面ハイライトと端面ハイライトとを抽出し、Ｓ２３、Ｓ２４ヘ移行する。ハイライトの抽出では、各側面ハイライトから前記の特徴量が抽出され記憶される。
【０１９０】
Ｓ２３では、「側面ハイライトの仮グルーピング」の処理により、すべての側面ハイライトを対象に仮グルーピングが行なわれてＳ２５ヘ移行する。Ｓ２３での仮グルーピングは、図３１のサブルーチンで実行される。
【０１９１】
Ｓ２４では、「端面ハイライトの検出」が行われる。Ｓ２４での端面ハイライトの検出は、上記の通りである。
【０１９２】
Ｓ２５では、「側面ハイライトのグルーピング」の処理により、側面ハイライトがグループ化され、処理は終了する。Ｓ２５のグルーピングは、図３２のサブルーチンで説明する。
【０１９３】
図３０のＳ２３を実行する図３１のサブルーチンでは、Ｓ２３０１の「ハイライトを一つ選ぶ」の処理により、側面ハイライトの一つが読み出され、Ｓ２３０２ヘ移行する。
【０１９４】
Ｓ２３０２では、「近傍のハイライトをリストアップ」の処理により、Ｓ２３０１で選ばれた一つの側面ハイライトに対し、ハイライト間距離、連続数等の閾値により近傍のハイライトを順にリストアップし、Ｓ２３０３ヘ移行する。このリストアップは、一つの側面ハイライトに対し、近傍の側面ハイライトを１個ずつリストとして読み込む。
【０１９５】
Ｓ２３０３では、「形状が近い？」の判断処理により、リストアップされた側面ハイライトのグループに対し、側面ハイライトの形状が近いか否かにより判別される。「形状が近い」か否かは、ハイライト面積（ピクセル数）、ハイライトの長軸方向、湾曲情報（三次画像モーメント）が近いかどうかで判断される。形状が近いと判断されれば（ＹＥＳ）、Ｓ２３０４ヘ移行し、形状が近くないと判断されれば（ＮＯ）、Ｓ２３０５ヘ移行する。
【０１９６】
Ｓ２３０４では、「仮グループに入れる」の処理により、形状が近い側面ハイライトが仮グループとして記憶され、Ｓ２３０５ヘ移行する。
【０１９７】
Ｓ２３０５では、「近傍のハイライトをすべて調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ２３０２へ処理が戻され、Ｓ２３０２、Ｓ２３０３、Ｓ２３０５が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、Ｓ２３０６へ移行する。
【０１９８】
Ｓ２３０６では、「ハイライトをすべて調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ２３０１へ処理が戻され、Ｓ２３０１、Ｓ２３０２、Ｓ２３０３、Ｓ２３０５、Ｓ２３０６が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、仮グルーピングの処理は終了する。
【０１９９】
図３０のＳ２５を実行する図３２のサブルーチンでは、Ｓ２５０１の「仮グループを一つ選ぶ」の処理により、Ｓ２３で仮グループ化された側面ハイライトの仮グループの一つが読み出され、Ｓ２５０２ヘ移行する。
【０２００】
Ｓ２５０２では、「直線状に並んでいない構成ハイライトを削除」の処理により、Ｓ２５０１で選ばれた仮グループを構成する側面ハイライトで、構成ハイライトがほぼ同一直線上に乗っているか確認し、乗っていないものは削除し、Ｓ２５０３ヘ移行する。巻ばね３の側面ハイライトは、ほぼ同一直線上に乗っている性質を利用して判断するものである。
【０２０１】
Ｓ２５０３では、「構成ハイライトが少ない？」の判断処理が行われる。Ｓ２５０２での削除の結果、巻ばね３の側面ハイライトを構成するには数が少ないと思われる仮グループか否かを判断する。構成ハイライトが少ないと判断されれば（ＹＥＳ）、Ｓ２５０４ヘ移行し、構成ハイライトが少なくないと判断されれば（ＮＯ）、Ｓ２５０５ヘ移行する。
【０２０２】
Ｓ２５０４では、「仮グループを削除」の処理により、側面ハイライトを構成するには数が少ないと思われる仮グループがデータとして削除され、Ｓ２５０５ヘ移行する。
【０２０３】
Ｓ２５０５では、「すべての仮グループを調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ２５０１へ処理が戻され、Ｓ２５０１〜Ｓ２５０５が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、Ｓ２５０６へ移行する。
【０２０４】
Ｓ２５０６では、「構成ハイライト数の多い順（同じならハイライト面積の大きい順）でソート」の処理が行われる。この処理により、直線上に並んだ所定数の仮グループ群が、構成ハイライト数の多い順に整列され、Ｓ２５０７ヘ移行する。但し、構成ハイライト数が同じ時は、ハイライト面積の大きい順に並べられ、Ｓ２５０７ヘ移行する。
【０２０５】
Ｓ２５０７では、「仮グループを順に一つ選ぶ」の処理により、Ｓ２５０５でソートされた仮グループの一つが順に読み出され、Ｓ２５０８ヘ移行する。
【０２０６】
Ｓ２５０８では、「登録済み他グループと重複する構成ハイライトを消す」の処理により、既にグループとして決定された側面ハイライトに対しデータとして重複する構成ハイライトを現処理の仮グループから削除され、Ｓ２５０９ヘ移行する。
【０２０７】
Ｓ２５０９では、「ハイライト間距離が一定でない構成ハイライトを消す」の処理が行われる。巻ばね３の側面において素線間距離は一定であるため、距離が一定でないハイライトをノイズとして除去し、Ｓ２５１０ヘ移行する。
【０２０８】
Ｓ２５１０では、「構成ハイライト数が基準の範囲内？」の判断処理が行われる。巻ばね３の側面において素線の連続数は決まっており、仮グループを構成する側面ハイライトの数が、基準を越えていたり、少ない時は、グループとしての登録から排除される。したがって、Ｓ２５１０で構成ハイライト数が基準の範囲内であると判断されれば（ＹＥＳ）、Ｓ２５１１へ移行し、基準の範囲内ではないと判断されれば（ＮＯ）、Ｓ２５１２へ移行する。
【０２０９】
Ｓ２５１１では、「グループとして登録」の処理により、処理された仮グループがグループとして決定され、登録部２３（図２）に登録され、Ｓ２５１２へ移行する。
【０２１０】
Ｓ２５１２では、「すべての仮グループを調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ２５０７へ処理が戻され、Ｓ２５０７〜Ｓ２５１２が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、グルーピングの処理は終了する。
【０２１１】
（側面ハイライトグループ間対応検出）
図３３は、図２９のＳ５を実行するものであり、側面ハイライトグループ間対応検出のサブルーチンを示し、左右グループの対応付けに係るフローチャートである。
【０２１２】
Ｓ５１では、「平均ハイライト面積がほぼ同じであるＲのグループで最も重心間距離が近いものを探す」の処理により、Ｓ３で選択されたＬの一つのグループに対し登録部２３に登録されているＲのグループから一つのグループが選択される。この選択は、グループの各側面ハイライトの面積の平均値がほぼ同じで、図１６においてxtlgとxrgのずれであるグループ重心間距離gdisが近いものとされる。この選択によりＳ５２、Ｓ５３へと順次移行し、さらに絞り込みが行われる。
【０２１３】
Ｓ５２では、「ハイライトの並びの向きがほぼ同じで、かつグループ重心間距離がしきい値以下？」の判断処理が行われる。図１５のように、ＬＲのグループ間の側面ハイライトの向きがほぼ同じであり、かつグループ重心間距離gdisがしきい値以下であると判断されたとき（ＹＥＳ）、Ｓ５３ヘ移行し、ＬＲのグループ間の側面ハイライトの向きが同じではなく、かつグループ重心間距離gdisがしきい値を上回っていると判断されたとき（ＮＯ）、処理は終了し、図２９のＳ７ヘ移行する。
【０２１４】
Ｓ５３では、「ハイライト数が等しく、重心の縦方向位置がほぼ同じ？」の判断処理が行われる。ＬＲのグループ間の側面ハイライトのハイライト数が等しく、グループ重心の縦方向位置がほぼ同じであると判断されたとき（ＹＥＳ）、Ｓ５４ヘ移行し、ＬＲのグループ間の側面ハイライトのハイライト数が異なり、グループ重心の縦方向位置が同じではないと判断されたとき（ＮＯ）、Ｓ５５ヘ移行する。
【０２１５】
Ｓ５４では、「対応グループと見なす」の処理により、該当するＲのグループがＬのグループの一つに対応するものとして登録部２３に登録され、処理は終了し、図２９のＳ７ヘ移行する。
【０２１６】
Ｓ５５では、「ハイライトの並びの向きがほぼ水平である？」の判断処理が行われる。対比されるＬＲのグループの側面ハイライトの向きが、図１８のように水平ではないと判断されたとき（ＮＯ）、Ｓ５６ヘ移行し、水平であると判断されたとき（ＹＥＳ）、Ｓ５７ヘ移行する。
【０２１７】
Ｓ５６では、「ハイライト間対応検出」の処理により、ＬＲのグループ間の側面ハイライトの対応が検出される。具体的には、図３４のサブルーチンにより実行され、前記＜グループ内のハイライト毎の対応付け方法＞のように、ＬＲグループ間の側面ハイライト毎の対応が取られ、処理は終了し、図２９のＳ７ヘ移行する。
【０２１８】
Ｓ５７では、「画像マッチング対応検出」の処理が行われ、図２９のＳ７ヘ移行する。Ｓ５７は、図３５のサブルーチンにより実行される。
【０２１９】
（ハイライト間対応検出）
図３４は、側面ハイライトグループ間対応検出のサブルーチンを示し、ハイライト間対応検出に係るフローチャートである。ＬＲのグループの認識が異なる場合は、対応を取ることができない。そこで、図１７のように、ハイライト毎の対応を取る。
【０２２０】
Ｓ５６０１では、「Ｌのハイライトを一つ選ぶ」の処理により、登録部２３からＬの側面ハイライトが一つ読み込まれ、Ｓ５６０２ヘ移行する。
【０２２１】
Ｓ５６０２では、「縦方向の位置がほぼ同じであるＲのハイライトで最も重心間距離が近いものを探す」の処理により、図１７のようにＬの一つの側面ハイライトに対しＲの側面ハイライトで縦方向の位置がほぼ同じで最も重心間距離が近いものが抽出され、Ｓ５６０３ヘ移行する。
【０２２２】
Ｓ５６０３では、「重心間距離が十分近い？」の判断処理が行われる。重心間距離が、同一の側面ハイライトであると見なせるほど近い場合は（ＹＥＳ）、Ｓ５６０４ヘ移行し、重心間距離が、同一の側面ハイライトと見なせない大きさであるとき（ＮＯ）、Ｓ５６０５へ移行する。
【０２２３】
Ｓ５６０４では、「対応ハイライトと見なす」の処理により、該当するＲの側面ハイライトが、Ｌの側面ハイライトにＳ５６０１〜Ｓ５６０３のように対応付けられたので、これを対応ハイライトとして登録部２３に登録し、Ｓ５６０５ヘ移行する。
【０２２４】
Ｓ５６０５では、「すべてのＬのハイライトを調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ５６０１へ処理が戻され、Ｓ５６０１〜Ｓ５６０５が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、Ｓ５６０６ヘ移行する。
【０２２５】
Ｓ５６０６では、「対応ハイライトのみを残して対応グループとする」の処理により、対応を確認できた側面ハイライトだけのＲのグループを登録部２３ヘ登録し、図２９のＳ７ヘ移行する。
【０２２６】
（画像マッチング対応検出）
図３５は、側面ハイライトグループ間対応検出のサブルーチンを示し、画像マッチング検出に係るサブルーチンのフローチャートである。図１８のように、巻ばねが完全に左右方向を向いている場合は、ハイライトの対応の候補が複数考えられ、ハイライトだけからでは一つに絞り込むことができない。そこで、この場合は一方のカメラ側の元画像で、図１９のように、元画像に対し、ハイライトのグループより一回り大きい領域を考え、領域を拡大して判断する。
【０２２７】
Ｓ５７０１では、「Ｌのグループを含むＬの元画像の領域をテンプレートとして設定」の処理により、選択されたＬの一つのグループがほぼ水平であるとき、このグループを含む元画像の領域をテンプレートとして登録部２３に登録し、Ｓ５７０２ヘ移行する。
【０２２８】
Ｓ５７０２では、「Ｒのグループを含むＲの元画像に広めの探索領域を設定」の処理により、図１９のように、Ｒのグループの回りに拡大した領域をそれぞれ設定し、登録部２３に登録し、Ｓ５７０３ヘ移行する。
【０２２９】
Ｓ５７０３では、「画像マッチングでマッチング位置を算出」の処理により、Ｒの拡大した各領域情報からＬＲの画像マッチングによりマッチング位置を算出し、Ｓ５７０４へ移行する。
【０２３０】
Ｓ５７０４では、「Ｌのハイライトを一つ選ぶ」の処理により、マッチング位置におけるＬの側面ハイライトを一つ選択し、Ｓ５７０５ヘ移行する。
【０２３１】
Ｓ５７０５では、「Ｒのマッチング領域に位置の近いハイライトがある？」の判断処理が行われる。Ｓ５７０４で選ばれたＬの側面ハイライトによりＲの拡大されたマッチング領域でテンプレート・マッチングが行われる。このマッチングによりＬの側面ハイライトに近いＲの側面ハイライトがあれば（ＹＥＳ）、Ｓ５７０６ヘ移行し、なければ（ＮＯ）、Ｓ５７０７ヘ移行する。
【０２３２】
Ｓ５７０６では、「対応ハイライトと見なす」の処理により、該当するＲの側面ハイライトが、Ｌの側面ハイライトに対応付けられたので、これを対応ハイライトとして登録部２３に登録し、Ｓ５７０７ヘ移行する。
【０２３３】
Ｓ５７０７では、「すべてのＬのハイライトを調べ終えた？」の判断処理が行われ、調べ終えていないと判断されれば（ＮＯ）、Ｓ５７０４へ処理が戻され、Ｓ５７０４〜Ｓ５７０７が繰り返される。調べ終えたと判断されれば（ＹＥＳ）、Ｓ５７０８ヘ移行する。
【０２３４】
Ｓ５７０８では、「対応ハイライトのみを残して対応グループとする」の処理により、対応を確認できた側面ハイライトだけのＲのグループを登録部２３ヘ登録し、図２９のＳ７ヘ移行する。
【０２３５】
このようにして、対象物移動プログラムは、ばら積みの巻ばね３を特定しハンド１０１１により把持して移動する機能をコンピュータに実現させる対象物移動プログラムであって、ばら積みの巻ばね３・・・全体にＬＥＤスポットライト７により照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを画像毎にそれぞれ抽出するハイライト抽出機能Ｓ２Ｌ、Ｓ２Ｒ、Ｓ２１、Ｓ２２と、巻ばね３の形状に対応させるための特徴量を各ハイライトから抽出する特徴量抽出機能Ｓ２Ｌ、Ｓ２Ｒ、Ｓ２２と、特徴量によりハイライトを複数１組毎のグループとして画像毎に決定するグループ化機能Ｓ２Ｌ、Ｓ２Ｒ、Ｓ２３、Ｓ２５と、グループの画像間での対応を検出する対応検出機能Ｓ５と、検出により対応したグループで巻ばね３を認識し各カメラの位置を基準とした巻ばね３の位置、姿勢をステレオ画像処理により演算する位置・姿勢演算機能Ｓ８と、演算された巻ばね３の位置、姿勢によりハンド１０１１の動作を制御する動作制御機能Ｓ１０、Ｓ１１とを備えた。
【０２３６】
したがって、ばら積みされた巻ばね３・・・の認識、位置、姿勢の演算による特定を正確に行わせることができ、ばら積みの巻ばね３・・・のピッキングの自動化に供することができる。
【０２３７】
対象物移動プログラムは、判別された端面のハイライトから最終的な端面のハイライトを決定する端面ハイライト検出機能Ｓ２Ｌ、Ｓ２Ｒ、Ｓ２４を備え、対応検出処理機能Ｓ５は、端面のハイライトの画像間での対応を検出しＳ６、位置・姿勢演算機能Ｓ８は、検出により対応したグループ及び端面のハイライトにより巻ばね３を認識し各カメラ１００５、１００７の位置を基準とした巻ばね３の位置、姿勢をステレオ画像処理により演算する。
【０２３８】
したがって、端面ハイライトからも巻ばね３・・・の認識、位置、姿勢の演算による特定を行わせることができる。
【０２３９】
本発明実施例は、対象物移動プログラムを坦持したコンピュータ読み取り可能な記録媒体とした。
【０２４０】
したがって、巻ばね３・・・のピッキングの自動化等のために、対象物移動プログラムをコンピュータに読み取らせることができる。
【０２４１】
本発明の対象物移動方法は、ばら積みの巻ばね３を特定しハンド１０１１により把持して移動する対象物移動方法であって、ばら積みの巻ばね３・・・全体にＬＥＤスポットライト７により照明光を当てた状態で２台のカメラにより撮像された各画像を二値化処理して各反射形状のハイライトを画像毎にそれぞれ抽出するハイライト抽出ステップＳ２Ｌ、Ｓ２Ｒ、Ｓ２１、Ｓ２２と、巻ばね３の形状に対応させるための特徴量を各ハイライトから抽出する特徴量抽出ステップＳ２Ｌ、Ｓ２Ｒ、Ｓ２２と、特徴量によりハイライトを複数１組毎のグループとして画像毎に決定するグループ化ステップＳ２Ｌ、Ｓ２Ｒ、Ｓ２３、Ｓ２５と、グループの画像間での対応を検出する対応検出ステップＳ５と、検出により対応したグループで巻ばね３を認識し各カメラの位置を基準とした巻ばね３の位置、姿勢を決定する位置・姿勢決定ステップＳ８と、巻ばね３の位置、姿勢によりハンド１０１１の動作を行わせる動作ステップＳ１０、Ｓ１１とを備えた。
【０２４２】
したがって、上記同様に、巻ばね３・・・のピッキングの自動化に供することができる。
【０２４３】
対象物移動方法は、判別された端面のハイライトから最終的な端面のハイライトを決定する端面ハイライト検出ステップＳ２Ｌ、Ｓ２Ｒ、Ｓ２４を備え、対応検出ステップＳ５は、端面のハイライトの画像間での対応を検出しＳ６、位置・姿勢決定ステップＳ８は、検出により対応したグループ及び端面のハイライトにより巻ばね３を認識し各カメラ１００５、１００７位置を基準とした巻ばね３の位置、姿勢を決定する。
【０２４４】
したがって、端面ハイライトからも巻ばね３・・・の認識、位置、姿勢の演算による特定を行わせることができる。
【０２４５】
［その他］
本発明は、対象物として巻ばねに限らず、その他、形状に空間部が存在して輪郭を分断された同一形状の対象物が不規則に集合した中で各対象物を認識する場合、例えば、巻ばねと同一形状であるがばね性を有しない対象物、矩形体、球体等で形状に空間部が存在して輪郭を分断された対象物の認識にも適用することができる。
【０２４６】
上記実施例では、仮グループ化してからグループ化したが、仮グループ化せずに特徴量としてハイライトの形状、ハイライトの直線的な並び、間隔、及び数により直接にグループ化することもできる。
【符号の説明】
【０２４７】
１００１  対象物移動装置
１００３  対象物特定装置
１００５、１００７  カメラ
１００９  ロボット・コントローラ（制御部）
１０１１  ロボット／ハンド
１  対象物認識部
３  巻ばね（対象物）
７  ＬＥＤスポット・ライト
１３  ハイライト抽出処理部
１５  ハイライト判別処理部
１７  特徴量抽出処理部
１９  仮グループ化処理部
２１  グループ化処理部
２２  端面ハイライト検出部
２５  対応検出処理部
２７  位置・姿勢演算部
Ｓ２Ｌ、Ｓ２Ｒ  ハイライト抽出機能、ハイライト判別機能、特徴量抽出機能、ハイライト抽出ステップ、ハイライト判別ステップ、特徴量抽出ステップ
Ｓ５  対応検出機能、対応検出ステップ
Ｓ８  位置・姿勢演算機能、位置・姿勢決定ステップ
Ｓ１０、Ｓ１１  動作制御機能、動作制御ステップ
Ｓ２３  仮グループ化機能、仮グループ化ステップ
Ｓ２４  端面ハイライト検出機能、端面ハイライト検出ステップ
Ｓ２５  グループ化機能、グループ化ステップ
【図１】
2014109466.tif 000020
【図２】
2014109466.tif 000021
【図４】
2014109466.tif 000022
【図５】
2014109466.tif 000023
【図７】
2014109466.tif 000024
【図８】
2014109466.tif 000025
【図９】
2014109466.tif 000026
【図１６】
2014109466.tif 000027
【図１８】
2014109466.tif 000028
【図１９】
2014109466.tif 000029
【図２０】
2014109466.tif 000030
【図２１】
2014109466.tif 000031
【図２２】
2014109466.tif 000032
【図２７】
2014109466.tif 000033
【図２８】
2014109466.tif 000034
【図２９】
2014109466.tif 000035
【図３０】
2014109466.tif 000036
【図３１】
2014109466.tif 000037
【図３２】
2014109466.tif 000038
【図３３】
2014109466.tif 000039
【図３４】
2014109466.tif 000040
【図３５】
2014109466.tif 000041
【図３】
2014109466.tif 000042
【図６】
2014109466.tif 000043
【図１０】
2014109466.tif 000044
【図１１】
2014109466.tif 000045
【図１２】
2014109466.tif 000046
【図１３】
2014109466.tif 000047
【図１４】
2014109466.tif 000048
【図１５】
2014109466.tif 000049
【図１７】
2014109466.tif 000050
【図２３】
2014109466.tif 000051
【図２４】
2014109466.tif 000052
【図２５】
2014109466.tif 000053
【図２６】
2014109466.tif 000054