The present invention relates to a noise determination method, a noise determination apparatus, and a program.
Three-dimensional point cloud data is used for estimation of a structure such as a building. The three-dimensional point cloud data is coordinate data of a point cloud distributed three-dimensionally. In general, noise such as birds and dust is mixed in three-dimensional point cloud data measured by a sensor or the like. In order to perform more accurate estimation, it is necessary to remove the point cloud of the noise.
In order to eliminate noise, it is possible to provide a threshold for the distance between points and to remove outliers. However, it is difficult to appropriately set this threshold. On the other hand, in Geometry-based Point Cloud Compression (G-PCC) of Moving Picture Experts Group (MPEG), a point cloud is hierarchized by an octree and encoded (see, for example, NPL 1). The G-PCC has a function called a direct mode. This function is a technique of, when only one point exists inside a block of a certain layer, not hierarchizing the block thereafter, and encoding the relative position of the point.
It is conceivable that a target for which information such as a building or a feature is desired to be acquired is often expressed by continuous points, whereas a point having no point in the periphery is determined not to be a target for which information is desired to be acquired, such as a bird, and thus a point inside a block for which the direct mode is selected from the three-dimensional point cloud data is determined to be an outlier, and a point of the outlier is determined to be noise and removed. However, depending on the acquisition density and accuracy of the point cloud, almost all points near the lowermost layer may be selected by direct mode. In such a case, there is a case where appropriate noise determination cannot be performed.
In view of the above circumstances, an object of the present invention is to provide a noise determination method, a noise determination apparatus, and a program capable of accurately determining noise included in point cloud data.
An aspect of the present invention is a noise determination method, including: acquiring n-branch tree structure data, the n-branch tree structure data including information on presence or absence of a point for a divided region obtained by dividing, by an n-branch tree structure including a plurality of layers, a spatial region represented by point cloud data including information on a position of a point, and including, for the divided region including only one point, a sign representing the point instead of information on a divided region of a layer lower than the divided region; and determining a point represented by the sign to be noise in a layer higher than a predetermined layer.
An aspect of the present invention is a noise determination apparatus, including: an acquisition unit configured to acquire n-branch tree structure data, the n-branch tree structure data including information on presence or absence of a point for a divided region obtained by dividing, by an n-branch tree structure including a plurality of layers, a spatial region represented by point cloud data including information on a position of a point, and including, for the divided region including only one point, a sign representing the point instead of information on a divided region of a layer lower than the divided region; and a determination unit configured to determine a point represented by the sign to be noise in a layer higher than a predetermined layer.
An aspect of the present invention is a program for causing a computer to execute the above-mentioned noise determination method.
According to the present invention, it is possible to accurately determine noise included in point cloud data.
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
First, an example of point cloud processing will be described.
An information processing apparatus 16 acquires the point cloud coordinate attribute data recorded in the three-dimensional DB 15, compresses the three-dimensional point cloud data, and encodes and stores the compressed data (step S3). At this time, the information processing apparatus 16 eliminates noise by using the data used for compression/encoding. An analysis apparatus 17 acquires, from the information processing apparatus 16, the point cloud coordinate attribute data obtained by compressing and encoding the three-dimensional point cloud data from which the noise has been eliminated. The analysis apparatus 17 merges the acquired data and analyzes the three-dimensional structure (step S4). The analysis apparatus 17 writes the analyzed three-dimensional structure and the information on the hazardous location in the three-dimensional structure in a three-dimensional structure DB 18 (step S5). Further, the analysis apparatus 17 transmits a hazardous location and an inspection instruction of the hazardous location to a terminal device 19 of an operator (step S6). The operator performs inspection and operation according to the instruction transmitted from the analysis apparatus 17, and transmits a result report from the terminal device 19 (step S7). The three-dimensional structure DB 18 stores hazardous location prediction data based on the result report.
While the three-dimensional structure data is created as appropriate, the operator transmits an inspection or operation result report as needed. The three-dimensional structure DB 18 stores the latest three-dimensional structure data and a history of all hazardous location prediction data.
Hereinafter, a method and an apparatus for determining noise using information obtained in compression and encoding of the three-dimensional point cloud data will be described in detail.
The storage unit 21 stores various data including point cloud data, tree structure data, and encoded data. The point cloud data is data of a set of coordinate values in which points exist in a predetermined spatial region. The tree structure data is data representing a divided space including points in the spatial region in an octree structure. The encoded data is data obtained by arithmetically encoding data having an octree structure.
The encoding unit 22 generates tree structure data from the point cloud data stored in the storage unit 21, and arithmetically encodes the tree structure data to generate encoded data. The encoding unit 22 writes the generated tree structure data and the encoded data into the storage unit 21.
The acquisition unit 23 acquires the tree structure data. That is, the acquisition unit 23 reads the tree structure data generated by the encoding unit 22 from the storage unit 21. Alternatively, the acquisition unit 23 may read tree structure data from an external device or may receive tree structure data transmitted from an external device. In these cases, the noise determination apparatus 2 may not include the encoding unit 22.
The determination unit 24 determines whether or not a point included in the point cloud data is noise based on the tree structure data acquired by the acquisition unit 23. The removal unit 25 removes a point determined to be noise by the determination unit 24 from one or both of the point cloud data and the tree structure data. The encoding unit 22 generates tree structure data from the point cloud data from which noise has been eliminated, and generates encoded data from the generated tree structure data. Alternatively, the encoding unit 22 generates encoded data from the tree structure data from which noise has been eliminated.
Generation processing of tree structure data by the encoding unit 22 will be described with reference to
The encoding unit 22 performs spatial region division illustrated in
The encoding unit 22 performs the spatial region division illustrated in
The node N1-i including a plurality of points is connected to eight nodes N2-i-0 to N2-i-7 in the second layer. The node N2-i-j corresponds to the block B2-i-j. Since the encoding unit 22 does not divide the block B1-i not including a point or for which the block mode is selected, the node N1-i corresponding to the block B1-i is not connected to the node in the second layer. In
The encoding unit 22 generates a node of the tree structure corresponding to the divided spatial region, as described above. For a node corresponding to a block including a plurality of points, the encoding unit 22 assigns a block value representing whether or not each of child blocks having the block as a parent block includes a point. That is, the encoding unit 22 assigns, to a node corresponding to a block including a plurality of points, a block value representing whether or not each node one level lower than the node includes a point. This block value is expressed as Equation (1). xk is a sign indicating whether or not a point is included in a k-th (k is an integer of 0 to 7) child block among eight child blocks. “1” indicates that a point is included, and “0” indicates that no point is included.
For example, in a case where only the blocks B1-2 and B1-7 among the child blocks of the block B0 include a point, the block value of the node corresponding to the block B0 is expressed as f (0, 0, 1, 0, 0, 0, 0, 1)=33. Furthermore, in a case where all the eight child blocks of a certain block include a point, the block value is expressed as f (1, 1, 1, 1, 1, 1, 1, 1)=255.
In this manner, the encoding unit 22 assigns a block value in which the position of a point is represented by a value from 0 to 255 by Equation (1) to a node corresponding to a block including a plurality of points. On the other hand, for the node corresponding to the block for which the direct mode is selected, the encoding unit 22 assigns a block value obtained by encoding the relative position of the point in the block, and adds information indicating that the direct mode is selected to the block value. The relative position is represented by, for example, a coordinate value in three-dimensional coordinates. The encoding unit 22 performs variable length coding on a block value assigned to a node corresponding to each block. The encoding is sequentially performed, for example, from the upper and left nodes illustrated in
As described above, the encoding unit 22 converts the point cloud data into tree structure data in which a divided space including a point in a spatial region is represented by an octree structure. Then, the encoding unit 22 arithmetically encodes the tree structure data to generate encoded data.
Next, processing in a case where the noise determination apparatus 2 performs noise elimination to which an existing technique is applied will be described.
First, the acquisition unit 23 acquires tree structure data of a node corresponding to a block to be processed (step S910). The determination unit 24 determines whether or not the direct mode is selected for the block to be processed based on the tree structure data (step S920). When determining that the direct mode is not selected (step S920: NO), the determination unit 24 ends the processing for the block to be processed. On the other hand, when determining that the direct mode is selected (step S920: YES), the determination unit 24 determines a point included in the block to be processed to be noise. The determination unit 24 acquires information on the position of the point expressed in the direct mode from the tree structure data. The removal unit 25 deletes the point at the position acquired by the determination unit 24 from one or both of the tree structure data and the point cloud data (step S930).
Depending on the acquisition density and accuracy of the point cloud, almost all points near the lowermost layer may be selected by direct mode. Therefore, there is a possibility that appropriate noise elimination cannot be performed in the processing illustrated in
First, the acquisition unit 23 acquires tree structure data of a node corresponding to a block to be processed (step S110). Based on the tree structure data, the determination unit 24 determines whether or not the layer of the block to be processed is higher than N (step S120). When determining that the layer of the block to be processed is N or less (step S120: NO), the determination unit 24 ends the processing for the block to be processed.
When determining that the layer of the block to be processed is higher than N (step S120: YES), the determination unit 24 determines whether or not the direct mode is selected for the block to be processed (step S130). When determining that the direct mode is not selected (step S130: NO), the determination unit 24 ends the processing for the block to be processed.
On the other hand, when determining that the direct mode is selected (step S130: YES), the determination unit 24 determines a point included in the block to be processed to be noise. The determination unit 24 acquires information on the position of the point expressed in the direct mode from the tree structure data. The removal unit 25 deletes the point at the position acquired by the determination unit 24 from one or both of the tree structure data and the point cloud data (step S140).
According to the present embodiment, a point that exists in a space having a density lower than that of other points can be determined to be noise.
In the first embodiment, the layer N used as a threshold for determining noise can be optionally set. In the present embodiment, the layer N is selected based on the ratio at which the direct mode is selected in each layer. The present embodiment will be described focusing on differences from the first embodiment. The configuration of a noise determination apparatus of the present embodiment is similar to that of the noise determination apparatus 2 of the first embodiment illustrated in
The determination unit 24 performs the processing of steps S230 to S240 on each block generated by dividing the block B0 as a processing target. That is, the determination unit 24 obtains the layer of the block to be processed based on the tree structure data acquired in step S210. The determination unit 24 determines whether or not the layer of the block to be processed is higher than N (step S230). When determining that the layer of the block to be processed is N or less (step S230: NO), the determination unit 24 determines the processing target to be the next block.
When determining that the layer of the block to be processed is higher than N (step S230: YES), the determination unit 24 determines whether or not the direct mode is selected for the block to be processed (step S240). When determining that the direct mode is not selected (step S240: NO), the determination unit 24 determines the processing target to be the next block.
On the other hand, when determining that the direct mode is selected (step S240: YES), the determination unit 24 determines a point included in the block to be processed to be noise. The determination unit 24 acquires information on the position of the point expressed in the direct mode from the tree structure data. The removal unit 25 deletes the point at the position acquired by the determination unit 24 from one or both of the tree structure data and the point cloud data (step S250).
According to the present embodiment, a point existing in a space having a relatively lower density than other points can be determined to be noise.
In the present embodiment, in addition to the determination in the first and second embodiments, when a point included in the block of the direct mode is located closer to the center of the block than a predetermined position, the point is determined to be noise. The present embodiment will be described focusing on differences from the first embodiment. The differences between the present embodiment and the first embodiment may be applied to the second embodiment. The configuration of a noise determination apparatus of the present embodiment is similar to that of the noise determination apparatus 2 of the first embodiment illustrated in
The noise determination apparatus 2 performs the processing of steps S110 to S130 indicated by the processing flow of
The determination unit 24 acquires information on the position of the point included in the block to be processed and expressed in the direct mode from the tree structure data. The information on the position of the point is obtained from the block value assigned to the node corresponding to the block to be processed. The determination unit 24 determines whether or not the point exists on the center side of the block to be processed than a predetermined position based on the information on the acquired position (step S310). When determining that the point does not exist on the center side (step S310: NO), the determination unit 24 ends the processing for the block to be processed.
On the other hand, when determining that the point is located on the center side (step S310: YES), the determination unit 24 determines the point included in the block to be processed to be noise. The removal unit 25 deletes the point determined to be noise by the determination unit 24 from one or both of the tree structure data and the point cloud data (step S140).
According to the present embodiment, since a point that exists in a space having a density lower than that of other points and is separated from the other points is determined to be noise, noise can be accurately eliminated.
In the present embodiment, in addition to the determination in the above embodiment, when no other points exist around the point expressed in the direct mode, it is determined to be noise. The present embodiment will be described focusing on differences from the first embodiment. The differences between the present embodiment and the first embodiment may be applied to the second embodiment or the third embodiment. The configuration of a noise determination apparatus of the present embodiment is similar to that of the noise determination apparatus 2 of the first embodiment illustrated in
The acquisition unit 23 acquires tree structure data of the entire point cloud (step S410). Alternatively, the acquisition unit 23 may acquire tree structure data of the block to be processed and tree structure data of blocks around the block to be processed. The noise determination apparatus 2 performs the processing of steps S120 to S130 indicated by the processing flow of
The determination unit 24 determines whether or not no other points exist around the point included in the block to be processed (step S420). Specifically, the determination unit 24 acquires information on the position of the point included in the block to be processed and expressed in the direct mode from the tree structure data. In addition, the determination unit 24 acquires, from the tree structure data, information on the positions of other points in blocks around the block to be processed. The determination unit 24 determines whether or not no other points exist within a predetermined range from the point included in the block to be processed. When determining that another point exists within the predetermined range from the point included in the block to be processed (step S420: NO), the determination unit 24 ends the processing for the block to be processed.
On the other hand, when determining that no other points exist within the predetermined range from the point included in the block to be processed (step S420: YES), the determination unit 24 determines the point included in the block to be processed to be noise. The removal unit 25 deletes the point determined to be noise by the determination unit 24 from one or both of the tree structure data and the point cloud data (step S140).
According to the present embodiment, since a point that exists in a space having a density lower than that of other points and is separated from the other points is determined to be noise, noise can be accurately eliminated.
In the above description, the cubic parent block is divided into eight cubic child blocks, but the parent block and the child blocks may not be cubic. For example, in a case where the parent block is divided into n child blocks, n-branch tree structure data in which a spatial region including a point is expressed by an n-branch tree structure is used instead of the tree structure data expressed by the octree structure as described above.
The functions of the noise determination apparatus 2 in the above-described embodiment may be implemented by a computer. In that case, the functions may be implemented by recording a program for implementing the functions in a computer readable recording medium and causing a computer system to read and execute the program recorded in the recording medium. Note that the “computer system” described here is assumed to include an OS and hardware such as a peripheral device. The “computer-readable recording medium” means a portable medium such as a flexible disk, a magneto-optical disk, a ROM, or a CD-ROM or a storage device such as a hard disk incorporated in the computer system. Moreover, the “computer-readable recording medium” may include a recording medium that dynamically holds the program for a short period of time, such as a communication line in a case in which the program is transmitted via a network such as the Internet or a communication line such as a telephone line, or a recording medium that holds the program for a specific period of time, such as a volatile memory inside a computer system that serves as a server or a client in that case. Further, the program may be for implementing some of the functions described above, and the functions described above may be implemented by a combination of the above-described functions and the program already recorded in the computer system.
A hardware configuration example of the noise determination apparatus 2 will be described.
The processor 71 is a central processing device that performs operation and control. The processor 71 is, for example, a CPU. The processor 71 loads and executes a program from the storage unit 72. The storage unit 72 further includes a work area for the processor 71 to execute various programs and the like. The communication interface 73 is communicatively connected to other apparatuses. The user interface 74 is an input device such as a keyboard, a pointing device (mouse, tablet, etc.), a button, or a touch panel, or a display device such as a display. An artificial operation is input by the user interface 74. For example, information of the layer N used as a threshold is input through the user interface 74.
The functions of the encoding unit 22, the acquisition unit 23, the determination unit 24, and the removal unit 25 are implemented by the processor 71 reading and executing a program from the storage unit 72. All or some of these functions may be implemented by using hardware such as an application specific integrated circuit (ASIC), a programmable logic device (PLD), or a field programmable gate array (FPGA). Furthermore, the storage unit 21 is implemented by the storage unit 72.
The noise determination apparatus 2 may be implemented by a plurality of computer devices connected to a network. In this case, which one of the plurality of computer devices is used to implement each of the functional units of the noise determination apparatus 2 can be freely selected. In addition, the same functional units may be implemented by a plurality of computer devices.
According to the above-described embodiment, the noise determination apparatus includes the acquisition unit and the determination unit. The acquisition unit acquires n-branch tree structure data. The n-branch tree structure data includes information on the presence or absence of a point for each divided region obtained by dividing a spatial region represented by point cloud data including information on the position of each point by an n-branch tree structure including a plurality of layers, and for a divided region including only one point, including a sign representing the point instead of information on a divided region in a layer lower than the divided region. This sign is obtained by encoding information indicating the position of the point by, for example, a coordinate value or the like. The determination unit determines a point represented by a sign in a layer higher than a predetermined layer to be noise.
The determination unit may select a layer in which a ratio of signs representing a point satisfies a predetermined condition in the n-branch tree structure data, and determine a point represented by the above sign to be noise in a layer higher than the selected layer. For example, the predetermined condition is that the ratio of signs representing a point is the largest.
Furthermore, in a case where the point represented by the above-described sign is located within a predetermined range from the center of the divided region including the point, the determination unit may determine the point to be noise. Furthermore, in a case where no other points exist within a predetermined range from the point represented by the above-described sign, the determination unit may determine the point to be noise.
According to the above-described embodiment, it is possible to accurately determine and eliminate noise included in the point cloud data.
Although embodiments of the present invention have been described above in detail with reference to the drawings, the specific configurations thereof are not limited to those of the embodiments and also include designs or the like without departing from the spirit of the present invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2020/021289 | 5/29/2020 | WO |