Traffic congestion on roads can cause problems, such as delays for drivers and hindering the ability of first responders to quickly arrive at a destination. Users, autonomous vehicles, and user computing devices with mapping applications may not receive accurate traffic information to be able to quickly re-route when roads are congested.
The examples disclosed herein perform real-time traffic information generation using smart traffic signals by using real-time data from traffic signals to reduce delays for users and optimize traffic flow. Real-time data may be received from the traffic signals and stored in a database associated with a central computing system. The real-time data may be retrieved from the database and used to generate an outcome based on a request from a user or a computing device. The outcome may be used by the user or the computing device to make informed route decisions that reduce delays during travel and optimize traffic flow of the roads.
In one example, a method for real-time traffic information generation using smart traffic signals is provided. The method includes receiving, by a central computing device comprising a data structure, traffic data from a plurality of traffic signals. The method further includes storing, by the central computing device, the traffic data in the data structure. The method further includes receiving, by the central computing device, a request for information associated with the traffic data from a computing device. The method further includes generating, by the central computing device, a result based on the traffic data and the request for information associated with the traffic data. The method further includes sending, by the central computing device, the result to the computing device.
In another example, a computing device for real-time traffic information generation using smart traffic signals is provided. The computing device includes a memory and a processor device coupled to the memory. The processor device is to receive traffic data from a plurality of traffic signals. The processor device is further to store the traffic data in a data structure. The processor device is further to receive a request for information associated with the traffic data from a computing device. The processor device is further to generate a result based on the traffic data and the request for information associated with the traffic data. The processor device is further to send the result to the computing device.
In another example, a non-transitory computer-readable storage medium for real-time traffic information generation using smart traffic signals is provided. The non-transitory computer-readable storage medium includes computer-executable instructions to cause a processor device to receive traffic data from a plurality of traffic signals. The instructions further cause the processor device to store the traffic data in a data structure. The instructions further cause the processor device to receive a request for information associated with the traffic data from a computing device. The instructions further cause the processor device to generate a result based on the traffic data and the request for information associated with the traffic data. The instructions further cause the processor device to send the result to the computing device.
Individuals will appreciate the scope of the disclosure and realize additional aspects thereof after reading the following detailed description of the examples in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.
The examples set forth below represent the information to enable individuals to practice the examples and illustrate the best mode of practicing the examples. Upon reading the following description in light of the accompanying drawing figures, individuals will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
Any flowcharts discussed herein are necessarily discussed in some sequence for purposes of illustration, but unless otherwise explicitly indicated, the examples are not limited to any particular sequence of steps. The use herein of ordinals in conjunction with an element is solely for distinguishing what might otherwise be similar or identical labels, such as “first message” and “second message,” and does not imply an initial occurrence, a quantity, a priority, a type, an importance, or other attribute, unless otherwise stated herein. The term “about” used herein in conjunction with a numeric value means any value that is within a range of ten percent greater than or ten percent less than the numeric value. As used herein and in the claims, the articles “a” and “an” in reference to an element refers to “one or more” of the elements unless otherwise explicitly specified. The word “or” as used herein and in the claims is inclusive unless contextually impossible. As an example, the recitation of A or B means A, or B, or both A and B. The word “data” may be used herein in the singular or plural depending on the context.
Traffic congestion on roads can cause problems, such as delays for drivers and hindering the ability of first responders to quickly arrive at a destination. Users, autonomous vehicles, and user computing devices with mapping applications may not receive accurate traffic information to be able to quickly re-route when roads are congested.
The examples disclosed herein perform real-time traffic information generation using smart traffic signals by using real-time data from traffic signals to reduce delays for users and optimize traffic flow. A central computing system may receive real-time data from the traffic signals that is associated with the traffic on the roads where the traffic signals operate. The real-time data can be stored in a data structure, such as a database, associated with the central computing system, to be securely stored and easily accessed by computing devices and applications. The central computing system may retrieve the real-time data from the data structure and use the real-time data to generate an outcome based on a request from a user or a computing device, such as an autonomous vehicle or a mapping application on a user computing device.
The central computing system may generate the outcome by using a machine-learning model, images taken by cameras associated with the traffic signals, and vehicle speed information obtained by sensors associated with the traffic signals. The machine-learning model may determine, based on the images and/or the vehicle speed information, an amount of current traffic congestion and generate a route to avoid and alleviate the traffic congestion. The user or the computing device can use the route as the outcome to make informed route decisions that reduce delays during travel and optimize traffic flow of the roads.
The central computing system may send the outcome to the user or computing device, such as sending the route generated by the machine-learning model of the central computing system to a user computing device, autonomous vehicle, or a computing device in a first responder vehicle. The central computing system may send the real-time data to a computing device and the computing device, such as via a mapping application, can generate a traffic map or route based on the real-time data obtained from the traffic signals. As a result, traffic congestion and delays for drivers can be reduced in real-time.
Processing the traffic data and generating information by the central computing system allows for increased scalability and reduced downtime risks, and can be accomplished without on-premise hardware installation, such as when the central computing system is cloud-based. The central computing system facilitates real-time mapping applications of computing devices by providing such precise traffic information in real-time.
In the example of
The traffic data 20 may be based on radar data 34, such as vehicle speeds, collected by the radar device 30 and camera data 36, such as images, collected by the camera 32. For instance, the traffic data 20 may be based on the radar data 34 collected by the radar device 30 and the camera data 36 collected by the camera 32, and the radar device 30 and the camera 32 may be associated with one or more traffic signals from among the traffic signals 22, such as when the radar device 30 and the camera 32 are communicatively coupled to the computing device that is communicatively coupled to the one or more traffic signals. The traffic data 20 may be sent by the computing devices 24 to the central computing device 12 over a network, such as a private LTE or 4G network as non-limiting examples. The traffic data 20 may include at least one of a traffic signal identifier or id number associated with a traffic signal from among the traffic signals 22, a current date and a current time, such as the date and time at which the traffic data 20 was collected or sent over the network, a traffic speed (e.g., the average speed of the vehicles driving on the road), a traffic image URL to a location where the traffic image is stored, and a traffic congestion level. The traffic data 20 may, in some examples, be in the form of a JSON (JavaScript Object Notation) that includes the traffic signal identifier, date, time, traffic speed, traffic image URL, and traffic congestion level associated with the traffic signals 22. The central computing device 12 may store the traffic data 20 in the data structure 18. The traffic data 20 stored in the data structure 18 may be encrypted and protected by access controls that permit authorized users to access the traffic data 20.
The central computing device 12 may receive a request 38 from a computing device 40 for information associated with the traffic data 20. The request 38 may be an Application Programming Interface (API) request from the computing device 40 for the information associated with the traffic data 20, such as information about locations with heavy traffic, routes, maps, and travel times based on the traffic in an area, as non-limiting examples. The computing device 40 may be a vehicle 42, such as an autonomous vehicle or an emergency service vehicle, or a user device 44 (e.g., a phone, tablet, wearable device, or laptop) associated with a user of a vehicle, as non-limiting examples. In some implementations, the request 38 may be an API request from the computing device 40 for the traffic data 20. The API request 38 may be sent from the computing device 40 from any location, such as a driver who wants to check traffic conditions on a route in real-time via the driver's computing device (e.g., the user device 44). In some implementations, the API request 38 may be based on a location 62 of the computing device 40. For instance, the API request 38 may include the location 62 of the computing device 40 and the central computing device 12 can use the location 62 to obtain, from the data structure 18, the traffic data 20 or the information associated with the traffic data 20 that is associated with the traffic signals 22 within a range of the location 62.
The central computing device 12 may generate a result 46 based on the traffic data 20 and the request 38 for information associated with the traffic data 20 in real-time. The result 46 may be at least one of an alert 48, a route 50, a traffic map 52, or a travel time 54, as non-limiting examples. For instance, the central computing device 12 may use machine learning to determine the amount of traffic congestion on the roads or at an intersection associated with the traffic signals 22 based on the traffic data 20, and use the amount of traffic congestion to generate the result 46. The central computing device 12 may send the result 46 to the computing device 40. The result 46 may also be stored in the data structure 18 and may be retrieved from the data structure 18, such as by querying the data structure 18, by the central computing device 12, the computing device 40, or another device of the computing system 10. In embodiments where the request 38 is an API request, the central computing device 12 may send an API response 56 to the computing device 40 and the API response 56 may include the result 46. After the sending the result 46 from the central computing device 12 to the computing device 40, the computing device 40 may perform an action 58 based on the result 46. For example, the traffic data 20 may indicate that there is heavy traffic at a traffic signal close by and the request 38 for information associated with the traffic data 20 may be a request for a route around the heavy traffic. The central computing device 12 can use the traffic data 20 and the request 38 for the route to generate the result 46 of a route around the heavy traffic, which can be sent by the central computing device 12 to the computing device 40. The computing device 40 can then perform the action 58 in real-time, such as re-routing to take the route 50 when the computing device 40 is a component of an autonomous vehicle (e.g., the vehicle 42) or displaying the route in a mapping application when the computing device 40 is a user computing device (e.g., the user device 44).
In embodiments where the request 38 is an API request from the computing device 40 for the traffic data 20, the central computing device 12 may retrieve the traffic data 20 from the data structure 18 and send an API response 56 that includes the traffic data 20 to the computing device 40. For instance, the central computing device 12 may retrieve the traffic data 20 from a database that stores the traffic data 20 for a traffic signal of the traffic signals 22 (e.g., the data structure 18) by querying the database with a traffic signal identifier, which may be identified in the request 38 or be based on a location, to retrieve a record of the traffic data 20 for the traffic signal with the traffic signal identifier from the query. The computing device 40 may then receive the API response 56 from the central computing device 12 and generate a route 60 based on the traffic data 20 in the API response 56. The traffic data 20 may be one or more JSONs and the JSONs can include identifiers for each traffic signal of the traffic signals 22, traffic images, and a traffic congestion level associated with the traffic signal. The API response 56 may include the traffic data 20 JSONs which the computing device 40 can parse for information to use when generating the route 50. For example, the traffic data 20 may identify intersections that are blocked and the computing device 40 may generate the route 50 to go around the blocked intersections based on the traffic data 20.
The machine-learning model 66 can determine a traffic congestion level 72 based on the amount of vehicles 68 in the traffic images 64 and the traffic speed 70. The traffic congestion level 72 may be a metric, such as a number or percentage that identifies an amount of traffic congestion on the roads, or a rating or grouping, such as “low,” “moderate,” or “high,” as non-limiting examples. The central computing device 12, such as by the machine-learning model 66, can generate the result 46 that is sent from the central computing device 12 to the computing device 40 based on the traffic congestion level 72. For example, the traffic congestion level 72 may be “high” at traffic signal 22-1 and the result 46 generated by the central computing device 12, such as by the machine-learning model 66, may be the route 50 or the traffic map 52 with detours around the traffic signal 22-1 or the travel time 54 may be increased based on the high traffic congestion at traffic signal 22-1.
In some embodiments, the central computing device 12 may generate the result 46 by obtaining the traffic images 64 from the traffic data 20, determining, by the machine-learning model 66, the amount of vehicles 68 in the traffic images 64, determining, by the machine-learning model 66, the traffic congestion level 72 based on the amount of vehicles 68 in the traffic images 64, and generating the result 46 that is sent from the central computing device 12 to the computing device 40 based on the traffic congestion level 72. In other embodiments, the central computing device 12 may generate the result 46 by obtaining the traffic speed 70 from the traffic data 20, determining, by the machine-learning model 66, the traffic congestion level 72 based on the traffic speed 70, and generating the result 46 that is sent from the central computing device 12 to the computing device 40 based on the traffic congestion level 72.
The central computing device 12, such as by the machine-learning model 66, can generate a route 74 based on the traffic data 20 and the traffic congestion level 72, and the result 46 sent from the central computing device 12 to the computing device 40 can include the route 74. The computing device 40 can use the route 74, such as displaying the route 74 in a mapping application of the user device 44 or in a display console of the vehicle 42, as non-limiting examples. For instance, the user device 44 may be a computing device of a first responder in an emergency vehicle that can display the route 74 to take to quickly get to the emergency vehicle's destination. For example, the traffic data 20 may identify intersections that are blocked, the traffic congestion level 72 may be “moderate,” and the central computing device 12 may generate the route 74 to go around the blocked intersections and the moderate traffic and send the route 74 to the computing device 40 to use.
The central computing device 12 may receive updated traffic data 76 from the traffic signals 22 (e.g., from the computing devices 24) and determine an updated traffic congestion level 78 based on the updated traffic data 76. For instance, the central computing device 12 can obtain new or updated traffic images and/or new or updated traffic speeds from the updated traffic data 76, the machine-learning model 66 can determine an amount of vehicles in the updated traffic images, and the machine-learning model 66 can determine the updated traffic congestion level 78 based on the amount of vehicles in the new or updated traffic images and/or the new or updated traffic speeds. The central computing device 12, such as by the machine-learning model 66, can generate an updated route 80 based on the updated traffic data 76 and the updated traffic congestion level 78, and the result 46 sent from the central computing device 12 to the computing device 40 can include the updated route 80. The computing device 40 can use the updated route 80, such as a mapping application of the user device 44 or the vehicle 42 that can re-route the driver and display the updated route 80, as non-limiting examples.
For example, the central computing device 12 may determine that intersection 82-3 with traffic signal 22-1, traffic signal 22-2, and traffic signal 22-3 is blocked based on the traffic data 20 that corresponds to the traffic signals in the intersection. The central computing device 12 can receive traffic data 84-3 from traffic signal 22-1, traffic signal 22-2, and traffic signal 22-3 in the blocked intersection, traffic data 84-2 from the traffic signals in intersection 82-2 which is adjacent to the blocked intersection 82-3, and traffic data 84-6 from the traffic signals in intersection 82-6 which is adjacent to the blocked intersection 82-3. The blocked intersection 82-3 can be separated from the unblocked intersections based on the traffic data 84, and the central computing device 12, such as by the machine-learning model 66, can create a path (e.g., the route 86) to divert traffic away from the blocked intersection 82-3 and send the path to the computing device 40 and/or store the path in the data structure 18.
In some implementations, the request 38 for information associated with the traffic data may be an API request for a route sent by the computing device 40 and the central computing device 12 may generate the result 46 of a route as requested in the API request. For example, a user may request a route due to traffic and use the user device 44 to send an API request for a new route. The central computing device 12 can obtain the traffic data 20, determine that an intersection is blocked, receive updated traffic data 84 from each traffic signal in the blocked intersection and adjacent to the blocked intersection, generate the route 86 based on the traffic data 84, and send the route 86 to the user device 44 that requested the route in real-time.
The system bus 106 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. The system memory 104 may include non-volatile memory 108 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 110 (e.g., random-access memory (RAM)). A basic input/output system (BIOS) 112 may be stored in the non-volatile memory 108 and can include the basic routines that help to transfer information between elements within the computing device 100. The volatile memory 110 may also include a high-speed RAM, such as static RAM, for caching data.
The computing device 100 may further include or be coupled to a non-transitory computer-readable storage medium, such as a storage device 114, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device 114 and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
A number of modules can be stored in the storage device 114 and in the volatile memory 110, including an operating system 116 and one or more program modules 124 (e.g., the data structure 18), which may implement the functionality described herein in whole or in part. All or a portion of the examples may be implemented as a computer program product 118 stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device 114, which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device 102 to carry out the steps described herein. Thus, the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on the processor device 102. The processor device 102 may serve as a controller, or control system, for the computing device 100 that is to implement the functionality described herein.
An operator, such as a user, may also be able to enter one or more configuration commands through a keyboard (not illustrated), a pointing device such as a mouse (not illustrated), or a touch-sensitive surface such as a display device (not illustrated). Such input devices may be connected to the processor device 102 through an input device interface 120 that is coupled to the system bus 106 but can be connected by other interfaces such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The computing device 100 may also include a communications interface 122 suitable for communicating with the network as appropriate or desired. The computing device 100 may also include a video port (not illustrated) configured to interface with the display device (not illustrated), to provide information to the user.
Individuals will recognize improvements and modifications to the preferred examples of the disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.