Processing device and computer program for the processing device
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- DENSO WAVE INC
- Filing Date
- 2025-01-22
- Publication Date
- 2026-08-03
Smart Images

Figure 2026125384000001_ABST
Abstract
Description
Technical Field
[0001] The technology disclosed in this specification relates to a processing device for processing point cloud data.
Background Art
[0002] Patent Document 1 describes a point cloud processing device that extracts background point clouds, which are point clouds belonging to a background region, from point clouds obtained by measurement with Light Detection And Ranging (LiDAR). The point cloud processing device stores, as background point clouds, the point clouds constituting a plane (for example, a wall surface and a floor surface) extracted using RANSAC.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] Patent Document 1 is a technology premised on the fact that a stationary object as a background is a plane. In this specification, a technology for generating stationary object data from point cloud data is provided even when the stationary object is not a plane.
Means for Solving the Problems
[0005] This specification discloses a processing device for processing point cloud data. The measuring device is configured to scan a laser over a predetermined range around the measuring device and output point cloud data showing a point cloud of reflection points of the laser. The processing device includes a first acquisition unit that acquires the point cloud data from the measuring device as time-series data, and a generation unit that generates stationary data showing a point cloud of stationary objects located within the predetermined range from the time-series data. The generation unit selects the point furthest from the measuring device as the stationary data from among a plurality of reflection points measured at different times with the laser irradiated in a specific direction within the predetermined range.
[0006] For example, consider a situation where a stationary object is present in a specific direction, and a moving object is moving in front of it. In this case, in the time series of reflection points of a laser beam irradiated in that specific direction, the reflection point for the stationary object is farther away than the reflection point for the moving object. That is, in the time series of reflection points for that specific direction, the point furthest from the measuring device can be inferred to be the stationary object. By selecting the point furthest from the measuring device in the time series of reflection points for that specific direction as stationary object data, stationary object data can be generated from point cloud data.
[0007] The processing device may further include: a second acquisition unit that acquires the point cloud data from the measuring device after the stationary data has been generated; and an extraction unit that extracts moving object data indicating a moving object moving within a predetermined range from the point cloud data acquired from the measuring device after the stationary data has been generated, wherein each point indicated by the moving object data is a reflection point closer to the measuring device than the reflection point indicated by the stationary data.
[0008] According to the above configuration, moving object data can be extracted from point cloud data, and moving objects moving within a predetermined space can be analyzed.
[0009] The processing device may further include a first discrimination unit that identifies the first reflection point as the stationary object when the first reflection point among the point cloud data acquired from the measuring device after the stationary object data has been generated is farther away from the second reflection point among the stationary object data which is in the same direction as the first reflection point.
[0010] For example, it is assumed that an object that was stationary when generating stationary data may move after the generation of the stationary data. The first reflection point is presumed to represent a stationary object that is farther away than the object that moved after the generation of the stationary data. With the above configuration, the first reflection point acquired after the generation of the stationary data can be identified as a stationary object.
[0011] The processing device may further include an update unit that updates the second reflection point of the stationary body data to the first reflection point if the first reflection point of the point cloud data acquired from the measuring device after the stationary body data has been generated is farther away from the second reflection point of the stationary body data which is in the same direction as the first reflection point.
[0012] According to the above configuration, static data can be updated after it has been generated.
[0013] The processing device may further include a storage execution unit that stores the first reflection point as time-series point data when the first reflection point among the point cloud data acquired from the measuring device after the stationary body data has been generated is farther away from the second reflection point among the stationary body data which is in the same direction as the first reflection point, and a second discrimination unit that identifies the reflection points among the time-series point data that show the same distance continuously over a predetermined period as the stationary body.
[0014] Reflection points that continuously show the same distance over a predetermined period are presumed to be stationary objects. According to the above configuration, the first reflection point acquired after the generation of stationary object data can be identified as a stationary object.
[0015] The processing device may further include a display execution unit that displays the moving object indicated by the moving object data, separately from the stationary object indicated by the stationary object data.
[0016] By separately displaying the moving object from the stationary object, the user can grasp the moving object moving within a predetermined range.
[0017] The stationary object data may include a definite value indicating a point where the existence of the stationary object is determined, and an indefinite value indicating a point where the existence of the stationary object is not determined.
[0018] Also, a computer program for the above processing device, a storage medium storing the computer program, and a control method for controlling the above processing device are also novel and useful.
Brief Description of the Drawings
[0019] [Figure 1] It is a block diagram of a measurement system. [Figure 2] Conceptual diagrams of point cloud data and a two-dimensional map. [Figure 3] It is a flowchart of background creation processing. [Figure 4] It is a flowchart of moving object processing according to the first embodiment. [Figure 5] It is a flowchart of moving object processing according to the second embodiment.
Modes for Carrying Out the Invention
[0020] (First Embodiment) (Configuration of Measurement System 2; FIG. 1) The measurement system 2 measures the position of an object within a predetermined space. The objects are the moving bodies 6a, 6b and the stationary body 8. The moving bodies 6a, 6b are, for example, people or the like. The stationary body 8 is, for example, a wall, a shelf, a desk, a building, or the like. The predetermined space is, for example, an indoor space, an outdoor space, or the like. The indoor space is, for example, an office, a factory, a shopping mall, an exhibition hall, or the like. The outdoor space is, for example, the outside of a station, the entrance of a building, or the like. Note that XYZ coordinates are defined in FIG. 1. Hereinafter, the XYZ coordinates will be used for explanation as appropriate.
[0021] The measurement system 2 includes a terminal device 10 and a LiDAR 100. The terminal device 10 is a desktop PC, a laptop PC, a smartphone, or the like. The LiDAR 100 is called light Detection And Ranging and is a 3D LiDAR that measures the distance to surrounding objects three-dimensionally. The terminal device 10 and the LiDAR 100 are communicably connected to each other via wired or wireless means. Note that in a modified example, the measurement system 2 may be a single device in which the functions of the terminal device 10 and the LiDAR 100 are integrated into the single device.
[0022] The LiDAR 100 is configured to output point cloud data obtained by repeatedly scanning a laser over the area R around the LiDAR 100. The laser is irradiated by a laser light source built into the LiDAR 100. The laser light source rotates using a rotating mechanism such as a motor, for example. Scanning over the area R is realized by the laser light source rotating at a predetermined angle (for example, 180 degrees) in the XY plane and a predetermined angle (for example, 120 degrees) up and down in the Z direction. For example, the laser light source rotates at a rotation speed of 5 times per second. Note that in a modified example, the LiDAR 100 may scan the laser in a method that does not use a rotating mechanism called a solid state type.
[0023] The point cloud data is a collection of coordinate points of orthogonal coordinates (X, Y, Z) defined within a predetermined space. Note that in a modified example, the point cloud data may be a collection of coordinate points of polar coordinates defined within a predetermined space.
[0024] (Configuration of terminal device 10; Figure 1) The terminal device 10 comprises a display unit 12, an operation unit 14, a communication interface 16, and a control unit 30. Hereafter, "interface" will be abbreviated as "I / F".
[0025] The display unit 12 is a display for displaying various information. The operation unit 14 has multiple keys for receiving instructions from the user. The operation unit 14 is, for example, a keyboard, mouse, etc. The display unit 12 may also function as a touchscreen (i.e., operation unit). The communication interface 16 is an interface for performing communication with the LiDAR 100.
[0026] The control unit 30 comprises a CPU 32 and a memory 34. The memory 34 consists of volatile memory and non-volatile memory. The CPU 32 performs various processes according to programs 40 and 42 stored in the memory 34. The OS program 40 is a program that controls the basic operation of the terminal device 10. The application program 42 (hereinafter referred to as "app 42") is a program for processing point cloud data received from the LiDAR 100. App 42 is provided, for example, by a company that provides the measurement system 2.
[0027] Memory 34 can also store stationary object data 44. Stationary object data 44 is data indicating a stationary object 8 located in a predetermined space. Stationary object data 44 is data indicating the background of the moving object 4. Stationary object data 44 is generated by application 42.
[0028] (Structure of point cloud data; Figure 2) The LiDAR100 scans the entire area R once per unit time and calculates the distance to the laser reflection point for objects within the area R as point cloud data. The point data representing each reflection point P in the point cloud data output by the LiDAR100 is a coordinate point of Cartesian coordinates (X, Y, Z) defined within the area R.
[0029] In this embodiment, application 42 converts the Cartesian coordinate (X, Y, Z) point cloud data acquired from LiDAR 100 into polar coordinate (α, ω, D) point cloud data. Angle α is the horizontal angle in the XY plane, and angle ω is the vertical angle in the Z axis direction. The angle (α, ω) corresponds to the irradiation direction of the LiDAR 100 laser. Distance D is the straight-line distance from LiDAR 100 (i.e., the origin) to the reflection point P.
[0030] Point cloud data in polar coordinates (α, ω, D) can be represented as distance D mapped to a two-dimensional map 102, where angles α and ω are rounded to a predetermined precision (so-called voxelization), and angle α is in one column and angle ω is in the other. The two-dimensional map 102 is then implemented as array data 104, with values stored in boxes with indices "0" to "N".
[0031] The values stored in each box are either distance D or an uncertain value. Distance D is the distance to the reflection point and indicates a point where the existence of the object is confirmed. On the other hand, an uncertain value means that there is no reflection point and the distance cannot be measured. In other words, an uncertain value indicates a point where the existence of the object is not confirmed. An uncertain value is a value other than an absolute value, such as "∞" or "-1".
[0032] Application 42 acquires point cloud data from LiDAR100 in a time series and performs the processing shown in Figures 3 and 4 on the time series point cloud data. Here, time series data is a collection of data measured at different times.
[0033] (Still image processing; Figure 3) Referring to Figure 3, the static object processing performed by the CPU 32 according to the application 42 will be described. Static object processing is the process for generating static object data 44. Static object processing is performed before the mobile object processing (see Figure 4) for extracting moving objects. The processing in Figure 3 is started, for example, when a generation instruction to start generating static object data 44 is input to the operation unit 14. Also, when the processing in Figure 3 is started, the CPU 32 sends a measurement start command to the LiDAR 100. The processing in Figure 3 is performed, for example, during a time when there are few moving objects in a predetermined space, such as early morning.
[0034] In S10, the CPU 32 generates static data 44 with initial values. The static data 44 is implemented as array data 104, and each box of the static data 44 is set to an uncertain value as an initial value.
[0035] In S12, the CPU32 acquires point cloud data per unit time from the LiDAR100. In S14, the CPU32 converts the point cloud data acquired in S12 into point cloud data in polar coordinates, and further converts it into a two-dimensional map 102.
[0036] In S20, the CPU 32 selects a target box, which is one of the boxes in the array data 104 representing the two-dimensional map 102.
[0037] In S22, CPU32 determines whether the value of the target stored in the target box is an uncertain value or not. If CPU32 determines that the value of the target is not an uncertain value but distance D (NO in S22), it proceeds to S24.
[0038] In S24, the CPU 32 determines whether the target value is greater than the corresponding value in the static data 44. Here, the corresponding value is the value stored in the box with the same index as the target box in the static data 44. If the CPU 32 determines that the target value is greater than the corresponding value (YES in S24), it proceeds to S26. Note that if the target value is distance D and the corresponding value is an uncertain value, the determination in S24 is YES.
[0039] In S26, the CPU 32 updates the value stored in the target box of the static data 44 to the corresponding value. When S26 is finished, the CPU 32 proceeds to S28.
[0040] Furthermore, if CPU32 determines that the target value is less than or equal to the corresponding value (NO in S24), it skips the process in S26 and proceeds to S28. Also, if CPU32 determines that the target value is an uncertain value (YES in S22), it skips the processes in S24 and S26 and proceeds to S28.
[0041] In S28, the CPU32 determines whether all boxes in the two-dimensional map 102 from S20 have been selected. If the CPU32 determines that not all boxes have been selected yet (NO in S28), it returns to S20 and selects another box. On the other hand, if the CPU32 determines that all boxes have been selected (YES in S20), it proceeds to S30.
[0042] In S30, the CPU 32 determines whether or not a user has input a measurement termination command to the operation unit 14. If the CPU 32 determines that no measurement termination command has been input to the operation unit 14 (NO in S30), it returns to S12 and acquires the next point cloud data. On the other hand, if the CPU 32 determines that a measurement termination command has been input to the operation unit 14 (YES in S30), it terminates the process shown in Figure 3. The static object data 44 is generated by updating the values in each box of the static object data 44 during the processes from S12 to S28 in Figure 3.
[0043] For example, consider a situation where a stationary object 6 exists in a specific direction within region R, and a moving object 4 moves in front of the stationary object 6. Here, the reflection point of the laser irradiated in the specific direction is represented by a time series of distances D to the target box. In the time series of distances D to the target box, the stationary object 6 is farther away than the moving object 4, so the distance D to the stationary object 6 is farther than the distance D to the moving object 4. That is, it can be inferred that the largest distance D in the time series of distances D to the target box is the distance to the stationary object 6. In the process shown in Figure 3, point cloud data is acquired at multiple time points, and processes S14 to S28 are repeatedly executed for the point cloud data at each time point. Then, in S24 (YES) and S26 in Figure 3, the value in the stationary object data 44 is updated to the largest distance D at multiple time points, i.e., the distance D to the furthest stationary object 6. The process shown in Figure 3 allows for the generation of stationary object data 44 from point cloud data acquired from LiDAR 100.
[0044] In this embodiment, the static data 44 is realized as array data 104 for all indices "1" to "N". The static data 44 in this embodiment may contain uncertain values. In contrast, in the modified example, the static data 44 may not be the array data 104 itself, but rather data that can reproduce the array data 104. Specifically, the static data 44 is a collection of combinations of indices and distances D, and does not necessarily contain uncertain values.
[0045] (Moving object processing; Figure 4) Referring to Figure 4, the mobile object processing performed by the CPU 32 according to the application 42 will be described. The mobile object processing is a process for extracting mobile object data from point cloud data using the stationary object data 44 generated in the stationary object processing in Figure 3. The mobile object data is data that represents the mobile object 4. The processing in Figure 3 is started, for example, when a start instruction to start extracting mobile object data is input to the operation unit 14. Also, when the processing in Figure 4 is started, the CPU 32 sends a measurement start command to the LiDAR 100.
[0046] In S50, the CPU 32 acquires static object data 44 from memory 34. S52 and S54 are the same as S12 and S14 in Figure 3. In S54, the CPU 32 converts the point cloud data measured by the LiDAR 100 into a two-dimensional map 102.
[0047] In S60, the CPU 32 selects a target box, which is one of the boxes in the array data 104 representing the two-dimensional map 102 converted in S54. S62 is similar to S22 in Figure 3.
[0048] The CPU 32 determines that the value of the target stored in the target box is not an uncertain value but distance D (NO in S62), and proceeds to S64. In S64, the CPU 32 determines whether the corresponding value in the stationary data 44 acquired in S50 is not an uncertain value but distance D.
[0049] If the CPU 32 determines that the corresponding value in the stationary data 44 is distance D (YES in S64), it proceeds to S66. In S66, the CPU 32 determines whether the target value is smaller than the corresponding value in the stationary data 44.
[0050] If the CPU 32 determines that the target value is smaller than the corresponding value in the stationary data 44 (YES in S66), it proceeds to S68. The fact that the target value is smaller than the corresponding value in the stationary data 44 means that the target value, i.e., the distance measured by the LiDAR 100 this time, indicates a moving object 4 located in front of the stationary object 6. In S68, the CPU 32 stores the combination of the index of the target box and the target value as moving object data. In this embodiment, the moving object data is a collection of combinations of index and distance D. In a modified example, the moving object data may be implemented as array data 104, and the box corresponding to the stationary object 6 may contain an uncertain value. When the processing in S68 is completed, the CPU 32 proceeds to S80.
[0051] S80 is the same as S28 in Figure 3. If the CPU 32 determines that no boxes have been selected yet (NO in S80), it returns to S60 and selects another box. On the other hand, if the CPU 32 determines that all boxes have been selected (YES in S80), it proceeds to S82.
[0052] In step S82, the CPU 32 displays the moving object 4, indicated by the moving object data, on the display unit 12, distinguishing it from the stationary object 6 indicated by the stationary object data 44. For example, the stationary object 6 is displayed in a first color, and the moving object 4 is displayed in a second color different from the first color. In this embodiment, the moving object 4 is displayed in real time while being measured by the LiDAR 100. In the modified version, the processing in S82 may not be performed, and in the processing in Figure 4, only the extraction and storage of the moving object data may be performed.
[0053] When S82 is completed, the CPU 32 proceeds to S84. S84 is the same as S30 in Figure 3. If the CPU 32 determines that the instruction to end the measurement has not been input to the operation unit 14 (NO in S84), it returns to S50 and acquires the next point cloud data. On the other hand, if the CPU 32 determines that the instruction to end the measurement has been input to the operation unit 14 (YES in S84), it performs the process shown in Figure 4.
[0054] Furthermore, if CPU32 determines that the value of the target stored in the target box is an uncertain value (YES in S62), it proceeds to S80. Also, if CPU32 determines that the corresponding value of the static data 44 is an uncertain value (NO in S64), it proceeds to S80.
[0055] Furthermore, if the CPU 32 determines that the target value is greater than or equal to the corresponding value in the static data 44 (NO in S66), it proceeds to S70. In S70, the CPU 32 determines whether the difference between the target value and the corresponding value in the static data 44 is greater than or equal to a threshold. If the CPU 32 determines that the difference between the target value and the corresponding value is less than the threshold (NO in S70), it proceeds to S80.
[0056] Furthermore, if CPU32 determines that the difference between the target value and the corresponding value is greater than or equal to a threshold (YES in S70), it proceeds to S72. In S72, CPU32 updates the corresponding value in the static data 44 to the target value. Once S72 is complete, CPU32 proceeds to S80.
[0057] If the difference between the target value and the corresponding value in the stationary object data 44 is greater than or equal to a threshold, it means that the distance D measured by LiDAR 100 is farther than the distance D indicated in the stationary object data 44. In other words, it is inferred that the distance D measured by LiDAR 100 indicates a stationary object 6 located farther away than the moving object 4. In this embodiment, the processing in S70 determines that the distance D measured by LiDAR 100 is the distance D indicating a stationary object 6. A situation in which S70 determines YES is, for example, a situation in which an object measured as a stationary object 6 at the time of generation of the stationary object data 44 moves after the generation of the stationary object data 44. This situation is, for example, a situation in which a parked vehicle moves. According to the processing in S72, the stationary object data 44 can be updated even after it has been generated.
[0058] The process shown in Figure 4 allows for the extraction of time-series moving object data from time-series point cloud data, enabling the analysis of moving objects 4 moving within a predetermined space. For example, clustering can be performed on the time-series moving object data extracted by the process in Figure 4 to calculate the number of moving objects 4 moving within the predetermined space. Clustering is a process that extracts sets of points with the same feature points from time-series moving object data and assigns labels to the extracted sets of points. Here, feature points represent specific distance relationships.
[0059] (Correspondence) LiDAR 100 and terminal device 10 are examples of "measurement device" and "processing device," respectively. Static object data 44 is an example of "static object data." S12 in Figure 3 is an example of processing implemented by the "first acquisition unit." S20 to S28 are examples of processing implemented by the "generation unit." S52 and S68 in Figure 3 are examples of processing implemented as the "second acquisition unit" and "extraction unit," respectively. S70 and S72 are examples of processing implemented as the "1 discrimination unit" and "update unit," respectively. S82 is an example of processing implemented as the "display execution unit." Distance D and uncertain value "-1" are examples of "confirmed value" and "uncertain value."
[0060] (Second example) This embodiment has the same configuration as the first embodiment, except that some aspects of the mobile body processing differ.
[0061] (Moving object processing; Figure 5) In the moving object processing of this embodiment, S100 is added, and the update process S102 is added in place of S72. The update process S102 is a process for updating the stationary object data 44 using the value of the object, which is the distance D measured this time. The update process S102 uses a hold flag. The hold flag indicates either "ON," which means to store the value of the object as hold data to be used for updating the stationary object data 44, or "OFF," which means not to store the hold data. For all indices "1" to "N," one hold flag is associated with each index and stored. The default value of the hold flag is "OFF."
[0062] If CPU32 determines that the target value stored in the target box is not an uncertain value but a distance D (NO in S62), it proceeds to S100. In S100, CPU32 determines whether the hold flag, which is stored in association with the index corresponding to the target value, is "ON". If the hold flag is "OFF" (NO in S100), CPU32 proceeds to S64. On the other hand, if the hold flag is "ON" (YES in S100), CPU32 proceeds to S112 in the update process.
[0063] Furthermore, if the CPU 32 determines that the difference between the target value and the corresponding value in the static data 44 is greater than or equal to a threshold (YES in S70), it proceeds to S102. The update process in S102 includes the processes in S110 to S116. Once the process in S102 is completed, the CPU 32 proceeds to S80.
[0064] In S110, CPU32 changes the pending flag, which is stored in association with the index corresponding to the target value, from "OFF" to "ON".
[0065] In S112, the CPU 32 stores the target value as pending data. The pending data is stored associated with the index corresponding to the target value. The pending data accumulates target values that are larger than the corresponding values in the static data 44 over time.
[0066] In S114, the CPU 32 determines whether the pending data contains multiple consecutive distances D over a predetermined period, and whether these multiple distances D are identical. The predetermined period is, for example, a few seconds, such as 5 seconds. Here, "identical" does not mean completely identical; for example, distances that fall within a predetermined range are also considered identical.
[0067] If the CPU 32 determines that multiple distances D included in the pending data are identical (YES in S114), it proceeds to S116. In S116, the CPU 32 updates the corresponding values in the stationary data 44 with the distances D determined to be identical in S114. When S116 is completed, the CPU 32 terminates the update process. If the CPU 32 determines that multiple distances D included in the pending data are not identical (NO in S114), it skips S116 and terminates the update process.
[0068] When generating stationary object data 44, it is assumed that the object measured as stationary object 6 will move after the generation of stationary object data 44. In this situation, during the moving object processing, a distance greater than the distance indicated by the stationary object data 44 will be measured. Here, it is preferable to determine whether the measured distance represents stationary object 6 or moving object 4. Generally, since moving object 4 passes by in a short time, the time during which the distance representing moving object 4 is continuously measured is short. On the other hand, the time during which the distance representing stationary object 6 is continuously measured is longer compared to that of moving object 4. In S114 above, since multiple consecutive distances D over a predetermined period are the same, it is possible to infer that the distance D represents stationary object 6. In this embodiment, S114 allows for the determination that the distance D measured this time represents stationary object 6, and the corresponding value in the stationary object data 44 can be updated to that distance D.
[0069] (Correspondence) The pending data is an example of "point data". S112 and S114 in Figure 5 are examples of processes implemented by the "storage execution unit" and the "second discrimination unit," respectively.
[0070] The above describes specific examples of the technology disclosed herein, but these are merely illustrative and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes to the specific examples described above. For example, the following modifications may be adopted.
[0071] (Modification 1) In each embodiment, the terminal device 10 does not need to perform the moving object processing shown in Figures 4 and 5. In this modification, for example, the terminal device 10 may provide the stationary object data 44 generated by the stationary object processing in Figure 3 to another device different from the terminal device 10. The stationary object data 44 may then be used by the other device. In this modification, the "second acquisition unit" and the "extraction unit" are omitted.
[0072] (Modification 2) The process at S70 in Figure 4 does not need to be executed. In this modification, the "first discrimination unit" is omitted.
[0073] (Modification 3) The process in S72 of Figure 4 does not need to be performed. In this modification, the terminal device 10 does not update the stationary object data 44, and instead reflects the value of the object that was determined in S70 to be the distance D representing the stationary object 6 in the display in S82. In this modification, the "first determination unit" is implemented in S70, but the "update unit" is omitted.
[0074] (Modification 4) The process in S116 of Figure 5 does not need to be performed. In this modification, the terminal device 10 does not update the stationary object data 44, and instead reflects the same distance, which was determined in S114 to be the distance D representing the stationary object 6, in the display in S82. In this modification, although the "second discrimination unit" is realized in S114, the update of the "stationary object data" does not need to be performed.
[0075] (Modification 5) The process in S82 in Figures 4 and 5 does not need to be executed. In this modification, the "display execution unit" can be omitted.
[0076] The technical elements described herein or in the drawings demonstrate technical usefulness individually or in various combinations, and are not limited to the combinations described in the claims at the time of filing. Furthermore, the technologies illustrated herein or in the drawings achieve multiple objectives simultaneously, and achieving even one of these objectives constitutes technical usefulness in itself. [Explanation of symbols]
[0077] 2: Measurement system, 4: Moving object, 6: Stationary object, 6a: Moving object, 6b: Moving object, 8: Stationary object, 10: Terminal device, 12: Display unit, 14: Operation unit, 16: Communication I / F, 30: Control unit, 32: CPU, 34: Memory, 40: OS program, 42: Application, 44: Stationary object data, 102: Two-dimensional map, 104: Array data, D: Distance, P: Reflection point, R: Area, α: Angle, ω: Angle
Claims
1. A processing device for processing point cloud data output from a measuring device, The measuring device is configured to scan a laser over a predetermined range around the measuring device and output point cloud data showing the point cloud of the laser reflection points. The aforementioned processing apparatus is A first acquisition unit that acquires the point cloud data as time-series data from the aforementioned measuring device, A generation unit that generates stationary data representing a point cloud of stationary objects located within a predetermined range from the aforementioned time-series data, Equipped with, The generation unit selects the point furthest from the measuring device as the stationary data from among a plurality of reflection points measured at different times with the laser irradiated in a specific direction within the predetermined range. Processing device.
2. The aforementioned processing apparatus further, After the static data is generated, a second acquisition unit acquires the point cloud data from the measuring device, An extraction unit that extracts moving object data indicating a moving object moving within a predetermined range from the point cloud data acquired from the measuring device after the static object data has been generated, wherein each point indicated by the moving object data is a reflection point closer to the measuring device than the reflection point indicated by the static object data, The apparatus according to claim 1, comprising:
3. The aforementioned processing apparatus further, The processing apparatus according to claim 2, further comprising a first discrimination unit that determines the first reflection point to be the stationary body when the first reflection point among the point cloud data acquired from the measuring device after the stationary body data has been generated is farther away from the second reflection point among the stationary body data which is in the same direction as the first reflection point.
4. The aforementioned processing apparatus further, The processing apparatus according to claim 2, further comprising an update unit that updates the second reflection point of the stationary body data to the first reflection point if the first reflection point of the point cloud data acquired from the measuring device after the stationary body data has been generated is farther away than the second reflection point of the stationary body data which is in the same direction as the first reflection point.
5. The aforementioned processing apparatus further, A storage execution unit that, when the first reflection point among the point cloud data acquired from the measuring device after the static data has been generated is farther away from the second reflection point in the static data which is in the same direction as the first reflection point, stores the first reflection point as time-series point data. A second discrimination unit identifies reflection points that show the same distance continuously over a predetermined period of time from the aforementioned time-series point data as the stationary body, The apparatus according to claim 2, comprising:
6. The aforementioned processing apparatus further, The processing apparatus according to claim 2, further comprising a display execution unit that displays the moving body indicated by the moving body data, distinguishing it from the stationary body indicated by the stationary body data.
7. The apparatus according to any one of claims 1 to 5, wherein the stationary body data includes a confirmed value indicating a point where the existence of the stationary body is confirmed, and an uncertain value indicating a point where the existence of the stationary body is not confirmed.
8. A computer program for a processing device that processes point cloud data output from a measuring device, The measuring device is configured to scan a laser over a predetermined range around the measuring device and output point cloud data showing the point cloud of the laser reflection points. The aforementioned computer program controls the computer of the processing unit in the following parts, namely: A first acquisition unit that acquires the point cloud data from the measuring device as time-series data, A generation unit that generates stationary data representing a point cloud of stationary objects located within a predetermined range from the aforementioned time-series data, To make it function as, The generation unit selects the point furthest from the measuring device as the stationary data from among a plurality of reflection points measured at different times with the laser irradiated in a specific direction within the predetermined range. Computer program.