(57)【要約】【課題】傾いた状態で検査対象物をカメラで撮像したとしても、リアルタイムで検査対象物の傾きを補正することができる画像処理ボードを提供する。【解決手段】画像処理ボード１０４は、ラインセンサカメラ（不図示）で検査対象物の画像を取り込む画像取込処理を実行する画像取込部１６１と、検査対象物の傾きを正す方向に回転するように、検査対象物の画像を補正する画像補正処理を実行する画像補正部１６２と、補正後の画像をメインメモリ（不図示）に転送する画像転送処理を実行する画像転送部１６３と、撮像命令をＣＰＵ（不図示）から受けると、画像取込部１６１に画像取込処理を実行させて、補正開始ライン数以上のラインを取り込むと、画像取込処理に並行して、画像補正部１６２に画像補正処理を実行させて、転送開始ライン数以上のラインを取り込むと、画像取込処理に並行して、画像転送部１６３に画像転送処理を実行させる制御部１６０とを備える。【選択図】図２
2011018248.tif 000002
【特許請求の範囲】
【請求項１】
内部インターフェースを介してメインメモリとプロセッサとが接続されて、外部インターフェースを介してカメラが接続される画像処理ボードであって、
前記カメラで検査対象物の画像をライン単位で順に取り込む画像取込処理を実行する画像取込手段と、
前記検査対象物の傾きを正す方向に回転するように、前記検査対象物の画像をブロック単位で順に補正する画像補正処理を実行する画像補正手段と、
前記補正後の画像を前記メインメモリに所定のサイズ単位で順に転送する画像転送処理を実行する画像転送手段と、
前記画像補正処理を実行開始するにあたっての閾値となる画像の取り込みライン数である補正開始ライン数を記憶する補正開始パラメータ記憶手段と、
前記画像転送処理を実行開始するにあたっての閾値となる画像の取り込みライン数である転送開始ライン数を記憶する転送開始パラメータ記憶手段と、
前記検査対象物を撮像する命令を前記プロセッサから受けると、前記画像取込手段に前記画像取込処理を実行させて、前記補正開始ライン数以上のラインを取り込むと、前記画像取込処理に並行して、前記画像補正手段に前記画像補正処理を実行させて、前記転送開始ライン数以上のラインを取り込むと、前記画像取込処理に並行して、前記画像転送手段に前記画像転送処理を実行させる制御手段とを備える
ことを特徴とする画像処理ボード。
【請求項２】
前記検査対象物の画像と前記補正後の画像とを記憶するフレームメモリと、
前記フレームメモリに対するアクセスを調停するアクセス調停手段とを備え、
前記外部インターフェースから前記フレームメモリへのデータ伝送を第１のデータ伝送として、
前記フレームメモリから前記画像補正手段へのデータ伝送を第２のデータ伝送として、
前記画像補正手段から前記フレームメモリへのデータ伝送を第３のデータ伝送として、
前記フレームメモリから前記内部インターフェースへのデータ伝送を第４のデータ伝送とした場合において、
前記第４のデータ伝送よりも前記第１のデータ伝送を優先して、前記第２のデータ伝送と前記第３のデータ伝送とよりも前記第４のデータ伝送を優先するように、前記アクセス調停手段において、前記フレームメモリに対するアクセスが調停される
ことを特徴とする請求項１に記載の画像処理ボード。
【請求項３】
画像処理で検査対象物の欠陥を検出する画像処理装置であって、
前記検査対象物を撮像して前記検査対象物の画像をライン単位で出力するカメラと、
前記検査対象物の画像に対して前記検査対象物の傾きを正す補正をブロック単位で施しながら、補正後の画像を所定のサイズ単位で出力する請求項１又は２に記載の画像処理ボードと、
前記補正後の画像を記憶するメインメモリと、
前記メインメモリに記憶されている前記補正後の画像を使用して前記画像処理を実行するプロセッサとを備える
ことを特徴とする画像処理装置。
【請求項４】
画像処理で検査対象物の欠陥を検出する画像処理方法であって、
前記検査対象物を撮像する命令をプロセッサから受けると、前記検査対象物の画像をライン単位で順に取り込む画像取込処理を実行して、
補正開始の閾値であるライン数以上のラインを取り込むと、前記画像取込処理に並行して、前記検査対象物の傾きを正す方向に回転するように、前記検査対象物の画像をブロック単位で順に補正する画像補正処理を実行して、
転送開始の閾値であるライン数以上のラインを取り込むと、前記画像取込処理に並行して、前記補正後の画像をメインメモリに所定のサイズ単位で順に転送する画像転送処理を実行する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理で検査対象物の欠陥を検出する画像処理装置の画像処理ボードに関するものである。
【背景技術】
【０００２】
従来から、画像処理で検査対象物の欠陥を検出する画像処理装置に関する技術が色々と提案されている（例えば、特許文献１参照。）。
例えば、図１２に示すように、画像処理装置１は、検査対象物の欠陥を検出する装置である。ＣＰＵ（Central Processing Unit）２、メインメモリ３およびＰＣＩ（Peripheral Component Interconnect）バス４を備えたパーソナルコンピュータ５と、ＰＣＩバス４に接続された画像処理ボード６とを備える。画像処理ボード６は、複数台のカメラからの画像データ全てを画素単位で格納できるだけの大容量を有した大容量画像メモリ８を備える。
【０００３】
さらに、画像処理ボード６は、複数台のカメラからの原画像データを大容量画像メモリ８に記憶させる処理、シェーディング補正処理、および原画像データを圧縮する画像圧縮処理などを行う。
【０００４】
具体的には、画像処理ボード６のＦＰＧＡ（Field Programmable Gate Array）１０は、カメラコントローラ９から順次転送される画像データをシェーディング補正処理し、シェーディング補正後の画像データの全てを大容量画像メモリ８に順次転送して同メモリに記憶させる処理を実行する。これらの処理と同時に、ＦＰＧＡ１０は、カメラコントローラ９から順次転送される画像データを圧縮して圧縮画像データを作成し、この圧縮画像データをＰＣＩバス４を通じてパーソナルコンピュータ５のメインメモリ３にＤＭＡ（Direct Memory Access）転送する。
【０００５】
ＣＰＵ２は、画像処理ボード６からＰＣＩバス４を通じてメインメモリ３へ転送される圧縮画像データに対して、２値化処理、ラベリング処理など、欠陥検出のためのソフトウェア処理を行う。
【０００６】
すなわち、画像処理装置１は、一部の処理を、画像処理ボード６によるハードウェア処理で行う。これによって、装置全体の処理速度を速くすることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２８３２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、常に正しい姿勢で検査対象物がカメラに撮像されるとは限らない。すなわち、傾いた状態で検査対象物がカメラに撮像される場合がある。この場合においては、上記の画像処理ボード６では、検査対象物の傾きを補正することができないという問題がある。これは、シェーディング補正後の画像データの全てを大容量画像メモリ８に順次転送すると同時に、順次転送される画像データを圧縮して圧縮画像データを圧縮して圧縮画像データを作成して、この圧縮画像データをＰＣＩバス４を通じてパーソナルコンピュータ５のメインメモリ３にＤＭＡ（Direct Memory Access）転送するためである。
【０００９】
そこで、本発明は、上記問題に鑑みて、傾いた状態で検査対象物をカメラで撮像したとしても、リアルタイムで検査対象物の傾きを補正することができる画像処理ボードを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係わる画像処理ボードは、下記に示す特徴を備える。
（ＣＬ１）本発明に係わる画像処理ボードは、（ａ）内部インターフェースを介してメインメモリとプロセッサとが接続されて、外部インターフェースを介してカメラが接続される画像処理ボードであって、（ｂ）前記カメラで検査対象物の画像をライン単位で順に取り込む画像取込処理を実行する画像取込手段と、（ｃ）前記検査対象物の傾きを正す方向に回転するように、前記検査対象物の画像をブロック単位で順に補正する画像補正処理を実行する画像補正手段と、（ｄ）前記補正後の画像を前記メインメモリに所定のサイズ単位で順に転送する画像転送処理を実行する画像転送手段と、（ｅ）前記画像補正処理を実行開始するにあたっての閾値となる画像の取り込みライン数である補正開始ライン数を記憶する補正開始パラメータ記憶手段と、（ｆ）前記画像転送処理を実行開始するにあたっての閾値となる画像の取り込みライン数である転送開始ライン数を記憶する転送開始パラメータ記憶手段と、（ｇ）前記検査対象物を撮像する命令を前記プロセッサから受けると、前記画像取込手段に前記画像取込処理を実行させて、前記補正開始ライン数以上のラインを取り込むと、前記画像取込処理に並行して、前記画像補正手段に前記画像補正処理を実行させて、前記転送開始ライン数以上のラインを取り込むと、前記画像取込処理に並行して、前記画像転送手段に前記画像転送処理を実行させる制御手段とを備える。
【００１１】
（ＣＬ２）上記（ＣＬ１）に記載の画像処理ボードは、（ａ）前記検査対象物の画像と前記補正後の画像とを記憶するフレームメモリと、（ｂ）前記フレームメモリに対するアクセスを調停するアクセス調停手段とを備え、（ｃ）（ｃ１）前記外部インターフェースから前記フレームメモリへのデータ伝送を第１のデータ伝送として、（ｃ２）前記フレームメモリから前記画像補正手段へのデータ伝送を第２のデータ伝送として、（ｃ３）前記画像補正手段から前記フレームメモリへのデータ伝送を第３のデータ伝送として、（ｃ４）前記フレームメモリから前記内部インターフェースへのデータ伝送を第４のデータ伝送とした場合において、（ｃ５）前記第４のデータ伝送よりも前記第１のデータ伝送を優先して、前記第２のデータ伝送と前記第３のデータ伝送とよりも前記第４のデータ伝送を優先するように、前記アクセス調停手段において、前記フレームメモリに対するアクセスが調停される。
【００１２】
なお、本発明は、画像処理ボードとして実現されるだけではなく、画像処理ボードを有する画像処理装置として実現されるとしてもよい。また、画像処理方法として実現されるとしてもよい。
【発明の効果】
【００１３】
本発明によれば、画像処理ボードにおいて、ラインセンサカメラで撮像された検査対象物の画像を、検査対象物の傾きを正すような補正をしながら、補正後の画像をメインメモリに転送する。これによって、傾いた状態で検査対象物をラインセンサカメラで撮像したとしても、リアルタイムで検査対象物の傾きを補正することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態における画像処理装置の構成を示す図である。
【図２】実施の形態における画像処理ボードの構成を示す図である。
【図３】実施の形態におけるデータ伝送と傾き補正との概要を示す図である。
【図４】実施の形態における画像処理ボードで実行される制御処理を示す図である。
【図５】実施の形態における画像処理ボードで実行される画像取込処理を示す図である。
【図６】実施の形態における画像処理ボードで実行される回転角度特定処理を示す図である。
【図７】実施の形態における画像処理ボードで実行される基準座標特定処理を示す図である。
【図８】実施の形態における画像処理ボードで実行される画像補正処理を示す図である。
【図９】実施の形態における画像処理ボードで実行される画像転送処理を示す図である。
【図１０】実施の形態における画像処理ボードで実行される各処理のタイミングチャートを示す図である。
【図１１】実施の形態における画像処理ボードで実行される各処理とデータ伝送との概要を示す図である。
【図１２】従来の画像処理装置の構成を示す図である。
【発明を実施するための形態】
【００１５】
（実施の形態）
以下、本発明に係わる実施の形態について説明する。
＜構成＞
図１に示すように、画像処理装置１００は、画像処理で検査対象物の欠陥を検出する装置である。具体的には、画像処理装置１００は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、ネットワークアダプタなどを備えるコンピュータシステムである。また、画像処理装置１００を制御するプログラム（以下、画像処理プログラムと呼称する。）がＨＤＤなどにインストールされており、画像処理プログラムがＣＰＵで実行されることによって、画像処理装置１００の各機能が実現される。
【００１６】
ここでは、一例として、画像処理装置１００では、バス１０１などを介して、ＣＰＵ１０２、メインメモリ１０３などに、画像処理ボード１０４が接続されている。画像処理ボード１０４にラインセンサカメラ１０５が接続されている。画像処理ボード１０４において、ラインセンサカメラ１０５で撮像されて得られた検査対象物の画像に対して検査対象物の傾きを正す補正を施しながら、補正後の画像をメインメモリ１０３に転送する。ＣＰＵ１０２において、メインメモリ１０３に記憶されている補正後の画像を使用して画像処理を実行して、検査対象物の欠陥を検出する。
【００１７】
なお、所定の間隔で画像を水平方向と垂直方向とに分割して得られた画像部分をブロックと呼称する。１画素を８ビット（１バイト）とする。
＜画像処理ボード１０４＞
画像処理ボード１０４は、画像処理装置１００のマザーボード（不図示）の拡張スロットに取り付けられて、ラインセンサカメラ１０５で撮像された画像を取り込むことができるカードである。ここでは、一例として、内部インターフェース１１１、外部インターフェース１１２、フレームメモリ１１３、ＦＰＧＡ（Field Programmable Gate Array）１１４などを備える。
【００１８】
＜内部インターフェース１１１＞
内部インターフェース１１１は、画像処理ボード１０４と内部デバイス（例えば、ＣＰＵ１０２、メインメモリ１０３など。）との間でデータ伝送を行うハードウェアインターフェースである。ここでは、一例として、ＰＣＩ（Peripheral Component Interconnect）仕様に準拠したハードウェアインターフェースとする。なお、ＰＣＩの代わりに、ＰＣＩ  Ｅｘｐｒｅｓｓ仕様に準拠したハードウェアインターフェースとしてもよい。
【００１９】
＜外部インターフェース１１２＞
外部インターフェース１１２は、画像処理ボード１０４とラインセンサカメラ１０５との間で送受信を行うハードウェアインターフェースである。ここでは、一例として、アナログ信号に対応したカメラインターフェースとする。なお、アナログ信号の代わりに、例えば、カメラリンクなどのように、デジタル信号に対応したカメラインターフェースとしてもよい。
【００２０】
＜フレームメモリ１１３＞
フレームメモリ１１３は、ラインセンサカメラ１０５で取り込まれた画像を記憶するメモリである。具体的には、フレームメモリ１１３は、ビット幅が６４ビット（８バイト）であり、作動周波数が２００［ＭＨｚ］であり、転送速度が１６００［ＭＢ／ｓ］である、容量が２５６［ＭＢ］であるＤＤＲ  ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）とする。常時有効に利用することができるように、最小アクセス単位が連続した２５６バイトであり、８つのバンクをインターリーブで動作させることができるようになっている。ここでは、一例として、図２に示すように、傾き補正前画像記憶部１３１、傾き補正後画像記憶部１３２などを備える。
【００２１】
＜傾き補正前画像記憶部１３１＞
傾き補正前画像記憶部１３１は、傾き補正前の画像を記憶する。ここでは、一例として、傾き補正前画像記憶部１３１に対しては、少なくとも、横６１４４［画素］×縦６１４４［ライン］の画像を記憶することができる記憶領域が確保されている。
【００２２】
＜傾き補正後画像記憶部１３２＞
傾き補正後画像記憶部１３２は、傾き補正後の画像を記憶する。ここでは、一例として、傾き補正後画像記憶部１３２に対しては、少なくとも、横６１４４［画素］×縦６１４４［ライン］の画像を記憶することができる記憶領域が確保されている。
【００２３】
＜ＦＰＧＡ１１４＞
ＦＰＧＡ１１４は、画像取込処理と画像補正処理と画像転送処理とを並列処理可能なプログラマブルロジックデバイスである。ここで、画像取込処理とは、ラインセンサカメラ１０５で撮像された検査対象物の画像をライン単位で順に取り込む処理である。画像補正処理は、検査対象物の傾きを正す方向に回転するように、画像取込処理で取り込んだ画像をブロック単位で順に補正する処理である。画像転送処理は、画像補正処理で検査対象物の傾きを補正して得られた画像をメインメモリ１０３に所定のサイズ単位で順に転送する処理である。
【００２４】
具体的には、図１に示すように、ＦＰＧＡ１１４は、メモリインターフェース１４１、ロジックセル１４２、ＳＲＡＭ１４３、ＲＡＭ１４４などを備える。ここでは、一例として、図２に示すように、補正前ブロック記憶部１５１、補正後ブロック記憶部１５２、補正開始パラメータ記憶部１５３、転送開始パラメータ記憶部１５４、入力バッファ部１５５、出力バッファ部１５６、制御部１６０、画像取込部１６１、画像補正部１６２、画像転送部１６３、アクセス調停部１６４などの各機能が定義されたコンフィグレーションデータがコンフィグレーションメモリ（不図示）にロードされることによって、各機能がＦＰＧＡ１１４に実現される。
【００２５】
＜補正前ブロック記憶部１５１＞
補正前ブロック記憶部１５１は、傾き補正前のブロックを一時的に記憶する。ここでは、一例として、補正前ブロック記憶部１５１に対しては、少なくとも、補正対象に対応する部分の周辺も含めた画像部分を記憶することができる記憶領域が確保されている。具体的には、横２８８［画素］×縦５６［ライン］のブロックの周辺も記憶することができるように、６４［ＫＢ］の記憶領域が確保されている。
【００２６】
＜補正後ブロック記憶部１５２＞
補正後ブロック記憶部１５２は、傾き補正後のブロックを一時的に記憶する。ここでは、一例として、補正後ブロック記憶部１５２に対しては、少なくとも、補正対象に対応する画像部分を記憶することができる記憶領域が確保されている。具体的には、横２８８［画素］×縦５６［ライン］のブロックを記憶することができるように、１６［ＫＢ］の記憶領域が確保されている。
【００２７】
＜補正開始パラメータ記憶部１５３＞
補正開始パラメータ記憶部１５３は、画像補正処理を実行開始するにあたっての閾値となる画像のライン数（以下、補正開始ライン数と呼称する。）を記憶する。ここでは、少なくとも、検査対象物の傾きを特定することができるライン数以上である。
【００２８】
＜転送開始パラメータ記憶部１５４＞
転送開始パラメータ記憶部１５４は、画像転送処理を実行開始するにあたっての閾値となる画像のライン数（以下、転送開始ライン数と呼称する。）を記憶する。
【００２９】
＜入力バッファ部１５５＞
入力バッファ部１５５は、外部インターフェース１１２から出力されたデータを、先入れ先出し方式で、一時的に記憶して、アクセス調停部１６４に出力する。
【００３０】
＜出力バッファ部１５６＞
出力バッファ部１５６は、アクセス調停部１６４から出力されたデータを、先入れ先出し方式で、一時的に記憶して、内部インターフェース１１１に出力する。
【００３１】
＜制御部１６０＞
制御部１６０は、画像取込部１６１、画像補正部１６２、画像転送部１６３を制御して、画像取込処理、画像補正処理、画像転送処理を並行して実行させる。具体的には、制御部１６０は、内部インターフェース１１１を介してＣＰＵ１０２から、検査対象物を撮像する命令（以下、撮像命令と呼称する。）を受けると、取込を開始する指令（以下、取込開始指令と呼称する。）を画像取込部１６１に出し、画像取込部１６１に画像取込処理を実行させる。また、画像補正処理実行条件を満たすと、先頭から順に、ブロック単位で、補正を開始する指令（以下、補正開始指令と呼称する。）を画像補正部１６２に出し、画像取込処理に並行して、画像補正部１６２に画像補正処理を実行させる。また、画像転送処理実行条件を満たすと、傾き補正後の画像の転送を開始する指令（以下、傾き補正後画像転送開始指令と呼称する。）を画像転送部１６３に出し、画像取込処理と画像補正処理とに並行して、画像転送部１６３に画像転送処理を実行させる。
【００３２】
ここでは、画像補正処理実行条件は、回転角度が特定されることとする。画像転送処理実行条件は、転送開始パラメータ記憶部１５４に記憶されている転送開始ライン数以上のラインが取り込まれることとする。
【００３３】
なお、制御部１６０は、補正開始パラメータ記憶部１５３に記憶されている補正開始ライン数以上のラインが取り込まれると、検査対象物の傾きを特定することができる部分まで傾き補正前の画像の転送を開始する指令（以下、傾き補正前画像転送開始指令と呼称する。）を画像転送部１６３に出し、画像取込処理に並行して、画像転送部１６３に傾き補正前の画像に対する画像転送処理を実行させる。さらに、検査対象物の傾きを特定することができる部分まで傾き補正前の画像がメインメモリ１０３に転送されると、内部インターフェース１１１を介してＣＰＵ１０２に回転角度特定命令を出す。これに伴い、ＣＰＵ１０２から内部インターフェース１１１を介して回転角度を受けると、受けた回転角度を画像補正部１６２に転送する。
【００３４】
このとき、ＣＰＵ１０２は、制御部１６０からバス１０１を介して回転角度特定命令を受けると、メインメモリ１０３に記憶されている傾き補正前の画像の部分から、検査対象物のエッジを検出して、検出したエッジから検査対象物の傾きを特定する。特定した傾きから、検査対象物の傾きを正す回転角度を特定する。特定した回転角度を、バス１０１を介して制御部１６０に転送する。
【００３５】
また、制御部１６０は、ブロック単位で画像補正処理が実行される度に、内部インターフェース１１１を介してＣＰＵ１０２に基準座標特定命令を出す。これに伴い、ＣＰＵ１０２から内部インターフェース１１１を介して基準座標を受けると、受けた基準座標を画像補正部１６２に転送する。
【００３６】
このとき、ＣＰＵ１０２は、制御部１６０からバス１０１を介して基準座標特定命令を受けると、検出したエッジ、特定した回転角度、ブロックのサイズ、ブロックから抽出される画像部分のサイズなどから、次に画像補正処理が実行されるブロックに係わる基準座標を特定する。特定した基準座標を、バス１０１を介して制御部１６０に転送する。
【００３７】
ここで、基準座標とは、読出基準アドレスと、抽出基準アドレスと、書込基準アドレスとからなるものである。読出基準アドレスとは、傾き補正前画像記憶部１３１から読み出す画像部分の読み出し開始アドレスである。抽出基準アドレスとは、補正前ブロック記憶部１５１に記憶されている画像部分から抽出される画像部分の基準点となるアドレスである。書込基準アドレスとは、傾き補正後画像記憶部１３２に書き込む画像部分の書き込み開始アドレスである。
【００３８】
＜画像取込部１６１＞
画像取込部１６１は、外部インターフェース１１２とアクセス調停部１６４とを制御して、画像取込処理を実行する。具体的には、制御部１６０から取込開始指令を受けると、外部インターフェース１１２を制御して、ラインセンサカメラ１０５を使用して、検査対象物の画像をライン単位で取り込む。アクセス調停部１６４を制御して、ライン単位で取り込んだ検査対象物の画像を傾き補正前画像記憶部１３１に書き込む。このとき、ラインセンサカメラ１０５の駆動クロックに合わせて、アクセス調停部１６４に取込命令を出力する。
【００３９】
ここで、取込命令は、入力バッファ部１５５からデータを取り出して傾き補正前画像記憶部１３１に書き込むコマンドと、書き込み先のアドレスとを含む命令である。
＜画像補正部１６２＞
画像補正部１６２は、アクセス調停部１６４を制御して、画像補正処理を実行する。具体的には、制御部１６０から補正開始指令を受けると、図３に示すように、アクセス調停部１６４を制御して、傾き補正前の画像を、ブロック単位で、傾き補正前画像記憶部１３１から読み出す。このとき、制御部１６０から転送された基準座標の読出基準アドレス（図３に示す傾き補正前画像記憶部１３１の黒丸のアドレス）に基づいてリード命令を生成し、生成したリード命令をアクセス調停部１６４に出力する。
【００４０】
ここで、リード命令は、傾き補正前画像記憶部１３１からデータを読み出して補正前ブロック記憶部１５１に書き込むコマンドと、読出基準アドレスによって特定される読み出し先のアドレスとを含む命令である。
【００４１】
さらに、画像補正部１６２は、制御部１６０から転送された基準座標の抽出基準アドレス（図３に示す補正前ブロック記憶部１５１の黒丸のアドレス）に基づいて、ブロック単位で読み出した画像部分から、補正対象に対応する画像部分を抽出する。抽出した画像部分を、制御部１６０から転送された回転角度で回転させる。アクセス調停部１６４を制御して、傾きを正した位置に配置されるように、回転させて得られた画像部分を傾き補正後画像記憶部１３２に書き込む。このとき、制御部１６０から転送された基準座標の書込基準アドレス（図３に示す傾き補正後画像記憶部１３２の黒丸のアドレス）に基づいてライト命令を生成し、生成したライト命令をアクセス調停部１６４に出力する。
【００４２】
ここで、ライト命令は、補正後ブロック記憶部１５２からデータを読み出して傾き補正後画像記憶部１３２に書き込むコマンドと、書込基準アドレスによって特定される書き込み先のアドレスとを含む命令である。
【００４３】
＜画像転送部１６３＞
画像転送部１６３は、内部インターフェィス１１１とアクセス調停部１６４とを制御して、画像転送処理を実行する。具体的には、制御部１６０から傾き補正後画像転送開始指令を受けると、アクセス調停部１６４を制御して、傾き補正後の画像を、先頭から順に、所定のサイズ単位で、傾き補正後画像記憶部１３２から読み出す。内部インターフェース１１１を制御して、所定のサイズ単位で読み出した画像部分をメインメモリ１０３に転送する。このとき、画像を取り込む合間を見計らって、アクセス調停部１６４に傾き補正後画像転送命令を出す。
【００４４】
ここで、傾き補正後画像転送命令は、傾き補正後画像記憶部１３２からデータを読み出して出力バッファ部１５６に出力するコマンドと、読み出し先のアドレスとを含む命令である。
【００４５】
なお、画像転送部１６３は、制御部１６０から傾き補正前画像転送開始指令を受けると、アクセス調停部１６４を制御して、検査対象物の傾きを特定することができる部分まで傾き補正前の画像を、先頭から順に、所定のサイズ単位で、傾き補正前画像記憶部１３１から読み出す。内部インターフェース１１１を制御して、所定のサイズ単位で読み出した画像部分をメインメモリ１０３に転送する。このとき、画像を取り込む合間を見計らって、アクセス調停部１６４に傾き補正前画像転送命令を出す。
【００４６】
ここで、傾き補正前画像転送命令は、傾き補正前画像記憶部１３１からデータを読み出して出力バッファ部１５６に出力するコマンドと、読み出し先のアドレスとを含む命令である。
【００４７】
＜アクセス調停部１６４＞
アクセス調停部１６４は、フレームメモリ１１３に対するアクセスを調停する。ここでは、一例として、４［ＫＢ］のデータを最小単位として、下記（ａ），（ｂ），（ｃ）の順に優先して、アクセスを調停する。
【００４８】
（ａ）アクセス調停部１６４は、画像取込部１６１から取込命令を受けると、入力バッファ部１５５からデータを取り出す。取り出したデータを傾き補正前画像記憶部１３１に書き込む。このとき、取込命令によって特定されるアドレスにデータを書き込む。
【００４９】
（ｂ）アクセス調停部１６４は、（ｂ１）画像転送部１６３から傾き補正後画像転送命令を受けると、傾き補正後画像記憶部１３２から傾き補正後画像のデータを読み出す。読み出した傾き補正後画像のデータを出力バッファ部１５６に出力する。このとき、傾き補正後画像転送命令によって特定されるアドレスから傾き補正後画像のデータを読み出す。また、（ｂ２）画像転送部１６３から傾き補正前画像転送命令を受けると、傾き補正前画像記憶部１３１から傾き補正前画像のデータを読み出す。読み出した傾き補正前画像のデータを出力バッファ部１５６に出力する。このとき、傾き補正前画像転送命令によって特定されるアドレスから傾き補正前画像のデータを読み出す。
【００５０】
（ｃ）アクセス調停部１６４は、（ｃ１）画像補正部１６２からリード命令を受けると、傾き補正前画像記憶部１３１からデータを読み出す。読み出したデータを補正前ブロック記憶部１５１に書き込む。このとき、リード命令によって特定されるアドレスからデータを読み出す。また、（ｃ２）画像補正部１６２からライト命令を受けると、補正後ブロック記憶部１５２からデータを読み出す。読み出したデータを傾き補正後画像記憶部１３２に書き込む。このとき、ライト命令によって特定されるアドレスにデータを書き込む。
【００５１】
＜ラインセンサカメラ１０５＞
ラインセンサカメラ１０５は、複数の画素を一列に配置された撮像素子を有する産業用カメラである。アナログインターフェースに対応した産業用カメラ（以下、アナログカメラと呼称する。）、またはデジタルインターフェースに対応した産業用カメラ（以下、デジタルカメラと呼称する。）である。ここでは、一例として、最大データレートが８０［ＭＨｚ］であり、最大有効画素数が６１４４［画素］であるデジタルカメラとする。なお、デジタルカメラの代わりに、最大ビデオレートが４０［ＭＨｚ］であり、最大有効画素数が６１４４［画素］であるアナログカメラとしてもよい。
【００５２】
＜補足＞
なお、ラインセンサカメラ１０５がデジタルカメラである場合には、ラインセンサカメラ１０５からパケットが出力される。ラインセンサカメラ１０５から出力されたパケットが、入力バッファ部１５５を介して、アクセス調停部１６４にデータとして出力される。アクセス調停部１６４に出力されたデータが傾き補正前画像記憶部１３１に書き込まれる。
【００５３】
また、ラインセンサカメラ１０５がアナログカメラである場合には、ラインセンサカメラ１０５からビデオ信号が出力される。ラインセンサカメラ１０５から出力されたビデオ信号が外部インターフェース１１２でＡ／Ｄ変換される。Ａ／Ｄ変換されて得られたデータが、入力バッファ部１５５を介して、アクセス調停部１６４に出力される。アクセス調停部１６４に出力されたデータが傾き補正前画像記憶部１３１に書き込まれる。
【００５４】
＜動作＞
次に、画像処理装置１００の動作について説明する。ここでは、画像処理ボード１０４の制御処理について説明する。
【００５５】
＜制御処理＞
まず、制御部１６０で実行される制御処理について説明する。
図４に示すように、制御部１６０は、内部インターフェース１１１を介してＣＰＵ１０２から撮像命令を受けると（Ｓ１０１：ＹＥＳ）、画像取込部１６１に画像取込処理を実行させる（Ｓ１０２）。補正開始パラメータ記憶部１５３に記憶されている補正開始ライン数以上のラインが取り込まれると（Ｓ１０３：ＹＥＳ）、画像取込処理に並行して、回転角度特定処理を実行する（Ｓ１０４）。回転角度が特定されると、先頭から順に、ブロック単位で、基準座標特定処理を実行して（Ｓ１０５）、画像補正部１６２に画像補正処理を実行させる（Ｓ１０６）。画像の全エリアが補正されるまで（Ｓ１０７：ＮＯ）、処理Ｓ１０５，Ｓ１０６を繰り返し実行する。転送開始パラメータ記憶部１５４に記憶されている転送開始ライン数以上のラインが取り込まれると（Ｓ１０８：ＹＥＳ）、画像取込処理と画像補正処理とに並行して、画像転送部１６３に画像転送処理を実行させる（Ｓ１０９）。
【００５６】
＜画像取込処理＞
次に、画像取込部１６１で実行される画像取込処理について説明する。
図５に示すように、画像取込部１６１は、外部インターフェース１１２を制御して、ラインセンサカメラ１０５で検査対象物の画像をライン単位で取り込む（Ｓ１１１）。アクセス調停部１６４を制御して、ラインセンサカメラ１０５で取り込んだ検査対象物の画像を傾き補正前画像記憶部１３１に書き込む（Ｓ１１２）。撮像対象範囲の全エリアが傾き補正前画像記憶部１３１に記憶されるまで（Ｓ１１３：ＮＯ）、処理Ｓ１１１、Ｓ１１２を繰り返し実行する。撮像対象範囲の全エリアが記憶されると（Ｓ１１３：ＹＥＳ）、画像取込処理を終了する。
【００５７】
＜回転角度特定処理＞
次に、制御部１６０とＣＰＵ１０２との間で実行される回転角度特定処理について説明する。
【００５８】
図６に示すように、制御部１６０は、傾き補正前画像転送開始指令を画像転送部１６３に出す（Ｓ１２１）。さらに、検査対象物の傾きを特定することができる部分まで傾き補正前の画像がメインメモリ１０３に転送されると（Ｓ１２２）、内部インターフェース１１１を介してＣＰＵ１０２に回転角度特定命令を出す（Ｓ１２３）。これに伴い、ＣＰＵ１０２から内部インターフェース１１１を介して回転角度を受けると（Ｓ１２６）、受けた回転角度を画像補正部１６２に転送する（Ｓ１２７）。
【００５９】
このとき、ＣＰＵ１０２は、制御部１６０からバス１０１を介して回転角度特定命令を受けると（Ｓ１２３）、メインメモリ１０３に記憶されている傾き補正前の画像の部分から、検査対象物のエッジを検出して（Ｓ１２４）、検出したエッジから検査対象物の傾きを特定する。特定した傾きから、検査対象物の傾きを正す回転角度を特定する（Ｓ１２５）。特定した回転角度を、バス１０１を介して制御部１６０に転送する（Ｓ１２６）。
【００６０】
＜基準座標特定処理＞
次に、制御部１６０とＣＰＵ１０２との間で実行される基準座標特定処理について説明する。
【００６１】
図７に示すように、制御部１６０は、ブロック単位で画像補正処理が実行される度に、内部インターフェース１１１を介してＣＰＵ１０２に基準座標特定命令を出す（Ｓ１３１）。これに伴い、ＣＰＵ１０２から内部インターフェース１１１を介して基準座標を受けると（Ｓ１３３）、受けた基準座標を画像補正部１６２に転送する（Ｓ１３４）。
【００６２】
このとき、ＣＰＵ１０２は、制御部１６０からバス１０１を介して基準座標特定命令を受けると（Ｓ１３１）、検出したエッジ、特定した回転角度、ブロックのサイズ、ブロックから抽出される画像部分のサイズなどから、次に画像補正処理が実行されるブロックに係わる基準座標を特定する（Ｓ１３２）。特定した基準座標を、バス１０１を介して制御部１６０に転送する（Ｓ１３３）。
【００６３】
＜画像補正処理＞
次に、画像補正部１６２で実行される画像補正処理について説明する。
図８に示すように、画像補正部１６２は、制御部１６０から転送された基準座標の読出基準アドレスに基づいて、アクセス調停部１６４を制御して、傾き補正前の画像を、ブロック単位で、傾き補正前画像記憶部１３１から読み出す（Ｓ１４１）。ブロック単位で読み出した画像部分から、補正対象に対応する画像部分を抽出する（Ｓ１４２）。抽出した画像部分を、制御部１６０から転送された回転角度で回転させる（Ｓ１４３）。制御部１６０から転送された基準座標の書込基準アドレスに基づいて、アクセス調停部１６４を制御して、傾きを正した位置に配置されるように、回転させて得られた画像部分を傾き補正後画像記憶部１３２に書き込み（Ｓ１４４）、画像補正処理を終了する。
【００６４】
＜画像転送処理＞
次に、画像転送部１６３で実行される画像転送処理について説明する。
図９に示すように、画像転送部１６３は、アクセス調停部１６４を制御して、傾き補正後の画像を、先頭から順に、所定のサイズ単位で、傾き補正後画像記憶部１３２から読み出す（Ｓ１５１）。内部インターフェース１１１を制御して、所定のサイズ単位で読み出した画像部分をメインメモリ１０３に転送する（Ｓ１５２）。このとき、１ライン分のデータが取り込まれる度に、１ライン分のデータがメインメモリ１０３に転送される。傾き補正後の画像の全エリアがメインメモリ１０３に転送されるまで（Ｓ１５３：ＮＯ）、処理Ｓ１５１，Ｓ１５２を繰り返し実行する。傾き補正後の画像の全エリアが転送されると（Ｓ１５３：ＹＥＳ）、画像転送処理を終了する。
【００６５】
＜具体例＞
ここで、図２に示すように、外部インターフェース１１２から、入力バッファ部１５５、アクセス調停部１６４を介して、傾き補正前画像記憶部１３１までのデータ伝送をデータ伝送Ａとする。傾き補正前画像記憶部１３１から、アクセス調停部１６４を介して、補正前ブロック記憶部１５１までのデータ伝送をデータ伝送Ｂとする。補正後ブロック記憶部１５２から、アクセス調停部１６４を介して、傾き補正後画像記憶部１３２までのデータ伝送をデータ伝送Ｃとする。傾き補正後画像記憶部１３２から、アクセス調停部１６４、出力バッファ部１５６を介して、内部インターフェース１１１までのデータ伝送をデータ伝送Ｄとする。
【００６６】
さらに、ラインセンサカメラ１０５から外部インターフェース１１２へのデータ伝送速度を最大８０［ＭＢ／ｓ］とする。データ伝送Ａ，Ｂ，Ｃ，Ｄの各データ伝送速度を１６００［ＭＢ／ｓ］とする。内部インターフェース１１１からＣＰＵ１０２やメインメモリ１０３などの内部デバイスへのデータ伝送速度を最大１３３［ＭＢ／ｓ］とする。傾き補正前画像記憶部１３１から補正前のブロックを読み出してから補正後のブロックを傾き補正後画像記憶部１３２に書き込むまでの処理速度を１２３［ＭＢ／ｓ］とする。
【００６７】
このとき、図１０に示すように、画像取込開始から画像補正開始まで、少なくとも、約３５０［ＫＢ］（６１４４［画素］×５６［ライン］）の画像が取り込まれる。約３５０［ＫＢ］の画像を取り込むまでに、約４［ｍｓ］（３５０［ＫＢ］／８０［ＭＢ／ｓ］）の時間が掛かる。約３５０［ＫＢ］の画像を補正するまでに、約３［ｍｓ］（３５０［ＫＢ］／１２３［ＭＢ／ｓ］）の時間が掛かる。画像取込開始から画像転送開始まで、少なくとも、約７［ｍｓ］の時間が掛かる。
【００６８】
これは、約９０［ライン］（７［ｍｓ］×８０［ＭＢ／ｓ］／６１４４［画素］）の画像を取り込むことに相当する。そこで、補正開始パラメータ記憶部１５３に記憶されている補正開始ライン数を５６［ライン］とする。転送開始パラメータ記憶部１５４に記憶されている転送開始ライン数を９０［ライン］とする。
【００６９】
さらに、６１４４［画素］×６１４４［ライン］の画像を取り込んだとする。この場合において、取り込み時間が４７０［ｍｓ］（６１４４［画素］×６１４４［ライン］／８０［ＭＢ／ｓ］）である。オーバヘッドが１．５％（７［ｍｓ］／４７０［ｍｓ］）である。このことから、画像取込開始から画像転送開始までに要する時間は、ほとんど無視できる値である。
【００７０】
さらに、図１１に示すように、画像取込部１６１、画像補正部１６２、画像転送部１６３の各々は、同じ量のデータを処理しているとする。また、データ伝送Ａ＞データ伝送Ｄ＞データ伝送Ｂ，Ｃの優先順位で、フレームメモリ１１３をアクセスすることができるように、アクセス調停部１６４が設定されているとする。この場合において、フレームメモリ１１３へのアクセスが時分割で発生しても、フレームメモリ１１３へのアクセスが滞ることなく、一画面取り込み終了時には、メインメモリ１０３に傾き補正後の画像が転送されている。
【００７１】
＜まとめ＞
以上、本実施の形態によれば、画像処理ボード１０４において、ラインセンサカメラ１０５で撮像された検査対象物の画像を、検査対象物の傾きを正すような補正をしながら、補正後の画像をメインメモリ１０３に転送する。これによって、傾いた状態で検査対象物をラインセンサカメラ１０５で撮像したとしても、リアルタイムで検査対象物の傾きを補正することができる。
【産業上の利用可能性】
【００７２】
本発明は、画像処理で検査対象物の欠陥を検出する画像処理装置の画像処理ボードなどとして、利用することができる。
【符号の説明】
【００７３】
１  画像処理装置
２  ＣＰＵ
３  メインメモリ
４  ＰＣＩバス
５  パーソナルコンピュータ
６  画像処理ボード
８  大容量画像メモリ
９  カメラコントローラ
１０  ＦＰＧＡ
１００  画像処理装置
１０１  バス
１０２  ＣＰＵ
１０３  メインメモリ
１０４  画像処理ボード
１０５  ラインセンサカメラ
１１１  内部インターフェース
１１２  外部インターフェース
１１３  フレームメモリ
１１４  ＦＰＧＡ
１３１  傾き補正前画像記憶部
１３２  傾き補正後画像記憶部
１４１  メモリインターフェース
１４２  ロジックセル
１４３  ＳＲＡＭ
１４４  ＲＡＭ
１５１  補正前ブロック記憶部
１５２  補正後ブロック記憶部
１５３  補正開始パラメータ記憶部
１５４  転送開始パラメータ記憶部
１５５  入力バッファ部
１５６  出力バッファ部
１６０  制御部
１６１  画像取込部
１６２  画像補正部
１６３  画像転送部
１６４  アクセス調停部
【図１】
2011018248.tif 000003
【図２】
2011018248.tif 000004
【図３】
2011018248.tif 000005
【図４】
2011018248.tif 000006
【図５】
2011018248.tif 000007
【図６】
2011018248.tif 000008
【図７】
2011018248.tif 000009
【図８】
2011018248.tif 000010
【図９】
2011018248.tif 000011
【図１０】
2011018248.tif 000012
【図１１】
2011018248.tif 000013
【図１２】
2011018248.tif 000014