Patent Description:
The document <CIT> discloses a method comprising capturing images of an environment, detecting faces in the images and a distance of the faces from the computing device for adjusting the capturing parameters based on the distance.

Any examples mentioned in the description which do not fall within the scope of the appended set of claims are to be interpreted as examples of background information, useful only for understanding the invention.

Due to their compact design and light weight, computing devices, such as notebook computers, tablet computers, and smartphones, may be used in various environments, and for various purposes (e.g., work or persona! use). Examples of different environments that a computing device may be used in include at work, a public environment, and at home. Based on the environment that the computing device is being used in at a particular moment, the user may prefer to have certain settings on the computing device modified, or even enabled or disabled. Examples of such settings may relate to the audio/video components of the computing device, such as the speakers or display member, or settings regarding the antennas for connecting to the various wireless technology standards.

Examples disclosed herein provide the ability to automatically adjust settings on a computing device, based on the location or environment that the computing device is in at a particular moment in time. As the location or environment that the computing device is in changes, settings on the computing device may automatically adjust, based on user preferences at that particular location. As an example, once the computing device detects that it is being used in a public environment, a privacy filter may be automatically enabled on the display member, in order to ensure the privacy of what is being displayed. Also, based on the location that the computing device is detected to be in, contextually-relevant data may automatically be provided on the display member of the computing device, as will be further described. By automating such processes on the computing device based on the location that the computing device is in, rather than requiring a user to remember to adjust settings, user productivity may increase and enforcement of privacy in public environments may be automated.

With reference to the figures, <FIG> illustrates a computing device <NUM> for adjusting settings on the computing device <NUM>, based on a current location of the computing device <NUM>, according to an example. The computing device <NUM> includes a first sensor <NUM> and/or a second sensor <NUM> that may be used separately or in combination for detecting the current location of the computing device <NUM>, by gathering contextual data collected by the sensors <NUM>, <NUM>, as will be further described. As an example, the first sensor <NUM> may be used for capturing images, such as an RGB camera or infrared (IR) camera, for capturing images of an environment that the computing device <NUM> is currently in. As an example, the second sensor <NUM> may be used for listening for sound patterns and frequencies, such as a microphone. As will be further described, sensors on the computing device <NUM> may be used to determine the environment that the computing device <NUM> is in, by detecting known objects, both visual and audio Through a process running in the background, this object detection data is used to adjust settings on the computing device <NUM>, according to determined location profiles. Examples of settings that may be adjusted include privacy screen settings, audio settings, screen brightness, and Bluetooth pairing, as will be further described.

The computing device <NUM> depicts a processor <NUM> and a memory device <NUM> and, as an example of the computing device <NUM> performing its operations, the memory device <NUM> includes instructions <NUM>-<NUM> that are executable by the processor <NUM>. Thus, memory device <NUM> can be said to store program instructions that, when executed by processor <NUM>, implement the components of the computing device <NUM>. The executable program instructions stored in the memory device <NUM> include, as an example, instructions to capture images (<NUM>), instructions to detect objects (<NUM>), instructions to determine a location (<NUM>), and instructions to adjust a setting (<NUM>).

Instructions to capture images (<NUM>) represent program instructions that when executed by the processor <NUM> cause the computing device <NUM> to capture, via the first sensor <NUM>, images or video of an environment that the computing device <NUM> is currently in. As an example, the first sensor <NUM> may be an RGB or IR camera on the computing device <NUM> for capturing the images or video of the environment in front of or around the computing device <NUM>.

Instructions to detect objects (<NUM>) represent program instructions that when executed by the processor <NUM> cause the computing device <NUM> to detect objects in the environment, as captured by the images. As an example, each image or frame of captured video may be processed using object detection algorithms for various objects of interest, as will be further described. In order to promote efficiency, these objects may be detected using Viola-Jones methodology, as an example, of cascade classifiers to ensure that image processing is real-time, fast, and not computationally taxing on the processor <NUM>. However, other forms of object detection may be implemented as well. For example, a deep learning approach may be useful for more advanced object detection. As an example, neuromorphic architectures are driving power efficiency for deep learning, so a hybrid approach could possibly be implemented as well, using various object detection algorithms in combination. In order to address privacy concerns of the first sensor <NUM> capturing the environment around the computing device <NUM>, the object detection algorithms may analyze the images for objects upon capture, and then delete the images, rather than saving or storing them to be analyzed later. As a result, the only data captured are the types of objects detected via the object detection algorithms.

