Abstract:
A system includes a processor configured to examine one or more vehicle settings having been changed after a driver enters a vehicle. Also, the processor is configured to compare the examined settings to settings associated with currently stored driver profiles and verify the driver as a previously stored primary vehicle driver based at least in part on the comparison.

Description:
TECHNICAL FIELD 
     The illustrative embodiments generally relate to a method and apparatus for primary driver verification. 
     BACKGROUND 
     Modern vehicle technologies offer unprecedented opportunities for customization. For instance, drivers can set their preferred seating positions, lumbar support, and steering wheel tilts, not to mention ever increasing on-board infotainment features ranging from center stack/cluster display appearance and radio station presets to the adaptive cruise control gap and lane-keeping aid sensitivity. The concept of customization can also be extended to information services and delivery, ranging from customized news coverage and music play lists to traffic information tailored to frequently visited POI (Points of Interest). While some of the features can be set once and remain valid for a long period of time, such as infotainment system&#39;s unit of measure (e.g., metric vs. English), others require frequent updates because of various changing factors. 
     One of the very important such factors is the driver. If the vehicle knows who is driving, it would be possible to tailor the vehicle seamlessly to the driver preferences. 
     SUMMARY 
     In a first illustrative embodiment, a system includes a processor configured to examine one or more vehicle settings having been changed after a driver enters a vehicle. Also, the processor is configured to compare the examined settings to settings associated with currently stored driver profiles and verify the driver as a previously stored primary vehicle driver based at least in part on the comparison. 
     In a second illustrative embodiment, a computer-implemented method includes examining one or more vehicle settings having been changed after a driver enters a vehicle. The method also includes comparing the examined settings to settings associated with currently stored driver profiles and verifying the driver as a previously stored primary vehicle driver based at least in part on the comparison. 
     In a third illustrative embodiment, a non-transitory computer-readable storage medium stores instructions that, when executed by a processor, cause the processor to perform the method including examining one or more vehicle settings having been changed after a driver enters a vehicle. The method also includes comparing the examined settings to settings associated with currently stored driver profiles and verifying the driver as a previously stored primary vehicle driver based at least in part on the comparison. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows an illustrative vehicle computing system; 
         FIG. 2  shows an illustrative process for driver profile creation; 
         FIG. 3  shows an illustrative process for data collection and updating; 
         FIG. 4  shows an illustrative process for driver verification; and 
         FIG. 5  shows another illustrative process for driver verification. 
     
    
    
     DETAILED DESCRIPTION 
     As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention. 
       FIG. 1  illustrates an example block topology for a vehicle based computing system  1  (VCS) for a vehicle  31 . An example of such a vehicle-based computing system  1  is the SYNC system manufactured by THE FORD MOTOR COMPANY. A vehicle enabled with a vehicle-based computing system may contain a visual front end interface  4  located in the vehicle. The user may also be able to interact with the interface if it is provided, for example, with a touch sensitive screen. In another illustrative embodiment, the interaction occurs through, button presses, audible speech and speech synthesis. 
     In the illustrative embodiment 1 shown in  FIG. 1 , a processor  3  controls at least some portion of the operation of the vehicle-based computing system. Provided within the vehicle, the processor allows onboard processing of commands and routines. Further, the processor is connected to both non-persistent  5  and persistent storage  7 . In this illustrative embodiment, the non-persistent storage is random access memory (RAM) and the persistent storage is a hard disk drive (HDD) or flash memory. 
     The processor is also provided with a number of different inputs allowing the user to interface with the processor. In this illustrative embodiment, a microphone  29 , an auxiliary input  25  (for input  33 ), a USB input  23 , a GPS input  24  and a BLUETOOTH input  15  are all provided. An input selector  51  is also provided, to allow a user to swap between various inputs. Input to both the microphone and the auxiliary connector is converted from analog to digital by a converter  27  before being passed to the processor. Although not shown, numerous of the vehicle components and auxiliary components in communication with the VCS may use a vehicle network (such as, but not limited to, a CAN bus) to pass data to and from the VCS (or components thereof). 
     Outputs to the system can include, but are not limited to, a visual display  4  and a speaker  13  or stereo system output. The speaker is connected to an amplifier  11  and receives its signal from the processor  3  through a digital-to-analog converter  9 . Output can also be made to a remote BLUETOOTH device such as PND  54  or a USB device such as vehicle navigation device  60  along the bi-directional data streams shown at  19  and  21  respectively. 
     In one illustrative embodiment, the system  1  uses the BLUETOOTH transceiver  15  to communicate  17  with a user&#39;s nomadic device  53  (e.g., cell phone, smart phone, PDA, or any other device having wireless remote network connectivity). The nomadic device can then be used to communicate  59  with a network  61  outside the vehicle  31  through, for example, communication  55  with a cellular tower  57 . In some embodiments, tower  57  may be a WiFi access point. 
     Exemplary communication between the nomadic device and the BLUETOOTH transceiver is represented by signal  14 . 
     Pairing a nomadic device  53  and the BLUETOOTH transceiver  15  can be instructed through a button  52  or similar input. Accordingly, the CPU is instructed that the onboard BLUETOOTH transceiver will be paired with a BLUETOOTH transceiver in a nomadic device. 
     Data may be communicated between CPU  3  and network  61  utilizing, for example, a data-plan, data over voice, or DTMF tones associated with nomadic device  53 . Alternatively, it may be desirable to include an onboard modem  63  having antenna  18  in order to communicate  16  data between CPU  3  and network  61  over the voice band. The nomadic device  53  can then be used to communicate  59  with a network  61  outside the vehicle  31  through, for example, communication  55  with a cellular tower  57 . In some embodiments, the modem  63  may establish communication  20  with the tower  57  for communicating with network  61 . As a non-limiting example, modem  63  may be a USB cellular modem and communication  20  may be cellular communication. 
     In one illustrative embodiment, the processor is provided with an operating system including an API to communicate with modem application software. The modem application software may access an embedded module or firmware on the BLUETOOTH transceiver to complete wireless communication with a remote BLUETOOTH transceiver (such as that found in a nomadic device). Bluetooth is a subset of the IEEE 802 PAN (personal area network) protocols. IEEE 802 LAN (local area network) protocols include WiFi and have considerable cross-functionality with IEEE 802 PAN. Both are suitable for wireless communication within a vehicle. Another communication means that can be used in this realm is free-space optical communication (such as IrDA) and non-standardized consumer IR protocols. 
     In another embodiment, nomadic device  53  includes a modem for voice band or broadband data communication. In the data-over-voice embodiment, a technique known as frequency division multiplexing may be implemented when the owner of the nomadic device can talk over the device while data is being transferred. At other times, when the owner is not using the device, the data transfer can use the whole bandwidth (300 Hz to 3.4 kHz in one example). While frequency division multiplexing may be common for analog cellular communication between the vehicle and the internet, and is still used, it has been largely replaced by hybrids of with Code Domain Multiple Access (CDMA), Time Domain Multiple Access (TDMA), Space-Domain Multiple Access (SDMA) for digital cellular communication. These are all ITU IMT-2000 (3G) compliant standards and offer data rates up to 2 mbs for stationary or walking users and 385 kbs for users in a moving vehicle. 3G standards are now being replaced by IMT-Advanced (4G) which offers 100 mbs for users in a vehicle and 1 gbs for stationary users. If the user has a data-plan associated with the nomadic device, it is possible that the data-plan allows for broad-band transmission and the system could use a much wider bandwidth (speeding up data transfer). In still another embodiment, nomadic device  53  is replaced with a cellular communication device (not shown) that is installed to vehicle  31 . In yet another embodiment, the ND  53  may be a wireless local area network (LAN) device capable of communication over, for example (and without limitation), an 802.11g network (i.e., WiFi) or a WiMax network. 
     In one embodiment, incoming data can be passed through the nomadic device via a data-over-voice or data-plan, through the onboard BLUETOOTH transceiver and into the vehicle&#39;s internal processor  3 . In the case of certain temporary data, for example, the data can be stored on the HDD or other storage media  7  until such time as the data is no longer needed. 
     Additional sources that may interface with the vehicle include a personal navigation device  54 , having, for example, a USB connection  56  and/or an antenna  58 , a vehicle navigation device  60  having a USB  62  or other connection, an onboard GPS device  24 , or remote navigation system (not shown) having connectivity to network  61 . USB is one of a class of serial networking protocols. IEEE 1394 (firewire), EIA (Electronics Industry Association) serial protocols, IEEE 1284 (Centronics Port), S/PDIF (Sony/Philips Digital Interconnect Format) and USB-IF (USB Implementers Forum) form the backbone of the device-device serial standards. Most of the protocols can be implemented for either electrical or optical communication. 
     Further, the CPU could be in communication with a variety of other auxiliary devices  65 . These devices can be connected through a wireless  67  or wired  69  connection. Auxiliary device  65  may include, but are not limited to, personal media players, wireless health devices, portable computers, and the like. 
     Also, or alternatively, the CPU could be connected to a vehicle based wireless router  73 , using for example a WiFi  71  transceiver. This could allow the CPU to connect to remote networks in range of the local router  73 . 
     In addition to having exemplary processes executed by a vehicle computing system located in a vehicle, in certain embodiments, the exemplary processes may be executed by a computing system in communication with a vehicle computing system. Such a system may include, but is not limited to, a wireless device (e.g., and without limitation, a mobile phone) or a remote computing system (e.g., and without limitation, a server) connected through the wireless device. Collectively, such systems may be referred to as vehicle associated computing systems (VACS). In certain embodiments particular components of the VACS may perform particular portions of a process depending on the particular implementation of the system. By way of example and not limitation, if a process has a step of sending or receiving information with a paired wireless device, then it is likely that the wireless device is not performing the process, since the wireless device would not “send and receive” information with itself. One of ordinary skill in the art will understand when it is inappropriate to apply a particular VACS to a given solution. In all solutions, it is contemplated that at least the vehicle computing system (VCS) located within the vehicle itself is capable of performing the exemplary processes. 
     Modern vehicle technologies offer unprecedented opportunities for customization. For instance, drivers can set their preferred seating positions, lumbar support, steering wheel tilts, center/stack cluster appearance, radio station presets, adaptive cruise control gap, lane-keeping aid sensitivity, etc. Customization can also be extended to information services and delivery, ranging from customized news coverage and music play lists to traffic information tailored to frequently visited points of interest (POIs). While some of the features can be set once and remain valid for a long period of time, others may require frequent changes due to various changing factors. 
     One common “changing factor” is the vehicle driver. If the vehicle knows who is driving, it would be possible to tailor the vehicle seamlessly to the driver preferences. For instance, as soon as the driver sits down in the vehicle and starts the engine, the vehicle could adjust the seat position, pedal positions, steering wheel tilt, climate control settings, driving mode, radio station presets, etc., based on registered driver preferences. In such a case, the driver may not even need to press a button or enter a request for settings changes, the vehicle “knows” who is driving and prepares the environment as the driver prefers. 
     When a vehicle is first delivered to a customer, the driver can be asked a few questions in an initialization phase. These can include, for example, whether or not to store presets and preferences, and for a profile name. The profile will correspond to a default driver. 
     In one embodiment, the vehicle will have one or more “primary” drivers. These include people who commonly use the vehicle. The vehicle also may have one or more secondary drivers, which correspond to people who may, for example, occasionally borrow the vehicle. In this example, the vehicle is able to use the illustrative embodiments to verify a member of the primary group and provide settings based on that verification. 
     After an initialization phase, data can be collected continuously during the usage of the vehicle for development of user profiles. This data can not only be used to set the vehicle to the desired preferences when a driver is verified, but the data itself can be used to verify a driver, as shown in the illustrative embodiments. Data can include, but is not limited to, seat positions, steering wheel tilt, mirror positions, pedal positions, driver weight, climate control settings, climate control settings, radio station tuning, route selection, operation data, shifting styles, driver voice signature, facial images, GPS data (preferences, predictions, etc.), driver smartphone controls, etc. 
       FIG. 2  shows an illustrative process for driver profile creation. In this example, a new driver may be added to the vehicle. If a driver profile doesn&#39;t exist, or if the driver isn&#39;t recognized by the vehicle (after a certain measure of analysis, for example), the process may attempt to create a new profile  201 . 
     First, in this example, the process queries the driver to determine if the present driver is a primary driver of the vehicle. The driver doesn&#39;t necessarily need to benefit from the vehicle remembering setting information. In this illustrative example, the process determines if there is any primary driver set at all  203 . If there isn&#39;t, the process initiates a user profile  209 . Similarly, even if there is a primary driver, the process asks if the driver is an additional primary driver  205 . If so, the process also initiates a profile for the new primary driver. 
     If the driver is not a primary driver, the process may gather data for a secondary driver  207 . In this example, if a secondary driver is using the vehicle, the process may provide a “common” set of interfaces and vehicle environmental settings. Since the settings are for general use by vehicle borrowers, the process may gather data from secondary drivers to provide a secondary profile that is representative of the aggregate choices of secondary users. In another example, the process may simply provide a factory preset secondary setting, for example. 
     In the event of a primary (or in this case, secondary) driver, the process may collect some basic data about the driver  211 . This can be as simple as asking the driver to provide a profile identification. It could also include, for example, recording seat weight sensor data, recording facial profile data, etc. This could be especially useful with respect to primary drivers. 
     Once any initialization data has been gathered, the process may begin data gathering  213 , to record information based on what the driver enters/changes during a trip. 
       FIG. 3  shows an illustrative process for data collection and updating. As previously mentioned, the processes described herein may gather and adjust vehicle settings to a variety of driver-preferred standards. Since this data may change over time, even for a particular driver, the process may need to track changes in the data. In this example, both “fixed” and variable settings are considered. 
     The fixed settings are not technically “fixed,” but are settings that are typically left alone once set. These include, but are not limited to, seat settings, mirror settings, radio presets, etc. The variable settings, on the other hand, correspond to things that commonly change over a drive, such as radio volume, temperature settings, etc. Even if these variables commonly change over a drive, they may have typical settings in the average, or may change in a predictable manner. 
     Once data tracking has begun  301 , the process determines if a change has been detected to a fixed setting  303  or a variable setting  313 . If no discernible change has been made to either setting, the process will continue to monitor for changes to either setting type. 
     If a change to a fixed setting, for example, has been detected  303 , the process determines if a time period of some predetermined amount has elapsed  305 . Since the setting could have been briefly changed, or the change could be detected during the process of changing the setting (but the setting having not yet reached a final setting), the process may not record/register a detected change until after a predetermined time period has passed. 
     While the time is passing, the process may also determine if the detected change remains  307 . In this manner, if the process detects a change in progress, but that has not reached a final setting, then the change (to the intermediate setting) should not remain over the pre-determined period of time. Accordingly, until the change reaches a setting for which it remains for some period of time, the process will ignore the intermediate changes and continue to look for a finalization of the change. 
     If the change has remained for the predetermined period of time, the process has to determine whether or not to update the setting  309 . This could be a decision of the vehicle system itself, or it could be a result of asking a driver if the new setting should be saved to replace the old setting. If the update has been requested/decided on, the process will change the setting  311 . In some cases, the process may determine that an aggregate setting should be used, in other cases the process can merely adopt the new setting. 
     In another case, the process determines if a variable setting (such as volume) has changed. Variable settings are often affected by vehicle/environmental context. For example, a loud environment could cause a user to increase radio volume. A cold environment could cause a user to increase temperature. Since the context may have bearing on the variable, the process may track and even record the context so that the vehicle can apply certain changes based on correspondences to environment. 
     Once context data has been gathered (either generally all available context data, or data relating to the changed variable), the process again attempts to determine if a predetermined time period has elapsed  317 . As with the fixed settings, it may only be desirable to record a change in data if some time period has elapsed, although the time period may be different for the fixed versus variable settings. If the time period has not elapsed, and the setting still remains  319 , the process continues waiting for the predetermined amount of time to elapse. If, however, the setting changes, before the time is up, the process continues monitoring for changes to a setting. 
     As with the fixed settings, if the time period elapses and the setting has been maintained, the process must decide whether an update is in order. If the update is appropriate, the process will update the settings and make any adjustments to context variables associated with those settings. Context variables can also be associated with fixed settings, although it is more likely that they will be associated with these variable settings, since these are elements that commonly change over the course of a journey, often in reaction to an environmental event. 
       FIG. 4  shows an illustrative process for driver verification. In this illustrative example, the process describes a primary driver verification system (PDVS)  407 . The PDVS tracks the driver interaction with interior features, settings, vehicle preferences and verifies who the driver is based on one or more decision systems and/or algorithms. 
     Once the driver has been verified, the PDVS can set vehicle preferences with a relative degree of confidence. The PDVS consists of a number of primary driver verifiers PDVs. The PDVs are collected from a number of information services, such as, but not limited to, driver and interior features  401 , vehicle response  403 , additional driver based information sources  405 , etc. 
     Example PDVs include, but are not limited to Driver Positioning Verifier (DPV)  409 , Driver Interior Setting Verifier (DISV)  411 , Driver Style Verifier (DSV)  413 , etc.  415 . These PDVs are based on data gathered from the numerous vehicle systems and feedback processes provided to the vehicle. Any point where the driver interacts with the vehicle, data can be gathered and used for driver verification if appropriate. 
     The output (or settings of) the various PDVs aggregate to determine which of the primary drivers are operating the vehicle  417 . In some cases, depending on the number of drivers and inputs, the aggregation determination could be determined after only one or two variable inputs. If, for example, there were only two drivers of a vehicle, there are likely a number of easily discernible differences. On the other hand, if the two drives were twins of relatively similar weights, for example, the process may require more inputs to determine which of the twins is driving at a given time. 
     Once a particular driver has been verified, the process can then proceed with feature and function customization based on the preferences of the verified driver. The process can also monitor and update changes to fixed or variable settings. 
       FIG. 5  shows another illustrative process for driver verification. This process describes in greater detail one exemplary manner for verifying a driver. In this example, the process uses one or more DPV inputs such as, but not limited to, memory seat positions, steering wheel tilt, mirror positions, pedal positions, etc. Once a drive has begun, the process can gather and analyze data  501 . Once the drive has begun  501 , it is assumed that the seats and mirrors are likely in the proper position to use one or more of these as driver verification data points. 
     In one example, a seat position could be used as an example for driver verification. For example, over a period of time, it could be observed that driver A has a mean seat position of 30 cm with a standard deviation of 2 cm, while driver B has a mean seat position of 40 cm with a standard deviation of 1.5 cm. Similar likelihood and frequency distribution data may be computed for additional DPVs. The likelihood of various DPVs for a particular driver can be combined to provide a DPV input component to a verification equation 503. 
     Another source of verification data may include driver interior setting verifiers (DISVs). These examples include, for instance, climate control settings, radio station tuning, etc. For example, if climate temperature targets were used for verification, climate target setting data and probability data may be gathered  505 . This can be compared to data gathered over a number of drive cycles. 
     For example, driver A may have a mean target setting of 70 degrees with a standard deviation of 2 degrees, and driver B may have a mean target setting of 68 degrees with a standard deviation of 3 degrees. 
     Yet another piece/pieces of usable information may include driving style verifiers (DSVs). These can be gathered  507  based on observed driving behavior, such as braking habits, acceleration habits, etc. For any given feature, the feature dependent PDV aggregation to obtain the overall likelihood of a verified driver may be given by: 
     
       
         
           
             
               PDV 
               j 
             
             = 
             
               
                 
                   ∑ 
                   
                     i 
                     = 
                     1 
                   
                   N 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     w 
                     i 
                   
                   ⁢ 
                   
                     y 
                     i 
                   
                 
               
               
                 
                   ∑ 
                   
                     i 
                     = 
                     1 
                   
                   N 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   w 
                   i 
                 
               
             
           
         
       
     
     Where: 
     j=number of drivers to verify (e.g., number of primary drivers); 
     PDV j =the aggregated likelihood of a driver verified value (0-1) 
     N=the number of PDVs 
     y i =PDV values for a potential driver 
     w i =weight attributed to each PDV indicator 
     For example, using the exemplary PDVs described herein, DPV, DISV and DSV, along with 2-stage driver verification (A,B; where A and B are the potential drivers), the likelihood of the driver being driver A is given by: 
     
       
         
           
             
               PDV 
               A 
             
             = 
             
               
                 
                   
                     DPV 
                     A 
                   
                   ⁢ 
                   
                     w 
                     DPV 
                   
                 
                 + 
                 
                   
                     DISV 
                     A 
                   
                   ⁢ 
                   
                     w 
                     DISV 
                   
                 
                 + 
                 
                   
                     DSV 
                     A 
                   
                   ⁢ 
                   
                     w 
                     DSV 
                   
                 
               
               
                 
                   w 
                   DPV 
                 
                 + 
                 
                   w 
                   DISV 
                 
                 + 
                 
                   w 
                   DSV 
                 
               
             
           
         
       
     
     and the likelihood of the driver being driver B is given by: 
     
       
         
           
             
               PDV 
               B 
             
             = 
             
               
                 
                   
                     DPV 
                     B 
                   
                   ⁢ 
                   
                     w 
                     DPV 
                   
                 
                 + 
                 
                   
                     DISV 
                     B 
                   
                   ⁢ 
                   
                     w 
                     DISV 
                   
                 
                 + 
                 
                   
                     DSV 
                     B 
                   
                   ⁢ 
                   
                     w 
                     DSV 
                   
                 
               
               
                 
                   w 
                   DPV 
                 
                 + 
                 
                   w 
                   DISV 
                 
                 + 
                 
                   w 
                   DSV 
                 
               
             
           
         
       
     
     When a tunable minimum PDV threshold is achieved, the particular driver can be verified based on the highest PDV value. Feature, function settings and recommendations are then provided based on the verified driver. The illustrative embodiments can modify a number of vehicle settings and HMI settings, including, but not limited to, HMI displays (radio presets, for example), physical system settings (seat/wheel/mirror presets), airbag deployment pressure, adaptive vehicle modes, climate controls, etc. 
     While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. Additionally, the features of various implementing embodiments may be combined to form further embodiments of the invention.