Abstract:
The disclosure provides systems and methods for detecting, characterizing, and predicting moving traffic obstacles. The systems and methods are suitable for densely populated areas in resource-constrained regions. With the characterizations and predictions of moving traffic obstacles, a variety of benefits can accrue to individuals and devices that use traffic information.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims foreign priority to Kenyan application KE/P/2016/2501 filed Jun. 9, 2016 and entitled METHODS AND SYSTEM FOR MOVING TRAFFIC OBSTACLE DETECTION, the complete disclosure of which is expressly incorporated herein by reference, in its entirety, for all purposes. 
       BACKGROUND 
       [0002]    In embodiments, the technical field of the invention is methods and systems for detecting and managing moving traffic obstacles. 
         [0003]    Traffic congestion in developing cities like Nairobi, Kenya can be significantly impacted by the presence of “Moving Traffic Obstacles” (MTOs). These MTOs are those events that temporarily exist on the road, moving with or against the direction of traffic at slower speeds. They include two-wheelers, pushcarts, animals, and pedestrians, which have quite different influence on traffic compared with static obstacles, such as potholes and speed bumps. 
         [0004]    The existing sophisticated tools for detecting road obstacles can be prohibitively expensive and often unpractical to deploy in developing countries. Smartphones and supporting 3G infrastructure are wide spread even in developing countries and have great potential to be used to improve traffic quality and safety because they are relatively low-cost, ubiquitous, and carry a suite of sensors that can be used to measure the movement of vehicles. 
       SUMMARY OF THE INVENTION 
       [0005]    This invention addresses in part and in embodiments the problem of multiple moving traffic obstacles detection from spatiotemporally sparse and probabilistic observations from smartphone-based prove cars. Herein is introduced an algorithm based on the Hough Transform but extended to work with observations from probabilistic classifiers. The methods and systems herein have a better foundation with mathematical formulation for Probabilistic Hough Transform. 
         [0006]    In an aspect, then, is a method for maneuvering a vehicle in a roadway having potential traffic obstacles, the method comprising: establishing a communications link between a server and a device in a vehicle; and communicating an alert to the device, wherein the alert is configured to cause the vehicle to maneuver based on a potential moving traffic obstacle path, wherein the potential moving traffic obstacle path is determined based on sensor data for a road segment, the sensor data corresponding to observations of an obstacle at a location along the road segment over a period of time. In embodiments: 
         [0007]    the sensor data is obtained from one or more sensors selected from: an onboard sensor on one or more probe vehicles as the one or more probe vehicles traverses the road segment; a fixed location sensor monitoring the road segment; and a combination thereof; 
         [0008]    the sensor data corresponds to observations of one or more obstacles at one or more locations along the road segment over a period of time; 
         [0009]    the alert is generated when the vehicle comes into proximity of the potential moving traffic obstacle path; 
         [0010]    the alert is generated when the vehicle comes into proximity such as within the same road segment or an adjacent road segment of the potential moving traffic obstacle path; 
         [0011]    the alert is generated when the vehicle comes into proximity of the potential moving traffic obstacle path, and wherein the alert is configured to alter a user interface to display information suitable to cause a driver to initiate a maneuver, or wherein the alert is configured to cause an autonomous vehicle control system to initiate a maneuver; 
         [0012]    determination of the potential moving traffic obstacle path involves: receiving the sensor data for the road segment by a server via a network; determining a set of gray scale pixels potentially missing based on the observations, each pixel representing a time and location combination, and having an associated obstacle probability assigned based on the sensor data; applying a modified Probabilistic Hough Transform to the set of gray scale pixels to obtain a Hough Transform space, wherein each value in the Hough Transform space is a log likelihood supported or opposed by each observation; and identifying the potential moving traffic obstacle path by identifying a linear arrangement of locally maximum peak values in the Hough Transform space; 
         [0013]    the potential moving traffic obstacle path is stored in a potential moving traffic obstacle path database; 
         [0014]    the communication is configured to cause a change in a graphical user interface on the device such that a user is notified of the potential moving traffic obstacle and is further notified of a suggested maneuver based on the potential moving traffic obstacle; 
         [0015]    the communication is configured to cause a change in a graphical user interface on the device such that a user is notified of the potential moving traffic obstacle and is further notified of a suggested maneuver based on the location, direction, speed, and/or identity of the potential moving traffic obstacle; 
         [0016]    the communication is configured to cause a change in a graphical user interface on the device such that a user is notified of the potential moving traffic obstacle and is further notified of a suggested maneuver based on the location, direction, speed, and/or identity of the potential moving traffic obstacle and wherein the user maneuvers the vehicle based on the communication; 
         [0017]    the communication is configured to cause an autonomous vehicle control system to maneuver based on the potential moving traffic obstacle; 
         [0018]    the sensor data originates from one or more vehicles traversing the road segment, and wherein the one or more vehicles is a dedicated probe vehicle or is a non-dedicated vehicle having a mobile device configured to collect and transmit the sensor data; and 
         [0019]    the sensor data is from a camera, accelerometer, gyroscope, or combination thereof. 
         [0020]    In an aspect is a method for maneuvering a vehicle in a roadway having potential traffic obstacles, the method comprising: receiving sensor data for a road segment, the sensor data corresponding to observations of an obstacle at a location along the road segment over a period of time; determining a set of grey scale pixels potentially missing based on the observations, each pixel representing a time and location combination, and having an associated obstacle probability assigned based on the sensor data; applying a modified Probabilistic Hough Transform to the set of grey scale pixels to obtain a Hough Transform space, wherein each value in the Hough Transform space is a log likelihood supported or opposed by each observation; identifying a potential moving traffic obstacle path by identifying a linear arrangement of locally maximum peak values in the Hough Transform space; adding the potential moving traffic obstacle path to a potential moving traffic obstacle database; communicating an alert to a device in a vehicle, wherein the communication comprises the potential moving traffic obstacle path and is configured to cause the vehicle to maneuver based on the potential moving traffic obstacle path. In embodiments: 
         [0021]    each value in the Hough Transform space is an existence probability score supported or opposed by each observation; 
         [0022]    the vehicle receiving the alert is located in the road segment or an adjacent road segment; and 
         [0023]    each pixel has an associated obstacle probability assigned based on the sensor data if the data is not missing. 
         [0024]    In an aspect is a method for instructing a vehicle to maneuver in a roadway, the method comprising: processing, by a server, sensor data received by the server from at least one device comprising a sensor, the sensor data corresponding to observations of an obstacle at a location along a road segment over a period of time, the processing comprising the steps: (a) determining a set of gray scale pixels potentially missing based on the observations, each pixel representing a time and location combination, and having an associated obstacle probability assigned based on the sensor data; (b) applying a modified Probabilistic Hough Transform to the set of gray scale pixels to obtain a Hough Transform space, wherein each value in the Hough Transform space is a log likelihood supported or opposed by each observation; and (c) identifying a potential moving traffic obstacle path by identifying a linear arrangement of locally maximum peak values in the Hough Transform space; establishing a communications link between the server and a device onboard a vehicle, the vehicle located on the road segment; transmitting to the device via the communications link a message comprising information about the potential moving traffic obstacle and instructions for avoiding the potential moving traffic obstacle, wherein the message is configured to alter a graphical user interface of the device or to automatically alter the course of the vehicle. In embodiments: 
         [0025]    the instructions comprise route information configured for display on a GUI and configured to instruct a user to maneuver the vehicle based on the potential moving traffic obstacle; 
         [0026]    the instructions comprise machine-readable instructions configured to cause an autonomous vehicle control system to maneuver the vehicle based on the potential moving traffic obstacle; 
         [0027]    the device comprising a sensor is a fixed device monitoring the road segment or is a mobile device configured to be disposed within a vehicle traversing the road segment; and 
         [0028]    the method further comprises identifying a plurality of potential moving traffic obstacle paths by identifying a plurality of linear arrangements of locally maximum peak values in the Hough Transform space and consolidating the plurality of potential moving traffic obstacle paths. 
         [0029]    In an aspect is a system comprising a processor coupled to a memory, the memory comprising machine-readable instructions configured to cause the processor to carry out the following steps: (a) receiving a plurality of time and location combinations, each combination having an associated obstacle probability assigned based on data from a sensor; (b) applying a modified Probabilistic Hough Transform to the set of time and location combinations to obtain a Hough Transform space, wherein each value in the Hough Transform space is a log likelihood supported or opposed by each observation; and (c) identifying a potential moving traffic obstacle path by identifying a linear arrangement of locally maximum peak values in the Hough Transform space; a communications module coupled to the processor and configured to establish a communications link between the processor and a device in a vehicle and further configured to transmit an alert to the device, the alert generated by the processor based on the vehicle position and the alert containing instructions configured to cause the vehicle to maneuver based on a potential moving traffic obstacle path. In embodiments the system further comprises a mobile device comprising a sensor and configured to be positioned in the vehicle and communicate with the server. 
         [0030]    In an aspect is a system comprising a server, the server comprising: a processor; a memory coupled to the processor, the memory configured to store program instructions for instructing the processor to carry out the methods as above. In embodiments, the system further comprises a mobile device comprising a sensor and configured to be positioned in the vehicle and communicate with the server. 
         [0031]    These and other aspects of the invention will be apparent to one of skill in the art from the description provided herein, including the examples and claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0032]      FIGS. 1A-1D  (collectively,  FIG. 1 ) provides simulated Ground Truth with Noise ( FIG. 1A ) and MTO Detection from Sparse Observations ( FIGS. 1B, 1C, and 1D ). 
           [0033]      FIG. 2  provides an example table providing spatiotemporal data as input. 
           [0034]      FIG. 3  provides an example table providing output of a detected MTO. 
           [0035]      FIG. 4  provides an example flow chart for creating a potential moving traffic obstacle database. 
           [0036]      FIG. 5  provides an example flow chart for a system causing a maneuver in a vehicle. 
       
    
    
     DETAILED DESCRIPTION 
       [0037]    In aspects are devices configured to carry out the methods described herein. The devices may comprise a processor and a memory coupled to the processor, the memory configured to store program instructions for instructing the processor to carry out the method. Further details are provided herein. It will be appreciated, however, that certain components of such devices, and further certain steps of the associated methods, may be omitted from this disclosure for the sake of brevity. The omitted components and steps, however, are merely those that are routinely used in the art and would be easily determined and implemented by those of ordinary skill in the art using nothing more than routine experimentation, the general state of the art, and the disclosure herein. Throughout this specification, where hardware is described, it will be assumed that the devices and methods employing such hardware are suitably equipped with necessary software (including any firmware) to ensure that the devices/methods are fit for the described purpose. 
         [0038]    Given relatively sparse and error-prone observational data of traffic obstacles, herein is described a Moving Traffic Obstacles (MTO) detection algorithm, system, and method extending an image analysis technique called Probabilistic Hough Transform for probabilistic observations as input. A variety of MTOs are possible depending on the context. Common MTOs include vehicles (e.g., tractors, trucks, etc.), people, animals, human-powered vehicles (carts, etc.), escort vehicles, maintenance vehicles, and the like. Such obstacles are to be contrasted, for example, with stationary traffic obstacles such as potholes and speed bumps. An MTO can be either known (i.e., occurring and observable) or potential (i.e., likely to occur based on historical observations), but for the purposes herein these are not distinguished—i.e., a “potential MTO” and an “MTO” are terms used interchangeably unless otherwise indicated or clear from the context. 
         [0039]    In order to detect MTOs from sparse/frugal sensor data, such as those from probe cars, various issues were identified and addressed, at least in part and by the various embodiments, some of which are described below and herein. By “sparse” or “frugal” is meant that the data originates from probe cars or other data sources that are specialized for the task, and this is to be contrasted with large scale (dense) data collection methods such as passive monitoring of nominal traffic or background monitoring on generalized devices (such as cellular phones) located in vehicles. 
         [0040]    The invention described herein provides systems and methods for anticipating and avoiding MTOs. MTOs are often not single but multiple instances of the same obstacle, with each instance separated by random or regular periods of time. It is observed that simply applying linear regression of an MTO track/path does not work well or at all with multiple MTOs, hence the need for a better approach at anticipating and avoiding MTOs. By “avoiding” in this context is meant, for example, relaying appropriate manoeuvre data to the vehicle prior to an encounter with an MTO, with enough forewarning that the vehicle is able, either by manual driver actions or by autonomous vehicle control actions, to execute a recommended maneuver and avoid the MTO (whether or not the MTO is, in fact, present when the vehicle reaches the associated location of the anticipated MTO). 
         [0041]    One aspect of the invention involves spatiotemporal sparseness in the data—i.e., observations are opportunistically performed by probe cars, etc. In embodiments, missing observational data are assumed in the time and location. The data are pixelated, with each pixel representing a time and location of the observation. Observations may include errors in their time and location, especially in location due to the limitation of GPS accuracy (i.e., there are spatiotemporal errors and tolerance in the data). Known and later developed error correction techniques are suitable for correcting in whole or in part the spatiotemporal errors. For example, one method for correcting location errors involves the use of cellular signals to refine the location measurement. 
         [0042]    A suitable tolerance for naturally variable speeds of MTOs may be incorporated into the modelling and calculations described herein. The system may maintain or access a reference database of known MTO classifications (e.g., vehicle, animals, carts, etc.) and associated variations in speed for each classification. This data may be stored on a server associated with the invention or may be stored in a remote server that is accessible by the systems described herein. The reference database may be built from direct observational data or from reference/historical data obtained from third parties. 
         [0043]    An observation of a traffic obstacle can be probabilistic to give the information of confidence in classification from lower-level sensor data features. In embodiments, the information of non-existence of potential MTOs is also a source of information to improve traffic predictability. For example, use of probability allows this by assigning a low probability to a MTO observation. 
         [0044]    In embodiments the methods involve generating a table with equally segmented time (elapsed time) and location (length from the start point of the road segment) as row and column headers in a general concept. Each cell in the table represents a spatiotemporal probability—i.e., that there is an object (moving or stationary) at the specific time and location of the cell. An example table is provided in  FIG. 2 , illustrating the type of input that is suitable in embodiments for the methods described herein.  FIG. 3  then provides an example output from such methods.  FIGS. 2 and 3  are described in more detail in the Examples below. 
         [0045]    In embodiments, due to the sparse population of data, the system can employ an interpolation algorithm (a variety of which are known) for missing observations. 
         [0046]    The systems and methods provide longer-term prediction capability for recurring MTO events with similar conditions (e.g. walking crowds for weekdays, seasonal cows, water push carts after periods of no-rain, etc.). The systems and methods also provide for near-term predictions that allow, for example, estimated times of arrival (e.g., expected MTO in next 1 hour, so ETA can be varied accordingly). Such information can be used, e.g., by a human operator at a data collection center, or by an autonomous vehicle control system when determining a route, or by a route determination software (e.g., GPS system), or combinations thereof, or other users as appropriate. 
         [0047]    The systems and methods enable maneuvering a vehicle in a roadway having potential traffic obstacles. In embodiments, the system comprises a server, the server comprising a processor coupled to a memory. The system may use localized architecture, whereby the server components and the various functionalities of the system are in a single location, or distributed architecture (e.g., cloud architecture), whereby the various functionalities are carried out by various components that may not be in a centralized location. The memory coupled to the processor comprises machine-readable instructions sufficient and configured to instruct the processor and any other components to carry out the methods described herein. 
         [0048]    The server is in electronic communication with a distributed network (e.g., the Internet via a physical connection or a wireless connection) and comprises a communications module configured to establish communications links between the server and external devices. The external devices may be, for example, general purpose mobile devices (cell phones, tablets, etc.), dedicated mobile devices, or a device physically incorporated into a vehicle (e.g., an on-board system integrated into the power and communications systems of a vehicle), and may be in any location having a connection to the distributed network, such as in a vehicle provided that the vehicle is periodically or continuously within communications range of a cellular network. Thus, in embodiments, the server via the communications module is configured to establishing a communications link between a server and a device in a vehicle. 
         [0049]    Communications between the server and the device may be carried out via any suitable data communications channel, such as cellular signals (e.g., 3G, 4G, etc.), Wi-Fi, Bluetooth, and the like. Such communications are suitable for two-way transmissions of data. Data transmitted from the device to the server may include, for example, positional data (e.g., GPS coordinates), movement data (e.g., speed and direction), data obtained from a vehicle (e.g., speedometer readings, etc.), and the like. Such data, particularly positional data, can be used by the server to determine whether the vehicle is in the vicinity of, or moving toward, an MTO, and is therefore in need of receiving instructions for avoiding or otherwise minimizing interaction with the MTO. Data transmitted from the server to the device may include alerts, software updates, maps, MTO data, and the like. 
         [0050]    The alerts described herein are configured to cause a vehicle to maneuver based on a potential moving traffic obstacle path. In embodiments, the alert is configured (e.g., comprises suitable machine-readable instructions) to alter a user interface (e.g., change a graphical user interface) to display or otherwise relay information suitable to cause a driver to initiate a maneuver. The user interface may be on the device itself or may be a component integrated into the vehicle and configured to display information for a driver/user (e.g., a dashboard display, a heads-up display, an audio system, etc.). In embodiments, the alert is configured to cause an autonomous vehicle control system integrated into the vehicle to initiate a maneuver, the maneuver being selected based on the MTO identified as within proximity of the vehicle. The instructions may involve altering a route, changing lanes in a road segment, increasing or decreasing speed, as well as other options. 
         [0051]    In embodiments, the device is a mobile device and is configured to communicate with components integrated into the vehicle, such as via Bluetooth or the like, such that the device can relay instructions to such components. In embodiments, the alert is generated when the vehicle comes into proximity of the potential moving traffic obstacle path. By “proximity” is meant that the vehicle is near to a MTO (as recorded in the database of MTOs maintained on the server or elsewhere), and this may be dictated by a predetermined numerical range or by a contextual range. For example, a vehicle may be in proximity when it is in the same road segment as the MTO, or within a set distance such as within 5, 10, 15, 25, 50, or more than 50 meters of the MTO. The proximity definition may be affected by the context, such as the road segment size, vehicle speed, population density, road segment speed limit, weather conditions, and the like. 
         [0052]    The database of MTOs, stored on the server or otherwise, is calculated by the methods described herein using collected data. In embodiments, the data are sensor data collected by one or more sensors, and such data is transmitted from the sensors to the server (e.g., via a distributed network or, less desirably, via a physical network connection) in batches or in real-time. In embodiments, the sensor data corresponds to observations of one or more obstacles at one or more locations along the road segment over a period of time. In embodiments, the sensor data is obtained from one or more sensors selected from: an on-board sensor on one or more probe vehicles as the one or more probe vehicles traverses the road segment; a fixed location sensor monitoring the road segment; and a combination thereof. In embodiments, the sensor is selected from a camera, accelerometer, gyroscope, or combinations thereof. 
         [0053]    The MTOs are stored in a potential moving traffic obstacle path database. The MTO database contains, for each MTO entry, data selected from: a path of the MTO (e.g., the most common or likely path along the road that the MTO takes), identifying features of the MTO (e.g., the type of MTO, such as human, animal, vehicle, etc.), frequency of observation of the MTO, historical observations of the MTO, and the like. Any or all of these data can be used by the system to further refine recommendations sent in the alert. 
         [0054]    The methods herein comprise identifying an MTO by identifying a linear arrangement of locally maximum peak values in the Hough Transform space of the collected data. The methods may further comprising identifying a plurality of potential moving traffic obstacle paths by identifying a plurality of linear arrangements of locally maximum peak values in the Hough Transform space and consolidating the plurality of potential moving traffic obstacle paths. In embodiments the sensor data originates from one or more vehicles traversing the road segment, and wherein the one or more vehicles is a dedicated probe vehicle or is a non-dedicated vehicle having a mobile device configured to collect and transmit the sensor data. Imagery from fixed cameras, temporary cameras, and satellite data may also be used to determine MTOs. 
         [0055]    In embodiments the sensor data is for a road segment, the sensor data corresponding to observations of an obstacle at a location along the road segment over a period of time. A road segment is a portion or road of any suitable length, wherein such length may be fixed throughout a system or roads or may vary based on the context. For example, in densely populated regions or regions with many intersections, the road segment may be relatively short such as a section of road that is 5, 10, 15, 20, 25, or 50 meters in length, or in the range of 5-100, or 5-50, or 5-25 meters. In more sparsely populated and rural areas, the section may be relatively longer such as 25, 50, 100, or 1000 meters in length, or in the range of 25-1000, or 25-500, or 25-100 meters. The period of time is appropriate for the road segment and may typically be on the scale of 0.1-10 minutes. 
         [0056]    In embodiments, the methods involve determining of the MTO path, which involves receiving sensor data observations (as above, such as by a test vehicle containing a dedicated device or a mobile device), determining a set of grey scale pixels potentially missing based on the observations, each pixel representing a time and location combination, and having an associated obstacle probability assigned based on the sensor data, and applying a modified Probabilistic Hough Transform to the set of gray scale pixels to obtain a Hough Transform space, wherein each value in the Hough Transform space is a log likelihood supported or opposed by each observation. In this process there is created another layer (alternatively called a mask layer) for specifying whether there is data or not, in addition to the main layer specifying the probability of the MTO (or edge in image processing terms). For each pixel, the first layer says if we have observation of the pixel or not, and then the second layer says the probability of the existence of an edge at the pixel, where a whiter (closer to 0) value indicates non existence and a blacker value (closer to 1) indicates its existence. From the Hough Transform space, MTOs can be identified by identifying a linear arrangement of locally maximum peak values in the Hough Transform space. The MTO is then added to the MTO database (i.e., the potential MTO database) and vehicles are alerted as appropriate when in proximity of the MTO. 
         [0057]    In some alternative embodiments, continuous communications with the server may be impossible or impracticable or undesirable. In such cases, the mobile device (i.e., the device in the vehicle, or components integrated into the vehicle capable of carrying out the methods of the invention) may periodically download a dataset containing MTOs, algorithms, and/or other data/instructions from a server such that the device can operate (with reduced or full capacity) in the absence of real-time communications with the server. 
         [0058]    In an embodiment, an algorithm according to the invention works as follows. A T×L (time by location) matrix is obtained for MTO probability distribution. This can be obtained from prior probability distribution and observations with known error distribution, for example. Then, the system extracts lines well-explained by MTO probability distribution in the T×L matrix. Candidates for line of best fit can be determined from high MTO probability points, within an MTO speed range assumption. Such determinations can be based on Probabilistic Hough Transform, for example by the use of geometric means of MTO probabilities in the voting process. Finally, similar lines of best fit can be optionally consolidated. Complete-linkage clustering (furthest neighbor clustering) in the parameter space of a (MTO speed) and b (MTO position at t=0) is an example for such consolidation. 
         [0059]    With reference to  FIG. 4 , a method for creating an MTO database is provided. Sensor  210  may be part of device  200  or may be separate from device  200  but in the latter case it is capable of communicating sensor data to device  200  via a physical network, wireless network, or other connection. After receiving sensor data from sensor  210 , device  200  establishes communication linkage  300  with server  100 . Server  100  receives the sensor data from device  200  via linkage  300 , and then processes the data internally. The processing includes establishing greyscale pixels  110 , converting the data into Hough Transform Space  120 , establishing an MTO path  130 , and then adding the MTO path to MTO database  140 . In embodiments all of these steps are carried out internally by server  100 , but it is also possible to have certain such steps carried out externally such as in a cloud computing configuration. 
         [0060]    With reference to  FIG. 5 , a method for causing a vehicle to carry out a maneuver is provided. Device  200  is onboard a vehicle (not shown or labeled) and establishes communication linkage  300  with server  100 . Over communication linkage  300 , device  200  can report the vehicle&#39;s position, trajectory, speed, etc. to server  100 . Server  100  cross-references such data with MTO database  110  and establishes whether the vehicle is close to any known MTO. If the vehicle is in close proximity to an MTO, server  100  communicates a message to device  200  (again via linkage  300 ), the message being configured to cause the vehicle to execute maneuver  400  (e.g., via a change to a GUI and/or via instructing an autonomous vehicle control system). 
         [0061]    Throughout this disclosure, use of the term “server” is meant to include any computer system containing a processor and memory, and capable of containing or accessing computer instructions suitable for instructing the processor to carry out any desired steps. The server may be a traditional server, a desktop computer, a laptop, or in some cases and where appropriate, a tablet or mobile phone. The server may also be a virtual server, wherein the processor and memory are cloud-based. 
         [0062]    The methods and devices described herein include a memory coupled to the processor. Herein, the memory is a computer-readable non-transitory storage medium or media, which may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate. 
         [0063]    Throughout this disclosure, use of the term “or” is inclusive and not exclusive, unless otherwise indicated expressly or by context. Therefore, herein, “A or B” means “A, B, or both,” unless expressly indicated otherwise or indicated otherwise by context. Moreover, “and” is both joint and several, unless otherwise indicated expressly or by context. Therefore, herein, “A and B” means “A and B, jointly or severally,” unless expressly indicated otherwise or indicated otherwise by context. 
         [0064]    It is to be understood that while the invention has been described in conjunction with examples of specific embodiments thereof, that the foregoing description and the examples that follow are intended to illustrate and not limit the scope of the invention. The equations and algorithms provided herein are provided merely to illustrate the concepts of the invention and are not meant to be limiting unless such limitation is clearly indicated or evident from the context. It will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the invention, and further that other aspects, advantages and modifications will be apparent to those skilled in the art to which the invention pertains. The pertinent parts of all publications mentioned herein are incorporated by reference. All combinations of the embodiments described herein are intended to be part of the invention, as if such combinations had been laboriously set forth in this disclosure. 
       EXAMPLES 
     Example 1 
       [0065]    In an example method, traffic obstacle observations are assumed as a set Y observed probabilities of MTO obtained by some sensors, such as smartphone-based sensing applications. Equation 1 provides an example for the set of observed probabilities. 
       Equation 1: Definition of Input Observations 
       [0066]        Y   observe             {P ( {right arrow over (y)}   t,l   |{right arrow over (x)}   t,l )|∃ tεT,∃lεL} 
 
         [0067]    where {right arrow over (x)} t,l  is the existence event of a traffic obstacle, which is potentially a moving traffic obstacle (MTO), and {right arrow over (y)} t,l  is the observation event of it, at time t and location l. Here, T is a finite set of continuous time periods with the same duration from t 0  to t n  of the observations. L is a finite set of road segments along with a directed, continuous road, with the same length from l 0  to l n . The P({right arrow over (y)} t,l |{right arrow over (x)} t,l ) represents the observed probability of an obstacle sensed to exist (labeled as an obstacle by such as a probabilistic classifier) at time period t (such as 13:03-13:04 on November 13) and location l, a segment of a directed road link (such as a 10 m segment at 300 m from the beginning of a specified road in a specified direction). This probability (such as 92%), or accuracy, of classification is usually measured from classification testing results with known existing obstacles. 
         [0068]    The Moving Traffic Obstacle (MTO) detection described herein is based on the approach used in the Hough Transform. The Hough Transform has been known and used widely in the domain of image analysis for detecting shapes such as lines from image points or pixels, which are obtained from edge detection pre-processing. The main purpose of it is to group edge points, which are Potential MTO (MTO) observed by sensors, into shapes through a voting procedure over a set of parameterized shapes, which are MTO tracks. The process starts from the mathematical formulation called Probabilistic Hough Transform (PHT). Herein is defined a PHT, the log of the probability distribution function of a MTO defined by a MTO parameter as follows in Equation 2: 
       Equation 2: Definition of Probabilistic Hough Transform 
       [0069]    
       
         
           
             
               H 
                
               
                 ( 
                 
                   h 
                   → 
                 
                 ) 
               
             
             = 
             
               
                 ln 
                  
                 
                   [ 
                   
                     P 
                      
                     
                       ( 
                       
                         
                           h 
                           → 
                         
                         | 
                         
                           Y 
                           observe 
                         
                       
                       ) 
                     
                   
                   ] 
                 
               
               = 
               
                 
                   
                     ∑ 
                     
                       ∃ 
                       
                         t 
                          
                         
                           ∈ 
                           TJ 
                         
                          
                         
                           ∈ 
                           L 
                         
                       
                     
                   
                    
                   
                     ln 
                      
                     
                       [ 
                       
                         P 
                          
                         
                           ( 
                           
                             
                               
                                 y 
                                 → 
                               
                               tJ 
                             
                             | 
                             
                               h 
                               → 
                             
                           
                           ) 
                         
                       
                       ] 
                     
                   
                 
                 + 
                 
                   ln 
                    
                   
                     [ 
                     
                       P 
                        
                       
                         ( 
                         
                           y 
                           → 
                         
                         ) 
                       
                     
                     ] 
                   
                 
                 + 
                 C 
               
             
           
         
       
     
         [0070]    The variable {right arrow over (y)} t,l  is a specific observation at time t (in T) and location l (in L) in the observation set of MTOs Y observe . The variable {right arrow over (h)} is a specific point (or a specific MTO) in the parameter space for representing MTOs. The probability P({right arrow over (y)}) denotes a priori probability of MTO existence, which is considered herein to be uniform to time and location. 
         [0071]    While Hough Transform assumes its input as a matrix of binary (an existing pixel or not) data, herein it is extended to take probabilistic classification results of MTO as the input by defining P({right arrow over (y)} t,l |{right arrow over (h)}) as follows in Equation 3: 
       Equation 3: Probability of a Probabilistic MTO Observation Given a MTO 
       [0072]        P ( {right arrow over (y)}   t,l   |{right arrow over (h)} )= P ( {right arrow over (y)}   t,l   |{right arrow over (x)}   t,l ) P ( {right arrow over (x)}   t,l   |{right arrow over (h)}   t )+{ P ( {right arrow over (y)}   t,l   |{right arrow over (x)}   t,l ) P ( {right arrow over (x)}   t,l )+ P ( {right arrow over (y)}   t,l   |{right arrow over (x)}   t,l   C ) P ( {right arrow over (x)}   t,l   C )} P ( {right arrow over (x)}   t,l   C   |{right arrow over (h)}   t ) 
         [0073]    where {right arrow over (h)} t  is an event of MTO existence at time t by the MTO {right arrow over (h)}. 
         [0074]    The location of {right arrow over (h)} t  is derived through the function μ h :T         L defined by the parameter {right arrow over (h)} at (a h , b h ) in the MTO parameter space as follows: 
         [0000]      μ h ( t )= a   h   t+b   h  
 
         [0075]    While P({right arrow over (y)} t,l |{right arrow over (x)} t,l ) is the observation input defined in Equation 1, assuming an observation location error as a normal distribution (μ h (t),δ 2   h ) is given, there is also: 
         [0000]    
       
         
           
             
               P 
                
               
                 ( 
                 
                   
                     
                       x 
                       → 
                     
                     
                       t 
                       , 
                       l 
                     
                   
                   | 
                   
                     
                       h 
                       → 
                     
                     t 
                   
                 
                 ) 
               
             
             = 
             
               
                 1 
                 
                   
                     2 
                      
                     π 
                      
                     
                         
                     
                      
                     
                       δ 
                       h 
                       2 
                     
                   
                 
               
                
               
                 exp 
                  
                 
                   ( 
                   
                     - 
                     
                       
                         
                           ( 
                           
                             l 
                             - 
                             
                               
                                 μ 
                                 h 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                           ) 
                         
                         2 
                       
                       
                         2 
                          
                         
                           δ 
                           h 
                           2 
                         
                       
                     
                   
                   ) 
                 
               
             
           
         
       
     
         [0076]    The first term in the right side of Equation 3 represents successful observation/non-observation while the second term represents a false-positive/negative case. Note that the slope (a h  as the speed of MTO {right arrow over (h)}) and intercept (b h  as the location of MTO {right arrow over (h)} at time 0) in T×L can also be used as the parameters defining MTO {right arrow over (h)} rather than using the Hesse normal form typically used in Hough Transforms. Vertical lines, meaning infinite speeds of MTO, would not exist and thus not be a problem in this case. 
         [0077]    The outlined algorithm for detecting MTOs stays same as PHT, and can be simply defined as follows in Algorithm 1. 
         [0078]    Algorithm 1: Moving Traffic Obstacles Detection 
         [0079]    In: A set of MTO observations as probabilities as defined in Equation 1. 
         [0080]    Out: A matrix of log of probability density in the MTO parameter space. 
         [0081]    Initialize all elements of the MTO parameter space, H({right arrow over (h)}) to zero. 
         [0082]    For each observation of MTO {right arrow over (y)} t,l :
       for each element {right arrow over (h)} in the MTO parameter space:
           compute ln [P({right arrow over (y)} t,l |{right arrow over (h)})] using Equation 3 and add to H({right arrow over (h)}).   
               
 
         [0085]    Actual implementation does not need to compute components of P({right arrow over (y)} t,l |{right arrow over (h)}) repeatedly but can cache and reuse for different {right arrow over (h)}. 
       Example 2 
       [0086]    A set of real world data collected in a smartphone-based probe car project within Nairobi City County, as well as with simulated observation data are provided to further illustrate aspects of the invention. 
         [0087]    In order to see the real world situation, there was conducted an actual data collection based on smartphone-based sensors mounted on 9 garbage trucks in Nairobi, Kenya. Data was also collected from the same number of probe-cars sharing some major routes when departing from the same depot, called Kaloheni Depot, in Nairobi, Kenya. Further, to extensively examine the expected behavior of detection, the proposed algorithm was evaluated on simulated data. 
         [0088]      FIG. 1  shows an example result from simulation with 10 probe cars per 10 min (200 in T). While working well with more dense observation cases, MTO detection starts including more than half false detection with sparser observation, around 1 probe cars per min, depending on simulation setting and detection thresholds. In  FIG. 1 , straight lines in right indicate detected MTO with the top H(h) values. 
         [0089]      FIG. 2  provides input observations. In the figure, the observations are a set o_{t,l} where t (time) in T is in the range 0&lt;=t&lt;=t n  and l (location) in L is in the range 0&lt;=l&lt;=l n  with a confidence p_{t,l} in the range 0&lt;=p&lt;=1 and an observation error range in L with a normal distribution (l, σ 2 ). In this situation, the following equation holds: 
         [0000]    
       
         
           
             
               p 
                
               
                 ( 
                 
                   
                     o 
                     
                       t 
                       , 
                       l 
                     
                   
                   | 
                   
                     x 
                     
                       t 
                       , 
                       
                         l 
                         ′ 
                       
                     
                   
                 
                 ) 
               
             
             = 
             
               
                 p 
                  
                 
                   ( 
                   
                     
                       o 
                       
                         t 
                         , 
                         l 
                       
                     
                     | 
                     
                       x 
                       
                         t 
                         , 
                         l 
                       
                     
                   
                   ) 
                 
               
                
               
                 
                   ∫ 
                   
                     
                       l 
                       ′ 
                     
                     - 
                     
                       1 
                       2 
                     
                   
                   
                     
                       I 
                       ′ 
                     
                     + 
                     
                       1 
                       2 
                     
                   
                 
                  
                 
                   
                     f 
                      
                     
                       ( 
                       
                         
                           y 
                           | 
                           l 
                         
                         , 
                         σ 
                       
                       ) 
                     
                   
                    
                   dy 
                 
               
             
           
         
       
     
         [0000]    wherein x t,l  represents the observation of a TMO at time t and location l. Then, p(o t,l |x t,l )=p t,l  and f is the probability density function of the location of an observation following a normal distribution (l, σ 2 ). 
         [0090]      FIG. 3  provides an example output with the lighter coloured squares representing a higher probability of finding an MTO. Thus a line of best fit can be drawn (R 2 =0.9172 in this instance) which shows the spatiotemporal path of a MTO.