(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】画像処理装置、ロボットシステム、及び画像処理方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20240625BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2019234841
(22)【出願日】2019-12-25
【審査請求日】2022-10-21
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】和田 潤
【審査官】杉山 悟史
(56)【参考文献】
【文献】米国特許出願公開第2003/0038875(US,A1)
【文献】特開2010-210585(JP,A)
【文献】特開2011-112401(JP,A)
【文献】特開平11-333770(JP,A)
【文献】特開平08-210847(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
予め定めた複数の撮像位置に配置されたカメラによって検出対象部を撮像した画像データを取得する画像取得部と、
第1の前記撮像位置で撮像された第1の前記画像データ
に写る前記検出対象部の第1輪郭と、第2の前記撮像位置で撮像された第2の前記画像データ
に写る前記検出対象部の第2輪郭とを、前記検出対象部の位置に設定された投影面に投影させた投影画像データを生成する投影画像生成部と、
前記投影画像生成部が生成した前記投影画像データにおいて、前記第1
輪郭の
投影画像デー
タと、前記第2
輪郭の
投影画像デー
タとが重複して投影された重複投影画像データを検出する重複検出部と、を備える、画像処理装置。
【請求項2】
予め定めた複数の撮像位置に配置されたカメラによって検出対象部を撮像した画像データを取得する画像取得部と、
第1の前記撮像位置で撮像された第1の前記画像データと、第2の前記撮像位置で撮像された第2の前記画像データとを、前記検出対象部の位置に設定された投影面に投影させた投影画像データを生成する投影画像生成部と、
前記投影画像生成部が生成した前記投影画像データにおいて、前記第1の画像データに写る前記検出対象部と、前記第2の画像データに写る前記検出対象部とが重複して投影された重複投影画像データを検出する重複検出部と、を備え、
前記投影画像生成部は、前記重複検出部が検出した前記重複投影画像データのみが写る第2の投影画像データをさらに生成する
、画像処理装置。
【請求項3】
前記検出対象部の前記位置の情報を受け付ける情報受付部をさらに備え、
前記投影画像生成部は、前記情報受付部が受け付けた前記位置に前記投影面を設定して前記投影画像データを生成する、請求項1又は2に記載の画像処理装置。
【請求項4】
前記情報受付部は、
前記情報を入力可能な入力装置から該情報を受け付けるか、又は、
前記検出対象部の前記位置を測定する位置測定器から前記情報を受け付ける、請求項3に記載の画像処理装置。
【請求項5】
前記検出対象部は、平面であって、
前記投影面は、前記平面と平行に設定される、請求項1~4のいずれか1項に記載の画像処理装置。
【請求項6】
各々の前記撮像位置は、基準座標系に対して既知の位置関係となるように定められ、
前記画像処理装置は、前記重複検出部が検出した前記重複投影画像データに基づいて、前記基準座標系における前記検出対象部の位置データを取得する位置データ取得部をさらに備える、請求項1~5のいずれか1項に記載の画像処理装置。
【請求項7】
請求項6に記載の画像処理装置と、
前記カメラと、
前記検出対象部を有するワークに対して作業を行うロボットと、
前記位置データ取得部が取得した前記位置データに基づいて、前記作業を実行させるように前記ロボットを制御する制御装置と、を備える、ロボットシステム。
【請求項8】
前記第1の撮像位置で前記第1の画像データを撮像する第1の前記カメラと、
前記第2の撮像位置で前記第2の画像データを撮像する第2の前記カメラと、を備える、請求項7に記載のロボットシステム。
【請求項9】
予め定めた複数の撮像位置に配置されたカメラによって検出対象部を撮像した画像データを取得し、
第1の前記撮像位置で撮像された第1の前記画像データ
に写る前記検出対象部の第1輪郭と、第2の前記撮像位置で撮像された第2の前記画像データ
に写る前記検出対象部の第2輪郭とを、前記検出対象部の位置に設定された投影面に投影させた投影画像データを生成し、
生成した前記投影画像データにおいて、前記第1
輪郭の
投影画像デー
タと、前記第2
輪郭の
投影画像デー
タとが重複して投影された重複投影画像データを検出する、画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、ロボットシステム、及び画像処理方法に関する。
【背景技術】
【0002】
複数の撮像位置で撮像した画像データから、所定の位置にある被写体を抽出する技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、産業機械の分野において、様々な部材が存在するワークセルをカメラで撮像した画像データにおいて、作業対象となる検出対象部を正確に検出する技術が求められている。
【課題を解決するための手段】
【0005】
本開示の一態様において、画像処理装置は、予め定めた複数の撮像位置に配置されたカメラによって検出対象部を撮像した画像データを取得する画像取得部と、第1の撮像位置で撮像された第1の画像データと、第2の撮像位置で撮像された第2の画像データとを、検出対象部の位置に設定された投影面に投影させた投影画像データを生成する投影画像生成部と、投影画像生成部が生成した投影画像データにおいて、第1の画像データに写る検出対象部と、第2の画像データに写る検出対象部とが重複して投影された重複投影画像データを検出する重複検出部とを備える。
【0006】
本開示の他の態様において、画像処理方法は、予め定めた複数の撮像位置に配置されたカメラによって検出対象部を撮像した画像データを取得し、第1の撮像位置で撮像された第1の画像データと、第2の撮像位置で撮像された第2の画像データとを、検出対象部の位置に設定された投影面に投影させた投影画像データを生成し、生成した投影画像データにおいて、第1の画像データに写る検出対象部と、第2の画像データに写る検出対象部とが重複して投影された重複投影画像データを検出する。
【発明の効果】
【0007】
本開示によれば、仮に、ワークセル内に、検出対象部以外の物体が存在していたとしても、該物体を誤検出してしまうのを防止し、検出対象部を示す重複投影画像データを、確実且つ自動的に検出することができる。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係る画像処理装置、カメラ、及び位置測定器のブロック図である。
【
図2】複数のカメラが撮像位置に配置された状態を示している。
【
図3】
図1に示す画像処理装置の動作フローの一例を示すフローチャートである。
【
図4】第1の撮像位置に配置されたカメラが撮像した画像データの画像の一例である。
【
図5】第2の撮像位置に配置されたカメラが撮像した画像データの画像の一例である。
【
図8】第1の撮像位置に配置されたカメラが撮像した画像データの画像の他の例である。
【
図9】第2の撮像位置に配置されたカメラが撮像した画像データの画像の他の例である。
【
図10】第1の撮像位置に配置されたカメラが撮像した画像データの画像のさらに他の例である。
【
図11】第2の撮像位置に配置されたカメラが撮像した画像データの画像のさらに他の例である。
【
図13】
図12に示す投影画像データで検出された重複投影画像データを示す。
【
図14】他の実施形態に係る画像処理装置、カメラ、及び位置測定器のブロック図である。
【
図15】一実施形態に係るロボットシステムのブロック図である。
【
図17】他の実施形態に係るロボットシステムの図である。
【発明を実施するための形態】
【0009】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、
図1を参照して、一実施形態に係る画像処理装置10について説明する。画像処理装置10は、プロセッサ14、メモリ16、及びI/Oインターフェース18を有するコンピュータである。
【0010】
プロセッサ14は、CPU又はGPU等を有し、メモリ16及びI/Oインターフェース18とバス20を介して通信可能に接続されている。プロセッサ14は、メモリ16及びI/Oインターフェース18と通信しつつ、後述する画像処理装置10の機能を実行するための演算処理を行う。メモリ16は、ROM又はRAM等を有し、各種データを一時的又は恒久的に記憶する。I/Oインターフェース18は、イーサネット(登録商標)ポート、USBポート、又はHDMI(登録商標)端子等を有し、プロセッサ14の指令の下、外部機器とデータを通信する。
【0011】
本実施形態においては、画像処理装置10のI/Oインターフェース18に、複数のカメラ22及び24と、位置測定器26とが、無線又は有線で通信可能に接続されている。
図2に示すように、カメラ22及び24は、同じ構成を有し、光学レンズ28(フォーカスレンズ等)、及び撮像センサ30(CCD、CMOS等)を有する。
【0012】
カメラ22には、カメラ座標系CC1が設定されている。カメラ座標系CC1は、カメラ22が撮像する画像データの各画素の座標を規定する座標系である。カメラ座標系CC1は、そのx-y平面が、カメラ22の視線方向と直交するように、該カメラ22に対して設定されている。カメラ22は、予め定めた第1の撮像位置P1に配置されている。カメラ22は、第1の撮像位置P1に配置された状態でワークWを撮像する。
【0013】
一方、カメラ24には、カメラ座標系CC2が設定されている。カメラ座標系CC2は、カメラ24が撮像する画像データの各画素の座標を規定する座標系である。カメラ座標系CC2は、そのx-y平面が、カメラ24の視線方向と直交するように、該カメラ24に対して設定されている。
【0014】
カメラ24は、予め定めた第2の撮像位置P2に配置されている。カメラ24は、第2の撮像位置P2に配置された状態でワークWを撮像する。なお、本稿において、「撮像位置」とは、カメラ22、24の3次元空間内の位置と、該カメラ22、24の姿勢(すなわち、視線方向)とを意味することがある。
【0015】
したがって、第1の撮像位置P1は、該第1の撮像位置P1に配置されたカメラ22のカメラ座標系CC1の原点位置及び各軸の方向によって、表すことができる。同様に、第2の撮像位置P2は、該第2の撮像位置P2に配置されたカメラ24のカメラ座標系CC2の原点位置及び各軸の方向によって、表すことができる。
【0016】
以下の説明においては、第1の撮像位置P1は、該第1の撮像位置P1に配置されたカメラ22のカメラ座標系CC1の原点位置及び各軸の方向を示すことがあり、また、第2の撮像位置P2は、該第2の撮像位置P2に配置されたカメラ24のカメラ座標系CC2の原点位置及び各軸の方向を示すことがある。
【0017】
ワークWは、ワークセル内の予め定められた位置に設置されている。本実施形態においては、ワークWは、円柱状であって、その頂端に表面WS(検出対象部)を有する。本実施形態においては、表面WSは、円形の輪郭(又はエッジ)Eを有する平面である。一方、ワークセルの3次元空間には、基準座標系CRが設定されている。基準座標系CRは、3次元空間内に固定された固定座標系である。
【0018】
基準座標系CRは、例えば、ワークセルの3次元空間を規定するワールド座標系、ワークWに対して設定されるワーク座標系、又は、後述するロボットに対して設定されるロボット座標系等である。本実施形態においては、ワークWは、その表面WSが基準座標系CRのx-y平面と略平行となるように、固定されている。一方、ワークWとは別の位置に、表面WSに類似する形状を有する非検出対象部NWが存在している。この非検出対象部NWは、例えば、ワークセル内の物体に形成された模様等である。
【0019】
第1の撮像位置P
1と基準座標系C
Rとの位置関係は、キャリブレーションによって既知とされている。したがって、第1の撮像位置P
1(すなわち、
図2中のカメラ座標系C
C1の原点位置及び各軸の方向)は、基準座標系C
Rの座標及びベクトル(又は関数)として、表される。カメラ座標系C
C1の座標と基準座標系C
Rの座標とは、第1の座標変換データを介して、相互に変換可能となっている。この第1の座標変換データは、例えばヤコビ行列であって、第1の撮像位置P
1と基準座標系C
Rとのキャリブレーションによって取得され得る。
【0020】
同様に、第2の撮像位置P2と基準座標系CRとの位置関係は、キャリブレーションによって既知とされている。したがって、カメラ座標系CC2の座標と基準座標系CRの座標とは、第2の座標変換データを介して、相互に変換可能となっている。この第2の座標変換データは、例えばヤコビ行列であって、第2の撮像位置P2と基準座標系CRとのキャリブレーションによって取得され得る。
【0021】
第1の撮像位置P1に配置されたカメラ22がワークWを撮像すると、ワークWからの光(すなわち、被写体像)A1は、カメラ22の光学レンズ28によって導光されて、撮像センサ30に結像される。また、非検出対象部NWからの光(被写体像)A2も、カメラ22の光学レンズ28によって導光されて、撮像センサ30に結像される。
【0022】
撮像センサ30は、受光した被写体像A
1及びA
2を光電変換し、画像データID
1を生成する。こうして、カメラ22は、ワークWの画像データID
1を撮像する。画像データID
1の画像の一例を、
図4に示す。画像データID
1には、非検出対象部NWとともに、表面W
Sの輪郭Eが見えるようにワークWが写っている。画像データID
1の各画素は、カメラ座標系C
C1の座標として表される。
【0023】
同様に、第2の撮像位置P2に配置されたカメラ24がワークWを撮像すると、ワークWからの光(被写体像)A3は、カメラ24の光学レンズ28によって導光されて、撮像センサ30に結像される。また、非検出対象部NWからの光(被写体像)A4も、カメラ24の光学レンズ28によって導光されて、撮像センサ30に結像される。
【0024】
撮像センサ30は、受光した被写体像A
3及びA
4を光電変換し、画像データID
2を生成する。こうして、カメラ24は、ワークWの画像データID
2を撮像する。画像データID
2の画像の一例を、
図5に示す。画像データID
2には、非検出対象部NWとともに表面W
Sの輪郭Eが見えるようにワークWが画像データID
1とは異なる位置に写っている。画像データID
2の各画素は、カメラ座標系C
C2の座標として表される。なお、
図2中の被写体像A
1及びA
3は、ワークWの表面W
S(具体的には、輪郭E)の光路をそれぞれ示している。
【0025】
位置測定器26は、表面WSの位置を測定する。例えば、位置測定器26は、物体へレーザ光を出射するレーザ出射部と、該物体で反射されたレーザ光を受光する受光部(ともに図示せず)とを有し、三角測距方式により、該物体までの距離を測定する。代替的には、位置測定器26は、2つのカメラを有し、該2つのカメラで撮像した画像から物体までの距離を測定してもよい。
【0026】
本実施形態においては、位置測定器26は、カメラ22に一体に設けられている。すなわち、カメラ22及び位置測定器26は、物体を撮像するとともに該物体までの距離を測定する3次元視覚センサを構成する。位置測定器26は、カメラ22とともに第1の撮像位置P1に配置された状態で、第1の撮像位置P1からワークWの表面WSまでの距離d1を測定する。
【0027】
一方、第1の撮像位置P
1と基準座標系C
Rの原点との距離d
0は、既知となっている。したがって、既知の距離d
0と、位置測定器26が測定した距離d
1とから、表面W
Sの、基準座標系C
Rのz軸方向の位置を求めることができる。
図2に示す例では、表面W
Sは、基準座標系C
Rのz軸座標z=z
0の位置にある。
【0028】
一例として、プロセッサ14は、位置測定器26が測定した距離d1を、I/Oインターフェース18を介して位置測定器26から取得し、予めメモリに記憶した距離d0と、取得した距離d1とを用いて、表面WSの基準座標系CRのz軸座標z0を演算により求める。代替的には、位置測定器26は、演算用のプロセッサをさらに有し、予め取得した既知の距離d0と、測定した距離d1とを用いて、表面WSの、基準座標系CRのz軸座標z0を演算により求めてもよい。
【0029】
次に、
図3を参照して、画像処理装置10の動作について説明する。
図3に示すフローは、プロセッサ14が、オペレータ、上位コントローラ、又はコンピュータプログラムから起動指令を受け付けたときに、開始する。ステップS1において、プロセッサ14は、カメラ22及び24が撮像した画像データID
1及びID
2を取得する。
【0030】
具体的には、カメラ22は、第1の撮像位置P
1に配置された状態で画像データID
1を撮像し、カメラ24は、第2の撮像位置P
2に配置された状態で画像データID
2を撮像する。カメラ22及び24は、撮像した画像データID
1及びID
2を、I/Oインターフェース18へ送信する。プロセッサ14は、I/Oインターフェース18を通して画像データID
1及びID
2を取得し、メモリ16に記憶する。このように、本実施形態においては、プロセッサ14は、画像データID
1及びID
2を取得する画像取得部32(
図1)として機能する。
【0031】
ステップS2において、プロセッサ14は、検出対象部としての表面WSの位置の情報を受け付ける。一例として、位置測定器26は、表面WSの位置の情報として、測定した距離d1をI/Oインターフェース18へ送信する。I/Oインターフェース18は、距離d1を受け付け、プロセッサ14は、I/Oインターフェース18を介して距離d1を取得する。そして、プロセッサ14は、距離d0及びd1を用いて、表面WSの基準座標系CRのz軸座標z0を求め、メモリ16に記憶する。
【0032】
他の例として、位置測定器26は、距離d
0及びd
1を用いて、表面W
Sの基準座標系C
Rのz軸座標z
0を求め、表面W
Sの位置の情報として、表面W
Sの座標z
0をI/Oインターフェース18へ送信する。I/Oインターフェース18は、座標z
0を受け付け、プロセッサ14は、I/Oインターフェース18を介して座標z
0を取得して、メモリ16に記憶する。このように本実施形態においては、I/Oインターフェース18は、表面W
Sの位置の情報を受け付ける情報受付部34(
図1)として機能する。
【0033】
ステップS3において、プロセッサ14は、投影画像データPD(
図6)を生成する。具体的には、プロセッサ14は、基準座標系C
Rにおいて、ステップS2で取得した表面W
Sの位置(すなわち、座標z
0の位置)に投影面PPを設定する。その結果、
図2に示すように、基準座標系C
Rにおいて投影面PPが設定される。この投影面PPは、基準座標系C
Rのx-y平面(すなわち、ワークWの表面W
S)と平行な仮想平面である。
【0034】
次いで、プロセッサ14は、画像データID1から、表面WSの輪郭Eの画像データID1_Eを抽出する。例えば、プロセッサ14は、ワークWの図面データ(2D又は3DCADモデル)を取得し、表面WSの輪郭Eのモデル形状に類似する形状を画像データID1から検索することによって、画像データID1から輪郭Eの画像データID1_Eを抽出してもよい。
【0035】
このとき、輪郭Eに類似する形状を有する非検出対象部NWの輪郭の画像データID1_Nも、画像データID1_Eとともに抽出され得る。同様にして、プロセッサ14は、画像データID2から輪郭Eの画像データID2_Eを抽出する。このとき、非検出対象部NWの輪郭の画像データID2_Nも、画像データID2_Eとともに抽出され得る。
【0036】
次いで、プロセッサ14は、抽出した画像データID1_E及びID1_Nと、画像データID2_E及びID2_Nとを、設定した投影面PPに投影させる。具体的には、プロセッサ14は、第1の撮像位置P1と基準座標系CRとの位置関係を示す第1の座標変換データを用いて、画像データID1_E及びID1_Nの各画素のカメラ座標系CC1の座標を、基準座標系CRにおけるz軸座標z0の位置でのx-y座標に変換する。
【0037】
該x-y座標に変換された各点は、被写体像A
1及びA
2を受光した撮像センサ30の各画素から該被写体像A
1及びA
2の光路に沿って延びる線と投影面PPとの交点であって、これら交点の基準座標系C
Rの座標は、投影面PPの位置が既知であれば、第1の座標変換データを用いた座標変換によって求めることができる。こうして、画像データID
1_Eを投影面PPに投影させた輪郭投影画像データPE
1(
図6)と、画像データID
1_Nを投影面PPに投影させた輪郭投影画像データPN
1とを、生成することができる。
【0038】
同様にして、プロセッサ14は、第2の撮像位置P2と基準座標系CRとの位置関係を示す第2の座標変換データと、投影面PPの座標z0とを用いて、画像データID2_E及びID2_Nを投影面PPに投影させる。その結果、画像データID2_Eを投影面PPに投影させた輪郭投影画像データPE2と、画像データID2_Nを投影面PPに投影させた輪郭投影画像データPN2とを、生成することができる。
【0039】
次いで、プロセッサ14は、投影面PPにおける投影画像データPDの範囲を画定する画像枠Fを設定し、
図6に示すような投影画像データPDを生成する。したがって、本実施形態においては、プロセッサ14は、投影画像データPDを生成する投影画像生成部36(
図1)として機能する。
【0040】
なお、プロセッサ14は、生成した画像枠Fの投影画像データPDを、表示装置に表示させてもよい。また、生成する投影画像データPDの画像枠Fの投影面PP上の位置及びサイズは、オペレータが手動で設定してもよい。この場合において、プロセッサ14は、オペレータから、画像枠Fの縦横サイズを、基準座標系CRのy軸の座標範囲とx軸の座標の範囲の入力として受け付けてもよい。又は、プロセッサ14は、輪郭投影画像データPE1、PE2、PN1、PN2を含むように自動で設定してもよい。
【0041】
投影画像データPDの各画素は、投影座標系CPによって座標化される。投影座標系CPは、その原点が基準座標系CRのz軸座標z0の位置に配置され、そのx軸及びy軸が投影面PPと平行となる座標系である。投影座標系CPと基準座標系CRとは、設定される画像枠Fに応じた既知の位置関係となる。なお、本実施形態においては、投影座標系CPのx軸及びy軸が、それぞれ、基準座標系CRのx軸及びy軸と平行となるように、画像枠Fが設定されている。
【0042】
投影座標系CPにおけるx軸及びy軸方向のサイズと、基準座標系CRにおけるx軸及びy軸方向のサイズとは、設定された画像枠Fのサイズに応じて互いに対応付けられている(例えば、投影座標系CPのx軸方向の距離「1」は、基準座標系CRのx軸方向の距離「10」に対応する)。
【0043】
このように、投影座標系CPと基準座標系CRとは、既知の位置関係となっており、投影座標系CPの原点位置及び各軸の方向は、基準座標系CRの座標及びベクトル(又は関数)として、表すことができる。したがって、投影座標系CPの座標と、基準座標系CRの座標とは、第3の座標変換データを介して、相互に変換可能となっている。
【0044】
ステップS4において、プロセッサ14は、投影画像データPDにおいて、画像データID1に写る画像データID1_Eと、画像データID2に写る画像データID2_Eとが重複して投影された重複投影画像データODを検出する。ここで、カメラ22に入射する表面WSの被写体像A1と、カメラ24に入射する表面WSの被写体像A3とは、表面WSの位置で一致する。
【0045】
換言すれば、カメラ22が撮像した表面WSの輪郭Eの画像データID1_Eを、表面WSの位置に設定した投影面PPへ投影した投影位置と、カメラ24が撮像した表面WSの輪郭Eの画像データID2_Eを、表面WSの位置に設定した投影面PPへ投影した投影位置とは、互いに一致する。この一致した投影位置において、画像データID1_Eと画像データID2_Eとが重複して投影されて、投影画像データPDにおいて重複投影画像データODを形成する。
【0046】
その一方で、カメラ22が撮像した非検出対象部NWの輪郭の画像データID1_Nを投影面PPへ投影した投影位置と、カメラ24が撮像した非検出対象部NWの輪郭の画像データID2_Nを投影面PPへ投影した投影位置とは、互いからずれることになる(輪郭投影画像データPN1、PN2)。プロセッサ14は、重複投影画像データODを投影画像データPDから検出する。
【0047】
一例として、プロセッサ14は、投影画像データPDの各画素の明るさを、画像データID1から投影された輪郭投影画像データPE1又はPN1を写している場合は「1」としてカウントする一方、輪郭投影画像データPE1及びPN1のいずれも写さない場合は「0」としてカウントする。
【0048】
また、プロセッサ14は、投影画像データPDの各画素の明るさを、画像データID2から投影された輪郭投影画像データPE2又はPN2を写している場合は「1」としてカウントする一方、輪郭投影画像データPE2及びPN2のいずれも写さない場合は「0」としてカウントする。
【0049】
そして、プロセッサ14は、投影画像データPDの各画素において、カウントした明るさを加算する。この場合、画像データID1から投影された輪郭投影画像データPE1又はPN1と、画像データID2から投影された輪郭投影画像データPE2又はPN2との双方を写す画素(すなわち、投影画像データPE1又はPN1と、投影画像データPE2又はPN2とが重複して投影された画素)の明るさは、「2」となる。
【0050】
一方、画像データID1から投影された輪郭投影画像データPE1又はPN1と、画像データID2から投影された輪郭投影画像データPE2又はPN2とのいずれか一方を写す画素の明るさは「1」となり、輪郭投影画像データPE1、PN1、PE2及びPN2のいずれも写していない画素の明るさは「0」となる。
【0051】
プロセッサ14は、投影画像データPDにおいて明るさが「2」となる画素を抽出し、抽出した画素が写す画像データを、重複投影画像データODとして検出する。このように、本例では、プロセッサ14は、投影画像データPDの画素の明るさに基づいて、重複投影画像データODを検出する。なお、輪郭投影画像データPE1、PN1、PE2、PN2を写す又は写さない画素の明るさは、「0」、「1」の2値に限らず、他の如何なる値に設定されてもよい。
【0052】
他の例として、プロセッサ14は、投影画像データPDから、各々の輪郭投影画像データPE1、PN1、PE2及びPN2の形状を抽出し、輪郭投影画像データPE1、PN1、PE2及びPN2の、互いに対応する特徴点(中心点、頂点、エッジ等)を特定する。本実施形態においては、プロセッサ14は、該特徴点として、輪郭投影画像データPE1の中心点CE1、輪郭投影画像データPE2の中心点CE2、輪郭投影画像データPN1の中心点CN1、及び輪郭投影画像データPN2の中心点CN2を特定する。
【0053】
そして、プロセッサ14は、特定した特徴点(中心点)CE1、CE2、CN1及びCN2の投影座標系CPの座標を取得し、複数の輪郭投影画像データPE1、PN1、PE2及びPN2のうち、2つの輪郭投影画像データの特徴点の距離dを算出する。プロセッサ14は、距離dが予め定めた閾値dthよりも小さい場合に、該2つの輪郭投影画像データのうちの一方を重複投影画像データODとして検出する。
【0054】
ここで、距離dは、投影画像データPDにおける2つの輪郭投影画像データの位置が一致しているか否かを定量的に示すパラメータであって、
図6に示す例では、特徴点CE
1及びCE
2の間の距離d
Eが、例えば特徴点CN
1及びCN
2の間の距離d
Nよりも、小さくなっている(具体的には、d
E≒0)。よって、距離dが閾値d
thよりも小さい場合は、2つの輪郭投影画像データPE
1及びPE
2の位置が一致し、該位置において画像データID
1_Eと画像データID
2_Eとが重複して投影されていると見做すことができる。
【0055】
図6に示す例では、プロセッサ14は、特徴点CE
1及びCE
2の距離d
Eが閾値d
thよりも小さいと判定し、輪郭投影画像データPE
1及びPE
2の一方を、重複投影画像データODとして検出する。以上のような方法で、プロセッサ14は、重複投影画像データODを検出できる。したがって、本実施形態においては、プロセッサ14は、重複投影画像データODを検出する重複検出部38(
図1)として機能する。
【0056】
ステップS5において、プロセッサ14は、ステップS4で検出した重複投影画像データODに基づいて、基準座標系CRにおける表面WSの位置データを取得する。具体的には、プロセッサ14は、投影画像データPDを画像処理し、重複投影画像データODの形状を抽出する。このとき、プロセッサ14は、重複投影画像データODの画像の輪郭線を滑らかに接続する画像フィルタ処理を実行し、重複投影画像データODを更新してもよい。
【0057】
そして、プロセッサ14は、重複投影画像データODの投影座標系CPの位置を取得する。例えば、プロセッサ14は、重複投影画像データODの投影座標系CPの位置として、重複投影画像データODの特徴点(中心点CO)を画像処理により特定し、該特徴点COの投影座標系CPにおける座標(xP,yP)を取得する。なお、この特徴点COは、上述の特徴点CE1又はCE2に略一致する。
【0058】
そして、プロセッサ14は、投影座標系C
Pの座標(x
P,y
P)を、投影面PPの座標z
0と第3の座標変換データとを用いて、基準座標系C
Rの座標(x
R,y
R,z
0)に変換する。この座標(x
R,y
R,z
0)は、基準座標系C
Rにおける表面W
Sの特徴点(中心点)の位置を示す位置データとなる。このように本実施形態においては、プロセッサ14は、重複投影画像データODに基づいて、基準座標系C
Rにおける表面W
Sの位置データ:座標(x
R,y
R,z
0)を取得する位置データ取得部40(
図1)として機能する。
【0059】
以上のように、本実施形態においては、投影画像データPDにおいて重複投影画像データODを自動で検出する。この構成によれば、仮に、ワークセル内に、検出対象部としての表面WSに類似する形状の非検出対象部NWが存在していたとしても、該非検出対象部NWを誤検出してしまうのを防止し、検出対象部としての表面WSを示す重複投影画像データODを、確実且つ自動的に検出することができる。
【0060】
また、本実施形態においては、位置測定器26が表面WSの位置を測定し、該位置の情報を情報受付部34が受け付けている。この構成によれば、プロセッサ14は、表面WSの位置を自動で取得することができる。また、本実施形態においては、プロセッサ14は、基準座標系CRにおける表面WSの位置データ:座標(xR,yR,z0)を取得している。この構成によれば、ワークWに対して作業を行うロボットの制御に用いる位置データを自動で取得することができる。なお、ロボットの制御については、後述する。
【0061】
なお、上述のステップS4において、プロセッサ14は、重複投影画像データODを検出したときに、投影画像生成部36として機能して、重複投影画像データODのみが写る第2の投影画像データPD2をさらに生成してもよい。この第2の投影画像データPD2の例を、
図7に示す。
【0062】
図7に示すように、第2の投影画像データPD2においては、ステップS4で検出した重複投影画像データODが写る一方、
図6の投影画像データPDに写っていた輪郭投影画像データPN
1及びPN
2を含む、重複投影画像データOD以外の画像が、視覚的に識別不能となるように単一の明るさで示されている(又は、消去されている)。
【0063】
例えば、プロセッサ14は、検出した重複投影画像データODを写す画素以外の画素の明るさを、重複投影画像データODを写す画素の明るさ(例えば、「2」)とは異なる単一の明るさ(例えば、「0」)とするように投影画像データPDを修正することによって、
図7に示す第2の投影画像データPD2を生成する。
【0064】
代替的には、プロセッサ14は、検出した重複投影画像データODの投影座標系CPの座標を記憶し、該座標を、投影座標系CPが設定された新たな画像データにプロットすることによって、第2の投影画像データPD2を新たな画像データとして生成してもよい。このように生成された第2の投影画像データPD2においては、重複投影画像データODのみが明瞭に写されることになる。
【0065】
そして、プロセッサ14は、ステップS5において、第2の投影画像データPD2を画像処理することにより重複投影画像データODの形状を抽出し、特徴点COを特定して、投影座標系CPにおける特徴点COの座標(xP,yP)を取得する。この構成によれば、プロセッサ14は、重複投影画像データOD及び特徴点COを抽出する画像処理を、より効果的に実行することができる。
【0066】
さらに、第2の投影画像データPD2によれば、仮に、カメラ22が撮像した画像データID
1、又はカメラ24が撮像した画像データID
2にノイズ等が写っていたとしても、重複投影画像データOD及びその特徴点COを正確に抽出できる。この効果について、
図8及び
図9を参照して説明する。
【0067】
図8及び
図9に示す例では、ステップS1で撮像された画像データID
1及びID
2に、ノイズHがそれぞれ写り込んでいる。このようなノイズHは、例えば、撮像時に被写体へ照射される光の方向及び照度や、撮像センサ30の光電変換時に発生する電気的ノイズ、又は、切粉等の異物からの反射光等に起因し得る。
【0068】
このような画像データID1及びID2を用いて、プロセッサ14がステップS2~S4を実行し、ステップS4において第2の投影画像データPD2を生成した場合、第2の投影画像データPD2においては、重複投影画像データOD以外の画像が視覚的に消去されるので、ノイズHの画像も視覚的に消去されることになる。したがって、画像データID1及びID2にノイズHが写り込んでいたとしても、第2の投影画像データPD2から重複投影画像データOD及びその特徴点COを正確に抽出できる。
【0069】
次に、
図3、
図10~
図12を参照して、画像処理装置10の他の機能について説明する。本実施形態においては、ワークWは、略矩形の表面W
Sを有しており、該表面W
Sは、上述の実施形態と同様に、基準座標系C
Rのz軸座標
0の位置にある。ここで、
図10に示すように、ステップS1でカメラ22が撮像した画像データID
1において、ワークWの表面W
Sの一部が写らない場合がある。このような現象は、カメラ22とワークWとの間に障害物がある場合、又は、上述のノイズ等に起因して生じ得る。
【0070】
画像データID
1においては、表面W
SのエッジEのうち、
図10中の実線で示す部分E1の画像データID
1_E1が写っている一方、点線で示す部分E2は写っていない。同様に、
図11に示すように、ステップS1でカメラ24が撮像した画像データID
2においては、表面W
SのエッジEのうち、実線で示す部分E3の画像データID
1_E3が写っている一方、点線で示す部分E4は写っていない。
【0071】
このような画像データID
1及びID
2を用いて、
図3のフローを実行した場合、ステップS3において、プロセッサ14は、画像データID
1に写る画像データID
1_E1と、画像データID
2に写るID
2_E3とを、投影面PPに投影させ、
図12に示す投影画像データPDを生成する。
図12に示す投影画像データPDにおいては、画像データID
1_E1が輪郭投影画像データPE
E1として投影され、画像データID
2_E3が輪郭投影画像データPE
E2として投影される一方、輪郭Eの一部に対応する、点線Gで示す画像データが欠落している。
【0072】
ステップS4において、プロセッサ14は、投影画像データPDにおいて、画像データID1に写る画像データID1_E1と、画像データID2に写る画像データID2_E3とが重複して投影された重複投影画像データODを検出する。具体的には、プロセッサ14は、投影画像データPDの各画素の明るさを、輪郭投影画像データPEE1を写している場合は「1」としてカウントする一方、輪郭投影画像データPEE1を写していない場合は「0」としてカウントする。
【0073】
また、プロセッサ14は、投影画像データPDの各画素の明るさを、輪郭投影画像データPEE3を写している場合は「1」としてカウントする一方、輪郭投影画像データPEE3を写していない場合は「0」としてカウントする。そして、プロセッサ14は、投影画像データPDの各画素において、カウントした明るさを加算する。
【0074】
この場合、輪郭投影画像データPEE1及びPEE3の双方を写す画素(すなわち、画像データID1_E1及びID2_E3が重複して投影された画素)の明るさは、「2」となる。一方、輪郭投影画像データPEE1及びPEE3のいずれか一方を写す画素の明るさは「1」となり、輪郭投影画像データPEE1及びPEE3のいずれも写していない画素の明るさは「0」となる。
【0075】
そして、プロセッサ14は、投影画像データPDにおいて明るさが「2」となる画素を抽出し、抽出した画素が写す画像データを、重複投影画像データODとして検出する。その結果、
図13に示す画像データODが検出される。この画像データODにおいては、輪郭Eの一部に対応する、点線Jで示す画像データが欠落している。
【0076】
ステップS5において、プロセッサ14は、ステップS4で検出した
図13に示す重複投影画像データODに基づいて、基準座標系C
Rにおける表面W
Sの位置データを取得する。具体的には、プロセッサ14は、
図13に示す投影画像データPDを画像処理し、重複投影画像データODの形状を抽出する。
【0077】
このとき、プロセッサ14は、ワークWの図面データから輪郭Eのモデル形状を取得し、該モデル形状と重複投影画像データODとを比較して、例えば欠落部分Jに相当する画像データを推定して補完することによって、輪郭Eの全周に対応する重複投影画像データODの形状を抽出してもよい。
【0078】
そして、プロセッサ14は、重複投影画像データODの投影座標系CPにおける位置として、重複投影画像データODの特徴点(中心点、頂点等)を画像処理により特定し、該特徴点の投影座標系CPにおける座標を取得する。そして、プロセッサ14は、投影座標系CPの座標を基準座標系CRの座標に変換し、基準座標系CRにおける表面WSの特徴点の位置を示す位置データとして取得する。
【0079】
このように、画像処理装置10によれば、ステップS1でカメラ22又は24が撮像した画像データID1又はID2において、ワークWの表面WSの一部が写らなかったとしても、例えばワークWの図面データと、画像データの一部が欠落した重複投影画像データODとの比較に基づいて、重複投影画像データOD及びその特徴点を抽出することができる。
【0080】
次に、
図14を参照して、画像処理装置10のさらに他の機能について説明する。本実施形態においては、画像処理装置10のI/Oインターフェース18に、上述の位置測定器26が接続されていない一方で、表示装置41及び入力装置42が、有線又は無線で通信可能に接続されている。
【0081】
表示装置41は、LCD又は有機ELディスプレイ等を有し、プロセッサ14は、I/Oインターフェース18を介して、表示装置41に画像データを送信し、該表示装置41に画像を表示させる。入力装置42は、キーボード、マウス、又はタッチセンサ等を有し、オペレータが入力した情報を、I/Oインターフェース18を介してプロセッサ14へ送信する。なお、表示装置41及び入力装置42は、画像処理装置10に一体に設けられてもよいし、画像処理装置10とは別体として設けられてもよい。
【0082】
次に、
図3を参照して、本実施形態に係る画像処理装置10の動作について説明する。本実施形態の動作は、
図1に示す実施形態と、ステップS2において相違する。具体的には、ステップS2において、プロセッサ14は、表面W
Sの位置の情報を受け付ける。例えば、プロセッサ14は、表面W
Sの基準座標系C
Rのz軸座標を入力するための入力画像データを生成し、表示装置41に表示させる。このとき、プロセッサ14は、入力画像とともに、ワークWの既知の公称寸法又は図面データを表示装置41に表示させてもよい。
【0083】
オペレータは、ワークWの公称寸法又は図面データ考慮して、表示装置41に表示された入力画像を視認しつつ入力装置42を操作し、表面WSの位置の情報として、表面WSの基準座標系CRのz軸座標z=z0を入力する。I/Oインターフェース18は、情報受付部34として機能し、入力装置42に入力された表面WSの位置の情報(座標z0)を、該入力装置42から受け付ける。
【0084】
プロセッサ14は、I/Oインターフェース18を通して、表面WSの位置の情報(座標z0)を取得し、メモリ16に記憶する。このように、本実施形態によれば、オペレータは、入力装置42に表面WSの位置の情報(座標z0)を任意に入力し、ステップS3で設定する投影面PPの位置を、ワークWの既知の公称寸法又は図面データ等を考慮して、任意に設定できる。
【0085】
次に、
図15及び
図16を参照して、一実施形態に係るロボットシステム50について説明する。ロボットシステム50は、制御装置52、ロボット54、画像処理装置10、カメラ22及び24、位置測定器26、表示装置41、及び入力装置42を備える。制御装置52は、ロボット54、カメラ22及び24、並びに位置測定器26の動作を制御する。
【0086】
本実施形態においては、ロボット54は、垂直多関節ロボットであって、ロボットベース56、旋回胴58、ロボットアーム60、手首部62、及びエンドエフェクタ64を有する。ロボットベース56は、ワークセルの床に固定されている。旋回胴58は、ロボットベース56に鉛直軸周りに旋回可能に設けられている。
【0087】
ロボットアーム60は、旋回胴58に回動可能に取り付けられた下腕部66と、該下腕部66の先端部に回動可能に取り付けられた上腕部68とを有する。手首部62は、上腕部68の先端部に連結され、エンドエフェクタ64を回動可能に支持する。エンドエフェクタ64は、ロボットハンド、切削工具、レーザ加工ヘッド、溶接トーチ、又は塗料塗布器等であって、ワークWに対して所定の作業(ハンドリング、切削加工、レーザ加工、溶接、塗工等)を行う。
【0088】
ロボット54の各コンポーネント(ロボットベース56、旋回胴58、ロボットアーム60、手首部62)には、サーボモータが内蔵されている。サーボモータは、プロセッサ14からの指令に応じて、ロボット54の各可動コンポーネント(旋回胴58、ロボットアーム60、手首部62)を動作させ、エンドエフェクタ64を、3次元空間内の任意の位置及び姿勢に配置する。
【0089】
本実施形態においては、画像処理装置10は、制御装置52に実装されている。すなわち、制御装置52は、プロセッサ14、メモリ16、及びI/Oインターフェース18を有するコンピュータであって、プロセッサ14、メモリ16、及びI/Oインターフェース18は、画像処理装置10を構成する。
【0090】
プロセッサ14は、ロボット54によってワークWに作業を行う前に、
図3に示すフローを実行し、ステップS5で表面W
Sの位置データ:座標(x
R,y
R,z
0)を取得する。そして、プロセッサ14は、位置データ:座標(x
R,y
R,z
0)に基づいてロボット54を制御し、該ロボット54によってワークW(例えば、表面W
S)に対して作業を行う。
【0091】
以上のように、本実施形態においては、撮像位置P1及びP2でカメラ22及び24が撮像した画像データID1及びID2から、ワークWの表面WSの位置データ:座標(xR,yR,z0)を取得し、該位置データ:座標(xR,yR,z0)に基づいてロボット54を制御することによって、ワークWに対する作業を正確に実行することができる。
【0092】
なお、ロボットシステム50において、制御装置52と画像処理装置10とを別体として構成することもできる。この場合、制御装置52は、プロセッサ及びメモリを有する1つのコンピュータであって、画像処理装置10に通信可能に接続される。そして、画像処理装置10のプロセッサ14は、ステップS5で位置データ:座標(xR,yR,z0)を取得したときに、該位置データを制御装置52に送信してもよい。
【0093】
また、1つのカメラ22を用いて、
図3に示すフローを実行することもできる。このような形態を
図17に示す。
図17に示すロボットシステム50’においては、上述のカメラ24が設けられておらず、位置測定器26が一体に設けられたカメラ22が、ロボット54のエンドエフェクタ64に設置されている。
【0094】
本実施形態においては、カメラ22は、ロボット54の手先(又は、TCP)に対して、キャリブレーションにより既知の位置関係に配置されている。したがって、制御装置52は、基準座標系CRにおけるカメラ22の位置及び姿勢(すなわち、カメラ座標系CC1の原点位置及び各軸の方向)を認識できるようになっている。
【0095】
ロボットシステム50’において
図3に示すフローを実行する場合、プロセッサ14は、ステップS1において、ロボット54を動作させて、カメラ22を第1の撮像位置P
1に配置し、カメラ22によって画像データID
1を撮像する。また、プロセッサ14は、ロボット54を動作させて、カメラ22を第2の撮像位置P
2に配置し、カメラ22によって画像データID
2を撮像する。このように、1つのカメラ22を複数の撮像位置P
1、P
2に配置して撮像した画像データID
1、ID
2を用いて、
図3に示すフローを実行することができる。
【0096】
なお、上述の画像処理装置10から、位置データ取得部40を省略することもできる。例えば、重複検出部38が投影画像データPDにて重複投影画像データODを検出したときに、重複投影画像データODを基に、オペレータが手動で表面WSの位置データ:座標(xR,yR,z0)を求めてもよい。また、画像処理装置10から、メモリ16又はI/Oインターフェース18を省略してもよい。
【0097】
また、上述の実施形態においては、検出対象部が表面WSである場合について述べたが、これに限らず、検出対象部は、例えば、物体(ワークW)の側面に形成されるエッジ、凸部、凹部等、如何なる構造のものであってもよい。また、表面WSは、円形に限らず、楕円形、多角形等、如何なる形状であってもよい。また、表面WSは、基準座標系CRのx-y平面に対して傾斜してもよい。この場合において、プロセッサ14は、上述のステップS3において、投影面PPを表面WSと平行に設定してもよい。
【0098】
また、第1の撮像位置P
1及び第2の撮像位置P
1は、
図2に示す位置に限定されず、如何なる位置であってもよい。また、計n個(nは3以上の正数)のカメラを、それぞれ、第1の撮像位置P
1、第2の撮像位置P
2、・・・第nの撮像位置P
nに配置させて、画像データID
1、ID
2、・・・ID
nを撮像させ、これら画像データID
1、ID
2、・・・ID
nを用いて、
図3に示すフローを実行することもできる。この場合において、プロセッサ14は、ステップS4において、少なくとも2つの(例えば、全ての)画像データID
nに写る表面W
S(検出対象部)が重複された重複投影画像データODを検出する。
【0099】
また、上述の実施形態においては、ステップS3において、プロセッサ14が画像枠Fを設定する場合について述べた。しかしながら、プロセッサ14は、投影画像データPDを、画像枠Fで区切ることなく、基準座標系CRにおけるz軸座標z0の位置でのx-y座標の点の集合体として生成することができる。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0100】
10 画像処理装置
14 プロセッサ
22,24 カメラ
26 位置測定器
32 画像取得部
34 情報受付部
36 投影画像生成部
38 重複検出部
40 位置データ取得部
50,50’ ロボットシステム
52 制御装置
54 ロボット