(57)【要約】  二値画像を所定サイズの複数のブロック画像に分割し、任意の順番でブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行し、仮ラベル付与済のブロック画像における連結成分と、仮ラベル付与済のブロック画像に隣接する所定のブロック画像における連結成分と、の仮ラベルのマージ処理を実行し、全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与する。
2018020623.tif 000002
【特許請求の範囲】
【請求項１】
二値画像を所定サイズの複数のブロック画像に分割する分割手段と、
任意の順番で前記ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリング手段と、
基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージ手段と、
前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリング手段と、
を備え、
前記仮ラベリング手段および前記マージ手段は、
複数の前記ブロック画像に対して並列に実行することを特徴とする、画像処理装置。
【請求項２】
前記仮ラベル間の同値関係に関する同値ラベル管理データを記憶する同値ラベル管理記憶手段、
を更に備え、
前記マージ手段は、
前記基準ブロック画像における前記連結成分と、前記隣接ブロック画像における前記連結成分と、の前記仮ラベルの前記マージ処理を、ユニオンファインドアルゴリズムに基づいて、前記同値ラベル管理記憶手段に記憶された前記同値ラベル管理データをコンペアアンドスワップ命令を用いて更新することで実行する、請求項１に記載の画像処理装置。
【請求項３】
前記マージ手段は、
前記仮ラベリング手段により、前記基準ブロック画像に隣接する所定の前記ブロック画像に対する前記仮ラベルの付与が完了した場合、前記基準ブロック画像における前記連結成分と、前記所定のブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行する、請求項１または２に記載の画像処理装置。
【請求項４】
前記隣接ブロック画像は、
前記基準ブロック画像に隣接する左と左上と上と右上との４方向の仮ラベル付与済の前記ブロック画像である、請求項１から３のいずれか一つに記載の画像処理装置。
【請求項５】
前記マージ手段は、
前記基準ブロック画像の左上の画素が前記連結成分を構成し、当該左上の画素の左上に隣接して、前記基準ブロック画像の左上に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項１から４のいずれか一つに記載の画像処理装置。
【請求項６】
前記マージ手段は、
前記基準ブロック画像の最も上の行を構成する画素が前記連結成分を構成し、当該最も上の行を構成する画素の上に隣接して、前記基準ブロック画像の上に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項１から４のいずれか一つに記載の画像処理装置。
【請求項７】
前記マージ手段は、
前記基準ブロック画像の右上の画素が前記連結成分を構成し、当該右上の画素の右上に隣接して、前記基準ブロック画像の右上に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項１から４のいずれか一つに記載の画像処理装置。
【請求項８】
前記マージ手段は、
前記基準ブロック画像の最も左の列を構成する画素が前記連結成分を構成し、当該最も左の列を構成する画素の左に隣接して、前記基準ブロック画像の左に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項１から４のいずれか一つに記載の画像処理装置。
【請求項９】
前記真ラベリング手段は、
前記マージ処理が実行された前記二値画像に対してラスタスキャンを行い、前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある前記代表元を前記真ラベルとして付与する、請求項１から８のいずれか一つに記載の画像処理装置。
【請求項１０】
前記真ラベリング手段は、
前記マージ処理が実行された複数の前記ブロック画像に対して、並列に、ラスタスキャンを行い、前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある前記代表元を前記真ラベルとして付与する、請求項１から８のいずれか一つに記載の画像処理装置。
【請求項１１】
前記複数のブロック画像は、
任意に選択された前記ブロック画像である、請求項１０に記載の画像処理装置。
【請求項１２】
アクセラレータ、
を更に備えた、請求項１から１１のいずれか一つに記載の画像処理装置。
【請求項１３】
二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、
任意の順番で前記ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、
基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージステップと、
前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、
を含み、
前記仮ラベリングステップおよび前記マージステップにおける処理は、
複数の前記ブロック画像に対して並列に実行されることを特徴とする、画像処理方法。
【請求項１４】
二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、
任意の順番で前記ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、
基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージステップと、
前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、
をコンピュータに実行させ、
前記仮ラベリングステップおよび前記マージステップにおける処理を、
複数の前記ブロック画像に対して並列に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、および、プログラムに関する。
【背景技術】
【０００２】
従来から、二値画像に対する連結成分抽出（ラベリング）処理を行う技術が開示されている。【０００３】
ここで、二値画像を分割したブロック画像に対するラベリング処理を分割統治法に基づいて並列処理し、ラベリング結果を再帰的に統合する技術が開示されている（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の画像処理装置（特許文献１）においては、各統合処理開始前に行われる、ブロック画像のラベリングまたは統合処理の完了待ち合わせ、および、各統合処理完了時に行われる、更新されたラベル情報のメモリへの書き戻しによるオーバーヘッドが無視できないという問題点を有していた。【０００６】
本発明は、上記問題点に鑑みてなされたもので、再帰的な統合処理において必要となる多段階の同期処理を不要にすることで、メモリアクセス、演算および同期処理のオーバーヘッドを軽減し、ラベリング処理を高速かつ低消費電力に実行することができる画像処理装置、画像処理方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
このような目的を達成するため、本発明に係る画像処理装置は、二値画像を所定サイズの複数のブロック画像に分割する分割手段と、任意の順番で前記ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリング手段と、基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージ手段と、前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリング手段と、を備え、前記仮ラベリング手段および前記マージ手段は、複数の前記ブロック画像に対して並列に実行することを特徴とする。【０００８】
また、本発明に係る画像処理方法は、二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、任意の順番で前記ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージステップと、前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、を含み、前記仮ラベリングステップおよび前記マージステップにおける処理は、複数の前記ブロック画像に対して並列に実行されることを特徴とする。【０００９】
また、本発明に係るプログラムは、二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、任意の順番で前記ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージステップと、前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、をコンピュータに実行させ、前記仮ラベリングステップおよび前記マージステップにおける処理を、複数の前記ブロック画像に対して並列に実行させることを特徴とする。
【発明の効果】
【００１０】
この発明によれば、実用上問題となりうるオーバーヘッドを解消した並列アルゴリズムを実装することで、高速かつ低消費電力のラベリング処理を実現することができる。【００１１】
また、この発明によれば、各ブロックについて１回のみ統合処理を行うため、統合処理の開始に必要な同期処理は、ブロック画像ごとのラベリング処理完了待ちのみであり、統合処理の完了待ちによる同期処理のコストを抑えることができる。【００１２】
また、この発明によれば、再帰的な統合処理、および、再帰的な統合処理に必要となる多段階の同期処理（待ち合わせ）が不要なため、メモリアクセス、演算および同期処理のオーバーヘッドを軽減し、性能劣化を解消することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施形態に係る画像処理装置の構成の一例を示すブロック図である。
【図２】図２は、本実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。
【図３】図３は、本実施形態の画像処理装置における処理の一例を示すフローチャートである。
【図４】図４は、本実施形態における入力画像の一例を示す図である。
【図５】図５は、本実施形態におけるブロック画像の一例を示す図である。
【図６】図６は、本実施形態における仮ラベリング完了待機の一例を示す図である。
【図７】図７は、本実施形態におけるマージ処理の一例を示す図である。
【図８】図８は、本実施形態における真ラベリングの一例を示す図である。
【図９】図９は、本実施形態における入力画像の一例を示す図である。
【図１０】図１０は、本実施形態における仮ラベリングの一例を示す図である。
【図１１】図１１は、本実施形態における真ラベリングの一例を示す図である。
【図１２】図１２は、本実施形態におけるラベル画像の一例を示す図である。
【図１３】図１３は、本実施形態における入力画像の一例を示す図である。
【図１４】図１４は、本実施形態における入力画像の一例を示す図である。
【図１５】図１５は、本実施形態における測定結果の一例を示す図である。
【図１６】図１６は、本実施形態における測定結果の一例を示す図である。
【図１７】図１７は、本実施形態における測定結果の一例を示す図である。
【図１８】図１８は、本実施形態における測定結果の一例を示す図である。
【図１９】図１９は、本実施形態における測定結果の一例を示す図である。
【図２０】図２０は、本実施形態における測定結果の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明に係る画像処理装置、画像処理方法、および、プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【００１５】
［本実施形態の構成］
以下、本発明の実施形態に係る画像処理装置１００の構成の一例について図１および図２を参照して説明し、その後、本実施形態の処理等について詳細に説明する。図１は、本実施形態に係る画像処理装置１００の構成の一例を示すブロック図である。
【００１６】
但し、以下に示す実施形態は、本発明の技術思想を具体化するための画像処理装置１００を例示するものであって、本発明をこの画像処理装置１００に特定することを意図するものではなく、請求の範囲に含まれるその他の実施形態の画像処理装置１００にも等しく適用し得るものである。
【００１７】
また、本実施形態で例示する画像処理装置１００における機能分散の形態は以下に限られず、同様の効果や機能を奏し得る範囲において、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００１８】
図１に示すように、画像処理装置１００は、概略的に、制御部１０２と、記憶部１０６と、を備えて構成される。また、これら画像処理装置１００の各部は任意の通信路を介して通信可能に接続されている。
【００１９】
ここで、画像処理装置１００は、更に、入出力部を備えて構成されてもよい。ここで、入出力部は、データの入出力（Ｉ／Ｏ）を行う。
【００２０】
また、入出力部は、例えば、キー入力部、タッチパネル、コントロールパッド（例えば、タッチパッド、および、ゲームパッド等）、マウス、キーボード、および／または、マイク等の入力部であってもよい。
【００２１】
また、入出力部は、アプリケーション等の表示画面を表示する表示部（例えば、液晶または有機ＥＬ等から構成されるディスプレイ、モニタ、および、タッチパネル等）、および／または、音声情報を音声として出力する音声出力部（例えば、スピーカ等）等の出力部であってもよい。
【００２２】
また、画像処理装置１００は、更に、インターフェース部を備えていてもよい。ここで、画像処理装置１００は、インターフェース部を介して、外部装置（例えば、画像読取装置等）と相互に通信可能に接続されていてもよい。
【００２３】
また、インターフェース部は、通信回線および／または電話回線等に接続されるアンテナおよび／またはルータ等の通信装置に接続されるインターフェース（ＮＩＣ等）であってもよく、画像処理装置１００とネットワークとの間における通信制御を行う通信インターフェースであってもよい。
【００２４】
ここで、ネットワークは、有線通信および／または無線通信（例えば、ＷｉＦｉ等）の遠隔通信等を含む。また、インターフェース部は、画像読取装置等と制御部１０２との間の入出力制御を行う入出力インターフェースであってもよい。
【００２５】
なお、制御部１０２は、インターフェース部、および、入出力部を制御してもよい。
【００２６】
記憶部１０６は、各種のデータベース、テーブル、および／または、ファイルなどを格納する。また、記憶部１０６は、各種アプリケーションプログラム（例えば、ユーザアプリケーション等）を記憶していてもよい。
【００２７】
また、記憶部１０６は、ストレージ手段であり、例えばＲＡＭ・ＲＯＭ等のメモリ、ハードディスクのような固定ディスク装置、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フレキシブルディスク、および／または、光ディスク等の有形の記憶装置、または、記憶回路を用いることができる。
【００２８】
記憶部１０６には、コントローラ等に命令を与え各種処理を行うためのコンピュータプログラム等が記録されている。
【００２９】
これら記憶部１０６の各構成要素のうち、画像データファイル１０６ａは、画像データを記憶する。ここで、画像データは、二値画像データ、ブロック画像データ、または、ラベル画像データ等であってもよい。
【００３０】
また、同値ラベル管理テーブル１０６ｂは、二値画像における０−画素または１−画素から構成される連結成分に対して付与されるラベル間の同値関係に関する同値ラベル管理データを記憶する。ここで、同値ラベル管理テーブル１０６ｂは、ユニオンファインドアルゴリズムのためのテーブルであってもよい。
【００３１】
ここで、ラベルは、仮ラベルであってもよい。また、同値ラベル管理テーブル１０６ｂのサイズは、仮ラベル数の上限に比例してもよい。
【００３２】
また、制御部１０２は、画像処理装置１００を統括的に制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、および／または、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等を含む有形のメインプロセッサ１０２−１（図１では省略）と、メインプロセッサ１０２−１と並列実行可能なＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＦＰＧＡ、および／または、メニーコアＣＰＵ等を含む有形のアクセラレータ１０２−２（図１では省略）と、から構成されてもよい。
【００３３】
制御部１０２は、制御プログラムと各種の処理手順等を規定したプログラムと所要データとを格納するための内部メモリを有し、これらプログラムに基づいて種々の処理を実行するための情報処理を行う。
【００３４】
ここで、制御部１０２は、大別して、画像取得部１０２ａ、分割部１０２ｂ、仮ラベリング部１０２ｃ、マージ部１０２ｄ、および、真ラベリング部１０２ｅを備える。
【００３５】
画像取得部１０２ａは、画像データを取得する。ここで、画像取得部１０２ａは、二値画像の二値画像データを取得してもよい。また、画像取得部１０２ａは、画像データを画像データファイル１０６ａに格納してもよい。
【００３６】
分割部１０２ｂは、二値画像を所定サイズの複数のブロック画像に分割する。
【００３７】
仮ラベリング部１０２ｃは、二値画像における０−画素または１−画素から構成される連結成分に対して、仮ラベルの付与を実行する。
【００３８】
ここで、仮ラベリング部１０２ｃは、ブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する。
【００３９】
また、仮ラベリング部１０２ｃは、任意の順番でブロック画像を選択し、当該ブロック画像における０−画素または１−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行してもよい。
【００４０】
マージ部１０２ｄは、基準とする仮ラベル付与済のブロック画像である基準ブロック画像における連結成分と、基準ブロック画像に隣接する仮ラベル付与済のブロック画像である隣接ブロック画像における連結成分と、の仮ラベルのマージ処理を実行する。
【００４１】
ここで、マージ部１０２ｄは、基準ブロック画像における連結成分と、隣接ブロック画像における連結成分と、の仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、同値ラベル管理テーブル１０６ｂに記憶された同値ラベル管理データをコンペアアンドスワップ命令を用いて更新することで実行してもよい。
【００４２】
また、マージ部１０２ｄは、仮ラベリング部１０２ｃにより、基準ブロック画像に隣接する所定のブロック画像に対する仮ラベルの付与が完了した場合、基準ブロック画像における連結成分と、所定のブロック画像における連結成分と、の仮ラベルのマージ処理を実行してもよい。
【００４３】
ここで、隣接ブロック画像は、基準ブロック画像に隣接する左と左上と上と右上との４方向の仮ラベル付与済のブロック画像であってもよい。
【００４４】
また、マージ部１０２ｄは、基準ブロック画像の左上の画素が連結成分を構成し、当該左上の画素の左上に隣接して、基準ブロック画像の左上に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。
【００４５】
また、マージ部１０２ｄは、基準ブロック画像の最も上の行を構成する画素が連結成分を構成し、当該最も上の行を構成する画素の上に隣接して、基準ブロック画像の上に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。
【００４６】
また、マージ部１０２ｄは、基準ブロック画像の右上の画素が連結成分を構成し、当該右上の画素の右上に隣接して、基準ブロック画像の右上に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。
【００４７】
また、マージ部１０２ｄは、基準ブロック画像の最も左の列を構成する画素が連結成分を構成し、当該最も左の列を構成する画素の左に隣接して、基準ブロック画像の左に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。
【００４８】
ここで、仮ラベリング部１０２ｃおよびマージ部１０２ｄは、複数のブロック画像に対して並列に実行する。すなわち、マージ部１０２ｄは、複数のブロック画像に対して並列に仮ラベルのマージ処理を実行してもよい。
【００４９】
また、仮ラベリング部１０２ｃによる仮ラベルの付与と、マージ部１０２ｄによる仮ラベルのマージ処理と、を複数のブロック画像に対して並列に実行してもよい。
【００５０】
真ラベリング部１０２ｅは、マージ部１０２ｄによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与する。
【００５１】
ここで、真ラベリング部１０２ｅは、マージ処理が実行された二値画像に対してラスタスキャンを行い、マージ部１０２ｄによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与してもよい。
【００５２】
また、真ラベリング部１０２ｅは、マージ処理が実行された複数のブロック画像に対して、並列に、ラスタスキャンを行い、マージ部１０２ｄによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与してもよい。
【００５３】
ここで、複数のブロック画像は、任意に選択されたブロック画像であってもよい。
【００５４】
更に、図２を参照して、本実施形態に係る画像処理装置１００のハードウェア構成の一例について説明する。図２は、本実施形態に係る画像処理装置１００のハードウェア構成の一例を示すブロック図である。
【００５５】
図２に示すように、画像処理装置１００は、画像処理装置１００における情報処理を実行するメインプロセッサ１０２−１、および、メインプロセッサ１０２−１と情報処理を並列実行可能なアクセラレータ１０２−２、ならびに、ストレージ手段であるメモリ１０６を備えていてもよい。
【００５６】
［本実施形態の処理］
上述した構成の画像処理装置１００で実行される処理の一例について、図３から図１２を参照して説明する。図３は、本実施形態の画像処理装置１００における処理の一例を示すフローチャートである。
【００５７】
図３に示すように、まず、画像取得部１０２ａは、入力画像とする二値画像の二値画像データを取得する（ステップＳＡ−１）。
【００５８】
ここで、図４を参照して、本実施形態における入力画像の一例について説明する。図４は、本実施形態における入力画像の一例を示す図である。
【００５９】
図４に示すように、入力画像（入力例１）は、黒を０−画素で表し、白を１−画素として表した二値画像であってもよい。
【００６０】
図３に戻り、分割部１０２ｂは、入力画像をＭ×Ｎ個のブロック画像に分割する（ステップＳＡ−２）。
【００６１】
ここで、本実施形態においては、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムのための（サイズが仮ラベル数の上限に比例する）同値ラベル管理テーブル１０６ｂを用意してもよい。
【００６２】
ここで、図５を参照して、本実施形態におけるブロック画像の一例について説明する。図５は、本実施形態におけるブロック画像の一例を示す図である。
【００６３】
図５に示すように、本実施形態においては、図４に示す入力例１を４×４ブロックに分割している。
【００６４】
図３に戻り、仮ラベリング部１０２ｃは、任意の順番でブロック画像を選択し、当該ブロック画像における１−画素から構成される連結成分に対して、一意の仮ラベルの付与（仮ラベリング）を実行する（ステップＳＡ−３）。
【００６５】
すなわち、本実施形態においては、ブロック画像のローカルな仮ラベリング処理において、連結成分に対して並列処理全体で一意の仮ラベルが与えられるようにしている。
【００６６】
具体的には、本実施形態において、ブロック画像のローカルな仮ラベリングを行う場合、連結成分に割り当てる仮ラベルは、並列処理全体で一意な番号を使用してもよい。
【００６７】
ここで、並列処理全体で一意な番号とは、例えば、共有の整数資源に対してアトミックな加算命令または減算命令を使用することで得られる番号であってもよい。
【００６８】
そして、本実施形態においては、ブロック画像の仮ラベリングが完了した場合、完了フラグを１にセットしてもよい。
【００６９】
ここで、図５を参照して、本実施形態における仮ラベリングの一例について説明する。
【００７０】
図５に示す仮ラベリングにおいては、任意の順番で選択されたブロック画像における１−画素から構成される連結成分に対して、１からはじまる昇順の番号を使用したラベリングがされてもよい。
【００７１】
図３に戻り、マージ部１０２ｄは、仮ラベリング部１０２ｃによる仮ラベル付与済のブロック画像である基準ブロック画像に隣接する左と左上と上と右上との４方向のブロック画像に対する仮ラベリングが完了するのを待機する（ステップＳＡ−４）。
【００７２】
ここで、図６を参照して、本実施形態における仮ラベリング完了待機の一例について説明する。図６は、本実施形態における仮ラベリング完了待機の一例を示す図である。
【００７３】
図６に示すように、本実施形態においては、各ブロック画像においてマージ処理を行うための周囲４方向（左／左上／上／右上）の仮ラベリングが完了するのを待機する。
【００７４】
ここで、図６に示す「−」は、仮ラベルが付与されていない連結成分を構成する画素を表している。
【００７５】
図３に戻り、マージ部１０２ｄは、基準ブロック画像における連結成分と、左と左上と上と右上との４方向の隣接ブロック画像における連結成分と、の仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、同値ラベル管理テーブル１０６ｂに記憶された同値ラベル管理データをコンペアアンドスワップ（Ｃｏｍｐａｒｅ  Ａｎｄ  Ｓｗａｐ（ＣＡＳ））命令を用いて更新することで実行する（ステップＳＡ−５）。
【００７６】
すなわち、本実施形態においては、ＣＡＳ命令を用いて並列に同値ラベル管理テーブル１０６ｂを更新している。
【００７７】
ここで、図７を参照して、本実施形態におけるマージ処理の一例について説明する。図７は、本実施形態におけるマージ処理の一例を示す図である。
【００７８】
図７に示すように、上から３番目かつ左から３番目のブロック画像においては、周囲４方向のブロック画像との間で、矢印で示すように仮ラベリング結果のマージ処理を行う。
【００７９】
具体的には、本実施形態においては、ブロック画像の最も左上のピクセルｐが１−画素であり、かつ、ピクセルｐの左上のピクセルｑが存在して、かつ、ピクセルｑが１−画素であれば、ｕｎｉｏｎ（ｌａｂｅｌ（ｐ），ｌａｂｅｌ（ｑ））を行ってもよい。
【００８０】
また、本実施形態においては、ブロック画像の最も上の行に含まれるピクセルｐについて、ピクセルｐが１−画素であれば、ピクセルｐの８−近傍ピクセルのうち、１つ上のブロック画像に属する各ピクセルｑについて、ピクセルｑが１−画素であれば、ｕｎｉｏｎ（ｌａｂｅｌ（ｐ），ｌａｂｅｌ（ｑ））を行ってもよい。
【００８１】
また、本実施形態においては、ブロック画像の最も右上のピクセルｐが１−画素であり、ピクセルｐの右上のピクセルｑが存在し、かつ、ピクセルｑが１−画素であれば、ｕｎｉｏｎ（ｌａｂｅｌ（ｐ），ｌａｂｅｌ（ｑ））を行ってもよい。
【００８２】
また、本実施形態においては、ブロック画像の最も左の列に含まれるピクセルｐについて、ピクセルｐが１−画素であれば、ピクセルｐの８−近傍ピクセルのうち、１つ左のブロック画像に属する各ピクセルｑについて、ピクセルｑが１−画素であれば、ｕｎｉｏｎ（ｌａｂｅｌ（ｐ），ｌａｂｅｌ（ｑ））を行ってもよい。
【００８３】
ここで、本実施形態においては、マージ処理中にｕｎｉｏｎ（）で行われる同値ラベル管理テーブル１０６ｂの更新は、ブロック画像間で衝突するため、ＣＡＳ命令を用いてアトミックに行ってもよい。
【００８４】
また、本実施形態においては、ＣＡＳ命令の復帰値から、更新が衝突したことを検出した場合、ｆｉｎｄ（）でルートノードを取得するところからやり直してもよい。
【００８５】
なお、図７に示す矢印は、マージ処理にて行われるｕｎｉｏｎ（）の対象位置を示している。
【００８６】
ここで、図３に示すように、ステップＳＡ−３における仮ラベリング部１０２ｃによる仮ラベルの付与から、ステップＳＡ−５におけるマージ部１０２ｄによる仮ラベルのマージ処理までの処理は、画像処理装置１００がメインプロセッサ１０２−１とアクセラレータ１０２−２とを備えることにより、複数のブロック画像に対して並列に実行される。
【００８７】
例えば、本実施形態においては、２つの仮ラベルｔ１と仮ラベルｔ２とが同値であると判別した場合、仮ラベリングと並列して、ｕｎｉｏｎ（ｔ１，ｔ２）を実行してもよい。
【００８８】
ここで、本実施形態においては、仮ラベリング中にｕｎｉｏｎ（）で行われる同値ラベル管理テーブル１０６ｂの更新は、ブロック画像間で衝突しないため、排他制御は行わなくてもよい。
【００８９】
そして、真ラベリング部１０２ｅは、マージ部１０２ｄによる全てのブロック画像に対するマージ処理が完了するのを待機する（ステップＳＡ−６）。
【００９０】
そして、真ラベリング部１０２ｅは、マージ処理が実行された任意の複数のブロック画像に対して、並列に、ラスタスキャンを行い、マージ部１０２ｄによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与（真ラベリング）する（ステップＳＡ−７）。
【００９１】
このように、本実施形態においては、ブロック画像毎に、並列に、ラスタスキャンし、各１−画素に割り当てられている仮ラベル値ｖをｆｉｎｄ（ｖ）して得られる同値ラベル集合の代表元ｖ’で置き換えてもよい。
【００９２】
ここで、真ラベリング部１０２ｅは、マージ処理が実行された二値画像（入力画像全体）に対してラスタスキャンを行い、マージ部１０２ｄによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与してもよい。
【００９３】
ここで、図８を参照して、本実施形態におけるマージ処理が実行された入力画像全体に対してラスタスキャンした場合の真ラベリングの一例について説明する。図８は、本実施形態における真ラベリングの一例を示す図である。
【００９４】
図８は、図４に示す入力例１に対する、仮ラベリング処理およびマージ処理でのｕｎｉｏｎ（）実行による、同値ラベル集合の推移例を示している。
【００９５】
具体的には、図４に示す入力例１の場合、最終ステップにてルートノードが１である木に集約され、全ノードでｆｉｎｄ（）が１を返すようになる。
【００９６】
なお、一般的に、和集合を求める演算は交換法則および結合法則を満たすため、ｕｎｉｏｎ（）が実行される順番が変化しても最終的に得られるラベル集合は変化しない。ここで、図８に示す木構造おいては、ルートノードだけから構成される木は、省略してある。
【００９７】
また、図８において、太字で示されたノードは、各ステップで参照または更新されたノードを示しており、太字で示されたエッジは、各ステップで参照または更新されたエッジを示している。
【００９８】
ここで、下記ｆｉｎｄ（）とｕｎｉｏｎ（）との擬似コードを用いて、本実施形態におけるＣＡＳ命令を用いた、ｕｎｉｏｎ（）とｆｉｎｄ（）との実装の一例について説明する。
【００９９】
＜疑似コード＞
ｄｅｆ  ｆｉｎｄ（ｘ）
ｐａｒｅｎｔ＝Ａ−ＬＯＡＤ（ｘ．ｐａｒｅｎｔ）
ｉｆ（ｐａｒｅｎｔ＝＝ｘ）  ／＊ｘは、ルートノードか？＊／
ｒｅｔｕｒｎ  ｘ
ｅｌｓｅ
ｒｅｔｕｒｎ  ｆｉｎｄ（ｐａｒｅｎｔ）
ｄｅｆ  ｕｎｉｏｎ（ｘ，ｙ）
ｄｏ｛
ｒｘ＝ｆｉｎｄ（ｘ）
ｒｙ＝ｆｉｎｄ（ｙ）
ｍｉｎ＝ｍｉｎ（ｒｘ，ｒｙ）
ｍａｘ＝ｍａｘ（ｒｘ，ｒｙ）
ｉｆ（ｍｉｎ＝＝ｍａｘ）
ｂｒｅａｋ
ｏｌｄ＝ＣＡＳ（ｍａｘ．ｐａｒｅｎｔ，ｍａｘ，ｍｉｎ）
｝ｗｈｉｌｅ（ｏｌｄ！＝ｍａｘ）  ／＊成功するまでリトライ＊／
【０１００】
ここで、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムにおいては、ＣＡＳ命令によるアトミックな値の更新をＣＡＳ（ｐｔ，ｃｍｐ，ｖａｌ）と示され、アトミックな値の読み込みをＡ−ＬＯＡＤ（ｐｔ）と示されている。
【０１０１】
ここで、ＣＡＳ（ｐｔ，ｃｍｐ，ｖａｌ）は、整数値を指すポインタｐｔと、２つの整数値ｃｍｐおよびｖａｌと、を受け取り、ポインタｐｔが指す値をｏｌｄとして、ｏｌｄとｃｍｐとが一致する場合、ポインタｐｔが指す値をｖａｌにセットし、ｃｍｐを返す。
【０１０２】
一方、ＣＡＳ（ｐｔ，ｃｍｐ，ｖａｌ）は、ｏｌｄとｃｍｐとが一致しない場合、ポインタｐｔが指す値を変更せずにｏｌｄを返す。
【０１０３】
ここで、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムにおいて、ｆｉｎｄ（）は、入力ノードがどの集合に属しているかを求め、ｕｎｉｏｎ（）は、２つの集合を併合するために用いられる。
【０１０４】
そこで、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムでは、集合を木構造で表す方式を想定している。
【０１０５】
この際、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムにおいては、木のルートノードが集合を代表するノードであるとみなし、初期状態において、ラベルの数だけルートノードだけからなる木が存在するものと仮定している。
【０１０６】
なお、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムにおいては、前提として、仮ラベルは、集合から削除しない（なお、本ラベリング処理では、ラベル間の同値関係を求められれば十分であるため、この前提があっても差し支えない）。
【０１０７】
当該前提により、ｕｎｉｏｎ−ｆｉｎｄアルゴリズムにおいては、ｕｎｉｏｎ（）の更新先のノードが、別のｕｎｉｏｎ（）によりすでに別ノードの子孫になっていたとしても、同じ集合に属することが保証される。
【０１０８】
ここで、上記擬似コードにおいて、ｆｉｎｄ（）は、入力ノードが含まれる木のルートノードを返す関数として実装されており、入力ノードの親ノードをＡ−ＬＯＡＤ（）で再帰的に参照している。
【０１０９】
また、上記擬似コードにおいて、ｕｎｉｏｎ（）は、２つの入力ノードｘ，ｙを受け取り、ｘ，ｙのルートノードをそれぞれ求め、ラベル番号の大きい方のルートノードの親ノードを、ＣＡＳ（）によりラベル番号の小さい方のルートノードへ更新している。
【０１１０】
なお、上記擬似コードにおいては、ｘ，ｙのルートノードのラベル番号が一致した場合、何もしない。
【０１１１】
また、上記擬似コードにおいては、ＣＡＳ（）の復帰値ｏｌｄが期待した値と一致するか否かをチェックすることにより、更新が成功したかどうかを判断し、更新が失敗した場合、ルートノードを求めるところからやり直している。
【０１１２】
図３に戻り、画像取得部１０２ａは、真ラベリング部１０２ｅによる全ての連結成分に対する真ラベリングが完了するのを待機する（ステップＳＡ−８）。
【０１１３】
そして、画像取得部１０２ａは、真ラベルが付与された二値画像であるラベル画像のラベル画像データを取得して、画像データファイル１０６ａに格納し（ステップＳＡ−９）、処理を終了する。
【０１１４】
ここで、本実施形態においては、図４に示す入力例１の場合、全ノードでｆｉｎｄ（）が１を返すようになるため、真ラベルを割り当てたラベル画像は、図４と同じものとなる。
【０１１５】
ここで、図９から図１２を参照して、本実施形態におけるマージ処理が実行された入力画像全体に対してラスタスキャンした場合の真ラベリングの一例について説明する。図９は、本実施形態における入力画像の一例を示す図である。図１０は、本実施形態における仮ラベリングの一例を示す図である。図１１は、本実施形態における真ラベリングの一例を示す図である。図１２は、本実施形態におけるラベル画像の一例を示す図である。
【０１１６】
本実施形態においては、図９に示す二値画像（入力例２）が入力画像として取得された場合、図１０に示すように、図９に示す入力例２を４×４ブロックに分割し、任意の順番で選択されたブロック画像における１−画素から構成される連結成分に対して、１からはじまる昇順の番号を使用した仮ラベリングを行う。
【０１１７】
そして、本実施形態においては、図１１に示すように、最終ステップにてルートノードが１、２または３である３つの木に集約されるため、図１２に示すように、真ラベルの出力も１、２または３を真ラベルとして割り当てたラベル画像を取得することができる。
【０１１８】
［実施例］
ここで、図１３から図２０を参照して、本実施形態における性能比較実験の一例について説明する。図１３および図１４は、本実施形態における入力画像の一例を示す図である。図１５から図２０は、本実施形態における測定結果の一例を示す図である。
【０１１９】
まず、本実施例における測定環境としては、メインプロセッサ１０２−１であるＣＰＵ：ＡＲＭ  Ｃｏｒｔｅｘ−Ａ９  ８００ＭＨｚ  １ｃｏｒｅ、アクセラレータ１０２−２であるＧＰＵ：ＡＲＭ  Ｍａｌｉ  Ｔ−６２４  ＧＰＵ  ６００ＭＨｚ  ４ｃｏｒｅｓ、メモリ：２ＧＢ  ＤＤＲ３  １３３３ＭＨｚ、ＯＳ：Ｌｉｎｕｘ（登録商標）（Ｌｉｎａｒｏ  １４．０４  ｋｅｒｎｅｌ  ｖ３．１０．４１）、および、ＧＰＵ動作環境：ＯｐｅｎＣＬ１．１  Ｆｕｌｌ  Ｐｒｏｆｉｌｅを用いて行った。
【０１２０】
また、本実施例における測定時間としては、ラベリング処理開始から、真ラベル格納完了までの時間を計測し、画像入出力、メモリ確保およびメモリ解放にかかる時間を計測に含めていない。
【０１２１】
また、本実施例における入力画像は、図１３に示すサイズ：Ｎ×Ｎｐｉｘｅｌの画像Ａ（ｈｔｔｐ：／／ｓｉｐｉ．ｕｓｃ．ｅｄｕ／ｄａｔａｂａｓｅ／ｄａｔａｂａｓｅ．ｐｈｐ？ｖｏｌｕｍｅ＝ａｅｒｉａｌｓ＆ｉｍａｇｅ＝３３＃ｔｏｐ）、および、図１４に示すサイズ：Ｎ×Ｎｐｉｘｅｌの画像Ｂ（ｈｔｔｐ：／／ｓｉｐｉ．ｕｓｃ．ｅｄｕ／ｄａｔａｂａｓｅ／ｄａｔａｂａｓｅ．ｐｈｐ？ｖｏｌｕｍｅ＝ｔｅｘｔｕｒｅｓ＆ｉｍａｇｅ＝４０＃ｔｏｐ）を使用している（Ｎ＝２５６、５１２、１０２４、２０４８、または、４０９６）。
【０１２２】
また、本実施例における並列処理のブロックサイズは、１６×１６ｐｉｘｅｌとしている。また、本実施例における測定は、各５回行い、平均値を測定値として取得している。
【０１２３】
なお、本実施例において、本願実装例および特許文献１実装例におけるブロック画像ごとのラベリングには、Ｋｅｓｈｅｎｇらの２−パスアルゴリズム（Ｋｅｓｈｅｎｇ  Ｗｕ  ｅｔ  ａｌ．，”Ｏｐｔｉｍｉｚｉｎｇ  ｃｏｎｎｅｃｔｅｄ  ｃｏｍｐｏｎｅｎｔ  ｌａｂｅｌｉｎｇ  ａｌｇｏｒｉｔｈｍｓ”，ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＳＰＩＥ  ｍｅｄｉｃａｌ  ｉｍａｇｉｎｇ  ｃｏｎｆｅｒｅｎｃｅ  ２００５）をＣ＋＋言語で実装したアルゴリズムを使用している。
【０１２４】
また、本実施例において、アクセラレータ１０２−２がラベリング処理を並列実行する際の並列プログラミングフレームワークは、ＯｐｅｎＣＬ（ｈｔｔｐ：／／ｗｗｗ．ｋｈｒｏｎｏｓ．ｏｒｇ／ｒｅｇｉｓｔｒｙ／ｃｌ／ｓｐｅｃｓ／ｏｐｅｎｃｌ−１．２．ｐｄｆ）を使用している。
【０１２５】
そして、これらの設定により画像Ａに対するラベリング処理の測定を行ったところ、図１５に示すように、全ての画像サイズにおいて、特許文献１実装例の実行時間は、本願実装例の実行時間の１０倍以上となった。
【０１２６】
また、図１６に示すように、画像Ａの全ての画像サイズにおいて、本願実装例のフレームレートは、特許文献１実装例のフレームレートを大幅に上回った。
【０１２７】
更に、図１７に示すように、画像Ａのピクセル数に対する実行時間の変化は、画像サイズが大きくなるほど、本願実装例と特許文献１実装例との差が大きくなった。
【０１２８】
また、これらの設定により画像Ｂに対するラベリング処理の測定を行ったところ、図１８に示すように、全ての画像サイズにおいて、特許文献１実装例の実行時間は、本願実装例の実行時間の１０倍以上となった。
【０１２９】
また、図１９に示すように、画像Ｂの全ての画像サイズにおいて、本願実装例のフレームレートは、特許文献１実装例のフレームレートを大幅に上回った。
【０１３０】
更に、図２０に示すように、画像Ｂのピクセル数に対する実行時間の変化は、画像サイズが大きくなるほど、本願実装例と特許文献１実装例との差が大きくなった。
【０１３１】
このように、本実施例において、画像サイズが大きくなるに従って、本願実装例と比べて特許文献１実装例では、演算回数およびメモリアクセス回数が増加するために、性能差が顕著となっている。
【０１３２】
また、本実施例において、本願実装例と特許文献１実装例との性能差は、画像Ｂよりも画像Ａに対する測定でより大きくなっている。
【０１３３】
これは、画像Ａの方が画像Ｂよりも１−画素の数が３倍程度多く、本願実装例と比べて特許文献１実装例では、１−画素のみを対象とする統合処理のラベルの書き戻しによるメモリアクセスが増加するためである。
【０１３４】
以上のように、本実施形態においては、ラベルの同値関係を表す同値ラベル管理テーブル１０６ｂを並列実行単位間で共有することで、特許文献１記載の発明が持つ実用上の問題を解消した並列アルゴリズムを提案している。
【０１３５】
これにより、本実施形態においては、再帰的な統合処理を行わずに、統合されたラベル情報を画像ブロックごとに書き戻すことなく、画像ブロックを跨ったラベル間の同値関係を保持することができる。
【０１３６】
そこで、本実施形態においては、各ブロック画像のローカルな仮ラベリング処理にて連結成分に新規に仮ラベルを割り当てる際、連結成分に対して並列処理全体で一意なラベルを割り当てている。
【０１３７】
それにより、本実施形態においては、各ブロック画像で使用される仮ラベルが互いに素になるため、統合処理が（再帰的にではなく）各ブロックについて１回ずつ行えば十分となり、統合処理の完了時にラベル情報のメモリへの書き戻しが不要となる。
【０１３８】
なお、本実施形態においては、同値ラベル管理テーブル１０６ｂに必要なメモリ量を、仮ラベルの総数に比例した量で済ますことができる。
【０１３９】
また、本実施形態においては、各ブロック画像の仮ラベリング結果を並列に統合する際、ブロック境界を跨った連結成分に含まれるラベル間の同値関係を同値ラベル管理テーブル１０６ｂに反映するため、同値ラベル管理テーブル１０６ｂの更新が衝突しうる。
【０１４０】
そこで、本実施形態においては、ラベル集合のルートノード（代表元）の親ノードの更新をＣＡＳ命令を用いて行ってもよい。
【０１４１】
それにより、本実施形態においては、同値ラベル管理テーブル１０６ｂの更新が衝突したかどうかを判断でき、更新が衝突した場合はラベル集合のルートノードを取得するところからやり直すことで、ラベルの統合漏れを防ぎつつ、並列度を高めることができる。
【０１４２】
連結成分抽出（ラベリング）処理は、二値画像における連結した１−ｐｉｘｅｌ（または、０−ｐｉｘｅｌ）の領域に固有のラベルを付与する処理であり、従来から、領域分割（Ｉｍａｇｅ  Ｓｅｇｍｅｎｔａｔｉｏｎ）および光学式文字認識（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ）等の幅広い画像処理の基礎となる重要な処理として利用されている。
【０１４３】
しかしながら、ラベリング処理の計算には、画素数の３乗に比例した時間がかかるため、負荷が大きく、高解像度画像に対するラベリング処理を組込装置の低速なＣＰＵで実行するのは現実的ではなかった。
【０１４４】
そこで、本実施形態においては、組込装置内部でラベリング処理を高速かつ低消費電力で実行するために、ＤＳＰ等のアクセラレータ１０２−２を搭載した組込装置において実行される、並列処理のためのラベリング処理アルゴリズムを提供している。
【０１４５】
［他の実施形態］
さて、これまで本発明の実施形態について説明したが、本発明は、上述した実施形態以外にも、請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【０１４６】
例えば、画像処理装置１００は、スタンドアローンの形態で処理を行ってもよく、クライアント端末（画像処理装置１００とは別筐体である）からの要求に応じて処理を行い、その処理結果を当該クライアント端末に返却するようにしてもよい。
【０１４７】
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０１４８】
このほか、明細書中および図面中で示した処理手順、制御手順、具体的名称、各処理の登録データもしくは検索条件等のパラメータを含む情報、画面例、または、データベース構成については、特記する場合を除いて任意に変更することができる。
【０１４９】
また、画像処理装置１００に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【０１５０】
例えば、画像処理装置１００の各装置が備える処理機能、特に制御部１０２にて行われる各処理機能については、その全部または任意の一部を、ＣＰＵおよび当該ＣＰＵにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。
【０１５１】
なお、プログラムは、後述する、コンピュータに本発明に係る方法を実行させるためのプログラム化された命令を含む、一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて画像処理装置１００に機械的に読み取られる。すなわち、ＲＯＭまたはＨＤＤなどの記憶部１０６などには、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と協働してＣＰＵに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、ＲＡＭにロードされることによって実行され、ＣＰＵと協働して制御部を構成する。
【０１５２】
また、このコンピュータプログラムは、画像処理装置１００に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【０１５３】
また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、ＵＳＢメモリ、ＳＤカード、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、および、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ等の任意の「可搬用の物理媒体」を含むものとする。
【０１５４】
また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、ＯＳに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【０１５５】
記憶部１０６に格納される各種のデータベース等は、ＲＡＭもしくはＲＯＭ等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および／または、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および／または、ウェブページ用ファイル等を格納してもよい。
【０１５６】
また、画像処理装置１００は、既知のパーソナルコンピュータ等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、画像処理装置１００は、該情報処理装置に本発明の方法を実現させるソフトウェア（プログラム、データ等を含む）を実装することにより実現してもよい。
【０１５７】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【０１５８】
以上のように、画像処理装置、画像処理方法、および、プログラムは、産業上の多くの分野、特に画像を扱う画像処理分野で実施することができ、極めて有用である。
【符号の説明】
【０１５９】
１００  画像処理装置
１０２  制御部
１０２ａ  画像取得部
１０２ｂ  分割部
１０２ｃ  仮ラベリング部
１０２ｄ  マージ部
１０２ｅ  真ラベリング部
１０６  記憶部
１０６ａ  画像データファイル
１０６ｂ  同値ラベル管理テーブル
【図１】
2018020623.tif 000003
【図２】
2018020623.tif 000004
【図３】
2018020623.tif 000005
【図４】
2018020623.tif 000006
【図５】
2018020623.tif 000007
【図６】
2018020623.tif 000008
【図７】
2018020623.tif 000009
【図８】
2018020623.tif 000010
【図９】
2018020623.tif 000011
【図１０】
2018020623.tif 000012
【図１１】
2018020623.tif 000013
【図１２】
2018020623.tif 000014
【図１３】
2018020623.tif 000015
【図１４】
2018020623.tif 000016
【図１５】
2018020623.tif 000017
【図１６】
2018020623.tif 000018
【図１７】
2018020623.tif 000019
【図１８】
2018020623.tif 000020
【図１９】
2018020623.tif 000021
【図２０】
2018020623.tif 000022
【国際調査報告】
2018020623.tif 000023
2018020623.tif 000024
2018020623.tif 000025