(57)【特許請求の範囲】
【請求項１】
制御装置が、入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像認識処理工程と、
前記制御装置が、前記入力画像データに対する前記画像認識処理の内容に応じて前記入力画像データから抽出する切り出し画像の切り出し領域を決定する領域決定工程と、
前記制御装置が、前記入力画像データの前記領域決定工程によって決定された切り出し領域から切り出し画像を抽出し、記憶装置に記憶させるデータ記憶工程と、を備え、
前記画像認識処理が、前記入力画像データより画像の特定の部位を認識するパターンマッチング処理であり、前記領域決定工程においては、前記パターンマッチング処理で用いられる検索パターンの回転範囲に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として決定することを特徴とする画像処理方法。
【請求項２】
制御装置が、入力画像データに対して、画像の特定の部位を認識する、複数の異なる画像認識処理方式のいずれか少なくとも１つによって画像認識処理を行う画像認識処理工程と、
前記制御装置が、前記画像認識処理工程において前記入力画像データに対して実行する画像認識処理の内容に応じて、前記入力画像データから当該の画像認識処理について抽出する切り出し画像の切り出し領域を少なくとも１つ決定する領域決定工程と、
前記制御装置が、前記入力画像データの前記領域決定工程によって決定された少なくとも１つの切り出し領域から切り出し画像を抽出し、記憶装置に記憶させるデータ記憶工程と、を備え、
前記画像認識処理が、前記入力画像データより画像の特定の部位を認識するパターンマッチング処理であり、前記領域決定工程においては、前記パターンマッチング処理で用いられる検索パターンの回転範囲に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として少なくとも１つ決定することを特徴とする画像処理方法。
【請求項３】
制御装置が、入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像認識処理工程と、
前記制御装置が、前記入力画像データに対する前記画像認識処理の内容に応じて前記入力画像データから抽出する切り出し画像の切り出し領域を決定する領域決定工程と、
前記制御装置が、前記入力画像データの前記領域決定工程によって決定された切り出し領域から切り出し画像を抽出し、記憶装置に記憶させるデータ記憶工程と、を備え、
前記画像認識処理が、前記入力画像データより画像の特定の部位を認識する輪郭検出処理であり、前記領域決定工程においては、前記輪郭検出処理で用いられる輪郭検出フィルタの前処理に必要な領域、ないし前記輪郭検出フィルタの回転範囲に相当する領域に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として決定することを特徴とする画像処理方法。
【請求項４】
制御装置が、入力画像データに対して、画像の特定の部位を認識する、複数の異なる画像認識処理方式のいずれか少なくとも１つによって画像認識処理を行う画像認識処理工程と、
前記制御装置が、前記画像認識処理工程において前記入力画像データに対して実行する画像認識処理の内容に応じて、前記入力画像データから当該の画像認識処理について抽出する切り出し画像の切り出し領域を少なくとも１つ決定する領域決定工程と、
前記制御装置が、前記入力画像データの前記領域決定工程によって決定された少なくとも１つの切り出し領域から切り出し画像を抽出し、記憶装置に記憶させるデータ記憶工程と、を備え、
前記画像認識処理が、前記入力画像データより画像の特定の部位を認識する輪郭検出処理であり、前記領域決定工程においては、前記輪郭検出処理で用いられる輪郭検出フィルタの前処理に必要な領域、ないし前記輪郭検出フィルタの回転範囲に相当する領域に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として少なくとも１つ決定することを特徴とする画像処理方法。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理方法において、前記データ記憶工程において、前記切り出し画像を無圧縮画像データのまま、または可逆圧縮方式によって圧縮し、前記記憶装置に記憶させることを特徴とする画像処理方法。
【請求項６】
請求項１から５のいずれか１項に記載の画像処理方法において、前記データ記憶工程において、前記切り出し画像とともに、前記入力画像データの全体を非可逆圧縮方式によって圧縮し、記憶装置に記憶させることを特徴とする画像処理方法。
【請求項７】
請求項５に記載の画像処理方法において、前記データ記憶工程では、抽出した前記切り出し画像に対して可逆圧縮を行って無圧縮形式の前記切り出し画像と容量を比較し、前記切り出し画像を無圧縮形式または可逆圧縮形式のいずれかのうち容量が小さくなる形式で、記憶装置に記憶させることを特徴とする画像処理方法。
【請求項８】
請求項２または４に記載の画像処理方法において、前記画像認識処理工程では、前記制御装置が、入力画像データに対して、画像の特定の部位を認識する、互いに異なる画像認識処理方式による第１および第２の画像認識処理を行い、
前記領域決定工程では、前記制御装置が、前記第１および第２の画像認識処理の内容に応じて、前記入力画像データから、前記第１および第２の画像認識処理のそれぞれについて抽出する切り出し画像の第１および第２の切り出し領域を決定し、
前記データ記憶工程では、前記制御装置が、前記領域決定工程で決定された第１および第２の切り出し領域からそれぞれ切り出し画像を抽出し、記憶装置に記憶させることを特徴とする画像処理方法。
【請求項９】
請求項２または４に記載の画像処理方法において、領域決定工程では、前記制御装置が、前記入力画像データに対する前記画像認識処理の内容に応じて前記入力画像データから抽出する切り出し画像の切り出し領域の位置およびサイズを決定することを特徴とする画像処理方法。
【請求項１０】
請求項１ないし９のいずれか１項に記載の画像処理方法の各工程をコンピュータに読み込ませることにより実行させることを特徴とする画像処理プログラム。
【請求項１１】
請求項１０に記載の画像処理プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１２】
入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像処理装置において、
前記入力画像データに対して実行される前記画像処理で用いられる検索パターンまたは輪郭検出フィルタの回転範囲に応じて位置およびサイズを決定した前記入力画像データの切り出し領域から切り出し画像を抽出し、記憶装置に記憶させる制御装置を備えたことを特徴とする画像処理装置。
【請求項１３】
入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像処理装置において、
入力画像データに対して、画像の特定の部位を認識する、複数の異なる画像認識処理方式のいずれか少なくとも１つによって画像認識処理を行い、
前記入力画像データに対して実行される前記画像認識処理で用いられる検索パターンまたは輪郭検出フィルタの回転範囲に応じて、前記入力画像データから当該の画像認識処理について抽出する切り出し画像の切り出し領域を少なくとも１つ決定し、
決定した切り出し領域から切り出し画像を抽出し、記憶装置に記憶させる制御装置を備えたことを特徴とする画像処理装置。
【請求項１４】
ロボットアームないし前記ロボットアームにより操作される対象物の画像を撮像する撮像装置と、請求項１２または１３に記載の画像処理装置と、を備え、前記撮像装置の撮像した画像を前記入力画像データとして入力し、前記切り出し領域から抽出した切り出し画像を記憶装置に保存させることを特徴とするロボット装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像に対して画像処理を行い、その画像処理に係る画像データを保存する画像処理方法、および画像処理装置に関するものである。
【背景技術】
【０００２】
撮像装置（デジタルカメラなど）により撮像した画像に対する画像処理を介して、撮像した物体の位置や位相の計測、特定部位や部材全体の有無検知、表面状態の検査、良品検査などを行う画像処理装置が知られている。
【０００３】
この種の画像処理装置には、画像データを記録（蓄積ないしロギング）するための記憶装置を備えたものがある。このような記憶装置には、固定式、あるいは着脱式のＨＤＤ、ＳＳＤのような外部記憶装置が用いられる。画像データを記録する記憶装置を備えた画像処理装置では、例えば処理対象の画像データや、画像処理の過程で生成された画像データなどを画像処理毎に記録することができる。
【０００４】
この種の画像処理装置では、特定の画像の画像処理において、期待した画像処理の結果が得られず、原因の分析や画像処理に用いる処理パラメータの調整が必要になることがある。このような場合、記憶装置に画像データを記録（ログ）しておくことにより、後から、画像処理の内容を検証するのが容易になる。すなわち、画像処理に関わる画像データをロギングしておくことにより、トラブル時の原因分析や予防保全などにも役立てることができる他、処理パラメータを調整する際の妥当性の評価および検討などにも役立てることができる。
【０００５】
しかしながら、近年のデジタルカメラなどにより撮像される画像データは１枚当たりの情報量が相当大きく、これに対応して画像データの蓄積にも大きな記憶容量が必要になりつつある。例えば、長期間に渡って、あるいは多数の画像処理に係る画像データを蓄積しなければならない場合は、莫大な容量の記憶装置が必要になり、そのために記憶装置に要するコストが増大する。また、記憶装置との間で転送する画像データが大きければ大きいほどデータ通信に係る負荷が大きくなり、データ通信速度がシステムの処理速度に影響を与えかねない、という問題がある。
【０００６】
上述の問題に関して、従来より、記憶装置に蓄積する画像データの容量を低減するために、画像データの一部の領域のみを切り出し（抽出し）て記憶装置に記憶する手法が提案されている（例えば下記の特許文献１）。特許文献１では、例えば画像処理による対象物の実装位置を予め固定しておくことで、検査に領域のみを切り出して記憶装置に記憶するようにしている。例えば、複数の対象物を同時に検査するような画像処理では、複数の対象物全体を含む範囲を１度撮影することがある。特に、特許文献１の構成は、そのような場合に画像処理に必要な検査領域のみを予め限定し、その領域のみ記憶させるようにして、記憶容量を削減しようとしたものである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−３３３４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の特許文献１の構成では、対象物が実装される位置を予め固定しておき、その位置に応じて予め定めた領域の画像データを記憶装置に記憶させるようになっている。そのため、対象物の実装されている位置が予め精度よく設定出来ないようなアプリケーションにおいては、必然的に画像処理を行う画像領域を（従って記憶装置に記憶する画像領域も）を広く設定しておかなければならなくなる。このような場合、画像データのロギングに必要な記憶容量も大きくなってしまう問題がある。例えば、撮影画像全体に対して対象物は十分小さいが、その対象物が検査中、動きを生じ、その動きを封じることができない場合がある。このようなケースでは、必然的に画像処理および画像データロギングを行なう画像領域を広く設定せざるを得ず、画像データの記憶に必要な領域が不必要に大きくなってしまう問題がある。
【０００９】
また、記憶容量を節約するためには、画像データを圧縮して記憶装置に蓄積する構成も考えられる。例えば、画像データの圧縮方式として離散コサイン変換（ＪＰＥＧなど）を用いた非可逆圧縮方式や、ウェーブレット変換等を用いた非可逆圧縮方式（ＪＰＥＧ２０００など）が種々知られている。この種の非可逆圧縮方式では、画質パラメータの設定によっては大きな圧縮率が得られるため、ロギングのための記憶装置の容量をかなり節約することができる。しかしながら、画像データのサイズが大きかったり処理すべき画像データの数によっては、画像の圧縮処理のためにシステムのスループットが低下する可能性がある。
【００１０】
また、上述のような非可逆圧縮方式では、画像データの記憶に必要な記憶容量を効果的に小さくする事ができるが、いったん圧縮した後は、圧縮後の画像データから元の非圧縮画像データを再現することができない。また、圧縮後の画像を表示、印刷出力する場合も、画像データの各画素の輝度情報や色情報を圧縮前の画像データと同等に再現する事はできない。従って、非可逆圧縮方法で圧縮された画像データに対して画像処理を行っても、必ずしも圧縮前の画像データに対して画像処理を実行した場合と同じ処理結果を再現することはできない。
【００１１】
このため、目的の画像処理に係るパラメータを変更して検討したりするために圧縮後の画像を用いるのは適切ではない。例えばパターンマッチングのマッチング位置や、輪郭の検出位置、領域の抽出面積などの画像処理を圧縮前の画像データと非可逆圧縮後の画像データに対して同様に行っても、処理結果が変化してしまう可能性が高い。また、特定の非可逆圧縮方式では、圧縮処理のパラメータの設定によって画質低下を小さくできる場合があるが、画質を優先させると、思うほどのデータ量削減の効果を得られない、というジレンマがある。一方で、画質を低下させずに済む可逆圧縮方式もいくつか知られているが、一般にこの種の可逆圧縮方式では非可逆圧縮方式ほどの圧縮率を得られない問題がある。
【００１２】
本発明の課題は、上記の事情に鑑み、画像処理に係る画像データを切り出し、蓄積する場合、画像処理の内容に基づき動的に画像データの切り出し位置を決定し、画像処理に係る画像データを蓄積する場合の記憶容量を低減できるようにすることにある。また、入力される画像データ毎に対象物の位置が変動するような場合においても、画像処理の結果の再現性を保持したまま、画像データをより小さな領域で記憶できるようにすることにある。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明の画像処理方法においては、制御装置が、入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像認識処理工程と、前記制御装置が、前記入力画像データに対する前記画像認識処理の内容に応じて前記入力画像データから抽出する切り出し画像の切り出し領域を決定する領域決定工程と、前記制御装置が、前記入力画像データの前記領域決定工程によって決定された切り出し領域から切り出し画像を抽出し、記憶装置に記憶させるデータ記憶工程と、を備え、前記画像認識処理が、前記入力画像データより画像の特定の部位を認識するパターンマッチング処理であり、前記領域決定工程においては、前記パターンマッチング処理で用いられる検索パターンの回転範囲に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として決定する構成（請求項１）、あるいは、前記画像認識処理が、前記入力画像データより画像の特定の部位を認識する輪郭検出処理であり、前記領域決定工程においては、前記輪郭検出処理で用いられる輪郭検出フィルタの前処理に必要な領域、ないし前記輪郭検出フィルタの回転範囲に相当する領域に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として決定する構成（請求項３）を特徴とする。
また、本発明の他の画像処理方法においては、制御装置が、入力画像データに対して、画像の特定の部位を認識する、複数の異なる画像認識処理方式のいずれか少なくとも１つによって画像認識処理を行う画像認識処理工程と、前記制御装置が、前記画像認識処理工程において前記入力画像データに対して実行する画像認識処理の内容に応じて、前記入力画像データから当該の画像認識処理について抽出する切り出し画像の切り出し領域を少なくとも１つ決定する領域決定工程と、前記制御装置が、前記入力画像データの前記領域決定工程によって決定された少なくとも１つの切り出し領域から切り出し画像を抽出し、記憶装置に記憶させるデータ記憶工程と、を備え、前記画像認識処理が、前記入力画像データより画像の特定の部位を認識するパターンマッチング処理であり、前記領域決定工程においては、前記パターンマッチング処理で用いられる検索パターンの回転範囲に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として少なくとも１つ決定する構成（請求項２）、あるいは、前記画像認識処理が、前記入力画像データより画像の特定の部位を認識する輪郭検出処理であり、前記領域決定工程においては、前記輪郭検出処理で用いられる輪郭検出フィルタの前処理に必要な領域、ないし前記輪郭検出フィルタの回転範囲に相当する領域に基づき位置およびサイズを求めた領域を前記切り出し画像の切り出し領域として少なくとも１つ決定する構成（請求項４）を特徴とする。
【００１４】
また、入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像処理装置においては、前記入力画像データに対して実行される前記画像処理で用いられる検索パターンまたは輪郭検出フィルタの回転範囲に応じて位置およびサイズを決定した前記入力画像データの切り出し領域から切り出し画像を抽出し、記憶装置に記憶させる制御装置を備えた構成（請求項１２）を特徴とする。
さらに、入力画像データに対して、画像の特定の部位を認識する画像認識処理を行う画像処理装置において、入力画像データに対して、画像の特定の部位を認識する、複数の異なる画像認識処理方式のいずれか少なくとも１つによって画像認識処理を行い、前記入力画像データに対して実行される前記画像認識処理で用いられる検索パターンまたは輪郭検出フィルタの回転範囲に応じて、前記入力画像データから当該の画像認識処理について抽出する切り出し画像の切り出し領域を少なくとも１つ決定し、決定した切り出し領域から切り出し画像を抽出し、記憶装置に記憶させる制御装置を備えた構成（請求項１３）を特徴とする。
【発明の効果】
【００１５】
本発明に記載の画像処理方法によれば、例えば画像認識処理のような画像処理を行い、当該の画像処理に係る画像データを履歴データとして保存する場合、画像全体から切り出した切り出し画像を保存する。このため、履歴データを保存する外部記憶装置のような記憶手段に必要な記憶容量を大幅に低減することができる。また、画像の切り出し領域を、画像処理の実行内容に基づいて決定することにより、切り出し画像に画像処理の実行に必要な（あるいはそれを充分行える）サイズが確保される。これにより、例えば後に画像処理や画像処理に基づく制御に関する検証や再現作業を容易かつ確実に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１における画像処理で、（ａ）は処理対象の画像データ全体を、（ｇ）、（ｈ）は切り出された画像データを、（ｂ）〜（ｆ）は切り出しに係わる画像処理をそれぞれ示した説明図である。
【図２】本発明の実施例１における画像データ切り出し領域決定処理を示したフローチャート図である。
【図３】本発明の実施例１におけるデータ量削減効果を示すもので、（ａ）、（ｃ）は処理対象の画像データ全体を、（ｂ）、（ｄ）は切り出された画像データをそれぞれ示した説明図である。
【図４】本発明の実施例２における画像処理を示し、（ａ）は処理対象の画像データ全体を、（ｇ）、（ｈ）は切り出された画像データを、（ｂ）〜（ｆ）は切り出しに係わる画像処理をそれぞれ示した説明図である。
【図５】本発明の実施例２における画像データ切り出し領域決定処理を示したフローチャート図である。
【図６】本発明の実施例２における画像データ切り出し処理のデータフローを示した説明図である。
【図７】本発明の画像処理方法を実施する画像処理装置の構成を示したブロック図である。
【図８】図７の画像処理装置をロボット装置に適用した場合の全体構成を示した説明図である。
【発明を実施するための形態】
【００１７】
以下、図面に示す実施例に基づき、発明を実施するための好ましい形態につき詳細に説明する。
【実施例１】
【００１８】
図７に本発明の画像処理を実施可能な画像処理装置９０１の構成例を示す。図７の画像処理装置９０１は、画像を表示する陰極管や液晶パネルなどにより構成された表示装置９１１、およびキーボードやマウス、タッチパネル、入力操作コントローラ、ジェスチャ入力装置などにより構成される各種操作入力用の操作入力装置９１２を含む。これら表示装置９１１および操作入力装置９１２は、主にユーザーインターフェースを構成する。
【００１９】
また、画像処理装置９０１は、画像データ入力手段の１つとしてデジタルカメラなどで構成された撮像装置９０２を有する。撮像装置９０２には、ハロゲン照明や発光ダイオード照明などで構成された照明装置９０３が併設される。
【００２０】
また、画像処理装置９０１には、ＨＤＤ、ＳＳＤなどの外部記憶デバイスから構成された外部記憶装置９０４が接続される。外部記憶装置９０４は、ネットワークなどを介して接続されるサーバ上に配置された外部記憶装置（あるいはいわゆるＮＡＳデバイスなど）で構成されていてもよい。外部記憶装置９０４は、実施例１および実施例２において、入力画像データに対して行った画像処理に係る履歴データの蓄積ないし記録（ロギング）のための記憶装置として用いられる。外部記憶装置９０４には、後述の処理手順によって切り出した切り出し画像データ（あるいはさらに実施例２においては圧縮した入力画像データ全体）が入力画像データに対して行った画像処理に係る履歴データとして記録される。
【００２１】
さらに、画像処理装置９０１には、ネットワークやケーブルなどを介して、外部コントローラ９０５が接続される。この外部コントローラ９０５は、例えば図８の例では、ロボット制御装置から構成される。外部コントローラ９０５は、画像処理装置９０１に制御指令を送信したり、画像処理装置９０１の処理結果を受信したりする。
【００２２】
上記各部は、画像処理装置９０１の内部バス上に配置されたインターフェース５２、５２…を介して接続される。各インターフェース５２、５２…は、上記各部の各部と通信するのに適した規格に基づき構成される。各インターフェース５２、５２…は、接続対象に応じて、例えば、ネットワークインターフェース、ＵＳＢインターフェース、シリアル通信インターフェースなどから構成される。
【００２３】
画像処理装置９０１は、画像処理の主体となる制御装置として、汎用マイクロプロセッサとして構成されたＣＰＵ素子や、画像処理プロセッサとして動作するＧＰＵ素子などにより構成された演算手段５１を有する。演算手段５１は画像処理装置９０１の内部バス（データバス、アドレスバス、他の制御線など）を介して、図７の左側に図示した記憶手段５３と接続される。記憶手段５３は、例えばＲＯＭやＲＡＭ、あるいはＥ（Ｅ）ＰＲＯＭなどの不揮発メモリデバイスや、外部記憶装置（不図示のＨＤＤやＳＳＤ、あるいは先の外部記憶装置９０４など）上のファイル領域や仮想記憶領域などによって構成される。
【００２４】
また、記憶手段５３の処理データ保存領域５３２は、記憶手段５３中のＲＡＭ領域や、外部記憶装置のファイル領域や仮想記憶領域などによって構成される。処理データ保存領域５３２には、処理データを一時記憶させる他、画像処理の設定パラメータなどの記憶に用いられる。また、外部記憶装置９０４に画像データをロギングする場合、処理データ保存領域５３２は、例えば、外部記憶装置９０４のデータキャッシュなどとして用いられる。
【００２５】
さらに、記憶手段５３には、本実施例の画像処理を実施するための画像処理プログラム５３１を記憶させておく。
【００２６】
画像処理プログラム５３１は、操作入力装置９１２などによって行われた各種操作に応じて、画像処理の設定などを変更したり、画像処理を実行したりする。また、変更内容について、処理データ保存領域５３２に保存したり削除したりすることができる。
【００２７】
画像処理プログラム５３１は、例えば、次のような機能を実現するソフトウェアから構成される。まず、画像処理５３１１は後述の画像処理を実現する画像処理プログラムの本体部分である。画像処理５３１１には、画像処理ライブラリ５３１２が用いられる。画像処理ライブラリ５３１２は、例えば静的ないし動的にリンクされるライブラリとして記憶手段５３に実装される。画像処理プログラム５３１の振舞いを決定する画像処理設定５３１４は、操作入力装置９１２などによって行われた各種操作に応じて行われる。
【００２８】
さらに、画像処理プログラム５３１には、次のような機能を実現するＩ／Ｏ（入出力）ルーチンが含まれる。すなわち、これらのルーチンは外部デバイス制御５３１３、保存データ生成５３１５、操作入力装置９１２のための指令受付５３１６、ＲＡＭ領域や、演算手段５１のキャッシュ領域などで構成された一時記憶５３１９、表示画面生成５３１０などである。上記の各機能は、アプリケーション（ユーティリティ）プログラムや、あるいは静的ないし動的にリンクされるライブラリとして構成されたサブルーチン、といった形態で記憶手段５３に実装される。
【００２９】
画像処理装置９０１は、画像処理プログラム５３１を実行することにより、例えば撮像装置９０２や照明装置９０３を制御したり、画像処理装置の演算手段を利用して画像処理を実行することができる。また、操作入力装置９１２よりユーザ操作を受け付け、外部コントローラ９０５から指令を受け付けたりすることができる。これらの操作や指令に応じて、演算手段５１は画像処理プログラム５３１の上記各機能やライブラリを呼び出し、各種演算処理を行い、画像処理結果を外部コントローラ９０５に送信することができる。また、画像処理結果を外部記憶装置９０４に蓄積（ロギング）することができる。その際、後述の画像切り出し（抽出）処理が行われる。さらに、プログラムに予め記憶されている画面構成と画像処理の結果を画面として合成し、表示装置９１１に表示することもできる。
【００３０】
図７に示した画像処理装置９０１と、図７右方に示した各ブロックは産業用ロボットの視覚系の画像処理手段として例えば図８に示すようなシステムに組み込むことができる。図８では、表示装置９１１、および操作入力装置９１２については図示を省略してある。
【００３１】
図８のロボットシステムは、対象物９０６（ワーク）を搬送する搬送装置９０７、および対象物９０６の組み立て、加工あるいは搬送などの操作を行なうロボットアーム９０８を備えている。外部コントローラ９０５は、図８のロボットシステムでは、ロボットアーム９０８、あるいはさらに搬送装置９０７の搬送処理の全体を制御するロボット制御装置として構成される。
【００３２】
図８において、外部コントローラ９０５は、ロボットアーム９０８に実行させる作業内容をプログラムするのに用いられる。また、ロボットアーム９０８のオンライン動作においては、外部コントローラ９０５が予めプログラムされた内容に従って、ロボットアーム９０８の位置姿勢を制御し、対象物９０６に対して所期の組み立て、加工、あるいは搬送などの操作を行わせる。外部コントローラ９０５は、画像処理装置９０１に測定指令を送信し、また、画像処理装置の処理結果を受信することができ、画像処理装置９０１の画像処理結果等に応じて作業を行うロボットアーム９０８の動作を制御する。
【００３３】
このようなロボットシステムにおいて、画像処理装置９０１はいわゆる視覚系の閉ループ制御に利用される。すなわち、画像処理装置９０１は、撮像装置９０２で撮像した画像に対して例えば後述するような画像認識処理を行うことにより、例えば、ロボットアーム９０８の特定部位の位置姿勢、あるいは対象物９０６の位置姿勢などが検出される。そして、画像処理を介して検出されたロボットアーム９０８や対象物９０６の位置姿勢に応じて、外部コントローラ９０５がロボットアーム９０８の動作を制御する。
【００３４】
このようにロボットシステムにおいて、画像処理装置９０１を視覚系の制御に利用する場合、ロボットアーム９０８の特定の動作や、その動作を決定づけた画像処理装置９０１の画像処理の手順や制御パラメータを後から検証できるのが好ましい。そのために、画像処理装置９０１が処理した画像データ（あるいはさらにそれに関する書誌データなどの関連データ）を履歴データ９０９として外部記憶装置９０４に保存（ロギング）することが行われる。
【００３５】
本実施例の場合、画像処理装置９０１の画像処理ごとに外部記憶装置９０４にロギングされる履歴データ９０９は、少なくとも後述の切り出し処理によって画像処理装置９０１が画像処理した画像データから切り出し（抽出し）た切り出し画像９０９１を含む。この切り出し画像９０９１は、非圧縮の濃度や輝度値のデジタル画像データである。
【００３６】
また、後述の実施例２においては、外部記憶装置９０４にロギングされる履歴データ９０９は、切り出し画像９０９１に関連づけされた上、画像処理装置９０１が画像処理した画像データ全体を圧縮した圧縮画像９０９２も含む。圧縮画像９０９２の圧縮方式としては、例えば高圧縮率を実現できる非可逆圧縮方式を用いる。
【００３７】
後述するように、切り出し画像９０９１を切り出す位置やサイズは、所期の目的、例えばロボットアーム９０８や対象物９０６の位置姿勢のために用いられた画像処理の内容に応じて決定する。これにより、当該の画像処理（あるいはそれにより制御されるロボット動作）を後から検証するに必要充分な位置やサイズの画像（のみ）をロギングすることができる。
【００３８】
以下、図１〜図６を参照して、上記構成において行われる画像処理、特に画像処理装置９０１の画像処理ごとに外部記憶装置９０４に履歴データ９０９としてロギングする切り出し画像９０９１の切り出し処理につき説明する。
【００３９】
図１は入力された画像データ全体と、切り出し画像データ記憶工程によって切り出された画像データについて説明する図である。また、図２は画像処理の内容に基づいた切り出し領域決定工程を示したフローチャート図である。なお、以下では、理解を容易にするため、画像処理の領域や処理内容および処理結果は限定された具体的な内容で行うものとする。しかしながら、画像処理に係る領域の位置や大きさ、形状や、処理内容、および処理に用いるパラメータ等はユーザが任意に設定できる設定画面を設けたり、別の画像処理アルゴリズムなどを用いて動的に決定したりするなどの形態で提供することが望ましい。
【００４０】
図１において、１０１は撮像装置９０２で撮像され、画像処理装置９０１で画像処理される画像データ全体を、また、１０２および１０３はそれぞれ画像処理を実行する際の処理領域を示している。また、１０４および１０５は画像データ全体１０１上で撮像された対象物である。処理領域１０２、１０３の大きさや範囲は、画像処理対象物の大きさや想定される動き範囲、検査対象箇所などにより個別に設定される。処理領域１０２、１０３は、表示装置９１１、操作入力装置９１２を介して行われる設定操作によって、あるいは後述の画像認識処理方式などによって設定することができる。
【００４１】
対象物１０４、１０５は、例えば図８のロボットシステムの対象物９０６（ワーク）、ないしはその特定の部位に相当する。画像処理装置９０１の画像処理の目的は、画像データ全体１０１における対象物１０４、１０５の位置、姿勢（位相）、大きさなどを検出することである。
【００４２】
そのために、画像処理装置９０１は、画像処理（図７の画像処理５３１１）として、例えば図１（ｃ）〜（ｆ）に示すような画像認識処理を行う。図１（ｃ）、（ｅ）と、図１（ｄ）、（ｆ）は異なる画像認識処理を示している。これらのいずれの画像認識処理方式を採用するかは、例えば表示装置９１１、操作入力装置９１２を介して行われる設定操作によって決定される。
【００４３】
図１（ｃ）は、パターンマッチング（パターン認識）による画像認識処理で用いる検索パターン１０６を示している。また、図１（ｄ）は輪郭検出による画像認識処理で用いる輪郭検出フィルタ１０７を示している。ここでは、図１（ａ）の対象物１０４についてはパターンマッチングによる画像認識処理を、対象物１０５については輪郭検出による画像認識処理を行う例について説明する。
【００４４】
図１（ｃ）において、検索パターン１０６は同一の輝度分布や形状を検索するための検索パターンである。パターンマッチングでは、図１（ａ）の処理領域１０２の範囲内で検索パターン１０６に類似する画像データの位置を検索する画像処理を行う。なお、このようなパターンマッチングを行う際には、検索パターンと画像データを照合するために、例えば輝度分布の正規化処理や平滑化、輪郭検出処理など、何らかの前処理を必要に応じて行う。このために、例えば、検索パターン１０６を前もって作成する際には前処理に必要な領域を検索パターン１０６の水平方向および垂直方向に加算し、検索パターン１０６の水平方向サイズＰｘおよび垂直方向サイズＰｙを計算して記憶しておく。画像処理の初期設定で検索パターン１０６を読み込む際などに、補正値として加算して一時記憶しておく。
【００４５】
パターンマッチングでは、記憶手段５３（図７）の一時記憶５３１９などの領域を用いて検索パターン１０６を処理領域１０２の範囲の特定位置の画像を逐次比較して一致（ないし類似）するかを判定する処理を行う。また、その場合、比較の都度、図１（ｅ）に示すように、例えば検索パターン１０６を微小量ずつ回転させてパターンが一致するか否かを判定する。この回転のために必要な領域の大きさ、水平方向サイズＰｘ’および垂直方向サイズＰｙ’は、当然ながら回転前（図１（ｃ））の検索パターン１０６のＰｘ、Ｐｙよりも大きくなる。例えば、このような回転のために必要な領域もあらかじめ補正値として加算して一時記憶しておく。
【００４６】
図１（ａ）の対象物１０４の場合、上記のようなパターンマッチングを行うことにより、検索パターン１０６をある程度回転させて比較した段階で図１（ｇ）の１１３のように画像のパターンが一致し、画像認識される。
【００４７】
一方、輪郭検出では、図１（ｄ）のような輪郭検出フィルタ１０７が用いられる。輪郭検出フィルタ１０７は、例えば、輝度分布の変化度合いを計算し、検出するためのものである。このような輪郭検出フィルタ１０７では、例えば、輝度勾配の強い点もしくは点群を検出する処理が行われる。なお、図１（ｄ）の例では、ほぼ台形の対象物１０５よりも、輪郭検出のための処理領域１０３の大きさの方が小さいが、このような輪郭検出は、例えば対象物１０５の特定のエッジ（辺）の方向や位置のみを検出すれば足りる場合に実施される。
【００４８】
図１（ｄ）の輪郭検出フィルタ１０７の場合、図中の矢印方向に逐次、フィルタ領域（水平方向サイズＦｘ、垂直方向サイズＦｙ）内で輝度判定を行い、輝度勾配が最も強い点群を輪郭として検出する。また、このような輪郭検出を行う際にも、輝度勾配を検出する事前処理として、例えば輝度分布の正規化処理や平滑化、輪郭強調処理など何らかの前処理が必要に応じて行われる。そして、その際に必要な処理領域は、輪郭検出フィルタ１０７を格納する領域として、記憶手段５３上に（の例えば一時記憶５３１９として）確保しておく。例えば、設定内容に応じて輪郭検出フィルタ１０７を生成する際に、前処理に必要な領域をフィルタの水平方向サイズＦｘおよび垂直方向サイズＦｙに加算する。そして得られた水平方向サイズＦｘ’および垂直方向サイズＦｙ’（図１（ｆ））を計算して輪郭検出フィルタ１０７のための領域として確保する。
【００４９】
図１（ｄ）、（ｆ）の上記のような輪郭検出によって、図１（ａ）の対象物１０５の場合、図１（ｈ）の１１４のように画像の対象物１０５のエッジ（辺）の輪郭が画像認識される。
【００５０】
さらに、図１（ｂ）において、１０８は画像データ全体１０１に対して前述の画像処理を実行した結果の全容を示している。同図において、１０９は検索パターン１０６で検出されたパターンマッチングの実行結果（図示した例では最も一致した画像パターンの検出結果）であり、１１０は輪郭検出フィルタ１０７によって検出された輪郭の検出結果である。
【００５１】
そして、本実施例では、画像処理装置９０１によって画像処理として上記のような画像認識処理を行い、その履歴データ９０９を外部記憶装置９０４にロギングする。その場合、目的の画像認識処理で認識された部分を含む領域のみを切り出し画像（図８の９０９１）として蓄積する。図１（ｂ）の１１１、１１２は、上記のような画像認識処理を行った場合、外部記憶装置９０４にロギングする切り出し画像の切り出し領域を示している。
【００５２】
それぞれの画像認識処理の結果、認識された画像を含むものとして切り出す切り出し領域１１１、１１２の大きさは、それぞれの画像認識処理の実行内容、例えばパターンマッチングのパターン検出位置や輪郭の検出位置に応じて決定する。例えば、切り出し領域１１１の場合、検索パターン１０６のサイズおよび回転範囲などから決定する。例えば、図１（ｃ）に示すように、パターンマッチングで用いる検索パターン１０６は水平方向のサイズをＰｘ、垂直方向のサイズをＰｙの矩形領域である。この矩形領域は上記のように回転させながらマッチングに用いられる。このような画像認識処理の場合、検索パターン１０６の検索回転範囲を切り出し領域１１１と決定する。例えば、検索パターン１０６の検索回転範囲を０°〜３６０°とすると、図１（ｅ）のように切り出し領域１１１の水平方向のサイズＰｘ’および垂直方向のサイズＰｙ’は検索パターン１０６の対角線の長さに対応する大きさとなる。
【００５３】
このように切り出し領域１１１の大きさを決定し、切り出し画像９０９１（図８）として、例えば無圧縮で外部記憶装置９０４に記録しておけば、画像データ全体１０１を保存しておかなくても、後から画像処理内容を確実かつ容易に検証できる。すなわち、検索パターン１０６の検索回転範囲に相当する大きさの切り出し領域１１１を切り出して外部記憶装置９０４に記録しておけば、後の検証において再度パターンマッチングを行う場合にも検索の回転範囲が不足するような問題を生じない。
【００５４】
なお、切り出し領域１１１は、検索パターン１０６が３６０°回転する際の最小サイズである。しかしながら、パターンマッチングにおいて回転範囲が制限されるような場合であれば、その回転範囲内において上記と同様の考えに基づき、Ｐｘ’およびＰｙ’が検索パターンの回転範囲内で最大値を取るような値を採用すればよい。例えば、回転を伴わないパターンマッチングであればＰｘ’＝Ｐｘ、Ｐｙ’＝Ｐｙである設定であっても構わない。また、スケール変化を伴うようなマッチングであれば、拡大率の最大値をＰｘやＰｙに乗じてＰｙ’、Ｐｙを求めればよい。さらに、切り出し領域について余剰領域を確保したければその値を任意に設定できるような機能を提供し、その値をＰｘ’およびＰｙ’に加算したり、計算されたＰｘ’やＰｙ’に一定の係数を乗じたりしてもよい。また、ある一定水準や条件を満たす複数個の検出結果について、それらの検出位置を包括するような領域を切り出し領域として決定してもよいし、検出位置毎にそれぞれ切り出し画像領域を生成してもよい。
【００５５】
また、切り出し領域１１１を切り出し画像９０９１として外部記憶装置９０４に保存する場合、無圧縮で保存する他、可逆圧縮方式で保存してもよい。その場合、可逆圧縮方式としては、例えばＴＩＦＦフォーマットで採用されているような各可逆圧縮方式を利用できる。可逆圧縮方式ではそれ程大きな圧縮率を望めないが、切り出し領域１１１のサイズであれば高速かつ低演算コストで圧縮処理が可能である。また、画像データ全体１０１を圧縮するのに比べれば外部記憶装置９０４の記憶容量を大幅に削減でき、また、圧縮処理の負担は圧倒的に小さい。
【００５６】
一方、画像認識処理として輪郭検出を行う場合も同様で、切り出し領域１１２の大きさも画像認識処理の内容に応じて決定する。図１（ｂ）、（ｆ）の切り出し領域１１２の大きさは輪郭検出フィルタ１０７のサイズから決定される。例えばここで垂直方向に輪郭を検出するようなフィルタを用いる場合、輪郭検出フィルタの水平方向のサイズをＦｘ、垂直方向のサイズをＦｙ、輪郭の検出方向を画像垂直下方向（図１（ｄ）中では矢印方向）とする。この場合、切り出し領域１１２の水平方向サイズＦｘ’および垂直方向サイズＦｙ’は、単純にＦｘ’＝Ｆｘ、Ｆｙ’＝Ｆｙのように求められる。
【００５７】
もちろん、輪郭検出フィルタについてもパターンマッチングと同様に回転範囲が設定される場合には、その変動範囲に基づいて最大を取るＦｘ’およびＦｙ’を求めるとよい。また、輪郭情報が連結されずに点在するような検出フィルタを用いる場合には、検出された点群を包括する領域に、用いられたフィルタの水平および垂直サイズを加算して領域を決定するような方法を採用してもよい。さらに、切り出し領域１１２について余剰領域を表示装置９１１、操作入力装置９１２を介して行われる設定操作によって応じて任意に設定できるようにしておいてもよい。例えば設定操作によって入力された値をＦｘ’およびＦｙ’に加算したり、計算されたＦｘ’やＦｙ’に一定の係数を乗じたりしてもよい。
【００５８】
以上のように、輪郭検出フィルタ１０７を用いた画像認識処理に必要な領域の大きさで、切り出し領域１１２を切り出して外部記憶装置９０４に記録しておけば、後の検証において再度輪郭検出を行う場合にも検索の回転範囲が不足するような問題を生じない。なお、輪郭検出の場合にも、切り出し領域１１２の画像は可逆圧縮方式によって圧縮して外部記憶装置９０４に記録することができる。
【００５９】
以上のように、本実施例では、画像認識処理に係わる画像を履歴データとして外部記憶装置９０４に保存する場合、当該の画像認識処理の内容に応じて切り出し領域を決定する。これにより、画像認識処理に係わる画像を含む切り出し領域を決定でき、後の検証を過不足なく確実に行うことができ、画像データ全体１０１（１０８）を保存する場合より、外部記憶装置９０４で必要な記憶容量を大幅に低減することができる。
【００６０】
なお、上述の切り出し領域１１１、１１２は撮影画像と同じ水平方向および垂直方向に画像座標系の軸を持つ矩形として決定する方法として例示しているが、切り出し領域１１１、１１２の形状は円形や楕円、多角形などであってもよい。また、表示装置９１１、操作入力装置９１２によるユーザーインターフェースで切り出し領域１１１、１１２の形状や大きさを設定する機能を提供するようにしてもよい。また、なんらかの条件に従って切り出し領域１１１、１１２のデータ量が最小となるような形状を選択する機能を提供することも考えられる。
【００６１】
ここで、図２を用いて、画像処理の実行内容に基づいた画像データの切り出し領域の決定工程の処理手順について説明する。この時入力される画像データや画像処理の内容、画像処理の結果に基づいて生成される切り出し画像データの生成結果などは、特に断らない限り図１に示したものと共通であるものとする。図２の制御手順は、画像処理プログラム（図７の５３１）、特に図７の画像処理（５３１１）、画像処理ライブラリ（５３１２）のようなモジュールとして実装される。この画像処理プログラムは、コンピュータ読み取り可能なプログラムとして、記憶手段５３を構成する記憶デバイス、例えばＲＯＭやＥ（Ｅ）ＰＲＯＭのような半導体メモリや、ＨＤＤ、ＳＳＤのような外部記憶デバイスに格納しておくことができる。また、記憶手段５３を着脱式のＨＤＤ、ＳＳＤ、各種フラッシュメモリのような記憶デバイスから構成すれば、これらのデバイスは画像処理装置９０１の画像処理プログラムをインストールしたり、更新するために用いることができる。
【００６２】
図２のステップＳ０では、画像処理の設定情報を読み込む。例えば、記憶手段５３のＲＯＭ領域や外部記憶デバイスの領域に格納されている画像処理（図７の５３１１）の設定を一時記憶（５３１９）の領域などに読み込む。あるいは、この段階で、画像処理の設定情報は表示装置９１１、操作入力装置９１２によるユーザーインターフェースを介して設定したり、一部変更することを許容することもできる。この画像処理（５３１１）の設定データには、画像処理の処理対象領域の数や、処理領域の位置やサイズおよび形状、パターンマッチングや輪郭検出などの画像処理方式の種別、処理に用いる数値パラメータなどが含まれる。
【００６３】
図１で説明した画像処理の場合、本設定データに記載された画像処理の対象領域は２つある。処理領域１０２内では、検索パターン１０６を用いてパターンマッチングを行う。また、処理領域１０３内では、輪郭検出フィルタ１０７を用いて輪郭検出を行う。なお、パターンマッチングの処理パラメータには、検索パターンや検索範囲の他には一致率の許容値や検出個数等が考えられ、輪郭検出の際の処理パラメータにはフィルタサイズや検出方向の他に、オペレータ種類や増幅率等が考えられる。これらは画像データの切り出し範囲には影響を与えないか、もしくは前述のような方法で、既に処理領域のサイズに加味されているものとして、それぞれ任意に設定された定数を用いるものとする。
【００６４】
続いて、ステップＳ１では、画像処理すべき画像データ全体１０１を入力する。ここで画像処理すべき画像データは、撮像装置９０２から読み出す他、既に撮像され、外部記憶装置９０４に格納されているものであってもよい。
【００６５】
ステップＳ２では、画像データ全体１０１の各処理領域（１０２、１０３）に対して画像処理を実行する。図１の例では、処理領域１０２において画像処理を行う際は検索パターン１０６を用いてパターンマッチングを行い、マッチング結果（１０９）が得られる。また処理領域１０３において画像処理を行う際は輪郭検出フィルタ１０７を用いて輪郭検出処理を行い、輪郭検出結果（１１０）が得られる。
【００６６】
ステップＳ３では、画像データ全体１０１の全ての画像領域を処理したか否かを判定する。ここで未処理の画像領域があればステップＳ２に復帰して画像処理を続け、全ての画像領域を処理した場合にはステップＳ４に進む。なお、画像処理のための演算手段（図７の５１）による演算がハードウェアないしソフトウェア的に並列演算可能である場合には、ステップＳ２の処理を複数プロセスないし複数スレッドによって、同時に実行してもよい。
【００６７】
ステップＳ４では、画像処理結果を一時記憶し、また出力処理する。画像処理結果は、表示装置９１１を用いて図１の１０８のような画像形式で画面等に表示してもよいし、ネットワークを介して他のシステムに送信してもよい。このとき出力する出力情報は、マッチング結果（１０９）や輪郭検出結果（１１０）などのような画面情報や、その元となるパターンのマッチング位置の座標情報、回転角度情報、一致率や、輪郭検出の点群の位置情報や勾配情報を含む。また、それらの情報に基づいた重心情報や、有無し情報、判定情報などを併せて出力してもよい。これらの情報の出力形式は、数値表現でも、グラフや線図のような画像表現でも、あるいは必要であれば不図示の音声再生装置を介して出力する音声表現などであってもかまわない。
【００６８】
ステップＳ５では、図１で説明した画像切り出し処理を行う。ここでは、上述のように、処理領域１０２、１０３で行なった当該の画像認識処理の実行内容に応じて切り出し領域が決定される。例えば領域１０２であればパターンマッチングの実行結果１０９すなわちマッチング位置に基づいて、予め決定した切り出し領域１１１を配置し、全体画像上で画像データの切り出し領域を決定する。また、領域１０３であれば輪郭検出結果（１１０）すなわち輪郭検出位置に基づいて、予め決定した切り出し領域１１２を配置し、全体画像上で画像データの切り出し領域を決定する。図１の例では、矩形の切り出しが行なわれる。その場合の切り出し領域１１１の水平方向サイズＰｘ’および垂直方向サイズＰｙ’や、切り出し領域１１２の水平方向サイズＦｘ’および垂直方向サイズＦｙ’は前述の通り決定すればよい。
【００６９】
ステップＳ６では全ての処理領域において、切り出し領域の決定処理が終了したかを判定する。ステップＳ６が肯定された場合にはステップＳ７に進み、未実行の切り出し領域があればステップＳ５へ戻り処理対象領域を変更して切り出し処理を続行させる。ここでも、ハードウェアないしソフトウェア的に可能であれば、ステップＳ５の処理は複数プロセスないし複数スレッドによって、同時に実行してもよい。
【００７０】
ステップＳ７では、画像データ全体１０１からステップＳ５で決定された切り出し領域の切り出し画像データ（図１の１１３、１１４、あるいは図８の９０９１）を生成して外部記憶装置９０４に保存する。ステップＳ７において、前述のように切り出し画像は無圧縮画像データ（例えばＢＭＰ形式）で記憶してよいし、可逆圧縮形式で記憶してもよい。
【００７１】
なお、例えば切り出し画像のサイズが小さい場合などにおいて、無（非）圧縮形式と可逆圧縮形式でそれほど容量の差がないか、場合によっては逆に可逆圧縮形式の方が容量が大きくなるようなケースも考えられる。そこで、ステップＳ７では、切り出し画像を保存する場合、無圧縮形式と可逆圧縮形式とでどちらが容量が小さくなるかを判定し、記憶容量削減に有利な形式を選択するようにしてもよい。この判定は、例えば実際に可逆圧縮を行って容量を比較することにより行える。また、一般に圧縮形式ではファイルのヘッダ部分のオーバーヘッドがあり、著しく容量の小さな原データの場合思うような圧縮効果が得られない場合がある。このような事情を考慮して、画像データの容量があるサイズより小さい切り出し画像の場合、無（非）圧縮形式を選択するようにしてもよい。
【００７２】
さらに、ステップＳ７では、各切り出し画像とともに、各切り出し画像の始点座標や切り出し画像サイズ、形状、データフォーマット、ファイル名称などの各種付帯情報を記載したデータを併せて記憶してもよい。あるいはさらに、各処理領域内で実行した画像処理の内容、実行結果や、用いられた処理パラメータを併せて記憶するようにしてもよい。
【００７３】
ステップＳ８では画像処理を終了する。ここでは、不要になった一時記憶領域を解放して、画像処理を終了してもよいし、また、再利用可能なデータを保持したまま、再度画像処理の指示の待ち受けを行うこともできる。
【００７４】
以上のように、本実施例によれば、画像処理装置９０１が画像認識処理のような画像処理を行い、当該の画像処理に係る画像データを履歴データとして保存する場合、画像全体から切り出した切り出し画像を保存する。このため、履歴データを保存する外部記憶装置のような記憶手段に必要な記憶容量を大幅に低減することができる。
【００７５】
また、画像の切り出し領域は、画像処理の実行内容に基づいて決定する。例えば、切り出し領域は、当然ながら当該のパターンマッチングや輪郭検出などの画像認識処理が成功し、目的のパターンや輪郭を認識できた画像領域を含む。また、切り出し領域は当該のパターンマッチングや輪郭検出などの画像認識処理の実行（あるいは後ほどの検証や再現）に必要な（あるいはそれを充分行える）サイズに決定する。
【００７６】
また、履歴データとして切り出し画像データを非圧縮ないし可逆圧縮フォーマットで保存することにより、画像処理の再現性を保持したまま画像処理に関するロギングを行うことが可能となる。また、画像の切り出し領域を、画像処理の実行内容に基づいて決定するようにしているので、後の検証を過不足なく確実に行うことができる。
【００７７】
また、本実施例によれば、履歴データとして保存する切り出し領域を最適な位置、サイズで画像処理ごとに動的に決定することができる。特に、ロボットシステムなどにおいて、対象物の位置や姿勢を画像処理により検出するような用途のように、対象物の動き範囲が大きく事前に余裕をもった処理領域の設定が必要な場合でも履歴データ記憶に必要な記憶容量を効果的に小さくすることができる。
【００７８】
ここで、図３により本実施例の記憶容量削減の効果につき具体的に説明する。図３（ａ）において、入力画像データ３０１は、全体の画像サイズが水平方向に１０２４画素、垂直方向に７６８画素であるものとする。また、画像処理領域３０２は半径２００画素程度とし、対象物３０４は、この領域３０２内を例えば動作軌跡３２０のように自由に移動するものとする。また、画像処理領域３０５は水平方向に１００画素、垂直方向に２００画素であり、この領域３０５内を対象物３０６の輪郭の１つが動作軌跡３０７のように垂直方向に自由に移動するものとする。
【００７９】
また、図３（ｂ）に示すように、図１で説明したパターンマッチング処理に相当する画像認識処理に関連して切り出される切り出し領域３１０（図１の１１３）のサイズは、水平および垂直方向にＰｘ’＝Ｐｙ’＝１４２画素と計算されているとする。また、同様に、輪郭検出処理に関連して切り出される切り出し領域３０９（図１の１１４）のサイズは、水平方向にＦｘ’＝１００画素、垂直方向にＦｙ’＝４０画素と計算されているとする。
【００８０】
この時、従来のように入力画像データ３０１全体を保存する方式の場合、履歴データとして保存する画像データの画素数の合計は、７８６４３２（＝１０２４＊７６８）となる。これに対して、本実施例の切り出し画像の画素数の合計は２４１６４（(１００＊４０)＋(１４２＊１４２)）であり、９割以上の記憶容量の削減が可能になっている。
【００８１】
また、図３（ｃ）は異なる入力画像データ３１２のような例を示している。図３（ｃ）の例は、広範囲の処理領域３１３から対象物３１４を検出するような事例である。処理領域３１３には、図３（ａ）の対象物３０４と同等の形状で、パターンマッチングにより画像認識される対象物３１４の他、形状の異なる物体が多数、撮像されている。図３（ｃ）の入力画像データ３１２の画像サイズは図３（ａ）と同様に水平方向に１０２４画素、垂直方向に７６８画素、画像処理領域３１３は、例えば水平方向に９００画素、垂直方向に６００画素とする。また、マッチング処理の切り出し領域３１６のサイズは上記と同様の水平および垂直方向に１４２画素とする（図３（ｄ））。この時、従来技術例により切り出し画像の画素数は５４００００（＝９００＊６００）であるのに対し、本実施例の切り出し画像の画素数は２０１６４（＝１４２＊１４２）であり、９割５分以上の記憶容量の削減となっている。
【００８２】
以上のように、本実施例によれば、例えば従来のように予め固定された画像処理領域の画像データを切り出して記憶する方法と比較して、記憶容量削減の効果が非常に大きい。すなわち、画像処理のロギングに用いる外部記憶装置のような記憶手段には、より多くの画像処理実行回数分の画像データを記憶することができる。また、本実施例では、画像の切り出し領域を、画像処理の実行内容に基づいて決定するようにしている。このため、画像処理の再現性が確保され、画像処理のパラメータについて変更や検討を行うなどの場合にも検討用の画像データとしてロギングした切り出し画像を用いることができる。
【００８３】
さらに、本実施例の画像処理によれば、リアルタイムに画像データの転送が必要な場合等においても、一回の画像処理によって処理し、転送し、記憶する画像のデータ量を削減することができる。これにより、インターフェース上で、バス上で、あるいはネットワーク上で転送される画像のデータ量を削減し、各処理や転送、記憶に係る処理の負荷を小さくすることができ、さらにデータ転送時間も短縮することができる。
【００８４】
また、本実施例によれば、画像処理の対象物の位置が限定しづらい場合においても、画像処理の領域に固定されることなく、画像処理の内容に基づいて、画像処理の実行毎に動的に履歴データとして保存する画像データの切り出し領域を決定できる。これにより、画像処理の再現性を確保しつつ、履歴データとして保存する画像データの記憶容量を大きく低減することができる。また、これにより、同等の記憶領域を持つ画像処理装置においても、画像処理の再現性を確保しつつ、より多くの画像データを履歴データとして記憶する事ができる。また、画像処理のパラメータについて変更や検討の必要性が生じた場合においても、より多くの画像データに基づいて、画像処理結果の確認を行うことができるので、より妥当性の高い処理パラメータを決定することができる。さらに、画像処理ごとに履歴データとして記憶する画像のデータ量を縮小でき、バスやネットワーク上で画像データを転送する場合に必要な帯域幅を小さくすることができ、転送時間も短縮できる。また、システム全体に与える処理時間や通信時間の影響も軽減する事ができる。
【実施例２】
【００８５】
上記実施例では、画像処理装置９０１が画像認識処理のような画像処理を行い、当該の画像処理に係る画像データを履歴データとして保存する場合、画像全体から切り出した切り出し画像のみを保存する構成を示した。すなわち、図８でいえば、画像処理ごとにそれに関連する切り出し画像９０９１のみを外部記憶装置９０４に履歴データとして保存する。これに対して、本実施例では、画像処理ごとに、切り出し画像９０９１とともに当該の画像処理に係る画像データの例えば全体を圧縮画像９０９２として外部記憶装置９０４に履歴データとして保存する。
【００８６】
以下、図４〜図６を参照して、本実施例の画像処理につき説明する。本実施例は、入力された画像データ全体を非可逆圧縮して圧縮画像データを生成する画像データ圧縮工程と、圧縮画像データを外部記憶装置９０４に記憶する圧縮画像データ記憶工程を実施例１に加えて実施するものである。この非可逆圧縮画像データを生成し、記憶する以外の部分については、基本的には上記実施例１と同等の処理を行う。
【００８７】
図４は、入力された画像処理すべき画像データ全体４０１を示している。この画像データ全体４０１は、図１と異なる撮影シーンで撮像されている。図６は本実施例の画像処理によって生成、記録される画像データ一式をデータフロー図として示したものである。
【００８８】
また、図５は、実施例１の図２に相当するフローチャート図で、外部記憶装置９０４に保存する切り出し画像の領域決定と、画像データ全体４０１の非可逆圧縮の工程を含む。図５のステップＳ２０〜Ｓ２７、Ｓ３０は、図２のステップＳ０〜Ｓ７、Ｓ８と同等であり、異なるのはステップＳ２７の後に画像圧縮および記憶を行うステップＳ２８とＳ２９が設けられている点のみである。
【００８９】
図４では、画像認識処理として、図１の場合と同等のパターンマッチング処理（図４（ｃ）、（ｅ）、（ｇ））、および輪郭検出処理（図４（ｄ）、（ｆ）、（ｈ））が実行されるものとする。
【００９０】
図４（ａ）〜（ｈ）において、４０１〜４１４は図１の１０１〜１１４と同等の各要素を示している。図４の例では、入力画像データ全体４０１の撮像内容の一部が、図１のものとは異なっている。図４（ａ）において画像処理の処理領域４０２、４０３の大きさや位置は、図１（ａ）と同様であるが、図４（ａ）では、障害物４１５が撮像されている。この障害物４１５は、例えばロボットアーム９０８であり、図４（ａ）では画像認識すべき対象物４０４にかぶって撮影されている。対象物４０５は図１（ａ）とほぼ同等の形態で撮像されている。
【００９１】
図４（ｂ）において、４０９は障害物４１５の影響でマッチング処理に影響を受け、欠けが生じた画像処理結果を示している。ここでは検索パターンの一致率が障害物の影響で劣化したものの、マッチング処理は成功したこととする。当然、画像処理結果によって切り出された切り出し画像データ４１３（図４（ｇ））にも障害物４１５が混入し、図１（ｇ）の切り出し画像１１３とは異なった画像となっている。
【００９２】
本実施例の画像処理、特に画像の切り出し領域の決定と、画像圧縮の処理は図５のように実行する。ここで、図５のステップＳ２０〜２７は実施例１で説明した図２のステップＳ０〜Ｓ７と同様であるので説明を省略する。この時入力される画像データや画像処理の内容、ないし画像処理の結果に基づいて生成される切り出し画像データの生成結果などは、特に説明が無い限り図１の場合と共通であるものとする。
【００９３】
図５において、ステップＳ２７において切り出し画像を記憶させた後、ステップＳ２８では入力画像データ全体４０１を非可逆圧縮し、圧縮画像データ（上記の圧縮画像９０９２）を生成する。この非可逆圧縮処理には画素の間引きや離散コサイン変換（例えばＪＰＥＧ形式のもの）、ウェーブレット変換（例えばＪＰＥＧ２０００形式のもの）等を用いた非可逆画像圧縮方法を用いることができる。また、さらに切り出し画像領域に該当する領域以外においてのみ画像データを分割し、非可逆圧縮して記憶する対象データとすることもできる。あるいは、画像圧縮の対象領域を最初から画像処理領域４０２や４０３の範囲内にしたりすることで、記憶するデータ量を更に削減するようにしてもよい。
【００９４】
ステップＳ２９では、ステップＳ２８で生成した圧縮画像９０９２を外部記憶装置９０４に履歴データとして保存する。この時、後述のように切り出し画像９０９１と圧縮画像９０９２を関連づけするのはもちろん、圧縮画像データの圧縮方法や圧縮率、データフォーマット、ファイル名称などの各種付帯情報を含む内容を履歴データとして保存してもよい。
【００９５】
ステップＳ３０では画像処理を終了する。その後、不要になった一時記憶領域を解放して、画像処理を終了してもよいし、再利用可能なデータを保持し、再度画像処理の指示を待ち受けするようにしてもよい。
【００９６】
図６は上記の図４の入力画像データ全体４０１を入力し、図５の各処理ステップに基づき、外部記憶装置９０４に画像処理の履歴データをロギングする場合の記録データ一式のデータフロー６００を示している。
【００９７】
図６において、６０２は画像処理の内容が記述された画像処理設定データである。画像処理設定データ６０２は、上述の画像認識処理などの画像処理を制御する設定データで、「画像処理１」、「画像処理２」として上記のパターンマッチングおよび輪郭検出の処理内容を記述している。画像処理設定データ６０２には、処理内容を制御するデータとして、パターンマッチのためのモデルの識別情報や、制御パラメータなどが含まれる。６０３は切り出し画像データで、図４（ｇ）、（ｈ）の切り出し画像データ４１３、４１４に相当する。また、６０４は圧縮画像データで、例えば図４（ａ）の画像データ全体４０１を圧縮したものに相当する。
【００９８】
以上のような画像処理に係る生のデータから、外部記憶装置９０４に画像処理の履歴データとしてロギングする画像処理記録データ６０１を生成する。この画像処理記録データ６０１は、画像処理に用いた設定データを指定する情報や、画像データのファイル名、画像処理の結果等が記述された設定データである。
【００９９】
図６では、画像処理記録データ６０１は、テキストの形式で示してある。図示の通り、画像処理記録データ６０１において、切り出し画像データ６０３は、ｉｍａｇｅ１．ｂｍｐ、ｉｍａｇｅ２．ｂｍｐのようなビットマップファイルとして記録される。なお、切り出し画像データ６０３は必ずしも画像処理記録データ６０１の内部に格納される必要はなく、外部記憶装置９０４に別ファイル形式などにより格納してもよい。その場合は、画像処理記録データ６０１には、ファイル名やデータアドレスなどのポインタ情報を格納する。また、画像処理記録データ６０１には、切り出し画像データに係る画像処理結果の他、当該画像処理を特定（識別）する書誌データなどを格納することができる。画像処理記録データ６０１は、書出し先のファイルを予め一時記憶（５３１９）の領域などに生成しておき、各処理ステップ毎に対応する内容を追記するなどして生成される。その後、ステップＳ２９（図５）の後などのタイミングで、一時記憶されている各種情報を収集し、予め定めたフォーマットに成形した上、外部記憶装置９０４に記憶するようにしてもよい。
【０１００】
以上のように、本実施例によれば、画像処理装置９０１の画像処理に係る画像データを履歴データとして保存する場合、画像全体から切り出した切り出し画像を保存するとともに、画像処理に係る画像データ、例えばその全体を圧縮画像として保存する。従って、実施例１で説明した効果に加えて、画像処理の実行内容に基づいてより小さな画像データの切り出し範囲を実行毎に動的に決定して記憶することができるのみならず、画像データ全体を俯瞰する情報を同時に保存することができる。すなわち、切り出し画像の他、画像全体のデータも非可逆圧縮して保存することができるので、画像処理の再現性を確保しつつ、画像データ全体の概要情報を同時に記憶することができる。
【０１０１】
なお、画像処理に係る画像の（例えば）全体を圧縮する圧縮方式には、可逆圧縮方式を用いても良いが、非可逆圧縮方式を用いることによって、大きな画像領域を有する画像データを効率よく圧縮できる。
【０１０２】
例えば、前述と同様に水平ｘ垂直の画素数が１０２４ｘ７６８（いわゆるＸＧＡサイズ）、輝度の諧調は８ビットのモノクロ形式、輝度データは水平方向にグラデーションがかかった線形的な輝度変化があるものとする。このような画像データ全体を非圧縮で記憶する場合、一般的な非圧縮の画像ファイルフォーマットによると、ファイルサイズ（データ容量）は約８００ＫＢ内外になる。同じ画像を例えば、離散コサイン変換（たとえばＪＰＥＧ形式）や、ウェーブレット変換（たとえばＪＰＥＧ２０００形式）を用いて非可逆圧縮すると、画質パラメータなどの設定もよるが、約２００ＫＢ〜約５０ＫＢのファイルサイズまで圧縮できる。従って、切り出し画像に加え、画像処理に係る画像の全体をロギングする場合でも、記憶デバイスの容量を大きく圧迫することなく、例えば全体俯瞰用の画像として画像処理に係る画像の全体を保存することができる。なお、一般にＪＰＥＧ２０００形式で利用されているような離散コサイン変換方式は、高圧縮率（低画質）の場合でも、それ程大きな画質劣化を生じない利点があり、本実施例のような用途に好適に利用できる可能性がある。
【０１０３】
また、本実施例によれば、画像処理に係る画像の全体を保存するようにしているので、画像処理に係るパラメータの変更の必要性を判断したりする検証作業をより容易に行うことができる。特に、図４（ａ）のように障害物（４１５）が撮影されている場合などの状況判断や分析も、切り出し画像データのみで行うより、全体の圧縮画像データを併せて確認したほうが、より早い判断や調整が可能である。例えば図４の事例において、ロギングされた画像データが切り出し画像データ４１３（図４（ｇ））のみであった場合、その部分の画像データだけでは障害物４１５のどの箇所が撮影されているのか確定できない可能性がある。そのような場合に、全体を撮像した圧縮画像データがあれば、この圧縮画像を例えば表示装置９１１に表示させることによって、直ちに確認が可能になる。そして、画像処理や（あるいはロボットシステムにおいてはそれに基づくロボット制御）が障害に直面している場合でも、より柔軟に検証を行うことができるようになる。例えば、当該の障害を画像処理のパラメータ調整などで対応が必要か、それともシステムの想定外の動作などで、画像処理設定自体は対応が不要であるが別の対処が必要であるか、などといった判断を下すのがより容易になる。
【０１０４】
以上、２つの実施形態を示したが、本発明の画像処理技術は、入力画像に対して画像処理を行い、その画像処理に係る画像データを保存する種々の画像検査装置において実施することができる。例えば、本発明は、図８に示したような、ロボットシステムの視覚系を構成する撮像装置で撮像した画像に対して画像認識処理を行い、ロボットアームや対象物の位置や姿勢を検出する画像検査装置において好適に実施することができる。なお、上記各実施形態の画像処理は、ＣＰＵやＧＰＵなどによって構成された画像処理装置の演算手段（５１）によって実行される。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を画像検査装置に供給し、演算手段（５１）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるよう構成することができる。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体、ないしそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１０５】
また、上記各実施形態では、コンピュータ読み取り可能な記録媒体が記憶手段５３ないしは記憶手段５３を構成する記憶デバイスであるものとして説明したが、本発明は上記実施例で例示した形態だけに限定されるものではない。例えば、本発明を実施するためのプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、着脱式のＨＤＤやＳＳＤ、光学ディスク、各種フラッシュメモリデバイスなど、任意の外部記憶デバイスを用いることができるのはいうまでもない。このような各種記憶デバイスは、本発明を構成するプログラムが格納されていれば、本発明のコンピュータ読み取り可能な記録媒体を構成することになる。
【符号の説明】
【０１０６】
１０１…画像データ全体、１０４、１０５…対象物、１１１…切り出し領域、４０１…画像データ全体、５３１…画像処理プログラム、９０１…画像処理装置、９０２…撮像装置、９０３…照明装置、９０４…外部記憶装置、９０５…外部コントローラ、９０６…対象物、９０８…ロボットアーム、９０９１…切り出し画像、９０９２…圧縮画像
【図１】
0006465569.tif 000002
【図２】
0006465569.tif 000003
【図３】
0006465569.tif 000004
【図４】
0006465569.tif 000005
【図５】
0006465569.tif 000006
【図６】
0006465569.tif 000007
【図７】
0006465569.tif 000008
【図８】
0006465569.tif 000009