Method, computing device and computer program for generating line map based on lidar sensor data for autonomous driving
Patent Information
- Application Number
- KR1020250206290
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-12-22
- Publication Date
- 2026-08-11
- Estimated Expiration
- 2045-12-22
Smart Images

Figure 112025145059847-PAT00001_ABST
Abstract
Description
Technology Field
[0001] Various embodiments of the present disclosure relate to a method for generating a line map based on LiDAR sensor data for autonomous driving, a computing device, and a computer program. Background Technology
[0002] To enhance the convenience of vehicle users, there is a growing trend of equipping vehicles with various sensors and electronic devices (e.g., Advanced Driver Assistance Systems (ADAS); in particular, active technological development is underway for autonomous driving systems that recognize the surrounding environment without driver intervention and automatically drive to a given destination based on that environment.
[0003] An autonomous vehicle refers to a vehicle equipped with an autonomous driving system that perceives the surrounding environment without driver intervention and automatically drives to a given destination based on the perceived environment; the autonomous driving system function refers to performing positioning, perception, prediction, planning, and control for autonomous driving.
[0004] The autonomous driving system detects objects located around the autonomous vehicle by processing point cloud data acquired through sensors (e.g., LiDAR sensors) through a perception process, and establishes a driving plan, such as the route and speed of the autonomous vehicle, by receiving perception results (e.g., information on the location, attitude, and speed of objects) derived from performing the perception process through a planning process.
[0005] The aforementioned background technology is one that the inventor possessed or acquired in the process of deriving the content of the present disclosure, and it cannot be considered as prior art disclosed to the general public prior to the filing of this application. The problem to be solved
[0006] Unlike simple navigation maps, the precision maps required to control autonomous vehicles refer to map data that represents various information, such as road lane structures, curbs, signs, traffic lights, crosswalks, and road markers, with centimeter-level precision.
[0007] These precision maps play a key role in the perception, judgment, and control stages of autonomous driving systems. For example, they serve as a reference for measuring the vehicle's position and attitude in positioning, or they can maintain driving stability by utilizing various information stored in the precision maps even in situations where perception from sensor data is unstable (e.g., snow, rain, fog, night, changes in light intensity, etc.).
[0008] As such, while precision maps are a core foundational technology that enhances and guarantees the stability of autonomous driving, there are limitations in that building and updating such maps can require significant time and cost.
[0009] Generally, since precision maps are produced by collecting data while driving on roads with survey vehicles equipped with expensive LiDAR sensors, and then having experts (at least educated and trained workers) manually label lanes, signs, road structures, etc. based on this data, there is a problem in that map construction requires excessive time and cost.
[0010] In addition, periodic updates are necessary due to frequent environmental changes such as road construction, lane changes, and signal system reorganizations; however, since such manual updates require a large workforce and significant costs, there is a problem in that updates in response to environmental changes are difficult to carry out quickly.
[0011] Consequently, the speed of constructing precision maps acts as a major factor limiting the regional scalability of autonomous driving services. In particular, since the precision map of a region must be completed first to introduce autonomous driving services to a new area, there is a problem that the longer the construction of the precision map is delayed, the more the expansion of the service is also delayed.
[0012] Accordingly, the problem that the present disclosure aims to solve is to provide a method for generating a line map based on LiDAR sensor data for autonomous driving, a computing device, and a computer program that can significantly reduce the existing manual-based precision map production process, thereby reducing the cost and time required for precision map construction and greatly improving the scalability of autonomous driving service areas, by automatically generating a line map including geometric elements such as road lanes and boundary lines using point clouds acquired in real time through a LiDAR sensor for the purpose of resolving the aforementioned conventional problems.
[0013] The problems that this disclosure aims to solve are not limited to those mentioned above, and other unmentioned problems will be clearly understood by a person skilled in the art from the description below. means of solving the problem
[0014] The present disclosure may be implemented in various ways, including a method, an apparatus (system), or a computer program stored on a readable storage medium.
[0015] A method for generating a line map based on LiDAR sensor data for autonomous driving according to one embodiment of the present disclosure for solving the above-described problem may include, in a method performed by a computing device, a step of acquiring a point cloud for a predetermined space; a step of deriving a line object recognition result by recognizing a line object from the acquired point cloud; and a step of generating a line map for producing a precision map corresponding to the predetermined space based on the derived line object recognition result.
[0016] In various embodiments, the step of deriving the line object recognition result may include the step of generating a two-dimensional image by converting the acquired point cloud into a bird's-eye view form, the step of detecting a pixel in which a line object exists among a plurality of pixels included in the generated two-dimensional image, and the step of deriving location information and direction information of points included in the detected pixel as the line object recognition result.
[0017] In various embodiments, the step of deriving the line object recognition result includes the step of deriving the line object recognition result as result data by inputting the acquired point cloud into a line object recognition model, and the line object recognition model may be a model trained using a plurality of point clouds for a plurality of spaces as input data and pre-generated precision map data corresponding to the plurality of spaces as correct answer data.
[0018] In various embodiments, the step of generating the line map may include: generating a line object point cloud by aligning and accumulating a plurality of line object recognition results derived from each of a plurality of point clouds for a predetermined space; generating a plurality of voxels by voxelizing the generated line object point cloud; generating a polyline by connecting points included in two or more of the generated voxels; and generating a line map using the generated polyline.
[0019] In various embodiments, the plurality of point clouds are sensor data continuously acquired over a predetermined period through a LiDAR sensor installed on a vehicle traveling in the predetermined space, and the step of generating the line object point cloud may include the step of converting the plurality of point clouds into a reference coordinate system based on the attitude of the vehicle at the time when each of the plurality of point clouds is acquired, and the step of generating the line object point cloud by aligning and accumulating the plurality of point clouds converted into the reference coordinate system.
[0020] In various embodiments, the step of generating the plurality of voxels may include the step of calculating the average position information and average direction vector of points included in each of the generated plurality of voxels, and the step of storing the calculated average position information and average direction vector in each of the generated plurality of voxels.
[0021] In various embodiments, the step of calculating the average position information and average direction vector may include, when a plurality of points are included within a specific voxel among the generated plurality of voxels, a step of calculating the direction similarity between the plurality of points based on the direction information of the plurality of points, and a step of calculating the average position information and average direction vector using only the points among the plurality of points whose calculated direction similarity is greater than or equal to a reference similarity.
[0022] In various embodiments, the step of generating the plurality of voxels may include the step of removing voxels among the generated plurality of voxels whose point density is less than a threshold density as noise.
[0023] In various embodiments, the step of generating the polyline may include selecting the voxel with the largest point density among the generated plurality of voxels as a reference voxel, and generating the polyline by connecting the voxels located at adjacent positions of the selected reference voxel with the selected reference voxel as a single line.
[0024] In various embodiments, the step of generating a polyline by connecting voxels existing in adjacent positions of the selected reference voxel with the selected reference voxel as a single line may include, with the selected reference voxel as a center, sequentially connecting voxels existing in the direction of the average direction vector stored in the selected reference voxel to extend the connected single line in the direction of the average direction vector stored in the selected reference voxel, wherein if the length of the connected single line exceeds a reference length, the connected single line is extended in the direction of the direction vector of the connected single line by sequentially connecting voxels existing in the direction of the direction vector of the connected single line.
[0025] In various embodiments, the step of generating a polyline by connecting voxels located at adjacent positions of the selected reference voxel with the selected reference voxel as the center of the selected reference voxel into a single line may include: setting a cylindrical area of a predetermined size in the axial direction of the connected line from the end of the connected line; determining the average position of points included within the set cylindrical area as a connection point; and extending the connected line by connecting the end of the connected line with the determined connection point.
[0026] In various embodiments, the step of setting a cylindrical region of a predetermined size may include the step of calculating the rate of change of direction of a connected line and the step of adjusting the diameter of the set cylindrical region by a predetermined ratio in correspondence with the calculated rate of change of direction.
[0027] In various embodiments, the step of generating a polyline by connecting voxels located at adjacent positions of the selected reference voxel with the selected reference voxel as the center to form a single line may further include the step of terminating the extension of the connected single line when no point exists within the set cylindrical area or when the connected single line has a closed curve shape.
[0028] In various embodiments, the step of generating a line map using the generated polyline may include, when a plurality of points are included on the generated polyline, generating a plurality of triangular planes by connecting two mutually adjacent points centered on each of the plurality of points, and removing the center point of a triangular plane among the generated plurality of triangular planes whose area is less than a reference size.
[0029] In various embodiments, the step of generating a line map using the generated polyline may include, when a plurality of points are included on the generated polyline, the step of setting a straight line connecting two points located at both ends among the plurality of points, and the step of removing curvatures below a threshold value from the generated polyline by recursively dividing the set straight line based on the point among the plurality of points that is the largest distance from the set straight line.
[0030] In various embodiments, the step of generating a line map using the generated polylines includes, when a plurality of polylines are generated, a step of calculating a score based on the distance and angle difference between the endpoints of each of the generated plurality of polylines, and a step of sequentially merging the polylines among the generated plurality of polylines starting from the polylines with the highest calculated score, wherein the merging step may include a step of removing the merged polylines when the length of the merged polylines is less than a threshold length.
[0031] A computing device for performing a method for generating a line map based on LiDAR sensor data for autonomous driving according to another embodiment of the present disclosure for solving the above-described problem comprises a processor, a network interface, a memory, and a computer program loaded into said memory and executed by said processor, wherein the processor can perform the method for generating a line map based on LiDAR sensor data for autonomous driving by executing one or more instructions included in said computer program.
[0032] A computer program according to another embodiment of the present disclosure for solving the above-described problem may be combined with a computing device and stored on a non-transient recording medium readable by the computing device to execute a method for generating a line map based on LiDAR sensor data for autonomous driving.
[0033] Other specific details of the present disclosure are included in the detailed description and drawings. Effects of the invention
[0034] According to various embodiments of the present disclosure, by automatically generating a line map including geometric elements such as road lanes and boundaries using a point cloud acquired in real time through a LiDAR sensor, the existing manual-based precision map production process can be significantly shortened, thereby reducing the cost and time required for precision map construction and greatly improving the scalability of autonomous driving service areas.
[0035] The effects of the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description below. Brief explanation of the drawing
[0036] The following drawings attached to this specification illustrate preferred embodiments of the present disclosure and serve to further enhance understanding of the technical concept of the present disclosure together with the detailed description of the invention; therefore, the present disclosure should not be interpreted as being limited only to the matters described in such drawings. FIG. 1 is a drawing illustrating an autonomous driving system according to one embodiment of the present disclosure. FIG. 2 is a diagram illustrating the functional module configuration of a computing device related to autonomous driving according to various embodiments of the present disclosure. FIGS. 3 and FIGS. 4 are drawings illustrating line maps according to various embodiments of the present disclosure in an exemplary manner. FIG. 5 is a diagram illustrating the hardware configuration of a computing device according to various embodiments of the present disclosure. FIG. 6 is a flowchart of a method for generating a line map based on LiDAR sensor data for autonomous driving according to various embodiments of the present disclosure. FIG. 7 is a flowchart of a method for generating a line map based on line object recognition results according to various embodiments of the present disclosure. FIG. 8 is a drawing illustrating an exemplary line object point cloud according to various embodiments of the present disclosure. FIG. 9 is a flowchart of a voxelization method of a line object point cloud according to various embodiments of the present disclosure. FIG. 10 is a drawing illustrating an exemplary voxelized line object point cloud according to various embodiments of the present disclosure. FIG. 11 is a flowchart of a method for generating a polyline according to various embodiments of the present disclosure. FIG. 12 is a flowchart of a line extension method according to various embodiments of the present disclosure. FIG. 13 is a drawing illustrating the process of expanding a line using a cylindrical region according to various embodiments of the present disclosure. FIG. 14 is a drawing illustrating the process of adjusting the diameter of a cylindrical region according to the rate of change of direction of a line according to various embodiments of the present disclosure. FIG. 15 is a flowchart of a post-processing method for a polyline according to various embodiments of the present disclosure. FIG. 16 is a diagram illustrating the first simplification and noise processes among the post-processing processes according to various embodiments of the present disclosure. FIG. 17 is a drawing showing a polyline before performing a merging and removal process and a polyline after performing a merging and removal process during a post-processing process according to various embodiments of the present disclosure. FIG. 18 is a diagram illustrating a secondary simplification and noise process during a post-processing process according to various embodiments of the present disclosure. FIG. 19 is a drawing showing a polyline before performing a second simplification and noise process and a polyline after performing a second simplification and noise process during a post-processing process according to various embodiments of the present disclosure. FIGS. 20 to 22 are drawings illustrating, in an exemplary manner, a line map generated according to a method for generating a line map based on LiDAR sensor data for autonomous driving according to various embodiments of the present disclosure. Specific details for implementing the invention
[0037] The advantages and features of the present disclosure and the methods for achieving them will become clear by referring to the embodiments described below in detail together with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below but may be implemented in various different forms. These embodiments are provided merely to ensure that the disclosure is complete and to fully inform those skilled in the art of the scope of the present disclosure, and the present disclosure is defined only by the scope of the claims.
[0038] The terms used herein are for describing the embodiments and are not intended to limit the disclosure. In this specification, the singular form includes the plural form unless specifically stated otherwise in the text. As used herein, "comprises" and / or "comprising" do not exclude the presence or addition of one or more other components in addition to the components mentioned.
[0039] Throughout this specification, the same reference numerals refer to the same components, and "and / or" includes each of the mentioned components and all combinations of one or more thereof. Although terms such as "first," "second," etc., are used to describe various components, they are not limited by these terms. These terms are used merely to distinguish one component from another. Accordingly, the first component mentioned below may be the second component within the technical scope of this disclosure.
[0040] As used herein, the terms “part” or “module” refer to hardware components such as software, FPGAs, or ASICs, and the “part” or “module” performs certain roles. However, the “part” or “module” is not limited to software or hardware. The “part” or “module” may be configured to reside in an addressable storage medium or configured to run on one or more processors. Thus, by example, the “part” or “module” includes components such as software components, object-oriented software components, class components, and task components, as well as processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functions provided within the components and “parts” or “modules” may be combined into a smaller number of components and “parts” or “modules,” or further separated into additional components and “parts” or “modules.”
[0041] Spatially relative terms such as "below," "beneath," "lower," "above," and "upper" may be used to facilitate the description of the relationship between one component and other components as illustrated in the drawings. Spatially relative terms should be understood as encompassing different orientations of components during use or operation, in addition to the orientations depicted in the drawings. For example, if a component depicted in a drawing is inverted, a component described as "below" or "beneath" of another component may be placed "above" of that component. Therefore, the exemplary term "below" may encompass both the lower and upper directions. Components may also be oriented in other directions, and accordingly, spatially relative terms may be interpreted according to the orientation.
[0042] Expressions such as "first," "second," or "first," "second" as used in this specification are used to distinguish one object from another when referring to a plurality of objects of the same kind, unless otherwise indicated by the context, and do not limit the order or importance of said objects.
[0043] Expressions used herein such as “A, B, and C,” “A, B, or C,” “A, B, and / or C,” or “at least one of A, B, and C,” “at least one of A, B, or C,” “at least one of A, B, and / or C,” “at least one selected from A, B, and C,” “at least one selected from A, B, or C,” “at least one selected from A, B, and / or C,” etc., may mean each of the listed items or all possible combinations of the listed items. For example, “at least one selected from A and B” may refer to (1) A, (2) at least one of A, (3) B, (4) at least one of B, (5) at least one of A and at least one of B, (6) at least one of A and B, (7) at least one of B and A, and (8) all of A and B.
[0044] As used herein, the expression “based on” is used to describe one or more factors affecting an act or action of a decision or judgment described in the phrase or sentence containing such expression, and such expression does not exclude additional factors affecting said act or action of a decision or judgment.
[0045] As used in this specification, the expression that a certain component (e.g., a first component) is "connected" or "connected" to another component (e.g., a second component) may mean that the said certain component is not only directly connected or connected to the said other component, but is also connected or connected through a new other component (e.g., a third component).
[0046] As used herein, the expression "configured to" may have meanings such as "set to," "capable of," "modified to," "made to," or "capable of." Such expression is not limited to the meaning of "specifically designed in hardware," and, for example, a processor configured to perform a specific operation may mean a generic-purpose processor capable of performing that specific operation by executing software.
[0047] Unless otherwise defined, all terms used herein (including technical and scientific terms) may be used in a meaning commonly understood by those skilled in the art to which this disclosure pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise.
[0048] In this specification, the term "computer" refers to any type of hardware device comprising at least one processor, and may be understood to include software configurations operating on said hardware device according to the embodiments. For example, the term "computer" may be understood to include smartphones, tablet PCs, desktops, laptops, and user clients and applications running on each of these devices, but is not limited thereto.
[0049] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.
[0050] Each step described in this specification is described as being performed by a computer, but the subject of each step is not limited thereto, and depending on the embodiment, at least some of each step may be performed on different devices.
[0052] Referring to FIG. 1, an autonomous driving system according to one embodiment of the present invention may include a computing device (100), a user terminal (200), a server (300), and a network (400).
[0053] Here, the autonomous driving system illustrated in FIG. 1 is according to one embodiment, and its components are not limited to the embodiment illustrated in FIG. 1 and may be added, changed, or deleted as needed.
[0054] In one embodiment, the computing device (100) may support an autonomous driving mode that performs autonomous driving control for an autonomous vehicle (10). To this end, the computing device (100) may perform positioning operations, perception operations, planning operations, and control operations for autonomous driving control of the autonomous vehicle (10).
[0055] More specifically, referring to FIG. 2, the computing device (100) may include a positioning module (110), a perception module (120), a planning module (130), and a control module (140).
[0056] First, the positioning module (110) can perform a positioning operation. Here, the positioning operation may refer to an operation of measuring the position and attitude of the autonomous vehicle (10). For example, the positioning module (110) can collect sensor data (e.g., point cloud data, image data, etc.) by scanning the surrounding environment of the autonomous vehicle (10) using a sensor (e.g., LiDAR, RADAR, Camera, GNSS / INS, IMU, etc.) provided in the autonomous vehicle (10), and can derive positioning information including a positioning value corresponding to the position and attitude of the autonomous vehicle (10) by utilizing the collected sensor data.
[0057] Next, the perception module (120) can perform a perception operation. Here, the perception operation may refer to an operation of detecting and tracking an object located around the autonomous vehicle (10). For example, the perception module (120) can recognize an object existing around the autonomous vehicle (10) by analyzing sensor data (e.g., point cloud data) collected as it scans the area around the autonomous vehicle (10), and can derive perception information including information about the recognized object.
[0058] Next, the planning module (130) can perform a planning operation. Here, the planning operation may mean an operation to generate a driving trajectory including a path and a speed profile for controlling the autonomous vehicle (10), based on positioning information derived through the positioning module (110) and perception information derived through the perception module (120).
[0059] Finally, the control module (140) can perform a control operation. Here, the control operation can determine and generate control commands for lateral control (direction control) and longitudinal control (speed control) of the autonomous vehicle (10) based on information regarding the driving trajectory derived by the planning operation, and may mean an operation to control the operation of the autonomous vehicle (10) according to the determined and generated control commands.
[0060] In various embodiments, the computing device (100) can generate a line map necessary to perform autonomous driving control for the autonomous vehicle (10).
[0061] Here, the line map is a map representing road geometric structures such as lanes and curbs, which can be included as a map layer of a precision map itself, and furthermore, can be a map used as a basis for generating various additional map layers (e.g., Road Marker Map, etc.).
[0062] More specifically, as illustrated in FIGS. 3 and 4, the line map is defined as a geometry map that represents elements of an actual road that can be represented as polylines or polygons, such as lanes and curbs, which can be represented as straight lines and / or curves, in the same way as the actual geometric structure, and can include 3D information including not only 2D coordinates (x, y) but also height values (z) as location information.
[0063] Such line maps can be constructed and managed as a data structure defined as a set of polylines, but are not limited thereto.
[0064] In various embodiments, the computing device (100) can be connected to a user terminal (200) through a network (400) and can provide various information related to autonomous driving to the user terminal (200).
[0065] Here, the user terminal (200) may refer to any form of entity(s) in a system having a mechanism for communicating with a computing device (100). For example, such a user terminal (200) may include a PC (personal computer), a notebook, a mobile terminal, a smartphone, a tablet PC, and a wearable device, and may include any type of terminal capable of connecting to a wired or wireless network. Additionally, the user terminal (200) may include any computing device implemented by at least one of an agent, an API (Application Programming Interface), and a plug-in. Additionally, the user terminal (200) may include an application source and / or a client application.
[0066] Additionally, the network (400) may refer to a connection structure capable of exchanging information between each node, such as multiple terminals and servers. For example, the network (400) may include a Local Area Network (LAN), a Wide Area Network (WAN), the World Wide Web (WWW), a wired / wireless data network, a telephone network, a wired / wireless television network, a Controller Area Network (CAN), and Ethernet.
[0067] Wireless data communication networks may include, but are not limited to, 3G, 4G, 5G, 3GPP (3rd Generation Partnership Project), 5GPP (5th Generation Partnership Project), LTE (Long Term Evolution), WIMAX (World Interoperability for Microwave Access), Wi-Fi, Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), RF (Radio Frequency), Bluetooth network, NFC (Near-Field Communication) network, satellite broadcasting network, analog broadcasting network, DMB (Digital Multimedia Broadcasting) network, etc.
[0068] In one embodiment, an external server (300) may be connected to a computing device (100) via a network (400) and may store and manage various information and data necessary to perform a line map generation method based on LiDAR sensor data for autonomous driving through the computing device (100), or may collect, store, and manage various information and data derived as the computing device (100) performs the line map generation method based on LiDAR sensor data for autonomous driving. For example, the external server (300) may be a storage server provided in a separate space outside the computing device (100), but is not limited thereto. Hereinafter, with reference to FIG. 5, the hardware configuration of a computing device that performs a line map generation method based on LiDAR sensor data for autonomous driving will be described.
[0070] FIG. 5 is a diagram illustrating the hardware configuration of a computing device according to various embodiments of the present disclosure.
[0071] Referring to FIG. 5, a computing device (100) according to another embodiment of the present disclosure may include one or more processors (101), a memory (102) for loading a computer program (105A) executed by the processor (101), a bus (103), a communication interface (104), and a storage (105) for storing the computer program (105A). Here, FIG. 5 illustrates only the components related to the embodiments of the present disclosure. Accordingly, a person skilled in the art to which the present disclosure pertains will understand that other general-purpose components may be included in addition to the components illustrated in FIG. 5.
[0072] The processor (101) controls the overall operation of each component of the computing device (100). The processor (101) may be configured to include a CPU (Central Processing Unit), an MPU (Micro Processor Unit), an MCU (Micro Controller Unit), a GPU (Graphic Processing Unit), or any form of processor well known in the art of the present disclosure.
[0073] Additionally, the processor (101) may perform operations for at least one application or program for executing the method according to the embodiments of the present disclosure, and the computing device (100) may have one or more processors.
[0074] In various embodiments, the processor (101) may further include Random Access Memory (RAM) (not shown) and Read-Only Memory (ROM) (not shown) for temporarily and / or permanently storing signals (or data) processed within the processor (101). Additionally, the processor (101) may be implemented in the form of a System on Chip (SoC) comprising at least one of a graphics processing unit, RAM, and ROM.
[0075] Memory (102) stores various data, instructions and / or information. Memory (102) may load a computer program (105A) from storage (105) to execute a method / operation according to various embodiments of the present disclosure. When the computer program (105A) is loaded into memory (102), the processor (101) may perform the method / operation by executing one or more instructions constituting the computer program (105A). Memory (102) may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.
[0076] The bus (103) provides communication functions between components of the computing device (100). The bus (103) can be implemented as various types of buses, such as an address bus, a data bus, and a control bus.
[0077] The communication interface (104) supports wired and wireless internet communication of the computing device (100). Additionally, the communication interface (104) may support various communication methods other than internet communication. To this end, the communication interface (104) may be configured to include a communication module well known in the art of the present disclosure. In some embodiments, the communication interface (104) may be omitted.
[0078] Storage (105) can store a computer program (105A) non-temporarily. When performing a line map generation process based on LiDAR sensor data for autonomous driving through a computing device (100), storage (105) can store various information necessary to provide a line map generation process based on LiDAR sensor data for autonomous driving.
[0079] Storage (105) may be configured to include non-volatile memory such as ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), flash memory, a hard disk, a removable disk, or any form of computer-readable recording medium well known in the art to which this disclosure belongs.
[0080] A computer program (105A) may include one or more instructions that cause a processor (101) to perform a method / operation according to various embodiments of the present disclosure when loaded into memory (102). That is, the processor (101) may perform the method / operation according to various embodiments of the present disclosure by executing the one or more instructions.
[0081] In one embodiment, a computer program (105A) may include one or more instructions for performing a method for generating a line map based on LiDAR sensor data for autonomous driving, the method being performed by a computing device, the step of acquiring a point cloud for a predetermined space, the step of deriving a line object recognition result by recognizing a line object from the acquired point cloud, and the step of generating a line map for creating a precision map corresponding to the predetermined space based on the derived line object recognition result. Hereinafter, with reference to FIG. 6, a method for generating a line map based on LiDAR sensor data for autonomous driving performed through a computing device (100) will be described.
[0083] FIG. 6 is a flowchart of a method for generating a line map based on LiDAR sensor data for autonomous driving according to various embodiments of the present disclosure.
[0084] Referring to FIG. 6, in step S110, the computing device (100) can obtain a point cloud for a predetermined space.
[0085] Here, the point cloud for a given space may be sensor data obtained through a LiDAR sensor installed on a vehicle located within the given space, but is not limited thereto.
[0086] In step S120, the computing device (100) can derive a line object recognition result based on the point cloud obtained through step S110.
[0087] Here, a line object may refer to an object in the form of a straight or curved line, such as a lane or curb, but is not limited thereto.
[0088] In various embodiments, the computing device (100) can generate a two-dimensional image by converting a point cloud into a bird's-eye view form, detect pixels containing line objects among a plurality of pixels included in the two-dimensional image, and derive location information (e.g., three-dimensional location coordinates (x, y, z)) and direction information (e.g., yaw) of points included in the pixels as a result of line object recognition.
[0089] In various embodiments, the computing device (100) can derive a line object recognition result as result data by inputting a point cloud into a line object recognition model.
[0090] Here, the line object recognition model may be a model trained using multiple point clouds for multiple spaces as input data and pre-generated precision map data corresponding to multiple spaces as ground truth data.
[0091] A line object recognition model may consist of one or more network functions, and each network function may consist of a set of interconnected computational units that can generally be referred to as 'nodes'. These nodes may also be referred to as 'neurons'.
[0092] One or more network functions are configured to include at least one node, and said nodes can be interconnected through one or more 'links'.
[0093] In a line object recognition model, relative input and output node relationships can be formed between nodes connected via links. The relationship between input and output nodes is a relative concept; therefore, even if a node is an output node in a specific relationship, it can be an input node in relation to another node, and vice versa. One or more output nodes can be connected to a single input node via links, and a single output node can also be connected to multiple input nodes.
[0094] In the relationship between input and output nodes connected through a single link, the output node can determine its output value based on data input from the corresponding input node and weights assigned to the link. These weights can be adjusted by the user or the algorithm during the learning process and can be changed to suit the function that the line object recognition model intends to perform (e.g., estimating the position and orientation of a line object from a point cloud).
[0095] Additionally, line object recognition models can have multiple layer structures based on distances from input nodes. For example, a set of nodes at a distance of n from the initial input node can form n layers. This layer structure is for convenience of explanation, and the definition of a layer may vary depending on the distance to the final output node or the structural design of the network.
[0096] In an embodiment of the present invention, the initial input node may be a node that directly receives input data corresponding to each point of the point cloud data (PCL). The final output node may be a node that outputs whether each location included in the point cloud corresponds to a line object, such as a lane or curb, and information regarding the location and direction of the object. Alternatively, nodes between the input layer and the output layer constitute hidden nodes and may include one or more hidden layers.
[0097] In various embodiments of the present disclosure, the line object recognition model may be a deep learning-based model, for example, a deep neural network (DNN) including a plurality of hidden layers. The deep neural network may identify the potential structure of line objects, such as lanes or curbs, from input point cloud data and produce a line recognition result based thereon.
[0098] Line object recognition models may include, but are not limited to, convolutional neural networks (CNN), recurrent neural networks (RNN), autoencoders, generative adversarial networks (GAN), restricted Boltzmann machines (RBM), deep confidence networks (DBN), U-nets, and Siamese networks.
[0099] In various embodiments, the network function may include an autoencoder. The autoencoder may have a structure for restoring a representation similar to the input point cloud and may perform non-linear dimensionality reduction. The size of the bottleneck layer of the autoencoder may be maintained above a certain level to prevent excessive loss of input information.
[0100] In step S130, the computing device (100) can generate a line map using the line object recognition result derived through step S120. Hereinafter, this will be explained in more detail with reference to FIGS. 7 to 22.
[0102] FIG. 7 is a flowchart of a method for generating a line map based on line object recognition results according to various embodiments of the present disclosure.
[0103] Referring to FIG. 7, in step S210, the computing device (100) can generate a line object point cloud (e.g., FIG. 8) by aligning and accumulating a plurality of line object recognition results derived from each of a plurality of point clouds.
[0104] Here, multiple point clouds may refer to sensor data continuously acquired over a predetermined period through a LiDAR sensor installed on a vehicle driving in a predetermined space.
[0105] More specifically, first, the computing device (100) can convert a plurality of point clouds into a reference coordinate system based on the attitude of the vehicle at the time when each of the plurality of point clouds is acquired. For example, the computing device (100) can convert the coordinate system of the plurality of point clouds into a vehicle coordinate system based on the attitude of the vehicle at the time when each of the plurality of point clouds is acquired, and convert each of the plurality of point clouds converted into a vehicle coordinate system into a reference coordinate system (e.g., a global / world coordinate system).
[0106] Afterwards, the computing device (100) can generate a single line object point cloud by accumulating a plurality of point clouds converted into a reference coordinate system.
[0107] In step S220, the computing device (100) can generate multiple voxels by voxelizing the line object point cloud generated through step S210.
[0108] In step S230, the computing device (100) can generate a polyline using a plurality of voxels generated through step S220.
[0109] In various embodiments, the computing device (100) can generate a polyline by connecting points included in two or more mutually related voxels among a plurality of voxels.
[0110] In step S240, the computing device (100) can generate a line map using the polylines generated through step S230. For example, the computing device (100) can classify each polyline by class of line objects, such as lanes or curbs, and arrange these polylines on a spatial coordinate system to construct a line map that represents the geometric structure of the road. However, it is not limited thereto.
[0112] FIG. 9 is a flowchart of a voxelization method of a line object point cloud according to various embodiments of the present disclosure, and FIG. 10 is a diagram exemplarily illustrating a voxelized line object point cloud according to various embodiments of the present disclosure.
[0113] Referring to FIGS. 9 and FIGS. 10, in step S310, the computing device (100) can generate multiple voxels by dividing the line object point cloud into unit sizes.
[0114] At this time, the computing device (100) can calculate the point density of each of the plurality of voxels based on the points included in each of the plurality of voxels, and can remove the voxels whose calculated point density is less than the threshold density as noise.
[0115] In step S320, the computing device (100) can calculate the average position information and average direction vector of each of the plurality of voxels generated through step S310.
[0116] As described above, the line object recognition result includes three-dimensional position coordinates and direction information for each point, so the computing device (100) can calculate the average of the three-dimensional position coordinates of the points included in each voxel as average position information, and can calculate the average of the direction information of the points included in each voxel as average direction vector.
[0117] In various embodiments, the computing device (100) calculates average position information and average direction vector based on information of points included in each voxel, and can calculate average position information and average direction vector using only points of the same or similar direction.
[0118] For example, when a computing device (100) contains multiple points within a specific voxel among multiple voxels, it can calculate the directional similarity between multiple points based on the directional information of the multiple points, and can calculate average position information and average direction vector using only the points among the multiple points whose directional similarity is greater than or equal to a reference similarity. Through this, reliability can be improved by preventing the mixing of discontinuous direction points.
[0119] In step S330, the computing device (100) can store the average position information and average direction vector calculated through step S320 in each of the plurality of voxels.
[0121] FIG. 11 is a flowchart of a method for generating a polyline according to various embodiments of the present disclosure.
[0122] Referring to FIG. 11, in step S410, the computing device (100) can select a reference voxel among a plurality of voxels generated as the line object point cloud is voxelized.
[0123] In various embodiments, the computing device (100) can calculate the point density of each of the plurality of voxels based on the number of points included in each of the plurality of voxels, and can select the voxel with the largest point density as the root voxel, that is, as the starting point for generating a polyline.
[0124] In step S420, the computing device (100) can connect and extend the voxels located at adjacent positions of the reference voxel, centered on the reference voxel selected through step S410, into a single line.
[0125] In various embodiments, the computing device (100) can sequentially connect and expand voxels located in a predetermined direction centered on a reference voxel.
[0126] More specifically, the computing device (100) can extend a line in the direction of the average direction vector stored in the reference voxel by sequentially connecting the voxels existing in the direction of the average direction vector stored in the reference voxel, centered on the reference voxel.
[0127] At this time, when the length of one line exceeds a reference length, the computing device (100) can extend one line in the direction of one line's direction vector by sequentially connecting the voxels existing in the direction of one line's direction vector.
[0128] In step S430, the computing device (100) can determine whether the line extension termination condition is satisfied.
[0129] For example, the computing device (100) may set a cylindrical area of a predetermined size in the axial direction of the line from the end of the line, and if no point exists within the set cylindrical area, it may be determined that the line extension termination condition is satisfied.
[0130] As another example, the computing device (100) may determine that the line extension termination condition is satisfied when one line has a closed curve shape. However, it is not limited to this.
[0131] At this time, the computing device (100) can terminate the line extension when it is determined that the line extension termination condition is satisfied.
[0132] Meanwhile, if the computing device (100) determines that the line extension termination condition is not satisfied, it can extend the line until the line extension termination condition is satisfied.
[0134] FIG. 12 is a flowchart of a line extension method according to various embodiments of the present disclosure, and FIG. 13 is a diagram illustrating the process of extending a line using a cylindrical region according to various embodiments of the present disclosure.
[0135] Referring to FIGS. 12 and 13, in step S510, the computing device (100) can set a cylindrical area (30) of a predetermined size from the end (21) of a line (20) in the axial direction (22) of a line (20). For example, the computing device (100) can set a cylindrical area (30), i.e., a cylinder, having a predetermined diameter in the axial direction (22) of a line (20) (e.g., a direction corresponding to the average direction vector stored in a reference voxel or the direction vector of the line (20)) from the end (21) of a line (20) created by connecting two or more mutually related voxels.
[0136] At this time, the computing device (100) can calculate the curvature rate of one line and can adjust the diameter of the set cylindrical area in proportion to the curvature rate.
[0137] In the case of straight sections, fast search is possible by maintaining the size of the cylindrical region, but in curved sections, as the rate of change in the line's direction increases, a problem may arise where the curve cannot be sufficiently encompassed by a cylindrical region of the same size.
[0138] Taking these points into consideration, the computing device (100) calculates the rate of change in the direction of the line in real time as shown in FIG. 14, and by gradually expanding the diameter of the cylindrical area in proportion to the rate of change in direction, points are not omitted even in curved sections and are naturally connected, thereby ensuring the continuity of the line.
[0139] In step S520, the computing device (100) can set the average position of points (31) included within the cylindrical area (30) set through step S510 as the connection point (32).
[0140] In step S530, the computing device (100) can extend one line (20) by connecting the end (21) of one line (20) and the connection point (32) determined through step S520.
[0142] FIG. 15 is a flowchart of a post-processing method for a polyline according to various embodiments of the present disclosure.
[0143] According to the embodiment illustrated in FIG. 15, the first simplification and noise removal process (S610), the merging and removal process (S620), and the second simplification and noise removal process (S630) are described as being performed sequentially on a polyline, but this is merely one example and is not limited thereto, and only some processes may be performed selectively or the order of post-processing processes may be changed.
[0144] Referring to FIG. 15, in step S610, the computing device (100) can perform a first simplification and noise removal process on a plurality of polylines.
[0145] The polyline generated according to the method described above may contain spike-shaped noise (e.g., jagged points, points that are denser than necessary, and / or changes in the direction of the noise).
[0146] For the purpose of removing such noise, a computing device (100) according to various embodiments of the present disclosure may perform downsampling by applying the VW (Visvalingam-Whyatt) algorithm to reduce the number of unnecessary connection points while maintaining the shape of straight lines and curves.
[0147] More specifically, referring to FIG. 16, first, when a plurality of points are included on a polyline, the computing device (100) can generate a plurality of triangular planes by connecting two mutually adjacent points centered on each of the plurality of points. For example, the computing device (100) has a specific point v i Adjacent points on both sides based on (v i-1 , v i+1 Connecting ) to form a triangular plane EA i It can form. At this time, the area of each triangular plane formed is the reference point v i It can be used as a measure indicating the extent to which it contributes to maintaining the overall shape of the polyline.
[0148] Subsequently, the computing device (100) can remove a center point corresponding to a triangular plane whose area is less than a predetermined reference size among a plurality of triangular planes. For example, the computing device (100) may sequentially remove points (v2, v3, v4, v5, etc.) having a plane whose area is less than the reference size among triangular planes EA2, EA3, EA4, and EA5, by determining that the influence of the point on the overall shape change of the polyline is negligible. Accordingly, by gradually deleting points of low importance among the plurality of points, unnecessary bends or noise can be removed while maintaining the basic shape of the polyline.
[0149] In step S620, the computing device (100) can perform a merging and removal process for a plurality of polylines.
[0150] More specifically, first, a score can be calculated based on the distance and angle difference between the endpoints of each of a plurality of polylines. For example, the computing device (100) may assign a high score by determining that the two polylines are likely to be the same line object as the distance difference between the endpoints of each of two different polylines is short and the angle difference between the endpoints of each of the two polylines is small.
[0151] Subsequently, the computing device (100) can sequentially merge the polylines with the highest scores among the plurality of polylines. For example, the computing device (100) can select two polylines with the highest scores among the polylines and connect the endpoints of each of the two selected polylines.
[0152] The computing device (100) can repeat the above merging process sequentially starting from the polylines with high scores, targeting polylines whose scores are above a threshold value.
[0153] At this time, the computing device (100) can remove the merged polylines by considering them as noise if the length of the merged polylines is less than a threshold length.
[0154] By performing the aforementioned merging and removal process, polylines generated redundantly in different frames can be organized into a single continuous polyline, as shown in FIG. 17, thereby ensuring the quality of the line map.
[0155] In step S630, the computing device (100) can perform a secondary simplification and noise removal process on a plurality of poly lines.
[0156] Even if the first simplification and noise removal process performed earlier is carried out, there is a problem in that it is difficult to completely remove unnecessary curves in the polyline.
[0157] More specifically, while the VW algorithm can efficiently reduce points on a polyline while maintaining curvature during the car simplification and noise removal process, it has a limitation in that downsampling can no longer proceed when the spacing between points widens to a certain level, as the VW algorithm evaluates the importance of each point based on the triangular area between adjacent points.
[0158] In other words, while the shape is well maintained in curved sections, an unnecessarily large number of points remain in straight sections, which can reduce data efficiency.
[0159] Accordingly, the computing device (100) according to various embodiments of the present disclosure may additionally apply the RDP (Ramer-Douglas-Peucker) algorithm.
[0160] More specifically, referring to FIG. 18, first, the computing device (100) can set a straight line connecting two points located at both ends among the multiple points when a plurality of points are included on a polyline.
[0161] Subsequently, the computing device (100) can remove curves below a threshold value from a polyline by recursively dividing the line based on the point that is the largest distance from the line among the multiple points.
[0162] By performing the aforementioned second simplification and noise process, as shown in FIG. 19, points are boldly removed in straight sections with little change in curvature, and points are retained in curved sections with large bends, thereby minimizing the amount of data while maintaining the shape of the entire line.
[0163] The line map generated through the method described above is as shown in FIGS. 20 to 22.
[0164] According to various embodiments of the present disclosure, by automatically extracting a map containing road lanes and boundaries using a point cloud acquired in real time through a LiDAR sensor, the efficiency of constructing and updating precise maps can be dramatically improved.
[0165] In other words, by automating the existing manual-based precision map production, the time and cost of building precision maps can be significantly reduced. Furthermore, it can be used to perform real-time updates to precision maps using data collected while vehicles are in motion.
[0166] In addition, by reflecting three-dimensional spatial information (including Z-values) and direction information, three-dimensional structures such as curves, overpasses, and underground roads can also be accurately represented.
[0168] The aforementioned method for generating a line map based on LiDAR sensor data for autonomous driving has been explained with reference to the flowchart illustrated in the drawings. For the sake of simplicity, the method for generating a line map based on LiDAR sensor data for autonomous driving has been illustrated and described using a series of blocks; however, the present disclosure is not limited to the order of the blocks, and some blocks may be performed in a different order than that illustrated and described in this specification or simultaneously. Furthermore, new blocks not described in this specification and drawings may be added, or some blocks may be deleted or modified.
[0170] The method described above may be provided as a computer program stored on a computer-readable recording medium for execution on a computer. The medium may continuously store a computer-executable program, or temporarily store it for execution or download. Additionally, the medium may be various recording or storage means in the form of a single or multiple hardware components, and may not be limited to a medium directly connected to a computer system but may exist distributed over a network. Examples of media may include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and media configured to store program instructions, including ROM, RAM, and flash memory. Furthermore, other examples of media may include recording or storage media managed by app stores that distribute applications or sites and servers that supply or distribute various other software.
[0171] The methods, operations, or techniques of the present disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will understand that the various exemplary logical blocks, modules, circuits, and algorithmic steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate such interchangeability between hardware and software, various exemplary components, blocks, modules, circuits, and steps have been generally described above in terms of their functional aspects. Whether such functions are implemented in hardware or in software depends on the design requirements imposed on the specific application and the overall system. Those skilled in the art may implement the functions described in various ways for each specific application, but such implementations should not be construed as departing from the scope of the present disclosure.
[0172] In a hardware implementation, the processing units used to perform the techniques may be implemented in one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described in this disclosure, computers, or a combination thereof.
[0173] Accordingly, the various exemplary logic blocks, modules, and circuits described in connection with the present disclosure may be implemented or performed by any combination of general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or those designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors coupled with a DSP core, or any other combination of configurations.
[0174] In firmware and / or software implementations, techniques may be implemented as instructions stored on a computer-readable medium such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. The instructions may be executable by one or more processors, and the processor(s) may be enabled to perform specific aspects of the functions described in this disclosure.
[0175] When implemented in software, the techniques described above may be stored on a computer-readable medium as one or more instructions or code, or transmitted through a computer-readable medium. Computer-readable media include both computer storage media and communication media, including any medium that facilitates the transmission of a computer program from one place to another. Storage media may be any available media accessible by a computer. As a non-limiting example, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium accessible by a computer that can be used to transfer or store desired program code in the form of instructions or data structures. Additionally, any connection is appropriately referred to as a computer-readable medium.
[0176] For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line, or wireless technologies such as infrared, radio, and microwave are included within the definition of a medium. As used herein, disk and disc include CD, laser disc, optical disc, DVD (digital versatile disc), floppy disk, and Blu-ray disc, wherein disks usually play data magnetically, whereas discs play data optically using a laser. The above combinations should also be included within the scope of computer-readable media.
[0177] The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other known form of storage medium. An exemplary storage medium may be connected to a processor so that the processor can read information from the storage medium or write information to the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and the storage medium may exist within an ASIC. The ASIC may exist within a user terminal. Alternatively, the processor and the storage medium may exist as separate components within the user terminal.
[0178] Although the embodiments described above have been described as utilizing aspects of the subject matter disclosed herein in one or more standalone computer systems, the present disclosure is not limited thereto and may be implemented in conjunction with any computing environment, such as a network or a distributed computing environment. Furthermore, aspects of the subject matter in the present disclosure may be implemented in a plurality of processing chips or devices, and storage may be similarly affected across a plurality of devices. Such devices may include PCs, network servers, and portable devices.
[0179] Although the present disclosure has been described in relation to some embodiments, various modifications and changes may be made without departing from the scope of the present disclosure as understood by a person skilled in the art to which the invention of the present disclosure pertains. Furthermore, such modifications and changes should be considered to fall within the scope of the claims appended to this specification. Explanation of the symbols
[0180] 100: Computing device 200 : User terminal 300 : External server 400 : Network
Claims
Claim 1 A method performed by a computing device comprises: a step of acquiring a point cloud for a predetermined space; a step of deriving a line object recognition result by recognizing a line object from the acquired point cloud; and a step of generating a line map for creating a precision map corresponding to the predetermined space based on the derived line object recognition result, wherein the step of generating the line map comprises: a step of generating a line object point cloud by aligning and accumulating a plurality of line object recognition results derived from each of a plurality of point clouds for the predetermined space; a step of generating a plurality of voxels by voxelizing the generated line object point cloud; a step of generating a polyline by connecting points included in two or more of the generated plurality of voxels; and a step of generating a line map using the generated polyline, and a step of selecting the voxel with the largest point density among the generated plurality of voxels as a reference voxel. A method for generating a line map based on LiDAR sensor data for autonomous driving, comprising the step of generating a polyline by connecting voxels existing at adjacent positions of the selected reference voxel with the selected reference voxel as the center, wherein the step of generating a polyline by connecting voxels existing at adjacent positions of the selected reference voxel as the center of the selected reference voxel as the center, comprises: setting a cylindrical area of a predetermined size in the axial direction of the connected line from the end of the connected line; determining the average position of points included within the set cylindrical area as a connection point; and extending the connected line by connecting the end of the connected line and the determined connection point. Claim 2 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein the step of deriving the line object recognition result comprises: a step of generating a two-dimensional image by converting the acquired point cloud into a bird's-eye view form; a step of detecting a pixel in which a line object exists among a plurality of pixels included in the generated two-dimensional image; and a step of deriving location information and direction information of points included in the detected pixel as the line object recognition result. Claim 3 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein the step of deriving the line object recognition result includes the step of deriving the line object recognition result as result data by inputting the acquired point cloud into a line object recognition model, and the line object recognition model is a model trained using a plurality of point clouds for a plurality of spaces as input data and pre-generated precision map data corresponding to the plurality of spaces as correct answer data. Claim 4 delete Claim 5 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the plurality of point clouds are sensor data continuously acquired over a predetermined period through a LiDAR sensor installed on a vehicle driving in the predetermined space, and the step of generating the line object point cloud comprises: a step of converting the plurality of point clouds into a reference coordinate system based on the attitude of the vehicle at the time when each of the plurality of point clouds is acquired; and a step of generating a line object point cloud by aligning and accumulating the plurality of point clouds converted into the reference coordinate system. Claim 6 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of generating a plurality of voxels comprises: a step of calculating average position information and an average direction vector of points included in each of the generated plurality of voxels; and a step of storing the calculated average position information and an average direction vector in each of the generated plurality of voxels. Claim 7 In claim 6, the step of calculating the average position information and average direction vector comprises: a step of calculating the direction similarity between the plurality of points based on the direction information of the plurality of points when the plurality of points are included within a specific voxel among the generated plurality of voxels; and a step of calculating the average position information and average direction vector using only the points among the plurality of points whose calculated direction similarity is greater than or equal to a reference similarity. Claim 8 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein the step of generating a plurality of voxels includes the step of removing voxels among the generated plurality of voxels in which the point density is less than a threshold density as noise. Claim 9 delete Claim 10 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of generating a polyline by connecting voxels existing in adjacent positions of the selected reference voxel with the selected reference voxel as the center of the selected reference voxel, the connected single line is extended in the direction of the average direction vector stored in the selected reference voxel by sequentially connecting voxels existing in the direction of the average direction vector stored in the selected reference voxel with the selected reference voxel as the center of the selected reference voxel, and if the length of the connected single line exceeds a reference length, the connected single line is extended in the direction of the direction vector of the connected single line by sequentially connecting voxels existing in the direction of the direction vector of the connected single line. Claim 11 delete Claim 12 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of setting a cylindrical area of a predetermined size comprises: a step of calculating the rate of change of direction of a connected line; and a step of adjusting the diameter of the set cylindrical area by a predetermined ratio in correspondence with the calculated rate of change of direction. Claim 13 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of generating a polyline by connecting voxels existing at adjacent positions of the selected reference voxel with the selected reference voxel as the center of the selected reference voxel into a single line further includes the step of terminating the expansion of the connected single line when there is no point within the set cylindrical area or when the connected single line has a closed curve shape. Claim 14 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of generating a line map using the generated polyline comprises: a step of generating a plurality of triangular planes by connecting two mutually adjacent points centered on each of the plurality of points when a plurality of points are included on the generated polyline; and a step of removing the center point of a triangular plane among the generated plurality of triangular planes whose area is less than a reference size. Claim 15 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of generating a line map using the generated polyline comprises: a step of setting a straight line connecting two points located at both ends among the plurality of points when the generated polyline includes a plurality of points; and a step of removing curvatures below a threshold value from the generated polyline by recursively dividing the set straight line based on the point among the plurality of points that is the largest distance from the set straight line. Claim 16 A method for generating a line map based on LiDAR sensor data for autonomous driving, wherein, in claim 1, the step of generating a line map using the generated polylines comprises: a step of calculating a score based on the distance and angle difference between the endpoints of each of the generated polylines when a plurality of polylines are generated; and a step of sequentially merging the polylines among the generated polylines starting from the polylines with the highest calculated score, wherein the merging step comprises a step of removing the merged polylines when the length of the merged polylines is less than a threshold length. Claim 17 A computing device comprising: a processor; a network interface; a memory; and a computer program loaded into the memory and executed by the processor, wherein the processor performs the method of claim 1 by executing one or more instructions included in the computer program. Claim 18 A computer program that is combined with a computing device and stored on a non-transient recording medium readable by the computing device to execute the method of claim 1.
Citation Information
Patent Citations
Shape measuring instrument
JP1993126545A
Detector, method for measuring distance, method for detection, program, and mobile body
JP2020153797A
Method and apparatus for measuring depth of materials attached to cylinder using line laser
KR1020180099251A
Apparatus and method for generating occupancy grid map
KR1020210065837A
Method And Apparatus For Generating High Precision Map
US20170343362A1