Apparatus and method for tracking features within image

By parsing map database information and applying clustering algorithms to generate classified data for road intersections, the problem of traditional classification process's reliance on image data is solved, and efficient road intersection classification is achieved.

CN120641956APending Publication Date: 2025-09-12QUALCOMM INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380092946.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-02-09
Publication Date
2025-09-12

AI Technical Summary

Technical Problem

The traditional road feature classification process has difficulty in accurately distinguishing different types of road intersections and relies on image data and sensor data, resulting in high resource consumption and low efficiency.

Method used

By parsing the map database information, extracting the skeleton topology data, applying the clustering algorithm to generate node and road segment clusters, and generating classification data of road intersections based on feature filtering and distance clustering.

Benefits of technology

It achieves accurate classification of road intersections, reduces dependence on sensor data, and reduces resource consumption and processing time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120641956A_ABST
    Figure CN120641956A_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatus are provided for classifying features of a geographic region based on map information. For example, a computing device receives map data characterizing roads of a geographic area. Further, the computing device determines a plurality of nodes and a plurality of segments connecting the plurality of nodes based on the map data. The computing device filters the plurality of nodes based on the first feature to determine a portion of the plurality of nodes, and filters the plurality of segments based on the second feature to determine a portion of the plurality of segments. Further, the computing device clusters the portion of the plurality of road segments and the portion of the plurality of nodes, and generates a final cluster based on the plurality of road segments and the clustered portion of the plurality of nodes. The computing device then generates classification data that classifies the final cluster.
Need to check novelty before this filing date? Find Prior Art

Description

background Technical Field

[0001] The present disclosure generally relates to processes for determining road characteristics, and more particularly to classifying road characteristics for use in various systems, such as driving systems.

[0002] Related technical description

[0003] Various applications rely on capturing images and identifying features within the captured images. For example, a vehicle, such as an autonomous vehicle, may operate with a vehicle monitoring system that, among other things, detects and classifies features within the captured images to enhance the driver's experience and safety. For example, the vehicle monitoring system may perform a simultaneous localization and mapping (SLAM) process based on the classified features to, for example, locate and navigate the vehicle within a map. In other examples, extended reality applications, such as augmented reality applications and virtual reality applications, may capture two-dimensional images and may perform processes for detecting and classifying features within the two-dimensional images.

[0004] However, in some cases, features are classified as the same type when they are actually different. For example, an intersection of roads may be classified as a road intersection. However, in reality, the road intersection may be a roundabout, an intersection, or some other type of road intersection. Conventional classification processes may fail to classify the road intersection type. Furthermore, conventional classification processes rely on sensor data (e.g., image data, lidar data) to detect and classify features corresponding to an area. Therefore, for a large area, such as a city, sensor data must first be captured for all parts of the large area (e.g., all roads, etc.) to classify the corresponding features. Therefore, there is an opportunity to address the deficiencies within conventional classification processes. Summary of the Invention

[0005] According to one aspect, a device includes a memory and a processor coupled to the memory. The processor is configured to receive map data representing an area. In addition, the processor is configured to determine a plurality of nodes and a plurality of road sections connecting the plurality of nodes based on the map data. The processor is further configured to filter the plurality of nodes based on a first feature to determine a portion of the plurality of nodes, and to filter the plurality of road sections based on a second feature to determine a portion of the plurality of road sections. In addition, the processor is configured to cluster the portion of the plurality of road sections based on a first distance between each road section in the plurality of road sections. The processor is further configured to cluster the portion of the plurality of nodes based on a second distance between each node in the plurality of nodes. The processor is further configured to generate at least one cluster based on the clustered portion of the plurality of road sections and the clustered portion of the plurality of nodes. The at least one processor is further configured to generate classification data identifying the classification of the at least one cluster.

[0006] According to another aspect, a method performed by at least one processor includes receiving map data representing an area. In addition, the method includes determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data. The method also includes filtering the plurality of nodes based on a first feature to determine a portion of the plurality of nodes, and filtering the plurality of road segments based on a second feature to determine a portion of the plurality of road segments. In addition, the method includes clustering the portion of the plurality of road segments based on a first distance between each of the plurality of road segments. The method also includes clustering the portion of the plurality of nodes based on a second distance between each of the plurality of nodes. The method also includes generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes. The method also includes generating classification data identifying a classification of the at least one cluster.

[0007] According to another aspect, a non-transitory machine-readable storage medium stores instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising receiving map data representing an area. Furthermore, the operations comprise determining, based on the map data, a plurality of nodes and a plurality of road segments connecting the plurality of nodes. The operations further comprise filtering the plurality of nodes based on a first feature to determine a portion of the plurality of nodes, and filtering the plurality of road segments based on a second feature to determine a portion of the plurality of road segments. Furthermore, the operations comprise clustering the portion of the plurality of road segments based on a first distance between each of the plurality of road segments. The operations further comprise clustering the portion of the plurality of nodes based on a second distance between each of the plurality of nodes. The operations further comprise generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes. The operations further comprise generating classification data identifying a classification of the at least one cluster. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Figure 1 is a block diagram of an exemplary road intersection classification system according to some specific implementations;

[0009] Figure 2 is an example according to some specific implementations Figure 1 A block diagram of an exemplary portion of a road intersection classification system;

[0010] Figure 3A 、 Figure 3B 、 Figure 3C 、 Figure 3D and Figure 3E is a diagram illustrating classification of road intersections according to some specific implementations;

[0011] Figure 4 is a flow chart of an exemplary process for classifying road intersections according to some specific implementations; and

[0012] Figure 5 is a flow chart of an exemplary process for classifying clustered nodes and road segments according to some specific implementations. DETAILED DESCRIPTION

[0013] While the features, methods, devices, and systems described herein may be embodied in various forms, some exemplary and non-limiting embodiments are shown in the drawings and described below. Some of the components described in this disclosure are optional, and some implementations may include additional, different, or fewer components than those explicitly described in this disclosure.

[0014] Embodiments described herein relate to an automated process that parses map database information to extract skeletal topology data, clusters the extracted data to generate clusters, and classifies the clusters. For example, an embodiment may obtain map data for a map build representing an area, such as a city. For example, the map data may include information about (e.g., identifying) roads, buildings (e.g., restaurants), and transportation centers (e.g., train stations, bus stations), etc. For example, the map data may be provided by a third-party provider (such as OpenStreetMap), or may be self-generated. An embodiment may parse the map data to identify nodes (e.g., locations where two or more roads meet) and road segments (e.g., a portion of a road between two nodes).

[0015] The embodiment may then filter the nodes and road segments based on the corresponding features. For example, the embodiment may identify and retain nodes that are associated with (e.g., connected to) at least a predetermined number of "entry roads" (e.g., roads with a driving direction "into" the node) and at least a predetermined number of "exit roads" (e.g., roads with a driving direction "out of" the node), while discarding all other nodes. The embodiment may also identify and retain road segments that are identified (e.g., marked) by map data as a particular type of road segment, such as a "straight road segment" or a "roundabout." The embodiment may further identify and retain road segments that are determined to be associated with one or more features, such as a road segment connecting two access-controlled roads (e.g., a ramp), or a road segment with a radius of curvature below a predetermined threshold (e.g., which may be associated with a roundabout).

[0016] In addition, embodiments may apply one or more clustering processes to the filtered nodes and segments (i.e., the retained nodes and segments) to generate node and segment clusters. In some examples, a first clustering process is applied to the filtered nodes to generate node clusters, and a second clustering process is applied to the filtered segments to generate segment clusters. As described herein, the first clustering process may be based on determining the distance between each filtered node in the filtered nodes. Similarly, the second clustering process may be based on determining the distance between each filtered segment in the filtered segments. The embodiment then determines node and segment clusters based on the node clusters and segment clusters.

