Map version control for 3D point clouds
The method addresses outdated 3D map issues by initializing and updating a base map with detected differences, reducing memory and computational costs through efficient map version control for 3D point clouds.
Patent Information
- Application Number
- PCT/EP2024/065598
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-06
- Publication Date
- 2025-12-11
AI Technical Summary
Existing SLAM algorithms and commercial LiDAR mapping systems generate 3D maps that become outdated quickly due to environmental changes, leading to memory and computational inefficiencies, and lack effective map version control mechanisms for 3D point clouds.
A method for map version control that initializes a base map and updates it by detecting differences between subsequent 3D maps using metadata and spatial filters, saving only positive and negative differences to efficiently maintain and reconstruct previous session maps.
Reduces memory demand and computational costs by storing only changes between maps, enabling efficient reconstruction of historical maps and maintaining up-to-date base maps.
Smart Images

Figure EP2024065598_11122025_PF_FP_ABST
Abstract
Description
[0001] MAP VERSION CONTROL FOR 3D POINT CLOUDS
[0002] TECHNICAL FIELD
[0003] The present disclosure relates, in general, to map version control for three-dimensional (3D) point clouds and multi-session 3D maps. Aspects of the disclosure also relate to a map change detection framework.
[0004] BACKGROUND
[0005] A SLAM (Simultaneous Localization and Mapping) algorithm is a computational method used in robotics and autonomous systems to create a map of an unknown environment while simultaneously keeping track of the device's location within that map. This process involves using sensor data, such as from cameras, Light Detection and Ranging (LiDAR), or other range-finding devices, to build a comprehensive representation of the surrounding area while estimating the device’s position in real time.
[0006] In addition to the existing open-source SLAM algorithms that work with most LiDAR devices, various commercial mapping companies exist. These companies use custom-designed LiDAR mapping devices to perform mapping, as well as to create 3D maps on demand. However, the generated maps are accurate only at that time frame, i.e., the time at which the sensor data was collected. The resemblance of the map to the environment and representation accuracy may decrease as more changes are made to the environment. For example, a new road may be constructed, or a huge growth of grass / trees may occur, depending on the type of environment mapped. This issue arises because outdated and inaccurate maps can impede lifelong robot operation, potentially causing failures in the localisation and path planning algorithms.
[0007] Futuristic applications, such as augmented reality for navigation and immersive shopping experiences in shopping malls, require updated and accurate maps. However, maintaining and storing an updated 3D map is associated with a very large memory demand, as, typically, it involves storing multiple session 3D maps representing the environment at various points in time.
[0008] Each LiDAR mapping session typically generates a 3D map anywhere from 10 to 200 GB in size, depending on point cloud density. As such, the storage and handling of multiple session maps is extremely memory demanding.
[0009] SUMMARY
[0010] An objective of the present disclosure is to provide a memory -efficient mechanism for map version control.
[0011] The foregoing and other objectives are achieved by the features of the independent claims.
[0012] Further implementation forms are apparent from the dependent claims, the description and the Figures.
[0013] A first aspect of the present disclosure provides a method comprising receiving an initial three-dimensional (3D) map representing a state of the environment at a first point in time, initialising a base map based on the initial 3D map, wherein the base map represents a current state of the environment, receiving a further three-dimensional (3D) map representing the state of the environment at a second point in time, wherein the first point in time is different from the second point in time, detecting, based on metadata associated with the base map and metadata associated with the further 3D map, boundaries of the base map and boundaries of the further 3D map, wherein the metadata comprises boundary points, detecting differences between the base map and the further 3D map and storing information about the detected differences, and updating the base map based on the detected differences.
[0014] Accordingly, the changes between any two sessions can be easily identified, enabling reconstruction of any previous session map. Any desired historical changes can be easily viewed. Furthermore, by not saving every single one of the session maps, memory demand associated with storing the maps can be reduced, as no redundant maps are saved. The proposed solution is efficient in terms of not only memory, but also computation.
[0015] The method may further comprise receiving multiple further 3D maps representing the state of the environment at multiple future points in time, for each received further 3D map of the multiple further 3D maps, detecting boundaries of the further 3D map and detecting differences between the further 3D map and the base map, and updating the base map based on the detected differences.
[0016] Detecting the differences between the base map and the further 3D map may comprise processing, using a spatial filter, the base map and the further 3D map, whereby to identify a region unique to the base map, a region unique to the further 3D map, and a region shared between the base map and the further 3D map.
[0017] The base map and the further 3D map may each comprise multiple points associated therewith, and the processing, using the spatial filter, the base map and the further 3D map may comprise performing a radius search on each point of the multiple points associated with the base map with respect to the further 3D map, whereby to identify a first set of points and a second set of points, wherein the first set of points comprises at least one point of the multiple points associated with the base map having radial neighbours, wherein the first set of points corresponds to the region shared between the base map and the further 3D map, wherein the second set of points comprises at least one point of the multiple points associated with the base map not having radial neighbours, wherein the second set of points corresponds to the region unique to the base map, and performing another radius search on each point of the multiple points of the further 3D map with respect to the base map, whereby to identify a third set of points and a fourth set of points, wherein the third set of points comprises at least one point of the multiple points associated with the 3D map having radial neighbours, wherein the third set of points corresponds to the region shared between the base map and the further 3D map, wherein the fourth set of points comprises at least one point of the multiple points associated with the 3D map not having radial neighbours, wherein the fourth set of points corresponds to the region unique to the further 3D map.
[0018] Detecting the differences between the base map and the further 3D map may comprise identifying a set of negative differences by comparing the further 3D map and the second set of points, and identifying a set of positive differences by comparing the base map and the fourth set of points. Updating the base map based on the detected differences may comprise updating the base map by combining the first set of points or the third set of points, the second set of points, and the set of positive differences, and subtracting the set of negative differences.
[0019] Detecting the differences between the base map and the further 3D map may further comprise processing, using the spatial filter, the region unique to the base map and the region unique to the further 3D map, whereby to identify overlapping and non-overlapping regions of the region unique to the base map and the region unique to the further 3D map, respectively.
[0020] Processing, using the spatial filter, the region unique to the base map and the region unique to the further 3D map may comprise performing a radius search on each point of the second set of points with respect to the first set of points or the third set of points, whereby to identify a fifth set of points and a sixth set of points, wherein the fifth set of points comprises at least one point of the second set of points having radial neighbours, wherein the fifth set of points corresponds to the overlapping region of the region unique to the base map, wherein the sixth set of points comprises at least one point of the second set of points not having radial neighbours, wherein the sixth set of points corresponds to the non-overlapping region of the region unique to the base map, and performing another radius search on each point of the fourth set of points with respect to the first set of points or the third set of points, whereby to identify a seventh set of points and an eighth set of points, wherein the seventh set of points comprises at least one point of the fourth set of points having radial neighbours, wherein the seventh set of points corresponds to the overlapping region of the region unique to the further 3D map, wherein the eighth set of points comprises at least one point of the fourth set of points not having radial neighbours, wherein the eighth set of points corresponds to the non-overlapping region of the region unique to the further 3D map.
[0021] Detecting the differences between the base map and the further 3D map may comprise identifying a set of negative differences by comparing the further 3D map and the fifth set of points, and identifying a set of positive differences by comparing the base map and the seventh set of points.
[0022] Updating the base map based on the detected differences may comprise updating the base map by combining the first set of points or the third set of points, the sixth set of points, the eighth set of points, the fifth set of points and the set of positive differences, and subtracting the set of negative differences.
[0023] The method may further comprise reconstructing the further 3D map of the multiple 3D maps by subtracting the set of positive differences and adding the set of negative differences to the base map, until the base map corresponding to a desired point in time has been reached, and cropping the base map based on the detected boundaries.
[0024] The method may further comprise detecting changes between any two further 3D maps of the multiple further 3D maps by reconstructing two further 3D maps of the multiple further 3D maps and detecting the differences between the two further 3D maps of the multiple 3D maps. Identifying the set of positive differences and the set of negative differences may comprise applying a voxelchange detection algorithm.
[0025] A second aspect of the present disclosure provides a computer program stored on a non-transitory medium and including code instructions, which, when executed on more or more processors, cause the one or more processors to execute the method as described herein.
[0026] A third aspect of the present disclosure provides an apparatus comprising a processor, a memory coupled to the processor, the memory configured to store program code executable by the processor, the program code comprising one or more instructions, whereby to cause the apparatus to receive an initial three-dimensional, 3D, map representing a state of the environment at a first point in time, initialise a base map based on the first 3D map, wherein the base map represents a current state of the environment, receive a further three-dimensional, 3D, map representing the state of the environment at a second point in time, wherein the first point in time is different from the second point in time, detect, based on metadata associated with the base map and metadata associated with the further 3D map, boundaries of the base map and boundaries of the further 3D map, wherein the metadata comprises boundary points, detect differences between the base map and the further 3D map and store information about the detected differences, update the base map based on the detected differences.
[0027] These and other aspects of the disclosure will be apparent from the embodiment(s) described below.
[0028] BRIEF DESCRIPTION OF THE DRAWINGS
[0029] In order that the present disclosure may be more readily understood, embodiments of the disclosure will now be described, by way of example, with reference to the accompanying drawings, in which:
[0030] Fig. 1 is a flow chart of a method according to an example;
[0031] Fig. 2 is a flow chart of map change detection and map version control according to an example;
[0032] Fig. 3 is a flow chart of a method of map change detection according to an example;
[0033] Fig. 4 is a flow chart of a method of map change detection according to another example;
[0034] Fig. 5 is a flow chart of a method of map change detection according to another example;
[0035] Fig. 6 is a flow chart of a method of map change detection according to another example; and
[0036] Fig. 7 is a schematic representation of an apparatus according to an example.
[0037] DETAILED DESCRIPTION
[0038] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes herein described. It is important to understand that embodiments can be provided in many alternate forms and should not be construed as limited to the examples set forth herein.
[0039] Accordingly, while embodiments can be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. On the contrary, all modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.
[0040] The terminology used herein to describe embodiments is not intended to limit the scope. The articles “a,” “an,” and “the” are singular in that they have a single referent, however the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular can number one or more, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes,” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof.
[0041] Unless otherwise defined, all terms (including technical and scientific terms) used herein are to be interpreted as is customary in the art. It will be further understood that terms in common usage should also be interpreted as is customary in the relevant art and not in an idealized or overly formal sense unless expressly so defined herein.
[0042] A SLAM algorithm, a LiDAR-based 3D mapping system, or a camera / LiDAR devices with a 3D reconstruction algorithm can be used to create a 3D map of the environment. The term “session map” may refer to a map of the multiple maps of the same environment, the multiple maps created at different times. These session 3D maps essentially contain changes in the environment, natural or artificial, across multiple sessions. There is an overlapping region present across the session maps. Furthermore, the session maps can be aligned into a single global coordinate frame using a multi-session map alignment algorithm.
[0043] A version control system, instead of saving every file, only saves the changes between the tiles. The system enables the user to go back to any previous version or retrieve changes between two versions. As such, all the previous changes / versions are preserved by the system. The version control system saves the data in an efficient manner, i.e., only saving the changes between any two versions, instead of saving complete files. The most widely used version control system is Git. Unfortunately, Git only works on text files and does not support any other data formats, as its change detection algorithm cannot identify the changes in data other than text.
[0044] While version control systems for 3D point clouds have been developed, their control systems suffer from a number of issues. Firstly, existing version control systems for 3D point clouds operate using only one 3D point cloud as input. In other words, the session 3D maps are essentially a result of filtering or sampling process over the first point cloud. This causes an issue for real-world applications, where the session maps cannot be created purely using a filtering / sampling process on the first point cloud. Secondly, if there are two session 3D maps, the existing control systems require that the 3D points representing the same location globally / geographically must have the same index. If the same 3D point in two session maps contains different index, then the existing control systems do not work on such data / 3D maps. Furthermore, concerning change detection, the results of a rangeimage based algorithm to detect dynamic points are too noisy for use with 3D point clouds. In the existing solutions, the differences between the two maps are typically determined on a per keyframe basis, rather than per a session map, making it less efficient. Additionally, none of the developed solutions concern themselves with map change detection for the purpose of map version control in particular.
[0045] According to an example, there is provided a mechanism for providing map version control for 3D point clouds. A mechanism for efficient change detection between two session maps is also provided. Advantageously, the mechanism maintains and updates a single base map that gets updated based on subsequent session maps, only saving the positive / negative differences and metadata required to enable reconstruction / restoration of previous session 3D maps. Furthermore, the map change detection works in tandem with the map version control. The type of changes to be detected between two session maps can be easily defined and obtained, ensuring efficient operation of the map version control mechanism.
[0046] Additionally, there can be synthetic point clouds which are sometimes used in the medical industry, biotechnology, construction, or the gaming industry. These 3D point clouds can be acquired using specific apparatus or sensors. The proposed method can be applied to 3D point clouds from all these various domains, and is not limited to 3D maps of environments. In the context of this method, changes or session maps occur when a user manipulates the input or initial 3D map using software or by applying any point cloud altering, filtering, or modifying algorithm to generate a second or new point cloud. Alternatively, this second point cloud may result from a new capture at different points in time. For example, in the medical industry, this method could be used to identify how the size of a tumour has changed over time. Thus, this method can be applied to any generic 3D point clouds, where the changes can be manually induced or can result from a new capture.
[0047] Examples in the present disclosure can be provided as methods, systems or machine-readable instructions, such as any combination of software, hardware, firmware or the like. Such machine-readable instructions may be included on a computer readable storage medium (including but not limited to disc storage, CD-ROM, optical storage, etc.) having computer readable program codes therein or thereon.
[0048] The present disclosure is described with reference to flow charts and / or block diagrams of the method, devices and systems according to examples of the present disclosure. Although the flow diagrams described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. In some examples, some blocks of the flow diagrams may not be necessary and / or additional blocks may be added. It shall be understood that each flow and / or block in the flow charts and / or block diagrams, as well as combinations of the flows and / or diagrams in the flow charts and / or block diagrams can be realized by machine readable instructions.
[0049] The machine-readable instructions may, for example, be executed by a machine such as a general-purpose computer, user equipment such as a smart device, e.g., a smart phone, a special purpose computer, an embedded processor or processors of other programmable data processing devices to realize the functions described in the description and diagrams. In particular, a processor or processing apparatus may execute the machine-readable instructions. Thus, modules of apparatus (for example, a module implementing a comparator unit, or a firewall structure and so on) may be implemented by a processor executing machine readable instructions stored in a memory, or a processor operating in accordance with instructions embedded in logic circuitry. The term 'processor' is to be interpreted broadly to include a CPU, processing unit, ASIC, logic unit, or programmable gate set etc. The methods and modules may all be performed by a single processor or divided amongst several processors.
[0050] Such machine-readable instructions may also be stored in a computer readable storage that can guide the computer or other programmable data processing devices to operate in a specific mode. For example, the instructions may be provided on a non-transitory computer readable storage medium encoded with instructions, executable by a processor.
[0051] Fig. 1 is a flow chart of a method according to an example. The method comprises, in block 101, receiving an initial three-dimensional (3D) map representing a state of the environment at a first point in time. The map may comprise a 3D point cloud. Here, the term “point cloud” may refer to a collection of data points defined in a three- dimensional coordinate system. These points may represent the external surface of an object or environment, captured via a 3D scanning technology, such as LiDAR. Each point in the cloud may be characterised using its own set of coordinates (x, y, z) and may include additional information like colour or intensity. The environment may comprise, for example, an urban environment, or a wild environment, such as a forest or similar. The state of the environment may refer to, for example, positioning of particular objects in the environment at the time the 3D point cloud was generated / obtained.
[0052] In block 102, the method comprises initialising a base map based on the initial 3D map, wherein the base map represents a current state of the environment. In other words, the map version control system may initialise the base map using the first incoming session map. The base map may be updated accordingly, such that it reflects the current state of the environment, derived based on information acquired from all session maps.
[0053] The method comprises, in block 103, receiving a further three-dimensional (3D) map representing the state of the environment at a second point in time, wherein the first point in time is different from the second point in time. In other words, the further 3D map is a 3D map of the same environment, taken at a later point than the initial 3D map. The method may comprise receiving multiple further 3D maps representing the state of the environment at multiple (future or past) points in time. The further 3D map may also be referred to as a” session map”.
[0054] In block 104, the method comprises detecting, based on metadata associated with the base map and metadata associated with the further 3D map, boundaries of the base map and boundaries of the further 3D map. The metadata comprises boundary points. The metadata may also comprise additional information, such as RGB data, as well as other 3D information that can be helpful for additional features / applications, such as reconstructing base map at different points in time. Here, “boundary points” may refer to the points that define the edges or limits of a mapped area or object in a 3D space. These points may delineate the contours and extents of the structures within the map, providing a clear demarcation between different regions or objects. By detecting the boundaries of the base map and the session map, the reconstruction of previous session maps can be achieved. The boundaries may be calculated using a convex hull or concave hull filter from a Point Cloud Library (PCL), or any other suitable techniques for boundary point detection. For multiple session maps, the method may comprise performing boundary detection for each one of the multiple session maps.
[0055] The method comprises, in block 105, detecting differences between the base map and the further 3D map, and storing information about the detected differences. The exact mechanism for detecting the differences will be described in more detail in relation to Figs. 3-6. For multiple session maps, each of session maps may be individually compared to the base map, whereby to identify a set of differences associated with the base map and each individual session map.
[0056] Detecting the differences may comprise identifying positive differences and negative differences between the base map and the further 3D map. Positive differences between the base map and the further 3D map may refer to elements or features present in the further 3D map that are absent in the base map. These could include newly added objects, structures, or modifications in the environment that were not previously captured. Positive differences may indicate changes such as construction, new installations, or growth in the mapped area. Negative differences, on the other hand, refer to elements or features present in the base map that are missing in the further 3D map. That is, these differences represent the removal or absence of previously existing objects or structures. Negative differences may highlight changes like demolition, removal of objects, or natural degradation in the environment.
[0057] Detecting the differences between the base map and the further 3D map may comprise processing the base map and the further 3D map using a spatial filter, whereby to identify a region unique to the base map, a region unique to the further 3D map, and a region shared between the base map and the further 3D map. This is shown in figure 3, which is a flow chart of a method of map change detection according to an example. The base map 301 and the session map 302 may be processed using a spatial filter, whereby to identify the region unique to the base map 303, the shared region 304, and the region unique to the session map 305.
[0058] A first radius search 310 may be performed for each base map 301 point in the session map, classifying points having radial neighbours as points in the shared region 304, and those without radial neighbours as points in the region unique to the base map 303. Similarly, a radius search may be performed for each session map 302 point in the base map 301, classifying points having radial neighbours as points in the shared region 304, and those without radial neighbours as points in the region unique to the session map 305. As a result, two sets of points classified as belonging to the shared region may be obtained. The two sets of points may be very similar, if not identical, such that any of the two sets of points may be selected to represent the shared region.
[0059] A second radius search 320 may be performed for each point in the region unique to the base map 303 in the shared region 304, classifying points having radial neighbours as base overlap 307, and those without radial neighbours as base non-overlap 306. Here, the terms “overlap / non-overlap” refer to a region of the base map overlapping with a region of the session map, and vice versa. The process may be repeated for each point unique to the session map 305 in the shared region 304, classifying points having radial neighbours as session overlap 308, and points without radial neighbours as session non-overlap 309. The second radius search enables precise identification of regions of changes as overlapping and non-overlapping regions, which greatly reduces the memory demands and computational costs of the following processing steps of the map change detection mechanism.
[0060] To perform change detection, 2D bird-eye-view (BEV) descriptors may be generated. Bird-eye-view descriptors are representations of an environment or scene from an overhead perspective, similar to a view from a bird flying above. These descriptors typically simplify and encode spatial information into a two-dimensional plane, capturing the layout and relative positions of objects and features within the area. BEV descriptors may encode height as a pixel value, based on the region unique to the session map 305 and the base overlap 307, identifying a set of negative changes as ND(t). The same BEV approach may be used to identify a set of positive changes as PD(t+f), based on the session overlap 308 and the base map 301.
[0061] Advantageously, through the use of BEV descriptors, a direct comparison of two point clouds in 3D voxel space can be avoided, saving computational costs. Voxelisation is the process of converting a 3D space or object into a regular grid of small, cube-shaped units called voxels (volumetric pixels). In order to decrease the memory load and the computational load for large-scale 3D maps, the point cloud may be voxelised and projected into 2D grips, where the pixel value is the maximum of z in the current voxel. Changes may be detected by computing a difference between the two voxels.
[0062] The negative difference may be associated with the current base map as base ND(t), and the positive differences may be associated with the session map as session PD(t+l), aligning them with their time indexes, t and t+1, for intuitive understanding and consistent version control. In indoor car parking scenarios, multi-layered 2D BEV descriptors may be used to detect changes across layers. Overall, the map change detection may operate on an aligned base map and the session map, identifying coexisting areas, refining them into overlapping and nonoverlapping regions, and employing 2D BEV descriptors to discern positive and negative changes.
[0063] Referring back to Fig. 1, in block 106, the method comprises updating the base map based on the detected differences. As described in more detail later in the specification, this enables the user not only to acquire the most up-to-date base map, covering all the latest map state / information existing in the received session map, but also to check the history of maps and roll back to any previous map.
[0064] Fig. 2 is a flow chart of map change detection and map version control according to an example. The method may comprise receiving an input 201, the input comprising a base map (representing the state of the environment at time t) and a further 3D map (representing the state of the environment at time t+1, i.e., a time different from time t). A map change detection module 202 may detect the differences between the base map and the further 3D map. As a result, a set of differences 203 may be identified, the set of differences 203 comprising a set of positive differences and a set of negative differences. The negative changes in base map (t) may be denoted as ND(t), whereas the positive changes in the session map may be denoted as PD(t+l). ND(t) may denote 3D map data that was present in the base map (t) but is not present in the session map (t+1), whereas PD(t+l) may denote new 3D data that appeared in the session map (t+1) and was absent in the base map (t). The identified set of differences 203 may be stored in memory 204, along other difference sets. This is important, as the system may receive multiple session maps (i.e., not just a single 3D map) representing the state of the environment at, for example, times t+2, t+3, ... t+n. In order to enable the reconstruction of former session maps, as well as to recall changes between any two chosen input sessions, the sets of differences associated with any two maps (for example, the base map and the further 3D map) may be stored in the memory 204 for later retrieval. At the same time, the boundary detection module 209 may detect boundaries of any of the 3D maps, whereby to obtain a set of boundary points 210 associated with the particular map.
[0065] The identified set of differences 203 may be used to facilitate forward progression of the map control by a map version control module 205, i.e., to update the base map 206 based on an incoming session map, such that the base map now reflects the state of the environment at time t+1. The map version control module 205 may also be used to facilitate backward progression of the map control. In other words, the map version control module 205 may enable reconstruction of previous session maps, such as a session map 208 at time k, by updating the base map 206 based on a corresponding set of differences stored in the memory 204, as well as the boundary points 210.
[0066] With each new incoming session map, the map change detection module 202 may identify a set of positive changes and a set of negative changes between the base map and the incoming session map. With each new session map, the latest base map may be updated using the below formula.
[0067] Base map (t + 1)
[0068] = region shared between the base map and the session map
[0069] + region unique to the base map + region unique to the session map
[0070] + base overlap - set of negative differences + set of positive differences
[0071] In order to reconstruct / recover any previous session map, backward progression may be performed. To reconstruct the session map (k) 208, the set of negative differences may be added to the base map, and the set of positive differences may be subtracted from the base map. The addition / subtraction may be performed iteratively, until the base map at time t=k is reached. At time t=k, the stored boundary points of the session map (k) may be used to crop the region out from the reconstructed base map, resulting in the reconstructed session map (k). This backward progression may be represented mathematically using the below formula:
[0072] Retrieving changes between any two session maps may comprise reconstructing both session maps using the above formula and then performing map change detection as described herein, thereby identifying the differences between the two session maps.
[0073] Fig. 4 is a flow chart of a method of map change detection according to another example. Fig. 4 is largely based on Fig. 3. The same elements are denoted using the same reference numerals and function likewise. In comparison to the embodiment shown in Fig. 3, in Fig. 3, only one spatial filter layer is present. As described above in relation to Fig. 3, a radius search may be performed for each base map 301 point in the session map, classifying points having radial neighbours as points in the shared region 304, and those without radial neighbours as points in the region unique to the base map 303. Similarly, a radius search may be performed for each session map 302 point in the base map 301, classifying points having radial neighbours as points in the shared region 304, and those without radial neighbours as points in the region unique to the session map 305.
[0074] In Fig. 4, the BEV descriptors may be generated based on the region unique to the session map 305 and the base map 301, identifying a set of positive changes as PD(t+f), as well as based on the region unique to the base map 301 and the session map 302, identifying a set of negative changes as ND(t).
[0075] With the change in the number of spatial filter layers, the forward progression to update the base map may be represented as:
[0076] Base map (t + 1)
[0077] = region shared between the base map and the session map
[0078] + region unique to the base map + set of positive differences
[0079] — set of negative differences
[0080] The above change does not impact the method of reconstructing the session map or the functionality of retrieving changes between any two sessions.
[0081] Fig. 5 is a flow chart of a method of map change detection according to another example. Fig. 5 is also largely based on Fig. 3. The same elements are denoted using the same reference numerals and function likewise. In comparison to the embodiments shown in Figs. 3 and 4, no BEV descriptors are generated / used. Although BEV- descriptor-based map change detection is highly efficient and accurate, the process is computationally expensive, as the process includes a map projection onto a principal plane. Instead, in the embodiment of Fig. 5, voxel-based change detection is utilised. Similarly to the embodiment shown in Fig. 4, only one spatial filter is present. The spatial filter classifies points into different and coexisting regions. Following the classification, the region unique to the session map 305, the region unique to the base map 303, the base map 301 and the session map 302 may be processed by a voxel-based change detection algorithm. By traversing all the voxels in the detected regions and comparing them, a set of positive differences and a set of negative differences may be identified.
[0082] Fig. 6 is a flow chart of a method of map change detection according to another example. Again, Fig. 6 is largely based on Fig. 3, and the same elements are denoted using the same reference numerals and function likewise. In the embodiment of Fig. 6, a voxel-based comparison is employed to detect the set of positive differences, the set of negative differences, as well as the shared region and the unique regions, based on the base map 301 and the session map 302. While a voxel-based comparison is computationally expensive, as it may involve detected changes in every single voxel, the advantage thereof is that it can directly identify all changes present between two maps. The outputs of the voxel-based comparison algorithm can be utilised by the map version control mechanism described herein.
[0083] Fig. 7 is a schematic representation of an apparatus according to an example. The apparatus 700 comprises a processor 703, and a memory 705 coupled to the processor 703 and configured to store instructions or program code 707, executable by the processor 703. The apparatus 700 comprises the program code 707 arranged to cause the apparatus to perform the method described herein.
[0084] According to an example, machine-readable instructions can be loaded onto a computer or other programmable data processing devices, so that the computer or other programmable data processing devices perform a series of operations to produce computer-implemented processing, thus the instructions executed on the computer or other programmable devices provide an operation for realizing functions specified by flow(s) in the flow charts and / or block(s) in the block diagrams.
[0085] Further, the teachings herein may be implemented in the form of a computer or software product, such as a non- transitory machine-readable storage medium, the computer software or product being stored in a storage medium and comprising a plurality of instructions, e.g., machine readable instructions, for making a computer device implement the methods recited in the examples of the present disclosure.
[0086] In some examples, some methods can be performed in a cloud-computing or network-based environment. Cloudcomputing environments may provide various services and applications via the Internet. These cloud-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessible through a web browser or other remote interface of the user equipment for example. Various functions described herein may be provided through a remote desktop environment or any other cloud-based computing environment.
[0087] While various embodiments have been described and / or illustrated herein in the context of fully functional computing systems, one or more of these exemplary embodiments may be distributed as a program product in a variety of forms, regardless of the particular type of computer-readable-storage media used to actually carry out the distribution. The embodiments disclosed herein may also be implemented using software modules that perform certain tasks. These software modules may include script, batch, or other executable files that may be stored on a computer-readable storage medium or in a computing system. In some embodiments, these software modules may configure a computing system to perform one or more of the exemplary embodiments disclosed herein. In addition, one or more of the modules described herein may transform data, physical devices, and / or representations of physical devices from one form to another.
[0088] The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the instant disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the instant disclosure.
Claims
CLAIMS1. A method comprising: receiving an initial three-dimensional, 3D, map representing a state of the environment at a first point in time (ioi); initialising a base map based on the initial 3D map, wherein the base map represents a current state of the environment (102); receiving a further three-dimensional, 3D, map representing the state of the environment at a second point in time, wherein the first point in time is different from the second point in time (103); detecting, based on metadata associated with the base map and metadata associated with the further 3D map, boundaries of the base map and boundaries of the further 3D map, wherein the metadata comprises boundary points (104); detecting differences between the base map and the further 3D map and storing information about the detected differences (105); and updating the base map based on the detected differences (106).
2. The method of claim 1, further comprising: receiving multiple further 3D maps representing the state of the environment at multiple future points in time; for each received further 3D map of the multiple further 3D maps, detecting boundaries of the further 3D map and detecting differences between the further 3D map and the base map; and updating the base map based on the detected differences.
3. The method of claim 1 or 2, wherein detecting the differences between the base map and the further 3D map (105) comprises: processing, using a spatial filter, the base map and the further 3D map, whereby to identify a region unique to the base map, a region unique to the further 3D map, and a region shared between the base map and the further 3D map.
4. The method of claim 3, wherein the base map and the further 3D map each comprises multiple points associated therewith, wherein the processing, using the spatial filter, the base map and the further 3D map comprises: performing a radius search on each point of the multiple points associated with the base map with respect to the further 3D map, whereby to identify a first set of points and a second set of points, wherein the first set of points comprises at least one point of the multiple points associated with the base map having radial neighbours, wherein the first set of points corresponds to the region shared between the base map and the further 3D map, wherein the second set of points comprises at least one point of the multiple points associated with the base map not having radial neighbours, wherein the second set of points corresponds to the region unique to the base map; and performing another radius search on each point of the multiple points of the further 3D map with respect to the base map, whereby to identify a third set of points and a fourth set of points,wherein the third set of points comprises at least one point of the multiple points associated with the 3D map having radial neighbours, wherein the third set of points corresponds to the region shared between the base map and the further 3D map, wherein the fourth set of points comprises at least one point of the multiple points associated with the 3D map not having radial neighbours, wherein the fourth set of points corresponds to the region unique to the further 3D map.
5. The method of claim 4, wherein detecting the differences between the base map and the further 3D map (105)comprises: identifying a set of negative differences by comparing the further 3D map and the second set of points; and identifying a set of positive differences by comparing the base map and the fourth set of points.
6. The method of claim 5, wherein updating the base map based on the detected differences (106) comprises: updating the base map by combining the first set of points or the third set of points, the second set of points, and the set of positive differences, and subtracting the set of negative differences.
7. The method of any one of claims 2 to 4, wherein detecting the differences between the base map and the further 3D map (105) further comprises: processing, using the spatial filter, the region unique to the base map and the region unique to the further 3D map, whereby to identify overlapping and non-overlapping regions of the region unique to the base map and the region unique to the further 3D map, respectively.
8. The method of claim 7, wherein processing, using the spatial filter, the region unique to the base map and the region unique to the further 3D map comprises: performing a radius search on each point of the second set of points with respect to the first set of points or the third set of points, whereby to identify a fifth set of points and a sixth set of points, wherein the fifth set of points comprises at least one point of the second set of points having radial neighbours, wherein the fifth set of points corresponds to the overlapping region of the region unique to the base map, wherein the sixth set of points comprises at least one point of the second set of points not having radial neighbours, wherein the sixth set of points corresponds to the non-overlapping region of the region unique to the base map; and performing another radius search on each point of the fourth set of points with respect to the first set of points or the third set of points, whereby to identify a seventh set of points and an eighth set of points, wherein the seventh set of points comprises at least one point of the fourth set of points having radial neighbours, wherein the seventh set of points corresponds to the overlapping region of the region unique to the further 3D map,wherein the eighth set of points comprises at least one point of the fourth set of points not having radial neighbours, wherein the eighth set of points corresponds to the non-overlapping region of the region unique to the further 3D map.
9. The method of claim 8, wherein detecting the differences between the base map and the further 3D map (105) comprises: identifying a set of negative differences by comparing the further 3D map and the fifth set of points; and identifying a set of positive differences by comparing the base map and the seventh set of points.
10. The method of claim 9, wherein updating the base map based on the detected differences (106) comprises: updating the base map by combining the first set of points or the third set of points, the sixth set of points, the eighth set of points, the fifth set of points and the set of positive differences, and subtracting the set of negative differences.
11. The method of any one of claims 2 to 6 or 7 to 10, further comprising: reconstructing the further 3D map of the multiple 3D maps by subtracting the set of positive differences and adding the set of negative differences to the base map, until the base map corresponding to a desired point in time has been reached; and cropping the base map based on the detected boundaries.
12. The method of claim 11, further comprising: detecting changes between any two further 3D maps of the multiple further 3D maps by reconstructing two further 3D maps of the multiple further 3D maps and detecting the differences between the two further 3D maps of the multiple 3D maps.
13. The method of any one of claims 5-6 or claims 9-10, wherein identifying the set of positive differences and the set of negative differences comprises generating bird-eye view descriptors.
14. The method of any one of claims 5-6 or claims 9-10, wherein identifying the set of positive differences and the set of negative differences comprises applying a voxel-change detection algorithm.
15. A computer program stored on a non-transitory medium and including code instructions, which, when executed on more or more processors, cause the one or more processors to execute the method of any of claims 1 to 14.
16. An apparatus (700) comprising: a processor (701); a memory (702) coupled to the processor (701), the memory (702) configured to store program code (703) executable by the processor, the program code (703) comprising one or more instructions, whereby to cause the apparatus to: receive an initial three-dimensional, 3D, map representing a state of the environment at a first point in time; initialise a base map based on the first 3D map, wherein the base map represents a current state of the environment; receive a further three-dimensional, 3D, map representing the state of the environment at a second point in time, wherein the first point in time is different from the second point in time; detect, based on metadata associated with the base map and metadata associated with the further 3D map, boundaries of the base map and boundaries of the further 3D map, wherein the metadata comprises boundary points; detect differences between the base map and the further 3D map and store information about the detected differences; update the base map based on the detected differences.
Citation Information
Patent Citations
Removal of ephemeral points from point cloud of a high-definition map for navigating autonomous vehicles
US20200217964A1
Systems and methods for effecting map layer updates based on collected sensor data
US20210406559A1