(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-19
(45)【発行日】2024-04-30
(54)【発明の名称】画像処理方法および撮影装置
(51)【国際特許分類】
G06T 7/70 20170101AFI20240422BHJP
【FI】
G06T7/70 Z
(21)【出願番号】P 2021125342
(22)【出願日】2021-07-30
(62)【分割の表示】P 2019105604の分割
【原出願日】2015-04-15
【審査請求日】2021-08-25
【審判番号】
【審判請求日】2023-02-21
(31)【優先権主張番号】P 2014093086
(32)【優先日】2014-04-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】山本 健吉
【合議体】
【審判長】高橋 宣博
【審判官】五十嵐 努
【審判官】板垣 有紀
(56)【参考文献】
【文献】国際公開第2006/088042(WO,A1)
【文献】特開平9-288060(JP,A)
【文献】特開平11-339014(JP,A)
【文献】特開2008-275414(JP,A)
【文献】特開2008-9695(JP,A)
【文献】橋本 学,顔画像認識技術,画像ラボ 第16巻 第8号,日本,日本工業出版株式会社,2005年,第16巻,pp.14-17
(58)【調査した分野】(Int.Cl.,DB名)
G06T7/00
G06V10/00-20/90
(57)【特許請求の範囲】
【請求項1】
撮像光学系の視野内の同一の対象物を撮像して得られた少なくとも2つの画像データを取得し、
前記2つの画像データのそれぞれについて、前記撮像光学系の視野内の前記
同一の対象物の少なくとも一部の明るさの違いに相関した画像特徴量を算出し、
前記2つの画像データを取得した後に、前記2つの画像データのそれぞれの前記画像特徴量に
基づいて、前記2つの画像データのそれぞれに対して互いに異なる処理をし、
前記2つの画像データのうちの一方の画像データを取得するための撮像時と、前記2つの画像データのうちの他方の画像データを取得するための撮像時と、で、前記
同一の対象物を照明する照明手段の光源位置、照射強度、照射角度、発光波長の少なくとも一つが異なる、
ことを特徴とする画像処理方法。
【請求項2】
前記2つの画像データのうちの一方の画像データを取得するための撮像時と、前記2つの画像データのうちの他方の画像データを取得するための撮像時と、の間に、前記
同一の対象物が移動していることを特徴とする請求項1に記載の画像処理方法。
【請求項3】
前記2つの画像データのそれぞれに対する前記処理の一方は、前記2つの画像データのうちの一方の画像データを破棄する処理を含むことを特徴とする請求項1または2に記載の画像処理方法。
【請求項4】
前記2つの画像データのそれぞれに対する前記処理を、前記2つの画像データのそれぞれの画像特徴量と、前記2つの画像データを取得する前に取得しておいた基準量と、の合致度に基づいて判定することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理方法。
【請求項5】
前記2つの画像データのそれぞれに対する前記処理の後に、前記2つの画像データのうちのいずれかに対応した映像信号を画像処理することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理方法。
【請求項6】
請求項1乃至5のいずれか1項に記載の画像処理方法をコンピュータに実行させる画像処理プログラム。
【請求項7】
撮像光学系で撮像された画像の画像データを取得する演算手段と、
対象物を照明する照明手段と、を備えるシステムであって、
前記演算手段は、前記撮像光学系で撮像された2つの画像データのそれぞれについて、前記撮像光学系の視野内の
同一の対象物の少なくとも一部の明るさの違いに相関した画像特徴量を算出し、
前記演算手段は、前記照明手段の光源位置、照射強度、照射角度、発光波長の少なくとも一つが、前記2つの画像データのうちの一方の画像データを取得するための撮像時と、前記2つの画像データのうちの他方の画像データを取得するための撮像時と、で異なるように、前記照明手段を制御し、
前記演算手段は、前記2つの画像データを取得した後に、前記2つの画像データのそれぞれの前記画像特徴量に
基づいて、前記2つの画像データのそれぞれに対して互いに異なる処理をすることを特徴とするシステム。
【請求項8】
前記2つの画像データのそれぞれに対する前記処理の一方は、前記2つの画像データのうちの一方の画像データを破棄する処理を含むことを特徴とする請求項7に記載のシステム。
【請求項9】
前記2つの画像データのそれぞれに対する前記処理の他方は、前記2つの画像データのうちの他方の画像データを保存する処理を含むとともに、前記他方の画像データの前記画像特徴量を保存することを特徴とする請求項8に記載のシステム。
【請求項10】
前記2つの画像データのそれぞれに対する前記処理の他方は、前記他方の画像データに基づく映像信号を生成する処理を含むことを特徴とする請求項7乃至9のいずれか1項に記載のシステム。
【請求項11】
前記画像特徴量が、前記画像データにおける複数の画素の各々の明るさを示す値の和に基づく値であることを特徴とする請求項7乃至10のいずれか1項に記載のシステム。
【請求項12】
前記演算手段は、前記2つの画像データのうちの一方の画像データの前記画像特徴量と、前記2つの画像データのうちの他方の画像データの前記画像特徴量と、の比較に基づいて、前記2つの画像データのそれぞれに対する前記処理を判定することを特徴とする請求項7乃至11のいずれか1項に記載のシステム。
【請求項13】
前記演算手段は、前記2つの画像データそれぞれの前記画像特徴量と、前記2つの画像データを取得する前に取得しておいた基準量と、の合致度に基づいて、前記2つの画像データのそれぞれに対する前記処理を判定することを特徴とする請求項7乃至12のいずれか1項に記載のシステム。
【請求項14】
前記2つの画像データのうち、前記合致度が低い方の画像データを破棄することを特徴とする請求項13に記載のシステム。
【請求項15】
前記演算手段は、前記2つの画像データのそれぞれに対して互いに異なる前記処理をする前に、前記2つの画像データのそれぞれにおける前記
同一の対象物の背景の明るさに対応する情報を除去する処理を行うことを特徴とする請求項7乃至14のいずれか1項に記載のシステム。
【請求項16】
前記
同一の対象物を移動させる移動手段をさらに備えることを特徴とする請求項7乃至15のいずれか1項に記載のシステム。
【請求項17】
前記2つの画像データのうちのいずれかの画像データを用いて、前記
同一の対象物の位置姿勢を認識することを特徴とする請求項7乃至16のいずれか1項に記載のシステム。
【請求項18】
撮像光学系と、
前記撮像光学系の視野内の対象物を照明する照明手段と、
前記撮像光学系で撮像された画像の画像データを取得する演算手段と
前記撮像光学系の視野内の対象物を移動させる移動手段と、
を備えるシステムであって、
前記照明手段は、前記撮像光学系の視野内の
同一の対象物の少なくとも一部の明るさが、前記撮像光学系で撮像された2つの画像データのうちの一方の画像データを取得するための撮像時と、前記2つの画像データのうちの他方の画像データを取得するための撮像時と、で、前記照明手段の光源位置、照射強度、照射角度、発光波長の少なくとも一つが異なるように制御され、
前記移動手段は、前記2つの画像データのうちの一方の画像データを取得するための撮像時と、前記2つの画像データのうちの他方の画像データを取得するための撮像時と、の間に、前記撮像光学系の視野内を前記
同一の対象物が移動するように制御され、
前記演算手段は、前記撮像光学系の視野内の前記
同一の対象物の少なくとも前記一部の明るさの違いに相関した前記2つの画像データの情報に基づいて、前記2つの画像データのそれぞれ
に対して互いに異なる処理
をすることを特徴とするシステム。
【請求項19】
前記2つの画像データのそれぞれに対する前記処理の一方は、前記2つの画像データのうちの一方の画像データを破棄する処理を含むことを特徴とする請求項18に記載のシステム。
【請求項20】
請求項1乃至6のいずれか1項に記載の画像処理方法を用いた物品の生産方法であって、前記
同一の対象物が前記物品の少なくとも一部であって、前記2つの画像データのうちのいずれかの画像データを用いて前記
同一の対象物の位置姿勢を認識し、前記認識の結果に基づいて前記物品を生産することを特徴とする生産方法。
【請求項21】
請求項7乃至19のいずれか1項に記載のシステムを用いた物品の生産方法であって、前記
同一の対象物が前記物品の少なくとも一部であって、前記2つの画像データのうちのいずれかの画像データを用いて前記
同一の対象物の位置姿勢を認識し、前記認識の結果に基づいて、前記物品を生産することを特徴とする生産方法。
【請求項22】
請求項7乃至19のいずれか1項に記載のシステムを用いた物品の生産方法であって、前記
同一の対象物が前記物品の少なくとも一部であって、前記2つの画像データのうちのいずれかの画像データを用いて前記
同一の対象物の位置姿勢を認識し前記認識の結果に基づいて、前記
同一の対象物の位置姿勢を変更することを特徴とする生産方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はカメラを用いて物体を撮影する方法および装置に関する。
【背景技術】
【0002】
ロボットを使った製品の自動組立では、供給された部品をロボットが把持し、把持した部品をワークに組付ける、という作業が繰り返し行われる。ここで、供給された部品が厳密に位置決めされていない場合には把持工程の際に、カメラによる部品の位置姿勢計測が行われることがある。
【0003】
これは、把持した部品とロボットとの相対的な位置姿勢を、目標の位置姿勢に可能な限り一致させるためである。つまり、あらかじめ定められた目標値としての“部品の持ちかた”と、ロボットによる実測値としての“部品の持ちかた”を比較して、目標値と実測値とで差がある場合は目標値へ一致させる工程をロボットが実行する。そのことで、つかみ動作の後の工程で実行されるロボットによる組付け作業の精度を向上させる狙いがある。
【0004】
具体的な方法として、ロボットが部品を把持した後に、いったん部品をカメラの前まで搬送してロボットを停止させ、カメラで部品の静止画像を撮影し、得られた静止画像を画像処理することによりロボットに対する部品の位置姿勢を認識する方法が挙げられる。この認識結果に基づき、ロボットの姿勢を変えたり部品を持ちかえたりする工程をロボットが実行することで、部品をワークに組付ける工程が実行できる範囲に部品の位置姿勢が収まるように変更してから組付動作を行う。
【0005】
近年、カメラによる視覚情報を利用しつつロボットで製品の効率的に自動組立することが求められている。従って、さらなる時間当たりの生産性を向上させるためには、撮影の際に生じる、ロボットの減速、停止、始動、加速による部品の搬送時間の増分をできる限り削減することが効果的である。究極的には、カメラの前でロボットによる部品の搬送を停止させることなく、移動する部品をそのまま撮影すること(以降、「動体撮影(法)」と呼ぶ。)が望ましい。
【0006】
動体撮影法は、予めストックしておいた対象物のサンプル画像(目標値)と、動体撮影された対象物の画像(実測値)を比較し、一致度に応じて被測定物を認識する方法である。
【0007】
認識精度の高い動体撮影を実行するためには、画像処理アルゴリズムを決定し、その画像処理アルゴリズムに対応して目標値としてストックされている対象物のサンプル画像に対応して、実測においても同等の分解能で対象物が動体撮影される必要がある。
【0008】
なおかつ、影や外乱光の写りこみ等の照明条件ができるだけ一致した状態で撮影される必要もある。
【0009】
例えば、対象物としての部品に対して部品上に設けられたマークを利用して、その部品の位置姿勢を計測する画像処理アルゴリズムを使用する場合を考える。この場合、実際の撮影では工場の屋内に設置された蛍光灯の光が部品表面で反射してグレアが生じるケースがある。また、グレアの影響でマークの映らない照明条件で撮影してしまうこともあり、位置姿勢が誤認識される可能性がある。
【0010】
このような動態撮影の技術分野においては、特許文献1に記載されているように、移動する部品を撮影して画像解析に適した画像を抽出する技術が考案されている。
【0011】
特許文献1には以下の技術が記載されている。すなわち、まずカメラの前をコンベアで搬送される物体を、カメラの制御部から発信された一定間隔の撮影トリガ信号に基づいて連続的に(あるいは断続的に)撮影を実行する。そして、その撮影した複数の画像の中で、物体が最も画面の中心に近づいた画像を最良画像として選び、出力する技術が示されている。
【0012】
特許文献1記載のカメラの動作としては、まず現在の画像と1つ前に撮影した画像とをカメラ内のメモリに記憶する。その上で、2枚の画像でそれぞれ計算された物体の位置と画面中心とのずれ量を基に、(1)現在の画像が最良か、(2)1つ前の画像が最良か、(3)判断を保留して撮影を継続するか、を決定する。(1)が選ばれるのは、ずれ量が予め規定した閾値を下回る場合、すなわち物体が画面中心に充分近い場合である。(2)が選ばれるのは、現在の画像のずれ量が1つ前の画像のずれ量よりも大きくなった場合、すなわち一度画面中心に近づいた物体が中心を通り過ぎて離れ始めている場合である。そのどちらにも当てはまらない場合は(3)が選ばれる。これにより、特許文献1に記載の従来技術により動体撮影を行うと、カメラで撮影した画像の中で、部品の位置がユーザーの事前に定めた位置(以降では「目標撮影位置」と呼ぶことがある。)に最も近いときの画像を得ることができる。また、このような技術は動体撮影に限らず、静止状態で部品を撮影する場合にも適用できる。例えば、静止状態にある部品が振動などにより微細に運動している場合に、特許文献1に記載の技術により、目標撮影位置に最も近いときの画像を選択的に得ることができる。
【先行技術文献】
【特許文献】
【0013】
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、特許文献1に記載の動体撮影法は、撮影した画像中での部品の位置のみを基準として出力する画像を選択する。したがって、搬送中の振動等で姿勢が傾いた部品を撮影してしまった場合、部品とカメラ/照明の位置姿勢関係が、画像処理アルゴリズムを決定したときの位置姿勢関係にと異なる条件で撮影したことになる。そのため、当初の想定とは照明条件が異なった画像となり、得られた画像の一部が想定と違う明るさとなったり、想定と違うエリアの輪郭情報が強く検出されたりする可能性がある。このような場合、画像処理工程や対象物の認識工程を実行すると部品の位置姿勢の認識を誤り、自動組立が失敗する可能性がある。また、搬送中の位置姿勢に乱れが無い、静止状態での撮影でも、部品の製造ばらつきや部品の把持ばらつきなどがあると、当初の想定とは照明条件が異なった画像となり、同じく部品の位置姿勢の認識を誤り、自動組立が失敗する可能性がある。
【0015】
本発明は、上記の問題点を鑑みてなされたものであり、本出願に係る発明の目的は、移動する部品に対して、事前に画像処理アルゴリズムを検討した画像と類似した照明条件の画像を撮影することにある。また、本出願に係る発明のもう一つの目的は、部品の製造ばらつきや部品の把持ばらつきがある場合でも、事前に画像処理アルゴリズムを検討した画像と類似した照明条件の画像を撮影することにある。
【課題を解決するための手段】
【0016】
上述の課題を解決するため、本発明にかかる画像処理方法は、対象物の画像データを取得するための画像処理方法であって、前記対象物を撮像して複数の画像データを取得する工程と、前記複数の画像データそれぞれの画像特徴量を演算する工程と、演算した前記複数の画像データそれぞれの画像特徴量と予め取得しておいた基準画像特徴量との合致度を算出する工程と、前記複数の画像データのうち少なくとも2つの画像データについて前記合致度を比較する工程と前記合致度を比較した画像データのうち、合致度が高い方の画像データをメモリに保存する工程と、を有することを特徴とする。
【0017】
また、本発明にかかるシステムは、対象物の画像データを取得する撮像装置と、
前記画像データから、前記対象物の画像特徴量を演算する演算手段と、を備えるシステムであって、
前記撮像装置が、前記対象物の複数の画像データを取得して前記演算手段に送信し、前記演算手段は、前記複数の画像データそれぞれの画像特徴量を演算して、予め取得しておいた基準画像特徴量との合致度を算出し、前記複数の画像データのうち少なくとも2つの画像データについて前記合致度を比較し、合致度が高い方の画像データをメモリに保存することを特徴とする。
【0018】
また、本発明にかかる生産装置は、対象物の画像データを取得する撮像装置と、
前記対象物を移動させる移動手段と、
前記画像データから前記対象物の画像特徴量を算出する演算手段と、を備える生産装置であって、
前記撮像装置は、前記移動手段によって移動する前記対象物の画像データを取得して前記演算手段に送信し、前記演算手段は、前記複数の画像データそれぞれの画像特徴量を演算して、予め取得しておいた基準画像特徴量との合致度を算出し、前記複数の画像データのうち少なくとも2つの画像データについて前記合致度を比較して合致度が高い方の画像データをメモリに保存することを特徴とする生産装置。
【発明の効果】
【0019】
本発明によれば、部品の位置だけを基準とするのではなく、撮影した画像の照明条件と相関がある画像特徴量も基準として出力する画像を選択する。従って、移動する部品が搬送中の振動等により一時的に傾いたとしても、サンプル画像と同等の画像特徴量を有する画像を選び出して出力することができる。そのため、予め想定した画像と類似した照明条件の画像を撮影することができるので、移動する部品に対しても、正しく位置姿勢を認識することができるという効果を有する。さらに本発明によれば、光源位置、照射強度、照射角度、発光波長を変化させて取得した複数の画像からサンプル画像と同等の画像特徴量を有する画像を選び出して出力することができるため、部品に製造ばらつきや把持ばらつきがあり固定した照明条件では想定した画像と類似した画像を撮影することが困難な場合でも、正しく位置姿勢を認識することができるという効果を有する。
【図面の簡単な説明】
【0020】
【
図1】本発明の第一の実施形態に係る動体撮影装置の構成図である。
【
図2】本発明の第一の実施形態に係るフローチャートである。
【
図3】本発明の第一の実施形態、第二の実施形態に係る画像データの一例である。
【
図4】本発明の第一の実施形態に係る画像の撮像例である。
【
図5】本発明の第一の実施形態に係る画像を二値化した例である。
【
図6】本発明の第二の実施形態に係る動体撮影装置の構成図である。
【
図7】本発明の第二の実施形態に係る画像の撮像例である。
【
図8】本発明の第二の実施形態に係る画像のフレーム間差分を二値化した例である。
【
図9】本発明の第三の実施形態に係る撮影装置の構成図である。
【
図10】本発明の第三の実施形態に係る照明手段の発光ブロック例である。
【発明を実施するための形態】
【0021】
(実施の形態1)
本発明に係る動体撮影装置の第一の実施形態について説明する。以下ではまず本発明の画像処理方法にかかる手順を追って説明したのちに、対応する実施例にて具体的にカメラを構成する個別の構成要素などを具体的に説明する。
【0022】
図1に、本発明の第一の実施形態に係る(動体)撮影装置の構成を示す。同図に示すように、この(動体)撮影装置は、撮像素子101、レンズ102、演算部115から成るカメラ114と、部品112を把持するためのロボットハンド113で構成される。演算部115はさらに、コントローラ103、画像入力インタフェース104、画像特徴量計算手段106、メモリ107、画像選択手段108、画像出力インタフェース109から構成される。
【0023】
まず、本装置で、ロボットハンド113により把持されて移動する部品112をカメラ114で撮影するときの流れを簡単に説明し、その後、各部の信号、動作を詳細に説明する。
【0024】
はじめに、動体撮影の前に実施しておく初期設定について説明する。コントローラ103は、SPI(Serial Peripheral Interface)等の通信により、撮像素子101を、画像を連続的(断続的)に撮影する、動画撮影モードに設定する。また、コントローラ103の保存領域には、予め実験あるいは設計値等に基づいて定めた以下の二つの画像特徴量を保存する。すなわち、目標撮影位置である画像特徴量及び目標撮影位置における照明条件と相関がある画像特徴量を、それぞれ基準画像特徴量として保存し、画像選択手段108に出力しておく。目標撮影位置や画像特徴量などのデータの保存箇所は保存機能を有する演算部115における特定の部位を“メモリ”として任意に設定しても良い。
【0025】
なお、照明条件と相関がある画像特徴量の詳細な計算方法については後述する。また、部品112をロボットハンド113で把持し、カメラの視野の範囲内に部品112が通過するように、予めロボットハンド113の動作を教示する。画像データと画像特徴量の一時保存を行うメモリ107には、初期データとして全画素の輝度値が「0」の画像と、「0」の画像特徴量を保存する。これらの操作により、本実施形態における初期設定が完了する。なお、目標撮影位置及び基準画像特徴量はコントローラの保存領域ではなくメモリに保存しておいて画像選択手段に出力しても良い。
【0026】
次に、動体撮影時の画像データの取得および画像処理の流れを
図2に示すフローチャートに基づき説明する。
【0027】
(S1 複数の画像データを取得)
撮像素子101は、初期設定により動画撮影モードに設定されており、部品112が目標撮影位置付近に至るまでの間、レンズ102を介し、連続的(断続的)に画像を撮影し続けることで複数の画像データを取得する。
【0028】
動画モードに限らず、特定の間隔で継続的に連続写真を撮影し複数の画像データを取得してもよい。以下では「連続的に画像を撮影する」とはこのような形態をも含むものとする。
【0029】
(S2 画像データを演算部へ送信)
撮影した画像は、例えばLVDS信号として、順次画像入力インタフェース104へ出力される。このとき、LVDS信号は例えば10対の差動信号線で伝送され、各々の差動信号線では7逓倍でシリアライズされたシリアル信号が出力される。また、画像入力インタフェース104は、LVDS信号として連続的に入力される画像データを、順次パラレル信号の画像データに変換し、演算部における画像特徴量計算手段106へ出力する。
【0030】
(S3 照明条件と位置情報の画像特徴量を演算)
画像特徴量計算手段106は、入力した画像データに対して画像特徴量を計算する。本実施形態における画像特徴量は以下の2つであり、一方は、撮影された画像において部品112がどの位置に存在するのかという位置情報と相関がある情報に関連する画像特徴量である。他方は、どのような照明環境で撮影が行われているのかという照明条件と相関がある画像特徴量である。
【0031】
ここで、照明条件とは、例えばカメラ114と撮影用の照明(不図示)と蛍光灯等の外乱光源(不図示)に対する部品112の相対的な位置姿勢を意味する。具体例を挙げると、部品112のカメラに対する傾きが、画像処理アルゴリズムで想定されている部品112の傾きと比べて傾いており、照明条件が異なっていることがある。そのような場合、画像中に写り込む蛍光灯等の外乱光の強さや映り込み位置が変化したり、撮影される散乱光の強度が変化して画像の明るさが変化したりするケースがある。あるいは、画像処理用マーカ等の特徴点や輪郭線の鮮鋭さが変化したり、シェーディングが変化したり、影の発生位置が変化することによっても画像の明るさが変化するケースもある。
【0032】
なお、照明条件と相関がある画像特徴量の決定は以下のようにしてもよい。
【0033】
すなわち、まず部品112を傾けるなどしてカメラに対して異なる姿勢で撮影して画像を得る。その上で、その画像データに含まれるさまざまな画像特徴量のうちで、部品の姿勢に応じて有意に変化するか否かを確認する。このような工程を経ることで設定者が照明条件と相関がある画像特徴量をあらかじめ決定することもできる。
【0034】
照明条件と相関がある画像特徴量の例として、画像の輝度の総和値、複数ブロックに分割した各々の画像領域の輝度の総和値、特徴点の座標値、特定の画像領域の濃度勾配値、輪郭線強度値等がある。なお、本装置で撮影される画像を用いて実際に部品112の位置姿勢を認識する際に使用する画像特徴量を用いることが最も望ましい。また、例えば複数の画像特徴量を正規化して平均値を計算するなどして、複数の画像特徴量を用いてもよい。本実施形態においては、例として、画像の輝度の総和値を、照明条件と相関がある画像特徴量として用いて、説明を進めることにする。
【0035】
演算部における画像特徴量計算手段106は、これらの画像特徴量を計算し、画像データとともに画像選択手段108に出力する。部品112の位置の計算方法、および画像の輝度の総和値の計算方法の詳細は、後述する。もしも画像内で部品112の位置が検出されない、すなわち視野内に部品112が存在しない場合は、位置情報として「0」を画像選択手段108に出力する。
【0036】
(S4 基準画像特徴量と基準位置情報とのマッチング)
画像選択手段108は、一方で画像特徴量計算手段106から画像データとその画像データに対応する2つの画像特徴量が入力され、他方でコントローラ103からの位置情報と照明条件と相関がある情報にそれぞれ関連する画像特徴量が入力される。画像選択手段108は、入力された画像特徴量を参照し、部品112がカメラ114の視野内にまだ入ってきていない、すなわち、部品112の位置情報が「0」であれば、処理を行わず、次に入力される画像データと画像特徴量を待つ。部品112がカメラ114の視野内に進入し、部品112の位置情報が「0」以外となったら、メモリ107に保存されている基準画像特徴量と撮影した画像の画像データから抽出した画像特徴量を比較する。そして、定められた判定条件を満たすか判定するマッチング処理を実行する。
【0037】
そして、撮影した画像データから抽出した画像特徴量が基準画像特徴量により近い方の画像データを選択する。入力された画像特徴量の方が、メモリ107に保存されている画像特徴量よりも基準画像特徴量に近ければ、メモリ107の内容を入力された画像データと画像特徴量に更新する。また、部品112がカメラ114の視野から外れ、部品112の位置情報が「0」以外から「0」に変化したら、そのときにメモリ107に保存されている画像データを読み出し、画像出力インタフェース109に出力する。
【0038】
(S5画像を出力)
画像出力インタフェース109は、入力したパラレル信号である画像データを、例えば7逓倍でシリアライズし、カメラリンク等の映像信号規格に則って10対の差動信号線にのせ出力する。出力された映像信号は、外部のフレームグラバボードなどで受信され、処理される。
【0039】
以上の処理により、部品112が目標撮影位置を通過したときに、サンプル画像に最も近い画像特徴量を有する画像データを撮影することができるので、部品112の位置姿勢認識に失敗する可能性を低く抑えることができる。
【0040】
(第一の実施例)
上記の第一の実施形態を実施するためにより一つの実施例を挙げて、具体的に各構成要素の詳細を説明する。
【0041】
まず、本実施形態で前提とする座標系について説明する。
図3における画像データに関して本実施形態で用いられる座標系を示す。座標系は、カメラ114で撮影可能な2048×2048画素の画像エリア上に構成し、画像エリアの
図3中の紙面の水平方向の右向きをx方向、垂直方向の下向きをy方向と定義する。座標の原点(x=1、y=1)は、画像エリアの左上の点である。例えば画像エリアの右上の点は(x=2048、y=1)、左下の点は(x=1、y=2048)、右下の点は(x=2048、y=2048)である。
【0042】
図3には部品112を把持しているロボットハンド113が撮像された画像データが示されている。
【0043】
部品112は、製品を構成する、例えば50mm×50mm以内の大きさの物体である。部品112は、パレットの上に厳密な位置決めがされることなく置かれており、ロボットハンド113によりピックアップされ、製品組立のためワークの位置まで搬送される。部品112は、ロボットハンド113にピックアップされた状態ではどのような姿勢をとっているか不明である。本発明に基づく動体撮影装置により“視覚情報”として画像を撮影した後に、画像処理により部品112の位置姿勢を計測して、ロボットハンドにより部品112の姿勢を修正した上で、部品がワーク(不図示)に組み付けられる。
【0044】
作業台に設置されたロボットハンド113は、例えば3本の指を備えて部品112を安定的に把持し、作業台に設けられた500mm×500mmの作業領域を、予め教示した軌道に沿って搬送できる。ロボットハンド113は、部品112を毎秒2000mmの速度で搬送する。本実施形態では、部品112を把持したロボットハンド113を、カメラ114の視野内を毎秒2000mmの一定速度で移動するように予め教示しておく。このとき、部品112はカメラ114の視野中心付近を通り、移動方向は撮影される画像エリアでx方向に近い方向となるように教示する。すなわち、画像エリアの左端(x=1)から現れて、ほぼx方向へ直線的に移動し、画像エリアの右端(x=2048)へ消失するように教示する。なお、ロボットハンド113は、後述するカメラ114から撮影される面が黒色に塗装されており、カメラ114から撮影されるロボットハンド113の背景も、黒色としており余分な反射光の発生を抑える工夫がされている。本実施形態では画像内でのx方向の中心(x=1024)を目標撮影位置とする。もちろん目標撮影位置は撮影環境等の都合に応じて、任意のx座標を目標撮影位置としてもよいし、x方向ではなくy方向の座標を目標撮影位置としてもよい。
【0045】
次に、カメラ114を構成する撮像素子101とレンズ102と演算部115について説明する。
【0046】
撮像素子101は、約4メガピクセル(2048×2048画素)の空間解像度を持ち、各画素は8bitのbit深度を持ち、10対のLVDS信号により画像を出力する。4メガピクセルを出力する場合のフレームレートは例えば160fpsである。撮像素子101とレンズ102を組み合わせた撮像光学系は、100mm×100mmの撮影視野を持ち、画素分解能は、約50μm×50μmである。撮像素子101は、SPI(SerialPeripheralInterface)等の通信を介して撮像素子101に内蔵するレジスタへ設定値を書き込んだ上で、約4メガピクセル(2048×2048画素)の画像を読み出す。撮像素子101は、一定のフレームレートで連続的に画像を撮影する動画撮影モードを備える。撮像素子101は、各撮影フレームで、信号伝送中は垂直同期信号がHighとなる。本実施形態においては、まず撮像素子101を動画撮影モードとして機能させる設定値を、コントローラ103を介して撮像素子101に内蔵するレジスタへ書込み、撮像素子101を動画撮影モードに設定する。撮像素子101が撮影した画像は、後述する画像入力インタフェース104へ出力される。
【0047】
演算部115は、コントローラ103、画像入力インタフェース104、画像特徴量計算手段106、メモリ107、画像選択手段108、画像出力インタフェース109を搭載する電子回路基板である。なお、コントローラ103、画像特徴量計算手段106、画像選択手段108は、例えば電子回路基板上に実装されるFPGAデバイスの中の演算ブロックとして実装される。演算ブロックは、周知のHDL(HardwareDescriptionLanguage)言語でのハードウェア記述を基にした合成回路と、FPGAが備えるマクロ回路により実装される。また、回路面積、コスト、性能のバランスを考慮した上で、画像入力インタフェース104、画像出力インタフェース109をFPGA内に実装してもよいし、FPGAを使うことなく演算部115を構成してもよい。
【0048】
画像入力インタフェース104は、撮像素子101から入力したLVDS信号を、電子回路内で扱いやすいパラレル信号に変換する、周知のデシリアライザICを用いる。(LVDS:(LowVoltageDifferentialSignal:低電圧差動シグナリング))。もしくは、LVDS信号の入力が可能な周知のFPGA(FieldProgramableGateArray:機能を変更可能な集積回路)デバイスに入力し、パラレル信号に変換してもよい。デシリアライザICとしては、LVDS信号の差動ペアを10対入力できるものを用いる。デシリアライザICとして、差動ペアの入力数が不足するものを複数個並列で用いてもよい。ここでは、画像入力インタフェース104の出力は、80bit(8bit×10TAP)のパラレル信号、画素クロック信号、水平同期信号、垂直同期信号とし、画像特徴量計算手段106へ出力される。
【0049】
演算部における画像特徴量計算手段106は、電子回路基板上に実装されるFPGAデバイスの中に実装される演算ブロックである。画像特徴量計算手段106は画像入力インタフェース104から入力した80bitのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号からなる画像信号に対して、画像上における部品112の位置を検出する。加えて、照明条件と相関のある画像特徴量として、画像の輝度の総和値をも検出する。ここで、本実施形態では、ロボットハンド113およびその撮影背景は黒色であるため、画像特徴量計算手段106に入力される画像信号は、
図4のような画像となる。まず、入力されたパラレル画像信号に対し、1画素を意味する8bit毎に、二値化処理を行い、二値画像を得る。二値化処理は、予め定めた閾値(例えば128)を超えればHIGH(1)、閾値以下ならばLOW(0)とすることで実行する。二値画像のイメージを
図5に示す。ただし、本実施形態では後述するように二値化処理は画素レベルでパイプライン処理されるので、
図5のようなまとまった二値画像が保存されたり出力されたりするわけではないことを付記する。次に、部品112の位置情報を表す、二値画像の重心を計算する。
【0050】
ここで、画素値が0か1である二値画像の重心を計算する方法について説明する。画像の重心とは、一般に、輝度値を質量とみなした時の質量分布の中心座標を表すもので、二値画像においては輝度値が1である複数の画素の中心座標となる。また、画像の重心を計算するために、画像の0次モーメント、画像の1次モーメントを利用する。画像のモーメントも、一般に、輝度値を質量とみなした時の重力のモーメントを表しており、二値画像における0次モーメントは、輝度値が1である画素数の総和を表し、二値画像における1次モーメントは、輝度値が1である画素の位置座標値の総和を表す。本実施形態では、水平方向について計算した画像の1次モーメントを画像の水平1次モーメント、垂直方向について計算した画像の1次モーメントを画像の垂直1次モーメントと呼ぶ。画像の重心の水平座標は、画像の水平1次モーメントに画像の0次モーメントの逆数を乗じることにより計算でき、画像の重心の垂直座標は、画像の垂直1次モーメントに画像の0次モーメントの逆数を乗じることにより計算できる。
【0051】
以上を踏まえ、得られた二値信号に対して画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントを計算する。画像特徴量計算手段106では、FPGAの演算ブロック内に、以下のレジスタを備えている。すなわち、画素クロックに同期してインクリメントされて水平同期信号に同期してリセットされる水平座標レジスタと、水平同期信号に同期してインクリメントされて垂直同期信号に同期してリセットされる垂直座標レジスタとを備えている。加えて画像の0次モーメントの累積値を保持する0次モーメントレジスタと画像の水平1次モーメントの累積値を保持する水平1次モーメントレジスタと画像の垂直1次モーメントの累積値を保持する垂直1次モーメントレジスタを備える。各レジスタは初期値として0を保持する。初めに1bitの二値画像信号が入力されると、1bitの値が0次モーメントレジスタの値に足しあわされる。同時に、(bitの値×(水平座標レジスタの値))を計算し、水平1次モーメントレジスタの値に足しあわされる。同時に、(bitの値×(垂直座標レジスタの値))を計算し、垂直1次モーメントレジスタの値に足しあわされる。以上の計算を、画素クロックに同期して全画素分(2048×2048)の回数繰り返す。このことにより、画像全体の、画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントが、それぞれ0次モーメントレジスタ、水平1次モーメントレジスタ、垂直1次モーメントレジスタに格納される。
【0052】
次に、計算された画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントから、画像の重心を計算する。画像の重心の水平座標は、(水平1次モーメントレジスタ値÷0次モーメントレジスタ値)の式でハードウェア演算される。画像の重心の垂直座標は、(垂直1次モーメントレジスタ値÷0次モーメントレジスタ値)の式でハードウェア演算される。以上で求められた、画像の重心の水平座標、画像の重心の垂直座標が、部品112の位置情報となる。
【0053】
また、演算部における画像特徴量計算手段106に入力される
図4のような一連の画像データに対し、画像ごとにその画像データの輝度の総和値を計算する。画像特徴量計算手段106では、FPGAの演算ブロック内に、画素クロックに同期して画像の輝度の総和値の累積値を保持する輝度総和レジスタを備える。レジスタは初期値として0を保持する。初めに8bitの画像信号が入力されると、8bitの値が輝度総和レジスタの値に足しあわされる。この計算を、画素クロックに同期して全画素分(2048×2048)の回数繰り返すことにより、画像全体の、画像の輝度の総和値が、輝度総和レジスタに格納される。
【0054】
以上の演算で計算された部品112の位置情報、画像の輝度の総和値が、画像データとともに画像特徴量計算手段106から出力され、画像選択手段108に入力される。ここで、カメラ114の撮影視野に部品112が存在しない場合は、位置情報として「0」を出力する。なお、以上で述べた演算のうち、各画素における二値化処理と画像の0次モーメント、画像の水平1次モーメント、画像の垂直1次モーメントの計算のための累積計算は、パイプライン処理により行われる。すなわち、例えば全ての画素の二値化処理が終わるまで待つのではなく、2画素目の二値化処理を行っている時間には同時に1画素目の累積計算を行い、3画素目の二値化処理を行っている時間には同時に2画素目の累積計算を行う。
【0055】
なお、本実施形態の説明では部品112の位置を画像から検出する方法として画像の二値化処理と画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントの計算を行ったうえで画像の重心を計算する方法を挙げた。一方、その他の、背景が黒色であることを前提とした周知の物体検出方法を用いてもよい。例えば、予め、カメラ114が撮影する画像と対応する解像度の、部品112のテンプレート画像をFPGA内に格納し、周知のテンプレートマッチングを行う処理回路をFPGAに実装し、部品112の位置を検出してもよい。また、画像にノイズが混じり、部品112がカメラ114の撮影視野内に存在しなくても部品112が検出されてしまう場合には、画像の0次モーメントの値を閾値にして出力座標を「0」にするなどのフィルタ処理を施してもよい。
【0056】
また、本実施形態の説明では照明条件と相関のある画像特徴量として画像の輝度の総和値を扱ったが、前述したような、照明条件と相関があることが事前に確かめられたその他の画像特徴量を用いてもよい。
【0057】
メモリ107は、電子回路基板上に実装されるRAM(ランダムアクセスメモリ)であり、例えば10個の256KByteSDRAM(SynchronusDynamicRAM)である。各SDRAMのbit幅は8bitとする。SDRAMは、ROWアドレスとCOLUMNアドレスを指定し、同期信号に同期して読み出しと書き込みを行うことができる。
【0058】
画像選択手段108は、電子回路基板上に実装されるFPGAデバイスの中に実装される演算ブロックである。画像選択手段108は、画像特徴量計算手段106から、画像の重心の水平座標、画像の重心の垂直座標からなる部品112の位置情報を入手する。加えて、画像の輝度の総和値、および、80bitのパラレル信号と画素クロック信号と水平同期信号と垂直同期信号からなる画像信号をも入力する。また、コントローラ103から基準画像特徴量を入力する。画像選択手段108は、メモリ107にアクセスするためのメモリインタフェースを持つ。メモリインタフェースの演算ブロックは、10個のSDRAMに合わせて並列に10ブロック用意する。メモリインタフェースは、垂直同期信号がHIGHになったとき、メモリアクセスを開始し、画素クロック信号をメモリアクセスの同期信号としてSDRAMに供給する。また、画素クロック信号に同期してROWアドレスをインクリメントし、水平同期信号に同期してCOLUMNアドレスをインクリメントすることでSDRAMにアクセスするアドレスを設定する。垂直同期信号がLOWになったとき、メモリアクセスを終了する。メモリ107には、画像特徴量が最も基準画像特徴量に合致する、1フレーム分の画像データと画像特徴量が格納されている。初期状態では、画像データ、画像特徴量ともに「0」を格納しておくものとする。
【0059】
入力された部品112の位置情報が「0」である間、すなわち、カメラ114の視野内にまだ部品112が到達していない間は、処理を行わず、次に入力される画像データと画像特徴量を待機する。次に、部品112の位置情報が「0」から「0」以外に変化したら、メモリ107に保存されている画像特徴量と入力された画像特徴量を比較する。そして入力した画像特徴量が、メモリ107に格納されている画像の画像特徴量よりも、コントローラ103から入力した基準画像特徴量との合致度が高いか否かを判定する。入力した画像特徴量の方が、メモリ107に格納されている画像の画像特徴量よりも合致度が高ければ、入力した画像信号および画像特徴量によりメモリ107の内容を更新し、合致度が低ければ、更新せずに、入力した画像データおよび画像特徴量を破棄する。
【0060】
最後に、部品112の位置情報が「0」以外から「0」に変化したら、その時点でメモリ107に格納されている画像データを読み出し、画像出力インタフェース109に出力する。
【0061】
ここで、入力した画像特徴量の基準画像特徴量に対する合致度が、メモリ107に格納された画像特徴量よりも高いか否かを判定する方法を説明する。まず、部品112が、カメラ114の視野内に過不足なく収まっていることを判定する。入力した画像特徴量のうち、部品112の位置情報を参照し、画像の重心の水平座標が513以上でかつ1536以下であり、なおかつ画像の重心の垂直座標が513以上でかつ1536以下であればランクAと判定し、そうでなければ、ランクBと判定する。
【0062】
次に、画像の輝度の総和値を評価する。入力した画像特徴量のうち、画像の輝度の総和値を参照し、基準画像特徴量との差分の絶対値を計算する。
【0063】
最後に、メモリ107に格納された画像特徴量と入力された画像特徴量の、どちらが基準画像特徴量により合致するかを判定し、入力された画像特徴量に対し「優」または「劣」をランク付ける。入力された画像特徴量と同様の方法で、メモリ107に格納された画像特徴量がランクAであるかランクBであるか、あるいは「0」であるかを判定する。その上で、画像の輝度の総和値について基準画像特徴量との差分の絶対値を計算する。もしメモリ107に格納された画像特徴量が「0」であれば、ランクを「優」とする。メモリ107に格納された画像特徴量がランクBである場合、入力された画像特徴量がランクAであれば「優」とする。また、入力された画像特徴量がランクBであり、入力された画像特徴量の基準画像特徴量との差分の絶対値がメモリ107に格納された画像特徴量以下であれば「優」、メモリ107に格納された画像特徴量よりも大きければ「劣」とする。メモリ107に格納された画像特徴量がランクAである場合、入力された画像特徴量がランクBであれば「劣」とする。また、入力された画像特徴量がランクAであり、入力された画像特徴量の基準画像特徴量との差分の絶対値がメモリ107に格納された画像特徴量以下であれば「優」、メモリ107に格納された画像特徴量よりも大きければ「劣」とする。以上の判定を経て、入力された画像特徴量が「優」と判定されれば、基準画像特徴量への合致度が高いとみなし、入力した画像信号および画像特徴量によりメモリ107の内容を更新する。「劣」と判定されれば、更新せずに、入力した画像データおよび画像特徴量を破棄する。
【0064】
なお、本実施形態では、メモリ107に格納された画像特徴量に対するランク付け、及び画像の輝度の総和値の基準画像特徴量との差分の絶対値の計算を、入力した画像特徴量に対する計算と同じタイミングで行った。一方、メモリ107に画像特徴量を格納する際に行ったランク付けと画像の輝度の総和値の基準画像特徴量との差分の絶対値の計算結果を保持しておき、再利用してもよい。
【0065】
画像出力インタフェース109は、画像選択手段108から入力した80bitのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号を、カメラリンク等のLVDS映像信号に変換する、周知のシリアライザICを用いる。もしくは、LVDS信号の出力が可能なFPGAデバイスを用い、FPGA内でパラレル信号をシリアル信号に変換してもよい。画像出力インタフェース109から出力されたLVDS信号は、外部のカメラリンクグラバボード等で受信され、プロセッサ等で画像処理される。
【0066】
コントローラ103は、電子回路基板上に実装されるFPGAデバイスの中に実装される演算ブロックである。コントローラ103は、予め撮像素子101に対しSPIインタフェースを介して、連続撮影設定を指令して動画撮影モードにする。また、予め外部から入力した基準画像特徴量を、内部レジスタに保存しておき、基準画像特徴量を画像選択手段108に出力する。なお、基準画像特徴量は、予め画像処理アルゴリズムを決定した際に用いた画像データから、前述した算出方法と同一の方法により求めた、画像の重心の水平座標と画像の重心の垂直座標からなる部品112の位置情報と、画像の輝度の総和値である。
【0067】
本実施形態によれば、予め画像処理アルゴリズムを決定した際に用いた画像データと類似した画像を撮影することができる。したがって、目標撮影位置付近を移動する部品112を捉えた複数の画像の中から、最も正常に画像処理を完了する可能性の高い、最良の一枚だけを出力することができる。そのため、目標撮影位置との位置ずれや、あおりによる照明条件の変化により、例えば蛍光灯等の外乱光が映り込むフレームが発生する、あるいは、影が映り込むフレームが一部発生するとしても、正しく部品112の位置姿勢を認識することができる。
【0068】
(実施の形態2)
前述した第一の実施形態では、カメラ114から撮影されるロボットハンド113およびその背景は、部品の撮影およびその後の画像処理に有利なように黒色としていた。しかし実際の生産工場の現場などにおいては、撮影の背景に別の組立用部品が存在する場合などがありえる。したがって、撮影時にその背景を全て黒色にできるとは限らない。また、全てを黒色に設定できたとしても、外乱光の反射などにより表面が光り、明るくなる場合も考えられ、撮影の背景を黒色にできない場合があるという問題がある。
【0069】
そこで、第二の実施形態として、撮影の背景に明るさがあっても、移動する部品に対して、予め想定した画像に類似した照明条件の画像を撮影する背景除去処理を用いた動体撮影装置について説明する。
【0070】
図6に、本発明の第二の実施形態に係る画像撮像装置の構成を示す。本発明の第二の実施形態に係る動体撮影装置は、撮像素子101、レンズ102、演算部115から成るカメラ114と、部品112と、ロボットハンド113で構成される。演算部115はさらに、コントローラ103、画像入力インタフェース104、画像特徴量計算手段106、メモリ107、メモリ110、画像選択手段108、画像出力インタフェース109から構成される。ここで、本装置でロボットハンド113により把持されて移動する部品112を撮影するときの流れは、第一の実施形態と同様なので説明を省略し、ロボットハンド113、画像特徴量計算手段106について説明する。
【0071】
まず、ロボットハンド113について説明する。ロボットハンド113は、例えば3本の指を備えて部品112を安定的に把持し、500mm×500mmの作業領域を、予め教示した軌道に沿って搬送できる。ロボットハンド113は、部品112を最大2000mm/sの速度で搬送可能である。本実施形態でも同様に、部品112を把持したロボットハンド113を、後述するカメラ114の視野内を2000mm/sの一定速度で移動される。このとき、部品112はカメラ114の視野中心付近を通り、移動方向は撮影される画像のx方向に近い方向となるようにする。すなわち、画像エリアの左端(x=1)から現れて、ほぼx方向へ直線的に移動し、画像エリアの右端(x=2048)へ消失するように移動させる。なお、カメラ114から撮影されるロボットハンド113の背景は、色、明るさ等の光学特性が時間とともに変化しないものとする。なお、本実施形態では画像内でのx方向の中心を目標撮影位置とするが、照明環境等に応じて、任意のx座標を目標撮影位置としてもよいし、x方向ではなくy方向の座標を目標撮影位置としてもよい。
【0072】
次に、メモリ110について説明する。メモリ110は、電子回路基板上に実装されるRAM(ランダムアクセスメモリ)であり、例えば10個の256KByteSDRAM(SynchronusDynamicRAM)である。各SDRAMのbit幅は8bitとする。SDRAMは、ROWアドレスとCOLUMNアドレスを指定し、同期信号に同期して読み出しと書き込みを行うことができる。
【0073】
次に、画像特徴量計算手段106について説明する。画像特徴量計算手段106は、電子回路基板上に実装されるFPGAデバイスの中に実装される演算ブロックである。画像特徴量計算手段106は画像入力インタフェース104から入力した80bitのパラレル信号、画素クロック信号、水平同期信号、垂直同期信号からなる画像信号に対して、画像上における部品112の位置を検出する。加えて、照明条件と相関のある画像特徴量として、画像の輝度の総和値を検出する。また、画像特徴量計算手段106は、メモリ110にアクセスするためのメモリインタフェースを持つ。メモリインタフェースの演算ブロックは、10個のSDRAMに合わせて並列に10ブロック用意する。メモリインタフェースは、垂直同期信号がHIGHになったとき、メモリアクセスを開始し、画素クロック信号をメモリアクセスの同期信号としてSDRAMに供給する。また、画素クロック信号に同期してROWアドレスをインクリメントし、水平同期信号に同期してCOLUMNアドレスをインクリメントすることでSDRAMにアクセスするアドレスを設定する。垂直同期信号がLOWになったとき、メモリアクセスを終了する。メモリ110には、1フレーム前の画像信号が格納されている。
【0074】
ここで、本実施形態では、画像特徴量計算手段106に入力される画像信号は、
図7のような画像となる。まず、入力されたパラレル画像信号に対し、画像の輝度の総和値を計算する。画像特徴量計算手段106では、FPGAの演算ブロック内に、画素クロックに同期して画像の輝度の総和値の累積値を保持する輝度総和レジスタを備える。レジスタは初期値として0を保持する。初めに8bitの画像信号が入力されると、8bitの値が輝度総和レジスタの値に足しあわされる。この計算を、画素クロックに同期して全画素分(2048×2048)の回数繰り返すことにより、画像全体の、画像の輝度の総和値が、輝度総和レジスタに格納される。
【0075】
次に、以上の処理とともに行う、部品112の位置情報を計算する処理について説明する。
【0076】
まず、入力されたパラレル画像信号と、画素クロック信号と水平同期信号と垂直同期信号に同期してメモリインタフェースを介してメモリ110から読み出す1フレーム前の画像との差分値を、1画素ずつ順に計算する。次に、各画素の差分値に対し、二値化処理を行う。二値化処理は、予め定めた閾値(例えば128)を超えればHIGH(1)、閾値以下ならばLOW(0)とすることで実行する。二値化された画像のイメージを
図8に示す。ただし、本実施形態では後述するように二値化処理は画素レベルでパイプライン処理されるので、
図8のようなまとまった二値画像が保存されたり出力されたりするわけではないことを付記する。
【0077】
次に、得られた二値信号に対して画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントを計算する。画像特徴量計算手段106では、FPGAの演算ブロック内に、以下のレジスタを備えている。すなわち画素クロックに同期してインクリメントされて水平同期信号に同期してリセットされる水平座標レジスタと、水平同期信号に同期してインクリメントされて垂直同期信号に同期してリセットされる垂直座標レジスタである。加えて、画像の0次モーメントの累積値を保持する0次モーメントレジスタと画像の水平1次モーメントの累積値を保持する水平1次モーメントレジスタと画像の垂直1次モーメントの累積値を保持する垂直1次モーメントレジスタを備える。各レジスタは初期値として0を保持する。初めに1bitの二値画像信号が入力されると、1bitの値が0次モーメントレジスタの値に足しあわされる。同時に、(bitの値×(水平座標レジスタの値))を計算し、水平1次モーメントレジスタの値に足しあわされる。同時に、(bitの値×(垂直座標レジスタの値))を計算し、垂直1次モーメントレジスタの値に足しあわされる。以上の計算を、画素クロックに同期して全画素分(2048×2048)の回数繰り返す。そのことにより、画像全体の、画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントが、それぞれ0次モーメントレジスタ、水平1次モーメントレジスタ、垂直1次モーメントレジスタに格納される。
【0078】
次に、計算された画像の0次モーメントと画像の水平1次モーメントと画像の垂直1次モーメントから、画像の重心を計算する。画像の重心のx座標は、(水平1次モーメントレジスタ値÷0次モーメントレジスタ値)の式でハードウェア演算される。画像の重心のy座標は、(垂直1次モーメントレジスタ値÷0次モーメントレジスタ値)の式でハードウェア演算される。以上の演算で計算された部品112の位置情報、画像の輝度の総和値が、画像データとともに画像特徴量計算手段106から出力され、画像選択手段108に入力される。ここで、カメラ114の撮影視野に部品112が存在しない場合は、位置情報として「0」を出力する。なお、以上で述べた演算のうち、各画素における二値化処理と画像の0次モーメント、画像の水平1次モーメント、画像の垂直1次モーメントの計算のための累積計算は、パイプライン処理により行われる。すなわち、例えば全ての画素の二値化処理が終わるまで待つのではなく、2画素目の二値化処理を行っている時間には同時に1画素目の累積計算を行い、3画素目の二値化処理を行っている時間には同時に2画素目の累積計算を行う。最後に、入力されたパラレル画像信号を、画素クロック信号と水平同期信号と垂直同期信号によりメモリインタフェースを介してメモリ110に上書きし、10個のSDRAMに、1フレーム分の画像を記憶する。この記憶画像は、次のフレームにおいて、1フレーム前の画像として使用される。
【0079】
なお、本実施形態の説明では部品112の撮影の背景をフレーム間差分により除去する方法を挙げたが、その他の、周知の背景除去処理を用いてもよい。例えば、メモリ110を不揮発メモリとして、メモリ110に予め部品112およびロボットハンド113の映っていない背景画像を格納しておき、その差分を計算して背景を除去してもよいし、その他の背景を除去するアルゴリズムを用いてもよい。また、画像にノイズが混じり、部品112がカメラ114の撮影視野内に存在しなくても部品112が検出されてしまう場合には、画像の0次モーメントの値を閾値にして出力座標を「0」にするなどのフィルタ処理を施してもよい。また、本実施形態の説明では照明条件と相関のある画像特徴量として画像の輝度の総和値を扱ったが、前述したような、照明条件と相関があることが事前に確かめられたその他の画像特徴量を用いてもよい。
【0080】
本実施形態によれば、カメラ114から撮影されるロボットハンド113の背景が黒色でなく明るさを持っていても、良好な撮影が可能である。すなわち、目標撮影位置付近を移動する部品112を捉えた複数の画像の中から、最も正常に画像処理を完了する可能性の高い、最良と想定される一枚を出力することができる。そのため、背景を黒くすることが困難な状況においても、正しく部品112の位置姿勢を認識することができる。
【0081】
本発明の撮影方法を実行するカメラとロボットハンドとを備えたロボット装置によって行われる物品の生産方法を実行することで、ロボットハンドが把持した対象物を効果的に動体撮影することが可能となるため効果的に生産活動を行うことができる。
【0082】
(実施の形態3)
前述した第一の実施形態では、移動する部品を連続的に撮影し、照明条件が最も基準に近い画像を選択していた。
【0083】
しかし実際の生産工場の現場などにおいては、部品の製造ばらつきやロボットハンドあるいは固定治具による部品把持のばらつきなどにより部品の見え方が変化し、静止状態にある部品であっても、所望の照明条件に近い照明条件の画像が得られない場合がある。そのため、あるサンプルでは所望の照明条件に合わせることができても、常に所望の照明条件の部品画像を撮影することはできずに、部品の位置姿勢の認識に失敗する場合があるという問題がある。
【0084】
そこで、第三の実施形態として、部品の製造ばらつきやロボットハンドによる部品把持のばらつきなどがあっても、部品に対して、予め想定した画像に類似した照明条件の画像を撮影する撮影装置について説明する。
【0085】
図8に、本発明の第三の実施形態に係る画像撮像装置の構成を示す。本発明の第三の実施形態に係る撮影装置は、撮像素子101、レンズ102、演算部115から成るカメラ114と、照明手段116と、部品112と、ロボットハンド113で構成される。演算部115はさらに、コントローラ103、画像入力インタフェース104、画像特徴量計算手段106、メモリ107、画像選択手段108、画像出力インタフェース109から構成される。ここで、本装置でロボットハンド113により把持されて移動する部品112を撮影するときの流れは、第一の実施形態と同様なので説明を省略し、撮像素子101、照明手段116、コントローラ103について説明する。
【0086】
まず、撮像素子101について説明する。撮像素子101は、約4メガピクセル(2048×2048画素)の空間解像度を持ち、各画素は8bitのbit深度を持ち、10対のLVDS信号により画像を出力する。4メガピクセルを出力する場合のフレームレートは例えば160fpsである。撮像素子101とレンズ102を組み合わせた撮像光学系は、100mm×100mmの撮影視野を持ち、画素分解能は、約50μm×50μmである。撮像素子101は、SPI(SerialPeripheralInterface)等の通信を介して撮像素子101に内蔵するレジスタへ設定値を書き込んだ上で、約4メガピクセル(2048×2048画素)の画像を読み出す。撮像素子101は、撮影トリガの入力に応じて一枚の画像を撮影するトリガ撮影モードを備える。撮像素子101は、各撮影フレームで、信号伝送中は垂直同期信号がHighとなる。本実施形態においては、まず撮像素子101をトリガ撮影モードとして機能させる設定値を、コントローラ103を介して撮像素子101に内蔵するレジスタへ書込み、撮像素子101をトリガ撮影モードに設定する。撮像素子101が撮影した画像は、後述する画像入力インタフェース104へ出力される。
【0087】
次に、照明手段116について説明する。照明手段116は、光源位置、照射強度、照射角度、発光波長の少なくとも一つを変化させることができる照明装置である。照明の形状としては、例えばバー照明、同軸落射照明、ドーム照明、スポット照明、面照明等の工業用として一般的に使用される形状の照明を用いることができる。また、部品112に応じて、一般的でない特殊な形状の照明を用いてもよい。照明手段116は、1台で構成しても、複数台の照明で構成してもよい。
【0088】
照明手段116の光源位置を変化させる場合には、例えば発光部を複数の発光ブロックに分割し、各発光ブロックを独立に調光できるように構成した上で、各発光ブロックの点灯/消灯および調光値を変化させることで光源位置を変化させる。もしくは、照明手段116を複数の照明装置で構成し、各照明装置を独立に調光できるように構成した上で、各照明装置の点灯/消灯および調光値を変化させることで光源位置を変化させてもよい。もしくは、1つまたは複数の照明装置の発光部に可動部を設けることにより光源位置を変化させてもよい。
【0089】
照明手段116の照射強度を変化させる場合には、例えば1つもしくは複数の照明装置を調光可能にした上で、調光値を変化させることにより照射強度を変化させる。以上で述べた複数の発光ブロックもしくは複数の照明は、様々な発光波長を有してもよい。
【0090】
照明手段116の照射角度を変化させる場合には、例えば発光部を複数の発光ブロックに分割し、各発光ブロックを独立に調光できるように構成した上で、各発光ブロックの点灯/消灯および調光値を変化させることで照射角度を変化させる。このとき、例えば光源がLEDなどの、光の照射方向に指向性を有する場合には、予め各発光ブロックの光源の実装方向を変化させておいてもよい。もしくは、照明手段116を複数の照明装置で構成し、各照明装置を様々な方向に向けて構成した上で、各照明装置の点灯/消灯および調光値を変化させることで照射角度を変化させてもよい。もしくは、1つまたは複数の照明装置の発光部に可動部を設けることにより照射角度を変化させてもよい。
【0091】
照明手段116の発光波長を変化させる場合にはまず、例えば発光部を複数の発光ブロックに分割し、各発光ブロックは別々の発光波長で光を照射するように光源を配置し、各発光ブロックを独立に調光できるように構成するとよい。そうした上で、各発光ブロックの点灯/消灯および調光値を変化させることで発光波長を変化させる。もしくは、照明手段116を複数の照明装置で構成し、各照明装置は別々の発光波長で光を照射するように構成した上で、各照明装置の点灯/消灯および調光値を変化させることで発光波長を変化させてもよい。もしくは、1つまたは複数の照明装置の発光部に切替可能な波長フィルタを設けることにより発光波長を変化させてもよい。
【0092】
また、照明手段116は光源位置、照射強度、照射角度、発光波長のどれか1つだけでなく、複数を変化させてもよい。
【0093】
照明手段116は様々な形状・形態をとりうるが、本実施形態では、カメラ114の光軸と同心円状のリング照明とし、その発光部は、
図9に示すように、例えば8つの発光ブロックに分割されているものとする。各々の発光ブロックは、コントローラ103から入力する調光指令により調光し、調光値がゼロであれば消灯するものとする。
【0094】
次に、コントローラ103について説明する。コントローラ103は、電子回路基板上に実装されるFPGAデバイスの中に実装される演算ブロックである。コントローラ103は、予め撮像素子101に対しSPIインタフェースを介して、トリガ撮影設定を指令してトリガ撮影モードにする。また、予め外部から入力した基準画像特徴量を、内部レジスタに保存しておき、基準画像特徴量を画像選択手段108に出力する。なお、基準画像特徴量は、予め画像処理アルゴリズムを決定した際に用いた画像データから、実施の形態1で述べた算出方法と同一の方法により求めた、画像の重心の水平座標と画像の重心の垂直座標からなる部品112の位置情報と、画像の輝度の総和値である。コントローラ103は、照明手段116の各ブロックに対する発光指令出力と、撮像素子101に対する撮影トリガ出力を備える。
【0095】
次に、撮影時の画像データの取得の流れを
図2に示すフローチャートに基づき説明する。なお、フローチャートのS2からS5は実施の形態1の説明と同様のため省略し、S1についてのみ説明する。
【0096】
(S1複数の画像データ取得)
撮像素子101は、初期設定によりトリガ撮影モードに設定されており、トリガ入力を待機する。コントローラ103は、照明手段116の
図9に示す発光ブロックのうち、Aブロックに調光指令を出力してAブロックを発光させた後に、撮像素子101に撮影トリガを出力して画像を撮影する。撮影が終了したら、Bブロックに調光指令を出力してBブロックを発光させた後に、撮像素子101に撮影トリガを出力して画像を撮影する。同様にして(A、B、C、D、E、F、G、H、A、B、C、・・・)の順に照明手段116の各ブロックを調光指令により発光させた後に撮像素子101へ撮影トリガを出力して画像を撮影することを繰返す。結果として、光源位置と照射角度を変化させた、照明条件の異なる画像データが連続的に撮影される。
【0097】
なお、本実施形態では、8つの発光ブロックを有するリング照明により光源位置と照射角度を変化させた画像データを得る手順を示した。さらには、より多くの発光ブロックを有する照明を用いて光源位置と照射角度をより細かく変化させてもよいし、調光値を変化させることにより照射強度の異なる画像データを撮影してもよい。また、前述したように1つではなく複数の照明装置を用いて照明条件を変化させてもよい。また、本実施形態では光源位置と照射角度を変化させた場合の撮影方法について説明したが、照射強度、発光波長を変化させる場合も同様に、照明条件を変化させるたびに調光指令と撮影トリガを出力して撮影を実施すればよい。また、照明手段116は光源位置、照射強度、照射角度、発光波長のどれか1つだけでなく、複数を変化させてもよい。
【0098】
なお、複数の画像データを取得する手段としては、トリガ撮影モードに限らず、動画モードで連続的に画像データを取得し、その取得周期に合わせて照明手段116の各発光ブロックを発光させてもよい。
【0099】
本実施形態によれば、カメラ114から撮影される部品112の製造ばらつきがあったり、ロボットハンド113により部品112を把持した際の把持ばらつきがあったりした場合でも対応可能である。すなわち、部品112を最も正常に画像処理できる可能性の高い、最良と想定される一枚を出力することができる。そのため、正しく部品112の位置姿勢を認識することができる。
【産業上の利用可能性】
【0100】
本発明は、組み立てロボットシステムに好適に利用される。
【符号の説明】
【0101】
101 撮像素子
102 レンズ
103 コントローラ
104 画像入力インタフェース
106 画像特徴量計算手段
107 メモリ
108 画像選択手段
109 画像出力インタフェース
110 メモリ
112 部品
113 ロボットハンド
114 カメラ
115 演算手段
116 照明手段