[0017] In addition, embodiments may classify each node and segment cluster in a node and segment cluster (e.g., each cluster represents an "intersection") as, for example, a type of intersection. For example, when a cluster includes one or more segments identified as ramps, and / or the length of one or more segments (e.g., between nodes) is a minimum distance, embodiments may classify a cluster as an "interchange." For another example, if any of the segments is identified as a "roundabout" and the segments connect to form a "loop," the cluster may be classified as a "roundabout." In some examples, a cluster that includes only nodes (i.e., no segments) may be classified as an "intersection."

[0018] In some examples, the classified clusters (e.g., classified intersections) are stored in a database, such as a cloud-based database, and used in one or more applications. For example, the classified clusters can be used by a vehicle system (such as an autonomous vehicle system) to perform one or more simultaneous localization and mapping (SLAM) processes. For example, a high-definition (HD) map can be generated based on the classified clusters for locating a vehicle within the map, or for autonomous driving (e.g., navigation). In some examples, the classified clusters are used by a traffic management application, a gaming application (e.g., an ER application), or any other suitable application.

[0019] Among other advantages, embodiments allow for the classification of features, such as road intersections, without requiring sensor data, such as image data. Furthermore, embodiments can reduce the amount of storage and processing resources (e.g., power and time) required to classify features that would be required by conventional classification processes. Those of ordinary skill in the art having the benefit of the disclosure herein will also recognize these and other advantages of embodiments.

[0020] Figure 1 1 is a block diagram of a road intersection classification system 100 that includes a classification computing device 102 and a data repository 180. The data repository 180 can be, for example, a data repository (e.g., a memory device) within a cloud computing system. In this example, the road intersection classification system 100 can include one or more vehicles 109. Each of the classification computing device 102, the data repository 180, and the one or more vehicles 109 can be operatively connected to and interconnected across one or more communication networks (such as a communication network 150). Examples of the communication network 150 include, but are not limited to, wireless local area networks (LANs) (e.g., "Wi-Fi" networks), networks utilizing radio frequency (RF) communication protocols, near field communication (NFC) networks, wireless metropolitan area networks (MANs) connecting multiple wireless LANs, and wide area networks (WANs) (e.g., the Internet).

[0021] Will understand, Figure 1 The specific configuration of components and communication interfaces between the different components shown are merely exemplary, and other configurations of components and / or other computing systems with the same or different components may be configured to implement the operations and processes of the present disclosure.

[0022] As shown, data repository 180 may store map data 180A and road intersection classification data 180B. As described herein, map data 180A may include information about items (such as roads) in one or more geographic areas (e.g., cities, towns, area codes, etc.). In some examples, map data 180A identifies the items and labels at least some of the items with one or more characteristics. For example, map data 180A may identify roads and may label the road as a "straight segment" when the road is considered a "ramp," or may label the road as a "roundabout" when the road is considered a roundabout. As described herein, road intersection classification data 180B may be generated by classification computing device 102 and may identify a classification for one or more road intersections.

[0023] Furthermore, the classified computing device 102 may include one or more processors 112, a transceiver 119, a display interface 126 communicatively coupled to a display 128, a memory controller 124, a system memory 130, and an instruction memory 132, each of which is configured to communicate with one another across a bus 129. The bus 129 may include any of a variety of bus structures, such as a third generation bus (e.g., a HyperTransport bus or an InfiniBand bus), a second generation bus (e.g., an Advanced Graphics Port bus, a Peripheral Component Interconnect (PCI) Express bus, or an Advanced eXtensible Interface (AXI) bus), or another type of bus or device interconnect.

[0024] At least some of the functionality of the classified computing device 102 may be implemented in one or more processors, one or more field programmable gate arrays (FPGAs), one or more application specific integrated circuits (ASICs), one or more state machines, digital circuits, any other suitable circuitry, or any suitable hardware.

[0025] The processor 112 may include any suitable processor, such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, or any other suitable processor. The processor 112 may be configured to execute instructions to implement one or more operations described herein. For example, the processor 112 may read instructions from the instruction memory 132 and execute the instructions to perform the operations.

[0026] Furthermore, the transceiver 119 is configured to receive data from and transmit data to the communication network 150. For example, the processor 112 may provide data to the transceiver 119 via the bus 129 for transmission via the communication network 150. Similarly, the processor 112 may obtain data received by the transceiver 119 via the bus 129. Furthermore, the display interface 126 is configured to output signals that cause graphical data to be displayed on the display 128 (e.g., a dashboard display). For example, the processor 112 may provide image data to the display interface 126 for display on the display 128.

[0027] The memory controller 124 allows access to the system memory 130 and the instruction memory 132. The system memory 130 can store program modules and / or instructions and / or data that can be accessed by the processor 112. For example, the system memory 130 can store user applications (e.g., instructions for SLAM applications, clustering applications, classification applications, etc.) and working data for the processor 112. The system memory 130 can also store information for use and / or generated by other components of the classification computing device 102. For example, the system memory 130 can serve as device memory for the display interface 126 and the transceiver 119. Examples of the system memory 130 include one or more volatile or non-volatile memory or storage devices, such as RAM, SRAM, DRAM, EPROM, EEPROM, flash memory, magnetic data media, cloud-based storage media, or optical storage media.

[0028] The instruction memory 132 may store instructions that may be accessed (e.g., read) and executed by the one or more processors 112. For example, the instruction memory 132 may store instructions that, when executed by the one or more processors 112, cause one or more of the processors 112 to perform one or more of the operations described herein. For example, the instruction memory 132 may include instructions that, when executed by one or more of the processors 112, cause one or more of the processors 112 to apply one or more classification processes to map data to classify features, such as road intersections.

[0029] In this example, instruction memory 132 includes a clustering engine 132A and a classification engine 132B. Clustering engine 132A may include instructions that, when executed by one or more of processors 112, cause one or more of processors 112 to generate road segments and nodes from map data (such as map data 180A) and cluster the road segments and nodes according to any of the clustering processes described herein. Classification engine 132B may include instructions that, when executed by one or more of processors 112, cause one or more of processors 112 to classify clusters generated by executing the instructions of clustering engine 132A. For example, one or more of processors 112 may execute clustering engine 132A and classification engine 132B to generate road intersection classification data 180B.

[0030] For example, the one or more processors 112 may obtain map data 180A from the data repository 180 and may determine a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data 180. For example, the one or more processors 112 may identify any location where two or more roads meet as a node and may identify those road portions between the nodes as road segments. The one or more processors 112 may then filter the plurality of nodes based on a first characteristic to determine a portion of the plurality of nodes. For example, the first characteristic may be the number of "entry roads." The one or more processors 112 may identify and retain any node in the plurality of nodes that is associated with at least the number of "entry roads" (e.g., two). Additionally or alternatively, the first characteristic may be the number of "exit roads." For example, the one or more processors 112 may identify and retain any node in the plurality of nodes that is associated with at least the number of "exit roads" (e.g., two). The one or more processors 112 may remove (e.g., delete) all other nodes in the plurality of nodes from consideration.

[0031] The one or more processors 112 may also filter the plurality of road segments based on a second characteristic to determine a portion of the plurality of road segments. The second characteristic may be a label associated with the road corresponding to the road segment by the map data 180A. For example, the one or more processors 112 may identify and retain any road segment in the plurality of road segments that the map data 180A identifies as a particular type (such as a "straight road segment" or a "roundabout"). Additionally or alternatively, the one or more processors 112 may identify and retain any road segment in the plurality of road segments that is determined to connect to multiple (e.g., two) access-controlled roads (e.g., ramps), or any road segment in the plurality of road segments that has a radius of curvature below a threshold. In some cases, the map data 180A includes the radius of curvature of the road segment, and the one or more processors 112 extract data from the map data 180A to determine the radius of curvature. In some cases, the map data 180A includes one or more points (e.g., representing the centerline of the road) of the road segment, and the one or more processors 112 calculates the radius of curvature based on the one or more points of the road segment. The one or more processors 112 may compare the radius of curvature to a threshold to determine whether the radius of curvature is below the threshold. If the radius of curvature is below the threshold, the one or more processors 112 retain the road segment.

