Point group-processing apparatus, point group-processing method, and point group-processing program
The point cloud processing device improves plane detection in three-dimensional data by dividing spaces into rectangular parallelepipeds and manipulating them based on feature quantities, addressing inefficiencies in existing methods.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-01-27
- Publication Date
- 2026-04-09
AI Technical Summary
Existing techniques for processing three-dimensional point cloud data face challenges in efficiently detecting planes due to issues with grid size and re-dividing grids using Octree, which hinder accurate normal vector detection and plane recognition.
A point cloud processing device that divides a space into rectangular parallelepiped closed spaces, calculates normal vectors, and performs spatial manipulation based on feature quantities to efficiently detect planes by adjusting the division of these spaces.
Enhances the efficiency of plane detection in three-dimensional point cloud data by effectively handling large grids and reducing unnecessary divisions, particularly effective for structures with parallel walls.
Smart Images

Figure JP2025002411_09042026_PF_FP_ABST
Abstract
Description
Point cloud processing device, point cloud processing method, and point cloud processing program
[0001] The present disclosure relates to a point cloud processing device, a point cloud processing method, and a point cloud processing program.
[0002] Three-dimensional point cloud data is data obtained, for example, by laser scanning. There is a technique for converting point cloud data into a more advanced model by detecting shapes such as planes, polygons, or polyhedra from this three-dimensional point cloud data. In Patent Document 1, a technique is disclosed in which a space including three-dimensional point cloud data is gridded, an irregular triangular network is generated from the three-dimensional point cloud data, a normal vector is calculated from each triangular network, and grids having the same normal vector within a predetermined direction range are grouped. Further, Patent Document 2 discloses a technique for re-dividing a grid by an Octree.
[0003] Japanese Patent Application Laid-Open No. 2013-088999 Japanese Patent Application Laid-Open No. 2023-170623
[0004] In Patent Document 1, there is a problem that when the grid size is large, the same normal vector cannot be detected within a predetermined direction range. Further, although Patent Document 2 discloses a technique for re-dividing a grid by an Octree, there is a problem that a plane cannot be efficiently detected by re-dividing the grid by an Octree.
[0005] In the present disclosure, in a point cloud processing device, an object is to efficiently detect a plane from three-dimensional point cloud data by appropriately adjusting a rectangular parallelepiped closed space.
[0006] The point cloud processing device according to the present disclosure includes: an initial division unit that divides a space including three-dimensional point cloud data into a rectangular parallelepiped closed space; a normal vector determination unit that determines whether a normal vector for detecting a plane has been calculated from the point cloud data included in the rectangular parallelepiped closed space; when it is determined that the normal vector for detecting the plane has not been calculated, a feature amount is calculated using the point cloud data included in the rectangular parallelepiped closed space, coordinate values showing a specific tendency are extracted from the feature amount, the rectangular parallelepiped closed space is divided into a plurality of divided closed spaces based on the coordinate values, and a space operation unit that sets each of the plurality of divided closed spaces as a new rectangular parallelepiped closed space.
[0007] In the point cloud processing device according to this disclosure, if it is determined that a normal vector for detecting a plane cannot be calculated, the spatial manipulation unit calculates feature quantities using the point cloud data contained in the rectangular closed space. The spatial manipulation unit extracts coordinate values in which the feature quantities show a specific trend. Based on the coordinate values, the spatial manipulation unit divides the rectangular closed space into a plurality of partitioned closed spaces. The spatial manipulation unit then makes each of the plurality of partitioned closed spaces a new rectangular closed space. In this way, the point cloud processing device according to this disclosure has the effect of efficiently detecting a plane by appropriately adjusting the rectangular closed space based on the feature quantities of the point cloud data.
[0008] A diagram showing an example configuration of a point cloud processing device according to Embodiment 1. A flowchart showing an example of point cloud processing by the point cloud processing device according to Embodiment 1. A diagram showing an example of normal vector determination processing according to Embodiment 1. A diagram showing an example of spatial manipulation processing according to Embodiment 1. A diagram showing an example of normal vector determination processing according to Modification 1 of Embodiment 1. A diagram showing an example of spatial manipulation processing according to Modification 1 of Embodiment 1. A diagram showing an example configuration of a point cloud processing device according to Modification 2 of Embodiment 1.
[0009] The following description of this embodiment will be illustrated with reference to the figures. In each figure, identical or corresponding parts are denoted by the same reference numerals. In the description of the embodiment, descriptions of identical or corresponding parts will be omitted or simplified as appropriate. The arrows in the figures mainly indicate the flow of data or processing. Also, the size relationships of the components in the following figures may differ from those in reality. In addition, in the description of the embodiment, directions or positions such as up, down, left, right, front, back, front, and back may be indicated. These notations are for the convenience of explanation and do not limit the arrangement, direction, and orientation of the devices, instruments, or parts.
[0010] Embodiment 1. ***Description of Configuration*** Figure 1 shows an example of the configuration of a point cloud processing device 100 according to this embodiment. The point cloud processing device 100 is a computer. The point cloud processing device 100 includes a processor 910, as well as other hardware such as a memory 921, an auxiliary storage device 922, an input interface 930, an output interface 940, and a communication device 950. The processor 910 is connected to the other hardware via signal lines and controls this other hardware.
[0011] The point cloud processing device 100 includes, as functional elements, an initial division unit 110, a normal vector determination unit 120, a spatial manipulation unit 130, a plane calculation unit 140, and a storage unit 150. The storage unit 150 stores point cloud data 51 and a threshold value 52.
[0012] The functions of the initial division unit 110, the normal vector determination unit 120, the spatial manipulation unit 130, and the plane calculation unit 140 are implemented by software. The storage unit 150 is provided in the memory 921. The storage unit 150 may also be provided in the auxiliary storage device 922, or it may be distributed between the memory 921 and the auxiliary storage device 922.
[0013] The processor 910 is a device that executes a point cloud processing program. The point cloud processing program is a program that implements the functions of the initial division unit 110, the normal vector determination unit 120, the spatial manipulation unit 130, and the plane calculation unit 140. The processor 910 is an IC that performs arithmetic processing. Specific examples of the processor 910 are a CPU, DSP, and GPU. IC is an abbreviation for Integrated Circuit. CPU is an abbreviation for Central Processing Unit. DSP is an abbreviation for Digital Signal Processor. GPU is an abbreviation for Graphics Processing Unit.
[0014] Memory 921 is a storage device that temporarily stores data. Specific examples of memory 921 include SRAM or DRAM. SRAM is an abbreviation for Static Random Access Memory. DRAM is an abbreviation for Dynamic Random Access Memory. Auxiliary storage device 922 is a storage device that stores data. Specific examples of auxiliary storage device 922 include HDD. Alternatively, auxiliary storage device 922 may be a portable storage medium such as an SD® memory card, CF, NAND flash, flexible disk, optical disk, compact disk, Blu-ray® disc, or DVD. HDD is an abbreviation for Hard Disk Drive. SD® is an abbreviation for Secure Digital. CF is an abbreviation for CompactFlash (registered trademark). DVD is an abbreviation for Digital Versatile Disk.
[0015] The input interface 930 is a port to which input devices such as a mouse, keyboard, or touch panel are connected. Specifically, the input interface 930 is a USB terminal. The input interface 930 may also be a port connected to a LAN. USB is an abbreviation for Universal Serial Bus. LAN is an abbreviation for Local Area Network.
[0016] The output interface 940 is a port to which the cable of an output device, such as a display, is connected. Specifically, the output interface 940 is a USB terminal or an HDMI® terminal. Specifically, the display is an LCD. The output interface 940 is also called the display interface. HDMI® is an abbreviation for High Definition Multimedia Interface. LCD is an abbreviation for Liquid Crystal Display.
[0017] The communication device 950 has a receiver and a transmitter. The communication device 950 is connected to a communication network such as a LAN, the Internet, a telephone line, or Wi-Fi (registered trademark). Specifically, the communication device 950 is a communication chip or NIC. NIC is an abbreviation for Network Interface Card.
[0018] The point cloud processing program is executed in the point cloud processing device 100. The point cloud processing program is loaded into the processor 910 and executed by the processor 910. Memory 921 stores not only the point cloud processing program but also the OS. OS is an abbreviation for Operating System. The processor 910 executes the point cloud processing program while executing the OS. The point cloud processing program and the OS may also be stored in the auxiliary storage device 922. The point cloud processing program and OS stored in the auxiliary storage device 922 are loaded into memory 921 and executed by the processor 910. Note that part or all of the point cloud processing program may be incorporated into the OS.
[0019] The point cloud processing unit 100 may include multiple processors that replace the processor 910. These multiple processors share the task of executing the point cloud processing program. Each processor is a device that executes the point cloud processing program, just like the processor 910.
[0020] The data, information, signal values, and variable values used, processed, or output by the point cloud processing program are stored in memory 921, auxiliary storage device 922, or registers or cache memory within the processor 910.
[0021] The word "part" in the initial division unit 110, the normal vector determination unit 120, the spatial manipulation unit 130, and the plane calculation unit 140 may be read as "circuit," "process," "procedure," "process," or "circuitry." The point cloud processing program causes the computer to execute the initial division process, the normal vector determination process, the spatial manipulation process, and the plane calculation process. The word "process" in the initial division process, the normal vector determination process, the spatial manipulation process, and the plane calculation process may be read as "program," "program product," "computer-readable storage medium storing the program," or "computer-readable recording medium recording the program." The point cloud processing method is performed by the point cloud processing device 100 executing the point cloud processing program. The point cloud processing program may be provided stored on a computer-readable recording medium. The point cloud processing program may also be provided as a program product.
[0022] ***Explanation of Operation*** Next, the operation of the point cloud processing device 100 according to this embodiment will be explained. The operation procedure of the point cloud processing device 100 corresponds to the point cloud processing method. The program that realizes the point cloud processing, which is the operation of the point cloud processing device 100, corresponds to the point cloud processing program.
[0023] Figure 2 is a flowchart showing an example of point cloud processing by the point cloud processing device 100 according to this embodiment.
[0024] <Initial division process: Step S101> In step S101, the initial division unit 110 divides the space containing the three-dimensional point cloud data 51 into bounding box spaces. The point cloud data 51 is three-dimensional point cloud data that is the target of point cloud processing by the point cloud processing device 100. The point cloud data 51 is obtained, for example, by laser scanning. A bounding box space is, for example, each grid obtained by gridding the space containing the point cloud data 51. A bounding box space is also called a bounding box, or BB for short.
[0025] <Normal vector determination process: Steps S102 to S104> Next, the normal vector determination unit 120 processes one rectangular closed space obtained by the division. In step S102, the normal vector determination unit 120 determines the number of points in the point cloud data contained in that rectangular closed space. The normal vector determination unit 120 then compares the number of points with the threshold value 52 stored in the storage unit 150.
[0026] If the score is above the threshold, the process proceeds to step S103. If the score is below the threshold, the process proceeds to step S107.
[0027] The normal vector determination unit 120 determines whether a normal vector for detecting a plane has been calculated from the point cloud data included in the rectangular closed space if the number of points is equal to or greater than a threshold. The normal vector determination unit 120 determines that a normal vector for detecting a plane has been calculated if the direction of the normal vector obtained in the rectangular closed space is within a predetermined direction range. Specifically, it is as follows:
[0028] In step S103, the normal vector determination unit 120 calculates a normal vector for detecting a plane from the point cloud data contained in the rectangular closed space. For example, the normal vector determination unit 120 generates an irregular triangular network from the point cloud data contained in the rectangular closed space and calculates a normal vector from each triangular network. If the orientation of the multiple normal vectors calculated in the rectangular closed space is within a predetermined direction range, then a normal vector for detecting a plane has been calculated.
[0029] In step S104, the normal vector determination unit 120 determines whether or not a normal vector for detecting a plane has been calculated. The normal vector determination unit 120 determines whether or not the multiple normal vectors calculated in the rectangular closed space are the same normal vector within a predetermined direction range. The normal vector determination unit 120 determines that a normal vector for detecting a plane has been calculated if the directions of the multiple normal vectors calculated in the rectangular closed space are within the predetermined direction range. Alternatively, the normal vector determination unit 120 may determine that a normal vector for detecting a plane has been calculated if the directions of all of the multiple normal vectors calculated in the rectangular closed space are within the predetermined direction range. Furthermore, the normal vector determination unit 120 may use methods other than those described above as conditions for determining that a normal vector for detecting a plane in a closed rectangular parallelepiped space has been calculated.
[0030] Figure 3 shows an example of the normal vector determination process according to this embodiment. In Figure 3, the rectangular closed space enclosed by the dotted line is assumed to be the rectangular closed space 70 to be processed. In the rectangular closed space 70, there is a point group that is approximately parallel to the Y-axis and a point group that is approximately parallel to the X-axis. This indicates that there are two planes with different orientations in the rectangular closed space 70. In this case, the normal vector for detecting one of the planes cannot be determined in the rectangular closed space 70. Therefore, it is determined that the normal vector for detecting a plane cannot be calculated in the current rectangular closed space 70.
[0031] If a normal vector for detecting a plane is not calculated, the process proceeds to step S105. If a normal vector for detecting a plane is calculated, the process proceeds to step S106.
[0032] <Spatial Manipulation Processing: Step S105> In step S105, the spatial manipulation unit 130 performs spatial manipulation processing. If the spatial manipulation unit 130 determines that a normal vector for detecting a plane cannot be calculated, it calculates feature quantities using the point cloud data contained in the rectangular closed space. The spatial manipulation unit 130 extracts coordinate values in which the feature quantities show a specific trend. Then, based on these coordinate values, the spatial manipulation unit 130 divides the rectangular closed space into multiple partitioned closed spaces, and each of the multiple partitioned closed spaces becomes a new rectangular closed space. Then, the processing from step S102 is repeated for the new rectangular closed space. Specifically, it is as follows.
[0033] Figure 4 shows an example of spatial manipulation processing according to this embodiment. The spatial manipulation unit 130 uses the point cloud data 51 contained in the rectangular closed space 70 to calculate the point cloud density at each coordinate axis of the rectangular closed space 70 as a feature quantity 80. The spatial manipulation unit 130 extracts coordinate values based on the point cloud density at each coordinate axis of the rectangular closed space 70. More specifically, the spatial manipulation unit 130 extracts the coordinate values of the positions with the highest point cloud density at each coordinate axis of the rectangular closed space 70. The spatial manipulation unit 130 divides the rectangular closed space 70 into a plurality of divided closed spaces 701 based on the coordinate values of the positions with the highest point cloud density at each coordinate axis.
[0034] In Figure 4, the coordinate value with the highest point cloud density on the X-axis is X0. Similarly, the coordinate value with the highest point cloud density on the Y-axis is Y0. The point cloud density is approximately constant on the Z-axis. Therefore, the spatial manipulation unit 130 extracts the coordinate values X0 and Y0 of the position with the highest point cloud density on each coordinate axis of the rectangular parallelepiped closed space 70. Note that since the point cloud density is approximately constant on the Z-axis, coordinate values on the Z-axis are not extracted.
[0035] The spatial manipulation unit 130 divides the rectangular parallelepiped closed space 70 into a plurality of divided closed spaces 701 based on the coordinate values X0 and Y0. Specifically, the spatial manipulation unit 130 calculates coordinate values that are a certain value W away on both sides from the coordinate values X0 and Y0 of the position with the highest point cloud density on each coordinate axis of the rectangular parallelepiped closed space 70. The spatial manipulation unit 130 divides the rectangular parallelepiped closed space 70 into a plurality of divided closed spaces 701 using the coordinate values that are a certain value W away on both sides from the coordinate values X0 and Y0. The constant value W is, for example, a value obtained by multiplying the current size of the rectangular parallelepiped closed space 70 by a predetermined ratio. Specifically, the constant value W may be Wx used in the X-axis direction, Wy used in the Y-axis direction, and Wz used in the Z-axis direction. Wx used in the X-axis direction is a value obtained by multiplying the size of the rectangular parallelepiped closed space 70 in the X direction by a predetermined ratio.
[0036] In Figure 4, the dashed line represents the boundary line that newly divides the rectangular closed space 70 into multiple partitioned closed spaces 701. After the spatial manipulation process in step S105 is completed, one of the multiple partitioned closed spaces 701 is selected as the next rectangular closed space to be processed, and the process is repeated from step S102.
[0037] As described above, if the normal vector determination unit 120 calculates a normal vector for detecting a plane, the process proceeds to step S106. In step S106, the plane calculation unit 140 calculates a plane from the closed rectangular parallelepiped space. Here, since a normal vector for detecting a plane has been calculated, the plane calculation unit 140 uses the calculated normal vector to calculate a plane from the closed rectangular parallelepiped space. In step S107, the plane calculation unit 140 determines whether the only closed rectangular parallelepiped spaces for which a plane has not been calculated are those with a score less than the threshold of 52.
[0038] If the only closed cuboid spaces for which a plane has not been calculated are those with a score less than the threshold of 52, the process ends. If the only closed cuboid spaces for which a plane has not been calculated are those with a score less than the threshold of 52, the process is repeated from step S102, targeting the next closed cuboid space.
[0039] In the example in Figure 4, the rectangular prism closed space 70 is divided into divided closed space 701a and divided closed space 701i. Each of the divided closed space 701a to divided closed space 701i is treated as a rectangular prism closed space, and the process from step S102 is repeated. At this time, for divided closed spaces 701a, 701c, 701d, 701g to 701i, the spatial manipulation process is not performed because the number of points is below the threshold. When divided closed space 701b is a rectangular prism closed space, a plane parallel to the Y axis is detected. When divided closed space 701f is a rectangular prism closed space, a plane parallel to the X axis is detected. When divided closed space 701e is a rectangular prism closed space, the spatial manipulation process is performed on the divided closed space 701e in the same way as the process for the dotted rectangular prism closed space 70.
[0040] ***Explanation of the Effects of This Embodiment*** In the point cloud processing device according to this embodiment, the normal vector determination unit calculates a normal vector from the point cloud in the BB, and in the BB for which the normal vector has been calculated, the plane calculation unit calculates a plane that matches the point cloud. The normal vector determination unit also determines that there is no plane in BBs where the number of points is less than a threshold. BBs are generated by the initial division unit by dividing the space of the point cloud data into adjacent rectangular parallelepipeds. If a plane is not calculated in a BB with a number of points greater than or equal to the threshold, the spatial manipulation unit divides the BB into multiple BBs. At this time, the spatial manipulation unit sets the new boundary of the BB at a value a certain distance away on both sides from the coordinate value with high point cloud density. As described above, according to the point cloud processing device according to this embodiment, in the BB division process by the spatial manipulation unit, it is possible to divide the BB into BBs containing many point clouds that constitute the same plane and BBs with fewer points than a threshold. For this reason, the point cloud processing device according to this embodiment has the effect of suppressing further BB division or re-dividing of BBs, and improving the efficiency of plane detection. This is particularly effective for buildings with many walls parallel to the coordinate axes.
[0041] ***Other Configurations*** <Modification 1> In the point cloud processing according to this embodiment, the point cloud density at each coordinate axis in the closed rectangular parallelepiped space is calculated as a feature. Here, as modification 1 of this embodiment, a point cloud processing method is described in which the direction of the normal vector at each coordinate axis in the closed rectangular parallelepiped space is calculated as a feature.
[0042] The content of the spatial operation process in step S105 is different from that in the above-described Embodiment 1. The spatial operation unit 130 calculates, as a feature amount, the direction of the normal vector on each coordinate axis of the rectangular parallelepiped closed space by using the point group data included in the rectangular parallelepiped closed space. The spatial operation unit 130 calculates a change point in the distribution of the directions of the normal vectors on each coordinate axis of the rectangular parallelepiped closed space. The spatial operation unit 130 extracts coordinate values based on the change points on each coordinate axis of the rectangular parallelepiped closed space. For example, the spatial operation unit 130 extracts the coordinate values of the change points on each coordinate axis of the rectangular parallelepiped closed space. The spatial operation unit 130 divides the rectangular parallelepiped closed space into a plurality of divided closed spaces based on the coordinate values.
[0043] FIG. 5 is a diagram showing an example of the normal vector determination process according to Modification 1 of the present embodiment. In FIG. 5, it is assumed that the rectangular parallelepiped closed space surrounded by the dotted line is the rectangular parallelepiped closed space 70 to be processed. In the rectangular parallelepiped closed space 70, there is a point group substantially parallel to the X axis and a point group obliquely opposed to the Y axis. This indicates that there are two planes with different orientations in the rectangular parallelepiped closed space 70. In this case, in the rectangular parallelepiped closed space 70, a normal vector for detecting one plane cannot be determined. Therefore, it is determined that a normal vector for detecting a plane cannot be calculated in the current rectangular parallelepiped closed space 70.
[0044] FIG. 6 is a diagram showing an example of the spatial operation process according to Modification 1 of the present embodiment. The spatial operation unit 130 calculates, as a feature amount 80, the direction of the normal vector on each coordinate axis of the rectangular parallelepiped closed space 70 by using the point group data 51 included in the rectangular parallelepiped closed space 70. Then, the spatial operation unit 130 calculates a change point 81 in the distribution of the directions of the normal vectors on each coordinate axis of the rectangular parallelepiped closed space 70 and extracts coordinate values based on the change point 81. More specifically, the spatial operation unit 130 extracts the change point 81 in the distribution of the directions of the normal vectors on each coordinate axis of the rectangular parallelepiped closed space 7 as a coordinate value. The spatial operation unit 130 divides the rectangular parallelepiped closed space 70 into a plurality of divided closed spaces 701 with the coordinate values of the change points 81 in the distribution of the directions of the normal vectors on each coordinate axis as boundaries.
[0045] In Figure 6, the X-axis direction can be divided into three ranges: no normal vector, normal vector direction approximately (3, 1, 0), and normal vector direction approximately (0, 1, 0). Therefore, the spatial manipulation unit 130 extracts the coordinate value X0 at the boundary between the normal vector direction approximately (3, 1, 0) and the normal vector direction approximately (0, 1, 0) as the change point 81 in the distribution of the normal vector direction. In the Y-axis direction, the Y-axis direction can be divided into three ranges: no normal vector, normal vector direction approximately (0, 1, 0), and normal vector direction approximately (3, 1, 0). Therefore, the spatial manipulation unit 130 extracts the coordinate value Y0 at the boundary between the normal vector direction approximately (3, 1, 0) and the normal vector direction approximately (0, 1, 0) as the change point 81 in the distribution of the normal vector direction. In the Z-axis direction, there is a mixture of normal vectors with directions approximately (0,1,0) and normal vectors with directions approximately (3,1,0), and change point 81 is not extracted.
[0046] The spatial manipulation unit 130 divides the rectangular closed space 70 into multiple partitioned closed spaces 701 using coordinate values X0 and Y0 as boundaries. In Figure 6, the dashed line represents the boundary where the rectangular closed space 70 is newly divided into multiple partitioned closed spaces 701.
[0047] In the example in Figure 6, the rectangular closed space 70 is divided into a divided closed space 701j and a divided closed space 701m. Each of the divided closed spaces 701j to 701m is treated as a rectangular closed space, and the process is repeated from step S102. At this time, for the divided closed spaces 701k and 701l, the spatial manipulation process is not performed because the number of points is below the threshold. When the divided closed space 701j is treated as a rectangular closed space, a plane diagonally opposite to the Y-axis is detected. When the divided closed space 701m is treated as a rectangular closed space, a plane parallel to the X-axis is detected.
[0048] In the point cloud processing apparatus according to the first modification example of the present embodiment, the spatial operation unit uses the coordinate values of the change points in the distribution of the directions of the normal vectors as new boundaries. According to the point cloud processing apparatus according to the first modification example of the present embodiment, in the BB division process by the spatial operation unit, it is possible to divide the BB containing a large number of point clouds constituting the same plane and the BB with the number of points less than the threshold value. Therefore, according to the point cloud processing apparatus according to the first modification example of the present embodiment, further BB division or redoing of BB division is suppressed, and there is an effect that plane detection is made efficient.
[0049] <Modification Example 2> In the present embodiment, the functions of the initial division unit 110, the normal vector determination unit 120, the spatial operation unit 130, and the plane calculation unit 140 are realized by software. As a modification example, the functions of the initial division unit 110, the normal vector determination unit 120, the spatial operation unit 130, and the plane calculation unit 140 may be realized by hardware. Specifically, the point cloud processing apparatus 100 includes an electronic circuit 909 instead of the processor 910.
[0050] FIG. 7 is a diagram showing a configuration example of the point cloud processing apparatus 100 according to the second modification example of the present embodiment. The electronic circuit 909 is a dedicated electronic circuit that realizes the functions of the initial division unit 110, the normal vector determination unit 120, the spatial operation unit 130, and the plane calculation unit 140. Specifically, the electronic circuit 909 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA. GA is an abbreviation for Gate Array. ASIC is an abbreviation for Application Specific Integrated Circuit. FPGA is an abbreviation for Field-Programmable Gate Array.
[0051] The functions of the initial division unit 110, the normal vector determination unit 120, the spatial operation unit 130, and the plane calculation unit 140 may be realized by one electronic circuit or may be distributed and realized by a plurality of electronic circuits.
[0052] As another variation, some functions of the initial division unit 110, normal vector determination unit 120, spatial manipulation unit 130, and plane calculation unit 140 may be implemented by electronic circuits, while the remaining functions are implemented by software. Alternatively, some or all functions of the initial division unit 110, normal vector determination unit 120, spatial manipulation unit 130, and plane calculation unit 140 may be implemented by firmware.
[0053] Each of the processor and electronic circuit is also called a processing circuit. In other words, the functions of the initial division unit 110, the normal vector determination unit 120, the spatial manipulation unit 130, and the plane calculation unit 140 are realized by the processing circuit.
[0054] In the above Embodiment 1, each part of the point cloud processing device was described as an independent functional block. However, the configuration of the point cloud processing device does not have to be as described in the above embodiment. The functional blocks of the point cloud processing device can be configured in any way as long as they can realize the functions described in the above embodiment. Also, the point cloud processing device does not have to be a single device, but a system composed of multiple devices. Furthermore, multiple parts of Embodiment 1 may be combined and implemented. Alternatively, only one part of Embodiment 1 may be implemented. In addition, Embodiment 1 may be implemented in any way, either as a whole or in part. That is to say, in Embodiment 1, it is possible to freely combine each embodiment, modify any component of each embodiment, or omit any component in each embodiment.
[0055] The embodiments described above are essentially preferred examples and are not intended to limit the scope of the Disclosure, the scope of the Applications of the Disclosure, or the scope of Uses of the Disclosure. The embodiments described above can be modified in various ways as needed. For example, the procedures described using flowcharts or sequence diagrams may be modified as appropriate.
[0056] (Note 1) A point cloud processing device comprising: an initial division unit that divides a space containing three-dimensional point cloud data into a rectangular closed space; a normal vector determination unit that determines whether or not a normal vector for detecting a plane has been calculated from the point cloud data contained in the rectangular closed space; and a space manipulation unit that, if it is determined that a normal vector for detecting a plane has not been calculated, calculates feature quantities using the point cloud data contained in the rectangular closed space, extracts coordinate values in which the feature quantities show a particular trend, divides the rectangular closed space into a plurality of divided closed spaces based on the coordinate values, and makes each of the plurality of divided closed spaces a new rectangular closed space. (Note 2) The point cloud processing device according to Note 1, wherein the space manipulation unit calculates the point cloud density at each coordinate axis of the rectangular closed space as the feature quantities using the point cloud data contained in the rectangular closed space, extracts the coordinate values based on the point cloud density at each coordinate axis of the rectangular closed space, and divides the rectangular closed space into the plurality of divided closed spaces based on the coordinate values. (Note 3) The point cloud processing device according to Note 2, wherein the spatial manipulation unit extracts the coordinate values of the position with the highest point cloud density on each coordinate axis of the rectangular parallelepiped closed space, and divides the rectangular parallelepiped closed space into the plurality of divided closed spaces based on the coordinate values on each coordinate axis. (Note 4) The point cloud processing device according to Note 3, wherein the spatial manipulation unit divides the rectangular parallelepiped closed space into the plurality of divided closed spaces using coordinate values that are a certain distance away on both sides from the coordinate values of the position with the highest point cloud density on each coordinate axis of the rectangular parallelepiped closed space. (Note 5) The point cloud processing device according to Note 1, wherein the spatial manipulation unit uses the point cloud data contained in the rectangular closed space to calculate the direction of the normal vector at each coordinate axis of the rectangular closed space as the feature quantity, calculates the change points of the distribution of the direction of the normal vector at each coordinate axis of the rectangular closed space, extracts the coordinate values based on the change points at each coordinate axis of the rectangular closed space, and divides the rectangular closed space into the plurality of divided closed spaces based on the coordinate values. (Note 6) The point cloud processing device according to Note 5, wherein the spatial manipulation unit extracts the coordinate values of the change points at each coordinate axis of the rectangular closed space, and divides the rectangular closed space into the plurality of divided closed spaces using the coordinate values at each coordinate axis as boundaries.(Note 7) The point cloud processing device according to any one of Notes 1 to 5, wherein the normal vector determination unit determines that a normal vector for detecting the plane has been calculated when the direction of the normal vector obtained in the rectangular parallelepiped closed space is within a predetermined direction range. (Note 8) The point cloud processing device according to any one of Notes 1 to 6, wherein the normal vector determination unit determines the number of points in the point cloud data included in the rectangular parallelepiped closed space, and determines whether or not a normal vector for detecting the plane has been calculated when the number of points is equal to or greater than a threshold. (Note 9) A point cloud processing method comprising: a computer dividing a space containing three-dimensional point cloud data into a rectangular closed space; a computer determining whether or not a normal vector for detecting a plane has been calculated from the point cloud data contained in the rectangular closed space; if the computer determines that a normal vector for detecting a plane has not been calculated, calculating feature quantities using the point cloud data contained in the rectangular closed space; extracting coordinate values in which the feature quantities show a particular trend; dividing the rectangular closed space into a plurality of partitioned closed spaces based on the coordinate values; and making each of the plurality of partitioned closed spaces a new rectangular closed space. (Note 10) A point cloud processing program that causes a computer to perform the following operations: an initial division process that divides a space containing three-dimensional point cloud data into a rectangular closed space; a normal vector determination process that determines whether or not a normal vector for detecting a plane has been calculated from the point cloud data contained in the rectangular closed space; and, if it is determined that a normal vector for detecting a plane has not been calculated, a spatial manipulation process that calculates feature quantities using the point cloud data contained in the rectangular closed space, extracts coordinate values in which the feature quantities show a particular trend, divides the rectangular closed space into a plurality of divided closed spaces based on the coordinate values, and makes each of the plurality of divided closed spaces a new rectangular closed space.
[0057] 51 Point cloud data, 52 Threshold, 70 Rectangular closed space, 80 Feature quantity, 81 Change point, 701 Divided closed space, 100 Point cloud processing unit, 110 Initial division unit, 120 Normal vector determination unit, 130 Spatial manipulation unit, 140 Plane calculation unit, 150 Storage unit, 909 Electronic circuit, 910 Processor, 921 Memory, 922 Auxiliary storage device, 930 Input interface, 940 Output interface, 950 Communication device.
Claims
1. A point cloud processing device comprising: an initial division unit that divides a space containing three-dimensional point cloud data into a rectangular closed space; a normal vector determination unit that determines whether or not a normal vector for detecting a plane has been calculated from the point cloud data contained in the rectangular closed space; and, if it is determined that a normal vector for detecting a plane has not been calculated, a space manipulation unit that calculates feature quantities using the point cloud data contained in the rectangular closed space, extracts coordinate values in which the feature quantities show a particular trend, divides the rectangular closed space into a plurality of divided closed spaces based on the coordinate values, and makes each of the plurality of divided closed spaces a new rectangular closed space.
2. The point cloud processing apparatus according to claim 1, wherein the spatial manipulation unit uses point cloud data contained in the rectangular closed space to calculate the point cloud density at each coordinate axis of the rectangular closed space as the feature quantity, extracts the coordinate values based on the point cloud density at each coordinate axis of the rectangular closed space, and divides the rectangular closed space into a plurality of divided closed spaces based on the coordinate values.
3. The point cloud processing apparatus according to claim 2, wherein the spatial manipulation unit extracts the coordinate values of the positions with the highest point cloud density on each coordinate axis of the rectangular parallelepiped closed space, and divides the rectangular parallelepiped closed space into a plurality of divided closed spaces based on the coordinate values on each coordinate axis.
4. The point cloud processing apparatus according to claim 3, wherein the spatial manipulation unit divides the rectangular parallelepiped closed space into a plurality of divided closed spaces using coordinate values that are a certain distance away on both sides from the coordinate value of the position with the highest point cloud density at each coordinate axis of the rectangular parallelepiped closed space.
5. The point cloud processing apparatus according to claim 1, wherein the spatial manipulation unit uses point cloud data contained in the rectangular closed space to calculate the direction of the normal vector at each coordinate axis of the rectangular closed space as the feature quantity, calculates the change points of the distribution of the direction of the normal vector at each coordinate axis of the rectangular closed space, extracts the coordinate values based on the change points at each coordinate axis of the rectangular closed space, and divides the rectangular closed space into the plurality of divided closed spaces based on the coordinate values.
6. The point cloud processing device according to claim 5, wherein the spatial manipulation unit extracts the coordinate values of the change points at each coordinate axis of the rectangular parallelepiped closed space, and divides the rectangular parallelepiped closed space into a plurality of divided closed spaces using the coordinate values at each coordinate axis as boundaries.
7. The point cloud processing device according to any one of claims 1 to 5, wherein the normal vector determination unit determines that a normal vector for detecting the plane has been calculated when the direction of the normal vector obtained in the rectangular parallelepiped closed space is within a predetermined direction range.
8. The point cloud processing device according to any one of claims 1 to 6, wherein the normal vector determination unit determines the number of points in the point cloud data included in the rectangular parallelepiped closed space, and determines whether or not a normal vector for detecting a plane has been calculated if the number of points is equal to or greater than a threshold.
9. A point cloud processing method comprising: a computer dividing a space containing three-dimensional point cloud data into a rectangular closed space; a computer determining whether a normal vector for detecting a plane has been calculated from the point cloud data contained in the rectangular closed space; if the computer determines that a normal vector for detecting a plane has not been calculated, calculating feature quantities using the point cloud data contained in the rectangular closed space; extracting coordinate values in which the feature quantities show a particular trend; dividing the rectangular closed space into a plurality of partitioned closed spaces based on the coordinate values; and making each of the plurality of partitioned closed spaces a new rectangular closed space.
10. A point cloud processing program that causes a computer to perform the following steps: an initial partitioning process that divides a space containing three-dimensional point cloud data into a rectangular closed space; a normal vector determination process that determines whether or not a normal vector for detecting a plane has been calculated from the point cloud data contained in the rectangular closed space; and, if it is determined that a normal vector for detecting a plane has not been calculated, a spatial manipulation process that calculates feature quantities using the point cloud data contained in the rectangular closed space, extracts coordinate values in which the feature quantities show a particular trend, divides the rectangular closed space into a plurality of partitioned closed spaces based on the coordinate values, and makes each of the plurality of partitioned closed spaces a new rectangular closed space.
Citation Information
Patent Citations
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20220198719A1
Information processing device, information processing method, and program
WO2021131990A1