# Patent

## Title
Method and system for locating vacant parking places

## Abstract

Disclosed are methods and systems for determining a route for a vehicle where the probability for locating a vacant parking place is greatest. In response to a user's request for a vacant parking place, the system of the invention generates a route map and/or a heat map of the route with the highest probability of locating a vacant parking place.

## Background
CROSS REFERENCES TO RELATED APPLICATIONS
This patent application is related to and claims priority from commonly owned U.S. Provisional Patent Application Ser. No. 62/015,641, entitled: Method and System for Automatic Vacant Parking Place Locator, filed on Jun. 23, 2014, the disclosure of which is incorporated by Reference in its entirety herein.


TECHNICAL FIELD AND BACKGROUND
1. Technical Field
The present disclosure relates to the field of vacant parking place locators and more particularly to automatic vacant parking place locators.
2. Background
An operating system (OS) is a set of programs that mange a computer's hardware resources and provides a plurality of common services for different application software.
Mobile operating systems, also known as: mobile OS, mobile software platform, and/or handheld operating system are the operating systems that control a mobile device. Mobile OS are similar in principle to an operating system such as WINDOWS, MAC OS X, and/or LINUX distributions that control a desktop computer or laptop, for example.
Exemplary devices running mobile operating system: are smartphones, personal digital assistants (PDAs), tablet computers, information appliances, mobile devices, and/or wireless devices, electronically coupled and also in data communication with cameras and the like mounted at numerous positions in/on the vehicle. Some of the above are part of a group of what are sometimes referred to as smart devices, which may also include embedded systems.
Exemplary Operating systems that can be found on smartphones, infotainment systems and other on-board vehicle computers, and other recording devices for use with vehicles, mobile OS powered tablet computers, and other mobile wireless devices can include: GOOGLE's ANDROID, APPLE's iOS, RIM's BLACKBERRY OS, MICROSOFT's WINDOWS phone, LINUX, HP's webOS, SAMSUNG's BADA, NOKIA's MeeGo, among many others.
Application software also known as “app” or “application” includes software designed to help a user perform specific tasks. Exemplary applications may be: office suits, graphic software, media players, etc. Moreover, applications include executable software and optionally includes a graphical user interface (GUI) that implements a certain functionality.
Mobile applications are software usually designed to run on smart devices such as, but not limited to: smartphones, tablet computers, etc. Mobile applications may be available to purchase or to be free downloaded through application-distribution platforms, which are typically operated by an owner of the mobile operating system such as, but not limited to: APPLE store referred to as Apps Store, ANDROID market, etc. Mobile applications may be downloaded from the platform to a targeted device. Exemplary targeted device may be: an iPhone, a BlackBerry, etc.
An application server is a software framework that provides an environment in which applications can run, regardless of the application itself or its function. The applications are dedicated to the efficient execution of procedures (programs, routines, scripts, etc.) for supporting a construction of applications. The application server may act as a set of components accessible to a software developer through an API (application program interface) defined by a platform itself, for example.
Today's technology, supported by mobile wireless devices and the accompanied cellular infrastructure, may enable one or more community-driven applications. A community-driven application may be a software application executed in at least two mobile wireless devices, including, for example, such as smart phones, of at least two community members and which can automatically send information to other mobile devices of some community members, using the cellular infrastructure and the application server, to use that information for their benefit, and vice versa.
A user of the community based application initially executes the application on his mobile wireless device, which in turn can establish an on-line connection with an application server using the cellular infrastructure or other network and send and/or receive information, to and/or from the application server, for example. Community-driven applications are usually free to download and use, thus appealing to many users to download and enlarge the community of users that can add information.
SUMMARY OF DISCLOSURE
In growing number of cities around the world more families are having the capability to purchase and own a vehicle. In some places, this capability has grown such that a family may own a plurality of vehicles. Exemplary vehicles may be: an automobile; a truck; a bus; a motorcycle; bike; etc. Henceforth the description drawings and claims of the present disclosure the term vehicle may represent the above group and the like.
The growing capability of owning vehicle(s) increases the amount of vehicles in the streets of many cities around the world. This may cause that the amount of vehicles on a road/street exceeds the amount of vacant parking places.
Thus drivers spend some of their driving time in search for a vacant parking place. Sometimes the driver may add a great amount of time (40 minutes, for example) to his/her drive just for the search of a vacant parking place.
When driving in search of a vacant parking place, one may add more air pollution; may be less attentive to the road thus may increase the rate of car accidents; may waste more fuel (a valuable finite resource); may add tension and irritate other drivers on the road thus more potential for accidents (vehicle wrecks); The above and more may decrease human quality of life.
Decrease in human's quality of life may be due to: frustrated and angry drivers searching for a vacant parking place when they are in a hurry; tensed and worried drivers that got lost while searching for a vacant parking place; unsatisfied drivers because there are too many vehicles on the road (since some are still in search of a vacant parking place) causing traffic and/or driving slow; more death or injuries due to non-concentrating drivers on the road; more money spent on fuel instead of other things; etc.
The above-described deficiencies do not intend to limit the scope of the inventive concepts of the present disclosure in any manner. They are presented for illustration only.
Exemplary embodiments of the present disclosure provide a novel system and method of a novel automatic-vacant-parking-place locator (AVPPL). Exemplary automatic-vacant-parking-place locator (AVPPL) system may comprise: an AVPLL application server; an AVPPL data base; and a plurality of AVPPL community members.
AVPPL community members may each have: a vehicle, a GPS, a camera, an on line connection to a server, and a connection to an AVPPL application.
Some exemplary embodiments of an automatic-vacant-parking-place locator (AVPPL) system and method may utilize an AVPPL community member's wireless mobile device such as, a computer communication device, including, for example, smartphones, infotainment systems and other on-board vehicle computers, and dedicated video cameras and other recording devices for use with vehicles. An AVPPL community member's wireless mobile device, also known as a computer communication device, may include, for example, a camera, a GPS, one or more digital maps, and an online connection to one or more application servers, for example.
Exemplary wireless mobile devices may be, for example, but are not limited to: APPLE iPhone, iPad, Samsung Galaxy series, and other smartphones using operating system such as but not limited to: iOS, ANDROID, WINDOWS MOBILE, SYMBIAN, and BLACKBERRY, PDAs, and the like. Other wireless mobile devices may be, for example, infotainment systems and other on-board vehicle computers, and dedicated video cameras or other recording devices for use with vehicles
Henceforth the description drawings and claims of the present disclosure the term smartphone, when used as the computer communication device, may represent a wireless mobile device comprising a camera, a location analyzer (GPS, cell location by cell phone, etc.), and an online connection to an application server. Further a smartphone may have an AVPPL application. Similarly, when used as the computer communication device, for example, the infotainment systems and other on-board vehicle computers, and dedicated video cameras or other recording devices linked to networks, for use with vehicles operate similarly to the smartphone and also may represent a wireless mobile device comprising a camera, a location analyzer (GPS, cell location by cell phone, e.g., a smartphone), and an online connection to an application server.
In some exemplary embodiments the smartphone, as well as the infotainment systems and other on-board vehicle computers, and dedicated video cameras and other recording devices for use with vehicles, may further comprise: a computing core (CPU for example) together with a dedicated community-driven AVPPL application; one or more digital maps; a display (graphic, display for example); a G sensor; etc. In other embodiments the smartphone may have access to a computing core (CPU for example) together with a dedicated community-driven AVPPL application. In yet other embodiments a combination of both may be implemented.
An AVPPL community member may be required to place his/her computer communication device, such as a smartphone, cameras of the infotainment systems and other on-board vehicle computers, and dedicated video cameras or other recording devices for use with vehicles, in a place and manner such that the camera(s) may face, at least partially, one of the street's sides where a car may park. Usually a rear camera will be used, thus the computer communication device's (e.g., smartphone's) main display will probably be facing the driver. Exemplary mechanisms to position the smartphone may be on a smartphone-holding device associated to the vehicle's front windshield.
Thus while driving the camera of the computer communication device may capture, as video and/or as picture stills, the streets' long side. The images (from video or picture stills) may be image processed by an AVPPL processing unit, according to teaching of the present disclosure. The AVPPL processing unit may be inside the smartphone and/or in a server. The images may be processed to detect automatically vacant parking places. The information on the located vacant parking place may then be automatically sent toward one or more mutual databases for other AVPPL community members to be used.
An AVPPL community member may get (manually or automatically) information on a vacant parking place in an area he/she is searching for a parking place. Further an AVPPL community member may provide information on vacant parking place in different areas, he/she is driving through, to other AVPPL community members and/or to an AVPPL database. The information on vacant parking place may be sent and/or received automatically or manually.
Exemplary automatic-vacant-parking-place locator (AVPPL) systems and methods may collect information from multiple AVPPL community members which automatically and/or manually detect and locate vacant parking places. AVPPL system and method may share the information with a plurality of AVPPL community members.
An exemplary AVPPL may detect and locate a vacant parking place to an AVPPL community member according the AVPPL community member's preference, for example. Exemplary preferences may be a parking size similar or bigger than the AVPPL community member's vehicle size, for example.
Some exemplary AVPPL embodiments may further determine different details on the detected and located vacant parking place. Different details such as, but not limited to: is the parking legal; is the parking free of charge; the cost of an hour parking; and so on. Exemplary AVPPL embodiments may present to an AVPPL community member a plurality of different vacant parking places to choose from in a predefined order.
Exemplary presentation of the different vacant parking places may be by: graphical display and/or text messages on the AVPPL community member's smartphone. The predefined order of presentation of the located vacant parking places may be determined according to the AVPPL community member's preferable desires. Preferable desires such as, but not limited to: first presenting parking places in a size above a predefined size, next the most “fresh” vacant place reported, next presenting parking places free of charge, next presenting parking place nearest to destination, and so on.
Some exemplary AVPPL embodiment may build a statistical occupancy database. An exemplary statistical occupancy database may store statistics on vacancy of parking places over the time of a day/week/weekend, and so on. This statistical occupancy database may help an AVPPL community member seeking vacant parking place if the community-driven AVPPL application may have no real-time, on-line information, for example. The statistical occupancy database may be stored in an AVPPL server, for example and/or may be downloaded to an AVPPL community member's smartphone.
Further an exemplary embodiment of an AVPPL may detect and locate the vacant parking places before the AVPPL's community member has reached his/her destination. Exemplary AVPPL's application server may collect vacant parking locations from a plurality of other AVPPL community members driving in proximity to the required destination. The AVPPL's application server may determine the most appropriate vacant parking place for the AVPPL community member according to his/her pre-defined parking preferences (size, cost, etc.) The chosen vacant parking place may then become the actually destination of that AVPPL community member seeking parking.
Even further an exemplary embodiment of an AVPPL may plan the route/course of that AVPPL community member seeking parking, in order for him/her to reach the located vacant parking place. An AVPPL may further guide, in real-time, the AVPPL community member toward the located vacant parking place. Thus guide the AVPPL community member toward his actual required destination. The guidance may be by audio, by signs on a map on the smartphones screen, by text, and so on.
In some exemplary embodiments AVPPL community members may get pictures of vacant parking place, taken by other community member's AVPPL application, for example.
In some embodiments the process of information detected from a camera may be processed by the AVPPL community members' smartphone itself. In other exemplary embodiment the information may be fetched and processed by an AVPPL server. In yet other exemplary embodiments a combination of both may be implemented, and so on.
Information on located vacant parking place may be automatically sent and saved in one or more mutual AVPPL databases associated to one or more AVPPL application servers. In some exemplary embodiments a mutual AVPPL database may be located in an AVPPL server's memory storage.
Information on located vacant parking place may be automatically sent to an AVPLL community member currently driving toward its location in order to verify if it is still vacant. Furthermore, the AVPLL database may automatically remove a vacant location from the database after some time from the time it was reported, assuming it is no vacant anymore.
In some exemplary embodiments an AVPPL community member may download information to his/her smartphone on vacant parking places, in areas he/she requires to park, from the mutual AVPPL databases.
In exemplary embodiments in which the AVPPL guides an AVPPL community member toward a located parking place, the guidance may be implemented in different ways. Exemplary ways may be: by voice commands through the smartphone's speaker, and/or by markings on the smartphone's display. Exemplary marking on the smartphone's display may be: a map where a vacant parking has been located, and/or a list if parking places utilizing street and building numbers as references, a path marked on a digital map, etc.
Exemplary voice commands may be: one or more names of streets and number of building where a vacant parking place has been located and information on the parking (fees, size, proximity to required destination) and/or guiding commands toward the located vacant parking place, etc.
In some exemplary embodiments the markings on the maps of the smartphone's maps may represent different types of parking information on the map. For example, the color of a mark may represent the size of the vacant parking place. Another example of different marking representation may be the intensity of the brightness of the mark. For example a vacant parking place that was located 1 minutes ago may be more bright than a vacant parking place that was located 5 minutes ago (the brightness may slowly fade away as time passes); Another example of different marking representation may be the geometric shape of the mark may represent if the parking is free or not. For example a triangle is a free parking place; and so on.
Some exemplary embodiments of AVPPL may determine if the detected and located potential vacant parking place is: legal; free of charge; the cost for an hour parking; residence only parking allowed, exit of a private parking and so on, by different methods and system. Exemplary methods and systems may be: image processing (detecting the colors that the sidewalk is colored, for example); utilizing information gotten from city council and/or a mapping service; etc. The information gotten from city council and/or a mapping service may be stored at an AVPPL Server and/or on an AVPPL community member's smartphones memory storage.
Some exemplary embodiments of AVPPL image processing may take into account different temporary obstacles. Obstacles such as, but not limited to: car wipers, a person standing in a vacant parking place, etc. The AVPPL may decide that these temporary obstacles will not be a problem for parking, and thus present the detected parking place as vacant. The AVPPL may further detect permanent obstacles such as, but not limited to: pillar, trees, entrance to a parking lot, etc.
In some exemplary embodiments of an AVPPL a calibration phase may be required. An exemplary calibration phase may comprise: tuning the placement of the a AVPPL community members' camera; determining the camera's parameters (focal number, lens distortion, frame rate for example); determining the maximum vehicle velocity the AVPPL community member may drive his/her vehicle when using the AVPPL; etc.
The calibration phase may be executed at the beginning of a drive; and/or when an AVPPL community member request to use the AVPPL database; and/or when first registering to an AVPPL community; and/or when detection that a calibration is required; and so on.
In exemplary embodiments of a calibration an AVPPL community member may be requested to download and print a designated-for-calibration marked page. The AVPPL community member may be requested to take a picture of that paper using his/her smartphone's camera, at a specific position. Exemplary specific position may be in a certain distance and angle to a reference marked point on the designated-for-calibration marked page, and the like.
During the calibration and/or on a regular operation of an AVPPL feedback mechanism may be implemented. The AVPPL feedback may be executed automatically by the AVPPL community member's smartphone; manually by the AVPPL community member; by an AVPPL server; and/or a combination of them.
The feedback mechanism may image process the video and/or pictures received from a community members' camera and accordingly determine if: a change on the placement of the camera is required; and/or if the AVPPL community member is needs to driver slower; etc.
The velocity of the community members' vehicle may be determined from the AVPPL community members' smartphones' GPS output. Thus when the community members' vehicle exceeds a certain threshold velocity value the AVPPL may send a warning signal; etc.
The AVPPL feedback mechanism may request a re-calibration in different cases. Exemplary case may be when a significant error is found between a known length of an object detected by the camera and the estimation of that objects' length by AVPPL image processing. Other AVPPL feedbacks may be warning signals. Exemplary warning signals may be if an AVPPL community members' camera view is disturbed or blocked.
Exemplary embodiments of an AVPPL may encourage AVPPL community members to begin operating the AVPPL as soon as they begin driving, by placing their smartphone camera at a smartphone holder where the camera is facing the front window and thus enabling the AVPPL to start detecting and locating parking places along the way for other AVPPL community members seeking to park at places the AVPPL community member pass along his/her drive.
Some exemplary embodiment of an AVPPL, the AVPPL community member's smartphone may automatically get commands and/or information from the AVPPL servers regarding areas that do not require detecting vacant parking places and/or areas that do require detecting vacant parking places.
Exemplary areas that do not require search of vacant parking place may be highways and/or remote unpopulated areas, for example. In areas where it is not required to detect vacant parking place the AVPPL community member's smartphone's AVPPL application may be turned to idle, thus can save battery life for the smartphone and reduce load on the system, etc.
Information on areas that do not require detecting vacant parking places may be sent automatically toward AVPPL community members' smartphone, for example. An AVPPL community member may then set his/her smartphone accordingly. In other exemplary embodiments the AVPPL application may be set automatically according to GPS information on the location of AVPPL community member's vehicle.
The AVPPL may further be utilized for different applications and/or implementation. Exemplary other applications and/or implementation may be: utilizing the images gotten from cameras of AVPPL community members' cameras to database for police use. Police use, such as, but not limited to: locating missing children, locating stolen cars, road accident documentation, burglaries in areas filmed, etc.
Exemplary embodiments of an AVPPL may implement different methods and systems to assess a size of a vacant parking place detected from a community member's camera. Some exemplary embodiments of an AVPPL may utilize the community member's GPS's clock, or smartphone's internal clock, for timing when the vehicle of the member pass a beginning edge of a detected vacant parking place and timing when the vehicle of the member pass the end edges of a detected vacant parking place.
AVPPL may further utilize the GPS for information on the vehicle's velocity and location. AVPPL may then multiply the measured time difference by the velocity of the vehicle and thus receive an estimation of the size of the vacant parking place for other community members that will seek parking in that area, for example.
Some exemplary embodiments of AVPPL may utilize the number of video frames, received from the community member's camera, between the front edge and the back edge of a detected vacant parking place when the AVPPL community member's vehicle passes near it. Then AVPPL may multiply the time difference, of the time frames, with the velocity of the AVPPL community member's car. Thus receive an estimation of the size of the vacant parking place for other community members that will seek parking in that area, for example.
Some exemplary embodiments of AVPPL may detect from the images, captured by an AVPPL community member's camera, a license plate of a parked car near a detected vacant parking place. This may assist to estimate the detected vacant parking place's real size. An AVPPL embodiment may utilize the known size of a standard license plate. According to the detected amount of pixels it occupied within the camera's captured picture and known actual size of the license plate the AVPPL may calculate the ratio between number of pixels and real area size.
According to the calculated ratio the AVPPL can determine the estimated vacant place size by the detected amount of pixel the vacant place occupied within the AVPPL community member's camera captured picture.
Other exemplary embodiments may detect from an AVPPL community member's camera a captured image of a parked car near a detected vacant parking place. An AVPPL embodiment may utilize the known size of a distance between standard car's wheels. According to the detected amount of pixels the distance between the car's wheels occupied within the camera's captured picture, the AVPPL may calculate the ratio between number of pixels and real area size. According to the calculated ratio the AVPPL can determine the estimated vacant place size by the detected amount of pixel the vacant place occupied within the AVPPL community member's camera's captured picture.
Another exemplary embodiment of AVPPL may include image processing of how many pixels captures a car presented on a picture from a member's camera. The car may be located nearby the vacant place. The AVPPL may accordingly determine by reference if the vacant parking place size is similar or larger than the car captured near it. The determination may be by comparing the number of pixels, for example.
Some exemplary embodiments may automatically detect the model of a nearby parked car captured by a member's camera. Browse and find details on the real size of that car. The details may be found in a database stored in the AVPPL community members' smartphone and/or in an AVPPL server. Accordingly a comparison between the number of pixels the parked car captured, together with info on its actual size, an assessment of the vacant-parking place may be determined according to the number of pixels it captures, and so on.
Other techniques may be a combination of the above. Yet other exemplary embodiments may use other techniques. The assessments of size may be done during the calibration process and/or in real-time and/or every pre-determined period of time, for example.
Some exemplary embodiments may automatically detect the angel of which the smartphone camera is facing relative to the road by receiving the camera angel from the smartphone internal compass and/or the G sensor and the road angel from the north from the GPS readings, subtracting the above two angles may reveal the relative angel to the road.
The relative angle may be used to determine the distance of the vacant place from the vehicle by using simple trigonometric calculation and by assuming the distance of the driving vehicle from the sidewalk.
Yet another exemplary embodiment may detect from the captured image the marks on a sidewalk. Marks such as, but not limited to: the blue and white marking which indicates allowed parking space in Israel, for example. By using a predefined estimation of the blue and white actual size, and counting the number of blue and white marking along the vacant parking place, an estimation of the real size of the vacant place may be determined.
An AVPPL community member may send information on his/her vehicle model and/or smartphone model when registering for the first time, for example. At the beginning of the drive the AVPPL community member may enter his/her required destination.
Some exemplary AVPPL may further comprise a signaling from an AVPPL community member when he/she is leaving a parking place. The information may be stored in a mutual database together with information on the size of the leaving vehicle. Further the AVPPL may reminder the AVPPL community member to stop paying for the parking in case the parking fee is via a smartphone.
Embodiments of the present invention are directed to methods and systems for determining a route for a vehicle where the probability for locating a vacant parking place is greatest. In response to a user's request for a vacant parking place, the system of the invention generates a route map and/or a heat map of the route with the highest probability of locating a vacant parking place.
Embodiments of the present invention are directed to generating “heat maps” for obtaining vacant parking probability along streets and generating driving routes for finding parking, based, for example, on probabilities, from data obtained by the system of the invention from vehicles, which provide information and data to the system. The aforementioned heat maps and driving routes are such that they can be customized for parking based on the size, e.g., length, of the vehicle, e.g., car size, such as compact, small, mid-size, full size, SUV (sport utility vehicle) and the like.
Embodiments of the invention are also directed to detecting sidewalks and other aspects of streets and the like, from data obtained by the system.
Embodiments of the present invention are directed to methods and systems for detecting double parking, from data obtained by the system.
Embodiments of the present invention are directed to recognizing people, animals, vehicles, trash cans, commercial logos, advertisement posters, construction areas, snow piles, and their locations, temporary and permanent, from data obtained by the system.
Embodiments of the present invention are also directed to systems and methods for event detection, such as crime detection and analysis, useable by law enforcement and other authorities.
Embodiments of the invention are directed to a computer-implemented method for locating vacant parking places. The method comprises: obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network; processing, by a computer processor, the data to determine probabilities of finding available parking places within the predetermined area; receiving, over the communications network, a request from at least one user for available parking places from a starting point, as provided by the at least one user (and optionally, to a destination point); and, generating, by a computer processor, from the processed data, a map from the starting point, based on probabilities of finding available parking places. The map generated includes, for example, either or both of a route map and a heat map of the route.
Optionally, the method additionally comprises: receiving, over the communications network, the size of the vehicle; and, the generating of the map includes generating, by the computer processor, from the processed data, a map from the starting point, including a route, based on probabilities of finding available parking places, and, based on the size of the vehicle.
Optionally, the method is such that the obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network, is in real time, and the obtaining data further includes: obtaining statistical data as to available parking places for the predetermined area, and obtaining static data as to available parking spaces for the predetermined area.
Optionally, the method is such that the data collectors include one or more of: taxicabs, municipal vehicles, government vehicles, courier vehicles; private vehicles.
Other embodiments of the invention are directed to a system for locating vacant parking places. The system comprises a processor, and, storage media in communication with the processor for storing instruction executable by the processor. The instructions comprise: obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network; processing the data to determine probabilities of finding available parking places within the predetermined area; receiving a request from at least one user for available parking places from a starting point, as provided by the at least one user; and, generating, from the processed data, a map from the starting point, including a route based on probabilities of finding available parking places. The map generated includes, for example, either or both of a route map and a heat map of the route.
Optionally, the obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network, is in real time, and the obtaining data further includes: obtaining statistical data as to available parking places for the predetermined area, and obtaining static data as to available parking spaces for the predetermined area.
Optionally, the instructions additionally comprise: receiving, over the communications network, the size of the vehicle; and, the generating of the map includes generating, by the computer processor, from the processed data, a map from the starting point, including a route, based on probabilities of finding available parking places, and, based on the size of the vehicle.
Embodiments of the invention are directed to a computer-implemented method for locating vacant parking places. The method comprises: receiving a location of a device over a communication network and sending to the device the orientation of the parking at the location; receiving image data from cameras of mobile devices for an area being imaged by the camera; analyzing the image data based on the orientation of the parking places in the area being imaged; and, determining whether vacant parking places for a vehicle are available for the area being imaged, based on the orientation of the parking places. The orientation includes, for example, one of parallel to the street, perpendicular with respect to the street, and angled with respect to the street.
Optionally, the method additionally comprises: sending the location of vacant parking places over a communications network to a server.
Optionally, the method additionally comprises: transmitting the location of available parking places to a requesting user for the location of the requesting user.
More information on the methods and systems of the invention are disclosed in conjunction with the figures below.
Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the disclosure pertains. In case there is a conflict in the definition or meaning of a term, it is intended that the definitions presented within this specification are to be controlling. In addition, the materials, methods, and examples that are presented throughout the description are illustrative only and are not necessarily intended to be limiting.
Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure, and multiple references to “one embodiment” or “an embodiment” should not be understood as necessarily referring to the same embodiment or all embodiments.
Reference to “n” and “nth” in the specification and drawings refers to the last member of a series, such as a series of networks, devices, elements, and the like.
Implementation of the method and/or system of embodiments of the disclosure can involve performing or completing selected tasks manually, automatically, or a combination thereof. Moreover, according to actual instrumentation and equipment of embodiments of the method and/or system of the disclosure, several selected tasks could be implemented by hardware, by software or by firmware or by a combination thereof and with or without employment of an operating system. Software may be embodied on a computer readable medium such as a read/write hard disc, CDROM, Flash memory, ROM, and the like. In order to execute a certain task, a software program may be loaded into or accessed by an appropriate processor as needed.
These and other aspects of the disclosure will be apparent in view of the attached figures and detailed description. The foregoing summary is not intended to summarize each potential embodiment or every aspect of the present disclosure, and other features and advantages of the present disclosure will become apparent upon reading the following detailed description of the embodiments with the accompanying drawings and appended claims.
Furthermore, although specific embodiments are described in detail to illustrate the inventive concepts to a person of ordinary skill in the art, such embodiments are susceptible to various modifications and alternative forms. Accordingly, the figures and written description are not intended to limit the scope of the inventive concepts in any manner.



BRIEF DESCRIPTION OF DRAWINGS
Exemplary embodiments of the present disclosure will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
FIG. 1 illustrates a simplified block diagram with relevant elements of an exemplary portion of an AVPPL system, according to the teaching of the present disclosure;
FIG. 2 illustrates a simplified block diagram with relevant elements of an exemplary portion of an AVPPL system and apparatuses, according to the teaching of the present disclosure;
FIGS. 3a and 3b illustrate a simplified diagram with relevant elements of an exemplary portion of an embodiment of AVPPL determining a vacant parking place size, according to the teaching of the present disclosure;
FIG. 3c is an illustration of an alternate embodiment of the AVPPL for determining vacant parking places based on the orientation of parking places on a street or other specific location;
FIGS. 4a-4c depict schematic illustrations of simplified flowcharts with relevant blocks of an exemplary AVPPL method, according to the teaching of the present disclosure;
FIG. 5 depicts schematic illustrations of simplified flowchart with relevant blocks of an exemplary AVPPL method for detecting a vacant parking place, according to the teaching of the present disclosure;
FIG. 6 depicts an illustration of a flowchart applicable with the flowchart of FIG. 5;
FIG. 7a is a flow diagram of a process for generating heat maps and route maps in accordance with the teaching of the present disclosure;
FIG. 7b is a heat map generated in accordance with the process of FIG. 7a; 
FIG. 7c-1 is a general route map generated in accordance with the process of FIG. 7a; 
FIG. 7c-2 is a corresponding heat map of the route map of FIG. 7c-1;
FIG. 7d-1 is a custom route map generated in accordance with the process of FIG. 7a; 
FIG. 7d-2 is a corresponding heat map of the route map of FIG. 7d-1;
FIG. 8a is a flow diagram of a process for tracking in accordance with the teaching of the present disclosure;
FIG. 8b is a diagram showing the process of FIG. 8a; and,
FIG. 9 is a flow diagram of a process for object analysis in accordance with the teaching of the present disclosure.



DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
Turning now to the figures in which like numerals and/or labels represent like elements throughout the several views, exemplary embodiments of the present disclosure are described. For convenience, only some elements of the same group may be labeled with numerals. The purpose of the drawings is to describe exemplary embodiments and is not for production purpose. Therefore features shown in the figures are for illustration purposes only and are not necessarily drawn to-scale and were chosen only for convenience and clarity of presentation.
FIG. 1 illustrates a block diagram with relevant elements of an exemplary portion of an AVPPL system 100. AVPPL system 100 may include a plurality of AVPPL community members 130a-130n. An AVPPL community member 130a-130n may each have: a vehicle, a GPS, a camera, an online connection to a server, and a connection to an AVPPL application. In some embodiments the AVPPL community member 130a-130n may utilize a computer communication device or wireless mobile device, these terms used interchangeably herein, which include, for example, smartphones, infotainment systems and other on-board vehicle computers (the infotainment systems and on-board vehicle computers including processors and employing operating systems, such as Microsoft Windows®, Android®, APPLE®, and the like) and dedicated video cameras or other recording devices for use with vehicles, which include, for example, a GPS, a camera(s), an online connection to a server, and a connection to an AVPPL application. The AVPPL system 100 may further include one or more networks 110a-110n, an application server 120, and a mutual database 122 (shown as external to the server 120). In some exemplary embodiments the server 120 may comprise the mutual database 122, internal to the server 120, or portions both internal and external to the server 120.
The plurality of AVPPL community members 130a-n may be associated via the one or more networks 110a-110n to the application server 120 and/or to the mutual database 122. In an exemplary embodiment, the application servers 120 and/or mutual database 122 may be located in a node of the network 110 or in a terminal that receives several channels from access ports and, according to certain criteria, processes information and distributes them.
While the description below uses AVPPL community members 130a-130n to obtain the data, the system 200 (referred to herein as the “system” or “system of the invention,” and which can be modified for non AVPPL community members such as data collectors, as detailed below, such as in FIG. 7a through FIG. 9) and methods below can also obtain the data and information as described below with other vehicles, who are typically not AVPPL community members, such as Taxis and other vehicles, e.g., busses, trolleys, postal vehicles, vehicles, such as police, fire, emergency rescue and response, sanitation, cable, internet and phone company vehicles, delivery vehicles, couriers, such as automobile, truck, motorcycle and bicycle couriers, and other public and private vehicles which continuously traverse a city or area for long continuous periods of time. While traveling, these vehicles collect data using the system and method as described. These vehicles may be independent or part of a fleet. These other vehicles typically operate independently of the AVPPL community members 130, or the data and information obtained from these other vehicles may be used in conjunction with the data obtained from AVPPL community members, in any manner. The data obtained by these vehicles, who are typically not AVPPL members, may be donated to the AVPPL community and used in accordance with the disclosure herein.
The application server 120 may be an AVPPL application server, for example. AVPPL application server is only one of many different network servers that can implement the teachings of the present disclosure. Therefore the present disclosure should not be limited to AVPPL application server only. The server 120 may represent a single server or a combination of two or more servers. The mutual database 122 may represent a single mutual database or a combination of two or more mutual databases.
The network 110 may represent a single network or a combination of two or more networks such as, but not limited to: cellular data network such as Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Internet, a circuit switched network, and so on.
An AVPPL community member 130 may be an entity on the network 110, capable of providing real-time two-way information, with other AVPPL community members 130, with the server 120, and/or with the mutual database 122, via a computer communication device. Computer communication devices include, for example, a smartphone (manually or automatically), an infotainment system or other onboard computer in the motor vehicle of the community member, or a dedicated video camera or recording unit with network and wireless communication capabilities.
Exemplary information communicated between the AVPPL community member 130a-130n, via the AVPPL community member's computer communication device, and the server 120 and/or with the mutual database 122, may include, for example, video information, GPS information (time, velocity, location), one or more detected and located vacant parking places, information on detected and located vacant parking places, verifying the existence of a prior detected and reported vacant place.
An AVPPL community member's computer communication device may have an online connection to the server 120 and/or to the mutual database 122 via one of the networks 110a-110n. 
Exemplary computer communication devices, some of which may be commonly known as smartphones include, for example, APPLE iPhone®, iPad®, Samsung Galaxy® series, and other smartphones using operating system such as but not limited to: iOS, ANDROID, WINDOWS MOBILE, SYMBIAN, and BLACKBERRY. Exemplary computer communication devices may also include infotainment systems and onboard computers in the motor vehicles themselves, additionally are linked to cameras and sensors mounted in the vehicle, including front cameras, rear cameras, side cameras, and roof cameras, and dedicated video cameras or recording units including an externally or internally mounted camera with a 360 degree range.
In some exemplary embodiments the AVPPL community member's 130a-n computer communication device may further comprise: a computing core (CPU for example) together with an AVPPL application; one or more digital maps; a display (graphic, display for example); a G sensor; etc.
An AVPPL community member's smartphone missing one or more of the above components may be limited in the ways in which that AVPPL community member 130a-n may participate in the AVPPL community.
The described portion of AVPPL system 100 comprises and describes only the relevant elements. Other sections of an exemplary embodiment of an AVPPL system 100 are not described. It will be appreciated by those skilled in the art that depending upon its configuration and the needs of the AVPPL system, each AVPPL system 100 may have other number of AVPPL community member, networks, servers, and other components.
However, for purposes of simplicity of understanding, three AVPPL community members 130a-n, each with computer communication devices which comprise an AVPPL application, a plurality of networks 110a-110n with one server 120 and one mutual database 122 are shown.
FIG. 2 depicts a block diagram with relevant elements of an exemplary portion of an AVPPL system 200. Alternative embodiments of the AVPPL system 200 may have other components and/or may not include all of the components shown in FIG. 2. AVPPL system 200 may comprise a server 280, a network 260, and a plurality of exemplary AVPPL community member's computer communication devices, shown, for example, and represented by smartphones 210a-n. While the use of smartphones is detailed below, the description also holds true for other computer communication devices including, for example, infotainment systems and other on-board vehicle computers, and dedicated video cameras and other recording devices for use with vehicles.
Some exemplary embodiments of an AVPPL community member's smartphone 210a-n may comprise: an Input/output Interface (I/O) 228. The Input/output Interface (I/O) 228 may act as an interface between the AVPPL community member's smartphone 210 internal modules and the server's 280 internal modules and/or interface to another AVPPL community member's smartphone 210a-n, for example.
In one direction the Input/output Interface (I/O) 228 receives information from one or more of the plurality of AVPPL community member's smartphone 210 and/or from the server 280 via the network 260, for example. The Input/output Interface (I/O) 228 can deliver (transmit) the different information toward the relevant modules/units of that AVPPL community member's smartphone 210.
In some exemplary embodiments the Input/output Interface (I/O) 228 may process obtained information. Accordingly the Input/output Interface (I/O) 228 may decide toward which module/unit to transfer the information. Further, some exemplary Input/output Interfaces (I/O) 228 may convert the information format to a required communication standard required by the receiving module/unit.
In the other direction the Input/output Interface (I/O) 228 can transmit information from the AVPPL community member's smartphone 210 internal modules/units to one or more other AVPPL community member's smartphones 210 and/or toward the server 280 via network 260. Input/output Interface (I/O) 228 may receive separate streams from the various units of that AVPPL community member's smartphone 210. Some exemplary Input/output Interface (I/O) 228 may convert the information format to a required communication standard required by the receiving entity.
An exemplary embodiment of an AVPPL community member's smartphone 210 may also comprise a data collector and arranger module 226. The data collector and arranger module 226 may also be associated with a memory storage or other storage media (not shown in drawing). Exemplary embodiments of a data collector and arranger module 226 may collect and arrange information obtained from other internal modules of the smartphone 210 and/or from other AVPPL community member's smartphone 210 and/or from server 280.
Exemplary information may be: information on vacant parking places (location, size, fees, time, etc.); video or still images of one or more sides of roads; digital maps of the street or the road of where the allowed (legal) parking spots are; GPS inputs (time, vehicle velocity, location, etc.); routes, and so on.
The data collector and arranger module 226 may arrange the information according different parameters. Exemplary parameters may be: their relevance, the time obtained, the type of information (GPS location, pictures), and the like. The data collector and arranger module 226 may mark information with time stamps, for example. The module 226 may also report to other AVPPL community member's smartphones 210 and/or the server 280 that a reported vacant place is no longer vacant if the AVPPL community member decides to park there. The reported information may be sent with a time stamp, for example.
An exemplary embodiment of an AVPPL community member's smartphone 210 may also comprise a GPS module 240 and a camera 242. The GPS module 240 may provide different inputs. Inputs include, for example, but are not limited to: the location and location accuracy of the AVPPL community member's, input on time, the velocity of the AVPPL community member's, the number of GPS satellite, etc. The GPS module 240 may also include specific information such as the parking orientation on a street, roadway or the like, or a portion thereof, is parallel, perpendicular/angled, or different.
The camera 242 may record pictures and/or videos of one or more sides of the road the AVPPL community member's is passing through. The camera 242 may be programmed to take photographs at predetermined intervals, for example, by time or distance traveled, to save battery power, for example, as with smartphones and dedicated devices. Alternately, the camera can revert to this power saving mode when the battery power reaches predetermined levels. Additionally, the camera 242 is programmable, such that the camera is able to take images of sidewalks, entryways and the like, such that the image processor 230 can determine the presence or absence of entryways, driveways, and sidewalks, in order to determine the possible presence of a parking place (which is confirmed by the parking place determiner 236).
The information from the GPS 240 and/or camera 242 may be used by internal modules of the AVPPL community member's smartphone 210; and/or may be obtained for use by one or more other AVPPL community member's smartphone 210a-210n; and/or may be obtained for use by the server 280.
Some exemplary embodiment of an AVPPL community member's smartphone 210 may comprise an image processor 230, for example. Exemplary embodiments of an image processor 230 may obtain images (picture stills and/or video) from the camera 242. Further the image processor 230 may obtain images from other AVPPL community member's smartphone 210 and/or from server 280, via the Input/output Interface (I/O) 228, for example. The image processor 230 may process the image(s) and output information relating to the images associated with the requisite parking places.
Exemplary information may be the outlines of images. The image processor 230 may detect different obstacles in an image that are not required for determining size of parking. Exemplary obstacles may be: car wipers, people or objects in the street, and the like. Accordingly the image processor 230 may delete the obstacles from the images. Furthermore the image processor 230 may process the image and detect objects such as, vehicles, colors, trees, and the like.
Thus the image processor 230 may provide whether a side walk is of a color (based on national or local rules) in the color that permits parking or not, for example. The image processor 230 may process the image and detect empty space between vehicles, and the like. The image processor 230 may detect that the image is too dark or too bright and to send commands toward the camera 242 to change the camera internal settings to improve the picture quality, such as aperture size and/or shutter time, for example. The image processor 230 may also output whether the parking orientation for parking spaces on a street, roadway or the like, or a portion thereof, is parallel, perpendicular/angled, or different. Also, the image processor, for example, when working in real time, may detect that new parking spaces are available, a driveway, entryway or the like is no longer functioning as such, such that parking is now permissible there. Additionally, the image processor may detect obstacles in known parking spaces, such as dumpsters, a snow or dirt mound in that parking space, designation of the parking being temporarily off limit, such as due to a construction zone or area being set up, chairs in the spaces, typically when people have removed snow from that parking space.
The image processor 230 is programmable to analyze a series of images to determine the possible presence of a parking place. The image processor 230 analyzes a series of images (image frames) one by one to determine the presence of a parking place. If a predetermined number, of the analyzed series of images are indicative of a parking place, the information is sent to the parking size determiner 236, to confirm whether the location determined by the image processor 230 is a legal parking place.
The image processor 230 coupled with the processor 282 is also programmed for facial recognition of humans, animals and the like, and also programmed to recognize shapes, such as body shapes of humans in full or partially seen, animals, and the like. The image processor 230 coupled with the processor 282 is also programmed to recognize shapes including those for vehicles, such as automobiles, trucks, motorcycles, bicycles and the like. The image processor 230 coupled with the processor 282 is also programmed to recognize certain objects and use those objects as reference points in different images (image frames) or video frames. The image processor 230, coupled with the processor 282, has the ability to change the target dynamically and on the fly.
Accordingly the image processor 230 may output data and/or images and/or processed images toward different modules of the AVPPL community member's smartphone 210 itself. Different modules include, for example, a parking size determiner 236. The image processor 230 may output data and/or images and/or processed images toward other AVPPL community member's smartphones 210 and/or toward a server 280 via the Input/Output (I/O) Interface (I/O) 228, for example.
The image processor 230 may obtain the internal parameters of the camera 242, such as its focal point and aperture size, for example, as parameters for determining vacant parking place size.
An exemplary embodiment of a parking size determiner 236 may obtain inputs from different modules of the AVPPL community member's smartphone 210 itself. Exemplary other modules include, for example, an image processor 230, GPS 240, camera 242, and a data collector and arranger 226. An exemplary embodiment of a parking size determiner 236 may obtain inputs from other AVPPL community member's smartphones 210 and/or from a server 280 via the Input/output Interface (I/O) 228, for example.
The parking size determiner 236 may determine the size of an empty space in an image, for example. The parking size determiner 236 may use one or more techniques to determine the size of an empty space. Exemplary techniques may determine the parking size, for example, according to number of pixels; according to reference to other objects in the image; and/or according to geometric of the items in an image.
The parking size determiner 236 may also utilize information gathered from a calibration phase made earlier, if any, and/or take part in a calibration phase. The parking size determiner 236 may also output the data and/or images and/or processed images toward other AVPPL community member's smartphone 210 and/or to a server 280 via the Input/output Interface (I/O) 228, for example.
The parking size determiner 236 is also programmable to analyze parking place sizes based on the specific location, for example, whether it has parallel parking, perpendicular/angled, or different parking. The parking place size determined 238 obtains the information as to parking place orientation, parallel or perpendicular/angled, for a particular location, such as a street, from the GPS Unit 240, or over the network 260 from the server 280, which then activates the requisite program or algorithm for analyzing parking place size based on orientation of the parking place.
An exemplary embodiment of an AVPPL community member's smartphone 210 may also comprise a controller and decision module 220. The controller and decision module 220 may obtain inputs and/or send inputs from/to the AVPPL community member, via, for example, an input/output interface (I/O) 250, a display 256 (may be a touch screen display, for example), and/or by an audio module 258 (voice commands, for example).
Exemplary display inputs and those provided by the community member himself may utilize a projected on-screen keyboard or a map, for example. The community member may type or designate his destination. The community member may further add a requested maximum-distance of a located vacant parking place from the required destination.
The controller and decision module 220 may obtain inputs from: 1) different modules in the AVPPL community member's smartphone 210 itself; 2) another AVPPL community member's smartphone 210a-n; and/or, 3) from the server 280. Exemplary inputs may be processed images from the image processor 230, vacant parking size from a parking size determiner 236, different inputs from GPS 240 (time, velocity locations, etc.), requested destinations from different AVPPL community member 210, maps, information on vacant parking place, and the like.
The controller and decision module 220 may send commands: 1) toward one or more different modules in the AVPPL community member's smartphone 210 itself; 2) toward other AVPPL community member's smartphones 210; and/or, 3) toward the server 280, for example. Exemplary commands may be sent toward a path determiner 238, for example. Exemplary commands may include, for example, those to determine a path from the location of the AVPPL community member's smartphone 210 (according to GPS 240, for example) to point A which is where a proper vacant parking place has been detected and located.
Other exemplary commands may be, for example, those: 1) to send information regarding the path to a vacant parking place; and/or, 2) to display a map with the marked path on it to the required AVPPL community member's smartphone 210, for example. The information may be displayed on a display 256 of an AVPPL community member's smartphone 210, and/or may be given by audio via an audio module 258, for example. And or a combination of them.
Some exemplary embodiments of an AVPPL community member's smartphone 210 may comprise a gyro and/or g-sensor 246 in order to determine the placement of the camera, for example. The information may be passed toward the image processor 230 and or the parking size determiner 236, for example.
The input/output interface to user 250 may also be used by AVPPL community member. Exemplary use may be, for example, the community member entering information on vehicle size and/or vehicle type, a required destination location, a request to enter an AVPPL community service, and the like.
An exemplary embodiment of a server 280 may comprise and/or be associated to one or more mutual databases 284. An exemplary embodiment of a mutual database 284 may comprise information obtained from different AVPPL community member's smartphone 210 and/or from national, municipal and local authorities. The information includes, but is not limited to, images with time stamps, information on general parking places in the locality (location, size, fees, time allowed for public parking, for example, day/night (for example, as determined by both of the GPS data from the GPS unit 242 and a clock), weekday/weekend and holiday, and times for residents and permit holders only, etc.), and from information sources such as mapping and planning agencies, such as Government agencies, photographic data, GPS data, and data from traffic and navigation applications and systems, both available over the network 260 and in traditional formats, such as books, charts diagrams, maps, information bulletins, and the like.
An exemplary embodiment of a server 280 may comprise a general processor 282 that may manage the one or more mutual databases, and/or process information received by different AVPPL community member's smartphone 210 and/or from national, local, and municipal authorities, municipal records construction permits, for example. A general processor 282 may process obtained data to determine parking place information. This data is from sources, for example, obtained images from computer communication devices, as well as images obtained from satellites aerial and land photos, for example, from government agencies and their web sites, for example, the US Geological Survey (USGS), and from web sites such as Google Earth®, obtained GPS inputs and data (also obtainable over a network), and information obtained over a network, such as interactive traffic and navigation application and system such as Waze® from Google® (www.waze.com). Additionally, the obtained information from any of the above-listed sources is also usable to detect obstacles in known parking places, whereby they are temporarily not usable as parking places. The information obtained by the server 280 may be, for example, the presence of obstacles in one or more parking places, such as dumpsters, a snow or dirt mound in that parking space, designation of the parking being temporarily off limits, such as due to a construction zone or area being set up, chairs in the spaces, typically when people have removed snow from that parking place. Alternately, information may be obtained by the server 280 as to new parking places being created, such as when driveways or entryways are blocked, due to new construction, the direction of a street being changed, and the like. For example, from all of the aforementioned sources, USGS, Google Earth®, GPS data, and interactive traffic and navigation systems, the server 280 obtains the information as to parking space orientation, parallel, perpendicular/angled, or different, for a particular location, such as a street, as well as temporary unavailability or availability of a parking place. This information is stored in the mutual database 284. The processor 282 is such that this parking place orientation is communicated to each computer communication device 210, over the network 260, in order to determine whether the location being viewed corresponds to a legal parking place.
Accordingly a general processor 282 may determine paths for one or more AVPPL community members and send the information toward the relevant AVPPL community member's smartphone 210.
Alternatively, the processor 282 may be programmed to analyze portions of an area for available parking places. Data from the computer communication devices is received as to parking places being emptied or filled, and the rates of such emptying or filling. Based on these rates, the processor can determine locations where it will be easier or more difficult to get a parking place and in the case of difficulty, suggest other areas where parking may be readily available. This is useful for example, in areas around stadiums, event centers and the like, which tend to be used occasionally, but fill up rapidly for short periods of time. The AVPPL community members would be informed of this situation when they enter or request information on a certain area, and will be suggested to go to other areas where parking is more plentiful.
The processor 282 may also be programmed to analyze processed images where parking spaces are occupied or vacant for longer periods of time or at specific times during the day or the week. This may indicate that the parking spaces are reserved for special situations such as, for example, vehicles of handicapped owners, loading zones, taxi stands or bus stops, such as school bus stops and special shuttle and transport services. This information can also be programmed into the processor 282 as static data from the database 284.
The processor 282 may also be programmed to create “heat maps” from analyzed data, for parking and the like. The heat map represents the probability of finding a vacant parking place for a driver's car, at certain place in the street or a certain part of the street within a certain time, usually the current time. The heat map may be calculated using analyzed data from the database 284 over a large time, which form a statistical measurement.
These heat maps for parking are general, but are custom made based on the size (e.g., length) of the car or vehicle or a residential parking zone permit or paid or free parking, for which a parking space is sought. For example, the general heat map may be the default, of a small car, with custom heat maps available for other size cars. The processor 282 is also programmed to create a navigation route to parking for users who seek parking. This navigation route uses geolocation, such as GPS data as well as one or more of statistical data, real time data, and other data, as gathered from AVPPL vehicles, and Non-AVPPL vehicles, such as taxis, or combinations thereof.
The processor 282 is such that it is programmed to create the heat maps and route maps dynamically, in that these maps can change momentarily and in real time, due to one or more vacant parking reported in real time on a certain street, or changing parking conditions, or in response to other conditions, that may change parking conditions, as reported in real time by data collectors, such as taxis, vehicles, other AVPPL and non AVPPL vehicles. For example, there may be an emergency repair of a street, a demonstration closing off the street suddenly, which would change parking conditions, and hence, heat maps and route maps, instantly and in real time.
The processor 282 is also such that it analyzes all of the data obtained from the AVPPL community members and other vehicles and generates statistical information, in an accumulated manner, over various time periods, for example, days, weeks or months. This statistical data is such that it provides information where parking can be found, or has the best probability of being found on certain time periods, such as certain days, times of a day and the like.
The processor 282 also communicates with the mutual data base 284, which stores additional data such as static information, such as a parking lot and street parking around a certain location is probably filled or highly occupied at a certain time based on an event nearby, such as a sporting event, concert, convention, or the like, as well as certain parking lots filling up at certain times, such as business hours on work days. Also, the parking may be restricted, available between certain times, but not available at other times, or is permit only at certain times and non-restricted at certain times. For example, certain parking in a business district is restricted or otherwise unavailable during business hours, but available as parking during non-business hours and on weekends and holidays. Similarly, parking in residential neighborhoods may be unrestricted by day, but at nights and on weekends and holidays is restricted to residents and permit holders only. The network 260 may represent a single network or a combination of two or more networks such as, but not limited to: cellular networks, the Internet and other public networks, local area networks and wide area networks, and the like.
In alternative embodiments, where the computer communication device is an infotainment system or other built-in computer to the vehicle, or dedicated video camera or a recording unit, it may be equipped with a vehicle to vehicle (V2V) chipset, such as KRATONTM from Autotalks of Israel (www.auto-talks.com). This chipset includes hardware and software allowing vehicles to communicate directly with each other and, for example, in a relay, where a first vehicle can provide information as to an available parking place to the closest vehicle which also has the V2V chipset. This first vehicle relays this information to the closest vehicle (which has the V2V chipset), which then relays the information to the closest other vehicles which have the V2V chipset, until a predetermined distance from the first relaying vehicle is reached. The relay distance may be, for example, approximately 1 Kilometer.
FIG. 3a illustrates a simplified diagram with relevant elements of an exemplary portion of an embodiment of AVPPL method and system 300a of determining a vacant parking place size. Exemplary AVPPL method and system 300a may include a driving vehicle 310 comprising a smartphone 312, exemplary of the computer communication device. As shown, the smartphone's 312 camera has an open view to at least part of a street 302 the vehicle is driving through. In the exemplary embodiment there are two static reference items 320 and 330 in the street 302 with a vacant parking place between them, and a side walk 350. The two or more reference static items 320 and 330 may be: parked cars, stationary trash containers, trees, pillars, and the like.
The smartphone 312 may include: a camera, a GPS, and an online connection to one or more servers, for example. The smartphone's camera may be facing to the front window of the car capturing the side of the street 302 with the side walk 350 where both reference items 320 and 330 are placed.
In an exemplary embodiment the smartphone's 312 camera may capture (by video and/or by still pictures) the reference items 320 and 330 while the vehicle 310 is driving. The smartphone's 312 GPS may give time stamps to a few of the captured images (video and/or stills) by the camera. The velocity of the car may be deduced by inputs from the smartphone's 310 GPS, for example. Inputs such as but not limited to a plurality of locations with time stamps.
Accordingly, a processing unit (in the smartphone 312 itself and/or in an associated server via an online connection to the computer communication device, for example, a smartphone 312 or a combination smartphones 312 or other computer communication devices) may obtain the inputs from the smartphone's 312 GPS and camera. The smartphone 312, via its processor(s) then processes the information and calculates the distance D 344 between both reference items 320 and 330 according to the two time stamps when the car passed reference items 320 and 330 (at point X and Y, for example) and the average velocity of the vehicle 310 when driving between the reference items.
Furthermore the processing unit may image process the images from the camera and detects the markings on the sidewalk 350 in the vacant area (between point X and Y). Exemplary markings may be alternating blue and white markings that represent parking information in certain countries. According to the colors, for example, the image processor may determine if the parking is legal and/or if payment must be made for the parking place.
Furthermore, from prior knowledge of the actual size (dimensions) of each blue-white marking, an exemplary AVPPL may deduce the size of the vacant parking place (D) 344. This is done, for example, by counting the number of markings between X and Y and multiplying by the real size of the blue and white marks/sections.
The distance D 344 (between point X and Y), together with its location (according to the smartphone's 310 GPS, for example), and together with the information on the fees (taken from local governments, municipalities and other authorities, for example) may then be obtained by different entities. Exemplary entities may include, for example, different AVPPL community members seeking vacant parking place for a vehicle in size D 344 or less, and/or mutual databases, and/or, servers. Furthermore, the processing unit may create a conversion between the number of pixels and the calculated length D for future use, for example.
FIG. 3b illustrates a simplified diagram with relevant elements of an exemplary portion of an embodiment of an AVPPL method and system 300b of converting image's pixels to a length (distance) measurement, such as, centimeters (cm). The AVPPL method and system 300b may include a vehicle 3100 comprising a computer communication device, in accordance with those detailed above, here, for example, a smartphone 3120, and at least one static reference items 3200 in a street 3002. The reference item 3200 may be a car, for example.
The smartphone 3120 may include: a camera, a GPS, and an online connection to one or more servers, for example. The smartphone 3120 may be associated with the front windshield or other front window of the car facing the side of the street 3002 where the item 3200 is located.
In an exemplary embodiment the smartphone's 3120 camera may video and/or take pictures of the reference 3200 items while the vehicle 3100 is driving. A processing unit (associated to the smartphone and/or to a server) may image process the images from the smartphone's 3120 camera. If the processing unit detects that the reference item 3200 is a vehicle it may count the number of pixels that the vehicle 3100 captured in the image (D pixels 3440, for example). Accordingly the processing unit may define that the number of pixels defining a size of a vehicle detected in future pictures on the about same angle 3460 from the camera plane, is at least the number of D pixels the image captured.
In some exemplary embodiments the processing unit may further identify the type of vehicle 3200 and may utilize a database (associated to the smartphone or server, for example) with information on the exact size of detected the vehicle 3200. Thus the conversion from pixels to cm may be more accurate.
The above information may be used later on when searching for a vacant parking place in desired areas using the smartphone's 3120 camera, for example.
In FIG. 3c a vehicle 3250, equipped with a computer communication device 3252, such as a smartphone, is initially traveling East on Washington Street (as indicated by the arrow 3253). The position of the vehicle 3250 is recorded by the GPS 242 and matched with GPS Data in the server, as well as other data from maps, community traffic and navigation web sites, and the like, detailed above, that parking on this street is perpendicular (area 3254). Accordingly, the computer communication device 3252 runs a program to identify and determine parking places based on this perpendicular orientation, for example, in accordance with either of FIG. 3a or FIG. 3b. 
Similarly, as the vehicle 3250 enters Jefferson Street and travels East (indicated by the arrow 3255), the position of the vehicle 3250 is recorded by the GPS 242 and matched with GPS Data in the server, as well as other data from maps, community traffic and navigation web sites, and the like, detailed above, that parking on this street is parallel (area 3256). Accordingly, the computer communication device 3252 runs a program to identify and determine parking places based on this parallel orientation, for example, in accordance with either of FIG. 3a or FIG. 3b. 
FIG. 4a depicts schematic illustrations of simplified flowchart with relevant acts of an exemplary AVPPL method 400 for providing inputs on detected and located vacant parking places. In some exemplary embodiments AVPPL method 400 may be executed by a server. In other exemplary embodiment the AVPPL method 400 may be executed by the AVPPL community member's smartphone. Yet other exemplary embodiments may be a combination of both.
Method 400 may begin by allocating 404 different sources, and setting/resetting 404 different counters. Exemplary sources may be mutual databases, online, information on the AVPPL community members, information on parking from city councils, etc.
Method 400 may wait 406 until a request for a parking place is obtained 406. When a request for a parking is obtained 406, method 400 may verify 408 if the AVPPL community member requesting has contributed information to the AVPPL community. The contribution may be during the last 24 hours, for example. Also, for example, the contribution may be the community member leaving a parking space, manually or automatically by the system (e.g., system 200), and providing the location, and any details about the space, e.g., certain restrictions, size of the space, such as for a certain vehicle size, to the server 120. In some exemplary embodiments, an AVPPL community member does not have to contribute to the system before seeking parking.
If 408 the AVPPL community member requestor has contributed then method 400 may proceed to act 416. If 408 not, then method 400 may get 410 information on the AVPPL community member. Information such as, but not limited to: type/size of his vehicle; the AVPPL community member smartphone's cellular network; the AVPPL community member's type of smartphone; etc. The above type of information may be entered by the AVPPL community member and/or be automatically downloaded from his/her smartphone.
Next a calibration phase may begin 412. A calibration phase may comprise: adjusting the location of the camera, adjusting the AVPPL community member's vehicle velocity, etc. Next method 400 may gather 412 information from the camera and/or processed information from the smartphone of the AVPPL community member regarding the street he is driving through. In some exemplary embodiments the collecting phase may be for a predefined period of time before the user may be entitled to receive information on vacant parking place close to his/her required destination.
After a pre-defined time has passed 414, method 400 may get 416 the required destination of the AVPPL community member (point B, for example). Next method 400 may proceed to act 420 FIG. 4b. At act 420 method 400 may search 420 for information on vacant parking place in close proximity to the AVPPL community member's required destination (point B). Close proximity may be: a few meters, a few streets, and so on. The proximity radius may differ by time and/or location and/or AVPPL community member's preference, and so on. Method 400 may search 420 in mutual databases or in other AVPPL community members' smartphones, for example.
In some embodiments method 400 may limit the search to vacant parking place according to the size of the AVPPL community member's vehicle. Even further method 400 may limit the search to other required parameters that an AVPPL community member wishes. Exemplary other required information may be: costs of the parking place, its proximity to destination, etc.
If an appropriate vacant parking place has been found 422, then method 400 may proceed to act 428. If 422 not, then method 400 may check 424 if other AVPPL community members are in area close to the AVPPL community members' required destination, and get video and/or pictures and/or data on vacant parking places from them.
If a proper vacant parking place has been found 426, then the information may be sent 428 toward the AVPPL community member. The information may be sent by audio and/or by display on the AVPPL community member's smartphone, for example. The AVPPL community member may be asked if he/she wants to stay online 430 and receive more relevant and/or updated information if will be found. If yes 430, then method 400 may proceed to act 450 FIG. 4c. If 430 not, then method 400 ends.
Returning to act 426, if no proper vacant parking place is found for the AVPPL community member, then method 400 may check if the AVPPL community member is still searching for 440 a vacant parking place. If not 440, then method 400 may end. If 440 yes, then method 400 may wait till a timeout pass 442. After time out pass method 400 may check 444 for information from parking lots, for example, and return to act 424.
Turning to act 450 FIG. 4c, method 400 may verify if the parking place is still vacant 450. If not 450, then the method 400 may inform 460 the AVPPL community member that the parking place has been caught by another, and method 400 may return to act 420 FIG. 4b. If 450 the parking place is still vacant method 400 may search for a better vacant parking place. Better may be according to different criteria. Exemplary criteria may be: closer to required destination, free of charge parking, larger size parking place, etc. Method 400 may search 452 in mutual databases; inquire from other AVPPL community members' smartphones, etc.
If 454 a better parking place has been found method 400 may check if there is enough 456 time to change the AVPPL community member route. If 456 not, then method 400 does not change the route of the AVPPL community member and method 400 ends. If 456 there is enough time to change route method 400 may update the user 458 and go to act 428 FIG. 4b. 
Returning to act 454. If no better parking place has been found, method 400 may verify if the AVPPL community member is still searching 462 for a vacant parking place (if user has not logged off, for example). If 462 not, then method 400 may end. If 462 yes, then method 400 may check if a timeout has passed 464. If yes, method 400 may end. If 464 not then method 400 may verify if the AVPPL community member wants to stay online and receive more updated information. If 468 not, then method 400 may end. If 468 yes, then method 400 may return to act 450.
FIG. 5 depicts a schematic illustration of a simplified flowchart with relevant blocks of an exemplary AVPPL method 500 for detecting a vacant parking place. In some exemplary embodiments AVPPL method 500 may be executed by a server. In other exemplary embodiment the AVPPL application method 500 may be executed by an AVPPL community member's smartphone. Yet other exemplary embodiments may be a combination of both.
The information on vacant parking place may be sent toward a mutual database, and/or one or to one or more servers, and or one or more AVPPL community member, for example. Method 500 may begin by allocating 502 resources and setting/resetting 502 counters. Exemplary resources may be AVPPL community member's camera, image processors, mutual databases, etc.
Next a calibration process may be made 504. The calibration process may comprise detecting 504 an average size vehicle in a gotten video and/or picture image. Accordingly determining 504 the number of pixels that represent an average size vehicle. The calibration process may be done by the smartphone of an AVPPL community member, and/or by a server for example.
Next method 500 may process images received from the same AVPPL community member. Method 500 may search for 508 a free space along a sidewalk of a street the AVPPL community member vehicle is passing through and capturing with his/her camera, for example. When a free space has been detected 508, then the number of pixels occupied by the free space may be compared to the number of pixels that represent an average size vehicle.
If 508 the free space is bigger or equal to the average size vehicle then method 500 may verify 510 if it is a legal parking place. Verification may be according to the colors marking the sidewalk near the vacant parking place, and/or according to data from database, and/or according to data from city council database, etc. If 510 the parking space is not legal then method 500 may return to act 506.
If 510 the parking space is legal method 500 may verify 512 if the parking costs money. If 512 the parking costs money method 500 may update 516 the AVPPL community member on the vacant parking place location and fees. And method 500 may end. If 512 the parking does not cost money method 500 may update 514 the AVPPL community member on the vacant parking place location. And method 500 may end.
FIG. 6 details additional steps in the process of FIG. 5. Prior to block 502, there is a process where the parking orientation for parking places on the street is determined. At block 601a, the vehicle location is determined by GPS, e.g., the GPS unit 242, and matched with the data as to the type of parking, for example, parallel, perpendicular/angled or different, from the server 280. The processor 282 sends data to the computer communication device in the vehicle, to analyze parking places based on the determined parallel, perpendicular/angled, or different, orientation of the street, at block 601b. The process resumes from block 502 of FIG. 5.
While the data in FIGS. 1-6 was from AVPPL community members, the data used in FIGS. 1-6, and the systems and methods detailed therein may also be from non-AVPPL community members, such as taxicabs, municipal vehicles and other vehicles, that regularly traverse the city or area. Combinations of AVPPL community members and non-AVPPL community members, are also usable to collect the data, information and the like, as used in FIGS. 1-6, and the systems and methods detailed therein.
FIG. 7a details a process for generating a heat map and/or route map, e.g., navigation pathway. Also in this figure is a process for object identification.
For example, data is collected in real time (real time information), at block 702a, as images are obtained from AVPPL members or Non-AVPPL members, such as taxis traveling within the streets, and if possible, information from motorists leaving a parking space or other real time reports. In addition to this real time information from block 702a, statistical information, represented by block 702b is also sent to block 702. Statistical information includes, for example, gathered information, compiled (computed) over a time period or window, such as for hours, days, weeks or months. This information may be further combined with static information, block 702c, for example, that a certain parking lot or spaces on a certain street will be highly occupied at certain times, such as an event at a location nearby, or that a parking tends to be occupied at certain times, for example, during work hours.
The real time information, block 702a, statistical information, block 702b and static information, block 702c, are provided to the processor 282, which processes the information, at block 702. The processing of the information, is for example, to create probabilities for available parking along streets, portions or sections thereof, and the like. The processor 282 processes the images for various real time information, such as vacant parking spaces, and the probability of their availability at any given time, as detailed above.
The process moves to block 703, where a general heat map 720 for parking is created, for example, the heat map of FIG. 7b, which shows parking probabilities along various streets. In FIG. 7b and also 7c-2 and 7d-2, also heat maps, three probabilities, high, medium and low, are shown. This is exemplary only, as any ranking for parking probabilities is suitable, including more than three values for probability or less than three values for probability.
Alternately, from block 702, the process moves to block 704. At block 704, the system receives a request for parking for a vehicle, for example. Here, as the vehicle size has not been specified, so the default value of a small sized car is used. The system, via the processor 282, then utilizes one or more of the real time, stored information, statistical information, and static information, typically coupled with GPS or other geolocation service, to generate a route map 740 of FIG. 7c-1, at block 706 and a corresponding heat map 745 of FIG. 7c-2, at block 708, along the route of the requestor, to determine the probability of parking along the route. This probability of parking is, for example, the greatest probability of parking along the route taking into account the time to get there (which depends on the distance and the average speed as estimated by the system) and the probability that this parking space will be taken by other driver during that time, and further, for example, the greatest probability along the route for parking based on the size (e.g., length) of the vehicle, here, for example, a small-size vehicle. The route map 740 and heat map 745 can be updated in real time, should there be a change in the parking probability.
The route map 740, for example, is a general map, for the default, for example, of a small-sized car. Additionally, for example, this route map 740 is in real time for a city at 4 pm on a Tuesday, a business day, when there is a sporting event along Fifth Street, from Washington to Jefferson Street, at 5:00, pm, so parking will be scarce around the stadium. In the route map 740, as well as route map 750 and corresponding heat maps 745, 755, the processor 282 routes from the starting point “xs,” and optionally, to a destination point “xd,” a point to which the parking should be as close as is possible.
When a destination point (xd) is not provided to the system, the processor 282 determines a route which has the highest probability of finding parking, as the vehicle (which has requested parking) travels.
For example, in the route map 740, there has been a change in real-time, where the route, between the starting point “xs” and the optional destination point “xd,” at section 742a, has been changed. The route change as represented by the dotted lines 742b. The route map for finding parking, generated at block 706, is also based on the probability for finding parking, and further for example, is based on the probability for finding parking for the specific vehicle, based on its length.
FIG. 7d-1 shows a route map 750, which has been customized based on the user providing a specific size of a car, for example, a mid-size car. This route map 750 is also for the route between the starting point “xs” and the optional destination point “xd”, but covers a route different from the route of the route map 740, as parking probabilities are different for a mid-size car, when compared to that for a small car (map 740).
A different heat map 755 of FIG. 7d-2, corresponds to the route map 750.
Turning back to block 702, the process moves to block 710, where the system receives requests for an event, person, object, animal, or the like. The information on the requested event, person, object, animal, or the like, is compiled, and a heat map is created for the request, as block 712, as detailed above. At block 712, the processor 282 is programmed for image recognition, data for an event, person, animal or object, e.g., garbage, snow piles, and the like.
FIG. 8a shows another method in accordance with the present invention. Here, a burglary has been committed at location xx. The system 120, receives an incident report at block 802. The system then uses the report data and other statistical data to predict the location for the burglar, at block 804. The system then creates circles 806a, 806b, shown on FIG. 8b, with probable locations of the burglar, indicating the distance the burglar may have traveled, block 806. The process moves to block 808, where the system, attempts to match people based on image recognition. Should there be a match, the process is complete, and moves to block 812 where it ends.
Returning to block 808, if the person cannot be matched, the process moves to block 810. At block 810, the system checks whether there is a time out or the device, is out of the zone. If no, the process returns to block 804. If yes, the process moves to block 812 where it ends. This information may be used by law enforcement authorities.
FIG. 9 shows a method of sidewalk detection. Here, two pictures in a row are taken by the camera 242 on different locations as the car traveled some distance between the first and second picture. The data is received in the system at block 902. The system then uses the image recognition of the processor 282 to locate the same object in both images (e.g., two or more images) or image frames, at block 904. This object is, for example, at different angles, as the images are taken at different times.
The same object in both images is then used, and three dimensional (3D) dimensions can be determined, at block 906. Based on these dimensions, it can be determined whether the object and the close by area within the images is a street, or part of the pavement or sidewalk, at block 908.
In the description and claims of the present disclosure, each of the verbs, “comprise”, “include” and “have”, and conjugates thereof, are used to indicate that the object or objects of the verb are not necessarily a complete listing of members, components, elements, or parts of the subject or subjects of the verb and further, all of the listed objects are not necessarily required in all embodiments.
As used herein, the singular form “a”, “an” and “the” include plural references unless the context clearly dictates otherwise. For example, the term “a material” or “at least one material” may include a plurality of materials, including mixtures thereof.
In this disclosure the words “unit”, “element”, “device”, and/or “module” are used interchangeably. Anything designated as a unit, element, device and/or module may be a stand-alone unit or a specialized module. A unit, element, and/or module may be modular or have modular aspects allowing it to be easily removed and replaced with another similar unit, element, device, and/or module. Each unit, element, device, and/or module may be any one of, or any combination of, software, hardware, and/or firmware. Software of a logical module can be embodied on a computer readable medium such as a read/write hard disc, CDROM, Flash memory, ROM, and the like. In order to execute a certain task a software program can be loaded to an appropriate processor as needed.
The present disclosure has been described using detailed descriptions of embodiments thereof that are provided by way of example and are not intended to limit the scope of the disclosure. The described embodiments comprise different features, not all of which are required in all embodiments of the disclosure. Some embodiments of the present disclosure utilize only some of the features or possible combinations of the features. Many other ramifications and variations are possible within the teaching of the embodiments comprising different combinations of features noted in the described embodiments.
It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable sub-combination or as suitable in any other described embodiment of the invention.
It will be appreciated by persons skilled in the art that the present disclosure is not limited by what has been particularly shown and described herein above. Rather the scope of the invention is defined by the claims that follow.

## Claims

1. A computer-implemented method for locating vacant parking places comprising:
obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network;
processing, by a computer processor, the data to determine probabilities of finding available parking places within the predetermined area;
receiving, over the communications network, a request from at least one user for available parking places from a starting point provided by the at least one user; and,
generating, by a computer processor, from the processed data, a map which provides a pathway for finding available parking places from the starting point, based on probabilities of finding available parking places, for the at least one user, and, the computer processor continuously determining whether to change the map while a vehicle of the at least one user travels along the pathway, in response to changed parking conditions.

2. The method of claim 1, wherein the map includes a route map.

3. The method of claim 1, wherein the map includes a heat map.

4. The method of claim 1, additionally comprising:
receiving, over the communications network, the size of the vehicle associated with the request for the available parking places; and,
the generating of the map includes generating, by the computer processor, from the processed data, a map from the starting point, based on probabilities of finding available parking places for the size of the vehicle.

5. The method of claim 4, wherein the map includes a route map.

6. The method of claim 4, wherein the map includes a heat map.

7. The method of claim 1, wherein the obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network, is in real time, and the obtaining data further includes: obtaining statistical data as to available parking places for the predetermined area, and obtaining static data as to available parking spaces for the predetermined area.

8. The method of claim 7, wherein the map includes a route map.

9. The method of claim 7, wherein the map includes a heat map.

10. The method of claim 1, wherein the data collectors are selected from the group consisting of: taxicabs, municipal vehicles, government vehicles, courier vehicles; private vehicles, and combinations thereof.

11. The method of claim 1, wherein the computer processor continuously changes the map in real time.

12. The method of claim 1, wherein the pathway for finding available parking places from the starting point, based on probabilities of finding available parking places includes the pathway along which there is the highest probability of finding available parking places.

13. A system for locating vacant parking places comprising:
a processor; and,
storage media in communication with the processor for storing instructions executable by the processor, the instructions comprising:
obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network;
processing the data to determine probabilities of finding available parking places within the predetermined area;
receiving a request from at least one user for available parking places from a starting point, as provided by the at least one user;
generating, from the processed data, a map from the starting point, including a route based on probabilities of finding available parking places, for the at least one user, and,
continuously determining whether to change the map while a vehicle of the at least one user travels along the pathway, in response to changed parking conditions.

14. The system of claim 13, wherein the obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network, is in real time, and the obtaining data further includes: obtaining statistical data as to available parking places for the predetermined area, and obtaining static data as to available parking spaces for the predetermined area.

15. The system of claim 13, wherein the instructions additionally comprise: receiving, over the communications network, the size of the vehicle; and, the generating of the map includes generating, by the computer processor, from the processed data, a map from the starting point, including a route, based on probabilities of finding available parking places for the size of the vehicle.

16. The system of claim 15, where the instructions for generating a map include generating at least one of a route map and a heat map.

17. A computer-implemented method for locating vacant parking places comprising:
obtaining data on available parking places within a predetermined area, from the cameras of mobile devices of data collectors, over a communications network;
processing, by a computer processor, the data to determine probabilities of finding available parking places within the predetermined area;
receiving, over the communications network, a request from at least one user for available parking places from a starting point provided by the at least one user; and,
generating, by a computer processor, from the processed data, a route of travel within the predetermined area for the at least one user, based on the probabilities of finding available parking places along the route of travel, from the starting point provided by the at least one user, and, the computer processor continuously determining whether to change the route of travel, in response to changed parking conditions.

18. The computer-implemented method of claim 17, additionally comprising: generating a map of the route of travel.

19. The computer-implemented method of claim 18, the map of the route of travel includes at least one of a route map and a heat map.

20. The computer-implemented method of claim 19, wherein the route of travel includes a destination provided by the user from the starting point provided by the user.

21. A computer-implemented method for locating vacant parking places comprising:
obtaining data on available parking places within a predetermined area, from in-vehicle cameras of data collectors, over a communications network;
processing, by a computer processor, the data to determine probabilities of finding available parking places within the predetermined area;
receiving, over the communications network, a request from at least one user for available parking places from a starting point provided by the at least one user; and,
generating, by a computer processor, from the processed data, a map which provides a route for finding available parking places from the starting point, based on probabilities of finding available parking places, for the at least one user, and, the computer processor continuously determining whether to change the map while a vehicle of the at least one user travels along the pathway, in response to changed parking conditions.

22. The method of claim 21, wherein the map includes a heat map.