JP6639675B2 - Image processing apparatus, image processing method, and program - Google Patents

Image processing apparatus, image processing method, and program Download PDF

Info

Publication number
JP6639675B2
JP6639675B2 JP2018530269A JP2018530269A JP6639675B2 JP 6639675 B2 JP6639675 B2 JP 6639675B2 JP 2018530269 A JP2018530269 A JP 2018530269A JP 2018530269 A JP2018530269 A JP 2018530269A JP 6639675 B2 JP6639675 B2 JP 6639675B2
Authority
JP
Japan
Prior art keywords
image
block image
label
temporary
connected component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018530269A
Other languages
Japanese (ja)
Other versions
JPWO2018020623A1 (en
Inventor
雄大 朝井
雄大 朝井
智哉 田邊
智哉 田邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PFU Ltd
Original Assignee
PFU Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PFU Ltd filed Critical PFU Ltd
Publication of JPWO2018020623A1 publication Critical patent/JPWO2018020623A1/en
Application granted granted Critical
Publication of JP6639675B2 publication Critical patent/JP6639675B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

本発明は、画像処理装置、画像処理方法、および、プログラムに関する。   The present invention relates to an image processing device, an image processing method, and a program.

従来から、二値画像に対する連結成分抽出(ラベリング)処理を行う技術が開示されている。   2. Description of the Related Art Conventionally, a technique for performing a connected component extraction (labeling) process on a binary image has been disclosed.

ここで、二値画像を分割したブロック画像に対するラベリング処理を分割統治法に基づいて並列処理し、ラベリング結果を再帰的に統合する技術が開示されている(特許文献1を参照)。   Here, a technology is disclosed in which labeling processing on a block image obtained by dividing a binary image is performed in parallel based on a division and conquer method, and the labeling result is recursively integrated (see Patent Document 1).

特開2014−203134号公報JP 2014-203134 A

しかしながら、従来の画像処理装置(特許文献1)においては、各統合処理開始前に行われる、ブロック画像のラベリングまたは統合処理の完了待ち合わせ、および、各統合処理完了時に行われる、更新されたラベル情報のメモリへの書き戻しによるオーバーヘッドが無視できないという問題点を有していた。   However, in the conventional image processing apparatus (Patent Document 1), labeling of block images or waiting for completion of integration processing performed before the start of each integration processing, and updated label information performed at the completion of each integration processing However, there is a problem that the overhead caused by writing back to the memory cannot be ignored.

本発明は、上記問題点に鑑みてなされたもので、再帰的な統合処理において必要となる多段階の同期処理を不要にすることで、メモリアクセス、演算および同期処理のオーバーヘッドを軽減し、ラベリング処理を高速かつ低消費電力に実行することができる画像処理装置、画像処理方法、および、プログラムを提供することを目的とする。   The present invention has been made in view of the above problems, and eliminates the multi-step synchronization processing required for recursive integration processing, thereby reducing the overhead of memory access, computation, and synchronization processing, and reducing labeling. It is an object of the present invention to provide an image processing apparatus, an image processing method, and a program that can execute processing at high speed and with low power consumption.

このような目的を達成するため、本発明に係る画像処理装置は、二値画像を所定サイズの複数のブロック画像に分割する分割手段と、任意の順番で前記ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリング手段と、基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージ手段と、前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリング手段と、を備え、前記仮ラベリング手段および前記マージ手段は、複数の前記ブロック画像に対して並列に実行することを特徴とする。   In order to achieve such an object, an image processing apparatus according to the present invention includes a dividing unit that divides a binary image into a plurality of block images of a predetermined size, and selects the block images in an arbitrary order, and selects the block image. Temporary labeling means for executing the assignment of a unique temporary label to the connected component composed of 0-pixels or 1-pixels, and the reference block image in the block image to which the temporary label has been added as a reference. Merging means for performing a process of merging the temporary label with the connected component and the connected component in an adjacent block image that is the block image adjacent to the reference block image and having the provisional label added thereto, Based on the merging process on the block image, for the connected component, a representative element having the same value as the connected component is determined. And a true labeling means for applying a label, the temporary labeling means and the merging means may be executed in parallel to the plurality of block images.

また、本発明に係る画像処理方法は、二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、任意の順番で前記ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージステップと、前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、を含み、前記仮ラベリングステップおよび前記マージステップにおける処理は、複数の前記ブロック画像に対して並列に実行されることを特徴とする。   The image processing method according to the present invention further includes a dividing step of dividing the binary image into a plurality of block images of a predetermined size, selecting the block images in an arbitrary order, and selecting 0-pixel or 1-pixel in the block image. A temporary labeling step of executing the assignment of a unique temporary label to the connected component composed of pixels; and the connected component in a reference block image that is the block image to which the temporary label has been added as a reference, and the reference block. A merge step of performing a process of merging the temporary label with the connected component in an adjacent block image which is the block image to which the temporary label has been added, and merging all the block images in the merge step Based on the processing, for the connected component, a representative element having an equivalent relationship with the connected component is referred to as a true label. Anda true labeling step of imparting Te, the process in the temporary labeling step and the merging step is characterized by being performed in parallel for a plurality of the block images.

また、本発明に係るプログラムは、二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、任意の順番で前記ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行するマージステップと、前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、をコンピュータに実行させ、前記仮ラベリングステップおよび前記マージステップにおける処理を、複数の前記ブロック画像に対して並列に実行させることを特徴とする。   Also, the program according to the present invention includes a dividing step of dividing a binary image into a plurality of block images of a predetermined size, selecting the block images in an arbitrary order, and selecting 0-pixels or 1-pixels in the block images. For the configured connected components, a temporary labeling step of executing the assignment of a unique temporary label, and the connected components in the reference block image, which is the block image to which the temporary label has been applied as a reference, and the reference block image A merge step of performing a merge process of the temporary label with the connected component in the adjacent block image that is the block image to which the adjacent temporary label has been added; and performing the merge process on all the block images in the merge step. Based on the connected component, a representative element having an equivalent relation to the connected component is regarded as a true label. And true labeling step of imparting, cause the computer to execute the processing in the temporary labeling step and the merging step, characterized in that to execute in parallel to the plurality of block images.

この発明によれば、実用上問題となりうるオーバーヘッドを解消した並列アルゴリズムを実装することで、高速かつ低消費電力のラベリング処理を実現することができる。   According to the present invention, high-speed and low-power-consumption labeling processing can be realized by implementing a parallel algorithm that eliminates overhead that may cause a practical problem.

また、この発明によれば、各ブロックについて1回のみ統合処理を行うため、統合処理の開始に必要な同期処理は、ブロック画像ごとのラベリング処理完了待ちのみであり、統合処理の完了待ちによる同期処理のコストを抑えることができる。   Further, according to the present invention, since the integration process is performed only once for each block, the synchronization process required to start the integration process is only waiting for the completion of the labeling process for each block image, Processing costs can be reduced.

また、この発明によれば、再帰的な統合処理、および、再帰的な統合処理に必要となる多段階の同期処理(待ち合わせ)が不要なため、メモリアクセス、演算および同期処理のオーバーヘッドを軽減し、性能劣化を解消することができる。   Further, according to the present invention, since recursive integration processing and multi-stage synchronization processing (queuing) required for recursive integration processing are not required, overhead of memory access, calculation, and synchronization processing is reduced. , Performance degradation can be eliminated.

図1は、本実施形態に係る画像処理装置の構成の一例を示すブロック図である。FIG. 1 is a block diagram illustrating an example of a configuration of the image processing apparatus according to the present embodiment. 図2は、本実施形態に係る画像処理装置のハードウェア構成の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of a hardware configuration of the image processing apparatus according to the present embodiment. 図3は、本実施形態の画像処理装置における処理の一例を示すフローチャートである。FIG. 3 is a flowchart illustrating an example of processing in the image processing apparatus according to the present embodiment. 図4は、本実施形態における入力画像の一例を示す図である。FIG. 4 is a diagram illustrating an example of an input image according to the present embodiment. 図5は、本実施形態におけるブロック画像の一例を示す図である。FIG. 5 is a diagram illustrating an example of a block image according to the present embodiment. 図6は、本実施形態における仮ラベリング完了待機の一例を示す図である。FIG. 6 is a diagram illustrating an example of temporary labeling completion standby according to the present embodiment. 図7は、本実施形態におけるマージ処理の一例を示す図である。FIG. 7 is a diagram illustrating an example of the merge process according to the present embodiment. 図8は、本実施形態における真ラベリングの一例を示す図である。FIG. 8 is a diagram illustrating an example of true labeling according to the present embodiment. 図9は、本実施形態における入力画像の一例を示す図である。FIG. 9 is a diagram illustrating an example of an input image according to the present embodiment. 図10は、本実施形態における仮ラベリングの一例を示す図である。FIG. 10 is a diagram illustrating an example of temporary labeling according to the present embodiment. 図11は、本実施形態における真ラベリングの一例を示す図である。FIG. 11 is a diagram illustrating an example of true labeling according to the present embodiment. 図12は、本実施形態におけるラベル画像の一例を示す図である。FIG. 12 is a diagram illustrating an example of a label image according to the present embodiment. 図13は、本実施形態における入力画像の一例を示す図である。FIG. 13 is a diagram illustrating an example of an input image according to the present embodiment. 図14は、本実施形態における入力画像の一例を示す図である。FIG. 14 is a diagram illustrating an example of an input image according to the present embodiment. 図15は、本実施形態における測定結果の一例を示す図である。FIG. 15 is a diagram illustrating an example of a measurement result in the present embodiment. 図16は、本実施形態における測定結果の一例を示す図である。FIG. 16 is a diagram illustrating an example of a measurement result according to the present embodiment. 図17は、本実施形態における測定結果の一例を示す図である。FIG. 17 is a diagram illustrating an example of a measurement result according to the present embodiment. 図18は、本実施形態における測定結果の一例を示す図である。FIG. 18 is a diagram illustrating an example of a measurement result according to the present embodiment. 図19は、本実施形態における測定結果の一例を示す図である。FIG. 19 is a diagram illustrating an example of a measurement result according to the present embodiment. 図20は、本実施形態における測定結果の一例を示す図である。FIG. 20 is a diagram illustrating an example of a measurement result according to the present embodiment.

以下に、本発明に係る画像処理装置、画像処理方法、および、プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本発明が限定されるものではない。   Hereinafter, embodiments of an image processing apparatus, an image processing method, and a program according to the present invention will be described in detail with reference to the drawings. Note that the present invention is not limited by this embodiment.

[本実施形態の構成]
以下、本発明の実施形態に係る画像処理装置100の構成の一例について図1および図2を参照して説明し、その後、本実施形態の処理等について詳細に説明する。図1は、本実施形態に係る画像処理装置100の構成の一例を示すブロック図である。
[Configuration of the present embodiment]
Hereinafter, an example of the configuration of the image processing apparatus 100 according to the embodiment of the present invention will be described with reference to FIGS. 1 and 2, and then the processing of the present embodiment will be described in detail. FIG. 1 is a block diagram illustrating an example of a configuration of an image processing apparatus 100 according to the present embodiment.

但し、以下に示す実施形態は、本発明の技術思想を具体化するための画像処理装置100を例示するものであって、本発明をこの画像処理装置100に特定することを意図するものではなく、請求の範囲に含まれるその他の実施形態の画像処理装置100にも等しく適用し得るものである。   However, the embodiment described below exemplifies the image processing apparatus 100 for embodying the technical idea of the present invention, and is not intended to specify the present invention in the image processing apparatus 100. The present invention can be equally applied to the image processing apparatus 100 of another embodiment included in the claims.

また、本実施形態で例示する画像処理装置100における機能分散の形態は以下に限られず、同様の効果や機能を奏し得る範囲において、任意の単位で機能的または物理的に分散・統合して構成することができる。   The form of function distribution in the image processing apparatus 100 exemplified in the present embodiment is not limited to the following, and is configured to be functionally or physically distributed / integrated in arbitrary units within a range where similar effects and functions can be exhibited. can do.

図1に示すように、画像処理装置100は、概略的に、制御部102と、記憶部106と、を備えて構成される。また、これら画像処理装置100の各部は任意の通信路を介して通信可能に接続されている。   As shown in FIG. 1, the image processing apparatus 100 is schematically configured to include a control unit 102 and a storage unit 106. Each unit of the image processing apparatus 100 is communicably connected via an arbitrary communication path.

ここで、画像処理装置100は、更に、入出力部を備えて構成されてもよい。ここで、入出力部は、データの入出力(I/O)を行う。   Here, the image processing apparatus 100 may further include an input / output unit. Here, the input / output unit performs data input / output (I / O).

また、入出力部は、例えば、キー入力部、タッチパネル、コントロールパッド(例えば、タッチパッド、および、ゲームパッド等)、マウス、キーボード、および/または、マイク等の入力部であってもよい。   The input / output unit may be, for example, an input unit such as a key input unit, a touch panel, a control pad (for example, a touch pad and a game pad), a mouse, a keyboard, and / or a microphone.

また、入出力部は、アプリケーション等の表示画面を表示する表示部(例えば、液晶または有機EL等から構成されるディスプレイ、モニタ、および、タッチパネル等)、および/または、音声情報を音声として出力する音声出力部(例えば、スピーカ等)等の出力部であってもよい。   Further, the input / output unit outputs a display unit (for example, a display, a monitor, a touch panel, or the like including a liquid crystal or an organic EL) that displays a display screen of an application or the like, and / or outputs audio information as audio. An output unit such as an audio output unit (for example, a speaker or the like) may be used.

また、画像処理装置100は、更に、インターフェース部を備えていてもよい。ここで、画像処理装置100は、インターフェース部を介して、外部装置(例えば、画像読取装置等)と相互に通信可能に接続されていてもよい。   Further, the image processing apparatus 100 may further include an interface unit. Here, the image processing device 100 may be communicably connected to an external device (for example, an image reading device or the like) via an interface unit.

また、インターフェース部は、通信回線および/または電話回線等に接続されるアンテナおよび/またはルータ等の通信装置に接続されるインターフェース(NIC等)であってもよく、画像処理装置100とネットワークとの間における通信制御を行う通信インターフェースであってもよい。   The interface unit may be an interface (NIC or the like) connected to a communication device such as an antenna and / or a router connected to a communication line and / or a telephone line. It may be a communication interface that performs communication control between them.

ここで、ネットワークは、有線通信および/または無線通信(例えば、WiFi等)の遠隔通信等を含む。また、インターフェース部は、画像読取装置等と制御部102との間の入出力制御を行う入出力インターフェースであってもよい。   Here, the network includes remote communication such as wired communication and / or wireless communication (for example, WiFi or the like). Further, the interface unit may be an input / output interface for performing input / output control between the image reading device or the like and the control unit 102.

なお、制御部102は、インターフェース部、および、入出力部を制御してもよい。   Note that the control unit 102 may control the interface unit and the input / output unit.

記憶部106は、各種のデータベース、テーブル、および/または、ファイルなどを格納する。また、記憶部106は、各種アプリケーションプログラム(例えば、ユーザアプリケーション等)を記憶していてもよい。   The storage unit 106 stores various databases, tables, and / or files. Further, the storage unit 106 may store various application programs (for example, a user application or the like).

また、記憶部106は、ストレージ手段であり、例えばRAM・ROM等のメモリ、ハードディスクのような固定ディスク装置、SSD(Solid State Drive)、フレキシブルディスク、および/または、光ディスク等の有形の記憶装置、または、記憶回路を用いることができる。   The storage unit 106 is a storage unit, for example, a memory such as a RAM / ROM, a fixed disk device such as a hard disk, a tangible storage device such as an SSD (Solid State Drive), a flexible disk, and / or an optical disk. Alternatively, a memory circuit can be used.

記憶部106には、コントローラ等に命令を与え各種処理を行うためのコンピュータプログラム等が記録されている。   The storage unit 106 stores a computer program or the like for giving instructions to a controller or the like and performing various processes.

これら記憶部106の各構成要素のうち、画像データファイル106aは、画像データを記憶する。ここで、画像データは、二値画像データ、ブロック画像データ、または、ラベル画像データ等であってもよい。   Among the components of the storage unit 106, the image data file 106a stores image data. Here, the image data may be binary image data, block image data, label image data, or the like.

また、同値ラベル管理テーブル106bは、二値画像における0−画素または1−画素から構成される連結成分に対して付与されるラベル間の同値関係に関する同値ラベル管理データを記憶する。ここで、同値ラベル管理テーブル106bは、ユニオンファインドアルゴリズムのためのテーブルであってもよい。   The equivalence label management table 106b stores equivalence label management data relating to equivalence relations between labels assigned to connected components composed of 0-pixels or 1-pixels in a binary image. Here, the equivalence label management table 106b may be a table for the union find algorithm.

ここで、ラベルは、仮ラベルであってもよい。また、同値ラベル管理テーブル106bのサイズは、仮ラベル数の上限に比例してもよい。   Here, the label may be a temporary label. Further, the size of the equivalent label management table 106b may be proportional to the upper limit of the number of temporary labels.

また、制御部102は、画像処理装置100を統括的に制御するCPU(Central Processing Unit)、および/または、FPGA(Field−Programmable Gate Array)等を含む有形のメインプロセッサ102−1(図1では省略)と、メインプロセッサ102−1と並列実行可能なGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、FPGA、および/または、メニーコアCPU等を含む有形のアクセラレータ102−2(図1では省略)と、から構成されてもよい。   In addition, the control unit 102 includes a tangible main processor 102-1 including a CPU (Central Processing Unit) that controls the image processing apparatus 100 and / or an FPGA (Field-Programmable Gate Array) and the like (FIG. 1). And a tangible accelerator 102-2 (not shown in FIG. 1) including a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), an FPGA, and / or a many-core CPU that can be executed in parallel with the main processor 102-1. ).

