Arithmetic device, processing method and program

The arithmetic device and method improve labeling efficiency by performing parallel processing through comparisons at pixel block boundaries, overcoming the inefficiencies of sequential labeling methods.

JP2025009062APending Publication Date: 2025-01-20NEC NETWORK & SENSOR SYST

Patent Information

Application Number
JP2023111801
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-06
Publication Date
2025-01-20

Smart Images

  • Figure 2025009062000001_ABST
    Figure 2025009062000001_ABST
Patent Text Reader

Abstract

To provide an arithmetic device that can more efficiently execute labeling processing compared with comparison object labeling processing which performs reverse direction labeling processing after forward direction labeling processing.SOLUTION: An arithmetic device comprises: a first arithmetic unit that executes first comparison which compares between both label values of a pixel existing at a lateral direction boundary of each pixel block in first image data in a longitudinal direction, overwrites a larger value with a smaller value of label values of a pixel existing at the lateral boundary in the first comparison, executes second comparison which compares between both label values of a pixel existing at a longitudinal direction boundary of each pixel block in the first image data in a lateral direction, and generates table data by overwriting a larger value with a smaller value of label values of a pixel existing at the longitudinal boundary in the second comparison; and a second arithmetic unit that generates second image data for a total image by changing the first image data.SELECTED DRAWING: Figure 15
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a computing device, a processing method, and a program. [Background technology]

[0002] Image processing techniques are used in various fields. Patent Document 1 discloses a related technique, which is an image processing device that performs labeling processing. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] International Publication No. 2018 / 020623 Summary of the Invention [Problem to be solved by the invention]

[0004] Here, one of the commonly performed labeling processes will be described. The commonly performed labeling process described here is a process in which a forward labeling process, which will be described later, is first performed, and then a backward labeling process, which will be described later. The forward labeling process is a process in which labeling is performed pixel by pixel from the left end to the right end in each stage, from the top to the bottom of the image. Moreover, the backward labeling process is a process in which labeling is performed pixel by pixel from the right end to the left end in each stage, from the bottom to the top of the image, in the opposite order to the forward labeling process.

[0005] Fig. 18 is a first diagram for explaining the forward labeling process. Fig. 19 is a second diagram for explaining the forward labeling process. Fig. 20 is a first diagram for explaining the backward labeling process. Fig. 21 is a second diagram for explaining the backward labeling process. Below, the detailed processes of the forward labeling process and the backward labeling process will be explained with reference to Figs. 18 to 21, showing specific examples.

[0006] Here, the image is assumed to be an image consisting of 4×4 pixels, with the number of pixels in the vertical direction and the number of pixels in the horizontal direction being 4 each. The offset value is assumed to be 40. This offset is not necessary when the entire image is treated as one image and the forward labeling process is performed on each of the multiple images. However, in an embodiment of the present disclosure described later, the entire image is equally divided into multiple images (in the example described here, an image consisting of 4×4 pixels), and the forward labeling process is performed on each of the multiple images. The offset is used to distinguish the label value in each of the multiple equally divided images. Here, the forward labeling process and the backward labeling process including the offset will be described. Part (a) of FIG. 18 is a diagram showing the initial state of the label for 4×4 pixels. In the forward labeling process, if the label value of the pixel to be processed is not 00, the label value is compared with the label value of the pixel one pixel above and the label value of the pixel one pixel to the left. The label value of the pixel to be processed is updated to the smallest value among the compared label values. Furthermore, if the label values ​​of the pixel above and the pixel to the left are both 00, the label value of the pixel being processed is updated to the value in the row below in the table data. Note that if there is no pixel to compare (the pixel above or the pixel to the left), the label value of the pixel to compare is assumed to be 00 and no comparison is made. The label value of pixels on the edge of an image is 00. Pixels with a label value of 00 are excluded from the forward labeling process.

[0007] For example, as shown in part (a) of FIG. 18, the label value of the leftmost pixel in the top row is 00. In the example described here, the offset value is 40. Therefore, the label value of the leftmost pixel in the top row should be 40, with the offset value of 40 added. Therefore, 40 in the table data is rewritten to 00, as shown in FIG. 19. This makes it possible to process the label value of 40 of the leftmost pixel in the top row as 00.

[0008] Also, as shown in part (a) of FIG. 18, the label value of the second pixel from the left in the top row is 01. An offset value of 40 is added to the label value of the second pixel from the left in the top row, making it 41. There is no pixel above the second pixel from the left in the top row. Also, the label value of the pixel one position to the left of the second pixel from the left in the top row is 00. Therefore, the label value of the second pixel from the left in the top row is 41, the value one position below 00 in the table data, as shown in part (b) of FIG. 18.

[0009] Also, as shown in part (a) of FIG. 18, the label value of the third pixel from the left in the top row is 01. The label value of the third pixel from the left in the top row is increased by an offset value of 40, making it 41. There is no pixel above the third pixel from the left in the top row. Also, the label value of the pixel one pixel to the left of the third pixel from the left in the top row is 41. Therefore, the label value of the third pixel from the left in the top row is 41, as shown in part (c) of FIG. 18.