Instructions to determine a location (<NUM>) represent program Instructions that when executed by the processor <NUM> cause the computing device <NUM> to determine a location of the environment captured by the first sensor <NUM>, based on contextual data gathered from the detected objects described above. Different types of objects can be detected that can provide clues to the kind of environment that the computing device <NUM> is in. For example, if airplane seats are detected, as airplane seats may be distinctive and common in nature, the airplane seats may provide contextual data that the computing device <NUM> is being used by a user aboard an aircraft. Similarly, if tables and chairs are detected, furniture such as chairs and tables can be trained to provide contextual data that the computing device <NUM> is likely being used by the user in a cafe or restaurant. Also, if trees and plants are detected, different kinds of trees and plants could be trained to indicate that the computing device <NUM> is likely being used by the user in an outdoor setting (e.g., somewhere in nature). As an example, if cubicle panels are detected, various types of standardized cubicles could be trained to indicate that the computing device <NUM> is likely being used by the user in a cubicle setting (e.g., at work).

The threshold for determining whether the computing device <NUM> is at a particular location may vary. For example, the number of objects required to determine whether the computing device <NUM> is currently being used in an airport may vary from the number of objects required to determine whether the computing device <NUM> is currently being used in a restaurant. In addition to having pre-determined categories for determining where the computing device <NUM> is currently being used, such as the categories mentioned above (e.g., aircraft, restaurant, outdoor setting, or at work), some environments captured by the first sensor <NUM> may not fall into any of the pre-determined categories. Instead, as the computing device <NUM> is detecting objects, as described above, the computing device <NUM> may keep a log of the types of objects, relative location of those objects, and number of those objects. If a user is found to be constantly and repeatedly using the computing device <NUM> in that environment, then a category may be dynamically created for the new environment.

When gathering contextual data from the objects detected, in order to determine a location of the environment captured by the first sensor <NUM>, the computing device <NUM> may take into consideration the scenes that the objects are captured in. As an example, the scenes correspond to a combination of the objects captured and their surroundings, as captured by the first sensor <NUM>. By considering how the detected objects are arranged relative to each other in a scene, a more accurate assessment of the location may be provided. Referring to the example above, regarding the detection of an airplane seat, although airplane seats may be distinctive and common in nature, if only one airplane seat is detected, or if multiple airplane seats are detected, but not arranged in a way normally found in an aircraft, the computing device <NUM> may determine that it is not in an aircraft. However, when considering the scene that the objects are captured in, if an arrangement of airplane seats are detected, as normally found in an aircraft, the computing device <NUM> may determine that it is in an aircraft.

Instructions to adjust a setting (<NUM>) represent program instructions that when executed by the processor <NUM> cause the computing device <NUM> to adjust a setting on the computing device <NUM>, based on the determined location. As an example, once the images captured by first sensor <NUM> are used to detect objects and determine a location that the computing device <NUM> is likely being used in by a user, the computing device <NUM> could automatically adjust settings with regards to lock policies, privacy screen, audio settings, display brightness, and Bluetooth device settings, among others. With regards to lock policies, security policies may be dynamically modified using the determined location. For example, the computing device <NUM> can be changed to lock more quickly if the determined location is an airplane or café, and to lock slower if the determined location is at home or in a cubicle (e.g., at work). With regards to privacy screens, if the determined location is a public environment, such as an airplane or café, the privacy screen may be dynamically invoked. However, in more private environments, such as at home or in a cubicle, use of the privacy screen may not be necessary and, therefore, automatically disabled.