制御部102は、制御プログラムと各種の処理手順等を規定したプログラムと所要データとを格納するための内部メモリを有し、これらプログラムに基づいて種々の処理を実行するための情報処理を行う。   The control unit 102 has an internal memory for storing a control program, a program defining various processing procedures and the like, and required data, and performs information processing for executing various processes based on these programs.

ここで、制御部102は、大別して、画像取得部102a、分割部102b、仮ラベリング部102c、マージ部102d、および、真ラベリング部102eを備える。   Here, the control unit 102 roughly includes an image acquisition unit 102a, a division unit 102b, a temporary labeling unit 102c, a merge unit 102d, and a true labeling unit 102e.

画像取得部102aは、画像データを取得する。ここで、画像取得部102aは、二値画像の二値画像データを取得してもよい。また、画像取得部102aは、画像データを画像データファイル106aに格納してもよい。   The image acquisition unit 102a acquires image data. Here, the image acquisition unit 102a may acquire binary image data of a binary image. Further, the image acquisition unit 102a may store the image data in the image data file 106a.

分割部102bは、二値画像を所定サイズの複数のブロック画像に分割する。   The dividing unit 102b divides the binary image into a plurality of block images of a predetermined size.

仮ラベリング部102cは、二値画像における0−画素または1−画素から構成される連結成分に対して、仮ラベルの付与を実行する。   The temporary labeling unit 102c performs provision of a temporary label on a connected component including 0-pixels or 1-pixels in the binary image.

ここで、仮ラベリング部102cは、ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する。   Here, the temporary labeling unit 102c selects a block image, and assigns a unique temporary label to a connected component including 0-pixels or 1-pixels in the block image.

