(57)【要約】【課題】画像の位置座標を用いた演算処理結果のデータ量を削減する。【解決手段】画像処理装置１００は、画像を画素の属性に基づいて複数の領域に分割しラベリングする領域分割部１０４と、領域分割部１０４により分割された領域ごとに対応する座標系を決定し、領域に属する画素の座標値を、対応する座標系の座標値に変換する座標変換部１０５と、座標変換部１０５により変換された座標値を用いて領域の特徴量を演算する特徴量演算部１０７と、を備える。画像処理装置１００は、特徴量演算部１０７の演算結果を領域別に格納する格納領域を主記憶メモリ１０２にさらに備えてもよい。【選択図】      図１
2017182480.tif 000002
【特許請求の範囲】
【請求項１】
画像を画素の属性に基づいて複数の領域に分割する分割手段と、
前記分割手段により分割された領域ごとに対応する座標系を決定し、前記画像の各画素の座標値を、前記各画素が属する前記領域に対応する前記座標系の座標値に変換する変換手段と、
前記変換手段により変換された座標値を用いて前記領域の特徴量を演算する演算手段と、を備えることを特徴とする画像処理装置。
【請求項２】
前記分割手段は、所定の制約条件のもとで前記画像を複数の領域に分割することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記制約条件に基づいて前記座標系の原点を決定することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記分割手段は、前記各画素を、前記画像上に配置された、前記複数の領域をそれぞれ代表する複数の代表点のいずれかにクラスタリングすることで前記画像を分割することを特徴とする請求項２または３記載の画像処理装置。
【請求項５】
前記制約条件は、前記代表点の配置の間隔を示すステップサイズを含むことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記制約条件は、クラスタリングする前記代表点を探索する範囲を示すサーチレンジを含むことを特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
前記変換手段は、前記分割手段により同一の前記領域に分割される可能性のある複数の画素のうち最小の座標値を有する画素を、その領域に対応する座標系の原点として決定することを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記演算手段により演算される前記特徴量のデータ幅が所定幅となるように、前記制約条件が決定されていることを特徴とする請求項２から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記演算手段は、前記画像の幾何的な特徴を表す幾何特徴量を演算することを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記演算手段により演算された前記特徴量を保持する保持手段をさらに備えることを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
画像を画素の属性に基づいて複数の領域に分割するステップと、
分割された領域ごとに対応する座標系を決定し、前記画像の各画素の座標値を、前記各画素が属する前記領域に対応する前記座標系の座標値に変換するステップと、
変換された座標値を用いて前記領域の特徴量を演算するステップと、を含むことを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１から１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、物体認識等の画像処理の前処理として、画像を色や模様、明るさといった属性が同じになるように複数の領域に分割する領域分割（Segmentation）手法が用いられている。これらの分割された領域は、その後、領域単位で符号化処理や認識処理が行えるため、画素レベルで画像を処理する場合に比べて処理量を削減することができる。近年、組み込み機器において高解像度の画像に対して画像処理を行うケースが増えてきており、領域分割後の領域単位で処理することができることで、組み込み機器でも高解像度の画像に対してリアルタイムで複雑な処理ができるようになると考えられる。
領域分割処理の一手法として、特許文献１には、Ｋ平均法（k-means clustering）を用いるクラスタリング手法が開示されている。この特許文献１に記載の技術では、少ないメモリと少ない作業時間とで領域分割処理を行うために、画像を複数のブロックに分け、ブロック単位で領域分割処理を実施している。
【０００３】
また、Ｋ平均法をベースにした手法として、非特許文献１には、画像をスーパーピクセルと呼ばれる知覚的に意味のある小領域に分割するＳＬＩＣ（Simple Linear Iterative Clustering）という手法が開示されている。ＳＬＩＣ手法では、各画素を、画像上に格子状に配置した複数の代表点のいずれかにクラスタリングし、領域分割処理後、代表点を更新する。ＳＬＩＣ手法とＫ平均法との違いは、代表点にクラスタリングする座標空間を所定範囲に限定している点にある。ＳＬＩＣ手法によって分割された小領域は、比較的形状が等しく領域の数も安定していることが特徴である。
さらに、クラスタリングされた小領域の物体を認識する技術も開発されている。このような技術は、撮影画像のシーン判別等に応用される技術であり、小領域の特徴量を抽出し、抽出した特徴量を解析して物体を認識する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−３０７８７号公報
【非特許文献】
【０００５】
【非特許文献１】Radhakrishna Achanta, et al.、“SLIC Superpixels Compared to State-of-the-Art Superpixel Methods”、IEEE Transactions on Pattern Analysis and Machine Intelligence、vol.34、No.11、pp.2274-2282、Nov. 2012
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クラスタリングされた小領域の特徴量は、同一小領域内の画素ごとに抽出したデータを累積演算することで得られ、演算された特徴量はメモリに格納される。特徴量をメモリに格納する場合、そのメモリのメモリサイズは、特徴量の最大値を格納可能なデータ幅が必要になる。画素の位置座標は、画像の原点から離れるほど増加する。そのため、特徴量が画素の位置座標を用いて演算されるデータである場合、処理対象の画像サイズが大きくなるほど特徴量のデータ量（桁数）が増加し、特徴量を格納するためのメモリサイズを大きくする必要がある。また、メモリに対するデータの読み書きに要する時間もかかるため、処理性能が低下してしまう。
そこで、本発明は、画像の領域認識等を行うための、画素の位置座標を用いた特徴量演算結果のデータ量を削減することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る画像処理装置の一態様は、画像を画素の属性に基づいて複数の領域に分割する分割手段と、前記分割手段により分割された領域ごとに対応する座標系を決定し、前記画像の各画素の座標値を、前記各画素が属する前記領域に対応する前記座標系の座標値に変換する変換手段と、前記変換手段により変換された座標値を用いて前記領域の特徴量を演算する演算手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、画像の領域認識等を行うための、画素の位置座標を用いた特徴量演算結果のデータ量を削減することができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置のハードウェア構成図である。
【図２】主記憶メモリのメモリイメージである
【図３】画像処理装置の処理対象の画像を説明する図である。
【図４】領域分割処理結果の一例である。
【図５】小領域に応じた座標系の決定方法について説明する図である。
【図６】座標変換部の内部構成を示すブロック図である。
【図７】座標変換処理手順を示すフローチャートである。
【図８】領域ラベルとキャッシュメモリアドレスとを対応付けるテーブルである。
【図９】特徴量演算処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
本実施形態では、画像を処理対象とし、画像を色や模様、明るさといった属性が同じになるように複数の局所的な小領域に分割する領域分割処理（セグメンテーション）を行い、小領域単位で認識処理等を行うための画像処理装置について説明する。画像処理装置は、認識処理に際し、領域分割された小領域の特徴量（領域特徴量）を算出する。領域特徴量は、画像の画質に関する特徴を表す画質特徴量や、画像の幾何的な特徴を表す幾何特徴量と含む。画質特徴量は、小領域のＲ、Ｇ、Ｂの色平均等を含み、幾何特徴量は、小領域の面積（以下、「０次モーメント」という。）、小領域の重心（以下、「１次モーメント」という。）、小領域の分散（以下、「２次モーメント」という。）等を含む。
【００１１】
本実施形態では、画像処理装置は、領域分割処理の手法として、色空間（Ｒ，Ｇ，Ｂ）と座標空間（ｘ，ｙ）の５次元の情報を用いて画素をクラスタリングするＳＬＩＣ手法を用いるものとする。なお、本実施形態では、色空間をＲＧＢ（Ｒ，Ｇ，Ｂ）として説明するが、ＣＩＥＬＡＢ（Ｌ*，ａ*，ｂ*）やＹＣＣ（Ｙ，Ｃｂ，Ｃｒ）であってもよい。
領域分割処理では、はじめにクラスターの中心となる代表点を画像中に格子状に配置し、各代表点に０、１、２、…とユニークな番号（以下、「領域ラベル」という。）を割り振る。そして、各画素を格子状に配置した複数の代表点のいずれかにクラスタリングし、各画素にその代表点の領域ラベルを割り振ることで、画像を複数の小領域（以下、単に「領域」ともいう。）に分割する。このとき、各画素を代表点にクラスタリングする座標空間は、所定範囲に限定する。領域分割処理後、各代表点を、それぞれ分割された小領域に応じて更新する。
【００１２】
図１は、本実施形態における画像処理装置１００のハードウェア構成図である。画像処理装置１００は、所定の制約条件のもとで画像を複数の局所的な小領域に分割する領域分割処理を行い、分割した小領域の特徴量を算出する装置である。本実施形態では、画像処理装置１００は、画像を複数のブロックに分け、ブロック単位で処理（領域分割処理や特徴量算出処理）する場合について説明する。
画像処理装置１００は、デジタルカメラ等の撮像装置を含む組み込み機器の一部として機能する組み込みコンピュータであってもよいし、パーソナルコンピューター（ＰＣ）により構成されていてもよい。
画像処理装置１００は、ＣＰＵ１０１、主記憶メモリ１０２、ＤＭＡＣ１０３、領域分割部１０４、座標変換部１０５、キャッシュメモリ１０６、特徴量演算部１０７およびシステムバス１０８を備える。
【００１３】
ＣＰＵ１０１は、画像処理装置１００における動作を統括的に制御するものであり、システムバス１０８を介して、各構成部（１０２、１０３、１０６）を制御する。主記憶メモリ１０２は、図示しないセンサ、あるいは、ネットワークインタフェース等の画像を取り込むデバイスによって取り込まれた処理対象の画像を格納する。また、主記憶メモリ１０２は、領域分割処理に必要なパラメータや、小領域をそれぞれ代表する代表点の情報を格納する。さらに、主記憶メモリ１０２は、ＣＰＵ１０１のワークメモリとしても機能し、ＣＰＵ１０１による処理結果を格納する領域としても使用される。
【００１４】
図２は、主記憶メモリ１０２のメモリイメージである。主記憶メモリ１０２は、入力データを格納する入力データ格納領域１０２ａと、出力データを格納する出力データ格納領域１０２ｂとを備える。入力データ格納領域１０２ａは、処理対象の画像（Ｒ,Ｇ,Ｂ）や、後述する領域分割部１０４が領域分割処理に使用するパラメータや代表点の情報を格納する領域である。出力データ格納領域１０２ｂは、領域分割部１０４が出力する領域ラベルＬに関する情報や、特徴量演算部１０７の演算結果を格納（保持）する領域である。
出力データ格納領域１０２ｂは、小領域ごとの領域特徴量を格納する特徴量格納領域１０２ｃを含む。特徴量格納領域１０２ｃには、領域ラベルＬの順に、小領域ごとに領域特徴量が格納される。領域特徴量は、画質特徴量（Ｒ、Ｇ、Ｂの色平均）と幾何特徴量（０次モーメント、１次モーメント、２次モーメント）とを含む３２ｂｙｔｅのデータとする。幾何特徴量の演算の一例を以下に示す。
【００１５】
【数１】
2017182480.tif 000003
【００１６】
ここで、ｎは、同一の領域ラベルＬが割り振られた画素の数である。また、（ｘ（ｉ），ｙ（ｉ））は、同一の領域ラベルＬが割り振られたｎ個の画素のうち、ｉ番目の画素の位置座標である。１次モーメントおよび２次モーメントは、画素単位で行われる累積演算の演算結果である累積演算値（以下、「特徴量データ」ともいう。）を用いて算出される。後述する特徴量演算部１０７は、ブロック単位で小領域別に累積演算値を演算し、１画像の処理（全ブロックの処理）が終了した後、累積演算値を加工し、最終的な小領域ごとの幾何特徴量を演算する。
【００１７】
本実施形態では、後述の座標変換部１０５における座標変換処理により、各画素の位置座標は８ビットに限定される。そのため、０次モーメントのデータ幅は８ビット、１次モーメントのデータ幅は２４ビット、２次モーメントのデータ幅は３２ビットに限定されることになる。
図１に戻って、ＤＭＡＣ１０３は、主記憶メモリ１０２と領域分割部１０４および座標変換部１０５との間でデータ転送するＤＭＡ（Direct Memory Access）コントローラであり、ＣＰＵ１０１によって制御される。ＣＰＵ１０１がＤＭＡＣ１０３にデータ転送元アドレス、転送サイズ、アドレッシングパターン、データ転送先を設定し、データ転送開始のトリガを与えると、ＤＭＡＣ１０３は、設定に従ってデータ転送を行う。データ転送が終わると、ＤＭＡＣ１０３はＣＰＵ１０１に終了を通知する。
【００１８】
ＤＭＡＣ１０３は、転送先が領域分割部１０４に設定された場合、主記憶メモリ１０２の入力データ格納領域１０２ａから、領域分割処理に必要なパラメータや代表点の情報を読み込み、領域分割部１０４に転送する。このとき、ＤＭＡＣ１０３は、領域分割処理に必要なパラメータとして、主記憶メモリ１０２から領域分割処理の所定の制約条件を読み込み、領域分割部１０４に転送する。また、ＤＭＡＣ１０３は、代表点の情報として、主記憶メモリ１０２から処理対象のブロック内の代表点、および処理対象のブロックの周囲の代表点の情報を読み込み、領域分割部１０４に転送する。
【００１９】
また、ＤＭＡＣ１０３は、転送先が領域分割部１０４と座標変換部１０５とに設定された場合、主記憶メモリ１０２の入力データ格納領域１０２ａから処理対象のブロックの画素データをラスタ順で読み込み、領域分割部１０４と座標変換部１０５とに転送する。このとき、ＤＭＡＣ１０３は、画像の転送元アドレスから画素の位置座標（ｘ，ｙ）を算出可能であり、画素データを（Ｒ，Ｇ，Ｂ，ｘ，ｙ）に拡張して領域分割部１０４と座標変換部１０５とに転送する。
また、ＤＭＡＣ１０３は、転送元が領域分割部１０４、転送先が主記憶メモリ１０２に設定された場合、領域分割部１０４が出力する領域ラベルＬを主記憶メモリ１０２に転送する。
領域分割部１０４は、ＤＭＡＣ１０３から転送される代表点の情報と画素データ（Ｒ，Ｇ，Ｂ，ｘ，ｙ）とを使用して、処理対象の画像上の各画素を代表点のいずれかにクラスタリングし、その領域にラベリングして領域ラベルＬを出力する。このとき、領域分割部１０４は、ＤＭＡＣ１０３から転送される領域分割処理の所定の制約条件に応じて、画像を複数の局所的な小領域に分割しラベリングする。
【００２０】
上記所定の制約条件には、ステップサイズとサーチレンジとが含まれる。ステップサイズは、画像中に格子状に配置される初期代表点の間隔であり、サーチレンジは、各画素のクラスタリング時に代表点を探索する範囲である。これらの制約条件は、ＣＰＵ１０１の制御によりＤＭＡＣ１０３を介して与えられる。なお、領域分割部１０４は専用ハードウェアとして動作するようにしてもよいし、ＣＰＵ１０１がプログラムを実行することにより領域分割部１０４の機能が実現されるようにしてもよい。
図３は、処理対象である画像について説明する図である。処理対象の画像のサイズ（ｉｍａｇｅ＿ｓｉｚｅ）は、縦（ｙ方向）２０４０画素、横（ｘ方向）４０８０画素とし、画素のデータは、色データ（Ｒ，Ｇ，Ｂ）２４ビットで構成されるものとする。画素の位置座標は、左上の座標を原点（ｘ，ｙ）＝（０，０）とし、水平方向にＸの値が増加し、垂直方向にＹの値が増加する。画像は複数のブロック（２０１〜２０５等）に分割され、領域分割部１０４は、ブロック単位で領域分割処理を実行する。各ブロックのサイズ（ｂｌｏｃｋ＿ｓｉｚｅ）は、縦横２５５画素とする。
【００２１】
領域分割部１０４は、領域分割処理において、上述したように、はじめに画像全体に代表点を格子状に配置する。この格子の間隔がステップサイズである。本実施形態では、ステップサイズを８５画素とする。領域分割処理後、各代表点は更新される。領域分割処理により、各画素は、初期状態において最も近傍に位置する代表点を中心とした所定範囲内に位置する複数の代表点のいずれかにクラスタリングされ、その代表点の領域ラベルＬが割り振られる。上記所定範囲がサーチレンジである。
このように、領域分割部１０４は、クラスタリングする代表点を探索する範囲を示すサーチレンジを所定範囲に限定する。特定の代表点にクラスタリングする座標空間を所定範囲に限定することで、各小領域の大きさがほぼ等しい安定した領域分割処理を行うことができる。
【００２２】
サーチレンジが１ステップサイズである場合、各画素は、初期状態において最も近傍に位置する代表点と、その代表点を中心とした１ステップサイズの範囲内に位置する周囲８つの代表点との計９つの領域ラベルＬのいずれかが割り振られることになる。つまり、注目画素がＬ＝１４７の代表点を最近傍とする範囲２１１内の画素である場合、その画素は、範囲２１２内の代表点の領域ラベルＬ＝９８，９９，１００，１４６，１４７，１４８，１９４，１９５，１９６のいずれかにラベリングされる。したがって、ブロック２０４内の全画素を処理するためには、ブロック２０４内の代表点とブロック２０４の周囲の代表点、つまり範囲２１３内の合計２５個の代表点の情報が必要となる。
【００２３】
領域分割部１０４は、ＤＭＡＣ１０３から領域分割処理に必要なパラメータと代表点の情報とを受信した後、画素データをラスタ順に受信し、領域分割処理を開始する。領域分割部１０４は、画素毎にどの代表点の領域ラベルＬを割り振るかを判定し、判定結果である領域ラベルＬを座標変換部１０５に引き渡す。なお、領域分割部１０４は、領域ラベルＬをＤＭＡＣ１０３にも引き渡し、主記憶メモリ１０２に格納するようにしてもよい。
領域分割処理結果の一例を図４に示す。なお、図４では、図３のブロック２０１〜２０４についてのみ示している。ブロックの境界部分では、複数のブロックを跨って同一の領域ラベルＬが割り振られ得る。図４では、領域ラベルＬ＝５１は、２つのブロック２０１、２０２で割り振られており、領域ラベルＬ＝９８は、４つのブロック２０１〜２０４で割り振られている。
【００２４】
図１に戻って、座標変換部１０５は、画素データ（Ｒ，Ｇ，Ｂ，ｘ，ｙ）と領域ラベルＬとを受信し、領域ラベルＬに応じて位置座標（ｘ，ｙ）の座標変換を行う。具体的には、座標変換部１０５は、領域ラベルＬに基づいて、その小領域に固有の座標系を決定し、位置座標（ｘ，ｙ）を、決定された座標系の座標値（ｘ’，ｙ’）に変換する。つまり、座標変換部１０５は、同一の領域ラベルＬに割り振られた複数の画素の座標値を、同一の座標系の座標値に変換する。
図５は、小領域ごとに固有の座標系について説明する図である。上述したように、注目画素は、初期状態で最も近傍に位置する代表点を中心としたサーチレンジ内に位置する複数の代表点の領域ラベルＬのうち、いずれかの領域ラベルＬが割り振られる。本実施形態では、Ｘ方向の画像幅（ｉｍａｇｅ＿ｓｉｚｅ＿ｘ）は４０８０画素であり、ステップサイズは８５画素であるため、代表点はＸ方向に４８ずつ配置される。また、Ｙ方向の画像幅（ｉｍａｇｅ＿ｓｉｚｅ＿ｙ）は２０４０画素であるため、代表点はＹ方向に２４ずつ配置される。
【００２５】
このような配置であるとき、領域ラベルＬの代表点の初期座標（Ｘｉｎｉ（Ｌ），Ｙｉｎｉ（Ｌ））は、次式で表すことができる。
Ｘｉｎｉ（Ｌ）＝４２＋８５＊（Ｌ％４８），
Ｙｉｎｉ（Ｌ）＝４２＋８５＊（Ｌ−Ｌ％４８）／４８）  ………（４）
そして、画素（ｘ，ｙ）が初期状態で最も近傍に位置する領域ラベルＬ（最近傍の代表点番号Ｎ）は、次式で表すことができる。
Ｎ＝４８＊（ｙ−ｙ％８５）／８５＋（ｘ−ｘ％８５）／８５  ………（５）
図５の画素３０１（ｘ，ｙ）＝（８５，８５）を注目画素とした場合、最近傍の代表点番号はＮ＝４９であり、画素３０１は、０，１，２，４８，４９，５０，９６，９７，９８のいずれかの領域ラベルＬが割り振られる。同様に、画素３０２（ｘ，ｙ）＝（３３９，８５）を注目画素とした場合、最近傍の代表点番号はＮ＝５１であり、画素３０２は、２，３，４，５０，５１，５２，９８，９９，１００のいずれかの領域ラベルＬが割り振られる。
【００２６】
また、画素３０３（ｘ，ｙ）＝（８５，３３９）を注目画素とした場合、最近傍の代表点番号はＮ＝１４５であり、画素３０３は、９６，９７，９８，１４４，１４５，１４６，１９２，１９３，１９４のいずれかの領域ラベルＬが割り振られる。さらに、画素３０４（ｘ，ｙ）＝（３３９，３３９）を注目画素とした場合、最近傍の代表点番号はＮ＝１４７であり、画素３０３は、９８，９９，１００，１４６，１４７，１４８，１９４，１９５，１９６のいずれかの領域ラベルＬが割り振られる。
つまり、領域ラベルＬの視点で捉えると、特定の領域ラベルＬが割り振られる可能性のある画素は、その領域ラベルＬの代表点の初期座標からサーチレンジ内に位置する代表点を最近傍とする座標に位置するといえる。例えば、領域ラベルＬ＝９８が割り振られる可能性のある画素は、領域ラベルＬ＝９８の代表点の初期座標からサーチレンジ内に位置する代表点、４９，５０，５１，９７，９９，１４５，１４６，１４７を最近傍とする範囲３０５内に位置する。
【００２７】
上記のとおり、画素（ｘ，ｙ）が初期状態で最も近傍に位置する代表点番号Ｎは、上記（５）式で表される。そのため、最近傍の代表点番号がＮ＝４９となる画素の位置座標（ｘ，ｙ）は、８５≦ｘ＜１７０，８５≦ｙ＜１７０の範囲内となる。したがって、範囲３０５の左上座標は（８５，８５）であり、画素３０１が範囲３０５の左上画素となる。また、最近傍の代表点番号がＮ＝５１となる画素の位置座標（ｘ，ｙ）は、２２５≦ｘ＜３４０，８５≦ｙ＜１７０の範囲内となる。そのため、範囲３０５の右上座標は（３３９，８５）であり、画素３０２が範囲３０５の右上画素となる。
【００２８】
同様に、最近傍の代表点番号がＮ＝１４５となる画素の位置座標（ｘ，ｙ）は、８５≦ｘ＜１７０，２２５≦ｙ＜３４０の範囲内となる。そのため、範囲３０５の左下座標は（８５，３３９）であり、画素３０３が範囲３０５の左下画素となる。また、最近傍の代表点番号がＮ＝１４７となる画素の位置座標（ｘ，ｙ）は、２２５≦ｘ＜２４０，２２５≦ｙ＜３４０の範囲内となる。そのため、範囲３０５の右下座標は（３３９，３３９）であり、画素３０４が範囲３０５の右下画素となる。
このように、領域ラベルＬ＝９８が割り振られる可能性のある画素が存在する範囲３０５は、画素３０１を原点としたｘｙ方向に０〜＋２５５の範囲となる。したがって、領域ラベルＬ＝９８に割り振られる画素の位置座標を、画素３０１を原点とした座標系に変換すると、その座標値は８ビットのデータ幅で表すことが可能である。
【００２９】
本実施形態では、座標変換部１０５は、領域分割処理の制約条件に基づいて、小領域ごとに固有の座標系の原点を決定する。具体的には、座標変換部１０５は、小領域ごとに固有の座標系として、同一の領域ラベルＬが割り振られる可能性のある画素のうち、最小の座標（ｘ，ｙ）を原点とする座標系を決定し、座標変換を行う。以下、座標変換部１０５が実行する座標変換処理について詳細に説明する。
図６は、座標変換部１０５の内部構成を示すブロック図である。座標変換部１０５は、設定レジスタ１０５ａと、代表点選択部１０５ｂと、原点選択部１０５ｃと、座標値変換部１０５ｄとを備える。この図６に示す座標変換部１０５の各部は専用のハードウェアとして動作してもよいし、各部の機能が、図１のＣＰＵ１０１がプログラムを実行することにより実現されてもよい。各部の少なくとも一部が専用のハードウェアとして動作する場合、専用のハードウェアは、ＣＰＵ１０１の制御に基づいて動作する。
【００３０】
設定レジスタ１０５ａは、領域分割部１０４が領域分割処理で用いるパラメータであるサーチレンジとステップサイズとを格納する。設定レジスタ１０５ａは、代表点選択部１０５ｂと原点選択部１０５ｃとによって参照される。
代表点選択部１０５ｂは、領域ラベルＬとサーチレンジ情報とに基づいて、領域ラベルＬの代表点の初期座標からサーチレンジ内に位置する複数の代表点の内、座標値が最小となる代表点を選択する。代表点選択部１０５ｂは、上記（４）式を用いて代表点の初期座標を算出してもよいし、テーブルを参照して代表点の初期座標を導出してもよい。テーブル参照の場合、座標変換部１０５は、領域ラベルＬと、その領域ラベルＬの代表点の初期座標とを対応付けるテーブルを予め保持しておくものとする。
【００３１】
原点選択部１０５ｃは、代表点選択部１０５ｂにより選択された代表点の情報と、ステップサイズ情報とに基づいて、代表点選択部１０５ｂにより選択された代表点が最近傍となる画素のうち、最小座標を有する画素を原点として選択する。座標値変換部１０５ｄは、原点選択部１０５ｃにより選択された原点の座標を入力し、注目画素の位置座標（ｘ，ｙ）を、原点選択部１０５から入力された原点座標からの座標値（ｘ’，ｙ’）に変換する。
図７は、座標変換部１０５が実行する座標変換処理手順を示すフローチャートである。図７の処理は、図６に示す各部がそれぞれ別個のハードウェアとして動作することで実現されるようにしてもよいし、ＣＰＵ１０１が必要なプログラムを読み出して実行することにより実現されるようにしてもよい。この図７の処理は、座標変換部１０５が、ＤＭＡＣ１０３から画素データ（Ｒ，Ｇ，Ｂ，ｘ，ｙ）、領域分割部１０４から領域ラベルＬを受け取ると開始される。以降、アルファベットＳはフローチャートにおけるステップを意味するものとする。
【００３２】
まずＳ１において、代表点選択部１０５ｂは、領域ラベルＬの代表点の初期座標（Ｘｉｎｉ（Ｌ），Ｙｉｎｉ（Ｌ））を算出する。ここで、代表点選択部１０５ｂは、領域ラベルＬをもとにテーブルを参照して初期座標を導出してもよいし、ステップサイズをもとに上述した計算式により初期座標を算出してもよい。次に、代表点選択部１０５ｂは、導出した代表点の初期座標からサーチレンジ内に存在する代表点のうち、最も座標値の小さい代表点を選択し、その代表点の初期座標を算出する。
例えば、代表点選択部１０５ｂは、領域分割部１０４から領域ラベルＬ＝９８を入力した場合、初期座標（Ｘｉｎｉ（９８），Ｙｉｎｉ（９８））＝（２１２，２１２）を算出する。また、サーチレンジは１ステップサイズであることから、代表点選択部１０５ｂは、サーチレンジ内に位置する代表点のうち、領域ラベルＬ＝４９の代表点を最も座標値の小さい代表点として選択する。そして、代表点選択部１０５ｂは、領域ラベルＬ＝４９の代表点の初期座標（Ｘｉｎｉ（４９），Ｙｉｎｉ（４９））＝（１２７，１２７）を算出する。
【００３３】
次にＳ２において、原点選択部１０５ｃは、Ｓ１において算出された代表点の初期座標を最近傍とする画素のうち、最小の座標値を算出する。具体的には、原点選択部１０５は、Ｓ１において算出された代表点の初期座標（Ｘｉｎｉ（Ｌ），Ｙｉｎｉ（Ｌ））からＸ方向およびＹ方向にそれぞれステップサイズの半分を減算した座標を算出し、算出した座標を原点座標とする。つまり、原点座標（Ｘｏｒｇ（Ｌ），Ｙｏｒｇ（Ｌ））＝（Ｘｉｎｉ（Ｌ）−ステップサイズ／２，Ｙｉｎｉ（Ｌ）−ステップサイズ／２）である。ただし、原点座標がマイナスになる場合は０に補正する。こうして、新たな座標系が決定される。
【００３４】
上記のように、領域分割部１０４から領域ラベルＬ＝９８が入力された場合、Ｓ１において算出される代表点の初期座標は（１２７，１２７）である。ステップサイズは８５画素であるため、原点選択部１０５ｃは、原点座標（１２７−８５／２，１２７−８５／２）＝（８５，８５）を算出する。
最後にＳ３において、座標値変換部１０５ｄは、注目画素の位置座標（ｘ，ｙ）をＳ２において決定された座標系の座標値に変換する。具体的には、注目画素の位置座標（ｘ，ｙ）からＳ２において算出された原点座標（Ｘｏｒｇ（Ｌ），Ｙｏｒｇ（Ｌ））を減算することで、原点座標からの座標値（ｘ’，ｙ’）に変換する。つまり、ｘ’＝ｘ−Ｘｏｒｇ（Ｌ）、ｙ’＝ｙ−Ｙｏｒｇ（Ｌ）である。
【００３５】
以上のように、座標変換部１０５は、領域ラベルＬの代表点の初期座標からサーチレンジ内に位置する代表点のうち、座標値が最小となる代表点を選択し、選択した代表点の初期座標を最近傍とする画素のうち、最小の座標を特定する。そして、座標変換部１０５は、特定した座標をその小領域の座標系の原点に決定する。このように、座標変換部１０５は、領域分割された小領域ごとに固有の座標系を決定し、処理対象の画像上の各画素の位置座標を、各画素が属する小領域に対応する座標系の座標値に変換する。
【００３６】
図１に戻って、キャッシュメモリ１０６は、主記憶メモリ１０２のデータを一時的に格納（保持）する。また、キャッシュメモリ１０６は、後述する特徴量演算部１０７が１ブロックの処理で演算する小領域ごとの特徴量データ（累積演算値）を格納（保持）する。キャッシュメモリ１０６は、処理の開始前に、ＣＰＵ１０１から特徴量データの演算を行う小領域の領域ラベルＬを通知され、主記憶メモリ１０２に格納されている特徴量データのうち、該当する領域ラベルＬの特徴量データを内部メモリにコピーする。
【００３７】
キャッシュメモリ１０６のサイズは、１ブロック内の代表点とその周囲の代表点である計２５個の領域ラベルＬに対応する特徴量データを格納可能なサイズであり、本実施形態では、３２ｂｙｔｅ＊２５＝８００ｂｙｔｅとする。キャッシュメモリ１０６には、アドレス０番地に最も小さい領域ラベルＬに対応する特徴量データを格納し、昇順に３２ｂｙｔｅずつ２５個の特徴量データを格納する。
キャッシュメモリ１０６は、特徴量演算部１０７により領域ラベルＬが引き渡されると、対応する領域ラベルＬの特徴量データをリード、またはライトする。引き渡された領域ラベルＬがキャッシュメモリ１０６内部に格納されていない領域ラベルＬであるときは、主記憶メモリ１０２にリード、またはライトする。特徴量演算部１０７により１ブロックの処理が完了すると、キャッシュメモリ１０６は、内部に格納している全特徴量データを主記憶メモリ１０２に書き戻す。
【００３８】
キャッシュメモリ１０６は、キャッシュメモリ１０６のアドレスと格納している特徴量データに対応する領域ラベルＬとを対応付けるテーブルを内部に備える。図８にテーブルを示す。図８において、フィールド１０６ａの情報は、キャッシュメモリ１０６のアドレスであり、フィールド１０６ｂの情報は、格納されている特徴量データに対応する領域ラベルＬである。図８では、図３のブロック２０４内の代表点とその周囲の代表点（範囲２１３内の２５個の代表点）の領域ラベルＬに対応する特徴量データを格納した例を示している。なお、主記憶メモリ１０２のアドレスは、主記憶メモリ１０２のベースアドレスに３２＊Ｌを加算することで求められる。
【００３９】
図１の特徴量演算部１０７は、座標変換部１０５が出力する変換後の画素データ（Ｒ，Ｇ，Ｂ，ｘ’，ｙ’）を入力として画素単位で累積演算を行い、特徴量データを演算する。ここで、特徴量演算部１０７は、同一の領域ラベルＬが割り振られた複数の画素の変換後の座標値を用いて累積演算を行い、その領域ラベルＬに対応する特徴量データを演算する。なお、特徴量演算部１０７は専用ハードウェアとして動作するようにしてもよいし、ＣＰＵ１０１がプログラムを実行することにより特徴量演算部１０７の機能が実現されるようにしてもよい。
上述したように、特徴量演算部１０７は、領域特徴量として、Ｒ、Ｇ、Ｂの色平均等の画質特徴量に加えて、小領域の面積（０次モーメント）、小領域の重心（１次モーメント）、小領域の分散（２次モーメント）等の幾何特徴量を演算する。特徴量演算部１０７は、１次モーメントおよび２次モーメントについては、以下に示す特徴量データ（累積演算値）を演算する。
【００４０】
【数２】
2017182480.tif 000004
【００４１】
図９は、特徴量演算部１０７が実行する特徴量演算処理手順を示すフローチャートである。図９の処理は、特徴量演算部１０７が専用のハードウェアとして動作することで実現されるようにしてもよいし、ＣＰＵ１０１が必要なプログラムを読み出して実行することにより実現されるようにしてもよい。この図７の処理は、特徴量演算部１０７が、座標変換部１０５から画素データ（Ｒ，Ｇ，Ｂ，ｘ’，ｙ’）および領域ラベルＬを受け取ると開始される。まずＳ１１において、特徴量演算部１０７は、キャッシュメモリ１０６に領域ラベルＬを引き渡し、キャッシュメモリ１０６から領域ラベルＬの特徴量データ（累積演算値）ＲＤａｔａをリードする。
【００４２】
次にＳ１２では、特徴量演算部１０７は、画素データ（Ｒ，Ｇ，Ｂ，ｘ’，ｙ’）を用いて累積演算処理を実行する。具体的には、特徴量演算部１０７は、リードデータの０番地データに対し、１を加算することで０次モーメントを演算する（０ｘ００番地データ＝＋１）。また、特徴量演算部１０７は、４番地データにｘ’、８番地データにｙ’を加算することで１次モーメントを演算する（０ｘ０４番地データ＝＋ｘ’、０ｘ０８番地データ＝＋ｙ’）。
さらに、特徴量演算部１０７は、ｃ番地データにｘ’2、１０番地データにｙ’2を加算することで２次モーメントを演算する（０ｘ０ｃ番地データ＝＋ｘ’ 2、０ｘ１０番地データ＝＋ｙ’ 2）。また、特徴量演算部１０７は、１４番地データにＲ、１８番地データにＧ、１ｃ番地データにＢを加算することで色平均を演算する（０ｘ１４番地データ＝＋Ｒ、０ｘ１８番地データ＝＋Ｇ、０ｘ１ｃ番地データ＝＋Ｂ）。
最後にＳ１３では、特徴量演算部１０７は、領域ラベルＬと、Ｓ１２において累積演算された特徴量データ（累積演算値）ＷＤａｔａとを引き渡し、キャッシュメモリ１０６にライトする。
【００４３】
以下、本実施形態における画像処理装置１００の動作について具体的に説明する。ここでは、画像処理装置１００が、図３のブロック２０１、２０２、２０３、２０４の順に処理する場合について説明する。
はじめに、画像処理装置１００は、ブロック２０１を処理する。この場合、ＣＰＵ１０１は、処理対象であるブロック２０１内とブロック２０１の周囲との計１６個の代表点の情報として、領域ラベルＬ＝０〜３、４８〜５１、９６〜９９、１４４〜１４７をＤＭＡＣ１０３およびキャッシュメモリ１０６に通知する。
すると、キャッシュメモリ１０６は、通知された領域ラベルＬをもとに、図８のテーブルのフィールド１０６ｂを更新する。つまり、フィールド１０６ｂには、上記の１６個の領域ラベルＬの情報が格納される。また、ＤＭＡＣ１０３は、主記憶メモリ１０２から、領域分割処理に必要なパラメータと上記の計１６個の代表点の情報とを取得し、これらを領域分割部１０４に転送する。領域分割部１０４は、ＤＭＡＣ１０３から受け取った情報に基づいて領域分割処理を実施し、ブロック２０１の各画素を上記１６個の代表点のいずれかの領域ラベルＬに割り振る。
【００４４】
座標変換部１０５は、図７の処理フローに従い、各画素が割り振られた領域ラベルＬについて、それぞれ小領域に固有の座標系の原点座標を決定する。そして、座標変換部１０５は、ブロック２０１内の各画素の座標値（ｘ，ｙ）を、各画素が属する小領域に対応する座標系の座標値（ｘ’，ｙ’）に変換する。座標変換部１０５が、ブロック２０１内の各画素が割り振られ得る領域ラベルＬについて、それぞれ原点座標を算出した結果を表１に示す。
【００４５】
【表１】
2017182480.tif 000005
【００４６】
特徴量演算部１０７は、座標変換部１０５により変換された座標値（Ｒ，Ｇ，Ｂ，ｘ’，ｙ’）を用いて、対応する領域ラベルＬの特徴量データ（累積演算値）を演算し、領域ラベルＬと演算した特徴量データとをキャッシュメモリ１０６に引き渡す。これにより、キャッシュメモリ１０６の対応するアドレスに領域ラベルＬの特徴量データが格納される。特徴量演算部１０７は、ブロック２０１内の画素が割り振られた全ての領域ラベルＬについて特徴量データの演算を行い、キャッシュメモリ１０６に特徴量データを格納する。
ブロック２０１の処理が完了すると、キャッシュメモリ１０６は、図８のテーブルのフィールド１０６ａのアドレスに格納された特徴量データを、主記憶メモリ１０２の対応するアドレスにそれぞれコピーする。これにより、主記憶メモリ１０２が小領域別に特徴量データを格納する領域中で、領域ラベルＬ＝０〜３、４８〜５１、９６〜９９、１４４〜１４７の特徴量データが更新される。
【００４７】
続いて、画像処理装置１００は、ブロック２０２を処理する。この場合、ＣＰＵ１０１は、処理対象であるブロック２０２内とブロック２０２の周囲との計２０個の代表点の情報として、領域ラベルＬ＝２〜６、５０〜５４、９８〜１０２、１４６〜１５０をＤＭＡＣ１０３およびキャッシュメモリ１０６に通知する。
すると、キャッシュメモリ１０６は、通知された領域ラベルＬをもとに、図８のテーブルのフィールド１０６ｂを更新し、主記憶メモリ１０２に格納された特徴量データのうち、通知された領域ラベルＬに対応する特徴量データを内部にコピーする。このとき、キャッシュメモリ１０６は、主記憶メモリ１０２から、ブロック２０１の処理にてコピーされた領域ラベルＬ＝２，３，５０，５１，９８，９９，１４６，１４７の特徴量データを読み込む。このブロック２０２の処理では、ブロック２０１における特徴量データの演算結果に対してブロック２０２における特徴量データの演算結果を累積することになる。
【００４８】
また、ＤＭＡＣ１０３は、主記憶メモリ１０２から、領域分割処理に必要なパラメータと上記の計２０個の代表点の情報とを取得し、これらを領域分割部１０４に転送する。領域分割部１０４は、ＤＭＡＣ１０３から受け取った情報に基づいて領域分割処理を実施し、ブロック２０２の各画素を上記２０個の代表点のいずれかの領域ラベルＬに割り振る。
座標変換部１０５は、図７の処理フローに従い、各画素が割り振られた領域ラベルＬについて、それぞれ小領域に固有の座標系の原点座標を決定する。そして、座標変換部１０５は、ブロック２０２内の各画素の座標値（ｘ，ｙ）を、各画素が属する小領域に対応する座標系の座標値（ｘ’，ｙ’）に変換する。座標変換部１０５が、ブロック２０２内の各画素が割り振られ得る領域ラベルＬについて、それぞれ原点座標を算出した結果を表２に示す。
【００４９】
【表２】
2017182480.tif 000006
【００５０】
特徴量演算部１０７は、座標変換部１０５により変換された座標値（Ｒ，Ｇ，Ｂ，ｘ’，ｙ’）を用いて対応する領域ラベルＬの特徴量データ（累積演算値）を演算し、領域ラベルＬと演算した特徴量データとをキャッシュメモリ１０６に引き渡す。このとき、領域ラベルＬ＝２，３，５０，５１，９８，９９，１４６，１４７については、キャッシュメモリ１０６から特徴量データをリードし、リードデータに対して累積演算を行う。これにより、キャッシュメモリ１０６に格納された領域ラベルＬの特徴量データが更新される。特徴量演算部１０７は、ブロック２０１内の画素が割り振られた全ての領域ラベルＬについて特徴量データの演算を行い、キャッシュメモリ１０６に特徴量データを格納する。
【００５１】
このように、領域ラベルＬ＝２，３，５０，５１，９８，９９，１４６，１４７については、ブロック２０１における特徴量データの演算結果に対してブロック２０２における特徴量データの演算結果を累積する。本実施形態では、座標変換部１０５が小領域ごとに固有の座標系を決定するため、原点座標はブロックに依存せず一意に決定できる。したがって、複数のブロックに跨って割り振られた領域ラベルＬ、例えばブロック２０１とブロック２０２の両方に割り振られる領域ラベルＬ＝５１の幾何特徴量は、同一の原点座標からの座標値を用いて演算することができる。そのため、座標系を統一するといった複雑な処理を追加することなく、異なるブロックの演算結果を累積することができる。
【００５２】
ブロック２０２の処理が完了すると、キャッシュメモリ１０６は、図８のテーブルのフィールド１０６ａのアドレスに格納された特徴量データを、主記憶メモリ１０２の対応するアドレスにそれぞれコピーする。これにより、主記憶メモリ１０２が小領域別に特徴量データを格納する領域中で、領域ラベルＬ＝２〜６，５０〜５４，９８〜１０２，１４６〜１５０の特徴量データが更新される。画像処理装置１００は、ブロック２０３および２０４についても同様に処理する。
【００５３】
そして、画像処理装置１００は、画像中の全てのブロックの処理が終了すると、小領域別に演算された特徴量データ（累積演算値）を加工し、最終的な小領域ごとの幾何特徴量を演算する。つまり、最終的に演算された上記（６）式や上記（７）式に示す小領域ごとの累積演算値と、各小領域を構成する画素の数ｎとを用いて、上記（２）式や上記（３）式に示す幾何特徴量を演算する。ただし、小領域の重心を表す１次モーメントについては、座標変換による原点座標のオフセット分を補正する処理が必要である。具体的には、原点座標が（Ｘｓ，Ｙｓ）である場合、座標値Ｘｓ、Ｙｓをそれぞれ加算する補正が必要である。
【００５４】
【数３】
2017182480.tif 000007
【００５５】
以上のように、画像処理装置１００は、所定の制約条件のもとで、画像を複数の局所的な小領域に分割する領域分割処理を行う。このとき、画像処理装置１００は、分割された小領域ごとに固有の座標系を決定し、画像の各画素の座標値を、各画素が属する小領域に対応する座標系の座標値に変換する。そして、画像処理装置１００は、変換された座標値を用いて小領域の特徴量を演算する。また、画像処理装置１００は、演算された特徴量を保持するメモリ（主記憶メモリ１０２やキャッシュメモリ１０６）を備える。
このように、画像処理装置１００は、クラスタリングされた小領域に局所性があることを利用して、小領域ごとに固有の座標系を決定するので、各画素の座標値をコンパクトなローカル座標系の座標値に変換することができる。したがって、画像処理装置１００は、コンパクトなビット数で小領域の特徴量を演算することができ、特徴量の演算結果のデータ量（桁数）を削減することができる。
【００５６】
画素の位置座標は、画像の原点から離れるほど増加する。そのため、特徴量が画素の位置座標を用いたデータである場合、処理対象の画像サイズが大きくなるほど特徴量のデータ量（桁数）が増加する。例えば、図３のブロック２０１内の画素の座標値は、ｘ（ｉ）＝０〜２５４、ｙ（ｉ）＝０〜２５４であり、ｘ（ｉ）、ｙ（ｉ）は共に８ビットのデータ幅で表される。一方、図３のブロック２０５内の画素の座標値は、ｘ（ｉ）＝３８２４〜４０７９、ｙ（ｉ）＝１７８４〜２０３９であり、ｘ（ｉ）は１２ビット、ｙ（ｉ）は１１ビットのデータ幅で表される。したがって、画素の位置座標をそのまま用いて特徴量を演算した場合、処理対象の画像サイズが大きくなるほど特徴量の演算結果のデータ量（桁数）が増加してしまう。その結果、特徴量を格納するためのメモリのサイズも大きくする必要がある。
【００５７】
これに対して、本実施形態では、処理対象の画像サイズの増加に依存させずに、特徴量の演算結果のデータ量（桁数）を削減することができるので、特徴量を保持（格納）するメモリサイズを小さく抑えることができる。
また、画像処理装置１００は、画像を複数のブロックに分け、ブロック単位で処理を行う。処理対象のブロックを切り替える際、画像処理装置１００は、主記憶メモリ１０２に対し、処理したブロックの特徴量データを書き戻し、次に処理するブロックで必要とする特徴量データを、主記憶メモリ１０２から読み出す。主記憶メモリ１０２へのアクセスは、データを要求してから到着するまでにレイテンシがかかる。書き戻しと読み出しのデータ量が大きいと、主記憶メモリ１０２へのアクセスがボトルネックになり、特徴量データの演算性能が上がらないという問題が生じる。さらには、主記憶メモリ１０２の帯域を消費（圧迫）するため、画像処理装置１００全体の性能が上がらないという問題も生じる。これらの問題は、画像サイズが大きくなるほど主記憶メモリ１０２に対して読み書きするデータのデータ量が大きくなることで、顕著に発生し得る。
【００５８】
これに対して、本実施形態では、処理対象の画像サイズの増加に依存させずに、特徴量の演算結果のデータ量（桁数）を削減することができるので、メモリに対するデータの読み書きに要する時間を短くすることができる。その結果、画像処理装置１００の処理性能を向上させることができる。
さらに、画像処理装置１００は、領域分割された小領域ごとに固有の座標系を決定するため、小領域ごとに座標系を一意に決めることができる。そのため、小領域が複数のブロックに跨る場合であっても、異なるブロックの処理においてそれぞれ演算した小領域の特徴量データをそのまま累積した結果を用いて、複数のブロックに跨る小領域の特徴量を演算することができる。
特徴量データのデータ量を削減するために、画像を複数のブロックに分け、ブロックごとに座標系を設定することも考えられる。しかしながら、この場合、クラスタリングされた小領域が複数のブロックに跨る場合、異なる座標系で演算された特徴量データを個別に保持しておき、最後に座標系を合わせて累積する処理が必要である。このように、特徴量データを保持するコストや追加の演算コストがかかってしまう。
【００５９】
これに対して、本実施形態では、上記のような追加の処理コストを抑えることができる。なお、小領域ごとに固有のローカル座標系を用いて特徴量を演算する場合、領域の重心を表す１次モーメントについては、上記（８）式に示すように、ローカル座標系のオフセット分だけ演算値を補正する必要があるが、この処理の追加コストは十分小さい。
また、画像処理装置１００は、座標変換処理に際し、領域分割処理の制約条件に基づいて座標系の原点を決定する。したがって、画像処理装置１００は、各画素の位置座標を、領域分割処理により得られた小領域に応じた原点座標からのオフセット座標に変換し、小領域ごとの特徴量を演算することができる。
【００６０】
画像処理装置１００は、領域分割処理として、各画素を、画像上に配置された、小領域をそれぞれ代表する複数の代表点のいずれかにクラスタリングする処理を行う。画像処理装置１００が原点を決定するために用いる制約条件は、代表点の配置の間隔を示すステップサイズと、クラスタリングする代表点を探索する範囲を示すサーチレンジとである。つまり、画像処理装置１００は、領域分割処理により小領域に属する可能性のある画素の位置座標を考慮して原点を決定することができる。したがって、画像処理装置１００は、容易かつ適切に小領域ごとに固有の座標系を決定することができる。
【００６１】
また、画像処理装置１００は、特定の代表点にクラスタリングする座標空間を所定範囲に限定する領域分割処理を行うので、小領域の大きさを限定し、小領域ごとに固有の座標系をコンパクトにすることができる。
さらに、画像処理装置１００は、領域分割処理により同一の小領域に属する可能性のある複数の画素のうち最小の座標値を有する画素を、その小領域に対応する座標系の原点として決定する。本実施形態のように、ステップサイズを８５画素、サーチレンジを１ステップサイズである場合、１つの小領域に属する可能性のある画素は、上記原点からｘｙ方向にそれぞれ０〜＋２５５の範囲内に位置することになる。したがって、原点座標を、上記のように最小の座標に決定することで、画像処理装置１００は、各画素の座標変換を容易に行うことができる。上記の例の場合、各画素の座標値を上記原点からのオフセット座標に変換することで、各画素の座標値を８ビットのデータ幅で表すことができる。
【００６２】
このように、画像処理装置１００は、特定の代表点にクラスタリングする座標空間を所定範囲に限定する領域分割処理によりクラスタリングされた小領域に属する画素の座標値を、上記所定範囲のうち、最小の座標を原点とする座標系の座標値に変換する。そのため、画素の位置座標を用いた特徴量である幾何特徴量のデータ幅を、画像サイズに依存せず一定にすることができる。
【００６３】
換言すると、画像処理装置１００は、領域分割処理の制約条件に応じて、小領域ごとの特徴量の演算結果のデータ幅が所定幅となるように設定することができる。特徴量のデータ幅を決定する制約条件は、クラスタリングする代表点を探索する範囲を示すサーチレンジである。サーチレンジが大きいほど、１つの小領域に属する可能性のある画素の範囲は広くなるため、各画素の座標値を小領域に固有の座標系の座標値で表した際のデータ幅も大きくなる。画像処理装置１００では、特徴量のデータ幅が所定幅（本実施形態では、０次モーメントのデータ幅が８ビット、１次モーメントのデータ幅が２４ビット、２次モーメントのデータ幅が３２ビット）となるように、領域分割処理の制約条件が決定されている。
【００６４】
また、画像処理装置１００は、画像の幾何的な特徴を表す幾何特徴量を演算する。幾何特徴量は、領域の面積や重心、重心からの分散を表す情報を含む。このように、画像処理装置１００は、特徴量として幾何特徴量を演算することで、適切に領域認識を行うことができる。
以上のように、本実施形態における画像処理装置１００は、追加の演算コストを小さく抑えつつ、画像サイズの増加による幾何特徴量のデータ量およびメモリサイズの増加を抑えることができる。そのため、画像処理装置１００は、幾何特徴量の演算に際して発生する主記憶メモリ１０２からのデータ読み出し時間を短くし、装置全体の処理性能を向上させることができる。
【００６５】
（変形例）
上記実施形態においては、画像処理装置１００がキャッシュメモリ１０７を備える場合について説明したが、キャッシュメモリ１０７は備えていなくてもよい。この場合、主記憶メモリ１０２に対して累積演算結果のリードおよびライトが発生するが、上述したように累積和の桁数を削減することにより、主記憶メモリ１０２からのデータ読み出し時間を短くすることができ、上述した実施形態と同様の効果が得られる。
また、上記実施形態においては、画像をブロックに分割し、ブロック単位で処理をする場合について説明したが、ブロックに分割しなくてもよい。この場合にも累積和の桁数を削減し、上述した実施形態と同様の効果が得られる。
さらに、上記実施形態においては、ハードウェアで構成される画像処理装置１００について説明したが、画像処理装置１００のすべての機能をＣＰＵ等で行うソフトウェア処理により実現する場合であっても、同様の効果が得られる。
【００６６】
また、上記実施形態においては、小領域ごとに固有の座標系の原点座標は、領域ラベルＬが割り振られる可能性のある複数の画素の座標のうち最小の座標としたが、小領域ごとに固有の座標系を決定できればよく、原点の決定方法は上記に限定されない。
さらに、上記実施形態においては、画像処理装置１００は、特徴量として、ＲＧＢ色平均、０次モーメント、ｘ座標の１次モーメント、ｙ座標の１次モーメント、ｘ座標の２次モーメント、ｙ座標の２次モーメントを演算する場合について説明した。しかしながら、画像処理装置１００が演算する特徴量は上記に限定されない。例えば、画質特徴量として色分散を演算してもよいし、幾何特徴量としてＸＹモーメントを演算してもよい。
また、上記実施形態においては、画像処理装置１００は、ＳＬＩＣ手法を用いた領域分割処理を行う場合について説明したが、領域分割処理の手法は上記に限定されるものではない。例えば、Ｋ平均法（k-means clustering）などの手法を用いることもできる。
【００６７】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１００…画像処理装置、１０１…ＣＰＵ、１０２…主記憶メモリ、１０４…領域分割部、１０５…座標変換部、１０５ａ…設定レジスタ、１０５ｂ…代表点選択部、１０５ｃ…原点選択部、１０５ｄ…座標値変換部、１０７…特徴量演算部
【図１】
2017182480.tif 000008
【図２】
2017182480.tif 000009
【図３】
2017182480.tif 000010
【図４】
2017182480.tif 000011
【図５】
2017182480.tif 000012
【図６】
2017182480.tif 000013
【図７】
2017182480.tif 000014
【図８】
2017182480.tif 000015
【図９】
2017182480.tif 000016