With regards to audio settings, audio output changes can be automatically made, based on the location the computing device <NUM> is determined to be in at a particular moment in time. For example, audio settings can be automatically tuned and adjusted to suit the type of environment the computing device <NUM> is currently in. With regards to display brightness, as an example, if the currently determined location of the computing device <NUM> is noted to be outdoors, then the brightness of the screen may be automatically raised, so that the content of the screen can be seen. This automatic adjustment of the brightness could be used instead of an ambient light sensor. With regards to Bluetooth device settings, there may be some devices and components that a user may only use in a particular environment. As a result, based on the determined location of the computing device <NUM>, the computing device <NUM> may automatically pair to a set of devices specific to the determined location. For example, a user may prefer for the computing device <NUM> to automatically pair with a Bluetooth headset while in their cubicle, but then to automatically pair to a Bluetooth speakerphone when the computing device <NUM> is determined to be in a conference room, even if the user's Bluetooth headset is on their possession or in range while the user is in the conference room.

In addition to detecting a general environment that the computing device <NUM> is currently being used (e.g., aircraft, café, outdoors, or at work), some objects detected by the environment captured by the first sensor <NUM> may correspond to logos of known companies, stores, and/or restaurants, providing an indication that the computing device <NUM> is likely being used by a user in a location belonging to a particular company. As a result, data may be displayed on a screen of the computing device, corresponding to the particular company. For example, a specific café or restaurant could push appropriate data to the computing device <NUM>, such as quick links to place orders or easy access to applicable coupons. Airports, as another example, could push flight times and scheduling, as well as announcements.

As an example, a setting of the computing device <NUM> that is to be adjusted based on its determined location, may be part of a profile of settings of the computing device <NUM> that corresponds to the determined location. For example, when the determined location where the computing device <NUM> is currently being used indicates a restaurant, in addition to enabling the privacy screen, the audio settings may be adjusted as well. Each location may have a unique profile of settings to be adjusted. For example, the following locations may have their own unique profile of settings that need to be adjusted: airport, cafe/restaurant, cubicle, conference room, and home. With regards to detecting logos of a particular company, as described above, more specific profiles can exist and be configured by such companies.

As mentioned above, a second sensor <NUM> may be used separately or in combination with the first sensor <NUM> for detecting the current location of the computing device <NUM>. As an example, the second sensor <NUM> may capture ambient noise from the environment that the computing device <NUM> is currently in. Prior to adjusting a setting on the computing device <NUM>, the computing device <NUM> may determine whether the captured ambient noise corresponds to the location determined from the contextual data provided by the objects captured by the first sensor <NUM>, as described above,.

As an example, the second sensor <NUM> may correspond to a microphone on the computing device <NUM>, and the microphone can be listening for known sound patterns and frequencies. The processor <NUM> can match the incoming audio stream with defined audio entities. This signal processing can be a relatively simple threshold comparison or employ deep learning as well. The ambient noise collected may be unique to a particular location and correspond to the location determined from the contextual data provided by the objects captured by the first sensor <NUM>. As an example, airports have periodic announcements and commercials over the loudspeakers. Similarly, restaurants and stores also may have specific advertisements over their radio. All of these known entities can be used to determine the type of environment the device is in, and whether the noise collected corresponds to the location determined from the contextual data provided by the objects captured by the first sensor <NUM>.

In addition to detecting objects in the environment that the computing device <NUM> is currently in, the computing device <NUM> determines whether objects detected correspond to human faces. As will be further described in <FIG>, a computing device may adjust its settings based on the detection of faces, including the number of faces detected, their proximity to the device, and their orientation with respect to the device (e.g., whether or not the faces are directing their attention to the screen of the computing device).

Memory device <NUM> represents generally any number of memory components capable of storing instructions that can be executed by processor <NUM>, Memory device <NUM> is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of at least one memory component configured to store the relevant instructions. As a result, the memory device <NUM> may be a non-transitory computer-readable storage medium. Memory device <NUM> may be implemented in a single device or distributed across devices. Likewise, processor <NUM> represents any number of processors capable of executing instructions stored by memory device <NUM>, Processor <NUM> may be integrated in a single device or distributed across devices. Further, memory device <NUM> may be fully or partially integrated in the same device as processor <NUM>, or it may be separate but accessible to that device and processor <NUM>,.

In one example, the program instructions <NUM>-<NUM> can be part of an installation package that when installed can be executed fey processor <NUM> to implement the components of the computing device <NUM>. in this case, memory device <NUM> may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed, in another example, the program instructions may be part of an application or applications already installed. Here, memory device <NUM> can include integrated memory such as a hard drive, solid state drive, or the like.