[0010] 18(a), the label value of the fourth pixel from the left in the top row (i.e., the rightmost pixel in the top row) is 00. The label value of the fourth pixel from the left in the top row should be 40, with an offset value of 40 added. However, due to the table data, the label value of the fourth pixel from the left in the top row is 00, as shown in FIG. 18(c).

[0011] Also, as shown in part (a) of FIG. 18, the label value of the leftmost pixel in the second row from the top is 01. The label value of the leftmost pixel in the second row from the top is 41, with an offset value of 40 added. There is no pixel one row above the leftmost pixel in the second row from the top. Also, the label value of the pixel one row to the left of the second pixel from the left in the top row is 00. Therefore, the label value of the second pixel from the left in the top row is 42, the value one row below 41 in the table data, as shown in part (d) of FIG. 18.

[0012] Also, as shown in part (a) of FIG. 18, the label value of the second pixel from the left in the second row from the top is 01. The label value of the second pixel from the left in the second row from the top is 41 after an offset value of 40 is added. The label value of the pixel one pixel above the second pixel from the left in the second row from the top is 41. Furthermore, the label value of the pixel one pixel to the left of the second pixel from the left in the second row from the top is 42. Therefore, the label value of the second pixel from the left in the second row from the top is 41, as shown in part (e) of FIG. 18.

[0013] Similarly, by performing the forward labeling process in the order of the pixels described above up to the rightmost pixel in the bottom row, the label values ​​of each pixel shown in part (a) of Figure 18 become the label values ​​shown in part (f) of Figure 18.

[0014] In the reverse labeling process, if the label value of the pixel being processed is not 00, the label value is compared with the label value of the pixel one pixel below and the label value of the pixel one pixel to the right. The label value of the pixel being processed is updated to the smallest of the compared label values. If both the label values ​​of the pixel one pixel below and the pixel one pixel to the right are 00, the label value of the pixel being processed is updated to the value of the row one pixel below in the table data. Note that if there is no pixel to compare (the pixel one pixel below or the pixel one pixel to the right), the label value of the pixel being compared is assumed to be 00 and no comparison is made. The label value of pixels at the edge of the image is 00. Pixels with a label value of 00 are not subject to the reverse labeling process.

[0015] For example, as shown in part (a) of FIG. 20, the label value of the second pixel from the right in the second row from the bottom is 41. The label value of the pixel just below the second pixel from the right in the second row from the bottom is 00. The label value of the pixel just to the right of the second pixel from the right in the second row from the bottom is also 00. Therefore, the label value of the second pixel from the right in the second row from the bottom remains 41 in the table data, as shown in part (b) of FIG. 20.

[0016] For example, as shown in part (a) of FIG. 20, the label value of the third pixel from the right in the second row from the bottom is 41. The label value of the pixel immediately below the third pixel from the right in the second row from the bottom is 00. The label value of the pixel immediately to the right of the third pixel from the right in the second row from the bottom is 41. Therefore, the label value of the third pixel from the right in the second row from the bottom is 41, as shown in part (c) of FIG. 20.

[0017] Also, for example, as shown in part (a) of FIG. 20, the label value of the fourth pixel from the right in the second row from the bottom (i.e., the left end) is 42. The label value of the pixel just below the fourth pixel from the right in the second row from the bottom is 00. The label value of the pixel just to the right of the fourth pixel from the right in the second row from the bottom is 41. Therefore, the label value of the fourth pixel from the right in the second row from the bottom is 41, as shown in part (d) of FIG. 20. Also, in conjunction with this process, 42 in the table data is rewritten to 41 as shown in FIG. 21.

[0018] Similarly, by performing the backward labeling process in the order of the pixels described above up to the top left pixel, the label values ​​of each pixel shown in part (a) of Figure 20 become the label values ​​shown in part (f) of Figure 20.

[0019] Meanwhile, there is a demand for a technology that can execute labeling processing more efficiently than the general labeling processing described above, which performs forward labeling processing followed by backward labeling processing.

[0020] An object of each aspect of the present disclosure is to provide a computing device, a processing method, and a program that can solve the above problems. [Means for solving the problem]

[0021] In order to achieve the above-mentioned object, according to one aspect of the present disclosure, a calculation device includes a first calculation unit that generates table data by performing a first comparison vertically comparing label values ​​of pixels located at horizontal boundaries of each pixel block in first image data, overwriting a larger label value of the pixels located at the horizontal boundary in the first comparison with a smaller value, and performing a second comparison horizontally comparing label values ​​of pixels located at vertical boundaries of each pixel block in the first image data, overwriting a larger label value of the pixels located at the vertical boundary in the second comparison with a smaller value, and a second calculation unit that generates second image data for an entire image by modifying the first image data.

[0022] In order to achieve the above object, according to another aspect of the present disclosure, a processing method includes: performing a first comparison to vertically compare label values ​​of pixels located at horizontal boundaries of each pixel block in the first image data, overwriting a larger label value of the pixels located at the horizontal boundaries in the first comparison with a smaller value; performing a second comparison to horizontally compare label values ​​of pixels located at vertical boundaries of each pixel block in the first image data, overwriting a larger label value of the pixels located at the vertical boundaries with a smaller value in the second comparison, thereby generating table data; and generating second image data for the entire image by modifying the first image data.