[0032] In addition, the one or more processors 112 may cluster the portion of the plurality of road segments based on a first distance between each of the plurality of road segments. For example, the one or more processors 112 may determine the distance between each two road segments in the portion of the plurality of road segments and cluster the road segments that are within a threshold distance of each other. The threshold distance may be, for example, a minimum distance, an average distance, or any other suitable distance metric between two road segments (e.g., corresponding points on the two road segments). In some examples, the one or more processors 112 may apply a clustering machine learning process, such as a K-means clustering process or a fuzzy C-means process, to the portion of the plurality of road segments to generate the road segment clusters.

[0033] In some examples, one or more processors 112 cluster the portion of the plurality of road segments based on the road segment type. For example, one or more processors 112 may cluster any road segment in the portion of the plurality of road segments that is associated with a “ramp” (e.g., as indicated by map data 180A). One or more processors 112 may also cluster any road segment in the portion of the plurality of road segments that is associated with a “roundabout” (e.g., as indicated by map data 180A).

[0034] In addition, the one or more processors 112 may cluster the portion of the plurality of nodes based on a second distance between each of the plurality of nodes. For example, the one or more processors 112 may determine the distance between each two nodes in the portion of the plurality of nodes and cluster the nodes that are within a threshold distance of each other. The threshold distance may be a minimum distance, an average distance, or any other suitable distance metric. In some examples, the one or more processors 112 may apply a machine learning clustering process such as a K-means clustering process or a fuzzy C-means process to the portion of the plurality of nodes to generate a node cluster. In some examples, the one or more processors 112 may ignore (e.g., remove from consideration) clusters generated with less than a number of nodes, such as clusters with a single node.

[0035] One or more processors 112 can then generate classified road intersection classification data 180B identifying one or more final clusters based on the clustered portions of a plurality of road segments and the clustered portions of a plurality of nodes. For example, one or more processors 112 can cluster the clustered portions of a plurality of road segments and the clustered portions of a plurality of nodes to generate one or more final clusters. In some examples, the final clusters are generated based on a threshold distance (e.g., minimum distance, average distance) between the clustered portions of a plurality of road segments and the clustered portions of a plurality of nodes. In some examples, one or more processors 112 apply a machine learning clustering process to the clustered portions of a plurality of road segments and the clustered portions of a plurality of nodes to generate the final clusters. Each final cluster may include, for example, one or more road segments and one or more nodes. In some examples, the final cluster may include one or more road segments, but no nodes. In some examples, the final cluster may include one or more nodes, but no road segments. Each final cluster may be considered a "crossing point."

[0036] The one or more processors 112 may then classify each resulting cluster (e.g., intersection). For example, when a cluster includes a threshold number of road segments labeled "ramp," the one or more processors 112 may classify the cluster as an "interchange." In some examples, when a cluster includes a threshold number of road segments labeled "ramp" and the length of each "ramp" road segment is at least a threshold length (e.g., the road segment length may be identified within the map data 180A or may be calculated from the map data 180A based on the identified coordinates of each end of the road segment), the one or more processors 112 may classify the cluster as an "interchange."

[0037] In some examples, when the final cluster includes at least one road segment marked as a roundabout and these road segments together form a loop (where, for example, the last road segment of the cluster joins the first road segment of the cluster), the one or more processors 112 classify the final cluster as a "roundabout." Additionally, in some examples, the one or more processors 112 may classify a cluster that only includes nodes as an "intersection."

[0038] In some examples, all other clusters are ignored (eg, not classified as any intersection type). In some examples, all other clusters are classified as a default type, such as "intersection," "unknown," or any other suitable default type.

[0039] The one or more processors 112 may generate road intersection classification data 180B that identifies and characterizes the classified final clusters and may store the road intersection classification data 180B within the data repository 180 .

[0040] The road intersection classification data 180B can be used for various applications to perform one or more SLAM processes. For example, one or more vehicles 109 can receive the road intersection classification data 180B from the data repository 180 and can perform one or more SLAM processes based on the road intersection classification data 180B. For example, the vehicle 109 can generate and display an HD map that identifies road intersections based on the classification of the road intersection classification data 180B. The vehicle 108 can, for example, perform autonomous driving operations based on the classification, such as navigating the corresponding area. For example, the road intersection classification data 180B can classify the intersection 111 of roads 110A, 110B as an "intersection." Based on this classification, the autonomous driving application of the vehicle 109 can cause the vehicle 109 to slow down when the vehicle 109 approaches the intersection 111.

[0041] In some examples, the navigation application of the vehicle 109 may prioritize the vehicle 109 over other routes based on the number of intersections 111 identified as “intersections.” For example, the navigation application may prioritize the vehicle 109 over other routes based on the number of intersections 111 identified as “intersections.” For another example, the navigation application may prioritize the vehicle 109 over other routes based on the number of intersections 111 identified as “roundabouts,” the number of intersections 111 identified as “intersections,” and the number of intersections 111 identified as “interchanges.”

[0042] exist Figure 1In the example of , the operations of the clustering engine 132A and the classification engine 132B are described as being performed by the classification computing device 102. However, in other examples, the operations of the clustering engine 132A and the classification engine 132B can be performed by one or more vehicles 109. In some examples, the classification computing device 102 and one or more vehicles 109 can perform the operations of the clustering engine 132A and the classification engine 132B. For example, the classification computing device 102 can perform a portion of the operations of the clustering engine 132A and the classification engine 132B, and the vehicle 109 can perform another portion of the operations of the clustering engine 132A and the classification engine 132B. In some cases, each vehicle 109 performs a clustering operation (e.g., the operation of the clustering engine 132A), and the classification computing device 102 performs a classification operation (e.g., the operation of the classification engine 132B). In other cases, the classification computing device 102 performs the clustering operation, and each vehicle 109 performs the classification operation.

[0043] Furthermore, although the road intersection classification system 100 is described with respect to Figure 1 The components and operations of the present invention are described herein, but in other examples, other systems and / or devices may include the same or similar components and implement some or all of the operations described herein. For example, in some examples, an extended reality (XR) system such as an augmented reality (AR) system, a virtual reality (VR) system, or a mixed reality (MR) system may generate a 3D point database as described herein and may employ the generated database during an XR, AR, VR, or MR application (e.g., a gaming application).

[0044] Figure 2 This is an example Figure 1 FIG2 is a diagram of an exemplary portion of a road intersection classification system 100. In this example, the classification computing device 102 includes a clustering engine 132A and a classification engine 132B. In some examples, each of the clustering engine 132A and the classification engine 132B may include instructions that, when executed by one or more processors 112, cause one or more of the processors 112 to perform corresponding operations. In some examples, one or more of the clustering engine 132A and the classification engine 132B may be implemented in hardware, such as within one or more FPGAs, ASICs, digital circuits, or any other suitable hardware or hardware or combination of hardware and software.

[0045] In this example, clustering engine 132A receives map data 180A from data repository 180. For example, classification computing device 102 can receive map data 180A from data repository 180 via transceiver 119, which can be part of a cloud-based computing system, and can provide map data 180A to clustering engine 132A. Map data 180 may include information about roads for a geographic area, such as a city. For example, map data 180 may identify roads using road segments and nodes, and may label one or more of the road segments. A road segment may be labeled, for example, as a "straight road segment," "roundabout," or some other type.

[0046] The clustering engine 132A can perform any of the operations described herein to determine a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data 180A. For example, the clustering engine 132A can identify any location where two or more roads meet as a node, and can identify those portions of the road between the nodes as road segments. The clustering engine 132A can also perform operations as described herein to filter a plurality of nodes based on at least a first characteristic to determine a portion of a plurality of nodes, and to filter a plurality of road segments based on at least a second characteristic to determine a portion of a plurality of road segments. For example, the first characteristic can include a number of "entry roads" and a number of "exit roads." The clustering engine 132A can identify and retain any node in the plurality of nodes that is associated with at least the number of "entry roads" and the number of "exit roads." The clustering engine 132A can remove (e.g., delete) all other nodes in the plurality of nodes from consideration.