<FIG> illustrates a computing device <NUM> for adjusting settings on the computing device <NUM>, according to the invention The computing device <NUM> includes a sensor <NUM>, which may correspond to the first sensor <NUM> of computing device <NUM>. The sensor is used for capturing images, such as an RGB camera or infrared (SR) camera, for capturing images of an environment that the computing device <NUM> is currently in. In addition to using sensors on the computing device <NUM> to determine the environment that the computing device <NUM> is in, similar to operations performed by computing device <NUM>, the computing device <NUM> determines whether objects detected correspond to human faces. Through a process running in the background, settings on the computing device <NUM> are adjusted, based on whether the objects detected correspond to human faces, and the distance of detected faces to the computing device <NUM>.

Similar to the processor <NUM> and memory device <NUM> of computing device <NUM>, the computing device <NUM> depicts a processor <NUM> and a memory device <NUM> and, as an example of the computing device <NUM> performing its operations, the memory device <NUM> may include instructions <NUM>-<NUM> that are executable by the processor <NUM>. Thus, memory device <NUM> can be said to store program instructions that, when executed by processor <NUM>, implement the components of the computing device <NUM>. The executable program instructions stored in the memory device <NUM> include, as an example, instructions to capture images (<NUM>), instructions to detect faces (<NUM>), instructions to determine a distance (<NUM>), and instructions to adjust a setting (<NUM>),.

Instructions to capture images (<NUM>) represent program Instructions that when executed by the processor <NUM> cause the computing device <NUM> to capture, via the sensor <NUM>, images or video of an environment that the computing device <NUM> is currently in. As an example, the sensor <NUM> may be an RGB or IR camera on the computing device <NUM> for capturing the images or video of the environment in front of or around the computing device <NUM>.

instructions to detect faces (<NUM>) represent program instructions that when executed by the processor <NUM> cause the computing device <NUM> to determine whether there are faces captured in the images. Similar to instruction <NUM> of computing device <NUM>, each image or frame of captured video may be processed using object detection algorithms for determining whether there are faces captured in the images. In order to address privacy concerns of the sensor <NUM> capturing the environment around the computing device <NUM>, the object detection algorithms may analyze the images for objects upon capture, and then delete the images, rather than saving or storing them to be analyzed later. As a result, the only data captured is information regarding any faces captured in the images.

As an example, determining whether there are any faces detected in the environment surrounding the computing device <NUM> may impact the settings to be adjusted on the computing device <NUM>. As will be further described, information regarding any faces captured in the images is used to determine the settings to be adjusted on the computing device <NUM>. Examples of information that may be collected from what is captured by sensor <NUM> include the number of faces detected, their proximity to the computing device <NUM>, and their orientation with respect to the device (e.g., whether or not the faces are directing their attention to the screen of the computing device). With regards to the number of faces detected, knowing how many people are around the computing device <NUM> can be valuable information for determining the environment that the computing device <NUM> is currently in.

Instructions to determine a distance (<NUM>) represent program instructions that when executed by the processor <NUM> cause the computing device <NUM> to determine a distance of any faces detected from the computing device <NUM>. With regards to the proximity of faces detected to the computing device <NUM>, it may be useful to determine the hearing and eyesight range of those in the environment surrounding the computing device <NUM>, in order to adjust settings accordingly, as will be further described. As an example of determining the distance of the faces detected, a distance between speakers of the computing device <NUM> and ears of the faces detected, and/or a distance between a screen of the computing device <NUM> and eyes of the faces detected may be estimated. Each face detected may have their own distance from the computing device <NUM> estimated. As an example, the distance can be estimated using the size of each face and camera parameters when there is a 2D imaging sensor, or from depth map when there is a 3D imaging sensor,.

instructions to adjust a setting (<NUM>) represent program Instructions that when executed by the processor <NUM> cause the computing device <NUM> to adjust a setting on the computing device <NUM>, based on the distance of the faces from the computing device <NUM>. With regards to determining the hearing and eyesight range, as described above, the computing device <NUM> may automatically adjust the volume of the speakers based on the distance of the faces from the computing device <NUM>. Similarly, the computing device <NUM> may automatically adjust a brightness of the screen and/or a size of text on the screen, based on the distance of the faces from the computing device <NUM>. As an example, the settings adjusted may be based on an average of the distances of the faces detected, a minimum distance, or a maximum distance,.

