(57)【特許請求の範囲】
【請求項１】
ＴＶカメラと、
このＴＶカメラが接続され、このＴＶカメラの撮影画像を記憶する画像撮り込みメモリと画像処理手段とを有する画像処理ボードと、
この画像処理ボードが接続される拡張バスと主ＣＰＵと主メモリとを有する中央処理制御装置と、
上記画像撮り込みメモリに撮り込まれた画像を主メモリに転送する画像転送手段と、
この主メモリに転送された画像に対する画像処理が主ＣＰＵにより行われるように制御するＣＰＵ動作制御手段と、
上記ＴＶカメラの撮影画像に対する画像処理を主メモリと画像処理手段とに分担させて制御する並行処理制御手段とを備えていることを特徴とする画像処理検査装置。
【請求項２】
請求項１の画像処理検査装置であって、
中央処理制御装置が、パーソナルコンピュータから成ることを特徴とする画像処理検査装置。
【請求項３】
請求項１の画像処理検査装置であって、
画像処理手段が、画像処理用ソフトウェアを記憶するメモリと、このソフトウェアに従って動作するＣＰＵから成ることを特徴とする画像処理検査装置。
【請求項４】
請求項１の画像処理検査装置であって、
並行処理制御手段が、主メモリに格納された制御用ソフトウェアとこのソフトウェアに従って動作する主ＣＰＵから成ることを特徴とする画像処理検査装置。
【請求項５】
請求項１の画像処理検査装置であって、
画像処理結果を出力する出力装置を備えていることを特徴とする画像処理検査装置。
【請求項６】
請求項１の画像処理検査装置であって、
上記拡張バスに、画像処理ボードの画像撮り込みメモリに撮り込まれた画像が転送される画像撮り込みメモリと、このメモリに撮り込まれた画像の画像処理を分担して行う画像処理手段とを有する副画像処理ボードが接続されていることを特徴とする画像処理検査装置。
【請求項７】
請求項１の画像処理検査装置であって、
前記画像処理ボードが拡張バスに複数接続され、
前記画像転送手段と並行処理制御手段とによって、各画像処理ボードにそれぞれ接続されたＴＶカメラでの各撮影画像に対する画像処理を各画像処理ボードの画像処理手段と主ＣＰＵとで分担させる制御が行われることを特徴とする画像処理検査装置。
【請求項８】
請求項１の画像処理検査装置であって、
主ＣＰＵと主メモリとを有する第２中央処理制御装置の拡張バスが前記中央処理制御装置の拡張バスに直接接続され、
前記画像転送手段と並行処理制御手段とによって、前記画像処理ボードの画像撮り込みメモリに撮り込まれたカメラ画像を第２中央処理制御装置の主メモリに転送させてこの第２中央処理制御装置の主ＣＰＵに画像処理を分担させる制御が行われることを特徴とする画像処理検査装置。
【請求項９】
請求項８の画像処理検査装置であって、
第２中央処理制御装置の拡張バスに、前記画像処理ボードの画像撮り込みメモリに撮り込まれた画像が転送される画像撮り込みメモリと、このメモリに撮り込まれた画像の画像処理を分担して行う画像処理手段とを有する副画像処理ボードが接続されていることを特徴とする画像処理検査装置。
【請求項１０】
請求項８の画像処理検査装置であって、
前記画像処理ボードと同様の構成を有する画像処理ボードが第２中央処理制御装置の拡張バスに接続され、
前記画像転送手段と並行処理制御手段とによって、各画像処理ボードにそれぞれ接続されたＴＶカメラでの各撮影画像に対する画像処理を各画像処理ボードの画像処理手段と各中央処理制御装置の主ＣＰＵとで分担させる制御が行われることを特徴とする画像処理検査装置。
【請求項１１】
ＴＶカメラが接続された画像処理ボードを中央処理制御装置の拡張バスに接続し、ＴＶカメラの撮影画像を画像処理ボード上の画像撮り込みメモリに撮り込んだ後、この画像撮り込みメモリに記憶されたカメラ画像に対して画像処理を行って検査結果を出力させる画像処理検査方法であって、
上記カメラ画像に対する画像処理が中央処理制御装置内の主ＣＰＵでも行われるように、上記カメラ画像を中央処理制御装置内の主メモリに転送し、画像処理を上記主ＣＰＵと画像処理ボードとで分担して互いに並行に行うことを特徴とする画像処理検査方法。
【発明の詳細な説明】
【０００１】
【技術分野】
本発明は、工場等の生産設備として、生産工程上の製品の良否の判定検査等に使われる画像処理検査装置および検査方法に関する。
【背景技術】
工場等の生産工程では、昨今、パーソナルコンピュータをベースにした制御装置や検査装置が増えてきている。特にウィンドウOS（例えばマイクロソフト社のWindows95,Windows98 あるいはWindowsNT 等）は、優れたHMI(ヒューマン・マシン・インターフェース）を持っている。このため、パーソナルコンピュータをベースにした装置では、ワープロソフト、表計算ソフト、グラフィックス描画ソフト、データベースソフト等、様々なソフトウェアがウィンドウOS上の共通の手法で操作できることが、ユーザにとって大きなメリットになっている。
【０００２】
例えばロボットの位置制御等の様々な制御も、その制御に応じた専用のハードウェアをパーソナルコンピュータに接続して、ウィンドウOS上のアプリケーションソフトウェアで行えるようになってきている。
【０００３】
ウィンドウOSを使う別のメリットは、アプリケーションソフト同士のデータのやりとりが簡単に行えることにある。例えば、マイクロソフト社の代表的なウィンドウOSであるWindows95,Windows98,WindowsNT では、OLE(Object Linking and Embedding) の手法を用いて、ある一つのアプリケーションに対し、他のアプリケーションからコマンドを送ったり、データを更新したり、受け取ったりすることが、OS上でダイナミックに行える。
【０００４】
一方、人の視覚に頼っていた各種の目視検査を正確に、高速に、かつ自動的に行い得る画像処理検査装置が、工場等の生産設備として数多く導入されている。このような画像処理検査装置の分野でも、パーソナルコンピュータの拡張バスにボードを挿入して、例えばウィンドウOS上のアプリケーションソフトウェアで制御を行えるような装置が開発されてきている。
【０００５】
一般に画像処理検査装置は、例えば図10に示すような生産ラインでの製品の良否検査などに用いられる。コンベア51上に流れてくる製品（以下、ターゲットと呼ぶ）52をＴＶカメラ53で撮影し、その撮影画像に対して位置補正、面積測定、重心位置算出等の様々な画像処理を行った後、画像処理結果を数値演算し、求まった値から検査の良否を判定する論理演算を経て外部に結果を出力する、といった一連の演算出力処理が行われる。
【０００６】
従来は、専用のハードウェア、およびそのハードウェア上で動作する専用ソフトウェアを開発して上記の一連の処理を実現してきたが、昨今、パーソナルコンピュータのＣＰＵの性能が著しく向上してきたため、これらのすべての処理をパーソナルコンピューターのＣＰＵで行うようにした装置が多く開発されている。
【０００７】
すなわち、コンベア51上に流れてくるターゲット52がセンサ54で検知されると、検知信号が検査開始のトリガ入力としてパーソナルコンピュータ55に送られ、ＴＶカメラ53の画像が撮り込まれる。なお、パーソナルコンピュータ55には、例えばパラレルインターフェース入力があり、その端子に検知信号が入力されることで検査開始となって、画像が撮り込まれる。その後、パーソナルコンピュータ55によって上記した画像処理と一連の演算出力処理とが行われる。
【０００８】
図11に、このような画像処理検査装置の構成例を示している。パーソナルコンピュータ61を中央処理制御装置として設け、このパーソナルコンピュータ61の拡張バス63に画像撮り込みボード62が挿入（コネクタ接続）されている。このボード62は、ＴＶカメラ64からの画像データを蓄える画像撮り込みメモリ65と、バス制御回路66とを備えるだけの構成で、安価に作製できる。上記バス制御回路66によって、画像撮り込みメモリ65に撮り込まれた画像データが、パーソナルコンピュータ61内のＣＰＵボード67上のメモリ68に転送される。
【０００９】
例えば拡張バス63がＰＣＩバスの構成であれば、直接このバスを制御して、ＣＰＵボード67上のメモリ68に高速に画像を転送することができるような画像撮り込みボードが、数多く市販されている。ＣＰＵボード67のメモリ68に入ったカメラ画像は、ＣＰＵ69により、同じメモリ68にロードされた画像処理ソフトウェアを使って処理される。
【００１０】
その処理手順の具体例を図12に示している。まずステップＳ51において、上記のように画像の撮り込みが行われると、次いで、ウィンドウ処理（Ｓ52）、特徴抽出処理（Ｓ53）、マッチング処理（Ｓ54）などの画像処理が順次実行される。次いで、これら画像処理結果から、数値演算・判定（Ｓ55）、結果描画（Ｓ56）、結果出力（Ｓ57）などの後処理が行われる。
【００１１】
なお、ウィンドウ処理とは、２値化処理においては設定された領域内の面積（指定色（白又は黒）の画素数を求める処理であり、濃淡処理においては設定された領域内の濃淡総和あるいは平均値を求める処理である。特徴抽出処理とは、２値化において設定された領域内にある各ランド（指定色（白又は黒）の独立した塊）の特徴量（重心座標、面積、周囲長、外接矩形、慣性主軸等）を求める処理である。マッチング処理とは、濃淡処理において、予め抽出されたテンプレート画像が、設定された領域内の何処に存在するかの一致度（相関係数）に基づいて座標や角度等を求める処理である。
【００１２】
ところで、画像処理検査装置の性能を図るものさしのひとつは、如何に処理を短時間で実行できるかである。上記のような構成では、例えば同じパーソナルコンピュータで違うアプリケーションをマルチタスクで実行した場合、画像処理に割けるＣＰＵの時間割合が低下し、その結果、画像処理時間が著しく長くなってしまう。
【００１３】
一方、例えば、EPIX VISION-OCTOBER 1994 NEWSLETTER,[Online]October 1994（1994-10）,pages 1-2，XP002117630 Retrieved from the Internet：<URL:http://www2.interaccess.com/epix/v3n4 a3.htm>に紹介されている４MEG VIDEO Model 12は、デジタルカメラの画像データの撮り込みと共に、さらに画像処理を行う機能を備えている。そこで、このように画像処理機能も備えた画像処理ボードをパーソナルコンピュータの拡張バスに接続して構成された画像処理検査装置も開発されている。
【００１４】
なお、EPIX VISION-OCTOBER 1994 NEWSLETTER,[Online]October 1994(1994-10),pages 1-2,XP002117629 Retrieved from the Internet：<URL:http://www2.interaccess.com/epix/v3an 4al.htm>には、4MEG VIDEO Model 12に装備(Installed)されるtwin C40sが紹介されている。4MEG VIDEO Model 12で撮り込まれた画像データを、これらC40sに転送してそれぞれ画像処理させることで、さらに画像処理能力を向上させ得ることが説明されている。
【００１５】
このような4MEG VIDEO Model 12（又はtwin C40sを装備した4MEG VIDEO Model 12)等で、画像処理機能を有する画像処理ボードを形成し、これをパーソナルコンピュータ71の拡張バス72に接続して構成された画像処理検査装置の例を図13に示している。
【００１６】
すなわち、同図に示すパーソナルコンピュータ71の拡張バス72に接続された画像処理ボード74には、ＴＶカメラ73からの画像を撮り込む画像撮り込みメモリ75、およびバス制御回路76に加え、画像処理ソフトウェアが格納されている画像処理ソフトウェア保存用ＲＯＭ77と、起動時に上記画像処理ソフトウェアがロードされる画像処理ソフトウェア用ＲＡＭ78と、上記画像処理ソフトウェアに従って動作するＣＰＵ79とが搭載されている。
【００１７】
このような装置では、できる限り短時間で実行しなくてはならない画像処理が、画像処理ボード74上のＣＰＵ79で実行される。パーソナルコンピュータ71では、アプリケーションソフトウェアに従って、様々な処理のパラメータの設定変更、画像処理エリアの描画、結果の描画、数値演算、論理演算の設定や表示を行う。
【００１８】
画像処理ボード74とパーソナルコンピュータ71とは、拡張バス72を通じて、例えば共有メモリ（デュアルポートメモリ素子）80を用いてデータを共有している。拡張バス72上には画像データが出てこないため、転送するデータ量は少なくて済む。さらに、画像処理ボード74上のＣＰＵ79が画像処理を行うので、パーソナルコンピュータ71内の主ＣＰＵ81の負担が軽減される。なお、画像処理ボード74のメモリ77・78、ＣＰＵ79に代えて、大規模ゲートアレイ、ＡＳＩＣなどの画像処理専用のハードウェアで構成されたものもある。
【００１９】
しかしながら、パーソナルコンピュータ71の主ＣＰＵ81は、大きな負荷が常時かかっているわけではないので、必要に応じて画像処理を分担できれば、装置全体から考えて処理の高速化が図れるが、上記のような構成ではそれが不可能であるという問題点があった。また、上記のような画像処理ボード74で実行できる画像処理の内容は、画像処理プログラム保存用ＲＯＭ77内にあらかじめ格納されているソフトウェア、あるいは画像処理ボード上に搭載されたゲートアレイ等の専用ハードウェアに限定され、柔軟性が乏しい問題点があった。
【００２０】
本発明は、上記問題点に鑑み、パーソナルコンピュータ等から成る中央処理制御装置に、画像処理機能を有する画像処理ボードを接続して構成される画像処理検査装置において、装置全体の処理高速化を図ることが可能であり、また、中央処理制御装置のＣＰＵの負担を必要に応じて軽減し得る画像処理検査装置および検査方法を提供することを目的としている。
【００２１】
【発明の開示】
本発明の画像処理検査装置および検査方法では、例えばパーソナルコンピュータより成る中央処理制御装置の拡張バスに接続された画像処理ボードと上記中央処理制御装置内のＣＰＵボードとで、ＴＶカメラで撮り込んだ同一画像データを取り扱えるようにして、ＣＰＵボードと画像処理ボードとで、画像処理を適宜分担、並行して実行させる。
【００２３】
【発明を実施するための最良の形態】
〔実施形態１〕
図１に、実施形態１の画像処理検査装置の構成を示している。この装置はパーソナルコンピュータ１を中央処理制御装置として備え、このパーソナルコンピュータ１には、ＣＰＵボード２、ハードディスクなどから成る外部記憶装置３、インターフェース４、および、汎用の拡張バス（例えばＰＣＩバス）５が設けられている。
【００２４】
ＣＰＵボード２には、主ＣＰＵ６と主メモリ７とが備わっている。主メモリ６には、このパーソナルコンピュータ１の起動時に、外部記憶装置３からＯＳプログラム（図示せず）がロードされ、また、画像処理ソフトウェアＡ、およびアプリケーションソフトウェアもロードされる（または、実行時にロードされる場合もある）。
【００２５】
拡張バス５には、ＴＶカメラ10が接続された画像処理ボード11が挿入（コネクタ接続）されている。
【００２６】
この画像処理ボード11には、パーソナルコンピュータ１内の主ＣＰＵ６とは別に、画像処理専用のＣＰＵ（以下、副ＣＰＵという）12が搭載されている。また、このボード11には、ＴＶカメラ10の撮影画像を撮り込んで記憶する画像撮り込みメモリ13と、ＲＯＭから成る画像処理ソフトウェア保存用メモリ14と、ＲＡＭから成る画像処理ソフトウェア用メモリ15とが設けられている。画像処理ソフトウェア保存用メモリ14に画像処理ソフトウェアＢが格納されており、このソフトウェアＢが、パーソナルコンピュータ１起動時に画像処理ソフトウェア用メモリ15にロードされる。
【００２７】
画像処理ボード11には、パーソナルコンピュータ１のＣＰＵボード２とデータをやり取りするための共有メモリ16とバス制御回路17とがさらに設けられている。上記共有メモリ16を用いて、この画像処理ボード11で実行する画像処理の設定データがＣＰＵボード２から送られたり、画像処理ボード11で実行された画像処理の結果がＣＰＵボード２に返されたりする。
【００２８】
また、後述するように、画像撮り込みメモリ13に撮り込まれたカメラ画像がパーソナルコンピュータ１の主メモリ７に転送されるときには、上記バス制御回路17によって拡張バス５への画像データの転送が行われる。
【００２９】
パーソナルコンピュータ１の主メモリ７には、主ＣＰＵ６で動作するアプリケーションソフトウェアの一つとして、本装置の全体を制御するソフトウェアがロードされている。このソフトウェアの機能は次の通りである。
(1) 実行したい一連の画像処理を設定する。
(2) 設定した画像処理について、主ＣＰＵ６で実行するものと、画像処理ボード11の副ＣＰＵ12で実行するものとに振り分ける。
(3) 副ＣＰＵ12で実行する画像処理のための設定（パラメータ）を、共有メモリ16を介して副ＣＰＵ12に送る。
(4) 画像処理ボード11から送られてくる画像処理の結果、および主ＣＰＵ６で実行された画像処理の結果から、数値演算や判定を行い、必要な結果を      パーソナルコンピュータ１のモニタ（図示せず）に描画したり、インター      フェース４を用いて外部に出力する。
【００３０】
上記のような構成の画像検査装置により、図２に示すフローチャートに従って検査が実行される。すなわち、インターフェース４やユーザ操作により検査開始が指示されると、ＴＶカメラ11からターゲットの撮影画像が画像処理ボード11上の画像撮り込みメモリ13に撮り込まれる。同時に、画像撮り込みメモリ13に撮り込まれたカメラ画像は、拡張バス５を通してパーソナルコンピュータ１の主メモリ７に転送される（Ｓ１）。
【００３１】
ＰＣＩバスのアーキテクチャでは、バスは32ビットで33MHz 動作なので、原理的には最高32×33MHz/8=132Mバイト／秒の転送速度になる。実用的には理論値の1/4 〜1/5 位である。それでも、例えば１画面512×512画素×８ビット＝256Kバイトの転送は、0.256/(132/5)≒10ms程度である。これは、フレーム画像の撮り込み時間33.3msより短いので、事実上リアルタイム転送ができる。なお、このときの拡張バス５への画像データ転送は、画像処理ボード11上のバス制御回路17が行うので、パーソナルコンピュータ１の主ＣＰＵ６の負担が軽減される。
【００３２】
上記のように画像データがパーソナルコンピュータ１の主メモリ７にも格納されると、パーソナルコンピュータ１の主ＣＰＵ６と、画像処理ボード11の副ＣＰＵとが、同一の画像データを用いて、それぞれ画像処理を互いに並行に実行する。このときの画像処理の相互条件は、パーソナルコンピュータ１の主ＣＰＵ６で動作する前記のソフトウェアによって設定される（実際に並行処理できるように振り分けるために、位置補正など処理の依存関係がある場合等が考慮されている）。
【００３３】
本実施形態１では、パーソナルコンピュータ１の主ＣＰＵ６が、画像処理ソフトウェアＡによってウィンドウ処理や特徴抽出処理を行い（Ｓ２・Ｓ３）、同時に、画像処理ボード11上の副ＣＰＵ12が、画像処理ソフトウェアＢによってマッチング処理を行う（Ｓ４）。この場合、マッチング処理に必要なパラメータがパーソナルコンピュータ１から事前に画像処理ボード11に転送されている。
【００３４】
画像処理ボード11でのマッチング処理の結果は、共有メモリ16を介してパーソナルコンピュータ１のＣＰＵボード２に送られ、このＣＰＵボード２で実行されたウィンドウ処理および特徴抽出処理の結果と合わせて、数値演算・判定、結果描画、結果出力等の後処理が行われて（Ｓ５〜Ｓ７）、このときのターゲットに対する検査を終了し、次のターゲットに対する検査を開始する。
【００３５】
以上の説明のように、本実施形態においては、画像転送手段として機能するバス制御回路17によって、画像撮り込みメモリ13に撮り込まれたカメラ画像は主メモリ７にも転送される。また、この主メモリ７に格納されたカメラ画像に対する画像処理を主ＣＰＵ６によっても行わせるように、上記主メモリ７に、ＣＰＵ動作制御手段として画像処理ソフトウェアＡがロードされている。そして、並行処理制御手段としての機能を有する前記アプリケーションソフトウェアに従い、カメラ画像に対する画像処理が、主ＣＰＵ６と、画像処理ボード11における画像処理手段としての副ＣＰＵ12とに分担されて、これら主ＣＰＵ６と副ＣＰＵ12との画像処理が互いに並行に行われる。
【００３６】
従来は、前記図12に示したように、画像撮り込み、画像処理、後処理がシーケンシャルに行われていた。ここで、一般的には正規化相関を用いたマッチング処理（パターンマッチング）の実行は濃淡画像処理であり、ウィンドウ処理や特徴抽出処理は２値画像処理である。このため、マッチング処理はウィンドウ処理や特徴抽出処理に比べて時間がかかる。また、例えばウィンドウ処理の実行結果を用いて特徴抽出処理を実行させる必要があるような場合は、これらの処理をシーケンシャルに実行しなければならない。しかしながら、例えばマッチング処理は他の画像処理と並行に実行して問題なく、このような場合でも、これら各処理をシーケンシャルに行う従来の検査手順では、全体の速度パフォーマンスを上げることはできない。
【００３７】
これに対し、本実施形態の装置では、前記のように、パーソナルコンピュータ１と画像処理ボード11とに同一の画像データを撮り込んで、ウィンドウ処理や特徴抽出処理、マッチング処理をパーソナルコンピュータ１と画像処理ボード11とで分担し、これらの処理を並行して行うようになっているので、全体的な処理時間が短縮され、また、パーソナルコンピュータ１の主ＣＰＵ６の負担も軽減される。
【００３８】
〔実施形態２〕
図３に、実施形態２の画像処理検査装置の構成を示している。なお、前記図１で説明した部材と同一の機能を有する部材には同一の符号を付記して、詳細な説明を省略する。後述するさらに他の実施形態でも同様とする。
【００３９】
本実施形態では、パーソナルコンピュータ１の拡張バス５に、前記同様の構成を有する２枚の画像処理ボード11Ａ・11Ｂが接続されている。
【００４０】
一方の（特定の）画像処理ボード（以下、主画像処理ボード11Ａという）には、前記同様にＴＶカメラ10が接続されている。他方の画像処理ボード（以下、副画像処理ボード11Ｂという）は、ＴＶカメラ10が接続されていない点でのみ、主画像処理ボード11Ａと相違する。
【００４１】
なお、この副画像処理ボード11Ｂの画像処理ソフトウェア保存用メモリ14には画像処理ソフトウェアＣが格納されている。この画像処理ソフトウェアＣと、主画像処理ボード11Ａの画像処理ソフトウェア保存用メモリ14に格納されている画像処理ソフトウェアＢとは全く同じ内容でもよく、また、例えば画像処理ソフトウェアＢでは特徴抽出処理が実行でき、画像処理ソフトウェアＣではマッチング処理が実行できるというように、機能ごとに別れたものでもよい。
【００４２】
各画像処理ソフトウェア保存用メモリ14・14に格納されている画像処理ソフトウェアＢ・Ｃは、パーソナルコンピュータ１の起動時に、各画像処理ソフトウェア用メモリ15・15にそれぞれロードされる。
【００４３】
パーソナルコンピュータ１の主メモリ７には、前記同様に、主ＣＰＵ６で動作するアプリケーションソフトウェアの一つとして、本画像処理検査装置を制御するソフトウェアがロードされている。このソフトウェアの機能は次の通りである。
(1) 実行したい一連の画像処理を設定する。
(2) 設定した画像処理について、パーソナルコンピュータ１の主ＣＰＵ６で実行するものと、各画像処理ボード11Ａ・11Ｂの副ＣＰＵ12・12で実行するものとに振り分ける。
(3) 副ＣＰＵ12・12で実行する画像処理のための設定（パラメータ）を、各共有メモリ16・16を介して副ＣＰＵ12・12に送る。
(4) 各画像処理ボード11Ａ・11Ｂから送られてくる画像処理の結果、および主ＣＰＵ６で実行された画像処理の結果から、数値演算や判定を行い、必      要な結果をパーソナルコンピュータ１のモニタに描画したり、インターフ      ェース４を用いて外部に出力する。
【００４４】
このような構成の画像処理検査装置により、例えば図４に示すフローチャートに従って検査が実行される。すなわち、検査開始が指示されると、ＴＶカメラ10から撮像された画像データが、主画像処理ボード11Ａの画像撮り込みメモリ13に撮り込まれる。同時に、この画像データは、拡張バス５を介して、パーソナルコンピュータ１の主メモリ７と、副画像処理ボード21の画像撮り込みメモリ23とに転送される（Ｓ11）。
【００４５】
そして、同一内容の画像データを用いて、パーソナルコンピュータ１のＣＰＵボード２では画像処理ソフトウェアＡでウィンドウ処理が（Ｓ12）、また、主画像処理ボード11Ａでは画像処理ソフトウェアＢで特徴抽出処理が（Ｓ13）、副画像処理ボード11Ｂでは画像処理ソフトウェアＣでマッチング処理が（Ｓ14）、それぞれ独立して並行に実行される。このときの画像処理の相互条件は、パーソナルコンピュータ１の主ＣＰＵ６で動作する前記のソフトウェアによって設定される。また、各画像処理ボード11Ａ・11Ｂでの画像処理に必要なパラメータは、パーソナルコンピュータ１から事前に各画像処理ボード11Ａ・11Ｂに転送されている。
【００４６】
各画像処理ボード11Ａ・11Ｂでの特徴抽出処理・マッチング処理が各々終了すると、それらの処理結果は、共有メモリ16・16を介してパーソナルコンピュータ１のＣＰＵボード２に送られ、このＣＰＵボード２で実行されたウィンドウ処理の結果と合わせて、前記のソフトウェアで後処理される（Ｓ15〜Ｓ17）。
【００４７】
なお、上記実施形態では、主画像処理ボード11Ａに加えて、副画像処理ボード11Ｂを拡張バス５に１枚接続して構成した例であるが、２枚以上の副画像処理ボードが挿入される場合でも全く同様に説明することができる。
【００４８】
〔実施形態３〕
図５に、実施形態３の画像処理検査装置の構成を示している。この装置も、パーソナルコンピュータ１の拡張バス５に、複数、図の場合には２枚の画像処理ボード11・11が接続されている。
【００４９】
各画像処理ボード11・11の構成は前記と同様で、各画像処理ボード11・11に、それぞれＴＶカメラ10・10が接続されている点で、前記実施形態２と相違する。
【００５０】
各画像処理ボード11・11の画像処理ソフトウェア保存用メモリ14・14の一方には画像処理ソフトウェアＢが、他方には画像処理ソフトウェアＣが各々格納されている。これら画像処理ソフトウェアＢ・Ｃは、前記同様に、同じ内容でもよく、また、各ＴＶカメラ10・10を通して撮り込まれるカメラ画像に基づいて異なる処理内容でもよい。
【００５１】
パーソナルコンピュータ１の主メモリ７には、前記同様に、主ＣＰＵ６で動作するアプリケーションソフトウェアの一つとして、本画像処理検査装置を制御するソフトウェアがロードされている。このソフトウェアの機能は次の通りである。
(1) 各カメラ画像について、実行したい一連の画像処理を設定する。
(2) 設定した画像処理について、パーソナルコンピュータ１の主ＣＰＵ６で実行するものと、各画像処理ボード11・11の副ＣＰＵ12・12で実行するものとに振り分ける。
(3) 副ＣＰＵ12・12で実行する画像処理のための設定（パラメータ）を、各共有メモリ16・16を介して副ＣＰＵ12・12に送る。
(4) 各画像処理ボード11・11から送られてくる画像処理の結果、および主ＣＰＵ６で実行された画像処理の結果から、数値演算や判定を行い、必要な結果をパーソナルコンピュータ１のモニタに描画したり、インターフェース４を用いて外部に出力する。
【００５２】
このような構成の画像処理検査装置により、例えば図６のフローチャートに示す手順に従って検査が実行される。すなわち、検査が開始されると、各ＴＶカメラ10・10から撮り込まれた画像が、それぞれの画像処理ボード11・11上の画像撮り込みメモリ13・13に画像データとして蓄えられる。同時に、これら画像データは、拡張バス５を通してパーソナルコンピュータ１の主メモリ７に転送される（Ｓ21・Ｓ22）。
【００５３】
そして、一方の画像処理ボード11で撮り込まれた画像データに対し、パーソナルコンピュータ１の主ＣＰＵ６が、画像処理ソフトウエアＡによってウィンド処理と特徴抽出処理とを行い（Ｓ23・Ｓ24）、これに並行して、この画像処理ボード11の副ＣＰＵ12が画像処理ソフトウェアＢによってマッチング処理を行う（Ｓ25）。
【００５４】
さらに、主ＣＰＵ６は、他方の画像処理ボード11で撮り込まれた画像データに対し、例えばエッジ検出処理と特徴抽出処理とを行い（Ｓ26・Ｓ27）、これに並行に、この他方の画像処理ボード11の副ＣＰＵ12が画像処理ソフトウェアＣによってマッチング処理を行う（Ｓ28）。なお、エッジ検出処理とは、２値化或いは濃淡処理で、設定された領域でのエッジの座標を求める処理である。
【００５５】
このような画像処理の相互条件は、パーソナルコンピュータ１の主ＣＰＵ６で動作する前記ソフトウェアによって設定される。
【００５６】
各画像処理ボード11・11での画像処理結果は、共有メモリ16・16を介してＣＰＵボード２に送られ、このＣＰＵボード２で実行されたウィンドウ処理等の画像処理結果と合わせて、前記したソフトウェアによって後処理される（Ｓ29〜Ｓ31）。
【００５７】
このように、本実施形態においては、各画像処理ボード11・11共、比較的処理時間のかかるマッチング処理を実行し、それ以外の画像処理はすべてパーソナルコンピュータ１の主ＣＰＵ６で実行される。この主ＣＰＵ６は、前記実施形態１に比べると負担は２倍程度と大きくなるが、マッチング処理まで全部処理させることを考えると負担は軽い。
【００５８】
なお、上記実施形態では、画像処理ボード11が２枚接続されている例を挙げたが、３枚以上の画像処理ボードが挿入される場合でも全く同様に説明することができる。
【００５９】
また上記では、各画像撮り込みメモリ13・13に格納された画像データの全てをパーソナルコンピュータ１の主メモリ７に転送する例を説明したが、画像処理ボードの数が多くなるとデータ転送量が増大するので、パーソナルコンピュータ１のＣＰＵボード２で処理を実行したい単一の画像処理ボード11、特定の複数の画像処理ボード11…の画像データに限って転送するようにしてもよい。
【００６０】
この場合、拡張バス５を介して、パーソナルコンピュータ１のＣＰＵボード２が、画像データの転送を必要とする画像処理ボード11のバス制御回路17に転送要求を行い、この画像処理ボード11に画像が撮り込まれるとバス制御回路17が拡張バス５を制御して、画像データをＣＰＵボード２に高速で転送すればよい。
【００６１】
〔実施形態４〕
図７に、実施形態４の画像処理検査装置の構成を示している。この装置は、２台のパーソナルコンピュータ1A・1Bを備えている。これらは、それぞれ、前記図１のパーソナルコンピュータ１と同様の構成を有し、一方のパーソナルコンピュータ（以下、第１パーソナルコンピュータ1Aという）の拡張バス5Aには、ＴＶカメラ10が接続された１枚の主画像処理ボード11Ａと、複数の副画像処理ボード11Ｂ…とが挿入されている。これら主画像処理ボード11Ａ、副画像処理ボード11Ｂは、それぞれ、前記図３に示した主画像処理ボード11Ａ、副画像処理ボード11Ｂと同じ構成を有するものである（以下、第１パーソナルコンピュータ1Aと、これに接続された各画像処理ボード11Ａ・11Ｂ…、ＴＶカメラ10を総称して第１ユニットU1という）。
【００６２】
他方のパーソナルコンピュータ（以下、第２パーソナルコンピュータ1Bという）の拡張バス5Bには、それぞれ、上記同様の構成を有する複数の副画像処理ボード11Ｂ…が挿入されている（以下、第２パーソナルコンピュータ1Bとこれに接続された副画像処理ボード11Ｂ…を総称して第２ユニットU2という）。
【００６３】
そして、各拡張バス5A・5B同士が相互に直結されて、各パーソナルコンピュータ1A・1BのＣＰＵボード2A・2Bが相互に接続されている。
【００６４】
また、この画像処理検査装置を制御するためのソフトウェアが、第１パーソナルコンピュータ1Aの主ＣＰＵ（図示せず）で動作するアプリケーションソフトウェアの１つとして、この第１パーソナルコンピュータ1Aの主メモリ（図示せず）にロードされている。
【００６５】
このソフトウェアの機能は次の通りである。
(1) 実行したい一連の画像処理を設定する。
(2) 設定した画像処理について、ＣＰＵボード2A、ＣＰＵボード2B、主画像処理ボード11Ａ、各副画像処理ボード11Ｂ…でそれぞれ実行する画像処理を振り分ける。
(3) 主画像処理ボード11Ａ、各副画像処理ボード11Ｂ…の各副ＣＰＵ（図示せず）で実行する画像処理のための設定（パラメータ）を、各ボード11Ａ・11Ｂ上の共有メモリを介して、画像処理ボード11Ａ、各副画像処理ボード11Ｂ…に送る。また、第２パーソナルコンピュータ1BのＣＰＵボード2Bで実行する画像処理の設定は、拡張バス5A・5Bを通して直接ＣＰＵボード2Bの主メモリに送る。
(4) 主画像処理ボード11Ａ、各副画像処理ボード11Ｂ…で実行した画像処理の結果、および、各ＣＰＵボード2A・2Bで実行された画像処理の結果から、数値演算や判定を行い、必要な結果を第１パーソナルコンピュータ1Aのモニタに描画したり、インターフェースを用いて外部に出力する。
【００６６】
このような構成の装置において、ＴＶカメラ10から撮り込まれた画像は、まず、主画像処理ボード11Ａ上の画像撮り込みメモリに画像データとして蓄えられる。同時に、拡張バス5Aを通して、第１パーソナルコンピュータ1Aの主メモリに転送され、また、第１ユニットU1内の各副画像処理ボード11Ｂ…の画像撮り込みメモリに転送される。さらに、拡張バス5A・5Bを通して第２ユニットU2に転送され、第２パーソナルコンピュータ1BのＣＰＵボード2B上の主メモリ、および各副画像処理ボード11Ｂ…の画像撮り込みメモリに格納される。
【００６７】
そして、各ＣＰＵにより、それぞれ分担された画像処理が並行して行われ、結果が第１パーソナルコンピュータ1AのＣＰＵボード2Aに転送され、これら処理結果から、数値演算や判定等が行われる。
【００６８】
なお上記実施形態では、第１パーソナルコンピュータ1AのＣＰＵボード2A上で、全体を制御するソフトウェアが動作するようにしたが、これを第２パーソナルコンピュータ1Bで行うようにしても良い。
【００６９】
また上記では、パーソナルコンピュータに画像処理ボードを接続して構成されたユニットを２セット設けた例を示したが、３セット以上を相互接続した場合も同様の説明ができる。
【００７０】
また上記では、パーソナルコンピュータ毎に区切られたユニット構成としたが、例えば、１台のパーソナルコンピュータの拡張バスのマザーボード上に、複数のＣＰＵボードと複数の画像処理ボードとを挿入し、全体を１つにまとめた装置構成としても良い。
【００７１】
さらに上記実施形態では、全てのＣＰＵボードおよび画像処理ボードに画像処理を振り分けているが、例えば、
(a) 第１パーソナルコンピュータ1AのＣＰＵボード2Aは、設定した一連の画像処理の制御、および、実行された画像処理の結果から出力を行う部分（後処理）を担当し、第２パーソナルコンピュータ1BのＣＰＵボード2B、および、各画像処理ボード11Ａ・11Ｂ…が画像処理を行う。
(b) 第１パーソナルコンピュータ1AのＣＰＵボード2Aは、設定した一連の画像処理の制御を担当し、第２パーソナルコンピュータ1BのＣＰＵボード2Bが、実行された画像処理の結果から出力を行う部分（後処理）を担当し、      各画像処理ボード11Ａ・11Ｂ…が画像処理を行う。
といったソフトウェア構成にしてもよい。
【００７２】
〔実施形態５〕
図８に、実施形態５の画像処理検査装置の構成を示している。この装置も、複数のパーソナルコンピュータ１…を備え、これらパーソナルコンピュータ１…の各ＣＰＵボード２…が、拡張バス５…で相互に直接接続されている。実施形態４とは、各パーソナルコンピュータ１に、ＴＶカメラ10が各々接続された画像処理ボード11が、それぞれ複数接続されている点で相違する。なお、必ずしも全ての画像処理ボード11…にＴＶカメラが接続されていなくても良い。
【００７３】
この装置においては、複数のカメラ画像が拡張バス５…を通じて、各ＣＰＵボード２…に転送される。この場合も、実施形態４と同様に、何れかのパーソナルコンピュータ１に、主ＣＰＵで動作するアプリケーションソフトウェアの１つとして、本装置を制御するソフトウェアが主メモリにロードされる。また、複数あるパーソナルコンピュータのＣＰＵボードに対して、実施形態４の(a)(b)に示したように処理を分担させてもよい。
【００７４】
〔参考例〕
次に、本発明の参考例の画像処理検査装置について説明する。この装置の構成は、例えば前記図１を参照して説明した装置構成と同じである。したがって、以下では、同図を参照して説明した各構成部材を引用しながら説明する。
【００７５】
この装置では、図９のフローチャートに示す手順で検査が実行される。
【００７６】
すなわち、検査が開始されると、前記同様にＴＶカメラ10で撮影された画像が画像処理ボード11上の画像撮り込みメモリ13に取り込まれ（Ｓ41）、前記したウィンドウ処理・特徴抽出処理・マッチング処理等の一連の画像処理が、この画像処理ボード11の副ＣＰＵ12によって実行される（Ｓ42）。なお、本参考例では、画像処理に画像フィルタリングなどの前処理も含まれ、これが、画像処理ボード11で実行される。
【００７７】
そして、この画像処理の結果が、パーソナルコンピュータ１のＣＰＵボード２に転送され、この結果を用いた数値演算・判定、結果描画や結果出力といった後処理が、ＣＰＵボード２で実行される（Ｓ43〜Ｓ45）。
【００７８】
一方、画像処理ボード11は、画像処理の結果を出力した後、次のターゲットに対する画像の撮り込みを行い（Ｓ46）、続いて、上記同様に画像処理を実行する（Ｓ47）。したがって、この間、ＣＰＵボード２での後処理と、画像処理ボード11での画像処理とが並行して実行され、以降も、このような並行処理が行われる。
【００７９】
このように、画像処理ボード11で画像データの撮り込みと画像処理、パーソナルコンピュータ１のＣＰＵボード２で画像処理結果に基づく後処理を行うように役割を分担することによって、パイプライン処理が可能になる。理由は、画像処理ボード11で画像処理が終了した時点で画像データはもはや不要になり、次の検査のための新しい画像を撮り込むことが可能になるからである。すなわち、画像処理ボード11で画像処理が終了すると、必要な結果が共有メモリ16を通してパーソナルコンピュータ１の主メモリ７に転送され、これと同時に、画像処理ボード11では次の撮像を開始し、画像処理を開始することができる。
【００８０】
一般に、後処理は画像処理に比べて計算量が少ないので、主ＣＰＵ６の負担が軽くなり、汎用のアプリケーションソフトをストレスなく同時に動作させることができる。
【００８１】
可能な限り高速に繰り返して検査を行う場合、前記図12に示した従来の処理手順では、１回の検査時間Ｔは、
Ｔ＝〔画像撮り込み時間〕＋〔画像処理時間〕＋〔後処理時間〕
である。これに対し、本実施形態では、
(i) 〔画像撮り込み時間〕＋〔画像処理時間〕≧〔後処理時間〕ならば、１        回の検査時間Ｔ＝〔画像撮り込み時間〕＋〔画像処理時間〕
(ii)〔画像撮り込み時間〕＋〔画像処理時間〕＜〔後処理時間〕ならば、１        回の検査時間Ｔ＝〔後処理時間〕
となる。
【００８２】
したがって、上記のようなパイプライン処理を行わせるためのパイプライン処理制御手段としてのソフトウェアを、パーソナルコンピュータ１の主ＣＰＵ６で動作するアプリケーションソフトウェアの１つとして設けておくことによって、全体的な検査処理時間を短縮することができ、また、主ＣＰＵ６の負担も軽減できる。
【００８３】
なお、上記のようなパイプライン処理は、前記図３を参照して説明した実施形態２における装置構成でも同様に実施することができる。この場合、各画像処理ボード11Ａ・11Ｂでの画像処理は並行に実行させ、全ての画像処理ボード11Ａ・11Ｂの画像処理が終了した時点で画像データはもはや不要になるので、次の検査のための新しい画像を撮り込むことが可能になる。すなわち、全ての画像処理ボード11Ａ・11Ｂの画像処理が終了すると、必要な結果を共有メモリ16・16を通じてパーソナルコンピュータ１の主メモリ７に転送し、それと同時に次の撮像を開始し、画像処理を始めるようにすることで、全体的な検査時間を短縮することができる。
【００８４】
さらに、上記のようなパイプライン処理は、前記図５を参照して説明した実施形態３における装置構成でも実施することができる。この場合も、各画像処理ボード11での画像処理は並行に実行させ、画像処理結果を共有メモリ16・16を通じてパーソナルコンピュータ１の主メモリ７に転送した直後から、次の撮像を開始し、画像処理を始めることができる。
【００８５】
以上、本発明の具体的な実施形態及び参考例について説明したが、本発明は上記各実施形態及び参考例に限定されるものではない。例えば、上記各実施形態及び参考例では、画像処理ボード11・11Ａ・11Ｂにおける画像処理手段を、画像処理ソフトウェア保存用メモリ14に格納された画像処理ソフトウェアと、これに従って動作する副ＣＰＵ12とで構成した例を説明したが、これは、例えばゲートアレイ等の専用のハードウェアを用意して実行する構成としても良い。
【００８６】
また上記各実施形態及び参考例では、画像処理の前処理については格別触れなかったが、例えば画像の回転や、２値化画像の膨張収縮フィルタの他、ＴＶカメラからの画像に対して任意の前処理を行う場合でも、本発明を適用することが可能である。
【図面の簡単な説明】
図１は、本発明の実施形態１における画像処理検査装置の構成を示すブロック図である。
図２は、実施形態１の装置での処理手順を示すフローチャートである。
図３は、本発明の実施形態２における画像処理検査装置の構成を示すブロック図である。
図４は、実施形態２の装置での処理手順を示すフローチャートである。
図５は、本発明の実施形態３における画像処理検査装置の構成を示すブロック図である。
図６は、実施形態３の装置での処理手順を示すフローチャートである。
図７は、本発明の実施形態４における画像処理検査装置の構成を示すブロック図である。
図８は、本発明の実施形態５における画像処理検査装置の構成を示すブロック図である。
図９は、本発明の実施形態６における画像処理検査装置での処理手順を示すフローチャートである。
図10は、画像処理検査装置による検査の一例を示す説明図である。
図11は、従来の画像処理検査装置の構成を示すブロック図である。
図12は、従来の画像処理検査装置での処理手順を示すフローチャートである。
図13は、従来の他の画像処理検査装置の構成を示すブロック図である。
【図１】
0004096513.tif 000002
【図２】
0004096513.tif 000003
【図３】
0004096513.tif 000004
【図４】
0004096513.tif 000005
【図５】
0004096513.tif 000006
【図６】
0004096513.tif 000007
【図７】
0004096513.tif 000008
【図８】
0004096513.tif 000009
【図９】
0004096513.tif 000010
【図１０】
0004096513.tif 000011
【図１１】
0004096513.tif 000012
【図１２】
0004096513.tif 000013
【図１３】
0004096513.tif 000014