[0023] In order to achieve the above-mentioned object, according to another aspect of the present disclosure, a program causes a computer to perform a first comparison vertically comparing label values ​​of pixels located at horizontal boundaries of each pixel block in first image data, overwriting a larger label value of the pixels located at the horizontal boundary in the first comparison with a smaller value, perform a second comparison horizontally comparing label values ​​of pixels located at vertical boundaries of each pixel block in the first image data, overwriting a larger label value of the pixels located at the vertical boundary in the second comparison with a smaller value, thereby generating table data, and generating second image data for the entire image by modifying the first image data. Effect of the Invention

[0024] According to each aspect of the present disclosure, in the labeling process, an appropriate value can be assigned as the label value of a pixel. [Brief description of the drawings]

[0025] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration of an information processing device according to an embodiment of the present disclosure. [Diagram 2] FIG. 2 is a diagram illustrating an example of a configuration of a processing unit according to an embodiment of the present disclosure. [Diagram 3] FIG. 11 is a diagram illustrating an example of a processing flow of an information processing device according to an embodiment of the present disclosure. [Figure 4] 11 is a diagram illustrating an example of image data generated by a first generation unit according to an embodiment of the present disclosure. FIG. [Diagram 5] 11 is a diagram illustrating an example of a plurality of pixel blocks generated by a second generation section according to an embodiment of the present disclosure. FIG. [Figure 6] 13 is a diagram illustrating an example of table data with offsets used in a labeling process performed by a processing unit according to an embodiment of the present disclosure. FIG. [Figure 7]6 is a diagram showing an example of a plurality of pixel blocks when an offset value is applied to the plurality of pixel blocks shown in FIG. 5; [Figure 8] FIG. 13 is a diagram illustrating an example of a plurality of pixel blocks after modification by a processing unit according to an embodiment of the present disclosure. [Figure 9] FIG. 13 is a diagram illustrating an example of table data with an offset after correction by a processing unit according to an embodiment of the present disclosure. [Figure 10] FIG. 11 is a first diagram for explaining a process performed by a third generation unit according to an embodiment of the present disclosure. [Figure 11] FIG. 2 is a second diagram for explaining the process performed by the third generation unit according to an embodiment of the present disclosure. [Figure 12] FIG. 3 is a third diagram for explaining the process performed by the third generation unit according to an embodiment of the present disclosure. [Figure 13] FIG. 4 is a fourth diagram for explaining the processing performed by the third generation unit according to an embodiment of the present disclosure. [Figure 14] FIG. 5 is a fifth diagram for explaining the processing performed by the third generation unit according to an embodiment of the present disclosure. [Figure 15] FIG. 2 is a diagram illustrating a minimum configuration of a computing device according to an embodiment of the present disclosure. [Figure 16] FIG. 11 is a diagram illustrating an example of a processing flow of a calculation device having a minimum configuration according to an embodiment of the present disclosure. [Figure 17] FIG. 1 is a schematic block diagram illustrating a configuration of a computer according to at least one embodiment. [Figure 18] FIG. 11 is a first diagram for explaining a forward labeling process. [Figure 19] FIG. 2 is a second diagram for explaining the forward labeling process. [Figure 20] FIG. 11 is a first diagram for explaining the process of reverse labeling. [Figure 21] FIG. 2 is a second diagram for explaining the process of reverse labeling. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0026] Hereinafter, the embodiments will be described in detail with reference to the drawings. <Embodiment> (Configuration of information processing device) An information processing device 1 according to an embodiment of the present disclosure will be described with reference to the drawings. The information processing device 1 is a device that can perform labeling processing for identifying objects in an image in a short time compared to a device that performs general labeling processing that is difficult to perform in parallel. The information processing device 1 is a device that more efficiently performs integration of each image after parallel labeling in particular. A series of connected elements that exist in a binary image is called a blob. The labeling process is a process of assigning a unique number to each blob when multiple blobs exist in a binary image. For example, the labeling process is performed to find the boundaries between multiple objects in an image and to cut the image into images of each object based on the boundaries.

[0027] 1 is a diagram showing an example of a configuration of an information processing device 1 according to an embodiment of the present disclosure. As shown in FIG.

[0028] The calculation unit 10 executes calculations necessary for the labeling process. As shown in Fig. 1, the calculation unit 10 includes an acquisition unit 101, a first generation unit 102, a second generation unit 103, an allocation unit 104, a processing unit 105, a first combination unit 106, a second combination unit 107, a third generation unit 108, and a restoration unit 109.

[0029] The acquisition unit 101 acquires an entire image to be subjected to labeling processing. The first generation unit 102 generates image data for the entire image acquired by the acquisition unit 101. The image data is binarized entire image data. For example, the first generation unit 102 applies a technique such as edge extraction to the entire image acquired by the acquisition unit 101. Then, the first generation unit 102 represents the entire image with data of 0 or 1. The image data is generated by the first generation unit 102 performing such processing.

[0030] The second generation unit 103 generates a plurality of pixel blocks from the image data generated by the first generation unit 102. For example, the second generation unit 103 generates a plurality of pixel blocks by dividing the image data generated by the first generation unit 102 into pieces of an appropriate size. Each piece of image data divided into pieces of an appropriate size is a pixel block. Note that the appropriate size here is, for example, a size in which the number of pixel blocks after division is equal to or smaller than the number that can be processed in parallel by the processing unit 105 described later.

