Watching television is becoming more complicated, as modern systems offer features such as much more second screen experiences, interactive viewing sessions, and user customization. User customization may allow the viewer to quickly find programs of interest by, for example, providing a favorite channel list tailored to the user's preferences. Customization, however, is possible or can be fully implemented if the system knows who is watching. Identifying viewers can be problematic, for example, if there are many users in the room or if there is movement among users. To better provide a user-tailored experience, there remains a need to be able to identify users.
The following summary is for illustrative purposes only, and is not intended to limit or constrain the detailed description.
Some features herein relate to determining which user in a room of users is controlling a content consumption experience. For example, if there are two people in the room watching a video program, and one of them changes the channel, asks to see an electronic program guide, or otherwise interacts with content, features herein may assist in determining which user is requesting the change or interaction, so that the ensuing response may be appropriately tailored or customized to that user's preferences.
In some embodiments, a content delivery system may include one or more sensors (e.g., cameras or other signal sensors) positioned to view or sense the users as they watch a video display (e.g., a television). The sensors may capture data which may be converted into an image related to the users such as their bodies (e.g., faces, shoulders, arms, hands, etc.), and may also optionally capture an image of a command being transmitted from a wireless remote control. For example, infrared remote controls may be variously configured such as to transmit their commands through pulses of infrared light that are sent by the remote control and detected by the infrared receiver of a device associated with a content consumption device (e.g., a television, set-top box (STB), digital video recorder (DVR), gateway, etc.). In some embodiments, the sensors may include an infrared camera, which may also detect the remote control's infrared signal, e.g., as a flash of light in the image.
A computing device may be variously configured such as to process the data captured by the sensors or images (e.g., combining images from multiple cameras, such as an infrared camera and a visible light camera) to determine which user is manipulating the remote control to send the remote control command. In some embodiments, this may be done by comparing distances, in the image, between the flash of light from the remote control and the detected faces or other features related to the users or by comparing the remote control signal flash to personal space maps of the users. Different algorithms may variously be used to associate the control device or signal with the user such as mapping the user's outline, associating appendages (e.g., arms) with users, and/or using more simplistic algorithms such as using the face closest to the flash. Using suitable algorithms, it may be determined which user entered the remote control command. The identity of the user may be variously determined such as by associating a user with a particular control device (e.g., smart phone) and/or by associating a face e.g., through facial recognition software with a particular user. The response to the command may then be provided in accordance with the personal preferences of the identified user.
In some embodiments, the computing device and sensors may be able to detect other body parts of the users or spatial relationships between body parts of users, such as their hands, arms, shoulders, necks, eyes, etc. With the identification of the body parts, the computing device may be able to determine whose hand was holding the remote control when the command was sent. In such embodiments, even if another user's face was located closer (in the field of view) to the remote control than a primary user, the primary user may still be identified as the one sending the command, if the primary user's hand can be identified as the one holding the remote control. Similarly, the system may determine that the other user's hands were both away from the remote control, and may conclude that the other user was not the one to send the remote control command.
In some embodiments, the personal space map of a user may be constructed based on the distance of each point from a body part of a user such as the hands, arms, shoulders, neck, or eyes of the user. The personal space map may also be constructed based on a determination of the probability that a remote control signal originating from a particular location is initiated by that user.
The summary here is not an exhaustive listing of the novel features described herein, and are not limiting of the claims. These and other features are described in greater detail below.
These and other features, aspects, and advantages of the present disclosure will become better understood with regard to the following description, claims, and drawings. The present disclosure is illustrated by way of example, and not limited by, the accompanying figures in which like numerals indicate similar elements.
a-c illustrate examples of one or more of facial and body part recognition, remote control signal detection, and distance and other sensor measurements in accordance with some aspects of the disclosure.
In the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown, by way of illustration, various embodiments in which aspects of the disclosure may be practiced. It is to be understood that other embodiments may be utilized, and structural and functional modifications may be made, without departing from the scope of the present disclosure.
There may be one link 101 originating from the local office 103, and it may be split a number of times to distribute the signal to various premises 102 in the vicinity (which may be many miles) of the local office 103. The links 101 may include components not illustrated, such as splitters, filters, amplifiers, etc. to help convey the signal clearly, but in general each split introduces a bit of signal degradation. Portions of the links 101 may also be implemented with fiber-optic cable, while other portions may be implemented with coaxial cable, other lines, or wireless communication paths.
The local office 103 may include an interface, such as a termination system (TS) 104. More specifically, the interface 104 may be a cable modem termination system (CMTS), which may be a computing device configured to manage communications between devices on the network of links 101 and backend devices such as servers 105-107 (to be discussed further below). The interface 104 may be as specified in a standard, such as the Data Over Cable Service Interface Specification (DOCSIS) standard, published by Cable Television Laboratories, Inc. (a.k.a. CableLabs), or it may be a similar or modified device instead. The interface 104 may be configured to place data on one or more downstream frequencies to be received by modems at the various premises 102, and to receive upstream communications from those modems on one or more upstream frequencies.
The local office 103 may also include one or more network interfaces 108, which can permit the local office 103 to communicate with various other external networks 109. These networks 109 may include, for example, networks of Internet devices, telephone networks, cellular telephone networks, fiber optic networks, local wireless networks (e.g., WiMAX), satellite networks, and any other desired network, and the network interface 108 may include the corresponding circuitry needed to communicate on the external networks 109, and to other devices on the network such as a cellular telephone network and its corresponding cell phones.
As noted above, the local office 103 may include a variety of servers 105-107 that may be configured to perform various functions. For example, the local office 103 may include a push notification server 105. The push notification server 105 may generate push notifications to deliver data and/or commands to the various premises 102 in the network (or more specifically, to the devices in the premises 102 that are configured to detect such notifications). The local office 103 may also include a content server 106. The content server 106 may be one or more computing devices that are configured to provide content to users at their premises. This content may be, for example, video on demand movies, television programs, songs, text listings, etc. The content server 106 may include software to validate user identities and entitlements, to locate and retrieve requested content, to encrypt the content, and to initiate delivery (e.g., streaming) of the content to the requesting user(s) and/or device(s).
The local office 103 may also include one or more application servers 107. An application server 107 may be a computing device configured to offer any desired service, and may run various languages and operating systems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD, Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, an application server may be responsible for collecting television program listings information and generating a data download for electronic program guide listings. Another application server may be responsible for monitoring user viewing habits and collecting that information for use in selecting advertisements. Yet another application server may be responsible for formatting and inserting advertisements in a video stream being transmitted to the premises 102. Although shown separately, one of ordinary skill in the art will appreciate that the push server 105, content server 106, and application server 107 may be combined. Further, here the push server 105, content server 106, and application server 107 are shown generally, and it will be understood that they may each contain memory storing computer executable instructions to cause a processor to perform steps described herein and/or memory for storing data.
An example premises 102a, such as a home, may include an interface 120. The interface 120 can include any communication circuitry needed to allow a device to communicate on one or more links 101 with other devices in the network. For example, the interface 120 may include a modem 110, which may include transmitters and receivers used to communicate on the links 101 and with the local office 103. The modem 110 may be, for example, a coaxial cable modem (for coaxial cable lines 101), a fiber interface node (for fiber optic lines 101), twisted-pair telephone modem, cellular telephone transceiver, satellite transceiver, local wi-fi router or access point, or any other desired modem device. Also, although only one modem is shown in
The
One or more aspects of the disclosure may be embodied in a computer-usable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other data processing device. The computer executable instructions may be stored on one or more computer readable media such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
To provide a better user experience, it may be desirable for a system such as a content delivery system or device such as a content consumption device to be able to identify which user(s) are in the room and customize settings, profiles, or preferences to be specific to the user(s) such as an active user or a group of identified users. Profiles, settings, or preferences may be customized based on the user who is in control of a remote control device or the group of users present in the viewing area or field of view of an image device. Determination of the user in control of the remote control device may be ascertained from analysis of an image captured at the time of a signal transmission from the remote control device. A computing device may be used to process a captured image and determine an associated user for the control signal. A user may be associated with the remote control device based on relative positions of the user and the remote control device, and the user in control of the remote control device may be identified as the active user.
An image may be a graphical or visual representation of a scene or environment based on data captured by one or more imaging devices such as sensors or cameras. For example, an image may be an image captured by a camera detecting electromagnetic radiation such as different wavelengths of light including infrared, ultraviolet, and visible light. As another example, an image may be constructed from data of a scene or environment captured using sensors or cameras detecting electromagnetic waves such as radio signals (e.g., Wi-Fi) or sound waves such as ultrasonic waves.
The viewing scenario or scene shown in
There are a variety of ways to determine which user initiated the remote control signal 301. One example is to determine proximity or the distance between the location of the remote control signal 301 and a user and associate initiation of the signal 301 with the closest user. Another example is to determine which user is holding or in possession of the remote control device. The system may also calculate the likelihood that a particular user is in control of the remote control device based on varying distances from the user in various directions which may be presented in the form of a personal space map.
The distance between the originating location of the remote control signal 301 and the users 302, 304 may be determined from any point on the users 302, 304 such as the faces 308, 310 of the users 302, 304. In the example shown in
According to another aspect, the remote control signal 301 and thereby the remote control may be associated with the user with the shortest hypotenuse distance from the remote control signal 301. For example, the horizontal distance and vertical distance of a point on the user's face from the remote control signal 301 may be used to calculate the hypotenuse. As shown in illustrative
a-c show additional examples of how a transmitted remote control signal may be associated with a user according to some aspects described herein.
a shows an example of associating a transmitted remote control signal with a user based on a distance determination that is not limited to positions along a horizontal line. The distance between the originating location of remote control signal 401 and the face of the first user 402 is distance D1, and the distance between the signal 401 and the face of the second user 404 is distance D2. In this example, the distances may be the shortest absolute distance between the users 402, 404 and the remote control signal 401 such as a straight line in two dimensions between the face of the user and the remote control signal 401 as illustrated in
b shows another example of associating a remote control signal 401 with a user by taking into account the distances D1, D2 between the eyes of the users 402, 404 and the remote control signal 401 shown as lines 406, 408 and an angle formed by lines 406, 408. The angle may be measured as, for example, the angle between a horizontal axis 410 through the remote control signal 401 and the lines 406, 408. Angle θ1 may be the angle between the line 406 and the horizontal axis 410, and angle θ2 may be the angle between the line 408 and the horizontal axis 410. Based on a combination of the distance and angle associated with a user, the device can determine which user may be associated with the remote control signal. Since users may typically hold a remote closer to their bodies or in front of them and below their eyes, a larger angle and a shorter distance for a particular user may indicate that the remote control signal should be associated with that user. The device may associate the remote control signal with the user that has the larger angle and the shorter distance as compared to the corresponding angle and distance of other users. Additional considerations may be used in situations where one user has a larger angle and another user has a shorter distance. For example, additional methods to identify the user of the remote control described herein may be used such as determining which user appears to be physically connected to the remote control signal or using personal space maps as will be described later herein.
c shows an example of associating a remote control signal 401 with a user based on determining whether the user has an appendage connection such as appearing to be physically linked or connected to the transmitted remote control signal 401. The device may process the image to determine boundaries which define the body of the user or identify body parts of the user using a body part recognition function. The captured image may be processed to examine whether the remote control signal 401 is connected to a user by a body part or appendage such as an arm and a hand. In the example shown in
While
In this example, once there is an active content session, the device can proceed to step 506 and capture an image of the viewing area using an imaging device, which may be part of a content consumption device.
In this example, once the viewing area image is captured, the captured image may be analyzed for facial recognition and user location determination at step 508. At step 510, the positions in the image of face(s) of the user(s) may be stored, as well as information identifying the user(s) who is (are) consuming content in the content session. At step 512, the device may determine whether a remote control signal was transmitted at the time the image was captured by determining whether a signal transmission was captured in the image. For example, the image may be processed to determine whether an infrared flash is visible. If no remote control signal was emitted at the time the image was captured, the method returns to step 504.
If a remote control signal transmission was captured in the image, the device can process the captured image to determine whether the captured image shows body portions including appendages or body parts such as an arm or a hand connected to the remote control signal at step 514. This determination may be made by processing a 2D or 3D image to determine body parts or appendages shown in the image.
If there are no appendages connected to the remote control signal, the distances and angles between the signal and the faces may be determined at step 516 as shown in, for example,
If at step 514 the device determines that linked appendages are present in the captured image, the device may determine which face is linked to the remote control signal based on the appendages linked to the remote control signal at step 526. Once a linked face has been determined, the signal is associated with that face or user at step 528.
After steps 520, 522, and 528, the device may return to step 504 to continuously monitor for a content session and/or continuously update the associated user of the remote control signal.
While the image is described as being captured after determining that a content session is active in exemplary method 500, the image may also be captured in response to detecting a remote control signal transmission and then processed based on the originating location of the remote control signal or the location of the remote control. Indeed, the example flow diagrams provided herein are merely examples, and the various steps and components may be rearranged, combined, subdivided and modified as desired for an implementation of the concepts described herein.
In this example, by performing facial recognition on the captured image, the device can identify users and determine locations of users and their body parts in the image. Based on the location of a user's face, the device can estimate the location of the user's shoulders and construct a personal space map based on the location of each shoulder.
A personal space map in the form of a table may also be used in combination with or instead of a graphical personal space map. The table may provide a list of distances from a particular point of the user and corresponding probabilities or map values. For example, personal space map 608 divide the distance from the user into distance ranges and provide a corresponding map value or probability for each range.
At step 710, based on the location of a user's face, the person's personal space map may be constructed. The personal space map may be formed by estimating the location of the person's shoulders using average or estimated face-to-shoulder distances or body proportions. Based on an average body proportions or lengths, the personal space map may be calculated to indicate the probability that the remote control signal is associated with a particular user depending on the radial distance of the remote control signal from a point on the user such as the user's shoulder or confidence values based on the distance between the user and the remote control signal.
Returning to step 706, if there are no new or unknown faces detected, the device may determine whether there is movement or a change in position of the previously detected faces at step 712. If there is no change in position or movement of the previously detected faces, the device can return to the beginning of the facial recognition process at step 704. If there is movement of the previously detected faces, the user's location may be updated at step 714, and the user's personal space map may be updated based on the new location at step 710. The exemplary method 700 may continuously monitor and update locations of users and their personal space maps.
While the personal space map is described as being built based on distance from a shoulder, map values may be calculated based on a variety of factors such as distance from the nearest body part. The personal space map can also have an irregular shape and have increased probabilities in areas near body parts particularly associated with initiating a remote control signal such as a hand or an arm.
Returning to step 808, if the remote control signal location does not initially match with that of a particular user, the method may proceed to step 814 and determine whether there are additional users with which to compare the remote control signal location. If there are additional users for initial location comparison, the device may return to step 806 and compare the remote control signal location with that of another user. If at step 814 there are no additional users for initial location comparison, the device may proceed to step 816 where the device determines whether there were any matches in the initial comparisons with users.
If there are no initial matches at step 816, the device may identify or indicate a default user as the active user or use default settings or a default profile. In the event that there is only one initial match, the device may automatically consider that user to be the best personal space map match at step 818. The device may optionally seek user feedback or confirmation of the match at step 820 and identify the user matched at step 818 as the “active” user of the device or system at step 822 in response to positive feedback received in step 820.
If there are more than one initial matches, the signal location is compared with a personal space map(s) of the initially matched user(s) at step 812. If the signal location is initially matched to multiple users, the device may compare the remote control signal location to the personal space map of each user and determine a map match value for each user from this comparison. For example, the higher the map match value of a user the more strongly the map match value may indicate that the remote control signal should be associated with that particular user. At step 818, the device may select the user with the highest map match value as the potential active user. For example, if the signal location is within a predetermined distance from three users or within the personal space map of three users, the device may compare the confidence values of the three users or the personal space maps of the three users. Where larger confidence values indicate a higher degree of confidence that the remote control signal should be associated with a particular user, the device may select the user with the highest or largest confidence value as the best personal map match at step 818. In the event that the confidence values are the same or within a predetermined range of each other, the device may evaluate additional variables or considerations such as the angle or various distances between the user and the remote control signal as discussed herein.
The device may also optionally receive feedback or confirmation from a user about the selection at step 820. For example, the system may display an onscreen message or symbol identifying the user that has been chosen as the one sending the command, and the system may offer the user an option to correct or override the determination (e.g., by pressing a button to respond negatively to the displayed message, and selecting a face from an onscreen display of the captured image as the person in command, or by selecting a user's name from a list). The device may identify the user previously determined to have the highest map match value as the active user at step 822, and process the received remote control command in the context of the selected user's preferences (e.g., pressing a “Favorites” button on the remote control may yield different results depending on who the commanding user was).
For the user feedback at step 820, the user may indicate that the selection by the device of the potential active user is incorrect or undesirable and provide corresponding negative feedback or the user may also confirm or provide positive feedback. For example, the device may display on a display device (e.g., a television or a monitor) the faces identified from the captured image and provide a preliminary indication of which user has been selected by the computing device as the active user. If the user agrees with the device's selection, the user may, for example, confirm the selection by pushing a button on an input device such as an “ENTER” button the remote control. If the device receives negative feedback from the user, the device may return to step 818 and choose the user with the second best map match value as the potential active user. The device may also allow the user to select the active user if the user disagrees with the preliminary selection. The user may, for example, use the input device to move a selection cursor to another face and select the face as the active user. If the user agrees with the selection by the device, the user may provide positive feedback at step 820. In response to the positive feedback, the device may identify the selected user as the active user at step 822.
The method 800 thus determines a user to be the likely source of the remote control signal transmission and associates the remote control signal transmission with the particular user by labeling the user as the “active” user based on a personal space map of a user.
Although example embodiments are described above, the various features and steps may be combined, divided, omitted, rearranged, revised and/or augmented in any desired manner, depending on the specific outcome and/or application. Various alterations, modifications, and improvements will readily occur to those skilled in art. Such alterations, modifications, and improvements as are made obvious by this disclosure are intended to be part of this description though not expressly stated herein, and are intended to be within the spirit and scope of the disclosure. Accordingly, the foregoing description is by way of example only, and not limiting. This patent is limited only as defined in the following claims and equivalents thereto.