[0047] The second feature can be a label that the map data 180A associates with the road corresponding to the road segment. For example, the clustering engine 132A can identify and retain any road segment in the plurality of road segments that the map data 180A identifies as a particular type (such as a "straight road segment" or a "roundabout"). Additionally or alternatively, the clustering engine 132A can identify and retain any road segment in the plurality of road segments that is determined to be connected to a plurality of access-controlled roads (e.g., a ramp), or any road segment in the plurality of road segments that has a curvature radius below a threshold.

[0048] Furthermore, clustering engine 132A may cluster the portion of the plurality of road segments based on a first distance between each of the plurality of road segments. For example, clustering engine 132A may determine a distance between each two road segments in the portion of the plurality of road segments and perform operations to generate a segment cluster including road segments that are within a threshold distance of each other. In some examples, clustering engine 132A applies a clustering machine learning process, such as a K-means clustering process or a fuzzy C-means process, to the portion of the plurality of road segments to generate the segment clusters.

[0049] In some examples, clustering engine 132A performs operations to cluster the portion of the plurality of road segments based on the road segment type. For example, clustering engine 132A may generate a road segment cluster using any road segment in the portion of the plurality of road segments associated with a "ramp" (e.g., as indicated by map data 180A). Clustering engine 132A may separately generate a road segment cluster based on any road segment in the portion of the plurality of road segments associated with a "roundabout" (e.g., as indicated by map data 180A).

[0050] In addition, clustering engine 132A clusters the portion of the plurality of nodes based on a second distance between each node in the plurality of nodes. For example, clustering engine 132A can determine the distance between each two nodes in the portion of the plurality of nodes and generate a node cluster of nodes that are within a threshold distance of each other. The threshold distance can be a minimum distance, an average distance, or any other suitable distance metric. In some examples, clustering engine 132A applies a machine learning clustering process such as a K-means clustering process or a fuzzy C-means process to the portion of the plurality of nodes to generate node clusters. In some examples, clustering engine 132A discards any cluster generated with less than the number of nodes (e.g., 2), such as a cluster with a single node.

[0051] The clustering engine 132A can then generate classified cluster data 203 identifying one or more final clusters based on the clustered portions of the plurality of road segments and the clustered portions of the plurality of nodes. For example, the clustering engine 132A can perform any of the clustering processes described herein to cluster the clustered portions of the plurality of road segments and the clustered portions of the plurality of nodes to generate one or more final clusters.

[0052] In some examples, clustering engine 132A generates the final clusters based on a threshold distance (e.g., minimum distance, average distance) between the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes. In some examples, clustering engine 132A applies a machine learning clustering process to the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes to generate the final clusters.

[0053] The classification engine 132B receives the cluster data 203 and generates road intersection classification data 180B identifying the classification of each final cluster in the final clusters. For example, when a final cluster includes a threshold number of road segments labeled as "ramp", the classification engine 132B can classify the final cluster as an "interchange" (e.g., generate a label for it). When a final cluster includes a threshold number of road segments labeled as "ramp" and the length of each "ramp" segment is at least a threshold length, the classification engine 132B can classify the final cluster as an "interchange". In addition, when a final cluster includes at least one road segment labeled as a roundabout and these road segments together form a loop (where, for example, the last road segment of the cluster joins the first road segment of the cluster), the classification engine 132B can classify the final cluster as a "roundabout". The classification engine 132B can also classify any final cluster that includes only nodes as an "intersection". The classification engine 132B can discard all other final clusters or can label them with a default type (such as "intersection", "unknown", or any other suitable default type).

[0054] The classification engine 132B can generate road intersection classification data 180B that identifies and characterizes the classified final clusters. For example, the road intersection classification data 180B can identify each final cluster as an intersection and include a determined label for the intersection (e.g., "ramp," "roundabout," "interchange," etc.). The classification engine 132B can store the road intersection classification data 180B in the data repository 180.

[0055] In some examples, the classification computing device 102 updates a software package based on the nodes and road segments of the data repository 180 and distributes the software package to end users to facilitate vehicle navigation.

[0056] In some examples, a vehicle, such as vehicle 109, obtains road intersection classification data 180B from data repository 180 to perform one or more operations. For example, vehicle 109 may include a SLAM processing engine 210 that obtains road intersection classification data 180B, parses the road intersection classification data 180B to obtain an intersection type for an area (e.g., an area in which vehicle 109 is located, an area to be traveled, etc.), and performs any SLAM operations or any other suitable operations based on the identified intersection type. For example, SLAM processing engine 210 may generate an HD map 211 based on the intersection type. For example, HD map 211 may identify the intersection types on a route.

[0057] In some examples, the SLAM processing engine 210 performs one or more autonomous driving 213 operations based on the road intersection classification data 180B. For example, and assuming that the vehicle 109 is operating in the "autonomous driving" mode, the SLAM processing engine 210 can determine a complexity level of the area to be traveled (e.g., a route) based on the intersection type identified by the road intersection classification data 180B, and can further determine to turn off the "autonomous driving" mode when the determined complexity level of the area to be traveled exceeds a threshold (e.g., is determined to be at or above a predetermined complexity level). For example, if the complexity level of an area is determined to be above level "5" (e.g., "high complexity"), the SLAM processing engine 210 can turn off the autonomous driving mode when the vehicle 109 enters the area.

[0058] In some examples, the SLAM processing engine 210 can perform one or more navigation 215 operations based on the road intersection classification data 180B. For example, the SLAM processing engine 210 can determine to follow a route that includes fewer intersections marked as "intersections" than another route, or can decide to follow a route that includes intersections marked as "roundabouts" rather than "intersections." In some cases, the SLAM processing engine 210 generates a score for each route based on the number of intersections marked as "intersections" and "roundabouts." For example, the SLAM processing engine 210 can increase the score for a particular route based on the number of "roundabouts" for that route, but decrease the score based on the number of "intersections" for that route.

[0059] Figure 3A 、 Figure 3B 、 Figure 3C 、 Figure 3D and Figure 3E Included are diagrams illustrating the determination and labeling of various intersections. For example, Figure 3A A road network 300 (e.g., as represented by map data 180A) is illustrated. As shown, road network 300 includes various roads, such as roads 310A, 310B, 310C, and 310D. Roads 310A and 310B may allow travel in opposite directions. Similarly, roads 310C and 310D may allow travel in opposite directions. Some roads, such as road 312, may be marked as "straight segments" (e.g., connecting road 310A to road 310C). Other roads, such as road 314, extending from road 315 to road 316 may be marked as "roundabouts."

[0060] Figure 3BNodes 320 and road segments, such as road segments 322, 323, 325, and 327, that can be generated by the classification computing device 102 are illustrated. For example, the classification computing device 102 can determine where two or more roads 310A, 310B, 310C, and 310D intersect, and generate and assign a node to the intersection. Furthermore, the classification computing device 102 can generate and assign a road segment to each portion of any road between two nodes 320. The generated road segments and nodes can represent the "skeleton" of the road network 300.

[0061] In addition, if Figure 3C As shown, the classification computing device 102 can filter the generated road segments and nodes based on one or more features. For example, the classification computing device 102 can determine the number of "entry roads" and the number of "exit roads" to each of the nodes 320, and remove any node 320 that does not include at least a threshold number of "entry roads" (e.g., 2) or at least a threshold number of "exit roads" (e.g., 2). In some cases, the classification computing device 102 marks road segments that meet predetermined criteria, such as a road segment connected between two nodes, where each node includes at least a threshold number of "entry roads" or at least a threshold number of "exit roads". For example, the classification computing device 102 can mark a road segment such as road segment 322 as a "ramp". In addition, the classification computing device 102 can remove any road segment that is not marked as one or more types, such as a road segment that is not marked as a "straight road segment" or a "roundabout". For example, because road segments 323 and 325 are not marked as "straight road segments" or "roundabouts", they are not marked as "ramp segments". Figure 3C In contrast, the classification computing device 102 may leave the road segment 327 (which corresponds to Figure 3A 314 in the figure) because it is marked as a "roundabout".