[0031] The allocation unit 104 allocates the plurality of pixel blocks generated by the second generation unit 103 to the plurality of processing units included in the processing unit 105. For example, when the plurality of pixel blocks are nine, namely, the first pixel block to the ninth pixel block, and the processing unit 105 includes nine processing units, namely, the first processing unit 1051 to the ninth processing unit 1059, the allocation unit 104 allocates the first pixel block to the first processing unit 1051, the second pixel block to the second processing unit 1052, the third pixel block to the third processing unit 1053, the fourth pixel block to the fourth processing unit 1054, the fifth pixel block to the fifth processing unit 1055, the sixth pixel block to the sixth processing unit 1056, the seventh pixel block to the seventh processing unit 1057, the eighth pixel block to the eighth processing unit 1058, and the ninth pixel block to the ninth processing unit 1059.

[0032] The processing unit 105 executes a labeling process for each of the pixel blocks assigned by the assignment unit 104. FIG. 2 is a diagram showing an example of the configuration of the processing unit 105 according to an embodiment of the present disclosure. For example, the processing unit 105 includes processing units (i.e., at least the first processing unit 1051 to the nth processing unit 105n shown in FIG. 2) whose number is equal to or greater than the number n of the pixel blocks generated by the second generation unit 103. Each of the first processing unit 1051 to the nth processing unit 105n may be a processor. That is, one processor may correspond to one pixel block. Also, each of the first processing unit 1051 to the nth processing unit 105n may be a processing unit corresponding to one of a plurality of threads in one or more processors. That is, one processing unit corresponding to one thread may correspond to one pixel block. Then, each of the processing units to which pixel blocks are assigned executes labeling processes for the assigned pixel blocks in parallel at the same time. That is, the processing unit 105 executes labeling processes for the assigned pixel blocks in parallel by the processing units to which pixel blocks are assigned.

[0033] The labeling process performed by the processing unit 105 requires table data. Therefore, table data is prepared for the number of pixel blocks. In the labeling process, in order to prevent the table data values ​​of each pixel block from being confused, a unique table data offset is set for each of the multiple pixel blocks. The details of setting this offset will be described later.

[0034] Moreover, the processing unit 105 corrects the labels in the plurality of pixel blocks by performing a reverse search of the labeling process. Furthermore, the processing unit 105 corrects the table data based on the plurality of pixel blocks after the labeling process. The details of the correction of the labels in the plurality of pixel blocks and the correction of the table data will be described later.

[0035] The first combining unit 106 generates image data of the size before division. For example, the first combining unit 106 simply arranges the pixel blocks after the processing unit 105 executes the labeling process in the order before division. Then, the first combining unit 106 combines adjacent pixel blocks. By performing such processing by the first combining unit 106, image data of the size before division is generated.

[0036] Second combining unit 107 generates table data corresponding to each of the multiple pixel blocks. Details of the combination of this table data will be described later. Third generating unit 108 generates table data for the entire image based on the image data generated by first combining unit 106 and the table data generated by second combining unit 107. Details of the generation of this table data for the entire image will be described later. Restoring unit 109 restores the image data for the entire image. Details of the restoration of this image data for the entire image will be described later.

[0037] Note that the processes performed by the information processing device 1 in each embodiment of the present disclosure are not limited to the processes described above. For example, the information processing device 1 may perform the processes described below.

[0038] Next, the processing performed by the information processing device 1 will be described with reference to Fig. 3 to Fig. 7. Fig. 3 is a diagram showing an example of a processing flow of the information processing device 1 according to an embodiment of the present disclosure. Here, the labeling processing performed by the information processing device 1 will be described with reference to Fig. 3.

[0039] The acquisition unit 101 acquires an entire image to be subjected to labeling processing (step S1). The first generation unit 102 generates image data for the entire image acquired by the acquisition unit 101 (step S2). For example, the first generation unit 102 applies a technique such as edge extraction to the entire image acquired by the acquisition unit 101. Then, the first generation unit 102 represents the entire image with data of 0 or 1. FIG. 4 is a diagram showing an example of image data generated by the first generation unit 102 according to an embodiment of the present disclosure. For example, it is assumed that the image data consisting of 16×16 pixels shown in FIG. 4 is generated by the first generation unit 102 performing the process of step S2.

[0040] The second generation unit 103 generates a plurality of pixel blocks for the image data generated by the first generation unit 102 (step S3). Fig. 5 is a diagram showing an example of a plurality of pixel blocks generated by the second generation unit 103 according to an embodiment of the present disclosure. For example, the second generation unit 103 divides the image data generated by the first generation unit 102, which is composed of 16x16 pixels, into nine equal parts, thereby generating nine pixel blocks, the first pixel block to the ninth pixel block, each composed of 4x4 pixels, as shown in Fig. 5.

