以下に、本発明の好適な実施形態について、添付図面に示す各実施例にしたがって詳細に説明する。画像処理装置、ロボット、搬送装置等を備えるシステムの例を説明するが、以下の実施形態に示す構成要素は一例であり、本発明は画像処理装置を利用した各種の計測システムに適用可能である。
[第1実施例]
図1は、本実施形態に係る画像処理装置を含むシステムの全体構成図である。システムの制御装置101は、予め設定されたタイミングで各装置への制御指令を送信する。システムは制御装置101、画像処理装置102、撮像装置103、作業用のロボット104、搬送装置105、搬送車106,107から構成される。
画像処理装置102は、制御装置101から受信した制御指令にしたがって、撮像装置103の駆動制御を行う。撮像装置103は撮影方向と撮影画角の変更が可能であり、画像処理装置102からの制御信号により計測対象の撮影位置を変更して撮像動作を行う。画像処理装置102は撮像装置103から取得した撮像画像データを処理し、画像処理結果を制御装置101に送信する。制御装置101は、画像処理結果に基づいてロボット104、搬送装置105、搬送車106,107を制御し、所定の作業を実行させる。
一例として、以下の作業工程を説明する。
・撮像装置103が撮像した画像データを用いて、搬送装置105により搬送されるワーク108~110の種別を判別する工程。
・ロボット104によってワークの種別ごとに異なる搬送車にワークを配置する工程。
ワークを搬送する搬送車106,107の停止位置は、複数の停止枠111により決定されるものとする。
図2は撮像装置103の撮影方向と撮影画角を変更する駆動機構を説明する模式図である。撮像装置103は、雲台201と撮影系(撮像光学系)202を備える。雲台201は、撮影系202の方向を、横方向(以下、パンニング方向をP方向と記す)および縦方向(以下、チルティング方向をT方向と記す)に変化させる2つの駆動系の機構部を有する。パンニング機構(パン機構ともいう)は撮影系202をP方向に駆動させる機構であり、チルティング機構(チルト機構ともいう)は撮影系202をT方向に駆動させる機構である。これらの機構によって撮影系202の撮影方向は、P方向にて360°の範囲で変更可能、つまりエンドレス旋回が可能である。またT方向にて、水平方向を0度として-30.0度~+210.0度の範囲で撮影方向を変更可能である。また撮像装置103はズーム機構により、撮影系202のズーム倍率を1.0倍~20.0倍の範囲で変更可能である。
このように撮像装置103は、撮影方向およびズーム倍率の制御により撮影位置と撮影画角を変更することができ、例えば以下の計測シーンを撮影することができる。
・ワーク108~110の種別を検出する計測シーンA112。
・搬送車106,107が停止枠111内にそれぞれ存在するか否かを判定する計測シーンB113および計測シーンC114。
本実施形態では便宜上、1台の撮像装置の使用例を説明するが、より大規模なシステムにおいては複数の撮像装置が使用される。各撮像装置は複数の計測シーンの撮影を担当する。
図3は、計測シーンA112およびB113を説明する図である。図3(A)は計測シーンA112の画像例を示し、図3(B)は計測シーンB113の画像例を示す。図3(A)に示す画像301は、撮像装置103が搬送装置105上のワーク108を撮像した画像である。画像処理装置102は画像301のデータを処理し、ワーク108の実空間座標を算出する。制御装置101は画像処理結果に基づいてロボット104を制御する。このとき、撮像装置103の位置再現性が低下すると、画像処理装置102が算出したワーク108の位置姿勢の座標と実際のワーク108の位置姿勢の座標との間で誤差が発生する。誤差が許容範囲を超えた場合、ロボット104の制御に誤りが発生し、ワーク108の把持やピックアップ動作に支障を来す可能性がある。
そこで画像処理装置102は、撮像装置103の撮影位置を変更したのちに基準画像領域の撮影を行い、位置再現性が確保できているかどうかを判定する。基準画像領域については後述するが、例えば搬送装置105を固定するボルトや柱が写っている領域302のように、時間経過に伴う変動が小さく、かつ特徴量の大きい領域が基準画像領域として好適である。これに対し、ワーク108とその周辺部が写っている領域のような、動画像において時間経過に伴って位置や傾きが変化する領域は基準画像領域として適切ではない。
撮像装置103は、基準画像領域302を含む画像301のデータを画像処理装置102に送信する。または、基準画像領域302をトリミングした画像データを撮像装置103が画像処理装置102に送信してもよい。あるいは、撮像装置103が画像301の画像処理を行って後述する特徴を抽出し、抽出結果を示すデータのみを画像処理装置102に送信してもよい。
図3(B)に示す画像303は、撮像装置103が搬送車106を撮像した画像である。画像処理装置102は画像303の画像処理を行い、搬送車106が停止枠111内に存在するかどうかを判定する。このとき撮像装置に要求される位置再現性については、計測シーンA112に比較して判定精度が低いものとする。むしろ過分な位置再現性を要求すると、必要以上の補正処理が行われた場合に計測時間が長くなるという問題が発生する。
図4は、画像処理装置102の構成例を示すブロック図である。画像処理装置102はインターフェース部403を介して制御装置101、撮像装置103と接続されている。入出力表示装置401、操作入力装置402はインターフェース部403を介して画像処理装置102と接続された、ユーザ・インターフェース用の装置である。各装置は画像処理装置102の内部バス上に配置された各インターフェース部403を介して接続される。各インターフェース部403は通信に適した規格に基づき、接続対象に応じたネットワークインターフェース部、シリアル通信インターフェース部等から構成される。
入出力表示装置401は、画像を表示する陰極管や液晶パネル等の表示デバイスを備える。操作入力装置402は、キーボードやポインティングデバイス、タッチパネル、入力操作コントローラ、ジェスチャ入力装置等により構成される。
画像処理装置102と接続される撮像装置103には、撮影のために必要に応じて照明装置を併設してもよい。照明装置はハロゲンランプや発光ダイオード等の光源を備える。また画像処理装置102に外部記憶装置を接続して、記憶容量を拡大してもよい。
画像処理装置102は、画像処理の制御主体となる汎用マイクロプロセッサとして構成されたCPU(中央演算処理装置)や画像処理プロセッサ等により構成される演算部404を有する。演算部404は内部バス(データバス、アドレスバス、他の制御線等)を介して記憶部405と接続される。
記憶部405には、ROM、RAM、またはEPROM、EEPROM等の不揮発性メモリデバイスや、外部記憶装置が使用される。ROMは“Read Only Memory”、RAMは“Random Access Memory”の略号である。EPROMは“Erasable Programmable Read Only Memory”の略号である。EEPROMは“Electrically Erasable Programmable Read Only Memory”の略号である。外部記憶装置は、例えばハードディスクドライブ装置(HDD)や半導体メモリ素子で構成された記憶装置、あるいはインターフェース部403と接続可能な記憶装置等である。
記憶部405は処理データ保存領域406およびプログラム記憶領域を有する。処理データ保存領域406は、記憶部405中のRAM領域や、外部記憶装置のファイル領域や仮想記憶領域等によって構成される。処理データ保存領域406は、処理データを一時的に記憶する他、画像処理の設定パラメータ等の記憶領域として使用される。記憶部405のプログラム記憶領域には、本実施例の画像処理を実行するための画像処理プログラム407が記憶される。画像処理プログラム407は、操作入力装置402によって行われた各種操作に応じて、画像処理の設定変更や所定の画像処理を実行する。また変更内容について、処理データ保存領域406へのデータの保存や、データの削除が可能である。
画像処理プログラム407は、各種の機能を実現するソフトウェアモジュールから構成される。例えば画像処理モジュール408は画像処理を実現する本体部分である。このモジュールが行う画像処理には画像処理ライブラリ409が用いられる。画像処理ライブラリ409は、例えば静的または動的にリンクされるライブラリとして記憶部405に実装される。画像処理設定モジュール410は画像処理プログラム407の振舞いを決定する。画像処理設定は操作入力装置402によって行われた各種操作に応じて行われる。
さらに、画像処理プログラム407には、次の機能を実現するI/O(入出力)用サブルーチンが含まれる。例えば、外部デバイス制御サブルーチン411、保存データ生成サブルーチン412、制御装置101からの制御指令を受け付けるための指令受付サブルーチン413がある。またRAM領域や演算部404のキャッシュ領域等を使用する一時記憶サブルーチン414、表示画面生成サブルーチン415がある。保存データ出力サブルーチン416は処理データ保存領域406に保存されたデータを読み出して出力するプログラムであり、操作受付サブルーチン417は操作入力装置402からの操作指示を受け付けるためのプログラムである。各機能は、アプリケーション(ユーティリティ)プログラムや、静的または動的にリンクされるライブラリとして構成されたサブルーチン、といった形態で記憶部405に実装される。
画像処理装置102のCPUは画像処理プログラム407を実行することにより、撮像装置103の制御、演算部404を利用した画像処理を行う。また、操作入力装置402によりユーザの操作指示を受け付ける処理や、画像処理装置102の外部装置である制御装置101から制御指令を受け付ける処理が実行される。演算部404は操作指示や制御指令に応じて、画像処理プログラム407の各機能モジュールやライブラリを呼び出して演算処理を行い、画像処理結果のデータを制御装置101に送信する。また、画像処理結果のデータを外部記憶装置に送信して蓄積(ロギング)することができる。さらには、プログラムによって予め記憶されている画面構成と画像処理結果とを画面上で合成し、入出力表示装置401に表示する処理が実行される。
図5は、画像処理プログラム407を作成するためのフローチャート作成画面の例を示す図である。この画面は入出力表示装置401に表示される。本実施例に係る画像処理プログラム407は、ユーザが画像処理装置102を用いて作成したフローチャートに従って実行されるものとする。その他の実施形態として、ユーザが図1に示していない画像処理プログラム作成装置を使用して画像処理プログラム407を作成する形態がある。この場合、作成された画像処理プログラム407が画像処理装置102の記憶部405に転送されて記憶される。また、機能別または目的別に予め定型で用意された組合せ済みの画像処理フローチャートを内包したパッケージ機能を用いる形態でもよい。この場合、ユーザはGUI(グラフィカル・ユーザ・インターフェース)上で所望の機能を選択し、パラメータ等の調整を行うことができる。
パーツリスト501は、フローチャートを構成する各処理パーツのリストである。ユーザは矩形枠内に示す各種の処理や、菱形枠内に示す条件分岐処理を指定することができる。例えばユーザは操作入力装置402を用いて、パーツリスト501から所望の処理パーツを指定する。ポインティングデバイス等でドラッグ&ドロップ操作を行い、フローチャート領域502に配置した複数の処理パーツ同士を線で結合することにより、フローチャートの作成が可能である。
複数の処理パーツから構成されるフローチャート503は、ロボット104によってワーク108~110を搬送装置105から取り出し、ワークの種別に従って搬送車106または107に配置する処理を記述した例である。この例において、処理の開始後の撮影処理504はワーク108~110を撮影する処理である。次のワーク位置計算505はワーク108~110の位置や位相を算出する計算処理であり、その次のロボット移動506の処理は、算出されたワーク位置の上方にロボット104のハンドを移動させたり回転させたりする処理である。Pick処理507はロボット104によるワーク108のピックアップ動作の処理であり、その次の撮影処理508は搬送車106を撮影する処理である。その次には、撮像画像内に搬送車106の画像領域が存在するかどうかを検出する存在検出509の処理が記述されている。さらに条件分岐処理510では、搬送車106の画像領域が撮像画像内に存在する場合にロボット移動処理511に進み、搬送車106の画像領域が撮像画像内に存在しない場合に報知処理513に進むことが記述されている。ロボット移動処理511は、ロボット104により取り出されたワーク108を搬送車106の位置に移動させる処理である。次のPlace処理512はロボット104がワーク108を搬送車106上に載置する処理である。報知処理513は一定時間を待って検出された異常発生を報知する処理である。そして一連の処理を終了する。
ユーザは所望の処理パーツを組み合わせて、目的とするフローチャート503を作成する。作成されたフローチャート503において、処理パーツのいずれかのダブルクリック操作が行われた場合、当該処理パーツの詳細な処理を設定するための設定画面の表示処理に遷移する。この設定画面については後述する。OKボタン514のクリック操作が行われた場合、画像処理装置102はフローチャートに記述された処理を実行するための画像処理プログラム407を生成する。
図6は、撮影処理における基準特徴の登録処理画面を表す図である。例えば、ユーザが図5に示すフローチャート503において、撮影処理504または508の処理パーツに対するダブルクリック操作を行った場合、登録処理画面601が入出力表示装置401によって表示される。ユーザは登録処理画面601を見ながら、計測時の基準として用いる基準特徴部の設定登録を行うことができる。
図7は基準特徴の登録処理のシーケンス図である。以下では、図6および図7を参照して以下の処理(A)~(D)から構成される登録処理について具体的に説明する。
(A)使用する撮像装置の設定処理。
(B)撮影位置に関するパンニングとチルティング、ズーム倍率の設定処理。
(C)撮像装置が備える駆動機構部の性能や劣化に由来する位置再現性を評価するために基準画像領域・抽出特徴・誤差計算方法を設定する処理。駆動機構部にはパン機構、チルト機構、ズーム機構が含まれる。
(D)計測シーンごとの許容誤差・脱出条件を設定する処理。
まず処理(A)について説明する。図6の撮影パーツID602は、撮影パーツを識別するための情報を表示するボックスである。カメラID603は、撮像装置の識別情報であるカメラIDを設定するためのスピンボックス、つまりスピンコントロール付きテキストボックスである。システムにて複数台の撮像装置が使用される場合、ユーザはカメラIDを選択することによって、撮影に使用するカメラを設定することができる。ここでは、撮像装置103に割り当てられたカメラIDが指定されたものとして説明する。
次に処理(B)について説明する。図6のバー604~606は、撮像装置103のパンニング、チルティング、ズーム倍率を変更するために操作されるスライドバーである。撮像装置103による撮像画像は画像表示領域607に表示され、その下側にパンニング用のバー604が配置されている。バー604の操作によりP方向における撮影位置を変更可能である。画像表示領域607の右側にはチルティング用のバー605、およびズーム倍率変更用のバー606が配置されている。バー605の操作によりT方向における撮影位置を変更可能である。バー606の操作により撮影画角を変更可能である。
図7には画像処理装置102と撮像装置103との間で行われる処理の一例を示す。時間軸の方向を図7の上から下への方向と定義する。ユーザがバー604~606のうちの所望のバーを操作した場合、画像処理装置102は撮像装置103に対して撮影指令を送信する(S701)。撮像装置103は駆動部を制御して、パンニングやチルティングの変更(撮影方向の変更)、またはズーム倍率の変更を行う(S702)。その後、撮像装置103による撮影動作が行われ(S703)、撮像画像のデータが画像処理装置102に送信される(S704)。画像処理装置102は撮像画像の表示処理を行い、入出力表示装置401の画面における画像表示領域607に撮像画像が表示される。図6に表示される画像例では、図1に示した搬送装置105と搬送中のワーク108、搬送装置105を固定しているボルト部分608(図3に示す領域302に対応する)が写っている。S701からS704の処理はループ処理として、ユーザがスライドバー(604から606のいずれか)を操作するたびに繰り返し実行される。
次に処理(C)について説明する。処理(C)の目的は、撮像装置103に係る撮影位置の再現性を所定の画像処理を用いて検出することである。図6の画像表示領域607内に点線で示す枠609は、ユーザが基準画像領域を登録するための枠である。ユーザは操作入力装置402を用いて、枠609の形状、位置、大きさ等を変更可能である。図6では、搬送装置105を固定しているボルト部分608の画像領域が枠609によって包囲されており、4箇所の枠609内の領域が基準画像領域としてそれぞれ指定されている。図7のS705に基準画像領域の決定処理を示す。枠609は追加または削除が可能である。例えばユーザがマウスの右クリック操作を行うことでコンテキストメニュー(図示せず)が表示され、ユーザが「枠の追加・削除」を選択することによって、枠の追加や削除の操作を行える。
図6の登録処理画面601において中段には2つのスピンボックス610と611を示す。スピンボックス610は、基準画像領域から基準特徴を抽出する特徴抽出法を設定する際に使用される。特徴抽出法としてはパターンマッチング、エッジ検出、濃淡の検出、二値化重心、外接矩形、周囲長、色等を選択可能である。基準特徴とは、パターンの位置や位相、エッジ、濃淡値、二値化領域の面積や位置、矩形の大きさや位置および傾き、長さ、色濃度値等である。ユーザはスピンボックス610にて所望の選択肢を指定可能である。
スピンボックス611は、誤差の計算法を選択する際に使用される。基準特徴と、後述の計測時に抽出した特徴(基準特徴と同じく、パターンの位置または位相、エッジ、濃淡値、二値化領域の面積や位置、矩形の大きさや位置および傾き、長さ、色濃度値等)に基づく誤差の計算法を選択することができる。誤差の計算法では基準特徴および抽出した特徴のそれぞれについて、パターンの一致度、エッジや領域の重心位置の差、矩形の大きさや位置座標同士の距離および傾きの差、長さの差、濃淡の差等、複数の特徴同士の位置関係等が選択可能である。この場合、2以上の計算方法の組み合わせを設定できるように構成してもよい。
次に処理(D)について説明する。図3を用いて説明したように、計測シーンによって必要な計測精度や認識率が異なる場合がある。この場合、ユーザは撮影位置の再現性の判定条件を指定する際にスピンボックス612を用いて、各画像処理工程における許容誤差を入力することができる。許容誤差とは、画像計測時の再現性の影響による誤差がどの程度許容されるかを表す。許容誤差は、例えば画素数(ピクセル単位)または実距離(センチメートル単位)で表現される。本実施例では、ユーザが対象となる画像計測工程に要求される計測誤差量に基づき、許容誤差をスピンボックス612で直接的に指定する形態を説明する。他の実施形態としては、画像計測工程に要求される計測誤差範囲や、システムに使用される撮像装置のデバイス情報等から画像計測の誤差量を推定し、差分計算により推奨値を算出して提示する形態がある。
スピンボックス613は、ユーザが脱出条件を指定する際に使用される。脱出条件は、撮像装置103に対する撮影位置の補正を打ち切るための条件であり、例えば補正回数または補正の制限時間(秒単位)で指定可能である。計測時に計測誤差が許容誤差を上回った場合、画像処理装置102は撮像装置103に対して補正指令を送信する。その際、スピンボックス613で指定された補正回数または制限時間にて補正指令を送信する処理が実行される。チェックボックス615は補正処理を実行するかどうかを選択する際に使用される。チェックボックス615にチェックマークが付されている場合、計測シーンにおける補正処理が実行される。またチェックボックス615のチェックマークを外すことによって、計測シーンにおいて補正処理が実行されないように設定することができる。
上記処理(A)~(D)が終了し、ユーザがOKボタン614のクリック操作を行うと、画像処理装置102は指定された特徴抽出法を用いて基準特徴を抽出する(図7:S706)。そして設定された項目のデータを図8に示すデータ形式で生成する処理が行われ、当該データが基準特徴情報として処理データ保存領域406に保存される(図7:S707)。
図8は基準特徴情報のデータ形式を表す図である。図8(A)は撮影パーツごとに生成されるデータ例を示す。例えば撮影パーツID801が「01」である第1行では、カメラID802が「01」、パン方向803の角度値が「10.0」(単位:°)、チルト方向804の角度値が「-5.0」(単位:°)である。ズーム倍率805は「1.0」倍、特徴抽出法806は「パターンマッチング」、誤差計算法807は「パターン位置」である。脱出条件(数値)808は「5」、脱出条件(単位)809は「回」である。許容誤差(数値)810は「5」、許容誤差(単位)811は「ピクセル」である。撮影パーツID801が「02」である第2行では、撮影パーツID801が「01」である第1行に比べて、再現性の判定条件が緩和されていることを示している。符号801~811で示す各項目については、図6において説明済みであるので、それらの説明を省略する。
図8(A)の各行に示す項目のデータは基準特徴情報ID812と関連付けられている。基準特徴情報ID812は、基準特徴情報を一意に識別するためのID(識別情報)である。図8(B)は基準特徴情報ごとに生成されるデータ例を示す。例えば第1行の基準特徴情報ID812は「A」である。このID「A」は図8(A)の第1行に示される撮影パーツID「01」に関連付けられている。第1行でのX座標813は基準特徴部のX座標「860」を表し、Y座標814は基準特徴部のX座標「520」を表す。第1行での幅815は基準特徴部の幅「80」を表し、高さ816は基準特徴部の高さ「60」を表す。特徴量817の項目には、例えば特徴抽出方法としてパターンマッチング法が選択されている場合にパターンの画像データが記録される。あるいは、特徴抽出方法として重心位置の抽出が選択されている場合に重心の位置座標が特徴量817の項目に記録される。ファイル名818は基準特徴部の画像ファイルの名称である。例えば、ユーザが画像処理プログラム407を作成した後、システムのテストをした際に計測結果が満足なレベルに達していない場合を想定する。ユーザは図6の登録処理画面601を再度表示させて、スピンボックス610を用いた基準特徴抽出方法の変更操作やスピンボックス611を用いた誤差計算方法の変更操作を行うことができる。このとき、基準特徴部の画像ファイルを記録しておくことで、基準特徴部の再撮影を行う必要がなくなるので作業の効率化を実現できる。
図9は計測処理の設定画面例を示す図である。ユーザが図5に示す処理パーツ(ワーク位置計算505や存在検出509等)に対してダブルクリック操作を行った場合、入出力表示装置401に計測処理の設定画面901が表示される。画像表示領域902内に示す画像は、撮像装置103による撮像画像を示す。枠903はユーザが計測対象を登録するときに用いる枠であり、枠904はユーザが計測における探索範囲を登録するための枠である。枠904は枠903を含む、より広い範囲に設定されている。ユーザは、マウス等のポインティングデバイスを使って枠903または904を操作することで、枠の形状、位置、大きさを変更可能である。
図9に示す計測処理法の表示領域905には、パターンマッチング法を用いてワークの位置計算が行われることが示されている。本実施例ではパターンマッチング法を例示して説明するが、他の画像処理に基づく計測処理方法が可能である。スピンボックス906,907,908はそれぞれ、パターンマッチング法におけるパターンの回転範囲、拡大率、およびスコア閾値をユーザが設定する際に使用される。
ユーザがOKボタン909のクリック操作を行うと、画像処理装置102は枠903に示す計測対象、枠904に示す探索範囲、パターンマッチング法における回転範囲、拡大率、スコア閾値の各データを処理データ保存領域406に保存する。なお、ユーザが図6のスピンボックス610を用いて設定した特徴抽出法がパターンマッチング法以外の方法である場合には、選択された特徴抽出法に応じた設定項目が表示される。つまり画像処理装置102は符号906~908に示す項目に代えて、ユーザが選択した特徴抽出法に適したパラメータ設定UI(ユーザ・インターフェース)画面を表示する処理を実行する。
図3で説明したように、基準画像領域としては時間経過に伴う変動が小さく、かつ特徴量が大きい領域が好ましい。ワークが写っている領域のように、時間経過に伴って位置や傾きが変化する領域は適切でないと判断される。したがって、画像処理装置102は、図6の枠609に示される基準画像領域の設定時および図9の枠903による計測対象の登録時において基準画像領域と計測対象の画像領域が重なっている場合にユーザへの警告処理を行う。
図10は、制御装置101からのトリガー信号を受け付けて画像処理装置102が画像計測処理を実行するときのシーケンス図である。図10では制御装置101の実行する処理が追加されており、制御装置101と画像処理装置102と撮像装置103との間で行われる処理の一例を示す。時間軸の方向を図10の上から下への方向と定義する。
まず制御装置101は画像処理装置102に制御指令を送信する(S1001)。画像処理装置102は処理データ保存領域406から基準特徴情報(図8:802~818)を読み出す(S1002)。次に画像処理装置102は、撮影位置に関するパンニング方向、チルティング方向、ズーム倍率(図8:803~805)での撮影指令を撮像装置103に送信する(S1003)。撮像装置103は駆動部を制御して、パンニング角度およびチルティング角度、ズーム倍率を変更する(S1004)。撮影動作が行われ(S1005)、その後に撮像装置103は撮像画像のデータを画像処理装置102に送信する(S1006)。
画像処理装置102は、受信した画像データから、図6のスピンボックス610,611でそれぞれ指定された特徴抽出法および誤差計算法に従って特徴部を抽出する(S1007)。そして画像処理装置102は、抽出された特徴部の座標、大きさ、および傾きのうち、少なくとも1つの誤差を算出する。誤差の算出は基準特徴情報のX座標813,Y座標814,幅815,高さ816との比較によって行われる(S1008)。
S1008において、算出された誤差が指定された許容誤差より大きい場合、画像処理装置102は抽出した特徴部と基準特徴部とのずれに基づき、パンニング角度、チルティング角度、ズーム倍率の補正値を算出する(S1009)。補正処理については図11を用いて後述する。次に画像処理装置102は撮像装置103に対し、パンニング角度、チルティング角度、ズーム倍率の補正指令を送信する(S1010)。撮像装置103は駆動部を制御して、パンニング角度やチルティング角度の変更、ズーム倍率の変更を行う(S1011)。撮影動作が行われて(S1012)、撮像装置103は撮像画像データを画像処理装置102に送信する(S1013)。画像処理装置102はS1008と同様に比較処理を行い、算出された誤差が指定された許容誤差以内(閾値以下)であるか否かを判定する(S1014)。その結果、誤差が閾値以下である場合、所定の計測処理が行われ(S1015)、画像処理装置102は計測結果のデータを制御装置101に送信する(S1016)。
また、S1008での比較処理の結果、誤差が指定された許容誤差以内(閾値以下)であると判定された場合には、ユーザが設定画面901で指定したパラメータを用いて、所定の計測処理が行われる(S1015)。画像処理装置102は計測結果のデータを制御装置101に送信する(S1016)。
図10のS1009~S1014に示す処理は、図6のスピンボックス613でユーザが指定した脱出条件が満たされるまで実行される。所定回数または所定時間の補正処理が行われた後に、算出された誤差が許容誤差より大きい場合に画像処理装置102は、目的の計測精度を確保できないとみなし、制御装置101に対して再現性が確保できないことを示す信号を送信する。また画像処理装置102は入出力表示装置401に画像信号を出力し、撮影位置の再現性が確保できないことを示す表示画面を表示してユーザに報知する処理を実行する。
S1009で算出された補正情報を用いて、図8で説明した基準特徴情報であるパン方向803,チルト方向804,ズーム倍率805の各情報に対して上書きを行い、処理データ保存領域406に保存してもよい。各情報を次回以降の計測に使用することができる。あるいは、画像処理装置102はS1009で算出された補正情報の履歴データを処理データ保存領域406に保存する。画像処理装置102は保存された補正値の履歴データを用いて、複数回の補正情報に基づいて次回以降のS1009にて補正値を計算し、撮影位置の設定値を更新する制御を行う。
図11を参照して、図10のS1008からS1010の処理について具体的に説明する。図11(A)の画像例1101は、図6で説明した基準特徴登録時において画像処理装置102が登録した画像の基準特徴部を模式的に示す。複数の基準特徴部1102を矩形状の枠で示しており、これらは図6の枠609内の画像部分に相当する。点線1103は、複数の基準特徴部1102同士の位置関係を表す。4本の点線1103で示される四角形の各頂点に基準特徴部1102が位置している。
図11(B)の画像例1104は、図10のS1006において画像処理装置102が計測時に受信した画像の特徴を模式的に示す。複数の特徴部1105を図10のS1007で抽出された矩形状の枠で示している。点線1114は複数の特徴部1105同士の位置関係を表す。4本の点線1114で示される四角形の各頂点に特徴部1105が位置している。図10のS1008では、基準特徴部1102と特徴部1105との間で画像における位置を比較し、誤差が発生しているかどうかを判定する処理が行われる。誤差が発生していて許容誤差を超える場合にはS1009で補正値が算出される。例えば、基準特徴部1102と特徴部1105との間で画像におけるX軸とY軸における誤差をそれぞれΔx,Δyと表記する。P方向の補正値をΔP、T方向の補正値をΔTと表記する。画像処理装置102は各補正値を、下記式(1)により算出する。
式(1)に示すFp()はΔxに基づくP方向についての補正関数であり、Ft()はΔyに基づくT方向についての補正関数である。補正関数として比例関数を使用し、比例制御を行ってもよい。あるいは、ΔPとΔx、ΔTとΔyとをそれぞれ対応付ける参照テーブルを用いてFp()およびFt()に関する算出処理を行ってもよい。
画像処理装置102は、図8に示すパン方向803に記録されたパンニング角度P、およびチルト方向804に記録されたチルティング角度Tを補正する。補正後のパンニング角度とチルティング角度はそれぞれP+ΔP,T+ΔTである。図10のS1010で画像処理装置102は撮像装置103に対し、P+ΔP,T+ΔTに基づく補正指令を送信する。
図11(C)は、ズーム倍率の再現性が低下した場合の画像例1106を示す。複数の特徴部1107は、図10のS1006において画像処理装置102が受信した画像の特徴部を矩形状の枠で示している。点線1108は複数の特徴部1107同士の位置関係を表す。4本の点線1108で示される四角形の各頂点に特徴部1107が位置している。図11(A)に示す基準特徴部1102と、S1006にて画像処理装置102が受信した画像の特徴部1107との間で、特徴部の大きさおよび特徴部同士の距離に誤差が発生する場合がある。この場合、画像処理装置102はズーム倍率の補正を行う。ここで基準特徴部1102の大きさをS1と表記し、特徴部1107の大きさS2と表記する。画像処理装置102はS2とS1から、比S2/S1を算出してズーム倍率の補正を行う。
あるいは画像処理装置102は、図11(A)に示す隣り合う基準特徴部1102同士の距離と、図11(C)に示す隣り合う特徴部1107同士の距離とを比較してズーム倍率の補正を行う。ここで隣り合う基準特徴部1102同士の距離をd
1と表記すると、距離d
1は図11(A)に点線1103で示す基準特徴部1102の位置関係から算出することができる。また隣り合う特徴部1107同士の距離をd
2と表記すると、距離d
2は図11(C)に点線1108で示す特徴部1107の位置関係から算出することができる。画像処理装置102は距離の比d
2/d
1を算出し、比d
2/d
1を用いてズーム倍率の補正を行う。
ズーム倍率の補正値をΔZと表記すると、画像処理装置102は、下記式(2)に従って補正値ΔZを算出する。
式(2)に示すFz
S()は、比S
2/S
1に基づくズーム倍率の補正関数である。Fz
d()は比d
2/d
1に基づくズーム倍率の補正関数である。または、ΔZと比S
2/S
1とを対応付ける参照テーブル、もしくはΔZと比d
2/d
1とを対応付ける参照テーブルを用いてズーム倍率の補正値を算出してもよい。
図8に示すズーム倍率805をZと表記すると、画像処理装置102はズーム倍率Zを補正してZ+ΔZを算出する。画像処理装置102は図10のS1010にて撮像装置103に対し、Z+ΔZに基づく補正指令を送信する。
図11(D)は、撮像装置103における撮影系202の光軸方向に対して、雲台201のP方向の回転軸が近い場合を示す模式図である。図11(E)は撮像装置103のロールにより発生し得る、画像1109における特徴部の傾きを説明する模式図である。複数の特徴部1110を矩形状の枠で示し、点線1111によって複数の特徴部同士の位置関係を示している。4本の点線1111で示される四角形の各頂点に特徴部1110が位置している。
例えば、図10のS1006にて画像処理装置102が受信した画像データの特徴部の傾きに誤差が発生することが起こり得る。図11(E)では、点線1111で示される特徴部1110同士の位置関係が、図11(A)に点線1103で示される基準特徴部1102同士の位置関係に対して傾いている例である。この場合、画像処理装置102は、複数の基準特徴部1102の位置関係(点線1103で示す四角形を参照)と、複数の特徴部1110の位置関係(点線1111で示す四角形を参照)とを比較し、両者の間の傾き角度を算出する。この傾き角度をΔθ1と表記すると、画像処理装置102はΔθ1を用いてパンニング角度の補正を行う。
あるいは、画像処理装置102は、図11(B)に示される複数の特徴部1105の位置関係(点線1114で示す四角形を参照)と、図11(E)に示される複数の特徴部1110の位置関係(点線1111で示す四角形を参照)とを比較する。画像処理装置102は複数の特徴部1105と複数の特徴部1110との間で傾き角度を算出する。この傾き角度をΔθ
2と表記すると、画像処理装置102はΔθ
2を用いてパンニング角度の補正を行う。例えば、パンニング角度の補正値ΔPは下記式(3)により算出される。
式(3)に示すF
p1
*()はΔθ
1に基づくパンニング角度の補正関数であり、F
p2
*()はΔθ
2に基づくパンニング角度の補正関数である。または、ΔPとΔθ
1とを対応付ける参照テーブル、もしくはΔPとΔθ
2とを対応付ける参照テーブルを用いて補正値ΔPを算出してもよい。
上記の各補正関数についてはシステムの設計時に、システムの設計情報を用いて決定される。またはシステム設定時に撮像装置103の駆動系を操作する工程において、実際のパンニング方向、チルティング方向、およびズーム倍率の変化に伴う特徴量の変化量を計測することにより、補正関数を決定する処理が実行される。
本実施例において撮像装置103のパンニングやチルティングの駆動時の再現性が低下した場合、ズーム倍率の再現性が低下した場合、ロールの再現性が低下した場合についてそれぞれ個別に説明した。これらのうち2つ以上が同時に発生した場合には、2つ以上の補正処理が同時に実行されるようにシステムが構成される。
本実施例では、計測シーンの撮影位置の再現性が各画像処理工程における所望の計測精度や認識率に対して充分でない場合でも必要十分な補正処理を実行しつつ、画像処理の認識率や計測精度を確保することができる。例えば、撮像装置でワークを撮像した画像に基づき、ワークの種類ごとに異なる搬送車にワークをロボットにより積載する工程では、比較的小さい許容誤差を入力することで画像処理の計測精度を高め、ロボットを正確に制御することができる。一方で、撮像装置が搬送車を撮像して搬送車が停止枠内に存在するかどうかを判定する工程では、比較的大きい許容誤差を入力することで、画像計測を短時間に終了させることができる。本実施例によれば、指定された判定条件にしたがって撮影位置の再現性を確保しつつ、より短時間に画像処理を行うことができる。
[第2実施例]
次に、本発明の第2実施例を説明する。第1実施例ではユーザ操作により基準画像領域を指定する必要があるのに対し、本実施例では基準画像領域を自動的または半自動的に決定可能な画像処理装置について説明する。画像特徴について詳しくないユーザであっても好適な基準画像領域を設定することができ、設定の際の属人性を低減可能である。なお、本実施例に係るシステム構成は第1実施例と同様であるため、既に使用した符号を用いることで、それらの詳細な説明を省略する。
図12は、本実施例の画像処理装置102における、基準特徴の登録処理画面例を示す。図13は基準特徴の登録処理のシーケンス図である。以下では、第1実施例との相違点を主に説明する。図12に示す登録画面1201では、計測試行のボタン1202が追加されている。ユーザはボタン1202を操作し、複数回に亘って行われる計測の試行を指示することができる。
ユーザは、基準特徴の登録画面1201は見ながらバー604~606を操作する。画像処理装置102は撮像装置103の雲台201の駆動制御を行って撮影方向を制御する。撮像装置103によって撮像された撮像画像は画像表示領域607に表示される。ここで、ユーザがボタン1202のクリック操作を行うと、画像処理装置102は撮像装置103に撮影指令を送信する(図13:S1301)。撮像装置103は所定回数の撮影を行って(S1302)、全ての画像のデータを画像処理装置102に送信する(S1303)。
画像処理装置102は、撮像装置103から受信した画像データから、変動が小さい領域を算出し(S1304)、変動の大きい領域1203を黒色で表示する。次に画像処理装置102は、変動が小さい領域のうちで特徴量が大きな領域を算出する。特徴量が大きな領域とは、例えばコントラストが明瞭な領域である。画像処理装置102は画像表示領域607において、特徴量の小さな領域1204を灰色で表示する(S1305)。そして画像処理装置102は、特徴量が大きな領域1205を基準画像領域に決定する(S1306)。
本実施例では、例えば複数回に亘って行われる計測によって取得される画像領域のうち、変動が最も小さい画像領域が自動的に基準画像領域として設定される。あるいは、変動が小さい領域のうちで特徴量が大きな領域を画像処理装置102が優先して自動的に基準画像領域として設定する。このような自動的な処理に代えて、変動が小さく特徴量が大きな1個または複数個の領域を基準画像領域の候補としてユーザに提示し、ユーザが選択操作を行う半自動的な処理でもよい。この場合、ユーザに基準画像領域の選択を促す処理が行われる。変動が小さく特徴量が大きな領域1205の候補は画像表示領域607において、例えば白色表示でユーザに提示され、ユーザは所望の領域を基準画像領域として指定することができる。
本実施例では、画像特徴について詳しくないユーザでも好適な基準画像領域の設定を行うことができる。また、設定の際に属人性を低減し、個人の習熟度に影響されにくい処理を行うことができる。
前記実施例では、制御装置101と画像処理装置102と撮像装置103が各別の構成である実施形態を説明したが、本発明はそのような例に限られない。例えば、画像処理装置102に相当する画像処理部と、撮像装置103に相当する、撮影方向および撮影画角の変更が可能な撮像部とを1つの装置内に備える撮像装置がある。あるいは、制御装置101と画像処理装置102と撮像装置103にそれぞれ対応する構成部を1つの装置内に備える撮像装置がある。このような撮像装置も本発明の技術的範囲に含まれる。
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。