Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020107441 - ARTIFICIAL INTELLIGENT SYSTEMS AND METHODS FOR MAP MATCHING

Document

Description

Title of Invention 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132  

Claims

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24  

Drawings

1   2   3   4   5   6   7   8   9   10  

Description

Title of Invention : ARTIFICIAL INTELLIGENT SYSTEMS AND METHODS FOR MAP MATCHING

[0001]
CROSS-REFERENCE TO RELATED APPLICATIONS
[0002]
This application claims priority of Chinese Application No. 201811436901. X, filed on November 28, 2018, the contents of which are incorporated herein in its entirety by reference.

TECHNICAL FIELD

[0003]
The present disclosure generally relates to artificial intelligent systems and methods for map matching, and more particularly, to artificial intelligent systems and methods for determining and displaying a route on which a vehicle is moving based on location data.

BACKGROUND

[0004]
Existing methods for map matching often use a Hidden Markov Model (HMM) to predict a matching relationship between location data (e.g., GPS data) and a route. However, the problem of the existing methods is that the HMM is usually unable to fully use multi-dimensional sample data to predict reasonable mapping results. Although map matching methods using a supervised learning method can fully use multi-dimensional sample data, it is not only a waste of manpower for labeling the sample data, but also cannot complete a road with missing sample data. Therefore, with the existing methods, it sometimes fails to predict a reasonable result for map mapping. It is desirable to provide artificial intelligent systems and methods for map mapping.
[0005]
SUMMARY
[0006]
An aspect of the present disclosure introduces an artificial intelligent system for map matching. The system may include at least one storage medium including a set of instructions for map matching; and at least one processor in communication with the storage medium, wherein when executing the set of instructions, the at least one processor is directed to: obtain a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; for each position of the plurality of positions, obtain at least one candidate match, each of the at least one candidate match including the position and a road segment within a first predetermined distance from the position; for each of the at least one candidate match, determine a measurement probability based on at least one of a trained supervised learning model or a road completion model; determine a route that matches with the GPS track based on the measurement probabilities; and direct a user terminal to display a matching between a current location associated with the user terminal and the determined route.
[0007]
In some embodiments, the trained supervised learning model is obtained by: obtaining a plurality of historical GPS tracks of a plurality of vehicles, each of the plurality of historical GPS tracks including a plurality of historical positions; for each of the plurality of historical positions of each historical track, obtaining at least one historical candidate match, each of the at least one historical candidate match including a historical position and a historical road segment within a second predetermined distance from the corresponding historical position; for each of the at least one historical candidate match, obtaining a plurality of features reflecting one or more relationship between a vehicle and the corresponding historical road segment; obtaining a candidate matching result for each of the plurality of historical positions based on a trained Hidden Markov Model (HMM) ; and training a preliminary supervised learning model based on the plurality of features and the candidate matching results to obtain the trained supervised learning model.
[0008]
In some embodiments, the at least one processor is further directed to: update the trained supervised learning model based on the determined route and the corresponding GPS track.
[0009]
In some embodiments, the plurality of features includes at least one of: an angle between a spot speed of a vehicle and the corresponding road segment; an angel between a line speed of the vehicle and the corresponding road segment; a distance between a position and the corresponding road segment; or a road feature of the road segment.
[0010]
In some embodiments, the at least one processor is further directed to: determine whether two road segments corresponding to two adjacent positions are reasonable based on a reasonability model; and in response to a determination that the two road segments corresponding to two adjacent positions are reasonable, determine the measurement probability based on the trained supervised learning model.
[0011]
In some embodiments, the at least one processor is further directed to: in response to a determination that the two road segments corresponding to two adjacent positions are not reasonable, determine the measurement probability based on the trained supervised learning model and the road completion model.
[0012]
In some embodiments, to determine the measurement probability based on the trained supervised learning model and the road completion model, the at least one processor is further directed to: determine a probability component based on the trained supervised learning model; determine a penalty factor for correcting the two unreasonable adjacent positions based on the road completion model; and determine the measurement probability based on the probability component and the penalty factor.
[0013]
In some embodiments, the reasonability model includes an N-Gram model.
[0014]
In some embodiments, the trained supervised learning model includes at least one of: a Gradient Boosted Decision Tree (GBDT) model, a Recurrent Neural Network (RNN) model, or a Convolutional Neural Network (CNN) model.
[0015]
In some embodiments, the road completion model includes a Bayesian model.
[0016]
In some embodiments, to determine the route, the at least one processor is further directed to: for any two candidate match corresponding to two adjacent positions, determine a transition probability; determine the route based on the transition probabilities, the measurement probabilities, and a Viterbi algorithm.
[0017]
Another aspect of the present disclosure introduces an artificial intelligent method for map matching. The method may include obtaining a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; for each position of the plurality of positions, obtaining at least one candidate match, each of the at least one candidate match including the position and a road segment within a first predetermined distance from the position; for each of the at least one candidate match, determining a measurement probability based on at least one of a trained supervised learning model or a road completion model; determining a route that matches with the GPS track based on the measurement probabilities; and directing a user terminal to display a matching between a current location associated with the user terminal and the determined route.
[0018]
Still another aspect of the present disclosure introduces a non-transitory computer readable medium. The non-transitory computer readable medium may include at least one set of instructions for map matching, wherein when executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method. The method may include: obtaining a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; for each position of the plurality of positions, obtaining at least one candidate match, each of the at least one candidate match including the position and a road segment within a first predetermined distance from the position; for each of the at least one candidate match, determining a measurement probability based on at least one of a trained supervised learning model or a road completion model; determining a route that matches with the GPS track based on the measurement probabilities; and directing a user terminal to display a matching between a current location associated with the user terminal and the determined route.
[0019]
Still another aspect of the present disclosure introduces a system for map matching. The system may include a GPS track obtaining module, configured to obtain a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; a matching module, configured to, for each position of the plurality of positions, obtain at least one candidate match, each of the at least one candidate match including the position and a road segment within a first predetermined distance from the position; a probability determining module, configured to, for each of the at least one candidate match, determine a measurement probability based on at least one of a trained supervised learning model or a road completion model; a route determining module, configured to determine a route that matches with the GPS track based on the measurement probabilities; and a route displaying module, configured to direct a user terminal to display a matching between a current location associated with the user terminal and the determined route.
[0020]
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]
The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
[0022]
FIG. 1 is a schematic diagram illustrating an exemplary artificial intelligent system according to some embodiments of the present disclosure;
[0023]
FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of a computing device according to some embodiments of the present disclosure;
[0024]
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure;
[0025]
FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure;
[0026]
FIG. 5 is a flowchart illustrating an exemplary process for determining a route according to some embodiments of the present disclosure;
[0027]
FIG. 6 is a schematic diagram illustrating an exemplary map according to some embodiments of the present disclosure;
[0028]
FIG. 7 is a schematic diagram illustrating an exemplary mapping relationship between positions and road segments according to some embodiments of the present disclosure;
[0029]
FIG. 8 is a flowchart illustrating an exemplary process for obtaining a trained supervised learning model according to some embodiments of the present disclosure;
[0030]
FIG. 9 is a flowchart illustrating an exemplary process for determining a measurement probability according to some embodiments of the present disclosure; and
[0031]
FIG. 10 is a flowchart illustrating an exemplary process for determining a route according to some embodiments of the present disclosure.