[0041] The allocation unit 104 allocates the pixel blocks generated by the second generation unit 103 to the processing units included in the processing unit 105 (step S4). For example, if the pixel blocks are the first pixel block to the ninth pixel block shown in FIG. 5 and the processing unit 105 includes nine processing units, the first processing unit 1051 to the ninth processing unit 1059, the allocation unit 104 allocates the first pixel block to the first processing unit 1051, the second pixel block to the second processing unit 1052, the third pixel block to the third processing unit 1053, the fourth pixel block to the fourth processing unit 1054, the fifth pixel block to the fifth processing unit 1055, the sixth pixel block to the sixth processing unit 1056, the seventh pixel block to the seventh processing unit 1057, the eighth pixel block to the eighth processing unit 1058, and the ninth pixel block to the ninth processing unit 1059.

[0042] The processing unit 105 performs a labeling process on each of the pixel blocks assigned by the assignment unit 104 (step S5). For example, when the processing unit 105 includes nine processing units, namely, the first processing unit 1051 to the ninth processing unit 1059, and the assignment unit 104 assigns the first pixel block to the first processing unit 1051, the second pixel block to the second processing unit 1052, the third pixel block to the third processing unit 1053, the fourth pixel block to the fourth processing unit 1054, the fifth pixel block to the fifth processing unit 1055, the sixth pixel block to the sixth processing unit 1056, the seventh pixel block to the seventh processing unit 1057, the eighth pixel block to the eighth processing unit 1058, and the ninth pixel block to the ninth processing unit 1059, the first processing unit 1051 performs a labeling process on the first pixel block based on table data with an offset, which will be described later. The second processing unit 1052 performs a labeling process on the second pixel block based on table data with an offset, which will be described later. The third processing unit 1053 performs a labeling process on the third pixel block based on table data with an offset, which will be described later. The fourth processing unit 1054 performs a labeling process on the fourth pixel block based on table data with an offset, which will be described later. The fifth processing unit 1055 performs a labeling process on the fifth pixel block based on table data with an offset, which will be described later. The sixth processing unit 1056 performs a labeling process on the sixth pixel block based on table data with an offset, which will be described later. The seventh processing unit 1057 performs a labeling process on the seventh pixel block based on table data with an offset, which will be described later. The eighth processing unit 1058 performs a labeling process on the eighth pixel block based on table data with an offset, which will be described later. The ninth processing unit 1059 performs a labeling process on the ninth pixel block based on table data with an offset, which will be described later.

[0043] The labeling process performed by the processing unit 105 requires table data. Therefore, table data is prepared for the number of pixel blocks. FIG. 6 is a diagram showing an example of table data with an offset used in the labeling process performed by the processing unit 105 according to an embodiment of the present disclosure. In the labeling process, in order to prevent the table data values ​​of each pixel block from being confused, a unique offset of the table data is set for the number of pixel blocks. The offset value is set to a value half the pixel size (length x width) of each pixel block. For example, when the image data generated by the first generating unit 102 is image data consisting of 16 x 16 pixels as shown in FIG. 4, and the second generating unit 103 generates nine pixel blocks, the first pixel block to the ninth pixel block, each consisting of 4 x 4 pixels as shown in FIG. 5, the size of each pixel block is 4 x 4 = 16 pixels. Therefore, the offset value of each table data is set to 16 / 2 = 8. FIG. 7 is a diagram showing an example of a plurality of pixel blocks when offset values ​​are applied to the plurality of pixel blocks shown in FIG. 5. If the pixel blocks shown in FIG. 7 are arranged in the order of top left → top right → middle left → middle right → bottom left → bottom right, the table data with offsets used in the labeling process performed by processing unit 105 will be the table data with offsets shown in FIG. 6.

[0044] The processing unit 105 corrects the label in the pixel block by performing a reverse search of the labeling process (step S6). The processing unit 105 also corrects the table data based on the multiple pixel blocks after the labeling process (step S7). For example, the pixel block on the right in the middle row shown in FIG. 7 (i.e., the sixth pixel block) has 41 and 42 even though the table data values ​​are adjacent. Therefore, the processing unit 105 corrects 42 in the pixel block on the right in the middle row shown in FIG. 7 to 41 by performing a reverse labeling process. Also, for example, the processing unit 105 corrects the table data with an offset shown in FIG. 6 to table data with an offset in which 42 is changed to 41.

[0045] Fig. 8 is a diagram showing an example of a plurality of pixel blocks after correction by the processing unit 105 according to an embodiment of the present disclosure. For example, the allocation unit 104 allocates the first pixel block to the first processing unit 1051, the second pixel block to the second processing unit 1052, the third pixel block to the third processing unit 1053, the fourth pixel block to the fourth processing unit 1054, the fifth pixel block to the fifth processing unit 1055, the sixth pixel block to the sixth processing unit 1056, the seventh pixel block to the seventh processing unit 1057, the eighth pixel block to the eighth processing unit 1058, and the ninth pixel block to the ninth processing unit 1059, and the first processing unit 1051 to the ninth processing unit 1059 included in the processing unit 105 perform the process of step S6, thereby generating the plurality of pixel blocks shown in Fig. 8. The processes of steps S5 to S7 are forward labeling processes.

[0046] Fig. 9 is a diagram showing an example of table data with offsets after correction by the processing unit 105 according to an embodiment of the present disclosure. For example, the processing unit 105 performs the process of step S7 to correct the table data with offsets shown in Fig. 6 to the table data with offsets shown in Fig. 9.