As an example, with regards to ensuring that information provided on the screen of the computing device <NUM> is within eyesight range of faces detected around the computing device <NUM>, the computing device <NUM> may ensure whether a focus of at least one of the faces detected is directed towards the screen of the computing device <NUM>, prior to adjusting a brightness of the screen and/or a size of text on the screen. If it is detected that none of the faces are directing their focus to the computing device <NUM>, only the audible range of the computing device <NUM> may be automatically adjusted, in order to ensure that those around the computing device <NUM> can hear what is being played on the computing device <NUM>.

<FIG> is a flow diagram <NUM> of steps taken by a computing device to implement a method for adjusting settings on the computing device, based on a current location of the computing device, according to an example. In discussing <FIG>, reference may be made to the example computing devices <NUM>, <NUM> illustrated in <FIG> and <FIG>, respectively. Such reference is made to provide contextual examples and not to limit the manner in which the method depicted by <FIG> may be implemented.

At <NUM>, the computing device captures, via a first sensor of the computing device, images of an environment that the computing device is currently in. As an example, the first sensor may be an RGB or IR camera on the computing device for capturing the images or video of the environment in front of or around the computing device. At <NUM>, the computing device detects objects in the environment as captured by the images. As described above, each image or frame of captured video may be processed using object detection algorithms for various objects of interest. Similar to computing device <NUM>, the computing device may determine whether the objects detected correspond to human faces.

At <NUM>, the computing device determines a location of the environment based on contextual data gathered from the detected objects. As described above, different types of objects can be detected that can provide clues to the kind of environment that the computing device is in. As an example, the detected objects may belong to pre-determined categories that provide the contextual data for determining the location of the environment. However, some environments captured by the first sensor may not fall into any of the pre-determined categories. Instead, as the computing device is detecting objects, the computing device may keep a log of the types of objects, relative location of the objects, and number of those objects. If a user if found to be constantly and repeatedly using the computing device in that environment, then a category may be dynamically created for the new environment. As an example, the contextual data gathered from the detected objects may be determined by considering in combination the detected objects and scenes that correspond to an arrangement of the objects captured and their surroundings.

At <NUM>, the computing device adjusts a setting on the computing device based on the determined location. As an example, once the images captured by first sensor are used to detect objects and determine a location that the computing device is likely being used in by a user, the computing device could automatically adjust settings with regards to lock policies, privacy screen, audio settings, display brightness, and Bluetooth device settings, among others. The setting to be adjusted may be part of a profile of settings of the computing device that corresponds to the determined location. As an example, each location that can be determined based on the contextual data gathered from the detected objects may have a unique profile of settings to be adjusted.

In addition to the images captured by the first sensor, a second sensor of the computing device may capture ambient noise from the environment that the computing device is currently in. As an example, prior to the computing device adjusting a setting on the computing device based on the determined location, the computing device may determine whether the captured ambient noise corresponds to the determined location.

As an example, the computing device may display, on a screen of the computing device, data corresponding to the determined location. For example, in addition to detecting a general environment that the computing device is currently being used (e.g., aircraft, café, outdoors, or at work), some objects detected by the environment captured by the first sensor may correspond to logos of known companies, stores, and/or restaurants, providing an indication that the computing device is likely being used by a user in a location belonging to a particular company. As a result, data may be displayed on a screen of the computing device, corresponding to the particular company.

Reference in the specification to "an example" or similar language means that a particular feature, structure, or characteristic described in connection with the example is included in at least one example, but not necessarily in other examples. The various instances of the phrase "in one example" or similar phrases in various places in the specification are not necessarily all referring to the same example.

Claim 1:
A method comprising;
capturing, via a first sensor of a computing device, images of an environment that the computing device is currently in;
detecting whether there are faces captured in the images;
the method characterized by comprising:
determining, by the computing device, a distance of any detected faces from the computing device;
adjusting, by the computing device, a setting on the computing device based on the distance of the faces from the computing device;
wherein adjusting the setting comprises adjusting one or more of a brightness of a screen of the computing device, a size of text on the screen and a volume of speakers of the computing device.