[0062] In addition, and as described herein, the classification computing device 102 may cluster the remaining road segments and nodes, such as Figure 3D As shown. For example, the classification computing device 102 can cluster the road segments based on the distance between each road segment in the plurality of road segments, and can cluster the nodes based on the distance between each node in the plurality of nodes. The classification computing device 102 can then generate final clusters 328 based on the clustered road segments and nodes. Specifically, the first cluster 330 includes multiple road segments and nodes, while the second cluster 352 includes four road segments and four nodes. Each of the remaining clusters 354, 356, 358, 360, 362, 364, 366, and 368 includes only a single node.

[0063] Furthermore, the classification computing device 102 may perform any of the operations described herein to classify the final clusters 328. For example, Figure 3E As shown, the classification computing device 102 may classify cluster 330 as an "interchange" because cluster 330 includes at least two road segments 322 classified as "ramp." In some examples, the classification computing device 102 determines the length of each road segment of the cluster and classifies the cluster as an "interchange" if the cluster includes a threshold number of road segments classified as "ramp" and the length of each road segment is at least a minimum threshold distance. In some examples, if the final cluster 328 includes a predetermined number (e.g., 1) of road segments labeled as "roundabout" and these road segments join to form a loop, the classification computing device 102 classifies it as a "roundabout." For example, the classification computing device 102 may classify the final cluster 352 as a "roundabout" because at least one road segment (road segment 327) is labeled as a "roundabout." In some cases, the classification computing device 102 marks only the final clusters 329 that include nodes (such as clusters 354 , 356 , 358 , 360 , 362 , 364 , 366 , 368 ) as intersections.

[0064] Figure 4 4 is a flow chart of an exemplary process 400 for classifying a road intersection. For example, one or more processors (such as the processor 112 of the classification computing device 102) may perform one or more operations of the exemplary process 400.

[0065] Beginning at block 402, the classification computing device 102 receives map data, such as the map data 180A. The map data may represent items such as roads. At block 404, the classification computing device 102 determines road segments and nodes based on the map data. For example, the classification computing device 102 may generate a node for each location represented by the map data where two or more roads intersect, and may assign road segments connected to the nodes to the roads or portions thereof.

[0066] Furthermore, at block 406, the classification computing device 102 filters the road segments based on the first feature. For example, the classification computing device 102 may identify and retain road segments identified by the map data as a particular type (such as a "straight road segment" or a "roundabout"). Embodiments may further identify and retain road segments that connect two access-controlled roads (e.g., ramps) or road segments with a curvature radius below a predetermined threshold (e.g., which may be associated with roundabouts).

[0067] At block 408, the classification computing device 102 filters the nodes based on the second feature. For example, the classification computing device 102 may identify and retain nodes associated with at least a predetermined number of "entry roads" or at least a predetermined number of "exit roads," and may discard all other nodes.

[0068] Proceeding to block 410, the classification computing device 102 clusters the filtered road segments and nodes. For example, as described herein, the classification computing device 102 may cluster the filtered nodes based on the distance between each of the nodes, and may cluster the road segments based on the distance between each of the road segments. The classification computing device 102 may then generate final clusters based on the clustered nodes and clustered road segments. In some examples, the classification computing device 102 applies a machine learning process to the filtered road segments and nodes to generate the final clusters.

[0069] The classification computing device 102 may then classify each of the final clusters. At block 412, the classification computing device 102 determines whether the cluster is an interchange. For example, if the cluster includes at least a threshold number of "ramps" of a minimum length, the classification computing device 102 may label the cluster as an "interchange." If the cluster is an "interchange," the method proceeds to block 414, where the cluster is labeled as an "interchange." However, if the cluster is not an "interchange," the method proceeds from block 412 to block 416.

[0070] At block 416, the classification computing device 102 determines whether the cluster is a roundabout. For example, if the cluster includes road segments that form a loop and at least one road segment labeled "roundabout," the classification computing device 102 may label the cluster as a "roundabout." If the cluster is a "roundabout," the method proceeds to block 418, where the cluster is labeled "roundabout." Otherwise, if the cluster is not a "roundabout," the method proceeds to step 420.

[0071] At block 420, the classification computing device 102 determines whether the cluster is an intersection. For example, the classification computing device 102 may determine whether the cluster includes fewer than a threshold number of nodes (e.g., 2). If the cluster includes fewer than the threshold number of nodes, the method proceeds to block 422, where the cluster is labeled "intersection." Otherwise, if the cluster is not an "intersection," the method proceeds to block 424, where the cluster is labeled with a default label. For example, the default label may be "intersection," "intersection," or no label at all, among others.

[0072] From blocks 414, 418, 422, and 424, the method proceeds to block 426, where the classification computing device 102 determines whether there are any more clusters to label. If there are additional clusters to label (e.g., additional final clusters), the method proceeds back to block 412 to label the additional clusters. However, if there are no additional clusters to label, the method proceeds to block 428, where the labeled clusters are stored in a memory device (such as the data repository 180).

[0073] Figure 5 is a flow chart of an exemplary process 500 for classifying clustered nodes and road segments. For example, one or more processors (such as the processor 112 of the classification computing device 102) may perform one or more operations of the exemplary process 500.

[0074] At block 502, the classification computing device 102 receives map data representing an area. For example, the classification computing device 102 may receive map data 180A from the data repository 180. Furthermore, at block 504, the classification computing device 102 determines a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data.

[0075] At block 506 , the classification computing device 102 filters the plurality of nodes based on the first feature to determine a portion of the plurality of nodes. Additionally, at block 508 , the classification computing device 102 filters the plurality of road segments based on the second feature to determine a portion of the plurality of road segments.

[0076] Proceeding to block 510, the classification computing device 102 filters and clusters the portion of the plurality of road segments based on a first distance between each of the plurality of road segments. At block 512, the classification computing device 102 clusters the portion of the plurality of nodes based on a second distance between each of the plurality of nodes.

[0077] Furthermore, and at block 514, the classification computing device 102 generates classification data identifying a classification of at least one cluster based on the clustered portions of the plurality of road segments and the clustered portions of the plurality of nodes. At block 516, the classification computing device 102 stores the classification data in a data repository. For example, the classification computing device 102 may store the road intersection classification data 180B in the data repository 180.

[0078] Specific implementation examples are further described in the following numbered clauses:

[0079] 1. A device, comprising:

[0080] Memory; and

[0081] a processor coupled to the memory, the processor being configured to:

[0082] obtaining map data representing the area;

[0083] determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data;

[0084] filtering the plurality of nodes based on a first characteristic to determine a portion of the plurality of nodes, and filtering the plurality of road segments based on a second characteristic to determine a portion of the plurality of road segments;

[0085] clustering the portion of the plurality of road segments based on a first distance between each of the plurality of road segments;

[0086] clustering the portion of the plurality of nodes based on a second distance between each node in the plurality of nodes;

[0087] generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; and

[0088] Classification data identifying a classification of the at least one cluster is generated.

[0089] 2. The apparatus of claim 1 , wherein the processor is further configured to:

[0090] filtering the plurality of nodes based on a first characteristic to determine the portion of the plurality of nodes; and

[0091] The plurality of road segments are filtered based on a second feature to determine the portion of the plurality of road segments.

[0092] 3. The apparatus of claim 2, wherein the first characteristic comprises a threshold number of incoming roads, and wherein the processor is further configured to:

[0093] determining a number of incoming roads for each of the plurality of nodes; and

[0094] The plurality of nodes are filtered based on a threshold number of the incoming roads and the number of the incoming roads for each of the plurality of nodes.

[0095] 4. The apparatus of claim 3, wherein the first characteristic comprises a threshold number of off-road trips, and wherein the processor is further configured to:

[0096] determining a number of exit roads for each of the plurality of nodes; and

[0097] The plurality of nodes are filtered based on the threshold number of off-roads and the number of off-roads for each of the plurality of nodes.