DETAILED DESCRIPTION

[0032]
The following description is presented to enable any person skilled in the art to make and use the present disclosure, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown but is to be accorded the widest scope consistent with the claims.
[0033]
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises, ” “comprising, ” “includes, ” and/or “including” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
[0034]
These and other features, and characteristics of the present disclosure, as well as the methods of operations and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawing (s) , all of which form part of this specification. It is to be expressly understood, however, that the drawing (s) are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
[0035]
The flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
[0036]
An aspect of the present disclosure relates to artificial intelligent systems and methods for map matching. To this end, the artificial intelligent systems and methods may predict a plurality of matching results of a plurality of historical GPS tracks using an unsupervised learning model (e.g., a Hidden Markov Model (HMM) ) . Then the artificial intelligent systems and methods may use the plurality of matching results to train a supervised learning model without manually labeling the plurality of matching results. For a moving vehicle, the artificial intelligent systems and methods may pre-match each position of a GPS track of the moving vehicle with a road segment within a predetermined distance from the position, and use the supervised learning model to predict a probability that the position is on the road segment. The artificial intelligent systems and methods may further correct the probability using a road completion model if two adjacent positions are mapped onto two unreasonable road segment. The artificial intelligent systems and methods may map the GPS track of the moving vehicle onto a route based on the corrected probability. In this way, the artificial intelligent systems and methods may determine the route on which the moving vehicle is moving.
[0037]
FIG. 1 is a schematic diagram of an exemplary artificial intelligent (AI) system 100 according to some embodiments of the present disclosure. For example, the AI system 100 may be an online to offline service platform for providing services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, online navigation services, good delivery services, etc. The AI system 100 may include a server 110, a network 120, a user terminal 130, and a storage 140. The server 110 may include a processing engine 112.
[0038]
The server 110 may be configured to process information and/or data relating to map matching. For example, the server 110 may determine a route that matches with GPS data of the user terminal 130 or a user of the user terminal 130. As another example, the server 110 may train a supervised learning model for predicting the route that matches with the GPS data. In some embodiments, the server 110 may be a single server, or a server group. The server group may be centralized, or distributed (e.g., server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in the user terminal 130, and/or the storage 140 via the network 120. As another example, the server 110 may connect the user terminal 130, and/or the storage 140 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may be a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
[0039]
In some embodiments, the server 110 may include a processing engine 112. The processing engine 112 may process information and/or data relating to relating to map matching to perform one or more functions described in the present disclosure. For example, the processing engine 112 may determine a route that matches with GPS data of the user terminal 130 or a user of the user terminal 130. As another example, the processing engine 112 may train a supervised learning model for predicting the route that matches with the GPS data. In some embodiments, the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing engine 112 may be one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
[0040]
The network 120 may facilitate exchange of information and/or data. In some embodiments, one or more components of the AI system 100 (e.g., the server 110, the user terminal 130, and the storage 140) may transmit information and/or data to other component (s) in the AI system 100 via the network 120. For example, the server 110 may obtain GPS data from the user terminal 130 via the network 120. As another example, the server 110 may send a route to be displayed on a user interface of the user terminal to the user terminal 130 via the network 120. As still another example, the server 110 may obtain historical GPS data to train a supervised learning model from the storage 140 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 130 may be a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof. In some embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, …, through which one or more components of the AI system 100 may be connected to the network 120 to exchange data and/or information between them.
[0041]
The user terminal 130 may be any electronic device used by a user of the online to offline service (e.g., a driver of a car hailing service, a user of a navigation service, etc. ) . In some embodiments, the user terminal 130 may be a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a desktop computer 130-4, or the like, or any combination thereof. In some embodiments, the mobile device 130-1 may be a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the wearable device may be a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the smart mobile device may be a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may be a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may be a Google Glass TM, a RiftCon TM, a Fragments TM, a Gear VR TM, etc. In some embodiments, the desktop computer 130-4 may be an onboard computer, an onboard television, etc.
[0042]
In some embodiments, the user terminal 130 may be a device with positioning technology for locating the position of the user terminal 130, the user thereof, or a vehicle associated with the user terminal 130. The positioning technology used in the present disclosure may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof. One or more of the above positioning technologies may be used interchangeably in the present disclosure.
[0043]
In some embodiments, the user terminal 130 may further include at least one network port. The at least one network port may be configured to send information to and/or receive information from one or more components in the AI system 100 (e.g., the server 110, the storage 140) via the network 120. In some embodiments, the user terminal 130 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
[0044]
The storage 140 may store data and/or instructions. For example, the storage 140 may store historical GPS data of a plurality of vehicles or user terminals. As another example, the storage 140 may store a plurality of trained models, such as a trained supervised learning model, a road completion model, a reasonability model, etc. As still another example, the storage 140 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage 140 may be a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Exemplary volatile read-and-write memory may include a random-access memory (RAM) . Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage 140 may be implemented on a cloud platform. Merely by way of example, the cloud platform may be a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
[0045]
In some embodiments, the storage 140 may include at least one network port to communicate with other devices in the AI system 100. For example, the storage 140 may be connected to the network 120 to communicate with one or more components of the AI system 100 (e.g., the server 110, the user terminal 130) via the at least one network port. One or more components in the AI system 100 may access the data or instructions stored in the storage 140 via the network 120. In some embodiments, the storage 140 may be directly connected to or communicate with one or more components in the AI system 100 (e.g., the server 110, the user terminal 130) . In some embodiments, the storage 140 may be part of the server 110.
[0046]
In some embodiments, one or more components of the AI system 100 (e.g., the server 110, the user terminal 130, and the storage 140) may communicate with each other in form of electronic and/or electromagnetic signals, through wired and/or wireless communication. In some embodiments, the AI system 100 may further include at least one data exchange port. The at least one exchange port may be configured to receive information and/or send information relating to the map matching (e.g., in form of electronic signals and/or electromagnetic signals) between any electronic devices in the AI system 100. In some embodiments, the at least one data exchange port may be one or more of an antenna, a network interface, a network port, or the like, or any combination thereof. For example, the at least one data exchange port may be a network port connected to the server 110 to send information thereto and/or receive information transmitted therefrom.
[0047]
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the user terminal 130 may be implemented according to some embodiments of the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
[0048]
The computing device 200 may be used to implement an AI system 100 for the present disclosure. The computing device 200 may be used to implement any component of AI system 100 that perform one or more functions disclosed in the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
[0049]
The computing device 200, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The COM port 250 may be any network port or data exchange port to facilitate data communications. The computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors (e.g., logic circuits) , for executing program instructions. For example, the processor may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. The processing circuits may also generate electronic signals including the conclusion or the result (e.g., the route that matches with the GPS data) and a triggering code. In some embodiments, the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the user terminal 130) in the AI system 100. For example, the trigger code may be an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) . In some embodiments, the trigger code may be configured to rend the operation system (or the application) of the electronic device to generate a presentation of the conclusion or the result (e.g., a prediction result) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
[0050]
The exemplary computing device may include the internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device. The exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The methods and/or processes of the present disclosure may be implemented as the program instructions. The exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The program instructions may be compatible with the operation systems for providing the online to offline service. The computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components. The computing device 200 may also receive programming and data via network communications.
[0051]
Merely for illustration, only one processor is illustrated in FIG. 2. Multiple processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
[0052]
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
[0053]
As illustrated in FIG. 3, the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. The CPU may include interface circuits and processing circuits similar to the processor 220. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300. In some embodiments, a mobile operating system 370 (e.g., iOS TM, Android TM, Windows Phone TM, etc. ) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to the map matching. User interactions with the information stream may be achieved via the I/O devices 350 and provided to the processing engine 112 and/or other components of the system 100 via the network 120.
[0054]
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the AI system 100, and/or other components of the AI system 100 described with respect to FIGs. 1-10) . The hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to determine a route that matches with the GPS data as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
[0055]
One of ordinary skill in the art would understand that when an element of the AI system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when a server 110 processes a task, such as determine route that matches with the GPS data, the server 110 may operate logic circuits in its processor to process such task. When the server 110 completes detrermining the route that matches with the GPS data, the processor of the server 110 may generate electrical signals encoding the determined route. The processor of the server 110 may then send the electrical signals to at least one data exchange port of a traget system associated with the server 110. The server 110 communicates with the target system via a wired network, the at least one data exchange port may be physically connected to a cable, which may further transmit the electrical signals to an input port (e.g., an inforamtion exchange port) of the user terminal 130. If the server 110 communicates with the target system via a wireless network, the at least one data exchange port of the target system may be one or more antennas, which may convert the electrical signals to electromagnetic signals. Within an electronic device, such as the user terminal 130, and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium (e.g., the storage 140) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may be one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
[0056]
FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. As illustrated in FIG. 4, the processing engine 112 may include a GPS track obtaining module 410, a matching module 420, a probability determining module 430, a route determining module 440, a model training module 450, a model storing module 460, and a route displaying module 470.
[0057]
The GPS track obtaining module 410 may be configured to obtain a GPS track including a plurality of positions. In some embodiments, two adjacent positions in the plurality of positions respectively correspond to two adjacent time point. For example, the GPS track obtaining module 410 may obtain the GPS track associated with an object (e.g., a moving vehicle, a moving person, etc. ) via the user terminal 130. The GPS track obtaining module 410 may obtain a position in the GPS track every predetermined time interval. In some embodiments, each position of the GPS track may indicate a position where the object is located at the corresponding time point.
[0058]
The matching module 420 may be configured to obtain at least one candidate match. In some embodiments, each of the at least one candidate match may include a position and a road segment within a first predetermined distance from the position. For example, the matching module 420 may search at least one road segment within the first predetermined distance from each position, and match each position to each of the corresponding at least one road segment to obtain a candidate match of the at least one candidate match.
[0059]
The probability determining module 430 may be configured to determine a measurement probability. For example, the probability determining module 430 may determine a measurement probability representing a likelihood that a position of the plurality of positions in the GPS track is travelling on a road segment in the corresponding candidate match.
[0060]
The route determining module 440 may be configured to determine a route that matches with the GPS track. For example, the route determining module 440 may determine a transition probability representing a likelihood that the object (e.g., the vehicle, the person) moving from a first road segment in a first candidate match corresponding to a previous time point to a second road segment in a second candidate match of a point corresponding to a next time point of the previous time point. The route determining module 440 may further determine the route based on the transition probabilities, the measurement probabilities, and a Viterbi algorithm.
[0061]
The model training module 450 may be configured to train a model. For example, the model training module 450 may obtain a plurality of features reflecting one or more relationship between a vehicle and a corresponding historical road segment, and a candidate matching result for each of the plurality of historical positions based on a trained Hidden Markov Model (HMM) . The model training module 450 may train a preliminary supervised learning model based on the plurality of features and the candidate matching results to obtain the trained supervised learning model. As another example, the model training module 450 may update the trained supervised learning model after every determination of a route matches a GPS track.
[0062]
The model storing module 460 may be configured to store a model. For example, the model storage module 460 may store a trained HMM, a trained supervised learning model, a road completion model, a reasonability model, or the like, or any combination thereof.
[0063]
The route displaying module 470 may be configured to direct a user terminal to display a matching between a current location associated with the user terminal and the determined route. For example, the route displaying module 470 may direct the user terminal associated with the object (e.g., the vehicle, the person) to display the matching in real time.
[0064]
The modules in the processing engine 112 may be connected to or communicate with each other via a wired connection or a wireless connection. The wired connection may be a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof. The wireless connection may be a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof. Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units. For example, the model training module 450 and the model storing module 460 may be combined as a module to both train and store models. As another example, the processing engine 112 may include a storage module (not shown) used to store data and/or information relating to the map matching.
[0065]
FIG. 5 is a flowchart illustrating an exemplary process 500 for determining a route according to some embodiments of the present disclosure. The process 500 may be executed by the AI system 100. For example, the process 500 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 500. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 5 and described below is not intended to be limiting.
[0066]
In 510, the processing engine 112 (e.g., the processor 220, the GPS track obtaining module 410) may obtain a GPS track including a plurality of positions. In some embodiments, two adjacent positions in the plurality of positions respectively correspond to two adjacent time point. The GPS track may be in a form of structured data (first structured data) , including a plurality of data units. For example, a data unit of the first structured data may include a data head, a data body, and a pointer as the end of the data unit. The data body may include contents of the data in forms such as vectors and scalars, and corresponds to the GPS track. The pointer may point to the data head of the next data unit. The processing engine 112 may load/save the GPS track to a cache in the processing engine 112 or in connection with the processing engine 112.
[0067]
In some embodiments, the processing engine 112 may obtain the GPS track associated with an object (e.g., a moving vehicle, a moving person, etc. ) via the user terminal 130. The processing engine 112 may obtain a position in the GPS track every predetermined time interval. For example, the processing engine 112 may obtain a position every three second, and obtain the GPS track after a continuous period of time. The plurality of positions of in the GPS track may be continuous according to time order. In some embodiments, each position of the GPS track may indicate a position where the object is located at the corresponding time point.
[0068]
In 520, for each position of the plurality of positions, the processing engine 112 (e.g., the processor 220, the matching module 420) may obtain from the at least one storage medium second structured data corresponding to at least one candidate match. The second structured data may include a plurality of data units. For example, a data unit of the second structured data may include a data head, a data body, and a pointer as the end of the data unit. The data body may include contents of the data in forms such as vectors and scalars, and corresponds to the at least one candidate match. The pointer may point to the data head of the next data unit. In some embodiments, each of the at least one candidate match may include at least one of vector data or scalar data corresponding to the position and a road segment within a first predetermined distance from the position.
[0069]
In some embodiments, the road segment may be a segment or a part of a road. The road segment may be a first predetermined length. In some embodiments, the first predetermined length may be a default value stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the AI system or an operator thereof according to different application scenarios.
[0070]
In some embodiments, the processing engine 112 may search at least one road segment within the first predetermined distance from each position. The processing engine 112 may match each position to each of the corresponding at least one road segment to obtain a candidate match of the at least one candidate match. In some embodiments, the first predetermined distance may be a default value stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the AI system or an operator thereof according to different application scenarios. For example, the first predetermined distance may be 70 meters. As another example, the processing engine 112 may determine where the position is located (e.g., an urban area or a suburb area) . The first predetermined distances corresponding to the urban area and the suburb area may be different. For example, the first predetermined distance corresponding to the urban area may be 50 meters, and the first predetermined distance corresponding to the suburb area may be 200 meters.
[0071]
FIG. 6 is a schematic diagram illustrating an exemplary map according to some embodiments of the present disclosure. As shown in FIG. 6, a GPS track may include Position 1, Position 2, and Position 3, each respectively corresponds to a time point. Two adjacent positions (e.g., Position 1 and Position 2, Position 2 and Position 3) may respectively correspond to two adjacent time point. For Position 1, the processing engine 112 may search that Road Segment 1, Road Segment 2, and Road Segment 3 are within the first predetermined distance from the Position 1. Three candidate matches for Position 1 may include Position 1-Road Segment 1, Position 1-Road Segment 2, and Position 1-Road Segment 3. For Position 2, the processing engine 112 may search that Road Segment 2 is within the first predetermined distance from the Position 2. There is one candidate match for Position 2, which is Position 2-Road Segment 2. For Position 3, the processing engine 112 may search that Road Segment 2 and Road Segment 4 are within the first predetermined distance from the Position 3. Two candidate matches for Position 3 may include Position 3-Road Segment 2 and Position 3-Road Segment 4.
[0072]
In 530, for each of the at least one candidate match, the processing engine 112 (e.g., the processor 220, the probability determining module 430) may determine a measurement probability based on at least one of a trained supervised learning model or a road completion model.
[0073]
The measurement probability described herein may be also called “an emission probability” . The measurement probability or the emission probability may represent a likelihood that a position of the plurality of positions in the GPS track is travelling on a road segment in the corresponding candidate match. The higher the measurement probability or the emission probability, the more likely that the position is travelling on the road segment.
[0074]
In some embodiments, the trained supervised learning model may be a method and/or process for predicting a measurement probability for each candidate match. For example, the processing engine 112 may train a preliminary supervised learning model using historical matching data including historical positions and corresponding historical road segments matches with the historical positions, respectively, to obtain the trained supervised learning model. In some embodiments, the preliminary supervised learning model may include a Gradient Boosted Decision Tree (GBDT) model, a Recurrent Neural Network (RNN) model, a Convolutional Neural Network (CNN) model, or the like, or any combination thereof. In some embodiments, the method and/or process for obtaining the trained supervised learning model may be found elsewhere in the present disclosure (e.g., FIG. 8 and the descriptions thereof) .
[0075]
In some embodiments, the road completion model may be a method and/or process for correcting an unreasonable matching between a position and a road segment in a candidate match, and further for correcting the measurement probability obtained from the trained supervised learning model. For example, the processing engine 112 may determine whether a candidate match is reasonable (e.g., whether two road segments corresponding to two adjacent points are continuous, whether a point drifts far from its adjacent points, whether the GPS track has breaking points, whether the two road segments are redundant, etc. ) . If the candidate match is unreasonable, the processing engine 112 may use the road completion model to plan a route between a start location and an end location of the GPS track, and determine a penalty factor for correcting the corresponding measurement probability. In some embodiments, the method and/or process for determining whether a candidate match is reasonable and/or determining the measurement probability may be found elsewhere in the present disclosure (e.g., FIG. 9 and the descriptions thereof) . In some embodiments, the road completion model may be a road planning model, such as a Bayesian model.
[0076]
In some embodiments, for each of the at least one candidate match, the processing engine 112 may input the position and the road segment in the candidate match into the trained supervised learning model. For example, the processing engine 112 may further extract a plurality of features reflecting one or more relationship between the object (e.g., the vehicle, the person) and the corresponding road segment, and input the plurality of features into the trained supervised learning model. In some embodiments, the plurality of features may include an angle between a spot speed of the object (e.g., the vehicle, the person) and the corresponding road segment, an angel between a line speed of the object (e.g., the vehicle, the person) and the corresponding road segment, a distance between the position and the corresponding road segment, a road feature of the road segment, or the like, or any combination thereof. The trained supervised learning model may predict and output the measurement probability for the candidate match. In some embodiments, the processing engine 112 may further determine whether the candidate match is reasonable. If the candidate match is reasonable, the processing engine 112 may determine the measurement probability for the candidate match obtained from the trained supervised learning model as a finial measurement probability for further determining the route that matches with the GPS track. If the candidate match is unreasonable, the processing engine 112 may determine the measurement probability for the candidate match obtained from the trained supervised learning model as a probability component. The processing engine 112 may use the road completion model to plan a possible route corresponding to the unreasonable candidate match. The processing engine 112 may determine a penalty factor for each possible route based on the planned possible route. The processing engine 112 may determine a product of the probability component and the corresponding penalty factor as the finial measurement probability for further determining the route that matches with the GPS track. In some embodiments, the method and/or process for determining the measurement probability may be found elsewhere in the present disclosure (e.g., FIG. 9 and the descriptions thereof) .
[0077]
FIG. 7 is a schematic diagram illustrating an exemplary mapping relationship between positions and road segments according to some embodiments of the present disclosure. P11, P12 and P13 may represent measurement probabilities corresponding to candidate matches Position 1-Road Segment 1, Position 1-Road Segment 2, and Position 1-Road Segment 3, respectively. P22 may represent measurement probability of candidate match Position 2-Road Segment 2. P32 and P34 may represent measurement probabilities corresponding to candidate matches Position 3-Road Segment 2 and Position 3-Road Segment 4, respectively. In some embodiments, the processing engine 112 may further create a Segment 0 for matching with each position of the plurality of positions. The measurement probabilities corresponding to each position and the Segment 0 may a same default value set by the processing engine 112, or may be different values according to different application scenarios. For example, as shown in FIG. 7, P10, P20, and P30 that represent measurement probabilities corresponding to each position and the Segment 0 may be same or different.
[0078]
In 540, the processing engine 112 (e.g., the processor 220, the route determining module 440) may determine/generate a group of third structured data with at least one of a plurality of vectors and scalars corresponding to a route that matches with the GPS track based on the measurement probabilities. For example, a data unit of the third structured data may include a data head, a data body, and a pointer as the end of the data unit. The data body may include contents of the data in forms such as vectors and scalars, and corresponds to the route that matches with the GPS track. The pointer may point to the data head of the next data unit.
[0079]
In some embodiments, the route that matches with the GPS track may be a most possible or most reasonable route among a plurality of possible routes. Each possible route may include at least one road segment that the object travelling from the start location to the end location. For example, as shown in FIG. 7, the plurality of possible routes from Position 1 to Position 3 may include Road Segment 1+ Road Segment 2, Road Segment 1+ Road Segment 2+ Road Segment 4, Road Segment 2, Road Segment 2+ Road Segment 4, Road Segment 3+ Road Segment 2, and Road Segment 3+ Road Segment 4. The processing engine 112 may select a route that is most possible or most reasonable from the plurality of possible routes.
[0080]
In some embodiments, the processing engine 112 may determine the route based on the measurement probabilities, transition probabilities, and a Viterbi algorithm. A transition probability may represent a likelihood that the object (e.g., the vehicle, the person) moving from a first road segment in a first candidate match corresponding to a previous time point to a second road segment in a second candidate match of a point corresponding to a next time point of the previous time point. For example, as shown in FIG. 7, the transition probabilities between Position 1 to Position 2 may include a transition probability that represents a likelihood that the object moving from Road Segment 1 to Road Segment 2, a transition probability that represents a likelihood that the object moving from Road Segment 2 to Road Segment 2, and a transition probability that represents a likelihood that the object moving from Road Segment 3 to Road Segment 2. In some embodiments, the transition probability may be determined based on a distance between two road segments, a time, a velocity of the object, information relating to a region where the positions locates, or the like, or any combination thereof. The method for determining of the transition probability may be not limited herein.
[0081]
In some embodiments, the processing engine 112 may determine the route that matches with the GPS track using the measurement probabilities and the transition probabilities according to the Viterbi algorithm. For example, the Viterbi algorithm may use a dynamic programming to transverse all possible routes, and calculate a maximum probability among the probabilities representing that the object is moving on each possible route, respectively. The probability representing that the object is moving on each possible route may be determined based on the product of the measurement probabilities and transition probabilities corresponding to each possible route. In this way, the processing engine 112 may quickly find the route that is most possible or most reasonable. In some embodiments, the method and/or process for determining the route may be found elsewhere in the present disclosure (e.g., FIG. 10 and the descriptions thereof) .
[0082]
In 550, the processing engine 112 (e.g., the processor 220, the route displaying module 470) may direct a user terminal to display a matching between a current location associated with the user terminal and the determined route. To this end, the processing engine may send out a command to the user terminal. The command may be in a format recognizable and operative by an operation system of the user terminal, so that when receiving the command, the user terminal may, automatically or manually, display the matching between the current location and the determined route.
[0083]
In some embodiments, the processing engine 112 may direct the user terminal associated with the object (e.g., the vehicle, the person) to display the matching in real time. For example, as shown in FIG. 6, the determined route that the object (e.g., the vehicle, the person) moves from Position 1 to Position 3 may be Road Segment 1+Road Segment 2. The processing engine 112 may match Position 1 to Position 1’ that nearest to Position 1 on Road Segment 1, and Position 2 and Position 3 to Position 2’ and Position 3’ that respectively nearest to Position 2 and Position 3 on Road Segment 2. The processing engine 112 may direct the user terminal to display a map showing the matching between each position and the determined route as shown in FIG. 6.
[0084]
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. For example, operation 510 and operation 520 may be integrated into a single step. However, those variations and modifications do not depart from the scope of the present disclosure.
[0085]
FIG. 8 is a flowchart illustrating an exemplary process 800 for obtaining a trained supervised learning model according to some embodiments of the present disclosure. The process 800 may be executed by the AI system 100. For example, the process 800 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 800. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 8 and described below is not intended to be limiting.
[0086]
In 810, the processing engine 112 (e.g., the processor 220, the model training module 450) may obtain a plurality of historical GPS tracks of a plurality of vehicles. In some embodiments, each of the plurality of historical GPS tracks may include a plurality of historical positions.
[0087]
In some embodiments, the processing engine 112 may obtain the plurality of historical GPS track associated with a plurality of objects (e.g., a plurality of vehicles, a plurality of persons, etc. ) via the user terminals 130 associated with the plurality of objects. The processing engine 112 may obtain a historical position in each historical GPS track at every predetermined time point. For example, the processing engine 112 may obtain a historical position every three second, and obtain the historical GPS track after a continuous period of time in the history. The plurality of historical positions of in each historical GPS track may be continuous according to time order. In some embodiments, each historical position of the historical GPS track may indicate a historical position where the object was located at the corresponding time point. In some embodiments, the plurality of historical GPS tracks may be stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) . The processing engine 112 may access the storage device to obtain the plurality of historical GPS tracks.
[0088]
In 820, for each of the plurality of historical positions of each historical track, the processing engine 112 (e.g., the processor 220, the model training module 450) may obtain at least one historical candidate match. In some embodiments, each of the at least one historical candidate match may include a historical position and a historical road segment within a second predetermined distance from the corresponding historical position.
[0089]
In some embodiments, the historical road segment may be a segment or a part of a road. The historical road segment may be a second predetermined length. In some embodiments, the second predetermined length may be a default value stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the AI system or an operator thereof according to different application scenarios. In some embodiments, the first predetermined length may be same or different from the second predetermined length.
[0090]
In some embodiments, the processing engine 112 may search at least one historical road segment within the second predetermined distance from the corresponding historical position. The processing engine 112 may match each historical position to each of the corresponding at least one historical road segment to obtain a historical candidate match of the at least one historical candidate match. In some embodiments, the second predetermined distance may be a default value stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the AI system or an operator thereof according to different application scenarios. For example, the second predetermined distance may be 70 meters. As another example, the processing engine 112 may determine where the historical position is located (e.g., an urban area or a suburb area) . The second predetermined distances corresponding to the urban area and the suburb area may be different. For example, the second predetermined distance corresponding to the urban area may be 50 meters, and the second predetermined distance corresponding to the suburb area may be 200 meters. In some embodiments, the second predetermined distance may be same or different from the first predetermined distance.
[0091]
In 830, for each of the at least one historical candidate match, the processing engine 112 (e.g., the processor 220, the model training module 450) may obtain a plurality of features reflecting one or more relationship between a vehicle and the corresponding historical road segment.
[0092]
In some embodiments, for each of the at least one historical candidate match, the processing engine 112 may extract the plurality of features reflecting one or more relationship between the vehicle and the corresponding road segment in the historical candidate match. For example, the plurality of features may include an angle between a spot speed of the vehicle and the corresponding historical road segment, an angel between a line speed of the vehicle and the corresponding historical road segment, a distance between the historical position and the corresponding historical road segment, a road feature of the historical road segment, or the like, or any combination thereof. The road feature may be an essential feature of the historical road segment. For example, the road feature may include a length of the historical road segment, a width of the historical road segment, an area where the historical road segment located, a road grade of the historical road segment, or the like, or any combination thereof.
[0093]
In 840, the processing engine 112 (e.g., the processor 220, the model training module 450) may obtain a candidate matching result for each of the plurality of historical positions based on a trained Hidden Markov Model (HMM) .
[0094]
In some embodiments, the trained HMM may be a trained unsupervised learning model for predicting a candidate matching result for each of the plurality historical positions. The trained HMM may be trained by using a plurality of historical GPS tracks according to an unsupervised learning algorithm. The plurality of historical GPS tracks that used for training the HMM may include further information of each points of the historical GPS tracks. The further information may further influence prediction results of the supervised learning model. In some embodiments, the processing engine 112 may train the HMM, and stored the trained HMM in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, the model storing module 460, etc. ) . The processing engine 112 may access the storage device to obtain the trained HMM to predict the candidate matching result for each of the plurality of historical position.
[0095]
In some embodiments, the processing engine 112 may input the plurality of historical positions of each historical GPS track of the plurality of historical GPS tracks into the trained HMM. The trained HMM may output a candidate matching result for each historical position. In some embodiments, the candidate matching result may indicate on which candidate route (or candidate road segment) that the trained HMM predicts the historical position is on. For example, the candidate matching result may include a candidate route (or candidate road segment) and the corresponding historical position.
[0096]
In 850, the processing engine 112 (e.g., the processor 220, the model training module 450) may train a preliminary supervised learning model based on the plurality of features and the candidate matching results to obtain the trained supervised learning model.
[0097]
In some embodiments, the preliminary supervised learning model may be an initial model with initial parameters. For example, the preliminary supervised learning model may include a Gradient Boosted Decision Tree (GBDT) model, a Recurrent Neural Network (RNN) model, a Convolutional Neural Network (CNN) model, or the like, or any combination thereof.
[0098]
In some embodiments, the processing engine 112 may input the plurality of features and the candidate matching result corresponding to each of the plurality of historical positions into the preliminary supervised learning model. During the training process, the candidate matching result of each historical position may be a label, and the initial parameters of the preliminary supervised learning model may be adjusted to obtain the trained supervised learning model. In some embodiments, the processing engine 112 may further test the trained supervised learning model. For example, the processing engine 112 may test the trained supervised learning model using a predetermined criterion. If the trained supervised learning model satisfies the predetermined criterion, the processing engine 112 may stop the training process to obtain the trained supervised learning model.
[0099]
In 860, the processing engine 112 (e.g., the processor 220, the model training module 450) may update the trained supervised learning model based on the determined route and the corresponding GPS track.
[0100]
In some embodiments, after every determining the route for each GPS track of a vehicle as illustrated in FIG. 5, the processing engine 112 may further use the determined route and the corresponding GPS track to further train the trained supervised learning model. For example, the processing engine 112 may input the determined route and the corresponding GPS track into the trained supervised learning model to adjust the parameters of the trained supervised learning model. The determined route may be a label during the training process. The trained supervised learning model may be updated, and may predict more accurate result than the trained supervised learning model before updating.
[0101]
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 800. For example, process 800 may further include storing the trained HMM after obtaining the trained HMM. As another example, operation 840 may performed before operation 820.
[0102]
FIG. 9 is a flowchart illustrating an exemplary process 900 for determining a measurement probability according to some embodiments of the present disclosure. The process 900 may be executed by the AI system 100. For example, the process 900 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 900. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 900 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 9 and described below is not intended to be limiting.
[0103]
In 910, the processing engine 112 (e.g., the processor 220, the probability determining module 430) may determine whether two road segments corresponding to two adjacent positions are reasonable based on a reasonability model.
[0104]
In some embodiments, the reasonability model may be a method and/or process for determining whether two road segments corresponding to two adjacent positions are reasonable according to a time order. The reasonability model may determine whether there is an unreasonable road segment mapped to a position in a GPS track. In some embodiments, the reasonability model may be an N-Gram model. For example, the N-Gram model may be trained using a plurality of historical GPS tracks and the corresponding routes that the plurality of historical GPS tracks matches. In some embodiments, the reasonability model may be pre-trained and stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) . The processing engine 112 may access the storage device to obtain the reasonability model for determining whether two road segments corresponding to two adjacent positions are reasonable.
[0105]
In some embodiments, conditions of determining that two road segments corresponding to two adjacent positions are unreasonable may include the two road segments may be discontinuous, at least one of the road segment drifts far from corresponding points, the two adjacent points lack at least one point (e.g., two time points corresponding to the two adjacent points is larger than the predetermined time interval) , the two road segments are redundant (e.g., the first road segment of the two road segments is mapped on another road and the second road segment of the two road segments is mapped back to the original road) , or the like, or any combination thereof.
[0106]
In some embodiments, the processing engine 112 may input the two road segments corresponding to two adjacent positions and/or several road segments corresponding part of the GPS track into the reasonability model. The reasonability model may predict a reasonable probability for each road segment and the corresponding point. The processing engine 112 may further determine whether each reasonable probability is greater than a probability threshold. In response to a determination that the reasonable probability is greater than the probability threshold, the processing engine 112 may determine that the road segment is reasonable. In response to a determination that the reasonable probability is not greater than the probability threshold, the processing engine 112 may determine that the road segment is unreasonable. In some embodiments, the probability threshold may be a default value stored in a storage device of the AI system (e.g., the storage 140, the ROM 230, the RAM 240, etc. ) , or determined by the AI system or an operator thereof according to different application scenarios. In some embodiments, in response to a determination that one of the two road segments corresponding to two adjacent positions are unreasonable, the processing engine 112 may determine that the two road segments are unreasonable.
[0107]
In 920, in response to a determination that the two road segments corresponding to two adjacent positions are reasonable, the processing engine 112 (e.g., the processor 220, the probability determining module 430) may determine the measurement probability based on the trained supervised learning model.
[0108]
In some embodiments, in response to a determination that the two road segments corresponding to two adjacent positions are reasonable, the processing engine 112 may determine that measurement probability determined by the trained supervised learning model is correct. The processing engine 112 may retain the measurement probability determined by the trained supervised learning model as the finial measurement probability for further determining the route.
[0109]
In 930, in response to a determination that the two road segments corresponding to two adjacent positions are not reasonable, the processing engine 112 (e.g., the processor 220, the probability determining module 430) may determine a probability component based on the trained supervised learning model.
[0110]
In some embodiments, in response to a determination that the two road segments corresponding to two adjacent positions are unreasonable, the processing engine 112 may determine that measurement probability determined by the trained supervised learning model is incorrect and needs to be corrected. In some embodiments, the processing engine 112 may assign the measurement probability determined by the trained supervised learning model as the probability component of the finial measurement probability for further determining the route.
[0111]
In 940, the processing engine 112 (e.g., the processor 220, the probability determining module 430) may determine a penalty factor for correcting the two unreasonable adjacent positions based on the road completion model.
[0112]
In some embodiments, the penalty factor may be a parameter for punishing the unreasonable road segment, and for optimizing the measurement probability of the unreasonable road segment and the corresponding position. In some embodiments, the penalty factor may be a positive number less than 1. The greater the penalty factor, the less punishment to the unreasonable road segment. The smaller the penalty factor, the larger punishment to the unreasonable road segment.
[0113]
In some embodiments, the processing engine 112 may determine the penalty factor based on the road complement model. For example, the processing engine 112 may input two adjacent points corresponding to the two unreasonable road segments into the road completion model. The road complement model may plan a possible route between the two adjacent points. In some embodiments, the processing engine 112 may determine the penalty factor based on the length of possible route. The longer the possible route, the larger punishment to the unreasonable road segment, and the smaller the penalty factor. In some embodiments, the processing engine 112 may determine the penalty factor based on a count of road segments in the possible route. For example, the processing engine 112 may determine the penalty factor as 0.8 when there is one road segment in the possible route, and determine the penalty factor as 0.8 n when there are n road segments in the possible route.
[0114]
In 950, the processing engine 112 (e.g., the processor 220, the probability determining module 430) may determine the measurement probability based on the probability component and the penalty factor.
[0115]
In some embodiments, the processing engine 112 may multiply the probability component by the penalty factor to obtain the measurement probability of the unreasonable road segment and the corresponding position. The measurement probability may be corrected according to the penalty factor. The greater the penalty factor, the greater the measurement probability.
[0116]
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 900. For example, process 900 may further include storing the measurement probability after determining the measurement probability.
[0117]
FIG. 10 is a flowchart illustrating an exemplary process 1000 for determining a route according to some embodiments of the present disclosure. The process 1000 may be executed by the AI system 100. For example, the process 1000 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 1000. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1000 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 10 and described below is not intended to be limiting.
[0118]
In 1010, for any two candidate match corresponding to two adjacent positions, the processing engine 112 (e.g., the processor 220, the route determining module 440) may determine a transition probability.
[0119]
In some embodiments, the processing engine 112 may determine the transition probability that the vehicle moving from a first road segment corresponding to a previous time point to a second road segment corresponding to a next time point of the previous time point. In some embodiments, the processing engine 112 may determine the transition probability according to a method or an algorithm. The method or algorithm for determining the transition probability may be not limited herein. For example, the method or algorithm may determine the transition probability based on a distance between two road segments, a time, a velocity of the object, information relating to a region where the positions locates, or the like, or any combination thereof.
[0120]
In 1020, the processing engine 112 (e.g., the processor 220, the route determining module 440) may determine the route based on the transition probabilities, the measurement probabilities, and a Viterbi algorithm.
[0121]
In some embodiments, the processing engine 112 may use the Viterbi algorithm to calculate a best route that matches with the GPS track. For example, the Viterbi algorithm may use a dynamic programming to quickly find the best route that has a maximum matching probability. In some embodiments, the matching probability may be a product of the measurement probabilities and transition probabilities corresponding to the GPS track. The Viterbi algorithm may traverse every candidate match to select the best route that has a maximum matching probability.
[0122]
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure.
[0123]
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested by this disclosure, and are within the spirit and scope of the exemplary embodiments of this disclosure.
[0124]
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment, ” “one embodiment, ” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
[0125]
Further, it will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
[0126]
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
[0127]
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS) .
[0128]
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution-e.g., an installation on an existing server or mobile device.
[0129]
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.
[0130]
In some embodiments, the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ” For example, “about, ” “approximate, ” or “substantially” may indicate ±20%variation of the value it describes, unless otherwise stated. Accordingly, in some embodiments, the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.
[0131]
Each of the patents, patent applications, publications of patent applications, and other material, such as articles, books, specifications, publications, documents, things, and/or the like, referenced herein is hereby incorporated herein by this reference in its entirety for all purposes, excepting any prosecution file history associated with same, any of same that is inconsistent with or in conflict with the present document, or any of same that may have a limiting affect as to the broadest scope of the claims now or later associated with the present document. By way of example, should there be any inconsistency or conflict between the descriptions, definition, and/or the use of a term associated with any of the incorporated material and that associated with the present document, the description, definition, and/or the use of the term in the present document shall prevail.
[0132]
In closing, it is to be understood that the embodiments of the application disclosed herein are illustrative of the principles of the embodiments of the application. Other modifications that may be employed may be within the scope of the application. Thus, by way of example, but not of limitation, alternative configurations of the embodiments of the application may be utilized in accordance with the teachings herein. Accordingly, embodiments of the present application are not limited to that precisely as shown and describe.

