Obstacle detection device, obstacle detection method, and program
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-08-31
- Publication Date
- 2026-04-01
Smart Images

Figure 0007838709000003 
Figure 0007838709000004 
Figure 0007838709000005
Abstract
Description
Technical Field
[0005]
[0001] The present disclosure relates generally to an obstacle detection device, an obstacle detection method, and a non - transitory computer - readable storage medium.
Background Art
[0002] A computer system for detecting obstacles using a set of position data (e.g., an image or a depth image derived from LiDAR) indicating the positions of a plurality of points in a location has been developed. Patent Document 1 discloses a problem that a cleaning robot has difficulty detecting small objects, and provides a technique for a cleaning robot to detect small objects using 3D point clouds. Patent Document 2 discloses a method for detecting obstacles on a road using 3D point clouds.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0004] Regarding Patent Document 1, it is clear that a cleaning robot must detect any obstacle that hinders movement. Therefore, the cleaning robot is required to detect not only small objects but also objects other than small objects as obstacles. The method disclosed in Patent Document 2 does not consider the height of obstacles. The object of the present disclosure is to provide a novel technique for detecting obstacles using a set of position data.
Means for Solving the Problems
[0005] This disclosure provides an obstacle detection device comprising at least one memory configured for storing instructions and at least one processor. At least one processor is configured to execute instructions to obtain a location dataset containing multiple location data indicating the three-dimensional positions of points at a location; to detect a first subset from the location dataset containing multiple location data collectively representing the ground at the location; to determine the vertical position of the ground based on the vertical positions indicated by the multiple location data in the first subset; to detect one or more objects from the location dataset to generate a set of obstacle candidates; to calculate the height of each object in the set of obstacle candidates based on the vertical position of the object and the vertical position of the ground; and to exclude from the set of obstacle candidates any object whose height is greater than a height threshold.
[0006] This disclosure further provides an obstacle detection method which includes: obtaining a location dataset containing a plurality of location data indicating the three-dimensional positions of points at a location; detecting a first subset from the location dataset containing a plurality of location data collectively representing the ground at the location; determining the vertical position of the ground based on the vertical position indicated by the plurality of location data in the first subset; detecting one or more objects from the location dataset to generate a set of obstacle candidates; for each object in the set of obstacle candidates, calculating the height of the object based on the vertical position of the object and the vertical position of the ground; and excluding from the set of obstacle candidates any object whose height is greater than a height threshold.
[0007] The Disclosure further provides a non-temporary computer-readable storage medium for storing a program. The program causes the computer to: obtain a location dataset containing a plurality of location data indicating the three-dimensional positions of points at a location; detect a first subset from the location dataset containing a plurality of the location data collectively representing the ground at the location; determine the vertical position of the ground based on the vertical positions indicated by the plurality of location data in the first subset; detect one or more objects from the location dataset to generate a set of obstacle candidates; for each object in the set of obstacle candidates, calculate the height of the object based on the vertical position of the object and the vertical position of the ground; and exclude from the set of obstacle candidates any object whose height is greater than a height threshold. [Effects of the Invention]
[0008] This disclosure provides a novel technique for detecting obstacles using a set of location data. [Brief explanation of the drawing]
[0009] [Figure 1] This diagram shows an overview of the obstacle detection device according to Embodiment 1. [Figure 2] This is a block diagram showing an example of the functional configuration of the obstacle detection device of Embodiment 1. [Figure 3] This is a block diagram showing an example of a computer hardware configuration for realizing the obstacle detection device of Embodiment 1. [Figure 4] This flowchart shows an example of the processing flow of the obstacle detection device according to Embodiment 1. [Figure 5] This diagram shows an example of dividing the ground into sections based on section height. [Figure 6] This figure shows an example of dividing the ground into sections in a plan view using a predetermined window. [Modes for carrying out the invention]
[0010] Embodiments of the present disclosure will be described below with reference to the drawings. The same elements are assigned the same reference numerals throughout the drawings, and redundant descriptions will be omitted where necessary. Unless otherwise specified, predefined information (e.g., a predetermined value or threshold) is pre-stored in a memory accessible to the computer using that information. In the present disclosure, the memory may be implemented as one or more storage devices such as a hard disk, a solid-state drive (SSD), or random-access memory (RAM).
[0011] Embodiment 1 <Overview> Figure 1 shows an overview of the obstacle detection device 2000 in Embodiment 1. Note that Figure 1 does not limit the operation of the obstacle detection device 2000, but merely shows an example of the operations it can perform.
[0012] The obstacle detection device 2000 is configured to detect one or more obstacles within a target location 10 that tend to easily fall out of a person's line of sight. Such obstacles are small objects whose height is below a predetermined threshold (e.g., 10 cm, 50 cm, 1 m, etc.). Examples of small objects may be steps or pipes placed on the ground at the target location 10. Since small objects easily fall out of a person's line of sight and can cause accidents (e.g., falls), it is desirable to make them easily noticeable to people. Hereinafter, candidate obstacles to be detected may be referred to as "candidate obstacles." On the other hand, objects that are not so small (e.g., walls, buildings, or machinery) are easily within a person's line of sight and can be easily noticed by people without the need for a computer system.
[0013] Therefore, the obstacle detection device 2000 treats objects on the ground at the target location 10 whose height is greater than a predetermined threshold as outliers and excludes them from the list of obstacle candidates. To this end, the obstacle detection device 2000 may operate as follows.
[0014] The obstacle detection device 2000 acquires a position data set 20. The position data set 20 includes a plurality of position data 22. The position data 22 indicates the three-dimensional (3D) position of a point in the target location 10. In some embodiments, the position data set 20 may be referred to as a "3D point cloud".
[0015] The obstacle detection device 2000 detects the ground of the target location 10 from the position data set 20. Specifically, the obstacle detection device 2000 detects a first subset from the position data set 20. The first subset is a subset of the position data set 20 and includes a plurality of position data 22 that collectively represent the ground of the target location 10.
[0016] The ground of the target location 10 is the ground on which people move in the target location 10. The ground may be located inside a building or outside a building. In the former case, the ground may be the floor of an indoor facility, such as a factory or an office. In the latter case, the ground may be the ground of an outdoor facility, such as a substation.
[0017] The obstacle detection device 2000 determines the vertical position (or height) of the ground. In some embodiments, the obstacle detection device 2000 calculates the statistical value of the vertical positions (e.g., the z-coordinates indicated by the position data 22) of the position data 22 included in the first subset as the vertical position of the ground. Hereinafter, the vertical position of the ground may be referred to as the "ground level".
[0018] The obstacle detection device 2000 detects objects from the position data set 20 and generates a set of obstacle candidates called an "obstacle candidate set". Specifically, the obstacle detection device 2000 detects one or more second subsets from the position data set 20. The second subset is a subset of the position data set 20 and includes a plurality of position data 22 that collectively represent an object. The obstacle candidate set may be a set of the second subsets.
[0019] The obstacle detection device 2000 calculates the height of each object in the set of obstacle candidates based on the ground level and the vertical position of the object. For example, the obstacle detection device 2000 can calculate the difference between the vertical position of the object and the ground level as the height of the object. Note that the vertical position of the object can be the highest vertical position among all the position data 22 in the second subset corresponding to the object.
[0020] For each object in the set of obstacle candidates, the obstacle detection device 2000 determines whether the height of the object is greater than a predetermined threshold called the "height threshold". If it is determined that the height of the object is greater than the height threshold, the obstacle detection device 2000 excludes the object from the set of obstacle candidates. This means treating an object whose height is determined to be greater than the height threshold as an outlier. On the other hand, if it is determined that the height of the object is below the height threshold, the obstacle detection device 2000 does not exclude the object from the set of obstacle candidates.
[0021] <Examples of effects> In places such as factories and substations, it is important to ensure the safety of workers from obstacles that can cause accidents. Therefore, for example, it is useful to provide an alert to the worker when approaching an obstacle.
[0022] However, workers can easily notice tall objects such as walls and machines and do not need an alert to notice them. Furthermore, if even tall objects are treated as obstacles, workers may receive too many alerts, and the work of the workers may be disrupted by the alerts. Therefore, in some cases, it is preferably effective to treat only small objects as obstacles.
[0023] As described above, the obstacle detection device 2000 excludes objects whose height exceeds the height threshold from the set of potential obstacles. As a result of this exclusion, all objects included in the set of potential obstacles are below the height threshold. By performing obstacle detection on this set of potential obstacles, obstacles whose height is below the height threshold can be detected. Furthermore, it is possible to treat only small objects as targets for alerts, thereby providing effective alerts to people while preventing them from being distracted by less effective alerts.
[0024] Furthermore, the obstacle detection device 2000 determines the vertical height of the ground at the target location 10 based on the position dataset 20 and calculates the height of the object. Therefore, the obstacle detection device 2000 does not need to be installed at the same height as the sensor (e.g., LiDAR device or depth camera) used to generate the position dataset 20.
[0025] The obstacle detection device 2000 will be described in more detail below.
[0026] <Example of functional configuration> Figure 2 is a block diagram showing an example of the functional configuration of the obstacle detection device 2000 in Embodiment 1. The obstacle detection device 2000 includes an acquisition unit 2020, a ground level identification unit 2040, an object detection unit 2060, and an outlier exclusion unit 2080.
[0027] The acquisition unit 2020 acquires the location dataset 20. The ground level identification unit 2040 detects the ground at the target location 10 from the location dataset 20 and identifies the ground level. The object detection unit 2060 detects one or more objects from the location dataset 20 and generates a set of obstacle candidates. The outlier exclusion unit 2080 calculates the height of each object and determines whether the height of the object is greater than the height threshold. The outlier exclusion unit 2080 excludes objects whose height is determined to be greater than the height threshold from the set of obstacle candidates.
[0028] <Example hardware configuration> The obstacle detection device 2000 may be implemented by one or more computers. Each of these computers may be a dedicated computer manufactured specifically to implement the obstacle detection device 2000, or it may be a general-purpose computer such as a personal computer (PC), server machine, or mobile device.
[0029] The obstacle detection device 2000 may be implemented by installing an application on a computer. The application is a program that enables the computer to function as the obstacle detection device 2000. In other words, the program is an implementation of each functional part of the obstacle detection device 2000. There are various ways to obtain the program. For example, the program can be obtained from a pre-stored storage medium (DVD disc, USB memory, etc.). In another example, the program can be obtained by downloading it from a server machine that manages the storage medium on which the program is pre-stored.
[0030] Figure 3 is a block diagram showing an example of the hardware configuration of a computer 1000 that implements the obstacle detection device 2000 of Embodiment 1. In Figure 3, the computer 1000 includes a bus 1020, a processor 1040, a memory 1060, a storage device 1080, an input / output (I / O) interface 1100, and a network interface 1120.
[0031] Bus 1020 is a data transmission channel for the processor 1040, memory 1060, storage device 1080, input / output interface 1100, and network interface 1120 to send and receive data to and from each other. The processor 1040 is a processor such as a CPU (Central Processing Unit), GPU (Graphics Processing Unit), FPGA (Field-Programmable Gate Array), or DSP (Digital Signal Processor). Memory 1060 is a main memory element such as RAM (Random Access Memory) or ROM (Read Only Memory). Storage device 1080 is an auxiliary storage element such as a hard disk, SSD (Solid State Drive), or memory card. The input / output interface 1100 is an interface between the computer 1000 and peripheral devices such as a keyboard, mouse, or display device. The network interface 1120 is an interface between the computer 1000 and a network. The network may be a LAN (Local Area Network) or a WAN (Wide Area Network). Storage device 1080 may store the aforementioned program. The processor 1040 implements each functional unit of the obstacle detection device 2000 by executing a program.
[0032] The hardware configuration of computer 1000 is not limited to that shown in Figure 3. For example, as mentioned above, the obstacle detection device 2000 may be implemented by multiple computers. In this case, these computers may be connected to each other via a network.
[0033] <Process Flow> Figure 4 is a flowchart showing an example of the processing flow of the obstacle detection device 2000 according to Embodiment 1. The acquisition unit 2020 acquires the position data set 20 (S102). The ground level identification unit 2040 detects the ground at the target location 10 from the position data set 20 (S104). The ground level identification unit 2040 identifies the ground level (S106). The object detection unit 2060 detects one or more objects from the position data set 20 and generates an obstacle candidate set (S108).
[0034] Steps S110 to S118 constitute a loop process L1 that is executed for each object in the obstacle candidate set. In step S110, the obstacle detection device 2000 determines whether or not the loop process L1 has been performed for all objects in the obstacle candidate set. Obstacles The detection device 2000 terminates loop processing L1 when it has performed loop processing L1 for all objects in the obstacle candidate set. This completes the process shown in Figure 4. Meanwhile, Obstacles If the detection device 2000 has not yet performed loop processing L1 for all objects in the obstacle candidate set, it selects one of the objects for which loop processing L1 has not been performed. The object selected here is represented as "object i".
[0035] The outlier exclusion unit 2080 calculates the height of object i (S112). The outlier exclusion unit 2080 determines whether the height of object i is greater than the height threshold (S114). If the height of the object is greater than the height threshold (S114: yes), the outlier exclusion unit 2080 removes object i from the obstacle candidate set (S116). On the other hand, if the height of the object is less than or equal to the height threshold (S114: no), object i is not removed from the object candidate set. Step S118 marks the end of the current iteration of the loop L1. As a result, step S110 is executed again.
[0036] When the repeated execution of loop processing L1 is completed, the obstacle detection device 2000 can obtain a set of obstacle candidates that include only objects whose height is less than or equal to the height threshold.
[0037] Note that the processing flow performed by the obstacle detection device 2000 is not limited to that shown in Figure 4. For example, ground detection (S104) and ground level determination (S106) may be performed after or in parallel with object detection (S108).
[0038] <Acquisition of location dataset 20: S102> The acquisition unit 2020 acquires the location dataset 20 (S102). There are various ways to acquire the location dataset 20. In some embodiments, the acquisition unit 2020 can receive the location dataset 20 transmitted from another computer (such as a computer that generates the location dataset 20). In other embodiments, the location dataset 20 may be pre-stored in a storage unit accessed by the acquisition unit 2020. In this case, the acquisition unit 2020 reads the location dataset 20 from this storage unit.
[0039] There are various well-known methods for generating sets of data indicating the location of a place, such as 3D point clouds, and a location dataset 20 can be generated using one of these methods. For example, the location dataset 20 can be generated by measuring multiple points at a target location 10 using a sensor device (e.g., a LiDAR device or depth camera) that measures the distance from the device to multiple points in the scene.
[0040] <Ground detection: S104> The ground level identification unit 2040 detects the ground of the target location 10 from the location dataset 20 (S104). Specifically, as described above, the ground level identification unit 2040 detects a set of location data 22 that collectively represents the ground of the target location 10 as a first subset from the location dataset 20. Various methods are known for detecting a subset of location data that collectively represents the ground from a set of location data (e.g., a 3D point cloud), and any of these methods can be applied to the ground level identification unit 2040.
[0041] For example, the ground level determination unit 2040 can divide the position data set 20 into a plurality of subsets each including a plurality of position data 22 that collectively represent regions of the target location 10 by performing segmentation on the position data set 20. Here, the region of the target location 10 is a part of the target location 10 existing in the real world that is collectively represented by a plurality of position data 22 corresponding to the region. Next, the ground level determination unit 2040 selects one of the subsets that satisfies a predetermined characteristic of the ground as the first subset.
[0042] The predetermined characteristic of the ground may include (1) that the normal direction of the region represented by the subset is substantially parallel to the vertical direction, and (2) that the size of the region represented by the subset is the largest among all regions having characteristic (1). Note that there are various known methods for obtaining the normal vector of the region represented by the set of position data, and any of these methods can be applied to the ground level determination unit 2040.
[0043] It should also be noted that whether the normal direction of the region is substantially parallel to the vertical direction may be determined based on the angle A formed by the normal direction of the region and the vertical direction. Specifically, when |A| < Th1, it is determined that the normal direction of the region is substantially parallel to the vertical direction. Th1 is a predetermined threshold value and can be set to a value sufficiently close to 0. On the other hand, if |A| >= Th1, it is determined that the normal direction of the region is not substantially parallel to the vertical direction.
[0044] It should also be noted that the normal direction of the region can be calculated using the set of position data 22 that collectively represents the region. For example, the ground level determination unit 2040 can determine a plane that fits the set of position data 22 that collectively represents the region, and calculate the normal direction of that plane as the normal direction of the region.
[0045] In the example above, one of the subsets that satisfy a predetermined characteristic of the ground is selected as the first subset. However, in another example, the ground level identification unit 2040 may select two or more subsets that satisfy a predetermined characteristic of the ground, merge them into one, and provide it as the first subset. In this case, the predetermined characteristic of the ground may include (1) the normal direction of the area represented by the subset is substantially parallel to the vertical, and (2) the size of the area represented by the subset is greater than a predetermined value. One or more subsets that satisfy these characteristics are selected to belong to the first subset. In this case, one or more subsets are merged into one and provided as the first subset, i.e., the ground.
[0046] In another example, the ground level identification unit 2040 performs semantic segmentation on the location data 22. In this case, each subset of the location dataset 20, which collectively represents the area of the target location 10, is assigned one of a predetermined class. This allows the ground level identification unit 2040 to determine the subset to which the class "ground" is assigned as the first subset.
[0047] Various methods are known for performing semantic segmentation on a set of location data, and any of these methods can be applied to the ground level identification unit 2040. For example, the ground level identification unit 2040 may include a machine learning-based model, such as a neural network, that is configured to take a set of location data 22 as input and is trained to identify the class to which the region represented by the input data belongs.
[0048] <Ground level identification: S106> The ground level identification unit 2040 identifies the ground level (i.e., the vertical position of the ground) (S106). In some embodiments, the ground level identification unit 2040 can calculate statistical values of the vertical position of the position data 22 included in the first subset (i.e., the set of position data 22 that collectively represents the ground of the target location 10, as described above). Note that there are various types of statistical values that can be used to calculate the ground level, such as mean, maximum, minimum, or mode.
[0049] If we adopt the mean as the type of statistical value, the ground level can be calculated as follows: formula 1
number
[0050] Furthermore, the ground at the target location 10 may include two or more areas with sufficiently different levels. Therefore, the ground level identification unit 2040 may identify two or more ground levels for the ground at the target location 10. Specifically, the ground level identification unit 2040 may divide the ground at the target location 10 into two or more sections and determine the ground level for each section.
[0051] When the ground level identification unit 2040 divides the ground into two or more sections, it divides the first subset into two or more subsets that collectively represent the sections of the ground. The ground level identification unit 2040 can then calculate a statistical value of the vertical position of the position data 22 included in the subset of the first subset that collectively represents the section for each section. When the average is adopted as the type of statistical value, the ground level of the section can be calculated as follows. formula 2
number
[0052] There are various ways to divide the ground into sections. Some examples are described below.
[0053] <<Example 1>> The ground level identification unit 2040 can use a predetermined height for each section, called the "section height," to divide the ground into sections. The section height specifies the height of the section, i.e., the difference between the lowest vertical position and the highest vertical position within a single section.
[0054] Let v(p_l) be the level of the lowest level position data p_l included in the first subset, and let v(p_h) be the level of the highest level position data p_h included in the first subset. Furthermore, if the parcel height is S, the ground level identification unit 2040 can divide the range of vertical positions of the ground [v(p_l), v(p_h)] into intervals S to obtain multiple ranges of vertical positions {R1:[v(p_l), v(p_l)+S], R2:[v(p_l)+S, v(p_l)+2S],...,Rn:[v(p_l)+(n-1)*S, v(p_h)]}, where n is the number of obtained ranges. In some embodiments, the interval S may be defined based on a height threshold, for example, S=α*HT(0<α<1), where HT represents the height threshold.
[0055] Figure 5 shows an example of dividing the ground into sections based on section height. In Figure 5, the vertical position range of the ground is divided into four ranges: [v(p_l), v(p_l)+S], [v(p_l)+S, v(p_l)+2S], [v(p_l)+2S, v(p_l)+3S], and [v(p_l)+3S, v(p_h)]. Therefore, the ground is divided into four sections.
[0056] The ground level identification unit 2040 divides the first subset into sections by assigning one of the ranges of vertical positions that include the vertical position of each position data 22 of the first subset.
[0057] <<Example 2>> The ground level identification unit 2040 can divide the ground into sections in a plan view using a predetermined window. For example, the predetermined window may be pre-set to have a rectangular shape with predetermined x-direction length W and y-direction length H. In this case, the ground is divided into two or more sections that have a rectangular shape with x-direction length W and y-direction length H in a plan view.
[0058] Figure 6 shows an example of dividing the ground into planar sections using a predetermined window. In Figure 6, the ground 30 is divided into 5x6 sections using a predetermined window 40.
[0059] <<Example 3>> The ground level identification unit 2040 can divide the ground into sections based on its class (or type), for example, flat sections, uphill sections, downhill sections, etc. To do this, the ground level identification unit 2040 can perform semantic segmentation on a first subset to divide them into two or more subsets based on the section class. As described above, there are various well-known methods for performing semantic segmentation on a set of location data, and one of these methods can be applied to the ground level identification unit 2040 to perform semantic segmentation to divide the ground into sections.
[0060] <Object detection: S108> The object detection unit 2060 detects one or more objects from the location dataset 20 (S108). Specifically, the object detection unit 2060 detects one or more subsets of the location dataset 20 (i.e., a second subset) and generates an obstacle candidate set that includes the detected second subset. As described above, the second subset includes multiple location data 22 that collectively represent objects other than the ground. There are various methods for detecting objects from a set of location data, and one of them can be applied to the object detection unit 2060.
[0061] The obstacle detection device 2000 may detect objects from the entire location dataset 20, or from a portion of the location dataset 20. In the latter case, the obstacle detection device 2000 may identify a portion of the location dataset 20 as the target for object detection. In some cases, the target location 10 includes one or more areas that are inaccessible to people (e.g., areas occupied by machines). Small objects located in these areas may not need to be detected for the purpose of providing an alert to a person in response to their approach.
[0062] Therefore, the object detection unit 2060 can identify a sub-region of the target location 10, called the "target area," as the target for object detection. For example, the object detection unit 2060 can identify the range of a planar view area in which a person can enter. The range of this area can be defined by a pair of ranges in the x direction [x_min, x_max] and the y direction [y_min, y_max]. In this case, the object detection unit 2060 extracts all the position data 22 from the position dataset 20 where the x position is between x_min and x_max and the y position is between y_min and y_max, and obtains a set of position data 22 included in the target area. Then, the object detection unit 2060 detects an object from this set of position data 22.
[0063] The target area can be defined based on the extent of the ground at the target location 10 in a plan view. For example, let x_min be the minimum x position and x_max be the maximum x position of the position data 22 included in the first subset. Similarly, let y_min be the minimum y position and y_max be the maximum y position of the position data 22 included in the first subset.
[0064] The object detection unit 2060 may add buffers to the target region. Assume that the minimum and maximum x-positions of the position data 22 included in the first subset are x1 and x2, respectively. In this case, the object detection unit 2060 may set the buffer size in the x-direction to b1, and x1-b1 and x2+b1 to x_min and x_max, respectively. Similarly, assume that the minimum y-position of the position data 22 included in the first subset is y1 and the maximum y-position is y2. In this case, the object detection unit 2060 may set the buffer size in the y-direction to b2, and y1-b2 and y2+b2 to y_min and y_max, respectively.
[0065] <Exclusion of outliers: S112, S114, S116> The outlier exclusion unit 2080 excludes one or more outliers from the obstacle candidate set. Specifically, for each object in the obstacle candidate set, the outlier exclusion unit 2080 calculates the height of the object (S112), determines whether the height of the object is greater than the height threshold (S114), and if it determines that the height of the object is greater than the height threshold (S116), excludes the object (more specifically, a second subset corresponding to the object) from the obstacle candidate set.
[0066] The height of an object can be represented by the absolute value of the difference between the vertical position of the object and the ground level. Let the vertical position of the object be Vo and the ground level be Vg. In this case, the height of the object is the absolute value of the difference between Vo and Vg, which can be represented as |Vo - Vg|. If Vo > Vg, the object is a convex object, such as a step or a pipe. On the other hand, if Vo < Vg, the object can be a concave object, such as a hole or a drainage channel. Note that when Vo < Vg, the height of the object can also be referred to as the "depth" of the object.
[0067] As described above, the ground level may be specified for two or more sections of the ground. In this case, the outlier-removed external part 2080 calculates the height of the object based on the vertical position of the section corresponding to the object. Specifically, for each object, the outlier-removed external part 2080 identifies the section corresponding to that object. The section corresponding to the object is the section where the object is located. Then, the outlier-removed external part 2080 calculates the height of the object based on the vertical position of the identified section and the vertical position of the object.
[0068] <Obstacle Detection> After excluding outliers from the set of obstacle candidates, the obstacle detection device 2000 can determine whether each object in the set of obstacle candidates is an obstacle. Before determining whether an object is an obstacle, non-small objects (i.e., objects with a height greater than the height threshold) are excluded from the set of obstacle candidates, so that non-small objects can be prevented from being detected as obstacles.
[0069] There are various methods for determining whether an object is an obstacle. In some embodiments, the obstacle detection device 2000 can calculate the normal direction of each object and determine whether the normal direction of the object is substantially perpendicular to the vertical direction. If it is determined that the normal direction of the object is substantially perpendicular to the vertical direction, the obstacle detection device 2000 determines that the object is an obstacle. On the other hand, if the obstacle detection device 2000 determines that the normal direction of the object is not substantially perpendicular to the vertical direction, it determines that the object is not an obstacle.
[0070] Whether the normal direction of the object is substantially perpendicular to the vertical direction may be determined based on the angle B formed by the normal direction of the object and the vertical direction. Specifically, if |B - 90°| < Th2, it is determined that the normal direction of the object is substantially perpendicular to the vertical direction. Th2 is a predetermined threshold value and can be set to a value sufficiently close to 0. On the other hand, when |B - 90°| >= Th2, it is determined that the normal direction of the object is not substantially perpendicular to the vertical direction.
[0071] Here, the normal direction of the object can be calculated using the second subset corresponding to the object. For example, Obstacles The detection device 2000 can determine the plane of the object based on the distribution of the position data 22 within the second subset corresponding to the object, and calculate the normal direction of the plane as the normal direction of the object.
[0072] <Output from the obstacle detection device> The obstacle detection device 2000 may output information called "output information" related to the result of the processing performed by the obstacle detection device 2000. In some embodiments, the output information can indicate the obstacles detected by the obstacle detection device ********. Specifically, for each object determined to be an obstacle, the output information can include the second subset corresponding to the object.
[0073] Alternatively or additionally, the output information may include a set of obstacle candidates from which outliers have already been removed (i.e., objects with a height greater than the height threshold). In this case, the determination of whether each object in the set of obstacle candidates is an obstacle may be performed by another device that acquires the output information, rather than by the obstacle detection device 2000.
[0074] There can be various ways to output the output information. For example, the obstacle detection device 2000 may store the output information in the storage unit. In another example, the obstacle detection device 2000 may transmit the output information to any device. In another example, the obstacle detection device 2000 may output the output information to the display device so that the content of the output information is displayed on the display device.
[0075] <Examples of Obstacle Detection Applications> Obstacle detection results may be used to provide an alert to a person approaching the obstacle. Hereinafter, the device that provides this alert will be referred to as the "alert device."
[0076] The alert device can track the location of a person by repeatedly acquiring information called "person location information," which indicates the person's current location. The alert device also acquires information called "obstacle information," which indicates the location of each obstacle detected by the obstacle detection device 2000.
[0077] The alert device, upon acquiring person location information, determines whether the person is approaching an obstacle based on obstacle information and time-series person location information. For example, the alert device may identify the direction of movement of the person based on the time-series person location information. If there is an obstacle in this identified direction from the person's current position, and the distance between the obstacle and the person's current position is less than a predetermined threshold, the alert device determines that the person is approaching the obstacle. Otherwise, the alert device determines that the person is not approaching the obstacle.
[0078] If the system determines that a person is approaching an obstacle, it provides the person with an alert. The alert information should be helpful in helping the person avoid the approaching obstacle. For example, the alert information may indicate the location of the obstacle, the type of obstacle (e.g., a step or pipe), or the height of the obstacle.
[0079] Programs can be stored and provided to a computer using various types of non-transitory computer-readable media. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs, CD-Rs, CD-R / Ws, and semiconductor memory (e.g., mask ROMs, PROMs (Programmable ROMs), EPROMs (Erasable PROMs), flash ROMs, RAMs). Programs may also be provided to a computer using various types of transient computer-readable media. Examples of transient computer-readable media include electrical signals, optical signals, and electromagnetic waves. Transitory computer-readable media can be supplied to a computer via wired communication channels such as electric wires and optical fibers, or via wireless communication channels.
[0080] While the present disclosure has been described above with reference to embodiments, the present disclosure is not limited to the embodiments described above. Various modifications that will be understood by those skilled in the art can be made to the structure and details of the present disclosure within the scope of the present invention.
[0081] All or part of the embodiments described above may also be described as follows, without limitation. <Note> (Note 1) Obstacle detection device, At least one memory configured to store instructions, A system comprising at least one processor, wherein the at least one processor executes the instruction, Obtain a location dataset containing multiple location data indicating the 3D position of a point at the target location. From the aforementioned location dataset, a first subset is detected that includes multiple location data that collectively represent the ground of the target location. The vertical position of the ground is determined based on the vertical position indicated by the plurality of position data within the first subset, To generate a set of obstacle candidates, one or more objects are detected from the location dataset, For each object in the set of obstacle candidates, the height of the object is calculated based on the vertical position of the object and the vertical position of the ground. An obstacle detection device configured to exclude objects whose height is greater than a height threshold from the set of obstacle candidates. (Note 2) The obstacle detection device according to Appendix 1, wherein the determination of the vertical position of the ground includes calculating a statistical value of the vertical position indicated by the plurality of position data in the first subset as the vertical position of the ground. (Note 3) The identification of the vertical position of the ground is Dividing the aforementioned ground into two or more sections, An obstacle detection device according to Appendix 1 or 2, comprising: calculating the vertical position of each section of the ground based on the vertical position indicated by the plurality of position data that collectively represent the sections. (Note 4) The division of the ground is Identifying the lowest and highest vertical positions indicated by the plurality of position data within the first subset, The range between the lowest vertical position and the highest vertical position is divided into two or more height ranges at predetermined intervals, The obstacle detection device according to Appendix 3, comprising dividing the first subset into two or more subsets representing different sections of the ground based on two or more height ranges. (Note 5) The obstacle detection device according to Appendix 4, wherein the predetermined interval is proportional to the height threshold. (Note 6) The detection of the one or more objects is Identifying a sub-region of the target location based on the area of the ground in a plan view, An obstacle detection device according to Appendix 1 or 2, comprising detecting one or more objects from a set of position data indicating the location included in the partial region. (Note 7) Obtain a location dataset containing multiple location data indicating the 3D position of a point at the target location, From the aforementioned location dataset, a first subset is detected that includes multiple location data that collectively represent the ground of the target location. Identifying the vertical position of the ground based on the vertical position indicated by the plurality of position data within the first subset, To generate a set of obstacle candidates, one or more objects are detected from the location dataset, For each object in the set of candidate obstacles, the height of the object is calculated based on the vertical position of the object and the vertical position of the ground. A computer-based obstacle detection method, comprising excluding objects whose height is greater than a height threshold from the set of obstacle candidates. (Note 8) The method for detecting an obstacle according to Appendix 7, wherein the identification of the vertical position of the ground includes calculating a statistical value of the vertical position indicated by the plurality of position data in the first subset as the vertical position of the ground. (Note 9) The identification of the vertical position of the ground is Dividing the aforementioned ground into two or more sections, An obstacle detection method according to Appendix 7 or 8, comprising: calculating the vertical position of each section of the ground based on the vertical position indicated by the plurality of position data that collectively represent the sections. (Note 10) The division of the ground is Identifying the lowest and highest vertical positions indicated by the plurality of position data within the first subset, The range between the lowest vertical position and the highest vertical position is divided into two or more height ranges at predetermined intervals, The obstacle detection method according to Appendix 9, comprising dividing the first subset into two or more subsets representing different sections of the ground based on two or more height ranges. (Note 11) The obstacle detection method according to Appendix 10, wherein the predetermined interval is proportional to the height threshold. (Note 12) The detection of the one or more objects is Identifying a sub-region of the target location based on the area of the ground in a plan view, An obstacle detection method according to Appendix 7 or 8, comprising detecting one or more objects from a set of position data indicating the location included in the subregion. (Note 13) Obtain a location dataset containing multiple location data indicating the 3D position of a point at the target location, From the aforementioned location dataset, a first subset is detected that includes multiple location data that collectively represent the ground of the target location. Identifying the vertical position of the ground based on the vertical position indicated by the plurality of position data within the first subset, To generate a set of obstacle candidates, one or more objects are detected from the location dataset, For each object in the set of candidate obstacles, the height of the object is calculated based on the vertical position of the object and the vertical position of the ground. A non-temporary computer-readable storage medium containing a program that causes a computer to perform the following actions: excluding objects whose height is greater than a height threshold from the set of obstacle candidates. (Note 14) The storage medium according to Appendix 13, wherein the identification of the vertical position of the ground comprises calculating a statistical value of the vertical position indicated by the plurality of position data in the first subset as the vertical position of the ground. (Note 15) The identification of the vertical position of the ground is Dividing the aforementioned ground into two or more sections, The storage medium according to Appendix 13 or 14, which includes calculating the vertical position of each section of the ground based on the vertical position indicated by the plurality of position data that collectively represent the sections. (Note 16) The division of the ground is Identifying the lowest and highest vertical positions indicated by the plurality of position data within the first subset, The range between the lowest vertical position and the highest vertical position is divided into two or more height ranges at predetermined intervals, The storage medium according to Appendix 15, comprising dividing the first subset into two or more subsets representing different sections of the ground based on two or more height ranges. (Note 17) The storage medium as described in Appendix 16, wherein the predetermined interval is proportional to the height threshold. (Note 18) The detection of the one or more objects is Identifying a sub-region of the target location based on the area of the ground in a plan view, A storage medium according to appendix 13 or 14, comprising detecting one or more objects from a set of position data indicating locations included in the partial region. [Explanation of Symbols]
[0082] 10 Target locations 20 Location Datasets 22 Location data 30 ground 40 The designated window 1000 computers 1020 Bus 1040 processor 1060 memory 1080 storage device 1100 Input / Output Interface 1120 Network Interface 2000 Obstacle detection device 2020 Acquisition Department 2040 Ground level identification section 2060 Object Detection Unit 2080 Outlier exclusion section
Claims
1. Acquisition means for acquiring a location dataset including a plurality of location data indicating the three-dimensional position of a point at a target location, A ground level identification means that detects a first subset from the location dataset containing a plurality of location data that collectively represent the ground of the target location, and identifies the vertical position of the ground based on the vertical position indicated by the plurality of location data within the first subset, Object detection means for detecting one or more objects from the position dataset in order to generate a set of obstacle candidates, An obstacle detection device having outlier exclusion means for calculating the height of each object in the obstacle candidate set based on the vertical position of the object and the vertical position of the ground, and excluding objects whose height is greater than a height threshold from the obstacle candidate set.
2. The obstacle detection device according to claim 1, wherein the determination of the vertical position of the ground includes calculating a statistical value of the vertical position indicated by the plurality of position data in the first subset as the vertical position of the ground.
3. The identification of the vertical position of the ground is Dividing the aforementioned ground into two or more sections, An obstacle detection device according to claim 1 or 2, comprising: calculating the vertical position of each section of the ground based on the vertical position indicated by the plurality of position data that collectively represent the sections.
4. The division of the ground is Identifying the lowest and highest vertical positions indicated by the plurality of position data within the first subset, The range between the lowest vertical position and the highest vertical position is divided into two or more height ranges at predetermined intervals, Obstacle detection device according to claim 3, comprising dividing the first subset into two or more subsets representing different sections of the ground based on two or more height ranges.
5. The obstacle detection device according to claim 4, wherein the predetermined interval is proportional to the height threshold.
6. The detection of one or more objects is Identifying a sub-region of the target location based on the area of the ground in a plan view, An obstacle detection device according to claim 1 or 2, comprising detecting one or more objects from a set of position data indicating the positions included in the partial region.
7. An acquisition step to obtain a location dataset containing multiple location data indicating the three-dimensional position of a point at the target location, A ground level identification step involves detecting a first subset from the location dataset that includes a plurality of location data representing the ground of the target location collectively, and identifying the vertical position of the ground based on the vertical position indicated by the plurality of location data within the first subset. An object detection step to detect one or more objects from the location dataset in order to generate a set of obstacle candidates, A computer-based obstacle detection method, comprising: an outlier exclusion step of calculating the height of each object in the set of obstacle candidates based on the vertical position of the object and the vertical position of the ground, and excluding from the set of obstacle candidates any object whose height is greater than a height threshold.
8. The method for detecting an obstacle according to claim 7, wherein the identification of the vertical position of the ground includes calculating a statistical value of the vertical position indicated by the plurality of position data in the first subset as the vertical position of the ground.
9. An acquisition step to obtain a location dataset containing multiple location data indicating the three-dimensional position of a point at the target location, A ground level identification step involves detecting a first subset from the location dataset that includes a plurality of location data representing the ground of the target location collectively, and identifying the vertical position of the ground based on the vertical position indicated by the plurality of location data within the first subset. An object detection step to detect one or more objects from the location dataset in order to generate a set of obstacle candidates, A program that causes a computer to perform an outlier exclusion step for each object in the set of obstacle candidates, which involves calculating the height of the object based on the vertical position of the object and the vertical position of the ground, and excluding any object whose height is greater than a height threshold from the set of obstacle candidates.
10. The program according to claim 9, wherein the identification of the vertical position of the ground includes calculating a statistical value of the vertical position indicated by the plurality of position data in the first subset as the vertical position of the ground.
Citation Information
Patent Citations
Point cloud fusion method and device, computer equipment and storage medium
CN114676789A
Method, apparatus and storage medium for detecting small obstacles
EP3825903A1
Sensor processing system, distance measuring system, mobile object, sensor processing method, and program
JP2019179495A
Obstacle avoidance reminding method, electronic device and computer-readable storage medium thereof
US20200012869A1