[0047] The first combining unit 106 generates image data of the size before division from the plurality of corrected pixel blocks (step S8). For example, the first combining unit 106 arranges the plurality of pixel blocks corrected by the processing unit 105 in the order before division. Then, the first combining unit 106 combines adjacent pixel blocks together.

[0048] The second combining unit 107 generates table data corresponding to each of the plurality of pixel blocks (step S9). For example, the second combining unit 107 arranges the table data corrected by the processing unit 105 corresponding to each of the plurality of pixel blocks in the order corresponding to those pixel blocks, similar to the plurality of pixel blocks corrected. As a result, for example, table data of 00 to 71 corresponding to the image data of the size before division generated by the first combining unit 106 is obtained.

[0049] The third generating unit 108 generates table data for the entire image based on the image data generated by the first combining unit 106 and the table data generated by the second combining unit 107. For example, the third generating unit 108 vertically (i.e., vertically) compares table data values ​​corresponding to label values ​​of pixels present at horizontal boundaries of each pixel block in the image data generated by the first combining unit 106 (step S10). The third generating unit 108 overwrites the larger of the table data values ​​compared vertically with the smaller value (step S11). However, the value 00 is not an object of discrimination. In other words, the third generating unit 108 does not compare the value 00, which is not an object of discrimination. Also, for example, the third generating unit 108 horizontally (i.e., horizontally) compares table data values ​​corresponding to label values ​​of pixels present at vertical boundaries of each pixel block in the image data generated by the first combining unit 106 (step S12). The third generation unit 108 overwrites the larger of the table data values ​​corresponding to the horizontally compared label values ​​with the smaller value (step S13). If the second generation unit 103 divides the image data only vertically or horizontally when generating multiple pixel blocks, the third generation unit 108 may compare table data values ​​corresponding to the label values ​​of pixels that exist on the boundary in the direction corresponding to the division direction. Then, the third generation unit 108 may overwrite the larger of the table data values ​​corresponding to the compared label values ​​with the smaller value.

[0050] FIG. 10 is a first diagram for explaining the processing performed by the third generation unit 108 according to an embodiment of the present disclosure. FIG. 11 is a second diagram for explaining the processing performed by the third generation unit 108 according to an embodiment of the present disclosure. FIG. 12 is a third diagram for explaining the processing performed by the third generation unit 108 according to an embodiment of the present disclosure. FIG. 13 is a fourth diagram for explaining the processing performed by the third generation unit 108 according to an embodiment of the present disclosure. FIG. 14 is a fifth diagram for explaining the processing performed by the third generation unit 108 according to an embodiment of the present disclosure. In the example shown in FIG. 10, the third generation unit 108 compares the value of the table data corresponding to the value 25 of the label at the bottom left of the middle row in the image data with the value of the table data corresponding to the value 49 of the label at the top left of the lower row. Then, the third generation unit 108 changes the value of the table data corresponding to the value 49 to the value of the table data corresponding to the value 25 in the table data, as shown in FIG. 11. In addition, in the example shown in FIG. 12, the third generation unit 108 compares the table data value corresponding to the label value 01 in the rightmost part of the top left in the image data with the table data value 09 in the leftmost part of the label in the center of the top row, the table data value corresponding to the label value 09 in the rightmost part of the label in the center of the top row with the table data value 17 in the leftmost part of the label in the top right row, the table data value corresponding to the label value 25 in the rightmost part of the left middle row with the table data value 33 in the leftmost part of the label in the center of the middle row, the table data value corresponding to the label value 33 in the rightmost part of the center of the middle row with the table data value 41 in the leftmost part of the middle right row, the table data value corresponding to the label value 49 in the rightmost part of the lower left row with the table data value 57 in the leftmost part of the label in the center of the lower row, and the table data value corresponding to the label value 57 in the rightmost part of the lower center with the table data value 65 in the leftmost part of the label in the lower right row. 13, the third generation unit 108 changes the table data shown in Fig. 11 to table data that changes the value 09 to value 01, the value 17 to value 09, the value 33 to value 25, the value 41 to value 33, the value 57 to value 49, and the value 65 to value 57. The third generation unit 108 updates the table data shown in Fig. 13 in ascending order.13, the value 65 is changed to the value 57, the value 57 is changed to the value 49, the value 42 is changed to the value 41, the value 41 is changed to the value 33, and the value 33 is changed to the value 25. As a result, the third generation unit 108 changes the table data to table data in which all of the values ​​65, 57, 49, 42, 41, and 33 in the table data are changed to the value 25. Also, in the table data shown in FIG. 13, the value 17 is changed to the value 09, and the value 09 is changed to the value 01. As a result, the third generation unit 108 changes the table data to table data in which all of the values ​​17 and 09 in the table data are changed to the value 01.