[0098] The apparatus of claim 1 , wherein the first distance is a minimum distance between each of the plurality of road segments, and the second distance is a minimum distance between each of the plurality of nodes.

[0099] 6 . The apparatus of claim 1 , wherein the processor is configured to generate the classification data based on a number of the plurality of nodes and a number of the plurality of road segments associated with the at least one cluster.

[0100] 7. The apparatus of claim 1 , wherein the map data represents a road, and wherein the processor is configured to:

[0101] determining that the plurality of nodes correspond to locations where at least two roads intersect; and

[0102] The plurality of road sections are determined based on a road connecting at least two nodes among the plurality of nodes.

[0103] 8. The apparatus of claim 1 , wherein the processor is configured to:

[0104] determining, based on the map data, a plurality of road segments for the at least one cluster associated with a ramp;

[0105] determining a length of each of the plurality of road segments for the at least one cluster; and

[0106] The classification data is generated based on the plurality of road segments and the length of each of the plurality of road segments to identify the at least one cluster as an interchange.

[0107] 9. The apparatus of claim 1 , wherein the processor is configured to:

[0108] determining a plurality of road segments associated with the at least one cluster to complete a loop;

[0109] determining, based on the map data, that at least one road segment of the plurality of road segments is associated with a ramp; and

[0110] The classification data is generated to identify the at least one cluster as a roundabout.

[0111] 10. The apparatus of claim 1, wherein the processor is configured to:

[0112] determining that the at least one cluster includes a number of nodes below a threshold amount; and

[0113] The classification data is generated based on the determination to identify the at least one cluster as an intersection.

[0114] 11. The apparatus of claim 1, wherein the processor is further configured to apply a machine learning process to the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes to generate the at least one cluster.

[0115] 12. The apparatus of claim 1 , wherein the processor is further configured to:

[0116] generating a software package based on the classification data; and

[0117] The software package is sent to at least one vehicle.

[0118] 13. The apparatus of claim 1, wherein the processor is further configured to perform at least one simultaneous localization and mapping (SLAM) operation based on the classification data.

[0119] 14. The apparatus of claim 13, wherein the at least one SLAM operation comprises generating a high-definition (HD) map, wherein the processor is further configured to update a path planning operation based on the HD map.

[0120] 15. The apparatus of claim 1 , wherein the classification data characterizes an intersection type, and wherein the processor is further configured to:

[0121] determining a complexity level for the area to be traveled based on the intersection type for the area;

[0122] determining that the complexity level for the region exceeds a threshold; and

[0123] Turn off autopilot mode when entering said area.

[0124] 16. The apparatus of claim 1 , wherein the classification data characterizes a type of intersection along each of a plurality of routes, and wherein the processor is further configured to:

[0125] determining a score for each of the plurality of routes based on the intersection type corresponding to each route; determining a route of the plurality of routes based on the determined score; and

[0126] The determined one of the plurality of routes is signaled to an autonomous driving application.

[0127] The device of claim 1 , wherein the device is a server.

[0128] 18. The device of claim 1, wherein the device is a vehicle.

[0129] 19. A method performed by at least one processor, the method comprising:

[0130] obtaining map data representing the area;

[0131] determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data;

[0132] filtering the plurality of nodes based on a first characteristic to determine a portion of the plurality of nodes, and filtering the plurality of road segments based on a second characteristic to determine a portion of the plurality of road segments;

[0133] clustering the portion of the plurality of road segments based on a first distance between each of the plurality of road segments;

[0134] clustering the portion of the plurality of nodes based on a second distance between each node in the plurality of nodes;

[0135] generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; and

[0136] Classification data identifying a classification of the at least one cluster is generated.

[0137] 20. The method according to claim 19, comprising:

[0138] filtering the plurality of nodes based on a first characteristic to determine the portion of the plurality of nodes; and

[0139] The plurality of road segments are filtered based on a second feature to determine the portion of the plurality of road segments.

[0140] 21. The method of claim 20, wherein the first characteristic comprises a threshold number of incoming roads, the method comprising:

[0141] determining a number of incoming roads for each of the plurality of nodes; and

[0142] The plurality of nodes are filtered based on a threshold number of the incoming roads and the number of the incoming roads for each of the plurality of nodes.

[0143] 22. The method of claim 21 , wherein the first characteristic comprises a threshold number of off-road trips, the method comprising:

[0144] determining a number of exit roads for each of the plurality of nodes; and

[0145] The plurality of nodes are filtered based on the threshold number of off-roads and the number of off-roads for each of the plurality of nodes.

[0146] 23. The method of claim 19, wherein the first distance is a minimum distance between each of the plurality of road segments, and the second distance is a minimum distance between each of the plurality of nodes.

[0147] 24. The method of claim 19, comprising generating the classification data based on a number of the plurality of nodes and a number of the plurality of road segments associated with the at least one cluster.

[0148] 25. The method of claim 19, wherein the map data represents a road, the method comprising:

[0149] determining that the plurality of nodes correspond to locations where at least two roads intersect; and

[0150] The plurality of road sections are determined based on a road connecting at least two nodes among the plurality of nodes.

[0151] 26. The method of claim 19, comprising:

[0152] determining, based on the map data, a plurality of road segments for the at least one cluster associated with a ramp;

[0153] determining a length of each of the plurality of road segments for the at least one cluster; and

[0154] The classification data is generated based on the plurality of road segments and the length of each of the plurality of road segments to identify the at least one cluster as an interchange.

[0155] 27. The method of claim 19, comprising:

[0156] determining a plurality of road segments associated with the at least one cluster to complete a loop;

[0157] determining, based on the map data, that at least one road segment of the plurality of road segments is associated with a ramp; and

[0158] The classification data is generated to identify the at least one cluster as a roundabout.

[0159] 28. The method of claim 19, comprising:

[0160] determining that the at least one cluster includes a number of nodes below a threshold amount; and

[0161] The classification data is generated based on the determination to identify the at least one cluster as an intersection.

[0162] 29. The method of claim 19, comprising applying a machine learning process to the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes to generate the at least one cluster.

[0163] 30. The method of claim 19, comprising:

[0164] generating a software package based on the classification data; and

[0165] The software package is sent to at least one vehicle.

[0166] 31. The method of claim 19, comprising performing at least one simultaneous localization and mapping (SLAM) operation based on the classification data.

[0167] 32. The method of claim 31 , wherein the at least one SLAM operation comprises generating a high-definition (HD) map, the method comprising updating a path planning operation based on the HD map.

[0168] 33. The method of claim 19, wherein the classification data characterizes an intersection type, the method comprising:

[0169] determining a complexity level for the area to be traveled based on the intersection type for the area;

[0170] determining that the complexity level for the region exceeds a threshold; and

[0171] Turn off autopilot mode when entering said area.

[0172] 34. The method of claim 19, wherein the classification data characterizes a type of intersection along each of a plurality of routes, the method comprising:

[0173] determining a score for each of the plurality of routes based on the intersection type corresponding to each route; determining a route of the plurality of routes based on the determined score; and

[0174] The determined one of the plurality of routes is signaled to an autonomous driving application.

[0175] 35. The method of claim 19, wherein a server comprises the at least one processor.

[0176] 36. The method of claim 19, wherein a vehicle comprises the at least one processor.

[0177] 37. A non-transitory machine-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising:

[0178] obtaining map data representing the area;

[0179] determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data;

[0180] filtering the plurality of nodes based on a first characteristic to determine a portion of the plurality of nodes, and filtering the plurality of road segments based on a second characteristic to determine a portion of the plurality of road segments;

[0181] clustering the portion of the plurality of road segments based on a first distance between each of the plurality of road segments;

[0182] clustering the portion of the plurality of nodes based on a second distance between each node in the plurality of nodes;

[0183] generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; and

[0184] Classification data identifying a classification of the at least one cluster is generated.

[0185] 38. The non-transitory machine-readable storage medium of claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0186] filtering the plurality of nodes based on a first characteristic to determine the portion of the plurality of nodes; and

[0187] The plurality of road segments are filtered based on a second feature to determine the portion of the plurality of road segments.