また、仮ラベリング部102cは、任意の順番でブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行してもよい。   Further, the temporary labeling unit 102c may select a block image in an arbitrary order, and may assign a unique temporary label to a connected component including 0-pixels or 1-pixels in the block image. Good.

マージ部102dは、基準とする仮ラベル付与済のブロック画像である基準ブロック画像における連結成分と、基準ブロック画像に隣接する仮ラベル付与済のブロック画像である隣接ブロック画像における連結成分と、の仮ラベルのマージ処理を実行する。   The merging unit 102d temporarily divides a connected component in a reference block image, which is a block image to which a temporary label has been added, as a reference and a connected component in an adjacent block image, which is a block image to which a temporary label has been added, adjacent to the reference block image. Perform label merging.

ここで、マージ部102dは、基準ブロック画像における連結成分と、隣接ブロック画像における連結成分と、の仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、同値ラベル管理テーブル106bに記憶された同値ラベル管理データをコンペアアンドスワップ命令を用いて更新することで実行してもよい。   Here, the merging unit 102d performs a process of merging the temporary label between the connected component in the reference block image and the connected component in the adjacent block image based on the union find algorithm based on the equivalence label stored in the equivalence label management table 106b. It may be executed by updating the management data using a compare and swap instruction.

また、マージ部102dは、仮ラベリング部102cにより、基準ブロック画像に隣接する所定のブロック画像に対する仮ラベルの付与が完了した場合、基準ブロック画像における連結成分と、所定のブロック画像における連結成分と、の仮ラベルのマージ処理を実行してもよい。   In addition, when the provisional labeling unit 102c completes the provision of the temporary label to the predetermined block image adjacent to the reference block image, the merging unit 102d outputs a connected component in the reference block image, a connected component in the predetermined block image, May be executed.

ここで、隣接ブロック画像は、基準ブロック画像に隣接する左と左上と上と右上との4方向の仮ラベル付与済のブロック画像であってもよい。   Here, the adjacent block image may be a block image to which a temporary label has been added in four directions of left, upper left, upper, and upper right adjacent to the reference block image.

また、マージ部102dは、基準ブロック画像の左上の画素が連結成分を構成し、当該左上の画素の左上に隣接して、基準ブロック画像の左上に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。   Also, the merging unit 102d determines that the pixel at the upper left of the reference block image forms a connected component, the pixel at the upper left of the upper left pixel is adjacent to the pixel at the upper left of the reference block image, and May exist, merge processing of temporary labels may be performed.

また、マージ部102dは、基準ブロック画像の最も上の行を構成する画素が連結成分を構成し、当該最も上の行を構成する画素の上に隣接して、基準ブロック画像の上に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。   Also, the merging unit 102d determines that the pixels forming the top row of the reference block image form connected components, and are adjacent to the pixels forming the top row and adjacent to the reference block image. If there is a pixel constituting a connected component in the adjacent block image, a temporary label merging process may be executed.

また、マージ部102dは、基準ブロック画像の右上の画素が連結成分を構成し、当該右上の画素の右上に隣接して、基準ブロック画像の右上に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。   In addition, the merging unit 102d determines that the pixel at the upper right of the reference block image constitutes a connected component, the pixel at the upper right of the upper right pixel is adjacent to the pixel at the upper right of the reference block image, May exist, merge processing of temporary labels may be performed.

また、マージ部102dは、基準ブロック画像の最も左の列を構成する画素が連結成分を構成し、当該最も左の列を構成する画素の左に隣接して、基準ブロック画像の左に隣接する隣接ブロック画像における連結成分を構成する画素が存在する場合、仮ラベルのマージ処理を実行してもよい。   In addition, the merging unit 102d determines that the pixels forming the leftmost column of the reference block image form a connected component, are adjacent to the left of the pixels forming the leftmost column, and are adjacent to the left of the reference block image. If there is a pixel constituting a connected component in the adjacent block image, a temporary label merging process may be executed.

ここで、仮ラベリング部102cおよびマージ部102dは、複数のブロック画像に対して並列に実行する。すなわち、マージ部102dは、複数のブロック画像に対して並列に仮ラベルのマージ処理を実行してもよい。   Here, the temporary labeling unit 102c and the merging unit 102d execute the processing on a plurality of block images in parallel. That is, the merging unit 102d may execute a process of merging temporary labels on a plurality of block images in parallel.

また、仮ラベリング部102cによる仮ラベルの付与と、マージ部102dによる仮ラベルのマージ処理と、を複数のブロック画像に対して並列に実行してもよい。   The provision of the provisional label by the provisional labeling unit 102c and the process of merging the provisional label by the merging unit 102d may be performed in parallel on a plurality of block images.

真ラベリング部102eは、マージ部102dによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与する。   The true labeling unit 102e assigns, as a true label, a representative element having an equivalence relation to the connected component to the connected component based on the merging process performed on all the block images by the merging unit 102d.

ここで、真ラベリング部102eは、マージ処理が実行された二値画像に対してラスタスキャンを行い、マージ部102dによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与してもよい。   Here, the true labeling unit 102e performs a raster scan on the binary image on which the merging process has been performed, and performs a merging process on all the block images performed by the merging unit 102d to determine the connected component as a connected component. A representative element having an equivalence relationship may be given as a true label.

また、真ラベリング部102eは、マージ処理が実行された複数のブロック画像に対して、並列に、ラスタスキャンを行い、マージ部102dによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与してもよい。   Further, the true labeling unit 102e performs a raster scan in parallel on the plurality of block images on which the merge processing has been performed, and performs a merging process on the connected components based on the merge processing performed on all the block images by the merge unit 102d. , A representative element having the same value as the connected component may be assigned as a true label.

ここで、複数のブロック画像は、任意に選択されたブロック画像であってもよい。   Here, the plurality of block images may be arbitrarily selected block images.

更に、図2を参照して、本実施形態に係る画像処理装置100のハードウェア構成の一例について説明する。図2は、本実施形態に係る画像処理装置100のハードウェア構成の一例を示すブロック図である。   Further, an example of a hardware configuration of the image processing apparatus 100 according to the present embodiment will be described with reference to FIG. FIG. 2 is a block diagram illustrating an example of a hardware configuration of the image processing apparatus 100 according to the present embodiment.

図2に示すように、画像処理装置100は、画像処理装置100における情報処理を実行するメインプロセッサ102−1、および、メインプロセッサ102−1と情報処理を並列実行可能なアクセラレータ102−2、ならびに、ストレージ手段であるメモリ106を備えていてもよい。   As shown in FIG. 2, the image processing apparatus 100 includes a main processor 102-1 that executes information processing in the image processing apparatus 100, an accelerator 102-2 that can execute information processing in parallel with the main processor 102-1, and And a memory 106 as a storage means.

[本実施形態の処理]
上述した構成の画像処理装置100で実行される処理の一例について、図3から図12を参照して説明する。図3は、本実施形態の画像処理装置100における処理の一例を示すフローチャートである。
[Processing of this embodiment]
An example of processing executed by the image processing apparatus 100 having the above-described configuration will be described with reference to FIGS. FIG. 3 is a flowchart illustrating an example of processing in the image processing apparatus 100 according to the present embodiment.

図3に示すように、まず、画像取得部102aは、入力画像とする二値画像の二値画像データを取得する(ステップSA−1)。   As shown in FIG. 3, first, the image acquisition unit 102a acquires binary image data of a binary image to be an input image (step SA-1).

ここで、図4を参照して、本実施形態における入力画像の一例について説明する。図4は、本実施形態における入力画像の一例を示す図である。   Here, an example of an input image in the present embodiment will be described with reference to FIG. FIG. 4 is a diagram illustrating an example of an input image according to the present embodiment.

図4に示すように、入力画像(入力例1)は、黒を0−画素で表し、白を1−画素として表した二値画像であってもよい。   As shown in FIG. 4, the input image (input example 1) may be a binary image in which black is represented by 0-pixels and white is represented by 1-pixels.

図3に戻り、分割部102bは、入力画像をM×N個のブロック画像に分割する(ステップSA−2)。   Returning to FIG. 3, the dividing unit 102b divides the input image into M × N block images (step SA-2).

ここで、本実施形態においては、union−findアルゴリズムのための(サイズが仮ラベル数の上限に比例する)同値ラベル管理テーブル106bを用意してもよい。   Here, in the present embodiment, an equivalence label management table 106b (the size is proportional to the upper limit of the number of temporary labels) for the union-find algorithm may be prepared.

ここで、図5を参照して、本実施形態におけるブロック画像の一例について説明する。図5は、本実施形態におけるブロック画像の一例を示す図である。   Here, an example of a block image in the present embodiment will be described with reference to FIG. FIG. 5 is a diagram illustrating an example of a block image according to the present embodiment.

図5に示すように、本実施形態においては、図4に示す入力例1を4×4ブロックに分割している。   As shown in FIG. 5, in the present embodiment, the input example 1 shown in FIG. 4 is divided into 4 × 4 blocks.

図3に戻り、仮ラベリング部102cは、任意の順番でブロック画像を選択し、当該ブロック画像における1−画素から構成される連結成分に対して、一意の仮ラベルの付与(仮ラベリング)を実行する(ステップSA−3)。   Returning to FIG. 3, the temporary labeling unit 102c selects a block image in an arbitrary order, and assigns a unique temporary label (temporary labeling) to a connected component including one pixel in the block image. (Step SA-3).

すなわち、本実施形態においては、ブロック画像のローカルな仮ラベリング処理において、連結成分に対して並列処理全体で一意の仮ラベルが与えられるようにしている。   That is, in the present embodiment, in the local temporary labeling processing of the block image, a unique temporary label is given to the connected component in the entire parallel processing.

