(57)【要約】【課題】  対象物を認識するのに適した画像データを取得するための画像処理方法を提供する。【解決手段】  対象物の画像データを取得するための画像処理方法であって、前記対象物を撮像して複数の画像データを取得する工程と、前記複数の画像データそれぞれの画像特徴量を演算する工程と、演算した前記複数の画像データそれぞれの画像特徴量と予め取得しておいた基準画像特徴量との合致度を算出する工程と、前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較する工程と前記合致度を比較した画像データのうち、合致度が高い方の画像データをメモリに保存する工程と、を有することを特徴とする。【選択図】  図３
2019145177.tif 000002
【特許請求の範囲】
【請求項１】
対象物の画像データを取得するための画像処理方法であって、
前記対象物を撮像して複数の画像データを取得する工程と、
前記複数の画像データそれぞれの画像特徴量を演算する工程と、
演算した前記複数の画像データそれぞれの画像特徴量と予め取得しておいた基準画像特徴量との合致度を算出する工程と、
前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較する工程と
前記合致度を比較した画像データのうち、合致度が高い方の画像データをメモリに保存する工程と、
を有することを特徴とする画像処理方法。
【請求項２】
前記合致度が高い方の画像データとともに、前記合致度が高い方の画像データの画像特徴量を前記メモリに保存することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
合致度を比較した前記少なくとも２つの画像データのうち、合致度が低い方の画像データを破棄することを特徴とする請求項１または２に記載の画像処理方法。
【請求項４】
さらに前記対象物の位置情報を取得する工程を有し、
前記対象物の位置情報が所定の範囲にある場合に、演算した前記複数の画像データそれぞれの画像特徴量と、予め取得しておいた基準画像特徴量と、の合致度を算出する工程を行うことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理方法。
【請求項５】
前記１乃至４のいずれか１項に記載の画像処理方法によって取得した前記対象物の画像データを用いて、前記対象物を認識することを特徴とする対象物の認識方法。
【請求項６】
請求項１乃至４のいずれか１項に記載の画像処理方法の各工程をコンピュータに実行させる画像処理プログラム。
【請求項７】
請求項６に記載の画像処理プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項８】
対象物の画像データを取得する撮像装置と、
前記画像データから、前記対象物の画像特徴量を演算する演算手段と、
を備えるシステムであって、
前記撮像装置が、前記対象物の複数の画像データを取得して前記演算手段に送信し、
前記演算手段は、前記複数の画像データそれぞれの画像特徴量を演算して、予め取得しておいた基準画像特徴量との合致度を算出し、
前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較し、合致度が高い方の画像データをメモリに保存することを特徴とするシステム。
【請求項９】
合致度を比較した前記少なくとも２つの画像データのうち、合致度が低い方の画像データを破棄することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記合致度が高い方の画像データとともに、前記合致度が高い方の画像データの画像特徴量を前記メモリに保存することを特徴とする請求項８または９に記載のシステム。
【請求項１１】
前記演算手段は、前記対象物の位置情報を取得し、前記対象物の位置情報が所定の範囲にある場合に、前記複数の画像データそれぞれの画像特徴量を演算し、予め取得しておいた基準画像特徴量との合致度を算出することを特徴とする請求項８乃至１０のいずれか１項に記載のシステム。
【請求項１２】
前記画像特徴量が、画像の輝度の総和値、複数ブロックに分割した各々の画像領域の輝度の総和値、特定の画像領域の濃度勾配値、輪郭線強度値の少なくとも一つであることを特徴
とする請求項８乃至１１のいずれか１項に記載のシステム。
【請求項１３】
さらに、前記対象物を把持して移動させることのできるロボットハンドを備えており、
前記撮像手段は前記ロボットハンドに把持された前記対象物を撮像することを特徴とする請求項８乃至１２のいずれか１項に記載のシステム。
【請求項１４】
対象物の画像データを取得する撮像装置と、
前記対象物を移動させる移動手段と、
前記画像データから前記対象物の画像特徴量を算出する演算手段と、を備える生産装置であって、
前記撮像装置は、前記移動手段によって移動する前記対象物の画像データを取得して前記演算手段に送信し、
前記演算手段は、前記複数の画像データそれぞれの画像特徴量を演算して、予め取得しておいた基準画像特徴量との合致度を算出し、
前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較して合致度が高い方の画像データをメモリに保存することを特徴とする生産装置。
【請求項１５】
合致度を比較した前記少なくとも２つの画像データのうち、合致度が低い方の画像データを破棄することを特徴とする請求項１４に記載の生産装置。
【請求項１６】
前記合致度が高い方の画像データとともに、前記合致度が高い方の画像データの画像特徴量を前記メモリに保存することを特徴とする請求項１４または１５に記載の生産装置。
【請求項１７】
前記演算手段は、前記対象物の位置情報を取得し、前記対象物の位置情報が所定の範囲にある場合に、演算した前記複数の画像データそれぞれの画像特徴量と予め取得しておいた基準画像特徴量との合致度を算出する工程を行うことを特徴とする請求項１４乃至１６のいずれか１項に記載の生産装置。
【請求項１８】
前記画像特徴量が、画像の輝度の総和値、複数ブロックに分割した各々の画像領域の輝度の総和値、特定の画像領域の濃度勾配値、輪郭線強度値の少なくとも一つであることを特徴とする請求項１４乃至１７のいずれか１項に記載の生産装置。
【請求項１９】
前記移動手段が前記対象物を把持して移動させるロボットハンドであり、
前記対象物の位置を算出する画像処理部と、前記ロボットハンドを制御する制御部と、をさらに備えており、
前記画像処理部は、前記メモリに保存した画像データを用いて、前記対象物の位置姿勢を認識し、
前記制御部は、前記位置姿勢に基づいて前記ロボットハンドを制御して、前記対象物に対する処理を実行させることを特徴とする請求項１４乃至１８のいずれか１項に記載の生産装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はカメラを用いて物体を撮影する方法および装置に関する。
【背景技術】
【０００２】
ロボットを使った製品の自動組立では、供給された部品をロボットが把持し、把持した部品をワークに組付ける、という作業が繰り返し行われる。ここで、供給された部品が厳密に位置決めされていない場合には把持工程の際に、カメラによる部品の位置姿勢計測が行われることがある。
【０００３】
これは、把持した部品とロボットとの相対的な位置姿勢を、目標の位置姿勢に可能な限り一致させるためである。つまり、あらかじめ定められた目標値としての“部品の持ちかた”と、ロボットによる実測値としての“部品の持ちかた”を比較して、目標値と実測値とで差がある場合は目標値へ一致させる工程をロボットが実行する。そのことで、つかみ動作の後の工程で実行されるロボットによる組付け作業の精度を向上させる狙いがある。
【０００４】
具体的な方法として、ロボットが部品を把持した後に、いったん部品をカメラの前まで搬送してロボットを停止させ、カメラで部品の静止画像を撮影し、得られた静止画像を画像処理することによりロボットに対する部品の位置姿勢を認識する方法が挙げられる。この認識結果に基づき、ロボットの姿勢を変えたり部品を持ちかえたりする工程をロボットが実行することで、部品をワークに組付ける工程が実行できる範囲に部品の位置姿勢が収まるように変更してから組付動作を行う。
【０００５】
近年、カメラによる視覚情報を利用しつつロボットで製品の効率的に自動組立することが求められている。従って、さらなる時間当たりの生産性を向上させるためには、撮影の際に生じる、ロボットの減速、停止、始動、加速による部品の搬送時間の増分をできる限り削減することが効果的である。究極的には、カメラの前でロボットによる部品の搬送を停止させることなく、移動する部品をそのまま撮影すること（以降、「動体撮影（法）」と呼ぶ。）が望ましい。
【０００６】
動体撮影法は、予めストックしておいた対象物のサンプル画像（目標値）と、動体撮影された対象物の画像（実測値）を比較し、一致度に応じて被測定物を認識する方法である。
【０００７】
認識精度の高い動体撮影を実行するためには、画像処理アルゴリズムを決定し、その画像処理アルゴリズムに対応して目標値としてストックされている対象物のサンプル画像に対応して、実測においても同等の分解能で対象物が動体撮影される必要がある。
【０００８】
なおかつ、影や外乱光の写りこみ等の照明条件ができるだけ一致した状態で撮影される必要もある。
【０００９】
例えば、対象物としての部品に対して部品上に設けられたマークを利用して、その部品の位置姿勢を計測する画像処理アルゴリズムを使用する場合を考える。この場合、実際の撮影では工場の屋内に設置された蛍光灯の光が部品表面で反射してグレアが生じるケースがある。また、グレアの影響でマークの映らない照明条件で撮影してしまうこともあり、位置姿勢が誤認識される可能性がある。
【００１０】
このような動態撮影の技術分野においては、特許文献１に記載されているように、移動する部品を撮影して画像解析に適した画像を抽出する技術が考案されている。
【００１１】
特許文献１には以下の技術が記載されている。すなわち、まずカメラの前をコンベアで搬送される物体を、カメラの制御部から発信された一定間隔の撮影トリガ信号に基づいて連続的に（あるいは断続的に）撮影を実行する。そして、その撮影した複数の画像の中で、物体が最も画面の中心に近づいた画像を最良画像として選び、出力する技術が示されている。
【００１２】
特許文献１記載のカメラの動作としては、まず現在の画像と１つ前に撮影した画像とをカメラ内のメモリに記憶する。その上で、２枚の画像でそれぞれ計算された物体の位置と画面中心とのずれ量を基に、（１）現在の画像が最良か、（２）１つ前の画像が最良か、（３）判断を保留して撮影を継続するか、を決定する。（１）が選ばれるのは、ずれ量が予め規定した閾値を下回る場合、すなわち物体が画面中心に充分近い場合である。（２）が選ばれるのは、現在の画像のずれ量が１つ前の画像のずれ量よりも大きくなった場合、すなわち一度画面中心に近づいた物体が中心を通り過ぎて離れ始めている場合である。そのどちらにも当てはまらない場合は（３）が選ばれる。これにより、特許文献１に記載の従来技術により動体撮影を行うと、カメラで撮影した画像の中で、部品の位置がユーザーの事前に定めた位置（以降では「目標撮影位置」と呼ぶことがある。）に最も近いときの画像を得ることができる。また、このような技術は動体撮影に限らず、静止状態で部品を撮影する場合にも適用できる。例えば、静止状態にある部品が振動などにより微細に運動している場合に、特許文献１に記載の技術により、目標撮影位置に最も近いときの画像を選択的に得ることができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平９−２８８０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１に記載の動体撮影法は、撮影した画像中での部品の位置のみを基準として出力する画像を選択する。したがって、搬送中の振動等で姿勢が傾いた部品を撮影してしまった場合、部品とカメラ／照明の位置姿勢関係が、画像処理アルゴリズムを決定したときの位置姿勢関係にと異なる条件で撮影したことになる。そのため、当初の想定とは照明条件が異なった画像となり、得られた画像の一部が想定と違う明るさとなったり、想定と違うエリアの輪郭情報が強く検出されたりする可能性がある。このような場合、画像処理工程や対象物の認識工程を実行すると部品の位置姿勢の認識を誤り、自動組立が失敗する可能性がある。また、搬送中の位置姿勢に乱れが無い、静止状態での撮影でも、部品の製造ばらつきや部品の把持ばらつきなどがあると、当初の想定とは照明条件が異なった画像となり、同じく部品の位置姿勢の認識を誤り、自動組立が失敗する可能性がある。
【００１５】
本発明は、上記の問題点を鑑みてなされたものであり、本出願に係る発明の目的は、移動する部品に対して、事前に画像処理アルゴリズムを検討した画像と類似した照明条件の画像を撮影することにある。また、本出願に係る発明のもう一つの目的は、部品の製造ばらつきや部品の把持ばらつきがある場合でも、事前に画像処理アルゴリズムを検討した画像と類似した照明条件の画像を撮影することにある。
【課題を解決するための手段】
【００１６】
上述の課題を解決するため、本発明にかかる画像処理方法は、対象物の画像データを取得するための画像処理方法であって、前記対象物を撮像して複数の画像データを取得する工程と、前記複数の画像データそれぞれの画像特徴量を演算する工程と、演算した前記複数の画像データそれぞれの画像特徴量と予め取得しておいた基準画像特徴量との合致度を算出する工程と、前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較する工程と前記合致度を比較した画像データのうち、合致度が高い方の画像データをメモリに保存する工程と、を有することを特徴とする。
【００１７】
また、本発明にかかるシステムは、対象物の画像データを取得する撮像装置と、
前記画像データから、前記対象物の画像特徴量を演算する演算手段と、を備えるシステムであって、
前記撮像装置が、前記対象物の複数の画像データを取得して前記演算手段に送信し、前記演算手段は、前記複数の画像データそれぞれの画像特徴量を演算して、予め取得しておいた基準画像特徴量との合致度を算出し、前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較し、合致度が高い方の画像データをメモリに保存することを特徴とする。
【００１８】
また、本発明にかかる生産装置は、対象物の画像データを取得する撮像装置と、
前記対象物を移動させる移動手段と、
前記画像データから前記対象物の画像特徴量を算出する演算手段と、を備える生産装置であって、
前記撮像装置は、前記移動手段によって移動する前記対象物の画像データを取得して前記演算手段に送信し、前記演算手段は、前記複数の画像データそれぞれの画像特徴量を演算して、予め取得しておいた基準画像特徴量との合致度を算出し、前記複数の画像データのうち少なくとも２つの画像データについて前記合致度を比較して合致度が高い方の画像データをメモリに保存することを特徴とする生産装置。
【発明の効果】
【００１９】
本発明によれば、部品の位置だけを基準とするのではなく、撮影した画像の照明条件と相関がある画像特徴量も基準として出力する画像を選択する。従って、移動する部品が搬送中の振動等により一時的に傾いたとしても、サンプル画像と同等の画像特徴量を有する画像を選び出して出力することができる。そのため、予め想定した画像と類似した照明条件の画像を撮影することができるので、移動する部品に対しても、正しく位置姿勢を認識することができるという効果を有する。さらに本発明によれば、光源位置、照射強度、照射角度、発光波長を変化させて取得した複数の画像からサンプル画像と同等の画像特徴量を有する画像を選び出して出力することができるため、部品に製造ばらつきや把持ばらつきがあり固定した照明条件では想定した画像と類似した画像を撮影することが困難な場合でも、正しく位置姿勢を認識することができるという効果を有する。
【図面の簡単な説明】
【００２０】
【図１】本発明の第一の実施形態に係る動体撮影装置の構成図である。
【図２】本発明の第一の実施形態に係るフローチャートである。
【図３】本発明の第一の実施形態、第二の実施形態に係る画像データの一例である。
【図４】本発明の第一の実施形態に係る画像の撮像例である。
【図５】本発明の第一の実施形態に係る画像を二値化した例である。
【図６】本発明の第二の実施形態に係る動体撮影装置の構成図である。
【図７】本発明の第二の実施形態に係る画像の撮像例である。
【図８】本発明の第二の実施形態に係る画像のフレーム間差分を二値化した例である。
【図９】本発明の第三の実施形態に係る撮影装置の構成図である。
【図１０】本発明の第三の実施形態に係る照明手段の発光ブロック例である。
【発明を実施するための形態】
【００２１】
（実施の形態１）
本発明に係る動体撮影装置の第一の実施形態について説明する。以下ではまず本発明の画像処理方法にかかる手順を追って説明したのちに、対応する実施例にて具体的にカメラを構成する個別の構成要素などを具体的に説明する。
【００２２】
図１に、本発明の第一の実施形態に係る（動体）撮影装置の構成を示す。同図に示すように、この（動体）撮影装置は、撮像素子１０１、レンズ１０２、演算部１１５から成るカメラ１１４と、部品１１２を把持するためのロボットハンド１１３で構成される。演算部１１５はさらに、コントローラ１０３、画像入力インタフェース１０４、画像特徴量計算手段１０６、メモリ１０７、画像選択手段１０８、画像出力インタフェース１０９から構成される。
【００２３】
まず、本装置で、ロボットハンド１１３により把持されて移動する部品１１２をカメラ１１４で撮影するときの流れを簡単に説明し、その後、各部の信号、動作を詳細に説明する。
【００２４】
はじめに、動体撮影の前に実施しておく初期設定について説明する。コントローラ１０３は、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）等の通信により、撮像素子１０１を、画像を連続的（断続的）に撮影する、動画撮影モードに設定する。また、コントローラ１０３の保存領域には、予め実験あるいは設計値等に基づいて定めた以下の二つの画像特徴量を保存する。すなわち、目標撮影位置である画像特徴量及び目標撮影位置における照明条件と相関がある画像特徴量を、それぞれ基準画像特徴量として保存し、画像選択手段１０８に出力しておく。目標撮影位置や画像特徴量などのデータの保存箇所は保存機能を有する演算部１１５における特定の部位を“メモリ”として任意に設定しても良い。
【００２５】
なお、照明条件と相関がある画像特徴量の詳細な計算方法については後述する。また、部品１１２をロボットハンド１１３で把持し、カメラの視野の範囲内に部品１１２が通過するように、予めロボットハンド１１３の動作を教示する。画像データと画像特徴量の一時保存を行うメモリ１０７には、初期データとして全画素の輝度値が「０」の画像と、「０」の画像特徴量を保存する。これらの操作により、本実施形態における初期設定が完了する。なお、目標撮影位置及び基準画像特徴量はコントローラの保存領域ではなくメモリに保存しておいて画像選択手段に出力しても良い。
【００２６】
次に、動体撮影時の画像データの取得および画像処理の流れを図２に示すフローチャートに基づき説明する。
【００２７】
（Ｓ１  複数の画像データを取得）
撮像素子１０１は、初期設定により動画撮影モードに設定されており、部品１１２が目標撮影位置付近に至るまでの間、レンズ１０２を介し、連続的（断続的）に画像を撮影し続けることで複数の画像データを取得する。
【００２８】
動画モードに限らず、特定の間隔で継続的に連続写真を撮影し複数の画像データを取得してもよい。以下では「連続的に画像を撮影する」とはこのような形態をも含むものとする。
【００２９】
（Ｓ２  画像データを演算部へ送信）
撮影した画像は、例えばＬＶＤＳ信号として、順次画像入力インタフェース１０４へ出力される。このとき、ＬＶＤＳ信号は例えば１０対の差動信号線で伝送され、各々の差動信号線では７逓倍でシリアライズされたシリアル信号が出力される。また、画像入力インタフェース１０４は、ＬＶＤＳ信号として連続的に入力される画像データを、順次パラレル信号の画像データに変換し、演算部における画像特徴量計算手段１０６へ出力する。
【００３０】
（Ｓ３  照明条件と位置情報の画像特徴量を演算）
画像特徴量計算手段１０６は、入力した画像データに対して画像特徴量を計算する。本実施形態における画像特徴量は以下の２つであり、一方は、撮影された画像において部品１１２がどの位置に存在するのかという位置情報と相関がある情報に関連する画像特徴量である。他方は、どのような照明環境で撮影が行われているのかという照明条件と相関がある画像特徴量である。
【００３１】
ここで、照明条件とは、例えばカメラ１１４と撮影用の照明（不図示）と蛍光灯等の外乱光源（不図示）に対する部品１１２の相対的な位置姿勢を意味する。具体例を挙げると、部品１１２のカメラに対する傾きが、画像処理アルゴリズムで想定されている部品１１２の傾きと比べて傾いており、照明条件が異なっていることがある。そのような場合、画像中に写り込む蛍光灯等の外乱光の強さや映り込み位置が変化したり、撮影される散乱光の強度が変化して画像の明るさが変化したりするケースがある。あるいは、画像処理用マーカ等の特徴点や輪郭線の鮮鋭さが変化したり、シェーディングが変化したり、影の発生位置が変化することによっても画像の明るさが変化するケースもある。
【００３２】
なお、照明条件と相関がある画像特徴量の決定は以下のようにしてもよい。
【００３３】
すなわち、まず部品１１２を傾けるなどしてカメラに対して異なる姿勢で撮影して画像を得る。その上で、その画像データに含まれるさまざまな画像特徴量のうちで、部品の姿勢に応じて有意に変化するか否かを確認する。このような工程を経ることで設定者が照明条件と相関がある画像特徴量をあらかじめ決定することもできる。
【００３４】
照明条件と相関がある画像特徴量の例として、画像の輝度の総和値、複数ブロックに分割した各々の画像領域の輝度の総和値、特徴点の座標値、特定の画像領域の濃度勾配値、輪郭線強度値等がある。なお、本装置で撮影される画像を用いて実際に部品１１２の位置姿勢を認識する際に使用する画像特徴量を用いることが最も望ましい。また、例えば複数の画像特徴量を正規化して平均値を計算するなどして、複数の画像特徴量を用いてもよい。本実施形態においては、例として、画像の輝度の総和値を、照明条件と相関がある画像特徴量として用いて、説明を進めることにする。
【００３５】
演算部における画像特徴量計算手段１０６は、これらの画像特徴量を計算し、画像データとともに画像選択手段１０８に出力する。部品１１２の位置の計算方法、および画像の輝度の総和値の計算方法の詳細は、後述する。もしも画像内で部品１１２の位置が検出されない、すなわち視野内に部品１１２が存在しない場合は、位置情報として「０」を画像選択手段１０８に出力する。
【００３６】
（Ｓ４  基準画像特徴量と基準位置情報とのマッチング）
画像選択手段１０８は、一方で画像特徴量計算手段１０６から画像データとその画像データに対応する２つの画像特徴量が入力され、他方でコントローラ１０３からの位置情報と照明条件と相関がある情報にそれぞれ関連する画像特徴量が入力される。画像選択手段１０８は、入力された画像特徴量を参照し、部品１１２がカメラ１１４の視野内にまだ入ってきていない、すなわち、部品１１２の位置情報が「０」であれば、処理を行わず、次に入力される画像データと画像特徴量を待つ。部品１１２がカメラ１１４の視野内に進入し、部品１１２の位置情報が「０」以外となったら、メモリ１０７に保存されている基準画像特徴量と撮影した画像の画像データから抽出した画像特徴量を比較する。そして、定められた判定条件を満たすか判定するマッチング処理を実行する。
【００３７】
そして、撮影した画像データから抽出した画像特徴量が基準画像特徴量により近い方の画像データを選択する。入力された画像特徴量の方が、メモリ１０７に保存されている画像特徴量よりも基準画像特徴量に近ければ、メモリ１０７の内容を入力された画像データと画像特徴量に更新する。また、部品１１２がカメラ１１４の視野から外れ、部品１１２の位置情報が「０」以外から「０」に変化したら、そのときにメモリ１０７に保存されている画像データを読み出し、画像出力インタフェース１０９に出力する。
【００３８】
（Ｓ５画像を出力）
画像出力インタフェース１０９は、入力したパラレル信号である画像データを、例えば７逓倍でシリアライズし、カメラリンク等の映像信号規格に則って１０対の差動信号線にのせ出力する。出力された映像信号は、外部のフレームグラバボードなどで受信され、処理される。
【００３９】
以上の処理により、部品１１２が目標撮影位置を通過したときに、サンプル画像に最も近い画像特徴量を有する画像データを撮影することができるので、部品１１２の位置姿勢認識に失敗する可能性を低く抑えることができる。
【００４０】
（第一の実施例）
上記の第一の実施形態を実施するためにより一つの実施例を挙げて、具体的に各構成要素の詳細を説明する。
【００４１】
まず、本実施形態で前提とする座標系について説明する。図３における画像データに関して本実施形態で用いられる座標系を示す。座標系は、カメラ１１４で撮影可能な２０４８×２０４８画素の画像エリア上に構成し、画像エリアの図３中の紙面の水平方向の右向きをｘ方向、垂直方向の下向きをｙ方向と定義する。座標の原点（ｘ＝１、ｙ＝１）は、画像エリアの左上の点である。例えば画像エリアの右上の点は（ｘ＝２０４８、ｙ＝１）、左下の点は（ｘ＝１、ｙ＝２０４８）、右下の点は（ｘ＝２０４８、ｙ＝２０４８）である。
【００４２】
図３には部品１１２を把持しているロボットハンド１１３が撮像された画像データが示されている。
【００４３】
部品１１２は、製品を構成する、例えば５０ｍｍ×５０ｍｍ以内の大きさの物体である。部品１１２は、パレットの上に厳密な位置決めがされることなく置かれており、ロボットハンド１１３によりピックアップされ、製品組立のためワークの位置まで搬送される。部品１１２は、ロボットハンド１１３にピックアップされた状態ではどのような姿勢をとっているか不明である。本発明に基づく動体撮影装置により“視覚情報”として画像を撮影した後に、画像処理により部品１１２の位置姿勢を計測して、ロボットハンドにより部品１１２の姿勢を修正した上で、部品がワーク（不図示）に組み付けられる。
【００４４】
作業台に設置されたロボットハンド１１３は、例えば３本の指を備えて部品１１２を安定的に把持し、作業台に設けられた５００ｍｍ×５００ｍｍの作業領域を、予め教示した軌道に沿って搬送できる。ロボットハンド１１３は、部品１１２を毎秒２０００ｍｍの速度で搬送する。本実施形態では、部品１１２を把持したロボットハンド１１３を、カメラ１１４の視野内を毎秒２０００ｍｍの一定速度で移動するように予め教示しておく。このとき、部品１１２はカメラ１１４の視野中心付近を通り、移動方向は撮影される画像エリアでｘ方向に近い方向となるように教示する。すなわち、画像エリアの左端（ｘ＝１）から現れて、ほぼｘ方向へ直線的に移動し、画像エリアの右端（ｘ＝２０４８）へ消失するように教示する。なお、ロボットハンド１１３は、後述するカメラ１１４から撮影される面が黒色に塗装されており、カメラ１１４から撮影されるロボットハンド１１３の背景も、黒色としており余分な反射光の発生を抑える工夫がされている。本実施形態では画像内でのｘ方向の中心（ｘ＝１０２４）を目標撮影位置とする。もちろん目標撮影位置は撮影環境等の都合に応じて、任意のｘ座標を目標撮影位置としてもよいし、ｘ方向ではなくｙ方向の座標を目標撮影位置としてもよい。
【００４５】
次に、カメラ１１４を構成する撮像素子１０１とレンズ１０２と演算部１１５について説明する。
【００４６】
撮像素子１０１は、約４メガピクセル（２０４８×２０４８画素）の空間解像度を持ち、各画素は８ｂｉｔのｂｉｔ深度を持ち、１０対のＬＶＤＳ信号により画像を出力する。４メガピクセルを出力する場合のフレームレートは例えば１６０ｆｐｓである。撮像素子１０１とレンズ１０２を組み合わせた撮像光学系は、１００ｍｍ×１００ｍｍの撮影視野を持ち、画素分解能は、約５０μｍ×５０μｍである。撮像素子１０１は、ＳＰＩ（ＳｅｒｉａｌＰｅｒｉｐｈｅｒａｌＩｎｔｅｒｆａｃｅ）等の通信を介して撮像素子１０１に内蔵するレジスタへ設定値を書き込んだ上で、約４メガピクセル（２０４８×２０４８画素）の画像を読み出す。撮像素子１０１は、一定のフレームレートで連続的に画像を撮影する動画撮影モードを備える。撮像素子１０１は、各撮影フレームで、信号伝送中は垂直同期信号がＨｉｇｈとなる。本実施形態においては、まず撮像素子１０１を動画撮影モードとして機能させる設定値を、コントローラ１０３を介して撮像素子１０１に内蔵するレジスタへ書込み、撮像素子１０１を動画撮影モードに設定する。撮像素子１０１が撮影した画像は、後述する画像入力インタフェース１０４へ出力される。
【００４７】
演算部１１５は、コントローラ１０３、画像入力インタフェース１０４、画像特徴量計算手段１０６、メモリ１０７、画像選択手段１０８、画像出力インタフェース１０９を搭載する電子回路基板である。なお、コントローラ１０３、画像特徴量計算手段１０６、画像選択手段１０８は、例えば電子回路基板上に実装されるＦＰＧＡデバイスの中の演算ブロックとして実装される。演算ブロックは、周知のＨＤＬ（ＨａｒｄｗａｒｅＤｅｓｃｒｉｐｔｉｏｎＬａｎｇｕａｇｅ）言語でのハードウェア記述を基にした合成回路と、ＦＰＧＡが備えるマクロ回路により実装される。また、回路面積、コスト、性能のバランスを考慮した上で、画像入力インタフェース１０４、画像出力インタフェース１０９をＦＰＧＡ内に実装してもよいし、ＦＰＧＡを使うことなく演算部１１５を構成してもよい。
【００４８】
画像入力インタフェース１０４は、撮像素子１０１から入力したＬＶＤＳ信号を、電子回路内で扱いやすいパラレル信号に変換する、周知のデシリアライザＩＣを用いる。（ＬＶＤＳ：（ＬｏｗＶｏｌｔａｇｅＤｉｆｆｅｒｅｎｔｉａｌＳｉｇｎａｌ：低電圧差動シグナリング））。もしくは、ＬＶＤＳ信号の入力が可能な周知のＦＰＧＡ（ＦｉｅｌｄＰｒｏｇｒａｍａｂｌｅＧａｔｅＡｒｒａｙ：機能を変更可能な集積回路）デバイスに入力し、パラレル信号に変換してもよい。デシリアライザＩＣとしては、ＬＶＤＳ信号の差動ペアを１０対入力できるものを用いる。デシリアライザＩＣとして、差動ペアの入力数が不足するものを複数個並列で用いてもよい。ここでは、画像入力インタフェース１０４の出力は、８０ｂｉｔ（８ｂｉｔ×１０ＴＡＰ）のパラレル信号、画素クロック信号、水平同期信号、垂直同期信号とし、画像特徴量計算手段１０６へ出力される。
【００４９】
演算部における画像特徴量計算手段１０６は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。画像特徴量計算手段１０６は画像入力インタフェース１０４から入力した８０ｂｉｔのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号からなる画像信号に対して、画像上における部品１１２の位置を検出する。加えて、照明条件と相関のある画像特徴量として、画像の輝度の総和値をも検出する。ここで、本実施形態では、ロボットハンド１１３およびその撮影背景は黒色であるため、画像特徴量計算手段１０６に入力される画像信号は、図４のような画像となる。まず、入力されたパラレル画像信号に対し、１画素を意味する８ｂｉｔ毎に、二値化処理を行い、二値画像を得る。二値化処理は、予め定めた閾値（例えば１２８）を超えればＨＩＧＨ（１）、閾値以下ならばＬＯＷ（０）とすることで実行する。二値画像のイメージを図５に示す。ただし、本実施形態では後述するように二値化処理は画素レベルでパイプライン処理されるので、図５のようなまとまった二値画像が保存されたり出力されたりするわけではないことを付記する。次に、部品１１２の位置情報を表す、二値画像の重心を計算する。
【００５０】
ここで、画素値が０か１である二値画像の重心を計算する方法について説明する。画像の重心とは、一般に、輝度値を質量とみなした時の質量分布の中心座標を表すもので、二値画像においては輝度値が１である複数の画素の中心座標となる。また、画像の重心を計算するために、画像の０次モーメント、画像の１次モーメントを利用する。画像のモーメントも、一般に、輝度値を質量とみなした時の重力のモーメントを表しており、二値画像における０次モーメントは、輝度値が１である画素数の総和を表し、二値画像における１次モーメントは、輝度値が１である画素の位置座標値の総和を表す。本実施形態では、水平方向について計算した画像の１次モーメントを画像の水平１次モーメント、垂直方向について計算した画像の１次モーメントを画像の垂直１次モーメントと呼ぶ。画像の重心の水平座標は、画像の水平１次モーメントに画像の０次モーメントの逆数を乗じることにより計算でき、画像の重心の垂直座標は、画像の垂直１次モーメントに画像の０次モーメントの逆数を乗じることにより計算できる。
【００５１】
以上を踏まえ、得られた二値信号に対して画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントを計算する。画像特徴量計算手段１０６では、ＦＰＧＡの演算ブロック内に、以下のレジスタを備えている。すなわち、画素クロックに同期してインクリメントされて水平同期信号に同期してリセットされる水平座標レジスタと、水平同期信号に同期してインクリメントされて垂直同期信号に同期してリセットされる垂直座標レジスタとを備えている。加えて画像の０次モーメントの累積値を保持する０次モーメントレジスタと画像の水平１次モーメントの累積値を保持する水平１次モーメントレジスタと画像の垂直１次モーメントの累積値を保持する垂直１次モーメントレジスタを備える。各レジスタは初期値として０を保持する。初めに１ｂｉｔの二値画像信号が入力されると、１ｂｉｔの値が０次モーメントレジスタの値に足しあわされる。同時に、（ｂｉｔの値×（水平座標レジスタの値））を計算し、水平１次モーメントレジスタの値に足しあわされる。同時に、（ｂｉｔの値×（垂直座標レジスタの値））を計算し、垂直１次モーメントレジスタの値に足しあわされる。以上の計算を、画素クロックに同期して全画素分（２０４８×２０４８）の回数繰り返す。このことにより、画像全体の、画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントが、それぞれ０次モーメントレジスタ、水平１次モーメントレジスタ、垂直１次モーメントレジスタに格納される。
【００５２】
次に、計算された画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントから、画像の重心を計算する。画像の重心の水平座標は、（水平１次モーメントレジスタ値÷０次モーメントレジスタ値）の式でハードウェア演算される。画像の重心の垂直座標は、（垂直１次モーメントレジスタ値÷０次モーメントレジスタ値）の式でハードウェア演算される。以上で求められた、画像の重心の水平座標、画像の重心の垂直座標が、部品１１２の位置情報となる。
【００５３】
また、演算部における画像特徴量計算手段１０６に入力される図４のような一連の画像データに対し、画像ごとにその画像データの輝度の総和値を計算する。画像特徴量計算手段１０６では、ＦＰＧＡの演算ブロック内に、画素クロックに同期して画像の輝度の総和値の累積値を保持する輝度総和レジスタを備える。レジスタは初期値として０を保持する。初めに８ｂｉｔの画像信号が入力されると、８ｂｉｔの値が輝度総和レジスタの値に足しあわされる。この計算を、画素クロックに同期して全画素分（２０４８×２０４８）の回数繰り返すことにより、画像全体の、画像の輝度の総和値が、輝度総和レジスタに格納される。
【００５４】
以上の演算で計算された部品１１２の位置情報、画像の輝度の総和値が、画像データとともに画像特徴量計算手段１０６から出力され、画像選択手段１０８に入力される。ここで、カメラ１１４の撮影視野に部品１１２が存在しない場合は、位置情報として「０」を出力する。なお、以上で述べた演算のうち、各画素における二値化処理と画像の０次モーメント、画像の水平１次モーメント、画像の垂直１次モーメントの計算のための累積計算は、パイプライン処理により行われる。すなわち、例えば全ての画素の二値化処理が終わるまで待つのではなく、２画素目の二値化処理を行っている時間には同時に１画素目の累積計算を行い、３画素目の二値化処理を行っている時間には同時に２画素目の累積計算を行う。
【００５５】
なお、本実施形態の説明では部品１１２の位置を画像から検出する方法として画像の二値化処理と画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントの計算を行ったうえで画像の重心を計算する方法を挙げた。一方、その他の、背景が黒色であることを前提とした周知の物体検出方法を用いてもよい。例えば、予め、カメラ１１４が撮影する画像と対応する解像度の、部品１１２のテンプレート画像をＦＰＧＡ内に格納し、周知のテンプレートマッチングを行う処理回路をＦＰＧＡに実装し、部品１１２の位置を検出してもよい。また、画像にノイズが混じり、部品１１２がカメラ１１４の撮影視野内に存在しなくても部品１１２が検出されてしまう場合には、画像の０次モーメントの値を閾値にして出力座標を「０」にするなどのフィルタ処理を施してもよい。
【００５６】
また、本実施形態の説明では照明条件と相関のある画像特徴量として画像の輝度の総和値を扱ったが、前述したような、照明条件と相関があることが事前に確かめられたその他の画像特徴量を用いてもよい。
【００５７】
メモリ１０７は、電子回路基板上に実装されるＲＡＭ（ランダムアクセスメモリ）であり、例えば１０個の２５６ＫＢｙｔｅＳＤＲＡＭ（ＳｙｎｃｈｒｏｎｕｓＤｙｎａｍｉｃＲＡＭ）である。各ＳＤＲＡＭのｂｉｔ幅は８ｂｉｔとする。ＳＤＲＡＭは、ＲＯＷアドレスとＣＯＬＵＭＮアドレスを指定し、同期信号に同期して読み出しと書き込みを行うことができる。
【００５８】
画像選択手段１０８は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。画像選択手段１０８は、画像特徴量計算手段１０６から、画像の重心の水平座標、画像の重心の垂直座標からなる部品１１２の位置情報を入手する。加えて、画像の輝度の総和値、および、８０ｂｉｔのパラレル信号と画素クロック信号と水平同期信号と垂直同期信号からなる画像信号をも入力する。また、コントローラ１０３から基準画像特徴量を入力する。画像選択手段１０８は、メモリ１０７にアクセスするためのメモリインタフェースを持つ。メモリインタフェースの演算ブロックは、１０個のＳＤＲＡＭに合わせて並列に１０ブロック用意する。メモリインタフェースは、垂直同期信号がＨＩＧＨになったとき、メモリアクセスを開始し、画素クロック信号をメモリアクセスの同期信号としてＳＤＲＡＭに供給する。また、画素クロック信号に同期してＲＯＷアドレスをインクリメントし、水平同期信号に同期してＣＯＬＵＭＮアドレスをインクリメントすることでＳＤＲＡＭにアクセスするアドレスを設定する。垂直同期信号がＬＯＷになったとき、メモリアクセスを終了する。メモリ１０７には、画像特徴量が最も基準画像特徴量に合致する、１フレーム分の画像データと画像特徴量が格納されている。初期状態では、画像データ、画像特徴量ともに「０」を格納しておくものとする。
【００５９】
入力された部品１１２の位置情報が「０」である間、すなわち、カメラ１１４の視野内にまだ部品１１２が到達していない間は、処理を行わず、次に入力される画像データと画像特徴量を待機する。次に、部品１１２の位置情報が「０」から「０」以外に変化したら、メモリ１０７に保存されている画像特徴量と入力された画像特徴量を比較する。そして入力した画像特徴量が、メモリ１０７に格納されている画像の画像特徴量よりも、コントローラ１０３から入力した基準画像特徴量との合致度が高いか否かを判定する。入力した画像特徴量の方が、メモリ１０７に格納されている画像の画像特徴量よりも合致度が高ければ、入力した画像信号および画像特徴量によりメモリ１０７の内容を更新し、合致度が低ければ、更新せずに、入力した画像データおよび画像特徴量を破棄する。
【００６０】
最後に、部品１１２の位置情報が「０」以外から「０」に変化したら、その時点でメモリ１０７に格納されている画像データを読み出し、画像出力インタフェース１０９に出力する。
【００６１】
ここで、入力した画像特徴量の基準画像特徴量に対する合致度が、メモリ１０７に格納された画像特徴量よりも高いか否かを判定する方法を説明する。まず、部品１１２が、カメラ１１４の視野内に過不足なく収まっていることを判定する。入力した画像特徴量のうち、部品１１２の位置情報を参照し、画像の重心の水平座標が５１３以上でかつ１５３６以下であり、なおかつ画像の重心の垂直座標が５１３以上でかつ１５３６以下であればランクＡと判定し、そうでなければ、ランクＢと判定する。
【００６２】
次に、画像の輝度の総和値を評価する。入力した画像特徴量のうち、画像の輝度の総和値を参照し、基準画像特徴量との差分の絶対値を計算する。
【００６３】
最後に、メモリ１０７に格納された画像特徴量と入力された画像特徴量の、どちらが基準画像特徴量により合致するかを判定し、入力された画像特徴量に対し「優」または「劣」をランク付ける。入力された画像特徴量と同様の方法で、メモリ１０７に格納された画像特徴量がランクＡであるかランクＢであるか、あるいは「０」であるかを判定する。その上で、画像の輝度の総和値について基準画像特徴量との差分の絶対値を計算する。もしメモリ１０７に格納された画像特徴量が「０」であれば、ランクを「優」とする。メモリ１０７に格納された画像特徴量がランクＢである場合、入力された画像特徴量がランクＡであれば「優」とする。また、入力された画像特徴量がランクＢであり、入力された画像特徴量の基準画像特徴量との差分の絶対値がメモリ１０７に格納された画像特徴量以下であれば「優」、メモリ１０７に格納された画像特徴量よりも大きければ「劣」とする。メモリ１０７に格納された画像特徴量がランクＡである場合、入力された画像特徴量がランクＢであれば「劣」とする。また、入力された画像特徴量がランクＡであり、入力された画像特徴量の基準画像特徴量との差分の絶対値がメモリ１０７に格納された画像特徴量以下であれば「優」、メモリ１０７に格納された画像特徴量よりも大きければ「劣」とする。以上の判定を経て、入力された画像特徴量が「優」と判定されれば、基準画像特徴量への合致度が高いとみなし、入力した画像信号および画像特徴量によりメモリ１０７の内容を更新する。「劣」と判定されれば、更新せずに、入力した画像データおよび画像特徴量を破棄する。
【００６４】
なお、本実施形態では、メモリ１０７に格納された画像特徴量に対するランク付け、及び画像の輝度の総和値の基準画像特徴量との差分の絶対値の計算を、入力した画像特徴量に対する計算と同じタイミングで行った。一方、メモリ１０７に画像特徴量を格納する際に行ったランク付けと画像の輝度の総和値の基準画像特徴量との差分の絶対値の計算結果を保持しておき、再利用してもよい。
【００６５】
画像出力インタフェース１０９は、画像選択手段１０８から入力した８０ｂｉｔのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号を、カメラリンク等のＬＶＤＳ映像信号に変換する、周知のシリアライザＩＣを用いる。もしくは、ＬＶＤＳ信号の出力が可能なＦＰＧＡデバイスを用い、ＦＰＧＡ内でパラレル信号をシリアル信号に変換してもよい。画像出力インタフェース１０９から出力されたＬＶＤＳ信号は、外部のカメラリンクグラバボード等で受信され、プロセッサ等で画像処理される。
【００６６】
コントローラ１０３は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。コントローラ１０３は、予め撮像素子１０１に対しＳＰＩインタフェースを介して、連続撮影設定を指令して動画撮影モードにする。また、予め外部から入力した基準画像特徴量を、内部レジスタに保存しておき、基準画像特徴量を画像選択手段１０８に出力する。なお、基準画像特徴量は、予め画像処理アルゴリズムを決定した際に用いた画像データから、前述した算出方法と同一の方法により求めた、画像の重心の水平座標と画像の重心の垂直座標からなる部品１１２の位置情報と、画像の輝度の総和値である。
【００６７】
本実施形態によれば、予め画像処理アルゴリズムを決定した際に用いた画像データと類似した画像を撮影することができる。したがって、目標撮影位置付近を移動する部品１１２を捉えた複数の画像の中から、最も正常に画像処理を完了する可能性の高い、最良の一枚だけを出力することができる。そのため、目標撮影位置との位置ずれや、あおりによる照明条件の変化により、例えば蛍光灯等の外乱光が映り込むフレームが発生する、あるいは、影が映り込むフレームが一部発生するとしても、正しく部品１１２の位置姿勢を認識することができる。
【００６８】
（実施の形態２）
前述した第一の実施形態では、カメラ１１４から撮影されるロボットハンド１１３およびその背景は、部品の撮影およびその後の画像処理に有利なように黒色としていた。しかし実際の生産工場の現場などにおいては、撮影の背景に別の組立用部品が存在する場合などがありえる。したがって、撮影時にその背景を全て黒色にできるとは限らない。また、全てを黒色に設定できたとしても、外乱光の反射などにより表面が光り、明るくなる場合も考えられ、撮影の背景を黒色にできない場合があるという問題がある。
【００６９】
そこで、第二の実施形態として、撮影の背景に明るさがあっても、移動する部品に対して、予め想定した画像に類似した照明条件の画像を撮影する背景除去処理を用いた動体撮影装置について説明する。
【００７０】
図６に、本発明の第二の実施形態に係る画像撮像装置の構成を示す。本発明の第二の実施形態に係る動体撮影装置は、撮像素子１０１、レンズ１０２、演算部１１５から成るカメラ１１４と、部品１１２と、ロボットハンド１１３で構成される。演算部１１５はさらに、コントローラ１０３、画像入力インタフェース１０４、画像特徴量計算手段１０６、メモリ１０７、メモリ１１０、画像選択手段１０８、画像出力インタフェース１０９から構成される。ここで、本装置でロボットハンド１１３により把持されて移動する部品１１２を撮影するときの流れは、第一の実施形態と同様なので説明を省略し、ロボットハンド１１３、画像特徴量計算手段１０６について説明する。
【００７１】
まず、ロボットハンド１１３について説明する。ロボットハンド１１３は、例えば３本の指を備えて部品１１２を安定的に把持し、５００ｍｍ×５００ｍｍの作業領域を、予め教示した軌道に沿って搬送できる。ロボットハンド１１３は、部品１１２を最大２０００ｍｍ／ｓの速度で搬送可能である。本実施形態でも同様に、部品１１２を把持したロボットハンド１１３を、後述するカメラ１１４の視野内を２０００ｍｍ／ｓの一定速度で移動される。このとき、部品１１２はカメラ１１４の視野中心付近を通り、移動方向は撮影される画像のｘ方向に近い方向となるようにする。すなわち、画像エリアの左端（ｘ＝１）から現れて、ほぼｘ方向へ直線的に移動し、画像エリアの右端（ｘ＝２０４８）へ消失するように移動させる。なお、カメラ１１４から撮影されるロボットハンド１１３の背景は、色、明るさ等の光学特性が時間とともに変化しないものとする。なお、本実施形態では画像内でのｘ方向の中心を目標撮影位置とするが、照明環境等に応じて、任意のｘ座標を目標撮影位置としてもよいし、ｘ方向ではなくｙ方向の座標を目標撮影位置としてもよい。
【００７２】
次に、メモリ１１０について説明する。メモリ１１０は、電子回路基板上に実装されるＲＡＭ（ランダムアクセスメモリ）であり、例えば１０個の２５６ＫＢｙｔｅＳＤＲＡＭ（ＳｙｎｃｈｒｏｎｕｓＤｙｎａｍｉｃＲＡＭ）である。各ＳＤＲＡＭのｂｉｔ幅は８ｂｉｔとする。ＳＤＲＡＭは、ＲＯＷアドレスとＣＯＬＵＭＮアドレスを指定し、同期信号に同期して読み出しと書き込みを行うことができる。
【００７３】
次に、画像特徴量計算手段１０６について説明する。画像特徴量計算手段１０６は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。画像特徴量計算手段１０６は画像入力インタフェース１０４から入力した８０ｂｉｔのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号からなる画像信号に対して、画像上における部品１１２の位置を検出する。加えて、照明条件と相関のある画像特徴量として、画像の輝度の総和値を検出する。また、画像特徴量計算手段１０６は、メモリ１１０にアクセスするためのメモリインタフェースを持つ。メモリインタフェースの演算ブロックは、１０個のＳＤＲＡＭに合わせて並列に１０ブロック用意する。メモリインタフェースは、垂直同期信号がＨＩＧＨになったとき、メモリアクセスを開始し、画素クロック信号をメモリアクセスの同期信号としてＳＤＲＡＭに供給する。また、画素クロック信号に同期してＲＯＷアドレスをインクリメントし、水平同期信号に同期してＣＯＬＵＭＮアドレスをインクリメントすることでＳＤＲＡＭにアクセスするアドレスを設定する。垂直同期信号がＬＯＷになったとき、メモリアクセスを終了する。メモリ１１０には、１フレーム前の画像信号が格納されている。
【００７４】
ここで、本実施形態では、画像特徴量計算手段１０６に入力される画像信号は、図７のような画像となる。まず、入力されたパラレル画像信号に対し、画像の輝度の総和値を計算する。画像特徴量計算手段１０６では、ＦＰＧＡの演算ブロック内に、画素クロックに同期して画像の輝度の総和値の累積値を保持する輝度総和レジスタを備える。レジスタは初期値として０を保持する。初めに８ｂｉｔの画像信号が入力されると、８ｂｉｔの値が輝度総和レジスタの値に足しあわされる。この計算を、画素クロックに同期して全画素分（２０４８×２０４８）の回数繰り返すことにより、画像全体の、画像の輝度の総和値が、輝度総和レジスタに格納される。
【００７５】
次に、以上の処理とともに行う、部品１１２の位置情報を計算する処理について説明する。
【００７６】
まず、入力されたパラレル画像信号と、画素クロック信号と水平同期信号と垂直同期信号に同期してメモリインタフェースを介してメモリ１１０から読み出す１フレーム前の画像との差分値を、１画素ずつ順に計算する。次に、各画素の差分値に対し、二値化処理を行う。二値化処理は、予め定めた閾値（例えば１２８）を超えればＨＩＧＨ（１）、閾値以下ならばＬＯＷ（０）とすることで実行する。二値化された画像のイメージを図８に示す。ただし、本実施形態では後述するように二値化処理は画素レベルでパイプライン処理されるので、図８のようなまとまった二値画像が保存されたり出力されたりするわけではないことを付記する。
【００７７】
次に、得られた二値信号に対して画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントを計算する。画像特徴量計算手段１０６では、ＦＰＧＡの演算ブロック内に、以下のレジスタを備えている。すなわち画素クロックに同期してインクリメントされて水平同期信号に同期してリセットされる水平座標レジスタと、水平同期信号に同期してインクリメントされて垂直同期信号に同期してリセットされる垂直座標レジスタである。加えて、画像の０次モーメントの累積値を保持する０次モーメントレジスタと画像の水平１次モーメントの累積値を保持する水平１次モーメントレジスタと画像の垂直１次モーメントの累積値を保持する垂直１次モーメントレジスタを備える。各レジスタは初期値として０を保持する。初めに１ｂｉｔの二値画像信号が入力されると、１ｂｉｔの値が０次モーメントレジスタの値に足しあわされる。同時に、（ｂｉｔの値×（水平座標レジスタの値））を計算し、水平１次モーメントレジスタの値に足しあわされる。同時に、（ｂｉｔの値×（垂直座標レジスタの値））を計算し、垂直１次モーメントレジスタの値に足しあわされる。以上の計算を、画素クロックに同期して全画素分（２０４８×２０４８）の回数繰り返す。そのことにより、画像全体の、画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントが、それぞれ０次モーメントレジスタ、水平１次モーメントレジスタ、垂直１次モーメントレジスタに格納される。
【００７８】
次に、計算された画像の０次モーメントと画像の水平１次モーメントと画像の垂直１次モーメントから、画像の重心を計算する。画像の重心のｘ座標は、（水平１次モーメントレジスタ値÷０次モーメントレジスタ値）の式でハードウェア演算される。画像の重心のｙ座標は、（垂直１次モーメントレジスタ値÷０次モーメントレジスタ値）の式でハードウェア演算される。以上の演算で計算された部品１１２の位置情報、画像の輝度の総和値が、画像データとともに画像特徴量計算手段１０６から出力され、画像選択手段１０８に入力される。ここで、カメラ１１４の撮影視野に部品１１２が存在しない場合は、位置情報として「０」を出力する。なお、以上で述べた演算のうち、各画素における二値化処理と画像の０次モーメント、画像の水平１次モーメント、画像の垂直１次モーメントの計算のための累積計算は、パイプライン処理により行われる。すなわち、例えば全ての画素の二値化処理が終わるまで待つのではなく、２画素目の二値化処理を行っている時間には同時に１画素目の累積計算を行い、３画素目の二値化処理を行っている時間には同時に２画素目の累積計算を行う。最後に、入力されたパラレル画像信号を、画素クロック信号と水平同期信号と垂直同期信号によりメモリインタフェースを介してメモリ１１０に上書きし、１０個のＳＤＲＡＭに、１フレーム分の画像を記憶する。この記憶画像は、次のフレームにおいて、１フレーム前の画像として使用される。
【００７９】
なお、本実施形態の説明では部品１１２の撮影の背景をフレーム間差分により除去する方法を挙げたが、その他の、周知の背景除去処理を用いてもよい。例えば、メモリ１１０を不揮発メモリとして、メモリ１１０に予め部品１１２およびロボットハンド１１３の映っていない背景画像を格納しておき、その差分を計算して背景を除去してもよいし、その他の背景を除去するアルゴリズムを用いてもよい。また、画像にノイズが混じり、部品１１２がカメラ１１４の撮影視野内に存在しなくても部品１１２が検出されてしまう場合には、画像の０次モーメントの値を閾値にして出力座標を「０」にするなどのフィルタ処理を施してもよい。また、本実施形態の説明では照明条件と相関のある画像特徴量として画像の輝度の総和値を扱ったが、前述したような、照明条件と相関があることが事前に確かめられたその他の画像特徴量を用いてもよい。
【００８０】
本実施形態によれば、カメラ１１４から撮影されるロボットハンド１１３の背景が黒色でなく明るさを持っていても、良好な撮影が可能である。すなわち、目標撮影位置付近を移動する部品１１２を捉えた複数の画像の中から、最も正常に画像処理を完了する可能性の高い、最良と想定される一枚を出力することができる。そのため、背景を黒くすることが困難な状況においても、正しく部品１１２の位置姿勢を認識することができる。
【００８１】
本発明の撮影方法を実行するカメラとロボットハンドとを備えたロボット装置によって行われる物品の生産方法を実行することで、ロボットハンドが把持した対象物を効果的に動体撮影することが可能となるため効果的に生産活動を行うことができる。
【００８２】
（実施の形態３）
前述した第一の実施形態では、移動する部品を連続的に撮影し、照明条件が最も基準に近い画像を選択していた。
【００８３】
しかし実際の生産工場の現場などにおいては、部品の製造ばらつきやロボットハンドあるいは固定治具による部品把持のばらつきなどにより部品の見え方が変化し、静止状態にある部品であっても、所望の照明条件に近い照明条件の画像が得られない場合がある。そのため、あるサンプルでは所望の照明条件に合わせることができても、常に所望の照明条件の部品画像を撮影することはできずに、部品の位置姿勢の認識に失敗する場合があるという問題がある。
【００８４】
そこで、第三の実施形態として、部品の製造ばらつきやロボットハンドによる部品把持のばらつきなどがあっても、部品に対して、予め想定した画像に類似した照明条件の画像を撮影する撮影装置について説明する。
【００８５】
図８に、本発明の第三の実施形態に係る画像撮像装置の構成を示す。本発明の第三の実施形態に係る撮影装置は、撮像素子１０１、レンズ１０２、演算部１１５から成るカメラ１１４と、照明手段１１６と、部品１１２と、ロボットハンド１１３で構成される。演算部１１５はさらに、コントローラ１０３、画像入力インタフェース１０４、画像特徴量計算手段１０６、メモリ１０７、画像選択手段１０８、画像出力インタフェース１０９から構成される。ここで、本装置でロボットハンド１１３により把持されて移動する部品１１２を撮影するときの流れは、第一の実施形態と同様なので説明を省略し、撮像素子１０１、照明手段１１６、コントローラ１０３について説明する。
【００８６】
まず、撮像素子１０１について説明する。撮像素子１０１は、約４メガピクセル（２０４８×２０４８画素）の空間解像度を持ち、各画素は８ｂｉｔのｂｉｔ深度を持ち、１０対のＬＶＤＳ信号により画像を出力する。４メガピクセルを出力する場合のフレームレートは例えば１６０ｆｐｓである。撮像素子１０１とレンズ１０２を組み合わせた撮像光学系は、１００ｍｍ×１００ｍｍの撮影視野を持ち、画素分解能は、約５０μｍ×５０μｍである。撮像素子１０１は、ＳＰＩ（ＳｅｒｉａｌＰｅｒｉｐｈｅｒａｌＩｎｔｅｒｆａｃｅ）等の通信を介して撮像素子１０１に内蔵するレジスタへ設定値を書き込んだ上で、約４メガピクセル（２０４８×２０４８画素）の画像を読み出す。撮像素子１０１は、撮影トリガの入力に応じて一枚の画像を撮影するトリガ撮影モードを備える。撮像素子１０１は、各撮影フレームで、信号伝送中は垂直同期信号がＨｉｇｈとなる。本実施形態においては、まず撮像素子１０１をトリガ撮影モードとして機能させる設定値を、コントローラ１０３を介して撮像素子１０１に内蔵するレジスタへ書込み、撮像素子１０１をトリガ撮影モードに設定する。撮像素子１０１が撮影した画像は、後述する画像入力インタフェース１０４へ出力される。
【００８７】
次に、照明手段１１６について説明する。照明手段１１６は、光源位置、照射強度、照射角度、発光波長の少なくとも一つを変化させることができる照明装置である。照明の形状としては、例えばバー照明、同軸落射照明、ドーム照明、スポット照明、面照明等の工業用として一般的に使用される形状の照明を用いることができる。また、部品１１２に応じて、一般的でない特殊な形状の照明を用いてもよい。照明手段１１６は、１台で構成しても、複数台の照明で構成してもよい。
【００８８】
照明手段１１６の光源位置を変化させる場合には、例えば発光部を複数の発光ブロックに分割し、各発光ブロックを独立に調光できるように構成した上で、各発光ブロックの点灯／消灯および調光値を変化させることで光源位置を変化させる。もしくは、照明手段１１６を複数の照明装置で構成し、各照明装置を独立に調光できるように構成した上で、各照明装置の点灯／消灯および調光値を変化させることで光源位置を変化させてもよい。もしくは、１つまたは複数の照明装置の発光部に可動部を設けることにより光源位置を変化させてもよい。
【００８９】
照明手段１１６の照射強度を変化させる場合には、例えば１つもしくは複数の照明装置を調光可能にした上で、調光値を変化させることにより照射強度を変化させる。以上で述べた複数の発光ブロックもしくは複数の照明は、様々な発光波長を有してもよい。
【００９０】
照明手段１１６の照射角度を変化させる場合には、例えば発光部を複数の発光ブロックに分割し、各発光ブロックを独立に調光できるように構成した上で、各発光ブロックの点灯／消灯および調光値を変化させることで照射角度を変化させる。このとき、例えば光源がＬＥＤなどの、光の照射方向に指向性を有する場合には、予め各発光ブロックの光源の実装方向を変化させておいてもよい。もしくは、照明手段１１６を複数の照明装置で構成し、各照明装置を様々な方向に向けて構成した上で、各照明装置の点灯／消灯および調光値を変化させることで照射角度を変化させてもよい。もしくは、１つまたは複数の照明装置の発光部に可動部を設けることにより照射角度を変化させてもよい。
【００９１】
照明手段１１６の発光波長を変化させる場合にはまず、例えば発光部を複数の発光ブロックに分割し、各発光ブロックは別々の発光波長で光を照射するように光源を配置し、各発光ブロックを独立に調光できるように構成するとよい。そうした上で、各発光ブロックの点灯／消灯および調光値を変化させることで発光波長を変化させる。もしくは、照明手段１１６を複数の照明装置で構成し、各照明装置は別々の発光波長で光を照射するように構成した上で、各照明装置の点灯／消灯および調光値を変化させることで発光波長を変化させてもよい。もしくは、１つまたは複数の照明装置の発光部に切替可能な波長フィルタを設けることにより発光波長を変化させてもよい。
【００９２】
また、照明手段１１６は光源位置、照射強度、照射角度、発光波長のどれか１つだけでなく、複数を変化させてもよい。
【００９３】
照明手段１１６は様々な形状・形態をとりうるが、本実施形態では、カメラ１１４の光軸と同心円状のリング照明とし、その発光部は、図９に示すように、例えば８つの発光ブロックに分割されているものとする。各々の発光ブロックは、コントローラ１０３から入力する調光指令により調光し、調光値がゼロであれば消灯するものとする。
【００９４】
次に、コントローラ１０３について説明する。コントローラ１０３は、電子回路基板上に実装されるＦＰＧＡデバイスの中に実装される演算ブロックである。コントローラ１０３は、予め撮像素子１０１に対しＳＰＩインタフェースを介して、トリガ撮影設定を指令してトリガ撮影モードにする。また、予め外部から入力した基準画像特徴量を、内部レジスタに保存しておき、基準画像特徴量を画像選択手段１０８に出力する。なお、基準画像特徴量は、予め画像処理アルゴリズムを決定した際に用いた画像データから、実施の形態１で述べた算出方法と同一の方法により求めた、画像の重心の水平座標と画像の重心の垂直座標からなる部品１１２の位置情報と、画像の輝度の総和値である。コントローラ１０３は、照明手段１１６の各ブロックに対する発光指令出力と、撮像素子１０１に対する撮影トリガ出力を備える。
【００９５】
次に、撮影時の画像データの取得の流れを図２に示すフローチャートに基づき説明する。なお、フローチャートのＳ２からＳ５は実施の形態１の説明と同様のため省略し、Ｓ１についてのみ説明する。
【００９６】
（Ｓ１複数の画像データ取得）
撮像素子１０１は、初期設定によりトリガ撮影モードに設定されており、トリガ入力を待機する。コントローラ１０３は、照明手段１１６の図９に示す発光ブロックのうち、Ａブロックに調光指令を出力してＡブロックを発光させた後に、撮像素子１０１に撮影トリガを出力して画像を撮影する。撮影が終了したら、Ｂブロックに調光指令を出力してＢブロックを発光させた後に、撮像素子１０１に撮影トリガを出力して画像を撮影する。同様にして（Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ａ、Ｂ、Ｃ、・・・）の順に照明手段１１６の各ブロックを調光指令により発光させた後に撮像素子１０１へ撮影トリガを出力して画像を撮影することを繰返す。結果として、光源位置と照射角度を変化させた、照明条件の異なる画像データが連続的に撮影される。
【００９７】
なお、本実施形態では、８つの発光ブロックを有するリング照明により光源位置と照射角度を変化させた画像データを得る手順を示した。さらには、より多くの発光ブロックを有する照明を用いて光源位置と照射角度をより細かく変化させてもよいし、調光値を変化させることにより照射強度の異なる画像データを撮影してもよい。また、前述したように１つではなく複数の照明装置を用いて照明条件を変化させてもよい。また、本実施形態では光源位置と照射角度を変化させた場合の撮影方法について説明したが、照射強度、発光波長を変化させる場合も同様に、照明条件を変化させるたびに調光指令と撮影トリガを出力して撮影を実施すればよい。また、照明手段１１６は光源位置、照射強度、照射角度、発光波長のどれか１つだけでなく、複数を変化させてもよい。
【００９８】
なお、複数の画像データを取得する手段としては、トリガ撮影モードに限らず、動画モードで連続的に画像データを取得し、その取得周期に合わせて照明手段１１６の各発光ブロックを発光させてもよい。
【００９９】
本実施形態によれば、カメラ１１４から撮影される部品１１２の製造ばらつきがあったり、ロボットハンド１１３により部品１１２を把持した際の把持ばらつきがあったりした場合でも対応可能である。すなわち、部品１１２を最も正常に画像処理できる可能性の高い、最良と想定される一枚を出力することができる。そのため、正しく部品１１２の位置姿勢を認識することができる。
【産業上の利用可能性】
【０１００】
本発明は、組み立てロボットシステムに好適に利用される。
【符号の説明】
【０１０１】
１０１撮像素子
１０２レンズ
１０３コントローラ
１０４画像入力インタフェース
１０６画像特徴量計算手段
１０７メモリ
１０８画像選択手段
１０９画像出力インタフェース
１１０メモリ
１１２部品
１１３ロボットハンド
１１４カメラ
１１５演算手段
１１６照明手段
【図１】
2019145177.tif 000003
【図２】
2019145177.tif 000004
【図３】
2019145177.tif 000005
【図４】
2019145177.tif 000006
【図５】
2019145177.tif 000007
【図６】
2019145177.tif 000008
【図７】
2019145177.tif 000009
【図８】
2019145177.tif 000010
【図９】
2019145177.tif 000011
【図１０】
2019145177.tif 000012