[0188] 39. The non-transitory machine-readable storage medium of claim 38, wherein the first characteristic comprises a threshold number of incoming roads, and wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0189] determining a number of incoming roads for each of the plurality of nodes; and

[0190] The plurality of nodes are filtered based on a threshold number of the incoming roads and the number of the incoming roads for each of the plurality of nodes.

[0191] 40. The non-transitory machine-readable storage medium of claim 39, wherein the first characteristic comprises a threshold amount of off-road travel, and wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0192] determining a number of exit roads for each of the plurality of nodes; and

[0193] The plurality of nodes are filtered based on the threshold number of off-roads and the number of off-roads for each of the plurality of nodes.

[0194] 41. The non-transitory machine-readable storage medium of claim 37, wherein the first distance is a minimum distance between each of the plurality of road segments, and the second distance is a minimum distance between each of the plurality of nodes.

[0195] 42. A non-transitory machine-readable storage medium according to claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations, the operations comprising generating the classification data based on the number of the plurality of nodes and the number of the plurality of road segments associated with the at least one cluster.

[0196] 43. The non-transitory machine-readable storage medium of claim 37, wherein the map data represents a road, and wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0197] determining that the plurality of nodes correspond to locations where at least two roads intersect; and

[0198] The plurality of road sections are determined based on a road connecting at least two nodes among the plurality of nodes.

[0199] 44. The non-transitory machine-readable storage medium of claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0200] determining, based on the map data, a plurality of road segments for the at least one cluster associated with a ramp;

[0201] determining a length of each of the plurality of road segments for the at least one cluster; and

[0202] The classification data is generated based on the plurality of road segments and the length of each of the plurality of road segments to identify the at least one cluster as an interchange.

[0203] 45. The non-transitory machine-readable storage medium of claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0204] determining a plurality of road segments associated with the at least one cluster to complete a loop;

[0205] determining, based on the map data, that at least one road segment of the plurality of road segments is associated with a ramp; and

[0206] The classification data is generated to identify the at least one cluster as a roundabout.

[0207] 46. ​​The non-transitory machine-readable storage medium of claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0208] determining that the at least one cluster includes a number of nodes below a threshold amount; and

[0209] The classification data is generated based on the determination to identify the at least one cluster as an intersection.

[0210] 47. A non-transitory machine-readable storage medium according to claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising applying a machine learning process to the clustered portions of the plurality of road segments and the clustered portions of the plurality of nodes to generate the at least one cluster.

[0211] 48. The non-transitory machine-readable storage medium of claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0212] generating a software package based on the classification data; and

[0213] The software package is sent to at least one vehicle.

[0214] 49. The non-transitory machine-readable storage medium of claim 37, wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising performing at least one simultaneous localization and mapping (SLAM) operation based on the classified data.

[0215] 50. The non-transitory machine-readable storage medium of claim 49, wherein the at least one SLAM operation comprises generating a high-definition (HD) map, and wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising updating a path planning operation based on the HD map.

[0216] 51. The non-transitory machine-readable storage medium of claim 37, and wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0217] determining a complexity level for the area to be traveled based on the intersection type for the area;

[0218] determining that the complexity level for the region exceeds a threshold; and

[0219] Turn off autopilot mode when entering said area.

[0220] 52. The non-transitory machine-readable storage medium of claim 37, wherein the classification data characterizes a type of intersection along each of a plurality of routes, and wherein the instructions, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

[0221] determining a score for each of the plurality of routes based on the intersection type corresponding to each route; determining a route of the plurality of routes based on the determined score; and

[0222] The determined one of the plurality of routes is signaled to an autonomous driving application.

[0223] 53. The non-transitory machine-readable storage medium of claim 37, wherein a server comprises the at least one processor.

[0224] 54. The non-transitory machine-readable storage medium of claim 37, wherein a vehicle comprises the at least one processor.

[0225] 55. A device comprising:

[0226] means for obtaining map data representing an area;

[0227] means for determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data;

[0228] means for filtering the plurality of nodes based on a first characteristic to determine a portion of the plurality of nodes, and filtering the plurality of road segments based on a second characteristic to determine a portion of the plurality of road segments;

[0229] means for clustering the portion of the plurality of road segments based on a first distance between each of the plurality of road segments;

[0230] means for clustering the portion of the plurality of nodes based on a second distance between each node of the plurality of nodes;

[0231] means for generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; and

[0232] Means for generating classification data identifying a classification of the at least one cluster.

[0233] 56. The apparatus of claim 55, comprising:

[0234] filtering the plurality of nodes based on a first characteristic to determine the portion of the plurality of nodes; and

[0235] The plurality of road segments are filtered based on a second feature to determine the portion of the plurality of road segments.

[0236] 57. The apparatus of claim 56, wherein the first characteristic comprises a threshold number of incoming roads, the apparatus comprising:

[0237] determining a number of incoming roads for each of the plurality of nodes; and

[0238] The plurality of nodes are filtered based on a threshold number of the incoming roads and the number of the incoming roads for each of the plurality of nodes.

[0239] 58. The apparatus of claim 57, wherein the first characteristic comprises a threshold number of departures from a road, the apparatus comprising:

[0240] determining a number of exit roads for each of the plurality of nodes; and

[0241] The plurality of nodes are filtered based on the threshold number of off-roads and the number of off-roads for each of the plurality of nodes.

[0242] 59. The apparatus of claim 55, wherein the first distance is a minimum distance between each of the plurality of road segments, and the second distance is a minimum distance between each of the plurality of nodes.

[0243] 60. The apparatus of claim 55, comprising means for generating the classification data based on a number of the plurality of nodes and a number of the plurality of road segments associated with the at least one cluster.

[0244] 61. The apparatus of claim 55, wherein the map data represents a road, the apparatus comprising:

[0245] determining that the plurality of nodes correspond to locations where at least two roads intersect; and

[0246] The plurality of road sections are determined based on a road connecting at least two nodes among the plurality of nodes.

[0247] 62. The apparatus of claim 55, comprising:

[0248] determining, based on the map data, a plurality of road segments for the at least one cluster associated with a ramp;

[0249] determining a length of each of the plurality of road segments for the at least one cluster; and

[0250] The classification data is generated based on the plurality of road segments and the length of each of the plurality of road segments to identify the at least one cluster as an interchange.

[0251] 63. The apparatus of claim 55, comprising:

[0252] determining a plurality of road segments associated with the at least one cluster to complete a loop;

[0253] determining, based on the map data, that at least one road segment of the plurality of road segments is associated with a ramp; and

[0254] The classification data is generated to identify the at least one cluster as a roundabout.

[0255] 64. The apparatus of claim 55, comprising:

[0256] determining that the at least one cluster includes a number of nodes below a threshold amount; and

[0257] The classification data is generated based on the determination to identify the at least one cluster as an intersection.

[0258] 65. The method of claim 19, comprising applying a machine learning process to the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes to generate the at least one cluster.

[0259] 66. The apparatus of claim 55, comprising:

[0260] generating a software package based on the classification data; and

[0261] The software package is sent to at least one vehicle.

[0262] 67. The apparatus of claim 55, comprising performing at least one simultaneous localization and mapping (SLAM) operation based on the classification data.

[0263] 68. The apparatus of claim 67, wherein the at least one SLAM operation comprises generating a high definition (HD) map, the apparatus comprising means for updating a path planning operation based on the HD map.

[0264] 69. The apparatus of claim 55, wherein the classification data characterizes an intersection type, the apparatus comprising:

[0265] determining a complexity level for the area to be traveled based on the intersection type for the area;

[0266] determining that the complexity level for the region exceeds a threshold; and

[0267] Turn off autopilot mode when entering said area.

[0268] 70. The apparatus of claim 55, wherein the classification data characterizes a type of intersection along each of a plurality of routes, the apparatus comprising:

[0269] determining a score for each of the plurality of routes based on the intersection type corresponding to each route;

[0270] determining a route among the plurality of routes based on the determined score; and