具体的には、本実施形態において、ブロック画像のローカルな仮ラベリングを行う場合、連結成分に割り当てる仮ラベルは、並列処理全体で一意な番号を使用してもよい。   Specifically, in the present embodiment, when performing local temporary labeling of a block image, a temporary number assigned to a connected component may be a unique number in the entire parallel processing.

ここで、並列処理全体で一意な番号とは、例えば、共有の整数資源に対してアトミックな加算命令または減算命令を使用することで得られる番号であってもよい。   Here, the unique number in the entire parallel processing may be, for example, a number obtained by using an atomic addition instruction or a subtraction instruction for a shared integer resource.

そして、本実施形態においては、ブロック画像の仮ラベリングが完了した場合、完了フラグを1にセットしてもよい。   In this embodiment, when the temporary labeling of the block image is completed, the completion flag may be set to 1.

ここで、図5を参照して、本実施形態における仮ラベリングの一例について説明する。   Here, an example of temporary labeling in the present embodiment will be described with reference to FIG.

図5に示す仮ラベリングにおいては、任意の順番で選択されたブロック画像における1−画素から構成される連結成分に対して、1からはじまる昇順の番号を使用したラベリングがされてもよい。   In the temporary labeling shown in FIG. 5, labeling using ascending numbers starting from 1 may be performed on a connected component composed of one pixel in a block image selected in an arbitrary order.

図3に戻り、マージ部102dは、仮ラベリング部102cによる仮ラベル付与済のブロック画像である基準ブロック画像に隣接する左と左上と上と右上との4方向のブロック画像に対する仮ラベリングが完了するのを待機する(ステップSA−4)。   Referring back to FIG. 3, the merging unit 102d completes the temporary labeling of the block images in the four directions of left, upper left, upper, and upper right adjacent to the reference block image, which is the block image to which the temporary label has been added, by the temporary labeling unit 102c. (Step SA-4).

ここで、図6を参照して、本実施形態における仮ラベリング完了待機の一例について説明する。図6は、本実施形態における仮ラベリング完了待機の一例を示す図である。   Here, an example of temporary labeling completion standby according to the present embodiment will be described with reference to FIG. FIG. 6 is a diagram illustrating an example of temporary labeling completion standby according to the present embodiment.

図6に示すように、本実施形態においては、各ブロック画像においてマージ処理を行うための周囲4方向(左/左上/上/右上)の仮ラベリングが完了するのを待機する。   As shown in FIG. 6, in the present embodiment, the process waits for the completion of temporary labeling in four directions (left / upper left / upper / upper right) for performing a merge process on each block image.

ここで、図6に示す「−」は、仮ラベルが付与されていない連結成分を構成する画素を表している。   Here, "-" shown in FIG. 6 indicates a pixel constituting a connected component to which no temporary label is assigned.

図3に戻り、マージ部102dは、基準ブロック画像における連結成分と、左と左上と上と右上との4方向の隣接ブロック画像における連結成分と、の仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、同値ラベル管理テーブル106bに記憶された同値ラベル管理データをコンペアアンドスワップ(Compare And Swap(CAS))命令を用いて更新することで実行する(ステップSA−5)。   Returning to FIG. 3, the merging unit 102 d performs a merge process of the temporary label of the connected component in the reference block image and the connected components in the adjacent block images in the four directions of left, upper left, upper, and upper right with a union finding algorithm. Based on this, the equivalent label management data stored in the equivalent label management table 106b is updated by using a compare-and-swap (CAS) instruction (step SA-5).

すなわち、本実施形態においては、CAS命令を用いて並列に同値ラベル管理テーブル106bを更新している。   That is, in the present embodiment, the equivalence label management table 106b is updated in parallel using the CAS instruction.

ここで、図7を参照して、本実施形態におけるマージ処理の一例について説明する。図7は、本実施形態におけるマージ処理の一例を示す図である。   Here, an example of the merge processing according to the present embodiment will be described with reference to FIG. FIG. 7 is a diagram illustrating an example of the merge process according to the present embodiment.

図7に示すように、上から3番目かつ左から3番目のブロック画像においては、周囲4方向のブロック画像との間で、矢印で示すように仮ラベリング結果のマージ処理を行う。   As shown in FIG. 7, in the third block image from the top and the third block image from the left, merge processing of the temporary labeling results is performed as shown by arrows between the block images in the surrounding four directions.

具体的には、本実施形態においては、ブロック画像の最も左上のピクセルpが1−画素であり、かつ、ピクセルpの左上のピクセルqが存在して、かつ、ピクセルqが1−画素であれば、union(label(p),label(q))を行ってもよい。   Specifically, in the present embodiment, the upper left pixel p of the block image is 1-pixel, the upper left pixel q of the pixel p is present, and the pixel q is 1-pixel. For example, union (label (p), label (q)) may be performed.

また、本実施形態においては、ブロック画像の最も上の行に含まれるピクセルpについて、ピクセルpが1−画素であれば、ピクセルpの8−近傍ピクセルのうち、1つ上のブロック画像に属する各ピクセルqについて、ピクセルqが1−画素であれば、union(label(p),label(q))を行ってもよい。   Further, in the present embodiment, if the pixel p included in the top row of the block image is one pixel, the pixel p belongs to the block image one level higher than the 8-neighbor pixels of the pixel p. For each pixel q, if pixel q is one pixel, union (label (p), label (q)) may be performed.

