以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成、ならびに当該構成によってもたらされる作用および結果(効果)は、あくまで一例である。本発明は、以下の実施形態に開示される構成以外によっても実現可能であるとともに、基本的な構成によって得られる種々の効果(派生的な効果も含む)を得ることが可能である。
本実施形態では、一例として、図1,3に示される画像処理装置1は、図1,2に示される検査対象物100を撮像した画像に基づいて、当該検査対象物100の検査対象面101(101S,101T)の検査を行う。画像処理装置1は、外観検査装置、画像処理システム、外観検査システムとも称され得る。また、図3に示されるように、本実施形態では、画像処理装置1は、二つの装置11,12を備える。また、画像処理装置1は、光源2や、撮像部3、回転部4、回転検出部5、出力部6等を備える。装置11は、例えばパーソナルコンピュータとして構成される。装置12は、例えば演算ボード(演算処理ユニット)は演算処理装置として構成される。
図1,2に示されるように、光源2は、ライトシートLS(シート状の光、平坦なカーテン状の光、スリット光)を出射し、検査対象面101に線状の光Lを照射する。光源2は、例えば、輝線照射用のレーザ光源等である。ライトシートLSは、例えば、レーザーライトシートである。撮像部3は、ライトシートLSと交叉する方向から検査対象領域Aを含む検査対象面101上の二次元領域を撮像する。
光源2は、検査対象面101の法線方向(図2の紙面と垂直な方向)と検査対象面101上の線状の光L(検査対象領域A)の幅方向(図2中のX方向)との間の斜め方向(斜め上方向)から、線状の検査対象領域Aを照らしている。検査対象面101が平面であった場合、検査対象面101上の光L(輝線)は直線状である。しかしながら、検査対象面101が凸部を有していた場合、検査対象面101が平面であった場合の光Lを基準線R(直線、基準位置)とすると、当該凸部に当たった光Lは、基準線Rから光源2側(光源2に近い側)にずれる。また、逆に、検査対象面101が凹部を有していた場合、当該凹部に当たった光Lは、基準線Rから光源2とは反対側(光源2から遠い側)にずれる。すなわち、撮像部3で撮像した画像中の光Lの位置(形状、基準線Rからのずれ)によって、検査対象面101の凹凸ならびに当該凹凸の程度(凸部の高さ、凹部の深さ、法線方向における位置)を判別することができる。なお、ライトシートLSの出射方向ならびに撮像部3による撮像方向は、種々に設定することが可能である。
撮像部3は、ライトシートLSと交叉した方向であり、かつ検査対象面101の上方(本実施形態では、一例として法線方向に離れた位置)から、少なくとも検査対象領域Aにおける光Lの画像を撮像する。撮像部3は、例えば、二次元に配列された光電変換素子(光電変換部)を有したエリアセンサ(固体撮像素子、例えば、CCD(charge coupled device)イメージセンサや、CMOS(complementary metal oxide semiconductor)イメージセンサ等)である。
回転部4(搬送部、搬送装置)は、検査対象物100を図2中のX方向(検査対象物100の周方向、移動方向、搬送方向)に搬送し、検査対象面101における検査対象領域Aを移動させる。これにより、検査対象面101の二次元領域について、データが取得される。なお、検査対象物100が固定され、光源2や撮像部3等が検査対象面101に沿って移動する構成(搬送装置によって動かされる構成)であってもよい。また、Y方向は、線状の光Lが延びる方向である。
また、画像処理装置1を構成する装置11は、図3に示されるように、制御部70(例えばCPU(central processing unit)等)や、ROM71(read only memory)、RAM72(random access memory)、補助記憶装置73、コントローラ74a〜74e、送受信部75等を備える。補助記憶装置73は、書き換え可能な不揮発性の記憶装置であって、例えばHDD(hard disk drive)や、SSD(solid state drive)、フラッシュメモリ等である。コントローラ74aは、制御部70からの制御信号に基づいて、光源2の発光(オン、オフ)等を制御する。コントローラ74bは、制御部70からの制御信号に基づいて、撮像部3による撮像を制御する。コントローラ74cは、制御部70から受けた制御信号に基づいて、回転部4を制御し、検査対象物100の搬送(開始、停止、速度等)を制御する。コントローラ74dは、回転検出部5の検出結果を受け取って、制御部70に当該検出結果に基づくデータ(信号)を送る。コントローラ74eは、制御部70からの制御信号に基づいて、出力部6(例えば、表示出力装置や音声出力装置)を制御する。表示出力装置(表示装置)は、例えばLCD(liquid crystal display)や、OELD(organic electroluminescent display)等である。音声出力装置は、例えばスピーカである。送受信部75は、装置11,12間でのデータの授受(送受信)を実行する。送受信部75は、例えば通信インタフェースである。また、装置11は、入力部(例えば、キーボードや、つまみ、操作ボタン、タッチパネル等)を備えてもよい。また、制御部70は、不揮発性の記憶部としてのROM71や補助記憶装置73等にインストールされたプログラム(アプリケーション)を読み出して実行する。RAM72は、制御部70がプログラムを実行して種々の演算処理を実行する際に用いられる各種データを一時的に記憶する。なお、図3に示されるハードウエアの構成はあくまで一例であって、例えばチップやパッケージにする等、種々に変形して実施することが可能である。また、各種演算処理は、並列処理することが可能であり、制御部70等は、並列処理が可能なハードウエア構成とすることが可能である。
また、制御部70は、ハードウエアとソフトウエア(プログラム)との協働によって、画像処理装置1の少なくとも一部として機能(動作)する。すなわち、制御部70は、図4に示されるように、撮像制御部70aや、疑似画像データ生成部70b、位相検出部70c、区間決定部70d、マッチング処理部70e、良否判定部70f、出力制御部70g、送受信制御部70h等として機能する。プログラムには、図4の制御部70内に示される各部に対応したモジュールが含まれる。なお、図示された各部(モジュール)はあくまで一部であって、プログラムには、図4には示されない他の機能を実現するためのモジュールも含まれており、制御部70は当該モジュールに対応した機能も実現することができる。なお、位相とは、検査対象物100(検査対象面101)が周期的な形状を有する場合における、基準位置から始まる周期での位置である。図1に示されるように、検査対象物100がタイヤのような環状の物体である場合、位相は、例えば0〜360deg(0〜2πrad)の角度で示される。検査対象物100の異なる検査対象面101S,101Tでの基準位置は、例えば、回転中心Ax(図1参照)を通る基準面(図示されず)上の位置(線、基準線R、検査対象領域A)である。
画像処理装置1を構成する装置12は、図3に示されるように、互いに並列で演算可能な複数の演算部80a〜80cを備えている。演算部80a〜80cは、例えば、CPU(コア)や、プログラマブルロジックデバイス(PLD:programmable logic device、例えば、FPGA(field-programmable gate array)や、CPLD(complex programmable logic device)等)、ASIC(application specific integrated circuit)等である。演算部80a〜80cは、画像処理部(第一の画像処理部、第二の画像処理部)の一例である。装置12は、並列で比較的(装置11より)高速な演算処理が可能である。装置12は、記憶部81と送受信部82とを備える。記憶部81は、演算部80a〜80cによる演算処理で用いられるデータを記憶する。記憶部81は、書き換え可能な不揮発性の記憶装置であって、例えばHDDや、SSD、フラッシュメモリ等である。送受信部82は、装置11,12間でのデータの授受(送受信)を実行する。送受信部82は、例えば通信インタフェースである。なお、演算部80a〜80cの数は、三つには限定されない。また、装置12は、演算部80a〜80cに対応したメモリや補助記憶装置等(図示されず)を有することができる。
図1に示されるように検査対象物100が例えばタイヤである場合、制御部70の撮像制御部70a(図4参照)は、例えば、1周を所定角度(角度ステップ)毎に分割した複数の検査対象領域Aが撮像されるよう、回転検出部5の検出結果を参照しながら撮像部3と回転部4とを制御する。また、撮像制御部70aは、タイヤの三つの検査対象面101(101S,101T,101S)の撮像が並行して実行されるよう、三つの撮像部3を制御する。検査対象物100がタイヤである場合、撮像制御部70aは、例えば、タイヤの2周分(720°、2回転分)の検査対象面101の撮像を実行する。
また、制御部70の疑似画像データ生成部70bは、複数の検査対象領域A(図2参照)の各点(検査対象領域Aの長手方向(Y方向)の各点)に対応した光Lの画像の基準線R(基準位置)からのずれに応じて当該各点での輝度値を決定することにより、二次元の疑似画像データを生成する。輝度値は、検査対象領域Aの各点の高さに応じた値となる。例えば、疑似画像データ生成部70bは、各位置での基準線Rから光源2に近い側へのずれが大きいほど輝度値を高く設定し(画素(点)を明るくし)、光源2から遠い側へのずれが大きいほど輝度値を低く設定する(画素を暗くする)。これにより、疑似画像は、検査対象領域Aの二次元の外観に近い画像となる。疑似画像は、検査対象面101の凹凸の状態(大きさや、位置等)を視覚的に判断しやすいという利点も有している。
疑似画像データImは、図5に例示されるように、検査対象領域Aの各点P(画素)での輝度値(高さデータ)がI方向およびJ方向の二次元に配列された二次元の画像データである。I方向はX方向に対応し、J方向はY方向に対応する。すなわち、疑似画像データImは、図2のX方向に対応したI方向にm個、図2のY方向に対応したJ方向にn個の、合計m×n個の各点P(画素)について輝度値を有した二次元の画像データであって、J方向(一方向)に沿った線状の画像データ(図5の縦方向に沿ったn個の画素群)の所定数(m個)の列がI方向(一方向の直交方向)に沿って並べられた二次元の画像データである。疑似画像データ生成部70bは、検査対象領域Aに対応して撮像部3から得られた二次元画像(線状の光Lを含む画像)を画像処理し、検査対象領域Aの各点Pに対応した輝度値(高さデータ)を取得する。疑似画像データ生成部70bは、撮像部3で線状の検査対象領域Aに対応した撮像が実行されるたびに、疑似画像データ(線状の画像データ)を生成する。図5には、検査対象物100としてのタイヤの2周分の疑似画像データImの画素の配列が示されている。検査対象物100としてのタイヤは、曲面(円環状の平面ならびに円筒面)であるが、疑似画像データImは、画像処理上は、二次元の平面的な画像データとして処理されうる。なお、疑似画像データの生成は、検査対象領域A毎に順次行われる。よって、I方向は時間方向にも相当する。
画像処理装置1は、例えば、図6に示される手順で、処理を実行する。制御部70は、まずは撮像および前処理を行う(S10)。S10で、前処理は、画像処理の一例であって、具体的には、例えば、フィルタ処理(ゴミ除去処理、穴埋め処理、平滑化処理等)である。S10により、前処理された疑似画像データが得られる。次に、制御部70は、マッチング処理部70eとして機能し、S10で得られた疑似画像データと基準となる疑似画像データとしてのマスタデータとの位置合わせを行う(S11)。S11で、位置合わせは、例えば、検査対象物100の疑似画像データと対応するマスタデータとのI方向およびJ方向の位置合わせ(位置決め)である。S11では、スケーリング(拡大あるいは縮小)が行われてもよい。次に、制御部70は、良否判定部70fとして機能し、互いに位置決めされた検査対象物100の疑似画像データとマスタデータとを比較し、良否判定を行う(S12)。S12では、例えば、画素毎に輝度値が比較され、輝度値の差が大きい画素の集合が一定(閾値以上)の広さを有していた場合に、当該集合が不良領域と判定される。次に、制御部70は、出力制御部70gとして機能し、良否判定の結果が出力されるよう、出力部6を制御する(S13)。S13では、例えば、出力部6としての表示出力装置の画面に、不良と判定された箇所に対応した表示要素を含む疑似画像データが表示される。不良と判定された箇所に対応した表示要素は、例えば、他の部分(不良と判定されなかった箇所)とは異なる態様で表示され、具体的には、目立つ色(例えば、黄色や赤色等)で色付けされた画素群(領域)や、線、図形、記号、文字、数字等である。
図6のS10の撮像および前処理は、例えば、図7,8に示される手順で実行される。図7に示される処理は、装置11で実行される。まず、制御部70は、撮像制御部70aならびに疑似画像データ生成部70bとして機能し(図4参照)、撮像を実行するとともに撮像した画像に基づいて疑似画像データを生成する(S20)。S20では、疑似画像データは、検査対象領域A毎に生成される。次に、制御部70は、位相検出部70cとして機能し、得られた疑似画像データの二次元データに対して、位相検出処理を行う(S21)。S21では、位相検出処理は、S20で順次取得されたJ方向の線状の疑似画像データが複数並べられた二次元の疑似画像データに対して行われる。すなわち、図5に示される疑似画像データImよりもI方向に狭い範囲(サイズが小さい)疑似画像データに対して、位相検出処理が実行される。
図7のS21の位相検出処理は、例えば、画層処理を行う面(例えば検査対象面101S)とは異なる面(例えば検査対象面101T)に対して行われうる。図9には、画像処理装置1で図6のS10の撮像および前処理のタイミングチャートの一例が示されている。図9の例では、検査対象物100はタイヤであり、トレッド面(検査対象面101T)について、図7のS21の位相検出処理が行われ、サイド面(検査対象面101S)について、図7のS20,S23の処理ならびに図8に示される処理(前処理)が行われる。また、図9の例では、時刻t1sから時刻t17にかけて、トレッド面の疑似画像データImtが取得されるとともに、サイド面の疑似画像データImが取得される。時刻t11からt12にかけての時間Tpで、トレッド面の疑似画像データImtについて位相検出が行われるとともに(S21)、検出された位相に基づく疑似画像データImの区間設定(決定)ならびに設定された区間の演算部80a〜80cへの割り当てが決定される(S23)。
トレッド面を対象とした位相検出処理は、例えば、トレッド面に周方向(I方向)に互いに間隔をあけて設けられた複数のスリップサイン(図示されず)のうちいずれかを検出することで実行される。スリップサインは、トレッド面に設けられた周方向に沿って延びる比較的幅の広い溝内に、部分的に溝の深さが浅くなった部分(溝の底面の一部が凸となった部分)として設けられており、トレッド面の摩耗の指標となる部分である。トレッド面には、複数(例えば、1周あたり6個)のスリップサインが設けられている。また、複数のスリップサインは、例えば、それぞれ異なる間隔で配置されている。また、トレッド面の模様パターンは、走行時のロードノイズを低減させる等の目的で、模様を構成するブロックの長さ等が非周期的に異なるように設定されている場合もある。よって、スリップサインを含む周辺の形状が、スリップサイン毎に異なるように設定されている場合もある。このため、位相検出部70cは、トレッド面に対応した疑似画像データImtを画像処理することにより、複数のうちいずれかのスリップサインを検出し、当該検出したスリップサインの位相によって、トレッド面の疑似画像データImtの位相、すなわちサイド面の疑似画像データImの位相を検出することができる。スリップサインの間隔や形状と位相との対応関係を示すデータは、例えば、ROM71や補助記憶装置73等の記憶部に記憶されている。位相検出部70cは、どのスリップサインも検出(特定)することができる。よって、位相は、位相検出処理が開始されてから一つ目または二つ目のスリップサインに基づいて検出されうる。よって、図9の例にも示されるように、時間Tpで行われる位相検出処理(ならびにそれに続く区間設定処理および割り当て処理)は、比較的早い段階で完了される。なお、スリップサイン以外の形状から位相が検出されてもよいし、サイド面から位相が検出されてもよいし、あるいは画像処理によらず位相を示す別データが与えられてもよい。
図7のS21で位相が取得された場合(S22でYes)、制御部70は、区間決定部70dとして機能し、疑似画像データImについて、時間的に分割された複数の区間(ImN,ImS)を設定(決定)するとともに、設定された区間(ImN,ImS)の複数の演算部80a〜80cへの割り当てを決定する(S23)。S23による、検出された位相に基づく複数の区間Im1〜Im6の設定ならびに演算部80a〜80cへの割り当ては、図9の時間Tp内の位相検出後時刻t12までに行われる。図9の例では、S23では、疑似画像データImには、時刻t1sから時刻t12まで(に取得された疑似画像データIm)の区間Im1、時刻t12から時刻t13までの区間Im2、時刻t13から時刻t14までの区間Im3、時刻t14から時刻t15までの区間Im4、時刻t15から時刻t16までの区間Im5、ならびに時刻t16から時刻t17までの区間Im6が設定され、各区間Im1〜Im6の疑似画像データについて、演算部80a〜80c(コア1,コア2,コア3)のそれぞれへの割り当てが決定される。各区間Im1〜Im6に対する演算部80a〜80cによる前処理(演算処理)は、各区間Im1〜Im6の取得が完了した直後から実行される。また、最後の区間Im6に対する前処理は、コア3で、時刻t17からt1e(時間Te1)にかけて行われる。S23で、区間決定部70dは、図9に示されるように、サイズ(J方向に沿った点Pの列の数、I方向の画素数、I方向の長さ)が異なる複数の区間Im1〜Im6が含まれるように、区間Im1〜Im6を決定する。各区間の長さが異なるため、最後の区間Im6の長さLe1を、その前の区間Im5等よりも短く設定することができ、これにより、最後の区間Im6について前処理が行われる時間Te1を、より短く設定することができる。仮に、複数の区間Im1〜Im6の長さが同じであると、当該区間Im1〜Im6の等分割された長さに対応した時間の分、最後の区間Im6について前処理が行われる時間Te1が長くなり、前処理が終了する時刻t1eが遅くなる。この点、本実施形態によれば、前処理がより迅速に行われやすい(より早期に完了されやすい)。なお、S22でNoの場合、S20に戻る。
さらに、本実施形態では、図9に示されるように、区間決定部70dは、最後の区間Im6の前処理とその前の区間Im5の前処理とが並行して実行されるよう、区間を決定するとともに割り当てを決定する。よって、本実施形態によれば、最後の区間Im6とその前の区間Im5との前処理が順次行われる場合に比べて、前処理がより迅速に行われやすい(より早期に完了されやすい)。
また、位相を取得することにより、検査対象物100の疑似画像データの位相と、2周分のマスタデータの位相とを合わせることで、検査対象物100の疑似画像データの開始位置(位相)からマスタデータとのパターンマッチングを実行することが可能となる。この場合、検査対象物100の疑似画像データは、1周分の両端に不良サイズ分を考慮したマージン(重複領域)を加えたデータで済むため、データサイズをより小さくできる。また、S11の位置合わせをより限定的に行えるため、撮像時間の短縮およびマッチング処理の高速化を図ることができる。
また、図9において、区間Im1,Im2,Im3,Im5,Im6は、通常区間ImNであり、区間Im4は、特定区間ImSである。特定区間ImSの前処理は、時間Tsで行われる。図10に示されるように、特定区間ImSには、特定領域ImAが含まれる。特定領域ImAは、一般部位とは異なる形状Asに対応した疑似画像データの領域である。形状Asは、例えば、文字や、番号、図形等に対応した、刻印、印字、凹凸形状等である。形状Asが設けられる位置(位相、範囲)を示すデータは、ROM71や、補助記憶装置73等の記憶部に記憶されている。形状Asに対応した特定領域ImAについては、例えば、他の領域とは異なる画像処理アルゴリズムによる良否判定処理が実行されたり、当該特定領域ImAのデータを前処理が実行されやすいデータに置き換えられたりする。よって、本実施形態では、図10に示されるように、特定区間ImSは、領域ImAの全てが含まれるように決定する。これにより、特定領域ImAに対応した画像処理がより容易にあるいはより迅速に実行されやすくなり、ひいては、当該特定区間ImSの前処理がより迅速に行われやすい。
図8には、演算部80a〜80c(図3参照)のいずれかによる前処理(演算処理)の手順の一例が示されている。図8に示される処理は、例えば、演算部80a〜80cのいずれかが、装置11の送受信部75から、送受信部82を介して、演算部80a〜80cでの前処理に関するデータを取得した時点で開始される。前処理に関するデータには、例えば、区間Im1〜Im6の始まりまたは終わりのライン(I座標、図5の左辺または右辺の座標)を示すデータや、区間Im1〜Im6毎の演算部80a〜80c(の割り当て)を示すデータ、特定区間ImSを示すデータ、等が含まれている。前処理に関するデータは、記憶部81に記憶されるか、あるいは演算部80a〜80cのそれぞれに設けられる記憶部(図示されず)に記憶される。以下では、演算部80aが図8の処理を行った場合が例示される。
まず、演算部80aは、装置11の送受信部75から、送受信部82を介して、前処理(演算処理)の対象としての疑似画像データImを、ライン毎、すなわち、I方向の一つの座標におけるJ方向(一方向)に沿った線状の画像データ毎に取得し(図5参照)、記憶部81に、あるいは演算部80aに設けられた記憶部(図示されず)に、蓄積する(S30)。次に、取得した疑似画像データImのラインが、設定された区間の終わりであった場合(S31でYes)、さらに、当該終わりのラインまでの区間が特定区間ImSではなく通常区間ImNであった場合には(S32でNo)、当該通常区間ImNについて、演算部80aは、通常の前処理(演算処理)を行う(S33)。S31でNoの場合、S30に戻る。また、S32でYesの場合、演算部80aは、当該終わりのラインまでの疑似画像データImの区間(特定区間ImS)について、当該特定区間ImSに対応した前処理(演算処理)を行う(S34)。S33またはS34による前処理が完了すると、演算部80aは、前処理によって得られた当該区間Im1,Im3のデータを、送受信部82を介して、装置11の送受信部75に送信する(S35)。演算部80aに割り当てられた区間Im1,Im3の処理が終了した場合(S36でYes)、図8に示される一連の処理が終了される。S36でNoの場合、演算部80aは、S30へ移行し、割り当てられた次の区間Im3について、S30からの一連の処理を行う。演算部80a〜80cは、それぞれ、割り当てられた区間Im1〜Im6について、図8の前処理(演算処理)を行う。なお、特定区間ImSは、一箇所には限定されず、複数箇所存在してもよい。また、ROM71や補助記憶装置73等の記憶部に特定区間の情報を記憶させることで、適宜、特定区間の追加や、入れ替え、変更等を行うことが可能である。
図11には、画像処理装置1で図6のS10の撮像および前処理のタイミングチャートの図9とは別の一例が示されている。図11の例でも、検査対象物100はタイヤであり、トレッド面(検査対象面101T)について、図7のS21の位相検出処理が行われ、サイド面(検査対象面101S)について、図7のS20,S23の処理ならびに図8に示される処理(前処理)が行われる。また、図11の例では、時刻t2sから時刻t27にかけて、トレッド面の疑似画像データImtが取得されるとともに、サイド面の疑似画像データImが取得される。時刻t21からt22にかけての時間Tpで、トレッド面の疑似画像データImtについて位相検出が行われるとともに(S21)、検出された位相に基づく疑似画像データImの区間設定(決定)ならびに設定された区間の演算部80a〜80cへの割り当てが決定される(S23)。そして、図11の例では、S23では、疑似画像データImには、時刻t2sから時刻t22まで(に取得された疑似画像データIm)の区間Im1、時刻t22から時刻t23までの区間Im2、時刻t23から時刻t24までの区間Im3、時刻t24から時刻t25までの区間Im4、時刻t25から時刻t26までの区間Im5、ならびに時刻t26から時刻t27までの区間Im6が設定され、各区間Im1〜Im6の疑似画像データについて、演算部80a〜80c(図11の例ではコア1,コア2,コア3)のそれぞれへの割り当てが決定される。各区間Im1〜Im6に対する演算部80a〜80cによる前処理(演算処理)は、各区間Im1〜Im6の取得が完了した直後から実行される。また、最後の区間Im6に対する前処理(演算処理)は、コア3で、時刻t27からt2e(時間Te2)にかけて行われる。S23で、区間決定部70dは、図11に示されるように、サイズ(J方向に沿った点Pの列の数、I方向の画素数、I方向の長さ)が異なる複数の区間Im1〜Im6が含まれるように、区間Im1〜Im6を決定する。本実施形態でも、各区間の長さが異なるため、最後の区間Im6の長さLe2を、その前の区間Im5等よりも短く設定することができ、これにより、最後の区間Im6について前処理が行われる期間Te2を、より短く設定することができる。図9の例と図11の例とでは、区間ImSの位置が異なる。すなわち、図11において、区間Im1,Im2,Im4,Im5,Im6は、通常区間ImNであり、区間Im3は、特定区間ImSである。特定区間ImSの前処理は、時間Tsで行われる。図9,11から明らかとなるように、区間決定部70dは、まずは、特定区間ImSとしての区間Im4(図9),Im3(図11)を決定し、その残りについて複数の区間ImNを決定している。これにより、特定領域ImAがより確実に特定区間ImSに含まれる。
以上、説明したように、本実施形態では、例えば、区間決定部70dは、線状の画像データの列の数(長さ)が異なる複数の区間Im1〜Im6が含まれるよう、区間Im1〜Im6を決定する。よって、本実施形態によれば、例えば、複数の区間Im1〜Im6の長さが同じである場合に比べて、演算部80a〜80c(画像処理部)による演算処理の時間がより短くなりやすい(演算処理がより早期に終了しやすい)。
また、本実施形態では、区間決定部70dは、例えば、二次元の画像データの最後の区間Im6に含まれる列の数(長さ)が、当該最後の区間Im6の前の区間Im5(またはIm1〜Im5)に含まれる列の数(長さ)より少なく(短く)なるよう、区間Im1〜Im6を決定する。よって、本実施形態によれば、例えば、最後の区間Im6の長さが他の区間Im1〜Im5よりも長い場合に比べて、演算部80a〜80c(画像処理部)による演算処理の時間がより短くなりやすい(演算処理がより早期に終了しやすい)。
また、本実施形態では、演算部80c(コア3、第一の画像処理部)が最後の区間Im6の演算処理を行っているのと並行して、演算部80b(コア2、第二の画像処理部)が最後の区間Im6よりも一つ前の区間Im5の演算処理を行う。よって、本実施形態によれば、例えば、演算部80a〜80c(画像処理部)による演算処理の時間がより一層短くなりやすい(演算処理がより早期に終了しやすい)。
また、本実施形態では、区間決定部70dは、例えば、特定領域ImAが一つの区間ImSに含まれるよう、当該区間ImSを決定する。よって、本実施形態によれば、例えば、特定領域ImAに対応した演算処理がより迅速に行われやすく、ひいては、演算部80a〜80c(画像処理部)による演算処理の時間がより一層短くなりやすい(演算処理がより早期に終了しやすい)。
また、以上の処理は比較的単純な演算処理で構成されており、例えばGPGPU(General-purpose computing on graphics processing units)など、並列演算を実行するデバイスにおいても実現可能である。
以上、本発明の実施形態を例示したが、上記実施形態はあくまで一例である。実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。また、実施形態の構成や形状は、部分的に他の構成や形状と入れ替えて実施することも可能である。また、各構成や形状等のスペック(構造や、種類、方向、角度、形状、大きさ、長さ、幅、厚さ、高さ、数、配置、位置、材質等)は、適宜に変更して実施することができる。例えば、検査対象物は、円環状以外の物(例えば、帯状以外の物)であってもよい。また、対象となる画像データは、疑似画像データ以外の画像データであってもよい。