[0271] The determined one of the plurality of routes is signaled to an autonomous driving application.

[0272] 71. The device of claim 55, wherein the device is a server.

[0273] 72. The device of claim 55, wherein the device is a vehicle.

[0274] Although the method described above refers to the illustrated flow chart, many other ways of performing the actions associated with the method can be used. For example, the order of some operations can be changed, and some embodiments can omit one or more operations in the described operations and / or include additional operations.

[0275] In addition, the methods and systems described herein can be embodied at least in part in the form of computer-implemented processes and devices for practicing those processes. The disclosed methods can also be embodied at least in part in the form of a tangible, non-transitory machine-readable storage medium encoded with computer program code. For example, the method can be embodied in hardware, executable instructions (e.g., software) executed by a processor, or a combination of the two. The medium may include, for example, RAM, ROM, CD-ROM, DVD-ROM, BD-ROM, hard drive, flash memory, or any other non-transitory machine-readable storage medium. When the computer program code is loaded into a computer and executed by the computer, the computer becomes a device for practicing the method. The method can also be embodied at least in part in the form of a computer, with the computer program code being loaded into or executed in the computer so that the computer becomes a special-purpose computer for practicing the method. When implemented on a general-purpose processor, the computer program code segments configure the processor to create specific logic circuits. The method can alternatively be embodied at least in part in a dedicated integrated circuit for executing the method.

[0276] The present subject matter has been described with reference to exemplary embodiments. Because they are merely examples, the claimed invention is not limited to these embodiments. Changes and modifications may be made without departing from the spirit of the claimed subject matter. The claims are intended to cover such changes and modifications.

Claims

1. A device, comprising: Memory; and a processor coupled to the memory, the processor being configured to: obtaining map data representing the area; determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data; clustering at least a portion of the plurality of road segments based on a first distance between each of the plurality of road segments; clustering at least a portion of the plurality of nodes based on a second distance between each node in the plurality of nodes; generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; as well as Classification data identifying a classification of the at least one cluster is generated.

2. The apparatus of claim 1 , wherein the processor is further configured to: filtering the plurality of nodes based on a first characteristic to determine the portion of the plurality of nodes; and The plurality of road segments are filtered based on a second feature to determine the portion of the plurality of road segments.

3. The apparatus of claim 2, wherein the first characteristic comprises a threshold number of incoming roads, and wherein the processor is further configured to: determining a number of incoming roads for each of the plurality of nodes; and The plurality of nodes are filtered based on a threshold number of the incoming roads and the number of the incoming roads for each of the plurality of nodes.

4. The apparatus of claim 3, wherein the first characteristic comprises a threshold number of off-road trips, and wherein the processor is further configured to: determining a number of exit roads for each of the plurality of nodes; and The plurality of nodes are filtered based on the threshold number of off-roads and the number of off-roads for each of the plurality of nodes. The apparatus of claim 1 , wherein the first distance is a minimum distance between each of the plurality of road segments, and the second distance is a minimum distance between each of the plurality of nodes. 6 . The apparatus of claim 1 , wherein the processor is configured to generate the classification data based on a number of the plurality of nodes and a number of the plurality of road segments associated with the at least one cluster.

7. The apparatus of claim 1 , wherein the map data represents a road, and wherein the processor is configured to: determining that the plurality of nodes correspond to locations where at least two roads intersect; and The plurality of road sections are determined based on a road connecting at least two nodes among the plurality of nodes.

8. The apparatus of claim 1 , wherein the processor is configured to: determining, based on the map data, a plurality of road segments for the at least one cluster associated with a ramp; determining a length of each of the plurality of road segments for the at least one cluster; as well as The classification data is generated based on the plurality of road segments and the length of each of the plurality of road segments to identify the at least one cluster as an interchange.

9. The apparatus of claim 1 , wherein the processor is configured to: determining a plurality of road segments associated with the at least one cluster to complete a loop; determining, based on the map data, that at least one road segment of the plurality of road segments is associated with a ramp; as well as The classification data is generated to identify the at least one cluster as a roundabout.

10. The apparatus of claim 1, wherein the processor is configured to: determining that the at least one cluster includes a number of nodes below a threshold amount; and The classification data is generated based on the determination to identify the at least one cluster as an intersection.

11. The apparatus of claim 1, wherein the processor is further configured to apply a machine learning process to the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes to generate the at least one cluster.

12. The apparatus of claim 1 , wherein the processor is further configured to: generating a software package based on the classification data; and The software package is sent to at least one vehicle.

13. The apparatus of claim 1, wherein the processor is further configured to perform at least one simultaneous localization and mapping (SLAM) operation based on the classification data.

14. The apparatus of claim 13, wherein the at least one SLAM operation comprises generating a high-definition (HD) map, wherein the processor is further configured to update a path planning operation based on the HD map.

15. The apparatus of claim 1 , wherein the classification data characterizes an intersection type, and wherein the processor is further configured to: determining a complexity level for the area to be traveled based on the intersection type for the area; determining that the complexity level for the region exceeds a threshold; and Turn off autopilot mode when entering said area.

16. The apparatus of claim 1 , wherein the classification data characterizes a type of intersection along each of a plurality of routes, and wherein the processor is further configured to: determining a score for each of the plurality of routes based on the intersection type corresponding to each route; determining a route among the plurality of routes based on the determined score; and The determined one of the plurality of routes is signaled to an autonomous driving application. The device of claim 1 , wherein the device is a server.

18. The device of claim 1, wherein the device is a vehicle.

19. A method performed by at least one processor, the method comprising: obtaining map data representing the area; determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data; clustering at least a portion of the plurality of road segments based on a first distance between each of the plurality of road segments; clustering at least a portion of the plurality of nodes based on a second distance between each node in the plurality of nodes; generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; as well as Classification data identifying a classification of the at least one cluster is generated.

20. The method according to claim 19, comprising: filtering the plurality of nodes based on a first characteristic to determine the portion of the plurality of nodes; as well as The plurality of road segments are filtered based on a second feature to determine the portion of the plurality of road segments.

21. The method of claim 20, wherein the first characteristic comprises a threshold number of incoming roads, the method comprising: determining a number of access roads for each of the plurality of nodes; as well as The plurality of nodes are filtered based on a threshold number of the incoming roads and the number of the incoming roads for each of the plurality of nodes.

22. The method of claim 21 , wherein the first characteristic comprises a threshold number of off-road trips, the method comprising: determining a number of exit roads for each of the plurality of nodes; as well as The plurality of nodes are filtered based on the threshold number of off-roads and the number of off-roads for each of the plurality of nodes.

23. The method of claim 19, comprising generating the classification data based on a number of the plurality of nodes and a number of the plurality of road segments associated with the at least one cluster.

24. The method of claim 19, wherein the map data represents a road, the method comprising: determining that the plurality of nodes correspond to locations where at least two roads intersect; as well as The plurality of road sections are determined based on a road connecting at least two nodes among the plurality of nodes.

25. The method of claim 19, comprising: determining, based on the map data, a plurality of road segments for the at least one cluster associated with a ramp; determining a length of each of the plurality of road segments for the at least one cluster; as well as The classification data is generated based on the plurality of road segments and the length of each of the plurality of road segments to identify the at least one cluster as an interchange.

26. The method of claim 19, comprising: determining a plurality of road segments associated with the at least one cluster to complete a loop; determining, based on the map data, that at least one road segment of the plurality of road segments is associated with a ramp; as well as The classification data is generated to identify the at least one cluster as a roundabout.

27. A non-transitory machine-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising: obtaining map data representing the area; determining a plurality of nodes and a plurality of road segments connecting the plurality of nodes based on the map data; clustering at least a portion of the plurality of road segments based on a first distance between each of the plurality of road segments; clustering at least a portion of the plurality of nodes based on a second distance between each node in the plurality of nodes; generating at least one cluster based on the clustered portion of the plurality of road segments and the clustered portion of the plurality of nodes; as well as Classification data identifying a classification of the at least one cluster is generated.