(57)【要約】【課題】画像から円を高速に検出可能な画像処理装置を提供すること。【解決手段】本発明は、ＳＩＭＤ型プロセッサを備えた画像処理装置であって、画像データに含まれる円の等間隔な円周点間の間隔距離を、与えられた前記円の半径と円周点数を用いて算出する間隔距離算出手段３１と、各プロセッサエレメントの各データ記憶手段が記憶している起点画素に対し前記間隔距離の位置にある全ての相手画素の座標が登録された座標情報テーブルを作成する座標情報テーブル作成手段３２と、起点画素の画素値と、座標情報テーブルの相手画素の画素値が共に黒画素である場合に、前記起点画素と前記相手画素の組を組リストテーブルに登録する組リストテーブル作成手段３４と、候補一覧テーブルを作成する候補一覧テーブル作成手段３５と、候補一覧テーブルを前記円周点数に基づき検証する検証手段３６と、を有することを特徴とする。【選択図】図７
2014178779.tif 000002
【特許請求の範囲】
【請求項１】
複数画素分の画素値を記憶する専用のデータ記憶手段と演算部が配置されたｉ（≧２）個のプロセッサエレメントと、前記プロセッサエレメントを制御するグローバルプロセッサと、を有するＳＩＭＤ型プロセッサを備えた画像処理装置であって、
被写体の画像データを記憶する画像データ記憶手段と、
前記画像データに含まれる円の等間隔な円周点間の間隔距離を、与えられた前記円の半径と円周点数を用いて算出する間隔距離算出手段と、
各データ記憶手段が記憶する少なくとも前記間隔距離に相当するライン数の画素において、各プロセッサエレメントの各データ記憶手段が記憶している起点画素に対し前記間隔距離の位置にある全ての相手画素の座標が登録された座標情報テーブルを作成する座標情報テーブル作成手段と、
前記起点画素の画素値と、前記座標情報テーブルの前記相手画素の画素値が共に黒画素である場合に、前記起点画素と前記相手画素の組を組リストテーブルに登録する処理を各プロセッサエレメントが並行して行う組リストテーブル作成手段と、
前記組リストテーブルから各円周点の両隣に等間隔の円周点があることを利用して候補画素と相手候補画素が対応付けられた候補一覧テーブルを作成する候補一覧テーブル作成手段と、
前記候補一覧テーブルの前記候補画素及び前記相手候補画素が前記円周点か否かを、前記円周点数に基づき検証する検証手段と、を有することを特徴とする画像処理装置。
【請求項２】
前記候補一覧テーブル作成手段は、前記組リストテーブルにおいて、前記起点画素及び前記相手画素から重複しないペアを前記候補画素として取り出し、
前記候補画素が前記起点画素又は前記相手画素として組になっていた前記起点画素又は前記相手画素の座標を、前記相手候補画素として前記候補画素に対応づけて登録することで前記候補一覧テーブルを作成し、
１つの前記候補画素に対応づけられている前記相手候補画素の候補数が１つしかない場合、該候補画素を前記候補一覧テーブルから削除する、
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記検証手段は、前記候補一覧テーブルの１つの前記候補画素に着目し、
該候補画素に対応づけられた前記相手候補画素の座標と一致する座標が前記候補画素の座標として前記候補一覧テーブルに登録されている場合に、カウント数を１つ増大する処理を、
前記相手候補画素の座標が着目している前記候補画素の座標と一致するまで繰り返し、
前記相手候補画素の座標と着目している前記候補画素の座標が一致した時の前記カウント数が前記円周点数である場合に、着目した前記候補画素が前記円周点の画素であると推定する、
ことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記検証手段は、
着目している前記候補画素と前記相手候補画素の座標が一致した時の前記カウント数が前記円周点数でない場合、着目した前記候補画素が前記円周点以外のノイズであると推定する、
ことを特徴とする請求項３記載の画像処理装置。
【請求項５】
ｉ個の各プロセッサエレメントの前記組リストテーブル作成手段は、互いに並行して、
自機の前記データ記憶手段が記憶する前記起点画素の画素値と、自機又は他のプロセッサエレメントの前記データ記憶手段に記憶されている各相手画素の画素値が共に黒画素である場合に、前記起点画素と前記相手画素の組を組リストテーブルに登録する処理を行う、
ことを特徴とする請求項１〜４いずれか１項記載の画像処理装置。
【請求項６】
前記検証手段が、前記候補一覧テーブルの全ての前記候補画素が前記円周点であることを検証した場合、
前記円の位置を基準位置と比較して、前記被写体の位置を補正する位置補正手段、
を有することを特徴とする請求項１〜５いずれか１項記載の画像処理装置。
【請求項７】
複数画素分の画素値を記憶する専用のデータ記憶手段と演算部が配置されたｉ（≧２）個のプロセッサエレメントと、前記プロセッサエレメントを制御するグローバルプロセッサと、を有するＳＩＭＤ型プロセッサを備えた画像処理装置の円検出方法であって、
間隔距離算出手段が、画像データ記憶手段に記憶された被写体の画像データに含まれる円の等間隔な円周点間の間隔距離を、与えられた前記円の半径と円周点数を用いて算出するステップと、
座標情報テーブル作成手段が、各データ記憶手段が記憶する少なくとも前記間隔距離に相当するライン数の画素において、各プロセッサエレメントの各データ記憶手段が記憶している起点画素に対し前記間隔距離の位置にある全ての相手画素の座標が登録された座標情報テーブルを作成するステップと、
組リストテーブル作成手段が、前記起点画素の画素値と、前記座標情報テーブルの前記相手画素の画素値が共に黒画素である場合に、前記起点画素と前記相手画素の組を組リストテーブルに登録する処理を各プロセッサエレメントが並行して行うステップと、
候補一覧テーブル作成手段が、前記組リストテーブルから各円周点の両隣に等間隔の円周点があることを利用して候補画素と相手候補画素が対応付けられた候補一覧テーブルを作成するステップと、
検証手段が、前記候補一覧テーブルの前記候補画素及び前記相手候補画素が前記円周点か否かを、前記円周点数に基づき検証するステップと、
を有することを特徴とする円検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ型プロセッサを備えた画像処理装置に関する。
【背景技術】
【０００２】
画像処理においては、何らかの基準となる対象物（円や直線、特殊形状）を画像処理により検出して、対象物の位置を基準に処理や作業を行うことがある。例えば、プリント基板描画装置において、被検査基板の実装状態を検査する場合や基板に部品を実装する場合には、基板の画像又は基板自体を所望の位置に位置決めする必要がある。実際の位置が基準の位置からずれている場合は、プリント基板描画装置は位置を補正する。
【０００３】
図１は、基板位置の補正を模式的に説明する図の一例である。位置補正を行うには、基板には位置基準用のマーカＭが描画又は固定されている。プリント基板描画装置は、カメラが撮影した基板の画像を取得して、画像からマーカ位置を検出する。図１ではマーカＭとして円が撮影されている。実線で記載されている基板とマーカＭは検査のために撮像された画像であり、破線で記載されている基板とマーカＭは、検査の判定基準となる基準画像において対応する基板とマーカである。したがって、マーカＭが検出されれば、基準のマーカの位置と比較して基板の位置を補正可能となる。
【０００４】
従来から円を検出する技術はいくつか提案されている（例えば、特許文献１，２参照。）。特許文献１には、候補領域内の２値画像を複数のメッシュに分割し、該分割された各メッシュ内の黒画素数を算出し、前記候補領域の中心から複数の同心円上にある黒画素数を、各円周について起点から１周分順番に配列した特徴量を算出し、所定半径の円周の特徴量に基づき円の中心を算出する画像認識方法が開示されている。特許文献２には、主走査方向における画素同士の中点位置を算出する位置算出手段と、画素から中点位置までの距離を算出する距離算出手段と、副走査方向における前記中点位置の画素と１ライン前の中点位置の画素との距離を累積し前記中点位置を結ぶ直線の長さを検出する手段と、直線の長さが円の直径と等しいかどうかを判別すると共に、該判別結果および画素から中点位置までの距離を基に円抽出を行う円抽出手段と、を有する画像処理装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の円の抽出方法は、処理負荷が大きく処理時間が長くかかるという問題がある。上記の円抽出や位置補正には、ＰＣ（Personal  Computer）で開発され動作する画像処理ソフトウェアが用いられたり、あるいは既製の画像処理アプリケーションを利用したソフトウェアが用いられる。近年、ＰＣ用の既製の画像処理アプリケーションも、その機能が充実してきており、位置補正用や検査用などその機能の組合せにより実現できることが多くなってきた。しかし、ＰＣ上で動作するソフトウェアでは、その処理時間が長く、要請される時間内に処理が完了できなくなることがあった。
【０００６】
これらの画像処理を組み込み用のマイクロプロセッサを使用した専用ハードウェアにより高速化することが行われることもあったが、それでも十分な速度を得られることができないという問題もあった。
【０００７】
本発明は上記課題に鑑み、画像から円を高速に検出可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、複数画素分の画素値を記憶する専用のデータ記憶手段と演算部が配置されたｉ（≧２）個のプロセッサエレメントと、前記プロセッサエレメントを制御するグローバルプロセッサと、を有するＳＩＭＤ型プロセッサを備えた画像処理装置であって、被写体の画像データを記憶する画像データ記憶手段と、前記画像データに含まれる円の等間隔な円周点間の間隔距離を、与えられた前記円の半径と円周点数を用いて算出する間隔距離算出手段と、各データ記憶手段が記憶する少なくとも前記間隔距離に相当するライン数の画素において、各プロセッサエレメントの各データ記憶手段が記憶している起点画素に対し前記間隔距離の位置にある全ての相手画素の座標が登録された座標情報テーブルを作成する座標情報テーブル作成手段と、前記起点画素の画素値と、前記座標情報テーブルの前記相手画素の画素値が共に黒画素である場合に、前記起点画素と前記相手画素の組を組リストテーブルに登録する処理を各プロセッサエレメントが並行して行う組リストテーブル作成手段と、前記組リストテーブルから各円周点の両隣に等間隔の円周点があることを利用して候補画素と相手候補画素が対応付けられた候補一覧テーブルを作成する候補一覧テーブル作成手段と、前記候補一覧テーブルの前記候補画素及び前記相手候補画素が前記円周点か否かを、前記円周点数に基づき検証する検証手段と、を有することを特徴とする。
【発明の効果】
【０００９】
画像から円を高速に検出可能な画像処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】基板位置の補正を模式的に説明する図の一例である。
【図２】ＳＩＭＤ型プロセッサを有する画像処理装置の一例を示す図である。
【図３】ＳＩＭＤ型プロセッサの構成を示すブロック図である。
【図４】ＳＩＭＤ型プロセッサの機能ブロック図の一例を示す図である。
【図５】円周上に等間隔に並ぶ点を含む１フレームの画像データ（ディジタル画像）の一例を模式的に示す図である。
【図６】隣り合う２点間の距離について説明する図の一例である。
【図７】Ｌ＋１ライン数内の画素データ（右側）を模式的に説明する図の一例である。
【図８】Ｌ＋１ライン数内の画素データ（左側）を模式的に説明する図の一例である。
【図９】位置情報テーブルの一例を示す図である。
【図１０】起点と相手候補の座標が記録されたペアリストテーブルの一例を示す図である。
【図１１】候補一覧テーブルの一例を示す図である。
【図１２】候補座標の数が１の点の一例を示す図である。
【図１３】円周上の多点以外で候補数が２となる点の一例を示す図である。
【図１４】画像処理装置のＳＩＭＤ型プロセッサが行う処理の全体的な手順の一例を示す図である。
【図１５】ステップＳ３０の画像処理の手順を説明するフローチャート図の一例である。
【図１６】ステップＳ３０の画像処理の手順を説明するフローチャート図の一例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【００１２】
本実施形態の画像処理装置は、複数の画像データを並列処理することができるＳＩＭＤ型プロセッサを用いることを特徴の１つとしている。また、本実施形態の画像処理装置は、ＳＩＭＤ型プロセッサの並列性を活かして、１フレーム（画像データ）内に複数の点（多点）が書かれた画像データから、等間隔に円周上に並ぶ点を検出する処理を時間的に並行に行うことを特徴の１つとしている。これにより、円の検出に必要な時間を短縮できる。
【００１３】
また、円周上に並んだ多点がマーカである場合、撮像画像には、ノイズにより、マーカの多点以外の点が含まれることがしばしばある。プリント基板描画装置はマーカ位置の検出前にノイズ除去処理を行うが、それでも完全には除去ができない場合がある。本実施形態の画像処理装置は、与えられた多点の数を利用して、マーカ以外から円周上の多点として誤検出されたノイズを除去することを特徴の１つとしている。これにより、撮影画像にノイズが含まれていても、円を正確に検出可能となる。
【００１４】
〔構成例〕
図２は、ＳＩＭＤ型プロセッサを有する画像処理装置の一例を示す。ＳＩＭＤ(Single Instruction-stream Multiple Data-stream)型プロセッサは、１つの命令で複数のデータに対して同時に同じ演算処理が実行可能である。画像処理では複数の画素に同じ処理を施す処理が多いため、ＳＩＭＤ型プロセッサ１００は画像処理に適している。
【００１５】
ＳＩＭＤ型プロセッサ１００は、外部インタフェース１０を介して周辺装置９と接続される。周辺装置９には外部メモリ８が接続されている。周辺装置９は、外部メモリ８からＳＩＭＤ型プロセッサ１００に画像データを転送する入出力装置、ＳＩＭＤ型プロセッサ１００が得意としないシリアル画像処理を専用に実行する外部画像処理装置、などである。本実施形態では、周辺装置９はどのようなものでもよい。
【００１６】
外部メモリ８は、画像データやプログラムなどが記憶される高速な揮発性メモリである。外部メモリ８は、バスを介してＣＰＵ７、フラッシュメモリ６、操作受付部５、及び、ネットワーク装置４が接続されている。ＣＰＵ７はフラッシュメモリ６に記憶されたプログラムを実行して、画像処理装置２００の全体を制御する。
【００１７】
操作受付部５は、画像処理装置２００に対するユーザの操作を受け付ける。ネットワーク装置４はＬＡＮやＷＡＮなどのネットワークに接続して外部の機器と通信する。フラッシュメモリ６に記憶されたプログラムは、このネットワーク装置４を介してダウンロード可能であると共に、記憶媒体に記憶された状態で配布されることも可能である。フラッシュメモリ６のプログラムのうち、ＳＩＭＤ型プロセッサ１００が実行する部分は、例えば画像処理装置２００の起動時にＳＩＭＤ型プロセッサ１００に送信され、グローバルプロセッサにより実行される。または、ＳＩＭＤ型プロセッサ１００が専用の不揮発メモリを有しており、そこにＳＩＭＤ型プロセッサ１００が実行するプログラムを記憶していてもよい。
【００１８】
ＳＩＭＤ型プロセッサ１００は、複数のプロセッサエレメント（以下、ＰＥという）を有しており、図ではＰＥ群１２と図示されている。各ＰＥは演算アレイとレジスタを備えており、各ＰＥは、１個の画素の画像処理を担当し、複数個のＰＥが同時に演算処理を行うことで、複数の画素に同時に同じ演算を施すことができ、画像処理の効率を高めている。
【００１９】
図３は、ＳＩＭＤ型プロセッサ１００の構成を示すブロック図である。ＳＩＭＤ型プロセッサ１００は、１つのグローバルプロセッサ１１と、３５２個のＰＥｉ（ｉ＝０，１，…，３５１）とを有している。グローバルプロセッサ１１は、グローバルプロセッサ用データＲＡＭ１３−Ｇを有し、ＳＩＭＤ型プロセッサ１００の全体の動作、及び、ＰＥｉの動作を制御する。
【００２０】
また、ＰＥ０は、例えば１キロバイトのプロセッサエレメント用データＲＡＭ１３−０、プロセッサエレメント用データＲＡＭとバスによって接続された３２個のレジスタＲｍ−０（ｍ＝０，１，…，３１）と、を有している。ＲＡＭ１３−０とレジスタＲｍ−０は、マルチプレクサ（ＭＵＸ）１４−０とバスを介して接続されている。また、ＭＵＸ１４−０には、少なくともＰＥ０に隣接する８つのＰＥ（ＰＥ０の場合はＰＥ１〜ＰＥ８の合計９つ）のバスが８対１に接続されている。
【００２１】
また、ＰＥ０のＭＵＸ１４−０には、算術論理演算を行う算術論理演算回路（ＡＬＵ）１５−０と、算術論理演算の対象となるデータを算術論理演算回路１５−０に出力しかつ算術論理演算の演算結果を記憶するするアキュムレータ（Ａレジスタ）１６−０と、データを一時的に格納する補助レジスタ（Ｆレジスタ）１７−０と、乗除算演算及びテーブル変換に使用する乗除算レジスタ（Ｍレジスタ）１８−０と、命令の実行制御を行う条件レジスタ（Ｔレジスタ）１９−０とを有している。
【００２２】
ＰＥ群１２はさらにＰＥ１〜ＰＥ３５１を有するが、これらの構成はＰＥ０と同様なので説明は省略する。
【００２３】
〔機能構成例〕
図４は、ＳＩＭＤ型プロセッサ１００の機能ブロック図の一例を示す図である。各機能は、グローバルプロセッサがプログラムを実行し、各ＰＥを制御することで実現される。
【００２４】
２点間距離算出部３１は、画像データに含まれる円を構成する等間隔の円周点の距離Ｌを、与えられた円の半径と円周点数を用いて算出する。
【００２５】
位置情報テーブル作成手段は、各ＰＥが記憶する任意の起点画素に対し、自機又は他のＰＥが記憶している距離Ｌの位置にある全ての画素の座標（起点画素を基準とする相対座標）を決定して位置情報テーブル３８（特許請求の範囲の座標情報テーブルの一例である）に登録する。
【００２６】
ペア画素判定部３３は位置情報テーブル３８が指示する座標の画素（相手画素）の１つから画素値を読み出し、該画素と起点画素の画素値が共に１となるか否かを判定する。
【００２７】
ペアリストテーブル作成部３４は、起点画素と相手画素の座標の画素値が共に１（黒画素）となる２つの座標をペア（組）にしてペアリストテーブル３９（特許請求の範囲の組リストテーブルの一例である）に記録する。
【００２８】
候補一覧テーブル作成部３５は円周上の多点の候補が登録された候補一覧テーブル４０を作成する。詳しくは後述する。検証部３６は、候補一覧テーブル４０の各組が円周点か否かを、候補画素に対応づけられた相手候補画素の数、及び、円周上の多点の数ｎ個の基づき検証する。
【００２９】
〔円周上に等間隔に並ぶ多点の検出〕
図５は、円周上に等間隔に並ぶ点を含む１フレームの画像データ（ディジタル画像）の一例を模式的に示す図である。図５の画像データは２値化されている。８個の白丸が、多点の１つ１つ（１画素）を示すものとする。通常、カメラなどにより撮像された画像は、ノイズが含まれたり、点のサイズが均一ではないことがあるが、ここでは、本実施形態による画像処理を実施する前に、別の画像処理により、大きさの異なるノイズ成分の除去や、点のサイズが１画素になるような処理が十分になされているものとする。さらに、当該画像は、２値化処理により、背景が画素値０、点が画素値１に変換されているものとする。
【００３０】
また、図５では１フレーム分の２次元の画像データの左上隅を原点として水平方向をＸ軸、垂直方向をＹ軸とする座標系にて画素の座標を表す。右方向がＸ座標が増加する方向、また下方向がＹ座標が増加する方向である。
【００３１】
＜隣接する２点間の距離Ｌ＞
まず、隣接する２点間の距離Ｌについて説明する。円周上に等間隔に並んだ点の個数とその円周の半径が与えられている場合、隣り合う２点それぞれから円周の中心に向かう２つの直線がなす角度θが求まる。よって、余弦定理によりその隣り合う２点間の距離Ｌを求めることができる。
【００３２】
図６は、隣り合う２点間の距離について説明する図の一例である。図６では頂点Ａ，Ｃがそれぞれ図５の１つの点（例えばＡ＝点２，Ｃ＝点３）に相当する。円周上の点の個数をｎ、円周の半径をｒ、中心座標をＢとすると、直線ＡＢと直線ＢＣのなす角度θは、下式により得られる。
θ＝２π／ｎ
余弦定理により、半径ｒ、距離Ｌ、角度θには以下の関係が得られるので、半径ｒと角度θが与えられれば、２点間の距離Ｌを求めることができる。なお、半径ｒと円周上の点の個数ｎが与えられれば、距離Ｌが一意に求められるので、例えば画像処理装置２００のユーザが距離Ｌを直接、入力してもよい。なお、距離Ｌは、演算結果が整数になるとは限らないため、切り捨て、または切り上げにより、画像処理装置２００が整数に丸めるものとする。
Ｌ2＝ｒ2＋ｒ2−２×ｒ×ｒ×cosθ
２点間の距離Ｌが求まれば、円周上にある１点から半径Ｌの円周上に、隣り合う点が見つかることになる。例えば図５では、点１に点２と点８が隣接しているため、点１から半径Ｌの円を描けば円周上に点８、点２が存在するはずである。以下では、ＳＩＭＤ型プロセッサ１００は、この距離Ｌを使用して多点を検出する。
【００３３】
＜位置情報テーブル＞
本実施形態におけるＳＩＭＤ型プロセッサ１００では、最大でプロセッサエレメント(ＰＥ)の数分の画素データを同時に処理できる。入力された画像データのうち最大でＰＥ数分の画素データをＰＥ用レジスタ（例えばレジスタＲｍ−０）に置き、さらに、それぞれ後ろのＬライン数分の画像データを、ＰＥ用レジスタＲ１−０〜Ｒ８−０やＰＥ用データメモリ（ＲＡＭ）１３−０等に置くことにより、計Ｌ＋１ライン数内の探索が可能になる。なお、ラインとは、主操作方向の１列又はその画素データである。ＰＥ数＜１ラインの画素数である場合は、１ラインが複数回に分けて演算される。
【００３４】
図７は、Ｌ＋１ライン数内の画素データを模式的に説明する図の一例である。ＰＥｉが任意のＰＥの位置、ＰＥｉ+1がその右隣の位置とする。任意の画素とは当該ＰＥがＰＥ用レジスタＲｍ−０に記憶している画素であり、ＰＥ０からみた任意の画素に対し、ＰＥｉから見た任意の画素はＸ軸方向に１画素となりの画素である。この任意の画素を以下「起点画素」という。
【００３５】
Ｒ０〜Ｒ８はＰＥ用レジスタＲｍ−０〜Ｒｍ−８であり（ｍが省略されている）、起点画素が存在するライン（カレントラインという場合がある）がＲ０のレジスタに格納されている。また、Ｌ＝８として、図７ではＰＥ用レジスタＲ１〜Ｒ８にその後のラインの画素データが格納されている。
○、●、▲は、以下の画素であることを示す。
●：起点画素
○：画素
▲：距離Ｌに該当する位置の画素
図８は、同様に、起点となるＰＥｉに対し左下部分の画素データを示す。カレントラインがＰＥ用レジスタＲ０、その後ろの８ラインがＰＥ用レジスタＲ１〜Ｒ８に格納されている。また、任意のＰＥｉに対し、ＰＥｉ-1が左隣の位置とする。
【００３６】
さて、多点の２点間の距離Ｌが求まっている。Ｌ＝８とすると起点画素を基準とする円周点の探索位置は、起点画素を中心とする半径Ｌの円の円周上の画素である。この画素は、水平方向の座標をＸ、垂直方向の座標をＹ、半径をＬとして、円の方程式により求めることができる。
Ｘ2＋Ｙ2＝Ｌ2
例えば、半径Ｌが８で、ＰＥｉのＰＥ用レジスタＲ０に格納されている起点画素の座標を（０，０）とする。この原点の座標は画像データの左上隅の原点（０，０）でなく、便宜的な原点である。左上隅を原点（０，０）とする起点画素の絶対的な座標も既知である。
【００３７】
位置情報テーブル作成部３２は、この式を利用して位置情報テーブル３８を作成する。具体的には、Ｒ０〜Ｒ８の各ラインで、起点画素から半径Ｌの画素のＸ座標を求める。まず、Ｙ＝０のラインにおける半径８の円の円周上のＸ座標は、Ｙ＝８である。
【００３８】
起点画素に対し１ライン後、即ちＹ＝１のラインにおける半径８の円の円周上のＸ座標は、
Ｘ2＝Ｒ2−Ｙ2
＝８×８−１×１
＝６３
Ｘ＝７．９３
≒８
となる。
【００３９】
Ｙ＝２のラインにおける半径８の円の円周上のＸ座標は、
Ｘ2＝Ｒ2−Ｙ2
＝８×８−２×２
＝６０
Ｘ＝７．７４
≒８
Ｙ＝３のラインにおける半径８の円の円周上のＸ座標は、
Ｘ2＝Ｒ2−Ｙ2
＝８×８−３×３
＝５５
Ｘ＝７．４１
≒７
同様に計算することで、Ｒ０〜Ｒ８の各ラインにおける円周上の点のＸ座標が求められる。なお、Ｙ＝７とＹ＝８では、Ｘ座標の誤差を考慮して、それぞれ２つと３つのＸ座標を算出する。このように冗長にＸ座標を登録してものちに検証されるので、円周上の点でなければ除外される。
【００４０】
こうして８＋１の計９ライン分の位置を計算すると、Ｙ＝８までの各ラインにおける円周上のＸ座標が得られる。図７，８では各ラインにおいて求められた円周上のＸ座標を▲で示している。図７，８に示すように、仮にＰＥｉ（●）のＰＥ用レジスタＲ０に格納された起点画素が多点の１つである場合、▲位置の画素が距離Ｌにある他の点の位置の相手画素となる。
【００４１】
この計９ラインにおける水平方向の座標位置を用いて、位置情報テーブル作成部３２は、ＰＥ用レジスタＲ０〜Ｒ８に格納されるライン０〜８のＸ座標の位置情報テーブル３８を作成する。このＸ座標は起点画素を原点とする座標でよい。
【００４２】
図９は、位置情報テーブル３８の一例を示す図である。上記の計算結果に基づきＹ座標に対応づけて起点画素から距離ＬとなるＸ座標が登録される。
【００４３】
Ｙ０ではＸ＝８
Ｙ１ではＸ＝８、−８
Ｙ２ではＸ＝８、−８
（中略）
Ｙ７（左方向）ではＸ＝３，４、−４、−３
Ｙ８ではＸ＝０，１，２、−２、−１
なお、図７と図８では、ＰＥｉのＲ８で▲が重複しているので、位置情報テーブル３８にはどちらか一方を登録すればよい。
【００４４】
後述するように位置情報テーブル３８は、各ＰＥが任意画素と相手画素の画素値が共に１となるか否かを判定する際に使用される。判定時には、●位置で示す起点画素から、Ｙ座標が大きくなる方向であって、Ｘ軸方向（右方向と左方向）の相手画素が存在する範囲で判定すればよく、360度全周に渡って探索する必要はない。
【００４５】
＜ペアリストテーブル＞
作成された位置情報テーブル３８に基づき、ペア画素判定部３３は、ＰＥｉのＰＥ用レジスタＲ０−ｉに格納されている起点画素に対し、距離Ｌにある相手画素の画素値を参照し、起点画素と相手画素の画素値が同時に画素値１であれか否かを判定する。同時に画素値が１である場合、２つの画素は多点のうちの隣接した２点の候補と見なすことができる。ペア画素判定部３３は、相手画素の画素位置に対して候補フラグを立てる。
【００４６】
ここで、本実施形態では、ＳＩＭＤ型プロセッサ１００の各ＰＥが起点画素を基準に相手画素を検出するので、最大ＰＥ数分の起点ＰＥｉに対し同時に探索することができる。
【００４７】
なお、距離Ｌは整数に丸めているため実際の位置が１画素ずれている可能性がある。このため、候補となる点が、対象の座標位置の周囲８画素に存在している可能性があるため、その周囲も探索する。この場合、距離Ｌを整数に丸める時に、切り下げているなら距離が長くなる方の周囲のみ、また切り上げているなら距離が短くなる方の周囲のみを探索すればよい。
【００４８】
ペアリストテーブル作成部３４は、位置情報テーブル３８の一つの相手画素の探索が終わった時点で、候補フラグが立っているＰＥ用レジスタを検索し、該ＰＥ用レジスタに記憶された相手画素の座標位置を求める。使用した位置情報テーブル３８にて起点とされた起点画素（０，０）の絶対的な座標は既知である。したがって、候補フラグが立っているＰＥ用レジスタに記憶された相手画素の画像データ全体における絶対的な座標は容易に算出できる。起点画素と相手画素で１つのペアである。
【００４９】
これを位置情報テーブル３８の全座標の組合せで繰り返し、一回のＰＥ数個分の探索が終われば、そのライン中の次のＰＥ個分、さらに１ライン分が終われば、全ライン繰り返し、１フレーム分を実行する。
【００５０】
図１０は、起点画素と相手画素の座標が記録されたペアリストテーブル３９の一例を示す。図１０において、Ｙa1、Ｘa1等は、画像データ全体のそれぞれＹ座標、Ｘ座標を示す。なお、繰り返しの処理の過程で相手画素が起点画素となる状況があるので、起点画素と相手画素が入れ換わった座標も記録される。例えば、図５の点１が起点画素の場合、点２（又は点８）が相手画素となるが、点２が起点画素となった場合、点１が相手画素となる。このため、図１０においても（Ｙa1、Ｘa1）と（Ｙa2、Ｘa2）に対し、（Ｙa2、Ｘa2）と（Ｙa1、Ｘa1）という同じ座標のペアが存在する。
【００５１】
＜候補一覧テーブル＞
候補一覧テーブル作成部３５は、このようにして作成されたペアリストテーブル３９を整理して候補一覧テーブル４０を作成する。
(i)  まず、起点画素及び相手画素から、重複しないペアを取り出し、候補一覧テーブル４０の候補画素として座標を登録する。この候補画素は円周上の多点を重複なく全て含む。
(ii)  候補画素が起点画素又は相手画素としてペアになっていた画素の座標を、候補画素に対応づけて登録する。対応づけられた画素を「相手候補画素」という
(iii)  １つの候補画素に対応づけられた相手候補画素の数を候補数として登録する。
【００５２】
図１１は候補一覧テーブル４０の一例を示す図である。例えば、（Ｙa1、Ｘa1）には（Ｙa2、Ｘa2）と（Ｙa3、Ｘa3）が対応づけられるので、候補数は２となる。（Ｙa1、Ｘa1）が点１であれば、（Ｙa2、Ｘa2）は点２、（Ｙa3、Ｘa3）は点８の座標である。同様に、点２を候補画素とした場合には、点２の座標に相手候補画素として点１と点３の座標が対応づけて登録される。
【００５３】
＜検証＞
続いて候補一覧テーブル４０を用いた検証について説明する。等間隔に円周上に位置する点を順次結ぶと、それぞれの点は両隣に２つの点を持つことになる。
【００５４】
つまり、図１１のように作成された候補一覧テーブル４０において、候補数が１以下（０は登録されないので候補の数は最小が１）の座標は、それが円周上に位置しない、ということができる。
【００５５】
図１２は、候補数が１の点の一例を示す図である。点Ｄ、Ｅは、相手候補画素の候補数が１の候補画素の一例を示す図である。点Ｄから見て点７は距離Ｌにあるが、点Ｄの相手候補画素はこの点７のみである。点Ｅについても同様である。このように相手候補画素が１つの点Ｄ，Ｅは円周上の点ではないので、候補一覧テーブル作成部３５は候補一覧テーブル４０から候補画素を全て除外する。これによりノイズを円周上の点と誤検出することを抑制できる。
【００５６】
また、除外した座標画素が相手候補画素となっている候補画素があるので（例えば図１２では点７から見た点Ｄ、点６から見た点Ｅ）、この候補画素（つまり点６，７）の候補数を１減じる。この候補数を減じたことにより、さらに候補数が１以下となる候補画素は、同様に除外する。これを候補数が１以下となるものがなくなるまで繰り返す。
【００５７】
また、円周上の多点以外で候補数が２となる候補画素も存在しうるので、このようなノイズも削除する。図１１の候補一覧テーブル４０において（候補数が１の座標情報を除外した後）、最初の点から順次相手となる点をたどっていくと、必ずその最初の点に戻ってくることになる。ここで求める等間隔に円周上に並ぶ点の場合は、指定されている点の個数回で戻ってくることになる。
【００５８】
図１３は、円周上の多点以外で候補数が２となる点の一例を示す図である。図１３の点Ｆのような点では、点Ｆから点Ｆに戻るために３回で戻ってくるか、又は、９回で戻ることになる。これを利用して、このように指定回数外で元の座標に戻る候補情報も候補から除外する。なお、点１から点を辿った場合も点Ｆを通過すると、９回で戻ることになるため、好ましくは指定回数未満で戻る点を削除する。
【００５９】
以上の処理で残った候補点が求める円周上に等間隔にある点の座標位置であることが判明する。なお、候補の数が３以上の場合は、その全ての点をツリー上に辿る必要がある。
【００６０】
＜円の位置の決定＞
円周上に等間隔に並ぶ多点の座標が求められれば、例えば、その内の３点より、円の方程式を用いて、連立三元方程式を立てることができる。連立三元方程式を適当な解法により解けば、円の中心座標を求めることができる。中心を（ａ、ｂ）とすると、以下の３つの式が得られる。
（Ｘ１−ａ）２＋（Ｙ１−ｂ）２＝ｒ２
（Ｘ２−ａ）２＋（Ｙ２−ｂ）２＝ｒ２
（Ｘ３−ａ）２＋（Ｙ３−ｂ）２＝ｒ２
または、任意の隣り合う２点の座標位置から、等距離にある直線の座標を順次求め、別の隣り合う２点の座標位置から、同様に２点から等距離にある直前の座標を順次求め、両者が交差する座標を円の中心座標としてもよい。
【００６１】
または、円周上の３点から半径ｒの円を描画し、３つの円の交点を円の中心座標としてもよい。
【００６２】
最終的に位置補正部３７は決定された円の位置に基づきプリント基板などの位置を補正する。
【００６３】
〔動作手順〕
図１４は、画像処理装置２００のＳＩＭＤ型プロセッサ１００が行う処理の全体的な手順の一例を示す図である。
【００６４】
ＳＩＭＤ型プロセッサ１００はライン単位の処理を繰り返しながら（Ｓ１０とＳ５０）、最大ＰＥ数単位の処理を繰り返す（Ｓ２０とＳ４０）。画像データの０〜８ラインだけ、一度にＰＥ用レジスタに格納され、以降は、１ラインずつＰＥ用レジスタＲ０に補充される。また、1ラインの画素数＜最大ＰＥ数であれば、最大ＰＥ数の処理が終わると同じライン０〜８のラインに対し残りの画素データをＰＥ用レジスタに設定して画像処理が行われる。
【００６５】
そして、最大ＰＥ数単位の繰り返しの中で、等間隔の多点の座標が検出される画像処理が行われる（Ｓ３０）。
【００６６】
図１５、１６は、ステップＳ３０の画像処理の手順を説明するフローチャート図の一例である。
【００６７】
まず、２点間距離算出部３１が、マーカの円の半径ｒと予め定められている数ｎから、余弦定理を利用して２点間の距離Ｌを算出する（Ｓ１１０）。
【００６８】
位置情報テーブル作成部３２は、距離Ｌの位置情報テーブル３８を作成する（Ｓ１２０）。位置情報テーブル３８には任意の起点座標に対し、距離Ｌの円周上で画素値が１となる候補の座標が登録されている。
【００６９】
ペア画素判定部３３は、位置情報テーブル３８が指示する座標の１つから画素値を読み出し、起点画素と相手画素が共に画素値が１となるか否かを判定する（Ｓ１３０）。
【００７０】
起点画素と共に画素値が１でない場合（Ｓ１３０のＮｏ）、ペア判定部は何もせず、起点画素と相手画素が共に画素値が１である場合（Ｓ１３０のＹｅｓ）、ペア判定部は候補画素に候補フラグを立てる（Ｓ１４０）。
【００７１】
このステップＳ１３０とＳ１４０の処理が、各ＰＥが並行して実行できる処理であり高速処理が可能となる。
【００７２】
次いで、ペアリストテーブル作成部３４は着目している起点画素の座標と、候補フラグが立っている座標から、候補フラグが立っている画素の画像データ全体における座標を求め、ペアリストテーブル３９に記録する（Ｓ１５０）。起点画素の座標が候補画素の座標で、候補フラグが立っている座標が相手画素の座標である。
【００７３】
ペア画素判定部３３は位置情報テーブル３８の最後まで探索したか否かを判定し（Ｓ１６０）、探索していない場合はステップＳ１３０から次の位置情報テーブル３８の座標から処理を繰り返す。
【００７４】
位置情報テーブル３８の最後まで探索した場合（Ｓ１６０のＹｅｓ）、候補一覧テーブル作成部３５はペアリストテーブル３９を上記の手順で整理し、候補一覧テーブル４０を作成する（Ｓ１７０）。
【００７５】
次に、候補一覧テーブル作成部３５は、候補一覧テーブル４０から候補数が１つしかない候補画素を削除すると共に、該候補画素が相手候補画素となっている候補画素の候補数を１つ減らす（Ｓ１８０）。
【００７６】
候補数が１つしかない候補画素がなくなると、検証部３６が検証を開始する（Ｓ１９０〜Ｓ２６０）。
【００７７】
まず、検証部３６は、候補一覧テーブル４０から候補画素の座標（座標Ａ）を１つ読み出す（Ｓ１９０）。
【００７８】
検証部３６は接続カウンタに０を設定することで初期化する（Ｓ２００）。接続カウンタは指定されている点の個数回で元の候補画素に戻ってくるか否かを判定するための候補画素をカウントするためのカウンタである。
【００７９】
検証部３６は、候補画素に対応づけられている相手候補画素の座標を読み出す（Ｓ２１０）。なお、候補の数が３以上の場合は、その全ての点をツリー状に辿るため、経路上の多点の全ての組み合わせで検証を行う。例えば、図１３の点１から点２を取り出した場合、点２には候補となる点が３つある。各点（１，Ｆ，３）に対しその先の接続先が２つあるので３×２の数の経路が存在するが、この全ての点を辿る。
【００８０】
相手候補画素が見つかった場合は接続カウンタを１つ増加させる（Ｓ２２０）。
【００８１】
検証部３６は、相手候補画素が接続カウンタ＝０の時に読み出した候補画素（座標Ａ）に戻ったか否かを判定する（Ｓ２３０）。
【００８２】
接続カウンタ＝０の時に読み出した候補画素に戻っていない場合（Ｓ２３０のＮｏ）、検証部３６はステップＳ１９０で読み出した相手候補画素と同じ座標の候補画素があるか否かを判定する（Ｓ２４０）。当然ながら、自分自身には戻らない。
【００８３】
相手候補画素と同じ座標の候補画素がある場合（Ｓ２４０のＹｅｓ）、検証部３６は再度、候補画素に対応づけられている相手候補画素の座標を読み出す（Ｓ２１０）。
【００８４】
接続カウンタ＝０の時に読み出した候補画素に戻った場合（Ｓ２３０のＹｅｓ）、検証部３６は接続カウンタが指定されている点の個数ｎと一致するか否かを判定する（Ｓ２５０）。
【００８５】
一致しない場合（Ｓ２５０のＮｏ）、ステップＳ１９０で読み出した候補画素はノイズである可能性が高いので、検証部３６は候補一覧テーブル４０からステップＳ１９０で読み出した候補画素を全て削除し、削除により減少する候補数を更新する（Ｓ２６０）。
【００８６】
接続カウンタが指定されている点の個数ｎと一致する場合（Ｓ２５０のＹｅｓ）、候補画素は円の円周上であると推定される。
【００８７】
検証部３６は候補一覧テーブル４０の最後まで検証したか否かを判定し（Ｓ２７０）、最後まで検証していない場合（Ｓ２７０のＮｏ）、ステップＳ１９０から検証を繰り返す。
【００８８】
候補一覧テーブル４０の最後まで検証した場合（Ｓ２７０のＹｅｓ）、候補一覧テーブル４０に残っている候補画素が円周上の多点である（Ｓ２８０）。
【００８９】
図１５に示したようにこれで最大ＰＥ数単位処理が終わったので、ステップＳ２０で次の最大ＰＥ数単位処理が行われる。この処理内容は図１５にて説明したとおりである。
【００９０】
以上説明したように、本実施例の画像処理総理は、ＳＩＭＤ型プロセッサ１００を用いて円を検出することで、円の検出に必要な時間を短縮できる。また、与えられた多点の数を利用して、マーカ以外から円周上の多点として誤検出されたノイズを除去するので、撮影画像にノイズが含まれていても、円を正確に検出可能となる。
【符号の説明】
【００９１】
１１      グローバルプロセッサ
１２      ＰＥ群
３１      ２点間距離算出部
３２      位置情報テーブル作成部
３３      ペア画素判定部
３４      ペアリストテーブル作成部
３５      候補一覧テーブル作成部
３６      検証部
３８      位置情報テーブル
３９      ペアリストテーブル
４０      候補一覧テーブル
１００    ＳＩＭＤ型プロセッサ
２００    画像処理装置
【先行技術文献】
【特許文献】
【００９２】
【特許文献１】特開平０９−１１４９９０号公報
【特許文献２】特許４１８７０４３号公報
【図１】
2014178779.tif 000003
【図２】
2014178779.tif 000004
【図３】
2014178779.tif 000005
【図４】
2014178779.tif 000006
【図５】
2014178779.tif 000007
【図６】
2014178779.tif 000008
【図７】
2014178779.tif 000009
【図８】
2014178779.tif 000010
【図９】
2014178779.tif 000011
【図１０】
2014178779.tif 000012
【図１１】
2014178779.tif 000013
【図１２】
2014178779.tif 000014
【図１３】
2014178779.tif 000015
【図１４】
2014178779.tif 000016
【図１５】
2014178779.tif 000017
【図１６】
2014178779.tif 000018