[0051] The restoration unit 109 generates image data for the entire image (step S14). For example, the restoration unit 109 changes the image data using the table data generated by the third generation unit 108. Specifically, for example, when the table data generated by the third generation unit 108 is the table data shown in FIG. 13, the restoration unit 109 changes the label values ​​09 and 17 in the image data in FIG. 8 to value 01, and the label values ​​65, 57, 49, 41, and 33 to value 25. FIG. 14 is a diagram showing an example of image data for the entire image generated by the restoration unit 109 according to an embodiment of the present disclosure. The restoration unit 109 obtains image data having two regions in which the value 01 and the value 25 are continuous as shown in FIG. 14, as image data for the entire image.

[0052] The information processing device 1 according to an embodiment of the present disclosure has been described above. In the calculation unit 10 of the information processing device 1, the third generation unit 108 (an example of a first calculation unit) performs a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger value of the label values ​​of the pixels existing at the horizontal boundaries in the first comparison with a smaller value, performs a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger value of the label values ​​of the pixels existing at the vertical boundaries in the second comparison with a smaller value, thereby generating table data. The restoration unit 109 (an example of a second calculation unit) generates second image data for the entire image by modifying the first image data.

[0053] The calculation unit 10 enables labeling processing including parallel processing. As a result, the calculation unit 10 can execute labeling processing more efficiently than a general labeling processing for comparison in which forward labeling processing is followed by backward labeling processing. An example of the general labeling processing for comparison is the general labeling processing described above using Figs. 18 to 21. In the general labeling processing, it is necessary to execute labeling processing for each and every pixel of the entire image in order. In contrast, the calculation unit 10 executes parallel processing in the labeling processing, and therefore can execute labeling processing more efficiently than the general labeling processing.

[0054] The image processing device described in the cited document 1 sets a parent-child branch tree by comparing the magnitude of adjacent label values. The image processing device identifies branch trees in the set parent-child branch tree that have different top values ​​(smallest values) and have children with the same value. The image processing device merges the branch trees that have children with the same value into the branch with the smaller top value. The image processing device then changes all of the label values ​​of children belonging to the merged branch tree to the top value. The image processing device described in the cited document 1 is a device that performs labeling processing in this way, and is a device that performs processing different from that of the calculation unit 10 provided in the information processing device 1 according to the embodiment of the present disclosure.

[0055] 15 is a diagram showing a minimum configuration of the arithmetic device 10 according to an embodiment of the present disclosure. The arithmetic device 10 includes a first arithmetic unit 301 and a second arithmetic unit 302, as shown in FIG.

[0056] The first calculation unit 301 performs a first comparison to vertically compare label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data, overwrites a larger label value of the pixels existing at the horizontal boundaries in the first comparison with a smaller value, performs a second comparison to horizontally compare label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data, and overwrites a larger label value of the pixels existing at the vertical boundaries with a smaller value in the second comparison, thereby generating table data. The second calculation unit 302 generates second image data for the entire image by modifying the first image data.

[0057] The first calculation unit 301 can be realized, for example, by using the function of the third generation unit 108 illustrated in Fig. 1. The second calculation unit 302 can be realized, for example, by using the function of the restoration unit 109 illustrated in Fig. 1.

[0058] 16 is a diagram illustrating an example of a processing flow of the arithmetic device 10 with a minimum configuration according to the embodiment of the present disclosure. Next, processing of the arithmetic device 10 with a minimum configuration according to the embodiment of the present disclosure will be described with reference to FIG.

[0059] The first calculation unit 301 performs a first comparison to vertically compare label values ​​of pixels at horizontal boundaries of each pixel block in the first image data, overwrites a larger label value of the pixels at the horizontal boundaries in the first comparison with a smaller value, performs a second comparison to horizontally compare label values ​​of pixels at vertical boundaries of each pixel block in the first image data, and overwrites a larger label value of the pixels at the vertical boundaries in the second comparison with a smaller value, thereby generating table data (step S101). The second calculation unit 302 generates second image data for the entire image by modifying the first image data (step S102).

[0060] The above describes a minimum configuration of the arithmetic device 10 according to an embodiment of the present disclosure. The arithmetic device 10 can execute labeling processing more efficiently than a comparative general labeling process in which a forward labeling process is followed by a backward labeling process.

[0061] It should be noted that the order of the processes in the embodiments of the present disclosure may be changed as long as appropriate processes are performed.

[0062] Although the embodiment of the present disclosure has been described, the above-mentioned information processing device 1, the arithmetic device 10, and other control devices may have a computer system inside. The above-mentioned process steps are stored in a computer-readable recording medium in the form of a program, and the above-mentioned process is performed by the computer reading and executing the program. Specific examples of computers are shown below.

[0063] 17 is a schematic block diagram showing the configuration of a computer according to at least one embodiment. As shown in FIG. 17, the computer 5 includes a CPU (Central Processing Unit) 6, a main memory 7, a storage 8, and an interface 9.

[0064] For example, the information processing device 1, the arithmetic device 10, and the other control devices are implemented in a computer 5. The operations of the above-mentioned processing units are stored in the storage 8 in the form of a program. The CPU 6 reads the program from the storage 8, loads it in the main memory 7, and executes the above-mentioned processes according to the program. The CPU 6 also secures storage areas in the main memory 7 corresponding to the above-mentioned storage units according to the program.