Claims

[Claim 1]
An artificial intelligent system for map matching, comprising: at least one storage medium including a set of instructions for map matching; and at least one processor in communication with the storage medium, wherein when executing the set of instructions, the at least one processor is directed to: obtain and save to a cache first structured data of a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; for each position of the plurality of positions, obtain from the at least one storage medium second structured data corresponding to at least one candidate match, each of the at least one candidate match including at least one of vector data or scalar data corresponding to the position and a road segment within a first predetermined distance from the position; for each of the at least one candidate match, determine a measurement probability based on at least one of a trained supervised learning model or a road completion model; generate a group of third structured data with at least one of a plurality of vectors and scalars corresponding to a route that matches with the GPS track based on the measurement probabilities; and send out a command in specific format to a user terminal to direct the user terminal to display a matching between a current location associated with the user terminal and the determined route.
[Claim 2]
The system of claim 1, wherein the trained supervised learning model is obtained by: obtaining a plurality of historical GPS tracks of a plurality of vehicles, each of the plurality of historical GPS tracks including a plurality of historical positions; for each of the plurality of historical positions of each historical track, obtaining at least one historical candidate match, each of the at least one historical candidate match including a historical position and a historical road segment within a second predetermined distance from the corresponding historical position; for each of the at least one historical candidate match, obtaining a plurality of features reflecting one or more relationship between a vehicle and the corresponding historical road segment; obtaining a candidate matching result for each of the plurality of historical positions based on a trained Hidden Markov Model (HMM) ; and training a preliminary supervised learning model based on the plurality of features and the candidate matching results to obtain the trained supervised learning model.
[Claim 3]
The system of claim 2, wherein the at least one processor is further directed to: update the trained supervised learning model based on the determined route and the corresponding GPS track.
[Claim 4]
The system of claim 2, wherein the plurality of features includes at least one of: an angle between a spot speed of a vehicle and the corresponding road segment; an angel between a line speed of the vehicle and the corresponding road segment; a distance between a position and the corresponding road segment; or a road feature of the road segment.
[Claim 5]
The system of claim 1, wherein the at least one processor is further directed to: determine whether two road segments corresponding to two adjacent positions are reasonable based on a reasonability model; and in response to a determination that the two road segments corresponding to two adjacent positions are reasonable, determine the measurement probability based on the trained supervised learning model.
[Claim 6]
The system of claim 5, wherein the at least one processor is further directed to: in response to a determination that the two road segments corresponding to two adjacent positions are not reasonable, determine the measurement probability based on the trained supervised learning model and the road completion model.
[Claim 7]
The system of claim 6, wherein to determine the measurement probability based on the trained supervised learning model and the road completion model, the at least one processor is further directed to: determine a probability component based on the trained supervised learning model; determine a penalty factor for correcting the two unreasonable adjacent positions based on the road completion model; and determine the measurement probability based on the probability component and the penalty factor.
[Claim 8]
The system of claim 5, wherein the reasonability model includes an N-Gram model.
[Claim 9]
The system of claim 1, wherein the trained supervised learning model includes at least one of: a Gradient Boosted Decision Tree (GBDT) model, a Recurrent Neural Network (RNN) model, or a Convolutional Neural Network (CNN) model.
[Claim 10]
The system of claim 1, wherein the road completion model includes a Bayesian model.
[Claim 11]
The system of claim 1, wherein to determine the route, the at least one processor is further directed to: for any two candidate match corresponding to two adjacent positions, determine a transition probability; determine the route based on the transition probabilities, the measurement probabilities, and a Viterbi algorithm.
[Claim 12]
An artificial intelligent method for map matching, implemented on a computing device including at least one storage medium including a set of instructions and at least one processor in communication with the storage medium, the method comprising: obtaining and saving to a cache first structured data of a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; for each position of the plurality of positions, obtaining from the at least one storage medium second structured data corresponding to at least one candidate match, each of the at least one candidate match including at least one of vector data or scalar data corresponding to the position and a road segment within a first predetermined distance from the position; for each of the at least one candidate match, determining a measurement probability based on at least one of a trained supervised learning model or a road completion model; generating a group of third structured data with at least one of a plurality of vectors and scalars corresponding to a route that matches with the GPS track based on the measurement probabilities; and sending out a command in specific format to a user terminal to direct the user terminal to display a matching between a current location associated with the user terminal and the determined route.
[Claim 13]
The method of claim 12, wherein the trained supervised learning model is obtained by: obtaining a plurality of historical GPS tracks of a plurality of vehicles, each of the plurality of historical GPS tracks including a plurality of historical positions; for each of the plurality of historical positions of each historical track, obtaining at least one historical candidate match, each of the at least one historical candidate match including a historical position and a historical road segment within a second predetermined distance from the corresponding historical position; for each of the at least one historical candidate match, obtaining a plurality of features reflecting one or more relationship between a vehicle and the corresponding historical road segment; obtaining a candidate matching result for each of the plurality of historical positions based on a trained Hidden Markov Model (HMM) ; and training a preliminary supervised learning model based on the plurality of features and the candidate matching results to obtain the trained supervised learning model.
[Claim 14]
The method of claim 13 further comprising: updating the trained supervised learning model based on the determined route and the corresponding GPS track.
[Claim 15]
The method of claim 13, wherein the plurality of features includes at least one of: an angle between a spot speed of a vehicle and the corresponding road segment; an angel between a line speed of the vehicle and the corresponding road segment; a distance between a position and the corresponding road segment; or a road feature of the road segment.
[Claim 16]
The method of claim 12 further comprising: determining whether two road segments corresponding to two adjacent positions are reasonable based on a reasonability model; and in response to a determination that the two road segments corresponding to two adjacent positions are reasonable, determining the measurement probability based on the trained supervised learning model.
[Claim 17]
The method of claim 16 further comprising: in response to a determination that the two road segments corresponding to two adjacent positions are not reasonable, determining the measurement probability based on the trained supervised learning model and the road completion model.
[Claim 18]
The method of claim 17, wherein the determining of the measurement probability based on the trained supervised learning model and the road completion model includes: determining a probability component based on the trained supervised learning model; determining a penalty factor for correcting the two unreasonable adjacent positions based on the road completion model; and determining the measurement probability based on the probability component and the penalty factor.
[Claim 19]
The method of claim 16, wherein the reasonability model includes an N-Gram model.
[Claim 20]
The method of claim 12, wherein the trained supervised learning model includes at least one of: a Gradient Boosted Decision Tree (GBDT) model, a Recurrent Neural Network (RNN) model, or a Convolutional Neural Network (CNN) model.
[Claim 21]
The method of claim 12, wherein the road completion model includes a Bayesian model.
[Claim 22]
The method of claim 12, wherein the determining of the route includes: for any two candidate match corresponding to two adjacent positions, determining a transition probability; determining the route based on the transition probabilities, the measurement probabilities, and a Viterbi algorithm.
[Claim 23]
A non-transitory readable medium, comprising at least one set of instructions for map matching, wherein when executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method, the method comprising: obtaining and saving to a cache first structured data of a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; for each position of the plurality of positions, obtaining from the at least one storage medium second structured data corresponding to at least one candidate match, each of the at least one candidate match including at least one of vector data or scalar data corresponding to the position and a road segment within a first predetermined distance from the position; for each of the at least one candidate match, determining a measurement probability based on at least one of a trained supervised learning model or a road completion model; generating a group of third structured data with at least one of a plurality of vectors and scalars corresponding to a route that matches with the GPS track based on the measurement probabilities; and sending out a command in specific format to a user terminal to direct the user terminal to display a matching between a current location associated with the user terminal and the determined route.
[Claim 24]
A system for map matching comprising: a GPS track obtaining module, configured to obtain a GPS track including a plurality of positions, wherein two adjacent positions in the plurality of positions respectively correspond to two adjacent time point; a matching module, configured to, for each position of the plurality of positions, obtain at least one candidate match, each of the at least one candidate match including the position and a road segment within a first predetermined distance from the position; a probability determining module, configured to, for each of the at least one candidate match, determine a measurement probability based on at least one of a trained supervised learning model or a road completion model; a route determining module, configured to determine a route that matches with the GPS track based on the measurement probabilities; and a route displaying module, configured to direct a user terminal to display a matching between a current location associated with the user terminal and the determined route.

Drawings

[ Fig. 1]  
[ Fig. 2]  
[ Fig. 3]  
[ Fig. 4]  
[ Fig. 5]  
[ Fig. 6]  
[ Fig. 7]  
[ Fig. 8]  
[ Fig. 9]  
[ Fig. 10]