This application claims priority to U.S. Provisional Application 61/771,610, filed Mar. 1, 2013, which is fully incorporated herein by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates generally to computer data processing and, more particularly, methods of and systems for monitoring and analyzing pedestrian traffic.
2. Description of the Related Art
There are countless occasions and studies in which knowing where people are at any given time is valuable. Some occasions are quite serious. For example, emergency services—such as fire departments and paramedics—need to get to places quickly. If areas of a city are blocked by public gatherings, public demonstrations, or the city's celebration of a sports team winning a national championship, emergency response vehicles can be significantly delayed, sometimes with very serious consequences. In addition, knowing whether and where people are in a burning building is highly valuable information for a fire department.
Analysis of pedestrian traffic patterns can help significantly with urban planning. Knowing where people tend to go within a city can help with planning a mass transit system. Knowing places that people tend to avoid can identify instances of urban blight. And, once the urban blight is removed, knowing how many people tend to go to that location can provide empirical evidence of the efficacy of the blight removal. Monitoring pedestrian traffic can also determine if and how often people enter environmentally sensitive areas.
Businesses also value information regarding where people are and where they go. Knowing approximately how many people are in a store at any given time is valuable. Knowing patterns regarding how many people are in the store at different times of day and different days of the week and during clearance sales and holidays is very valuable. Also valuable is knowing from where people travel to come to the store and what other stores they go to before and after shopping in the store.
What is needed is a way to monitor and analyze pedestrian traffic.
SUMMARY OF THE INVENTIONIn accordance with the present invention, numerous mobile devices report their respective locations to a server which collects the location reports to provide real-time pedestrian traffic information. The result can be as simple as a map that shows locations of individual mobile devices. As more and more people own and carry mobile computing devices, such as smart phones, tablet computers, and laptop computers, distribution of mobile devices in a geographic area more closely represents overall population locations and densities.
Real-time pedestrian traffic maps and reports can be used by emergency response vehicles to avoid areas blocked by demonstrations, celebrations, or other mass gatherings that can block various routes. In addition, during mass emergencies such as hurricanes and earthquakes, emergency response personnel can identify locations of large dispossessed populations or can determine whether people are in locations of particular danger.
In addition to reporting real time locations of people in an area, the location reports gathered over time can be statistically regressed to provide information on personal traffic flows. For example, large sporting events can wreak havoc on transportation systems. Tracking individual mobile devices to and from such a large sporting event can provide information regarding how many people travel along which paths to the sporting event, allowing a municipality to modify mass transit or other traffic management systems accordingly. Adapting mass transit to actual, observed human traffic patterns provides optimum service at minimal cost.
Furthermore, commercial interests—particularly retail—benefit from being able to determine a population of customers within a store at any given time and even more so from being able to determine where customers tend to come from before shopping in the retail location and where they tend to go to afterwards.
To ensure privacy and convenience of the individuals, the movement of each is tracked anonymously by monitoring the location of a portable personal computing device. Each device is identified by a digital fingerprint, formed from a number of system and device configuration parameters. Thus, each device can be accurately and securely identified without identification of the person carrying the device.
A client device requests personal traffic information from the server. The request can include a number of attributes of the traffic information requested. For example, for a current, real-time map, the attributes can specify the geographic boundaries of the map. For a map of personal movement over time, the attributes can specify both the geographic boundaries of the map and a range of time over which personal movement is to be mapped. For a statistical regression of personal location data, the attributes include the specifics of the statistical regression to be performed and can also include a format in which the results of statistical regression are to be represented.
Each mobile device is configured to periodically report its location, e.g., at a predetermined time interval and/or whenever the mobile device determines its location for another reason. A known location of a wireless network access point to which a mobile device is connected can serve as an estimated location of the mobile device. The location of the wireless network access point can be roughly determined from other location reports that include locations of respective mobile device that have been connected to the wireless network access point at the time location was reported.
BRIEF DESCRIPTION OF THE DRAWINGSOther systems, methods, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the accompanying claims. Component parts shown in the drawings are not necessarily to scale, and may be exaggerated to better illustrate the important features of the invention. In the drawings, like reference numerals may designate like parts throughout the different views, wherein:
FIG. 1 is a diagram showing a server computer that gathers and analyzes location data from a number of mobile devices through a computer network to provide personal traffic information to a client device in accordance with one embodiment of the present invention.
FIG. 2 is a map showing personal traffic information received from the mobile device ofFIG. 1.
FIG. 3 is a transaction flow diagram showing reporting of current location by a mobile device ofFIG. 1.
FIG. 4 is a logic flow diagram showing the manner in which a mobile device determines its location in an illustrative embodiment of the present invention.
FIG. 5 is a block diagram of a WiFi data record used by the server ofFIG. 1 to determine the geographic location of a wireless network access point.
FIG. 6 is logic flow diagram illustrating the processing by the server ofFIG. 1 of a request for traffic information.
FIG. 7 is a block diagram of a location data record used by the server ofFIG. 1 to represent a location report received from a mobile device.
FIG. 8 is a block diagram showing a mobile device ofFIG. 1 in greater detail.
FIG. 9 is a block diagram showing the client device ofFIG. 1 in greater detail.
FIG. 10 is a block diagram showing the server ofFIG. 1 in greater detail.
DETAILED DESCRIPTIONIn accordance with the present invention, a server106 (FIG. 1) gathers location information fromuser devices102A-D, provides instantaneous maps of current pedestrian traffic such as map200 (FIG. 2), and generates statistical analysis of such location information to provide detailed information regarding typical pedestrian traffic patterns.
Map200 is a very simple example of a pedestrian traffic map yet provides valuable information. For example, emergency services can immediately see that the Southeast intersection appears to be blocked by pedestrians and can reroute vehicles in response. The number of people using the park can be determined, both those using the park immediately and how many people use the park on average for various days, weeks, months, and seasons. The number of people using the parking garage at the South ofmap200 can be determined, both immediate use and usage patterns. The number of people visiting any store location shown onmap200 can be seen. In addition, patterns of pedestrian behavior can be identified, such as how many pedestrians visit a particular sequence of stores vs. other sequences of the same or other stores. Thus, a store manager can determine that a significant number of customers visit her store and then immediate visit a competitor around the block.
User devices102A-D (FIG. 1) each can be any of a number of types of networked computing devices, including smartphones, tablets, netbooks, laptop computers, and desktops computers, though location information is expected to be more useful for devices that are portable. Each ofuser devices102A-D serves as a location proxy for a single user. In other words, the location of each ofdevices102A-D is presumed to be the location of a single user. In addition, each ofuser devices102A-D communicates withserver106 through anetwork108, which is the Internet in this illustrative embodiment.Network108 can also be a mobile telephony network.User devices102A-D are analogous to one another and description ofuser device102A is equally applicable touser devices102B-D unless otherwise noted herein. It should also be noted that, while four (4) user devices are shown in this illustrative example, many more than four (4) user devices will report locations to make maps such asmap200 more representative of pedestrian traffic generally.
Client device104 is a device for whichserver106 provides access to pedestrian traffic information such as map200 (FIG. 2) throughnetwork108.
Transaction flow diagram300 (FIG. 3) illustrates the reporting bydevice102A of its location toserver106.
Instep302,device102A its globally unique device identifier toserver106 along with data indicating an intent to report the current location ofdevice102A.
Instep304,server106 sends a digital fingerprint challenge todevice102A. Digital fingerprints and digital fingerprint challenges are known and described in U.S. Patent Application Publication 2011/0093503 for “Computer Hardware Identity Tracking Using Characteristic Parameter-Derived Data” by Craig S. Etchegoyen (filed Apr. 21, 2011) and that description is incorporated herein in its entirety by reference.
Digital fingerprints offer the advantage of being more stable and less amenable to spoofing that are IP addresses and MAC addresses and, of particular significance here, require no user intervention. Accordingly, location reporting in transaction flow diagram300 is secure, reliable (no device spoofing), and requires no action on the part of the user.
To avoid frequent communication of digital fingerprints throughnetwork108, device identification and authentication uses only part of the digital fingerprints ofuser devices102A-D. A digital fingerprint challenge specifies one or more parts of a digital fingerprint and a manner in which the parts are combined and cryptographically obscured. In addition, the digital fingerprint challenge can change each time device identification and authentication is needed. Accordingly, each time a given device sends its digital fingerprint in response to a different digital fingerprint challenge, the digital fingerprint sent is different. Any digital fingerprint intercepted withinnetwork108 or any network will not authenticate properly if used in response to a different digital fingerprint challenge.
Instep306,user device102A determines its geographic location. Step306 is described in greater detail below in conjunction with logic flow diagram306 (FIG. 4).
Instep308,user device102A produces a responsive digital fingerprint data using the challenge received instep304 and digital fingerprint822 (FIG. 8).
In step310 (FIG. 3),user device102A cryptographically combines the responsive digital fingerprint data produced instep308 with data representing the location ofuser device102A determined instep308. By cryptographically combining the responsive digital fingerprint data and the location data,user device102A makes the data tamper-evident and obscured.
Instep312,user device102A sends the combined data toserver106. Instep314,server106 parses the responsive digital fingerprint data and location data and stores the location ofuser device102A in location data1040 (FIG. 10).
After step314 (FIG. 3), processing according to transaction logic diagram300 completes. In one embodiment,user device102A is configured to report its location according to transaction logic diagram300 at regular time intervals. In an alternative embodiment,user device102A is configured to report its location according to transaction logic diagram300 in response to a number of triggering events, including for example, determination of the location ofuser device102A for reasons independent of reporting of the location toserver106 and connecting to a wireless networking access point. Thus, any time the user ofuser device102A uses GPS circuitry ofuser device102A resulting in determination of the location ofuser device102A,user device102A reports the location toserver106 in the manner described above.
As described above, step306—in whichuser device102A determines its location—is shown in greater detail as logic flow diagram306 (FIG. 4). In logic flow diagram306, priority is given to the most accurate of location data available touser device102A and data identifying any wireless data network to whichuser device102A is included when available to helpserver106 in determining the location of devices for which a connected wireless data network is the only location data available.
Intest step402,user device102A determines whether a GPS (Global Positioning System) location ofuser device102A is available.User device102A may not include GPS circuitry, in which case the GPS location ofuser device102A is not available. Even ifuser device102A includes GPS circuitry, the GPS location ofuser device102A may not be available if the GPS circuitry is disabled or unable to receive adequate signals from GPS satellites.
If the GPS location ofuser device102A is available, processing transfers to step404 in whichuser device102A retrieves its GPS location. Otherwise, processing transfers fromtest step402 to teststep406.
Intest step404,user device102A determines whether a coarse location ofuser device102A is available. Coarse location ofuser device102A can be determined in a number of known techniques involving measurement of distances ofuser device102A from a number of wireless telephone network base stations and triangulation. Coarse location ofuser device102A may not be available if telephony network circuitry is disabled or unable to receive adequate signals from base stations.
If the coarse location ofuser device102A is available, processing transfers to step408 in whichuser device102A retrieves its coarse location. Otherwise, processing transfers fromtest step406 to teststep410.
Intest step410,user device102A determines whetheruser device102A is connected to a wireless data network (WiFi) through an access point. Ifuser device102A is connected to a wireless data network through an access point, processing transfers to step412 in whichuser device102A retrieves a globally unique identifier of the access point and determines a signal strength from the access point. Otherwise, processing transfers fromtest step410 to teststep416. The globally unique identifier (GUID) of the access point can be a digital fingerprint of the access point or a canonical combination of readily available information of the access point, such as MAC address and ESSID, for example.
Instep416,user device102A identifies its nearest wireless telephone network base station.
After either step404 or step408, processing byuser device102A transfers to teststep414 in whichuser device102A determines whetheruser device102A is connected to a wireless data network in the manner described above with respect to teststep410. Ifuser device102A is connected to a wireless data network through an access point, processing transfers to step412 in whichuser device102A retrieves a globally unique identifier of the access point as described above.
Fromstep416,step412, ortest step414 ifuser device102A is not connected to a wireless data network through an access point, processing transfers to step418 in whichuser device102A reports the retrieved location information as its best estimate for its location.
Server106 can estimate the location ofuser devices102A-D for which the only location data is a WiFi access point GUID ifserver106 can estimate the location of the WiFi access point itself, since WiFi access points have limited range. Accordingly,user device102A reports any WiFi access point to whichuser device102A is connected even ifuser device102A can determine its location by a more accurate technique.
In response to a location report that includes WiFi access point data in addition to location information independent of the WiFi access point data,server106 stores the location information in a location report504 (FIG. 5) within aWiFi data record500 associated with the WiFi access point.WiFi network GUID502 is the GUID of the WiFi access point, which is sometimes referred to as the subject access point in the context ofFIG. 5. Each location report for a user device connected to the subject access point is represented in alocation report504.Location506 represents the location of the reporting user device.Signal strength508 represents the signal strength of the subject access point as measured by the reporting user device.Time stamp510 represents the date and time at which the reporting user device was connected to the subject access point and can be used to determine whether the subject access point has been moved. Iflocations506 before a given date and time do not correlate well withlocations506 after the given date and time, it can be determined thatlocations506 before the date and time represent a prior location of the subject access point can be disregarded.
When a user device reports its location with only a GUID of a WiFi access point,server106 estimates the location of the subject access point by finding a center oflocations506 weighted bysignal strengths508.Server106 uses the weighted center as an estimated location of the reporting user device.
As described above,server106 stores the location ofuser device102A in step312 (FIG. 3). In particular,server106 stores the location ofuser device102A in a location data record700 (FIG. 7). Devicedigital fingerprint702 is the digital fingerprint by whichuser device102A is identified and authenticated. A number of location reports704 identify the location ofuser device102A at a given date and time.Location706 represents the location ofuser device102A, andtime stamp708 represents the date and time.
Logic flow diagram600 (FIG. 6) illustrates processing by server106 (FIG. 1) in response to a request for pedestrian traffic information fromclient device104. In step602 (FIG. 6),server106 gathers location information of numerous location data records700 (FIG. 7).
In step604 (FIG. 6),server106 performs statistical analysis of the location data. For a simple request such as that represented in map200 (FIG. 2), the statistical analysis can be as simple as gathering all device locations within the geographic boundaries ofmap200 and a predetermined recency, e.g., reported within the last twenty (20) minutes. Other statistical analysis can be more complex, involving a variety of statistical regressions and relationships between multiple devices and/or device locations over time.
User device102A is a personal computing device and is shown in greater detail inFIG. 8.User device102A includes one or more microprocessors802 (collectively referred to as CPU802) that retrieve data and/or instructions frommemory804 and execute retrieved instructions in a conventional manner.Memory804 can include generally any computer-readable medium including, for example, persistent memory such as magnetic and/or optical disks, ROM, and PROM and volatile memory such as RAM.
CPU802 andmemory804 are connected to one another through aconventional interconnect806, which is a bus in this illustrative embodiment and which connectsCPU802 andmemory804 to one ormore input devices808,output devices810, andnetwork access circuitry812.Input devices808 can include, for example, a keyboard, a keypad, a touch-sensitive screen, a mouse, a microphone, and one or more cameras.Output devices310 can include, for example, a display—such as a liquid crystal display (LCD)—and one or more loudspeakers.Network access circuitry812 sends and receives data through computer networks such as network108 (FIG. 1).GPS circuitry814 determines the location ofuser device102A in a conventional manner.
A number of components ofuser device102A are stored inmemory804. In particular,device tracking logic820 is all or part of one or more computer processes executing withinCPU802 frommemory804 in this illustrative embodiment but can also be implemented using digital logic circuitry. As used herein, “logic” refers to (i) logic implemented as computer instructions and/or data within one or more computer processes and/or (ii) logic implemented in electronic circuitry.Device tracking logic820 causesuser device102A to report its location in the manner described above.
Digital fingerprint822 is persistent data stored inmemory804.
Client device104 is a personal computing device and is shown in greater detail inFIG. 9.Client device104 includes one or more microprocessors902 (collectively referred to as CPU902),memory904, aninterconnect806,input devices908,output devices910, andnetwork access circuitry912 that are analogous to CPU802 (FIG. 8),memory804,interconnect806,input devices808,output devices810, andnetwork access circuitry812, respectively.
A number of components of client device104 (FIG. 9) are stored inmemory904. In particular,web browser logic920 is all or part of one or more computer processes executing withinCPU902 frommemory904 in this illustrative embodiment but can also be implemented using digital logic circuitry.Web browser920 is conventional.Digital fingerprint922 is persistent data stored inmemory904.
Server computer106 is shown in greater detail inFIG. 10.Server106 includes one or more microprocessors1002 (collectively referred to as CPU1002) that retrieve data and/or instructions frommemory1004 and execute retrieved instructions in a conventional manner.Memory1004 can include generally any computer-readable medium including, for example, persistent memory such as magnetic and/or optical disks, ROM, and PROM and volatile memory such as RAM.
CPU1002 andmemory1004 are connected to one another through aconventional interconnect1006, which is a bus in this illustrative embodiment and which connectsCPU1002 andmemory1004 tonetwork access circuitry1012.Network access circuitry1012 sends and receives data through computer networks such as wide area network104 (FIG. 1).
A number of components ofserver106 are stored inmemory1004. In particular,web server logic1020 andweb application logic1022, includinglocation analysis logic1024, are each all or part of one or more computer processes executing withinCPU1002 frommemory1004 in this illustrative embodiment but can also be implemented using digital logic circuitry.Location monitoring logic1026 andlocation analysis logic1028 are also each all or part of one or more computer processes executing withinCPU1002 frommemory1004 in this illustrative embodiment but can also be implemented using digital logic circuitry.
Web server logic1020 is a conventional web server.Web application logic1022 is content that defines one or more pages of a web site and is served byweb server logic1020 to client devices such asclient device104.Location analysis logic1024 specifies the behavior ofserver106 in providing location analysis services in the manner described above. For example,location analysis logic1024 provides a user interface through which a user ofclient device104 can specify attributes of the statistical analysis of location data desired. In addition,location analysis logic1024 analyzeslocation data1040, invokinglocation analysis logic1028 in some embodiments.
Location monitoring logic1026 specifies the behavior ofserver106 in receiving location reports in the manner described above.Location analysis logic1028 specifies the behavior ofserver106 in analyzinglocation data1040 in the manner described herein.
Location data1040 is data persistently stored inmemory1004 and is organized as one or more databases in this illustrative embodiment.Location data1040 includes WiFi data records such as WiFi data record500 (FIG. 5) and location data records such as location data record700 (FIG. 7).
The above description is illustrative only and is not limiting. The present invention is defined solely by the claims which follow and their full range of equivalents. It is intended that the following appended claims be interpreted as including all such alterations, modifications, permutations, and substitute equivalents as fall within the true spirit and scope of the present invention.