[0065] Examples of the storage 8 include a hard disk drive (HDD), a solid state drive (SSD), a magnetic disk, a magneto-optical disk, a compact disc read only memory (CD-ROM), a digital versatile disc read only memory (DVD-ROM), and a semiconductor memory. The storage 8 may be an internal medium directly connected to the bus of the computer 5, or an external medium connected to the computer 5 via an interface 9 or a communication line. In addition, when the program is distributed to the computer 5 via a communication line, the computer 5 that receives the program may load the program into the main memory 7 and execute the above-mentioned process. In at least one embodiment, the storage 8 is a non-transitory tangible storage medium.

[0066] The program may also realize some of the functions described above. Furthermore, the program may be a file that can realize the functions described above in combination with a program already recorded in the computer system, that is, a so-called differential file (differential program).

[0067] Although some embodiments of the present disclosure have been described, these embodiments are merely examples and do not limit the scope of the disclosure. Various additions, omissions, substitutions, and modifications may be made to these embodiments without departing from the gist of the disclosure.

[0068] Note that some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.

[0069] (Appendix 1) a first calculation unit that generates table data by performing a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger label value of the pixels existing at the horizontal boundaries in the first comparison with a smaller value, performing a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger label value of the pixels existing at the vertical boundaries in the second comparison with a smaller value; a second calculation unit for generating second image data for the entire image by modifying the first image data; A computing device comprising:

[0070] (Appendix 2) the first image data being image data generated from a plurality of pixel blocks; and a third calculation unit for generating the first image data; 2. The computing device of claim 1, comprising:

[0071] (Appendix 3) a fourth calculation unit that generates the plurality of pixel blocks by dividing third image data generated for the entire image; 3. The computing device of claim 2, comprising:

[0072] (Appendix 4) The third calculation unit is generating the first image data taking into account an offset determined based on the number of the plurality of pixel blocks; 4. The computing device of claim 2 or 3.

[0073] (Appendix 5) The second calculation unit is generating the second image data by modifying the first image data generated using the table data; 5. The computing device of claim 1 ,

[0074] (Appendix 6) The first calculation unit is performing the first comparison and the second comparison, and when updating the table data, identifying all pre-update values ​​from among all values ​​in the table data, and updating all of the identified values; 6. The computing device of claim 1 ,

[0075] (Appendix 7) performing a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger label value of the pixels existing at the horizontal boundaries in the first comparison with a smaller value, performing a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger label value of the pixels existing at the vertical boundaries in the second comparison with a smaller value, thereby generating table data; generating second image data for an entire image by modifying the first image data; A processing method comprising:

[0076] (Appendix 8) On the computer, performing a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger label value of the pixels existing at the horizontal boundaries in the first comparison with a smaller value, performing a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger label value of the pixels existing at the vertical boundaries in the second comparison with a smaller value, thereby generating table data; generating second image data for an entire image by modifying the first image data; A program that executes the following. [Explanation of symbols]

[0077] 1. Information processing device 5. Computers 6. CPU 7. Main memory 8. Storage 9. Interface 10... 101...Acquisition section 102...1st generation section 103...Second generation section 104... Allocation section 105 Processing section 106...1st joint 107...Second joint 108...Third generation section 109...Restoration section 1051 First processing section 105n···nth processing section

Claims

1. a first calculation unit that generates table data by performing a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger label value of the pixels existing at the horizontal boundaries in the first comparison with a smaller value, performing a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger label value of the pixels existing at the vertical boundaries in the second comparison with a smaller value; a second calculation unit for generating second image data for the entire image by modifying the first image data; A computing device comprising:

2. the first image data being image data generated from a plurality of pixel blocks; and a third calculation unit for generating the first image data; The computing device of claim 1 .

3. a fourth calculation unit that generates the plurality of pixel blocks by dividing third image data generated for the entire image; The computing device of claim 2 .

4. The third calculation unit is generating the first image data taking into account an offset determined based on the number of the plurality of pixel blocks; The computing device according to claim 2 .

5. The second calculation unit is generating the second image data by modifying the first image data generated using the table data; A computing device according to any one of claims 1 to 4.

6. The first calculation unit is performing the first comparison and the second comparison, and when updating the table data, identifying all pre-update values ​​from among all values ​​in the table data, and updating all of the identified values; The computing device of claim 1 .

7. performing a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger one of the label values ​​of pixels existing at the horizontal boundaries in the first comparison with a smaller one, performing a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger one of the label values ​​of pixels existing at the vertical boundaries in the second comparison with a smaller one, thereby generating table data; modifying the first image data to generate second image data for the entire image; A processing method comprising:

8. On the computer, performing a first comparison in which label values ​​of pixels existing at horizontal boundaries of each pixel block in the first image data are compared vertically, overwriting a larger one of the label values ​​of pixels existing at the horizontal boundaries in the first comparison with a smaller one, performing a second comparison in which label values ​​of pixels existing at vertical boundaries of each pixel block in the first image data are compared horizontally, and overwriting a larger one of the label values ​​of pixels existing at the vertical boundaries in the second comparison with a smaller one, thereby generating table data; modifying the first image data to generate second image data for the entire image; A program that executes the following.

Citation Information

Patent Citations

  • Image processing device, image processing method, and program

    WO2018020623A1

Cited By

  • Wood fibre based panel with a surface layer

    US12454122B2