また、本実施形態においては、ブロック画像の最も右上のピクセルpが1−画素であり、ピクセルpの右上のピクセルqが存在し、かつ、ピクセルqが1−画素であれば、union(label(p),label(q))を行ってもよい。   In the present embodiment, if the pixel p at the upper right of the block image is one pixel, the pixel q at the upper right of the pixel p exists, and if the pixel q is one pixel, union (label (label ( p), label (q)) may be performed.

また、本実施形態においては、ブロック画像の最も左の列に含まれるピクセルpについて、ピクセルpが1−画素であれば、ピクセルpの8−近傍ピクセルのうち、1つ左のブロック画像に属する各ピクセルqについて、ピクセルqが1−画素であれば、union(label(p),label(q))を行ってもよい。   In the present embodiment, as for the pixel p included in the leftmost column of the block image, if the pixel p is 1-pixel, it belongs to the block image on the left of the 8-neighbor pixels of the pixel p. For each pixel q, if pixel q is one pixel, union (label (p), label (q)) may be performed.

ここで、本実施形態においては、マージ処理中にunion()で行われる同値ラベル管理テーブル106bの更新は、ブロック画像間で衝突するため、CAS命令を用いてアトミックに行ってもよい。   Here, in the present embodiment, the update of the equivalence label management table 106b performed by union () during the merge processing may be performed atomically using a CAS instruction because of collision between block images.

また、本実施形態においては、CAS命令の復帰値から、更新が衝突したことを検出した場合、find()でルートノードを取得するところからやり直してもよい。   Further, in the present embodiment, when it is detected from the return value of the CAS instruction that the update has collided, the process may be restarted from obtaining the root node with find ().

なお、図7に示す矢印は、マージ処理にて行われるunion()の対象位置を示している。   Note that arrows shown in FIG. 7 indicate target positions of union () performed in the merge processing.

ここで、図3に示すように、ステップSA−3における仮ラベリング部102cによる仮ラベルの付与から、ステップSA−5におけるマージ部102dによる仮ラベルのマージ処理までの処理は、画像処理装置100がメインプロセッサ102−1とアクセラレータ102−2とを備えることにより、複数のブロック画像に対して並列に実行される。   Here, as shown in FIG. 3, the processing from the provisional labeling by the temporary labeling unit 102c in step SA-3 to the temporary label merging processing by the merging unit 102d in step SA-5 is performed by the image processing apparatus 100. By providing the main processor 102-1 and the accelerator 102-2, it is executed in parallel on a plurality of block images.

例えば、本実施形態においては、2つの仮ラベルt1と仮ラベルt2とが同値であると判別した場合、仮ラベリングと並列して、union(t1,t2)を実行してもよい。   For example, in the present embodiment, when it is determined that the two temporary labels t1 and t2 have the same value, union (t1, t2) may be executed in parallel with the temporary labeling.

ここで、本実施形態においては、仮ラベリング中にunion()で行われる同値ラベル管理テーブル106bの更新は、ブロック画像間で衝突しないため、排他制御は行わなくてもよい。   Here, in the present embodiment, the update of the equivalent label management table 106b performed by union () during the temporary labeling does not collide between block images, so that exclusive control may not be performed.

そして、真ラベリング部102eは、マージ部102dによる全てのブロック画像に対するマージ処理が完了するのを待機する(ステップSA−6)。   Then, the true labeling unit 102e waits for the merge process of all the block images by the merge unit 102d to be completed (step SA-6).

そして、真ラベリング部102eは、マージ処理が実行された任意の複数のブロック画像に対して、並列に、ラスタスキャンを行い、マージ部102dによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与(真ラベリング)する(ステップSA−7)。   Then, the true labeling unit 102e performs a raster scan in parallel on any of the plurality of block images on which the merge process has been performed, and generates a connected component based on the merge process performed on all the block images by the merge unit 102d. On the other hand, a representative element having the same value as the connected component is assigned as a true label (true labeling) (step SA-7).

このように、本実施形態においては、ブロック画像毎に、並列に、ラスタスキャンし、各1−画素に割り当てられている仮ラベル値vをfind(v)して得られる同値ラベル集合の代表元v’で置き換えてもよい。   As described above, in the present embodiment, the representative element of the equivalent label set obtained by performing raster scan in parallel for each block image and finding (v) the temporary label value v assigned to each 1-pixel. It may be replaced by v '.

ここで、真ラベリング部102eは、マージ処理が実行された二値画像(入力画像全体)に対してラスタスキャンを行い、マージ部102dによる全てのブロック画像に対するマージ処理に基づいて、連結成分に対して、連結成分と同値関係にある代表元を真ラベルとして付与してもよい。   Here, the true labeling unit 102e performs a raster scan on the binary image (the entire input image) on which the merging process has been performed, and performs a merging process on the connected components based on the merging process on all the block images by the merging unit 102d. Thus, a representative element having the same value as the connected component may be assigned as a true label.

ここで、図8を参照して、本実施形態におけるマージ処理が実行された入力画像全体に対してラスタスキャンした場合の真ラベリングの一例について説明する。図8は、本実施形態における真ラベリングの一例を示す図である。   Here, an example of true labeling when raster scanning is performed on the entire input image on which the merge processing has been executed in the present embodiment will be described with reference to FIG. FIG. 8 is a diagram illustrating an example of true labeling according to the present embodiment.

図8は、図4に示す入力例1に対する、仮ラベリング処理およびマージ処理でのunion()実行による、同値ラベル集合の推移例を示している。   FIG. 8 shows an example of transition of an equivalent label set by executing union () in the temporary labeling process and the merge process with respect to the input example 1 shown in FIG.

具体的には、図4に示す入力例1の場合、最終ステップにてルートノードが1である木に集約され、全ノードでfind()が1を返すようになる。   Specifically, in the case of the input example 1 shown in FIG. 4, in the final step, the tree is aggregated into a tree whose root node is 1, and find () returns 1 in all the nodes.

なお、一般的に、和集合を求める演算は交換法則および結合法則を満たすため、union()が実行される順番が変化しても最終的に得られるラベル集合は変化しない。ここで、図8に示す木構造おいては、ルートノードだけから構成される木は、省略してある。   In general, since the operation for obtaining the union satisfies the exchange rule and the association rule, the finally obtained label set does not change even if the order in which union () is executed changes. Here, in the tree structure shown in FIG. 8, a tree composed of only the root node is omitted.

また、図8において、太字で示されたノードは、各ステップで参照または更新されたノードを示しており、太字で示されたエッジは、各ステップで参照または更新されたエッジを示している。   In FIG. 8, the nodes shown in bold letters indicate the nodes referenced or updated in each step, and the edges shown in bold letters show the edges referenced or updated in each step.

ここで、下記find()とunion()との擬似コードを用いて、本実施形態におけるCAS命令を用いた、union()とfind()との実装の一例について説明する。   Here, an example of implementation of union () and find () using a CAS instruction in the present embodiment will be described using pseudo code of find () and union () described below.

<疑似コード>
def find(x)
parent=A−LOAD(x.parent)
if(parent==x) /*xは、ルートノードか?*/
return x
else
return find(parent)
def union(x,y)
do{
rx=find(x)
ry=find(y)
min=min(rx,ry)
max=max(rx,ry)
if(min==max)
break
old=CAS(max.parent,max,min)
}while(old!=max) /*成功するまでリトライ*/
<Pseudo code>
def find (x)
parent = A-LOAD (x.parent)
if (parent == x) / * x is the root node? * /
return x
else
return find (parent)
def union (x, y)
do {
rx = find (x)
ry = find (y)
min = min (rx, ry)
max = max (rx, ry)
if (min == max)
break
old = CAS (max. parent, max, min)
$ While (old! = Max) / * Retry until successful * /

ここで、union−findアルゴリズムにおいては、CAS命令によるアトミックな値の更新をCAS(pt,cmp,val)と示され、アトミックな値の読み込みをA−LOAD(pt)と示されている。   Here, in the union-find algorithm, an update of an atomic value by a CAS instruction is indicated by CAS (pt, cmp, val), and reading of an atomic value is indicated by A-LOAD (pt).

ここで、CAS(pt,cmp,val)は、整数値を指すポインタptと、2つの整数値cmpおよびvalと、を受け取り、ポインタptが指す値をoldとして、oldとcmpとが一致する場合、ポインタptが指す値をvalにセットし、cmpを返す。   Here, CAS (pt, cmp, val) receives a pointer pt indicating an integer value and two integer values cmp and val, and when the value indicated by the pointer pt is old, the old and cmp match. , Set the value pointed to by the pointer pt to val, and return cmp.

一方、CAS(pt,cmp,val)は、oldとcmpとが一致しない場合、ポインタptが指す値を変更せずにoldを返す。   On the other hand, CAS (pt, cmp, val) returns old without changing the value indicated by the pointer pt when old and cmp do not match.

ここで、union−findアルゴリズムにおいて、find()は、入力ノードがどの集合に属しているかを求め、union()は、2つの集合を併合するために用いられる。   Here, in the union-find algorithm, find () finds which set the input node belongs to, and union () is used to merge the two sets.

そこで、union−findアルゴリズムでは、集合を木構造で表す方式を想定している。   Therefore, the union-find algorithm assumes a method in which a set is represented by a tree structure.

この際、union−findアルゴリズムにおいては、木のルートノードが集合を代表するノードであるとみなし、初期状態において、ラベルの数だけルートノードだけからなる木が存在するものと仮定している。   At this time, in the union-find algorithm, it is assumed that the root node of the tree is a node representing a set, and it is assumed that in the initial state, there exists a tree consisting of only root nodes by the number of labels.

なお、union−findアルゴリズムにおいては、前提として、仮ラベルは、集合から削除しない(なお、本ラベリング処理では、ラベル間の同値関係を求められれば十分であるため、この前提があっても差し支えない)。   In the union-find algorithm, it is assumed that the temporary label is not deleted from the set. (Note that this labeling process is sufficient if it is sufficient to obtain the equivalence relation between the labels. ).

当該前提により、union−findアルゴリズムにおいては、union()の更新先のノードが、別のunion()によりすでに別ノードの子孫になっていたとしても、同じ集合に属することが保証される。   With this premise, in the union-find algorithm, it is guaranteed that the node to which the union () is updated belongs to the same set even if another union () has already become a descendant of another node.

ここで、上記擬似コードにおいて、find()は、入力ノードが含まれる木のルートノードを返す関数として実装されており、入力ノードの親ノードをA−LOAD()で再帰的に参照している。   Here, in the above pseudo code, find () is implemented as a function that returns the root node of the tree including the input node, and the parent node of the input node is recursively referred to by A-LOAD (). .

また、上記擬似コードにおいて、union()は、2つの入力ノードx,yを受け取り、x,yのルートノードをそれぞれ求め、ラベル番号の大きい方のルートノードの親ノードを、CAS()によりラベル番号の小さい方のルートノードへ更新している。   In the above pseudo code, union () receives two input nodes x and y, finds root nodes of x and y, respectively, and determines the parent node of the root node having the larger label number by CAS (). Updating to the root node with the smaller number.

なお、上記擬似コードにおいては、x,yのルートノードのラベル番号が一致した場合、何もしない。   In the above pseudo code, if the label numbers of the root nodes x and y match, nothing is performed.

また、上記擬似コードにおいては、CAS()の復帰値oldが期待した値と一致するか否かをチェックすることにより、更新が成功したかどうかを判断し、更新が失敗した場合、ルートノードを求めるところからやり直している。   Further, in the pseudo code, it is determined whether or not the update is successful by checking whether the return value old of CAS () matches the expected value. If the update is unsuccessful, the root node is changed. They start over from where they want.

図3に戻り、画像取得部102aは、真ラベリング部102eによる全ての連結成分に対する真ラベリングが完了するのを待機する(ステップSA−8)。   Referring back to FIG. 3, the image acquisition unit 102a waits until the true labeling of all connected components by the true labeling unit 102e is completed (step SA-8).

そして、画像取得部102aは、真ラベルが付与された二値画像であるラベル画像のラベル画像データを取得して、画像データファイル106aに格納し(ステップSA−9)、処理を終了する。   Then, the image acquiring unit 102a acquires the label image data of the label image that is the binary image to which the true label is added, stores the label image data in the image data file 106a (Step SA-9), and ends the process.

ここで、本実施形態においては、図4に示す入力例1の場合、全ノードでfind()が1を返すようになるため、真ラベルを割り当てたラベル画像は、図4と同じものとなる。   Here, in the present embodiment, in the case of the input example 1 shown in FIG. 4, since the find () returns 1 in all the nodes, the label image to which the true label is assigned is the same as that in FIG. .

ここで、図9から図12を参照して、本実施形態におけるマージ処理が実行された入力画像全体に対してラスタスキャンした場合の真ラベリングの一例について説明する。図9は、本実施形態における入力画像の一例を示す図である。図10は、本実施形態における仮ラベリングの一例を示す図である。図11は、本実施形態における真ラベリングの一例を示す図である。図12は、本実施形態におけるラベル画像の一例を示す図である。   Here, an example of true labeling when raster scanning is performed on the entire input image on which the merge processing has been executed in the present embodiment will be described with reference to FIGS. 9 to 12. FIG. 9 is a diagram illustrating an example of an input image according to the present embodiment. FIG. 10 is a diagram illustrating an example of temporary labeling according to the present embodiment. FIG. 11 is a diagram illustrating an example of true labeling according to the present embodiment. FIG. 12 is a diagram illustrating an example of a label image according to the present embodiment.

本実施形態においては、図9に示す二値画像(入力例2)が入力画像として取得された場合、図10に示すように、図9に示す入力例2を4×4ブロックに分割し、任意の順番で選択されたブロック画像における1−画素から構成される連結成分に対して、1からはじまる昇順の番号を使用した仮ラベリングを行う。   In the present embodiment, when the binary image (input example 2) shown in FIG. 9 is acquired as an input image, the input example 2 shown in FIG. 9 is divided into 4 × 4 blocks as shown in FIG. Temporary labeling using ascending numbers starting from 1 is performed on the connected components composed of one pixel in the block image selected in an arbitrary order.

そして、本実施形態においては、図11に示すように、最終ステップにてルートノードが1、2または3である3つの木に集約されるため、図12に示すように、真ラベルの出力も1、2または3を真ラベルとして割り当てたラベル画像を取得することができる。   Then, in the present embodiment, as shown in FIG. 11, since the root nodes are aggregated into three trees of 1, 2, or 3 in the final step, as shown in FIG. A label image in which 1, 2, or 3 is assigned as a true label can be obtained.

[実施例]
ここで、図13から図20を参照して、本実施形態における性能比較実験の一例について説明する。図13および図14は、本実施形態における入力画像の一例を示す図である。図15から図20は、本実施形態における測定結果の一例を示す図である。
[Example]
Here, an example of a performance comparison experiment in the present embodiment will be described with reference to FIGS. 13 and 14 are diagrams illustrating an example of an input image according to the present embodiment. 15 to 20 are diagrams illustrating an example of a measurement result according to the present embodiment.

まず、本実施例における測定環境としては、メインプロセッサ102−1であるCPU:ARM Cortex−A9 800MHz 1core、アクセラレータ102−2であるGPU:ARM Mali T−624 GPU 600MHz 4cores、メモリ:2GB DDR3 1333MHz、OS:Linux(登録商標)(Linaro 14.04 kernel v3.10.41)、および、GPU動作環境:OpenCL1.1 Full Profileを用いて行った。   First, as the measurement environment in the present embodiment, the CPU as the main processor 102-1: ARM Cortex-A9 800MHz 1core, the GPU as the accelerator 102-2: ARM Mari T-624 GPU 600MHz 4cores, the memory: 2GB DDR3 1333MHz, OS: Linux (registered trademark) (Linaro 14.04 kernel v3.10.41) and GPU operating environment: OpenCL1.1 Full Profile.

また、本実施例における測定時間としては、ラベリング処理開始から、真ラベル格納完了までの時間を計測し、画像入出力、メモリ確保およびメモリ解放にかかる時間を計測に含めていない。   As the measurement time in the present embodiment, the time from the start of the labeling process to the completion of the storage of the true label is measured, and the time required for image input / output, memory reservation, and memory release is not included in the measurement.

また、本実施例における入力画像は、図13に示すサイズ:N×Npixelの画像A(http://sipi.usc.edu/database/database.php?volume=aerials&image=33#top)、および、図14に示すサイズ:N×Npixelの画像B(http://sipi.usc.edu/database/database.php?volume=textures&image=40#top)を使用している(N=256、512、1024、2048、または、4096)。   The input image in the present embodiment is an image A (http://sipi.usc.edu/database/database.php?volume=arials&image=33#top) of a size: N × Npixel shown in FIG. An image B of size: N × N pixels shown in FIG. 14 (http://sipi.usc.edu/database/database.php?volume=textures&image=40#top) is used (N = 256, 512, 1024). , 2048, or 4096).

また、本実施例における並列処理のブロックサイズは、16×16pixelとしている。また、本実施例における測定は、各5回行い、平均値を測定値として取得している。   Further, the block size of the parallel processing in the present embodiment is set to 16 × 16 pixels. The measurement in this example was performed five times each, and the average value was obtained as the measured value.

なお、本実施例において、本願実装例および特許文献1実装例におけるブロック画像ごとのラベリングには、Keshengらの2−パスアルゴリズム(Kesheng Wu et al.,”Optimizing connected component labeling algorithms”,in Proceedings of SPIE medical imaging conference 2005)をC++言語で実装したアルゴリズムを使用している。   In the present embodiment, the labeling for each block image in the implementation example of the present application and in the implementation example of Patent Document 1 is performed by a 2-pass algorithm of Kesheng et al. An algorithm implementing SPIE medical imaging conference 2005) in the C ++ language is used.

また、本実施例において、アクセラレータ102−2がラベリング処理を並列実行する際の並列プログラミングフレームワークは、OpenCL(http://www.khronos.org/registry/cl/specs/opencl−1.2.pdf)を使用している。   In the present embodiment, the parallel programming framework when the accelerator 102-2 executes the labeling process in parallel is OpenCL (http://www.kronos.org/registry/cl/specs/opencl-1.2. pdf).

そして、これらの設定により画像Aに対するラベリング処理の測定を行ったところ、図15に示すように、全ての画像サイズにおいて、特許文献1実装例の実行時間は、本願実装例の実行時間の10倍以上となった。   Then, when the labeling process for the image A was measured with these settings, as shown in FIG. 15, the execution time of the implementation example of Patent Document 1 was 10 times the execution time of the implementation example of the present application for all image sizes, as shown in FIG. That's all.

また、図16に示すように、画像Aの全ての画像サイズにおいて、本願実装例のフレームレートは、特許文献1実装例のフレームレートを大幅に上回った。   Further, as shown in FIG. 16, for all image sizes of the image A, the frame rate of the implementation example of the present application was significantly higher than the frame rate of the implementation example of Patent Document 1.

更に、図17に示すように、画像Aのピクセル数に対する実行時間の変化は、画像サイズが大きくなるほど、本願実装例と特許文献1実装例との差が大きくなった。   Further, as shown in FIG. 17, as for the change in the execution time with respect to the number of pixels of the image A, the difference between the implementation example of the present application and the implementation example of Patent Document 1 increases as the image size increases.

また、これらの設定により画像Bに対するラベリング処理の測定を行ったところ、図18に示すように、全ての画像サイズにおいて、特許文献1実装例の実行時間は、本願実装例の実行時間の10倍以上となった。   In addition, when the labeling process for the image B was measured with these settings, as shown in FIG. 18, the execution time of the implementation example of Patent Literature 1 was 10 times the execution time of the implementation example of the present application for all image sizes. That's all.

また、図19に示すように、画像Bの全ての画像サイズにおいて、本願実装例のフレームレートは、特許文献1実装例のフレームレートを大幅に上回った。   Further, as shown in FIG. 19, for all image sizes of the image B, the frame rate of the implementation example of the present application was significantly higher than the frame rate of the implementation example of Patent Document 1.

更に、図20に示すように、画像Bのピクセル数に対する実行時間の変化は、画像サイズが大きくなるほど、本願実装例と特許文献1実装例との差が大きくなった。   Further, as shown in FIG. 20, as for the change in the execution time with respect to the number of pixels of the image B, the difference between the implementation example of the present application and the implementation example of Patent Document 1 increases as the image size increases.

このように、本実施例において、画像サイズが大きくなるに従って、本願実装例と比べて特許文献1実装例では、演算回数およびメモリアクセス回数が増加するために、性能差が顕著となっている。   As described above, in the present embodiment, as the image size increases, the number of operations and the number of memory accesses increase in the implementation example of Patent Document 1 as compared with the implementation example of the present application, so that the performance difference is remarkable.

また、本実施例において、本願実装例と特許文献1実装例との性能差は、画像Bよりも画像Aに対する測定でより大きくなっている。   In this embodiment, the performance difference between the implementation example of the present application and the implementation example of Patent Document 1 is larger in the measurement for the image A than in the image B.

これは、画像Aの方が画像Bよりも1−画素の数が3倍程度多く、本願実装例と比べて特許文献1実装例では、1−画素のみを対象とする統合処理のラベルの書き戻しによるメモリアクセスが増加するためである。   This is because the number of 1-pixels in the image A is about three times as large as that in the image B, and the labeling of the integration processing for only 1-pixel in the implementation example of Patent Document 1 is compared with the implementation example of the present application. This is because memory access by return increases.

以上のように、本実施形態においては、ラベルの同値関係を表す同値ラベル管理テーブル106bを並列実行単位間で共有することで、特許文献1記載の発明が持つ実用上の問題を解消した並列アルゴリズムを提案している。   As described above, in the present embodiment, the parallel algorithm solving the practical problem of the invention described in Patent Literature 1 by sharing the equivalence label management table 106b indicating the equivalence relation of labels between the parallel execution units. Has been proposed.

これにより、本実施形態においては、再帰的な統合処理を行わずに、統合されたラベル情報を画像ブロックごとに書き戻すことなく、画像ブロックを跨ったラベル間の同値関係を保持することができる。   Thus, in the present embodiment, it is possible to maintain the equivalence relation between labels across image blocks without performing recursive integration processing and without writing back integrated label information for each image block. .

そこで、本実施形態においては、各ブロック画像のローカルな仮ラベリング処理にて連結成分に新規に仮ラベルを割り当てる際、連結成分に対して並列処理全体で一意なラベルを割り当てている。   Therefore, in the present embodiment, when a temporary label is newly assigned to a connected component in the local temporary labeling process of each block image, a unique label is assigned to the connected component in the entire parallel processing.

それにより、本実施形態においては、各ブロック画像で使用される仮ラベルが互いに素になるため、統合処理が(再帰的にではなく)各ブロックについて1回ずつ行えば十分となり、統合処理の完了時にラベル情報のメモリへの書き戻しが不要となる。   Accordingly, in the present embodiment, since the temporary labels used in each block image are relatively prime, it is sufficient to perform the integration processing once (not recursively) for each block, and the integration processing is completed. Sometimes it is not necessary to write back the label information to the memory.

なお、本実施形態においては、同値ラベル管理テーブル106bに必要なメモリ量を、仮ラベルの総数に比例した量で済ますことができる。   In the present embodiment, the amount of memory required for the equivalent label management table 106b can be reduced in proportion to the total number of temporary labels.

また、本実施形態においては、各ブロック画像の仮ラベリング結果を並列に統合する際、ブロック境界を跨った連結成分に含まれるラベル間の同値関係を同値ラベル管理テーブル106bに反映するため、同値ラベル管理テーブル106bの更新が衝突しうる。   Further, in the present embodiment, when integrating the provisional labeling results of each block image in parallel, the equivalence label between the labels included in the connected components across the block boundaries is reflected in the equivalence label management table 106b. Updating of the management table 106b may conflict.

そこで、本実施形態においては、ラベル集合のルートノード(代表元)の親ノードの更新をCAS命令を用いて行ってもよい。   Therefore, in the present embodiment, the parent node of the root node (representation source) of the label set may be updated using a CAS instruction.

それにより、本実施形態においては、同値ラベル管理テーブル106bの更新が衝突したかどうかを判断でき、更新が衝突した場合はラベル集合のルートノードを取得するところからやり直すことで、ラベルの統合漏れを防ぎつつ、並列度を高めることができる。   Accordingly, in the present embodiment, it is possible to determine whether or not the update of the equivalence label management table 106b has collided. If the update has collided, the label integration omission is performed by starting again from obtaining the root node of the label set. The degree of parallelism can be increased while preventing this.

連結成分抽出(ラベリング)処理は、二値画像における連結した1−pixel(または、0−pixel)の領域に固有のラベルを付与する処理であり、従来から、領域分割(Image Segmentation)および光学式文字認識(Optical Character Recognition)等の幅広い画像処理の基礎となる重要な処理として利用されている。   The connected component extraction (labeling) process is a process of giving a unique label to a connected 1-pixel (or 0-pixel) region in a binary image, and has conventionally been performed by a region segmentation (Image Segmentation) and an optical system. It is used as an important process that is the basis of a wide range of image processing such as character recognition (Optical Character Recognition).

しかしながら、ラベリング処理の計算には、画素数の3乗に比例した時間がかかるため、負荷が大きく、高解像度画像に対するラベリング処理を組込装置の低速なCPUで実行するのは現実的ではなかった。   However, since the calculation of the labeling process takes a time proportional to the cube of the number of pixels, the load is large, and it is not realistic to execute the labeling process on the high-resolution image by the low-speed CPU of the embedded device. .

そこで、本実施形態においては、組込装置内部でラベリング処理を高速かつ低消費電力で実行するために、DSP等のアクセラレータ102−2を搭載した組込装置において実行される、並列処理のためのラベリング処理アルゴリズムを提供している。   Therefore, in the present embodiment, in order to execute the labeling process at high speed and with low power consumption inside the embedded device, the parallel processing for parallel processing executed in the embedded device equipped with the accelerator 102-2 such as a DSP is performed. Provides a labeling processing algorithm.

[他の実施形態]
さて、これまで本発明の実施形態について説明したが、本発明は、上述した実施形態以外にも、請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
[Other embodiments]
Although the embodiments of the present invention have been described above, the present invention may be embodied in various different embodiments within the scope of the technical idea described in the claims other than the above-described embodiments. Things.

例えば、画像処理装置100は、スタンドアローンの形態で処理を行ってもよく、クライアント端末(画像処理装置100とは別筐体である)からの要求に応じて処理を行い、その処理結果を当該クライアント端末に返却するようにしてもよい。   For example, the image processing apparatus 100 may perform the processing in a stand-alone form, perform the processing in response to a request from a client terminal (having a separate housing from the image processing apparatus 100), and report the processing result. It may be returned to the client terminal.

また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。   Further, among the processes described in the embodiment, all or some of the processes described as being performed automatically can be manually performed, or all of the processes described as being performed manually can be performed. Alternatively, a part thereof can be automatically performed by a known method.

このほか、明細書中および図面中で示した処理手順、制御手順、具体的名称、各処理の登録データもしくは検索条件等のパラメータを含む情報、画面例、または、データベース構成については、特記する場合を除いて任意に変更することができる。   In addition, information including parameters such as processing procedures, control procedures, specific names, registration data of each processing or search conditions, screen examples, or database configurations shown in the specification and drawings, when specially described. Can be changed arbitrarily except for

また、画像処理装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。   Also, regarding the image processing apparatus 100, each illustrated component is a functional concept, and does not necessarily need to be physically configured as illustrated.

例えば、画像処理装置100の各装置が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。   For example, with respect to the processing functions included in each device of the image processing apparatus 100, particularly, each processing function performed by the control unit 102, all or any part thereof is executed by the CPU and a program interpreted and executed by the CPU. It may be realized, or may be realized as hardware by wired logic.

なお、プログラムは、後述する、コンピュータに本発明に係る方法を実行させるためのプログラム化された命令を含む、一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて画像処理装置100に機械的に読み取られる。すなわち、ROMまたはHDDなどの記憶部106などには、OS(Operating System)と協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。   Note that the program is recorded on a non-transitory computer-readable recording medium that includes programmed instructions for causing a computer to execute the method according to the present invention, which will be described later. 100 is read mechanically. That is, a computer program for giving instructions to the CPU in cooperation with an OS (Operating System) and performing various processes is recorded in the storage unit 106 such as a ROM or an HDD. The computer program is executed by being loaded into the RAM, and forms a control unit in cooperation with the CPU.

また、このコンピュータプログラムは、画像処理装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。   Further, this computer program may be stored in an application program server connected to the image processing apparatus 100 via an arbitrary network, and it is also possible to download all or part of the computer program as needed. is there.

また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、ROM、EPROM、EEPROM、CD−ROM、MO、DVD、および、Blu−ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。   Further, the program according to the present invention may be stored in a computer-readable recording medium, or may be configured as a program product. Here, the “recording medium” refers to a memory card, USB memory, SD card, flexible disk, magneto-optical disk, ROM, EPROM, EEPROM, CD-ROM, MO, DVD, and Blu-ray (registered trademark). It shall include any “portable physical medium” such as Disc.

また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。   The “program” is a data processing method described in an arbitrary language or description method, and may be in any format such as a source code or a binary code. The "program" is not necessarily limited to a single program, but may be distributed as a plurality of modules or libraries, or may achieve its function in cooperation with a separate program represented by an OS. Including things. It should be noted that a known configuration or procedure can be used as a specific configuration for reading the recording medium in each apparatus described in the embodiment, a reading procedure, an installation procedure after reading, and the like.

記憶部106に格納される各種のデータベース等は、RAMもしくはROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および/または、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および/または、ウェブページ用ファイル等を格納してもよい。   Various databases and the like stored in the storage unit 106 are storage devices such as a memory device such as a RAM or a ROM, a fixed disk device such as a hard disk, a flexible disk, and / or an optical disk. Various programs, tables, databases, and / or web page files to be used may be stored.

また、画像処理装置100は、既知のパーソナルコンピュータ等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、画像処理装置100は、該情報処理装置に本発明の方法を実現させるソフトウェア(プログラム、データ等を含む)を実装することにより実現してもよい。   The image processing device 100 may be configured as an information processing device such as a known personal computer, or may be configured by connecting an arbitrary peripheral device to the information processing device. Further, the image processing apparatus 100 may be realized by implementing software (including programs, data, and the like) for realizing the method of the present invention in the information processing apparatus.

更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。   Further, the specific form of the distribution / integration of the apparatus is not limited to the illustrated one, and all or a part of the apparatus may be functionally or physically arbitrarily determined according to various additions or the like, or according to a functional load. It can be configured to be distributed / integrated. That is, the above-described embodiments may be arbitrarily combined and implemented, or the embodiments may be selectively implemented.

以上のように、画像処理装置、画像処理方法、および、プログラムは、産業上の多くの分野、特に画像を扱う画像処理分野で実施することができ、極めて有用である。   As described above, the image processing apparatus, the image processing method, and the program can be implemented in many industrial fields, particularly, in the field of image processing that handles images, and are extremely useful.

100 画像処理装置
102 制御部
102a 画像取得部
102b 分割部
102c 仮ラベリング部
102d マージ部
102e 真ラベリング部
106 記憶部
106a 画像データファイル
106b 同値ラベル管理テーブル
REFERENCE SIGNS LIST 100 Image processing device 102 Control unit 102a Image acquisition unit 102b Division unit 102c Temporary labeling unit 102d Merge unit 102e True labeling unit 106 Storage unit 106a Image data file 106b Equivalent label management table

Claims (13)

二値画像を所定サイズの複数のブロック画像に分割する分割手段と、
任意の順番で前記ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリング手段と、
前記仮ラベル間の同値関係に関する同値ラベル管理データを記憶する同値ラベル管理記憶手段と、
基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、前記同値ラベル管理記憶手段に記憶された前記同値ラベル管理データをコンペアアンドスワップ命令を用いて更新することで実行するマージ手段と、
前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリング手段と、
を備え画像処理装置。
Dividing means for dividing the binary image into a plurality of block images of a predetermined size,
A temporary labeling unit that selects the block image in an arbitrary order, and performs assignment of a unique temporary label to a connected component composed of 0-pixels or 1-pixels in the block image;
Equivalent label management storage means for storing equivalence label management data related to the equivalence relationship between the temporary labels,
The connected components in the reference block image that is the block image that has been provisionally labeled as a reference, and the connected components in the adjacent block image that is the block image that has been provisionally labeled and adjacent to the reference block image, Merging means for executing the merge processing of the temporary label, by updating the equivalent label management data stored in the equivalent label management storage means using a compare and swap instruction, based on a union finding algorithm ,
True labeling means for giving, as a true label, a representative element having an equivalent relation to the connected component to the connected component, based on the merging process for all the block images by the merging means,
The image processing apparatus Ru comprising a.
前記マージ手段は、
前記仮ラベリング手段により、前記基準ブロック画像に隣接する所定の前記ブロック画像に対する前記仮ラベルの付与が完了した場合、前記基準ブロック画像における前記連結成分と、前記所定のブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を実行する、請求項1に記載の画像処理装置。
The merging means includes:
By the temporary labeling means, when the provision of the temporary label to the predetermined block image adjacent to the reference block image is completed, the connected component in the reference block image, the connected component in the predetermined block image, The image processing apparatus according to claim 1, wherein the temporary label merging process is performed.
前記隣接ブロック画像は、
前記基準ブロック画像に隣接する左と左上と上と右上との4方向の仮ラベル付与済の前記ブロック画像である、請求項1または2に記載の画像処理装置。
The adjacent block image is
3. The image processing device according to claim 1, wherein the block image is a block image adjacent to the reference block image to which temporary labels in four directions of left, upper left, upper, and upper right have been added.
前記マージ手段は、
前記基準ブロック画像の左上の画素が前記連結成分を構成し、当該左上の画素の左上に隣接して、前記基準ブロック画像の左上に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項1からのいずれか一つに記載の画像処理装置。
The merging means includes:
The upper left pixel of the reference block image constitutes the connected component, and the pixel constituting the connected component in the adjacent block image adjacent to the upper left of the upper left pixel and adjacent to the upper left of the reference block image exists. to case, the executing merge processing of the temporary label image processing apparatus according to any one of claims 1 to 3.
前記マージ手段は、
前記基準ブロック画像の最も上の行を構成する画素が前記連結成分を構成し、当該最も上の行を構成する画素の上に隣接して、前記基準ブロック画像の上に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項1からのいずれか一つに記載の画像処理装置。
The merging means includes:
The pixels constituting the uppermost row of the reference block image constitute the connected components, and the adjacent block images adjacent to the pixels constituting the uppermost row and above the reference block image when said pixels constituting the connected component is present in said executes the merge processing of the temporary label image processing apparatus according to any one of claims 1 to 3.
前記マージ手段は、
前記基準ブロック画像の右上の画素が前記連結成分を構成し、当該右上の画素の右上に隣接して、前記基準ブロック画像の右上に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項1からのいずれか一つに記載の画像処理装置。
The merging means includes:
The upper right pixel of the reference block image constitutes the connected component, and the pixel constituting the connected component in the adjacent block image adjacent to the upper right of the upper right pixel and adjacent to the upper right of the reference block image exists. to case, the executing merge processing of the temporary label image processing apparatus according to any one of claims 1 to 3.
前記マージ手段は、
前記基準ブロック画像の最も左の列を構成する画素が前記連結成分を構成し、当該最も左の列を構成する画素の左に隣接して、前記基準ブロック画像の左に隣接する前記隣接ブロック画像における前記連結成分を構成する画素が存在する場合、前記仮ラベルのマージ処理を実行する、請求項1からのいずれか一つに記載の画像処理装置。
The merging means includes:
The pixels constituting the leftmost column of the reference block image constitute the connected component, and the adjacent block images adjacent to the left of the pixels constituting the leftmost column and adjacent to the left of the reference block image. when said pixels constituting the connected component is present in said executes the merge processing of the temporary label image processing apparatus according to any one of claims 1 to 3.
前記真ラベリング手段は、
前記マージ処理が実行された前記二値画像に対してラスタスキャンを行い、前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある前記代表元を前記真ラベルとして付与する、請求項1からのいずれか一つに記載の画像処理装置。
The true labeling means,
Performing a raster scan on the binary image on which the merge processing has been executed, and based on the merge processing for all the block images by the merging unit, the connected component has an equivalence relationship with the connected component. imparting certain the representative source as the true label, image processing apparatus according to any one of claims 1 to 7.
前記真ラベリング手段は、
前記マージ処理が実行された複数の前記ブロック画像に対して、並列に、ラスタスキャンを行い、前記マージ手段による全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある前記代表元を前記真ラベルとして付与する、請求項1からのいずれか一つに記載の画像処理装置。
The true labeling means,
A raster scan is performed in parallel on the plurality of block images on which the merge processing has been executed, and the connected component is connected to the connected component based on the merge processing on all the block images by the merge unit. The image processing apparatus according to any one of claims 1 to 7 , wherein the representative element having the same value as a component is assigned as the true label.
前記複数のブロック画像は、
任意に選択された前記ブロック画像である、請求項に記載の画像処理装置。
The plurality of block images are
The image processing device according to claim 9 , wherein the block image is an arbitrarily selected block image.
アクセラレータ、
を更に備えた、請求項1から10のいずれか一つに記載の画像処理装置。
Accelerators,
Further comprising, an image processing apparatus according to any one of claims 1 10.
二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、
任意の順番で前記ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、
基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、前記仮ラベル間の同値関係に関する同値ラベル管理データを記憶する同値ラベル管理記憶手段に記憶された前記同値ラベル管理データをコンペアアンドスワップ命令を用いて更新することで実行するマージステップと、
前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、
を含画像処理方法。
A dividing step of dividing the binary image into a plurality of block images of a predetermined size,
A temporary labeling step of selecting the block image in an arbitrary order, and performing the assignment of a unique temporary label to a connected component composed of 0-pixels or 1-pixels in the block image;
The connected components in the reference block image that is the block image that has been provisionally labeled as a reference, and the connected components in the adjacent block image that is the block image that has been provisionally labeled and adjacent to the reference block image, Based on a union finding algorithm, the temporary label merging process uses a compare-and-swap instruction to compare the equivalent label management data stored in the equivalent label management storage unit that stores equivalent label management data related to the equivalent relationship between the temporary labels. A merge step to be performed by updating
A true labeling step of assigning, as a true label, a representative element having an equivalent relationship to the connected component to the connected component, based on the merging process for all the block images in the merging step;
Including image processing methods.
二値画像を所定サイズの複数のブロック画像に分割する分割ステップと、
任意の順番で前記ブロック画像を選択し、当該ブロック画像における0−画素または1−画素から構成される連結成分に対して、一意の仮ラベルの付与を実行する仮ラベリングステップと、
基準とする仮ラベル付与済の前記ブロック画像である基準ブロック画像における前記連結成分と、前記基準ブロック画像に隣接する仮ラベル付与済の前記ブロック画像である隣接ブロック画像における前記連結成分と、の前記仮ラベルのマージ処理を、ユニオンファインドアルゴリズムに基づいて、前記仮ラベル間の同値関係に関する同値ラベル管理データを記憶する同値ラベル管理記憶手段に記憶された前記同値ラベル管理データをコンペアアンドスワップ命令を用いて更新することで実行するマージステップと、
前記マージステップにて全ての前記ブロック画像に対する前記マージ処理に基づいて、前記連結成分に対して、前記連結成分と同値関係にある代表元を真ラベルとして付与する真ラベリングステップと、
をコンピュータに実行させるためのプログラム。
A dividing step of dividing the binary image into a plurality of block images of a predetermined size,
A temporary labeling step of selecting the block image in an arbitrary order, and performing the assignment of a unique temporary label to a connected component composed of 0-pixels or 1-pixels in the block image;
The connected components in the reference block image that is the block image that has been provisionally labeled as a reference, and the connected components in the adjacent block image that is the block image that has been provisionally labeled and adjacent to the reference block image, Based on a union finding algorithm, the temporary label merging process uses a compare-and-swap instruction to compare the equivalent label management data stored in the equivalent label management storage unit that stores equivalent label management data related to the equivalent relationship between the temporary labels. A merge step to be performed by updating
A true labeling step of assigning, as a true label, a representative element having an equivalent relationship to the connected component to the connected component, based on the merging process for all the block images in the merging step;
A program for causing a computer to execute.
JP2018530269A 2016-07-27 2016-07-27 Image processing apparatus, image processing method, and program Active JP6639675B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/072088 WO2018020623A1 (en) 2016-07-27 2016-07-27 Image processing device, image processing method, and program

Publications (2)

Publication Number Publication Date
JPWO2018020623A1 JPWO2018020623A1 (en) 2018-11-01
JP6639675B2 true JP6639675B2 (en) 2020-02-05

Family

ID=61015767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018530269A Active JP6639675B2 (en) 2016-07-27 2016-07-27 Image processing apparatus, image processing method, and program

Country Status (2)

Country Link
JP (1) JP6639675B2 (en)
WO (1) WO2018020623A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61243569A (en) * 1985-04-19 1986-10-29 Fujitsu Ltd System for labeling to digital picture area
JPS63284685A (en) * 1987-05-15 1988-11-21 Fujitsu Ltd Labeling method
JPH05165955A (en) * 1991-12-13 1993-07-02 Sony Corp Image processing method

Also Published As

Publication number Publication date
WO2018020623A1 (en) 2018-02-01
JPWO2018020623A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
US10795553B2 (en) Systems and methods for intelligent layered interactive programmatic elements for fixed content
JP5939524B2 (en) Subbuffer object
JP2018518733A (en) File operation method and apparatus
US9626285B2 (en) Storage resource allocation to dataflows based on data requirements and attributes
KR20140035522A (en) Instruction culling in graphics processing unit
CN111414379A (en) Serial number generation method, device, equipment and computer readable storage medium
KR20230004394A (en) Hared memory access control method, device, electronic device and autonomous vehicle
KR101953133B1 (en) Apparatus and method for rendering
KR20160130455A (en) Animation data generating method, apparatus, and electronic device
US20170315773A1 (en) Virtualizing Applications for Per-Monitor Displaying
CN113535087B (en) Data processing method, server and storage system in data migration process
US20130067502A1 (en) Atlasing and Virtual Surfaces
JP6639675B2 (en) Image processing apparatus, image processing method, and program
US20170186199A1 (en) Image processor for wearable device
CN107291628B (en) Method and apparatus for accessing data storage device
JP6331914B2 (en) Algorithm generating apparatus, algorithm generating method and algorithm generating computer program
JP7040272B2 (en) Source code conversion program and source code conversion method
JP5309560B2 (en) Drawing data management device
US20130290977A1 (en) Computational Resource Allocation System And A Method For Allocating Computational Resources For Executing A Scene Graph Based Application At Run Time
US9798585B2 (en) Context switching with reader-writer locks
JP2014038577A (en) Rendering processing device and method using multiprocessing
JP6430086B1 (en) Image providing apparatus, image providing method, and image providing program
US10789206B2 (en) System and method for parallel storage transformation
JP2017072977A (en) Computer program
CN118608746A (en) Detection frame screening method, detection frame screening device, computer equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191021

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191224

R150 Certificate of patent or registration of utility model

Ref document number: 6639675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150