Peripheral tracking system and method
11602684 · 2023-03-14
Assignee
Inventors
Cpc classification
A63F13/212
HUMAN NECESSITIES
H04N23/54
ELECTRICITY
A63F13/428
HUMAN NECESSITIES
A63F13/211
HUMAN NECESSITIES
A63F13/213
HUMAN NECESSITIES
A63F13/5255
HUMAN NECESSITIES
International classification
Abstract
A system for tracking one or more peripherals operable by a user in a real environment includes: a camera, mountable upon the user, operable to capture images of the real environment, a feature identification unit operable to identify features in images belonging to a first set of images captured by the camera, a peripheral identification unit operable to identify the image position of one or more peripherals in one or more images belonging to a second set of images captured by the camera, and a position determining unit operable to generate first position information for the camera in the real environment in dependence upon one or more of the identified features, and to generate respective second position information for the one or more peripherals relative to the camera in dependence upon the identified image position of the one or more peripherals. The first set of images and the second set of images captured by the camera are interleaved such that groups of one or more images from each set are captured in turn, and the position determining unit is operable to generate third position information identifying the position of the one or more peripherals in the real environment by combining the second position information corresponding to a given group of images in the second set of images with a function of the first position information corresponding to a group of images in the first set of images preceding the given group of images and the first position information corresponding to a group of images in the first set of images following the given group of images.
Claims
1. A system for tracking one or more peripherals operable by a user in a real environment, the system comprising: a camera, mountable upon the user, operable to capture images of the real environment; a feature identification unit operable to identify features in images belonging to a first set of images captured by the camera; a peripheral identification unit operable to identify the image position of one or more peripherals in one or more images belonging to a second set of images captured by the camera; and a position determining unit operable to generate first position information for tracking a location of the camera in the real environment in dependence upon one or more of the identified features, and to generate respective second position information for tracking positions of the one or more peripherals relative to the camera in dependence upon the identified image position of the one or more peripherals, wherein the first set of images and the second set of images captured by the camera are interleaved such that groups of one or more images from each set are captured in turn, and wherein the position determining unit is operable to generate third position information for tracking the positions of the one or more peripherals in the real environment to yield different tracking by combining the second position information corresponding to a given group of images in the second set of images with a function of the first position information corresponding to a group of images in the first set of images preceding the given group of images and the first position information corresponding to a group of images in the first set of images following the given group of images.
2. A system according to claim 1, comprising a light source operable to illuminate the environment for at least a first set of one or more image capture frames.
3. A system according to claim 1, wherein the camera is operable to capture images of the peripheral when lights associated with the peripheral are illuminated.
4. A system according to claim 1, wherein images are captured with different exposure times for different sets of one or more captured images.
5. A system according to claim 1, wherein the function is an average of the position information.
6. A system according to claim 1, wherein the position determining unit is operable to use a map of the environment to generate position information.
7. A system according to claim 1, wherein the position determining unit is operable to generate the third position information using the first position information corresponding to the group of images in the first set of images immediately preceding the given group of images and first position information corresponding to a group of images in the first set of images immediately following the given group of images.
8. A system according to claim 1, comprising one or more hardware motion detectors associated with the camera for generating motion tracking information.
9. A system according to claim 1, wherein the camera is operable to capture a third set of images.
10. A system according to claim 9, wherein the first, second and third sets of images comprise groups of different respective numbers of images.
11. A system according to claim 1, wherein at least two of the groups comprise different numbers of images for each group.
12. A system according to claim 9, wherein the groups belonging to at least one of the first, second and third sets of images comprise numbers of images which vary from group to group.
13. A method for tracking one or more peripherals operable by a user in a real environment, the method comprising: capturing images of the real environment using a camera mountable upon the user; identifying features in images belonging to a first set of images captured by the camera; identifying the image position of one or more peripherals in one or more images belonging to a second set of images captured by the camera, wherein the first set of images and the second set of images captured by the camera are interleaved such that groups of one or more images from each set are captured in turn; generating first position information for tracking a location of the camera in the real environment in dependence upon one or more of the identified features; generating respective second position information for tracking positions of the one or more peripherals relative to the camera in dependence upon the identified image position of the one or more peripherals; and generating third position information for tracking the positions of the one or more peripherals in the real environment to yield different tracking by combining the second position information corresponding to a given group of images in the second set of images with a function of the first position information corresponding to a group of images preceding the given group of images and the first position information corresponding to a group of images in the first set of images following the given group of images.
14. A non-transitory machine-readable storage medium which stores computer software that when executed by a computer causes the computer to track one or more peripherals operable by a user in a real environment, by carrying out actions, comprising: capturing images of the real environment using a camera mountable upon the user; identifying features in images belonging to a first set of images captured by the camera; identifying the image position of one or more peripherals in one or more images belonging to a second set of images captured by the camera, wherein the first set of images and the second set of images captured by the camera are interleaved such that groups of one or more images from each set are captured in turn; generating first position information for tracking a location of the camera in the real environment in dependence upon one or more of the identified features; generating respective second position information for tracking positions of the one or more peripherals relative to the camera in dependence upon the identified image position of the one or more peripherals; and generating third position information for tracking the positions of the one or more peripherals in the real environment to yield different tracking by combining the second position information corresponding to a given group of images in the second set of images with a function of the first position information corresponding to a group of images preceding the given group of images and the first position information corresponding to a group of images in the first set of images following the given group of images.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DESCRIPTION OF THE EMBODIMENTS
(9) Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, embodiments of the present disclosure are described. It should be understood that features of these embodiments may be combined as appropriate, rather than being considered to be suitable only in the exemplary configurations as described.
(10)
(11) The video displays in the HMD 20 are arranged to display images generated by the games console 100, and the earpieces in the HMD 20 are arranged to reproduce audio signals generated by the games console 100. Note that if a USB type cable is used, these signals will be in digital form when they reach the HMD 20, such that the HMD 20 comprises a digital to analogue converter (DAC) to convert at least the audio signals back into an analogue form for reproduction.
(12) Images from the camera 122 mounted on the HMD 20 are passed back to the games console 100 via the cable 82, 84. These images may be used for motion tracking, presentation to a user, or any combination of these or other purposes; to aid motion tracking a light source (for example, an infra-red light source or visible light source) may be provided. In some embodiments, the camera 122 may be a depth camera or a stereoscopic camera arrangement. Similarly, if motion or other sensors are provided at the HMD 20, signals from those sensors may be at least partially processed at the HMD 20 and/or may be at least partially processed at the games console 100. The use and processing of such signals will be described further below.
(13) The USB connection from the games console 100 also provides power to the HMD 20, according to the USB standard, although power may be received from any number of alternative or additional sources.
(14) As noted above, tracking of the position of the HMD may be performed using images captured by a camera associated with the HMD. This tracking data may be refined or otherwise supplemented by additional motion tracking data, such as that generated by an accelerometer or gyroscope.
(15)
(16)
(17)
(18) By performing an analysis of the feature motion between images, an accurate measure of the motion of the HMD can be determined and therefore tracking of the HMD can be performed.
(19) Rather than tracking the motion of the HMD explicitly, in some embodiments it is possible that the location of the HMD may be derived with each image frame. In some examples, this may be achieved by using a predefined mapping of the environment as a reference for the images. Feature identification may be performed on each image, and compared to known features from the environment mapping to identify a relative position of the features and the HMD. Of course, such a method may be used in conjunction with the method of measuring inter-image motion of features where appropriate, for example to reduce processing burden by performing the locating process less frequently.
(20) Rather than using a predefined mapping, in some embodiments may instead utilise mapping techniques to generate the map. For example, a Simultaneous Localisation and Mapping (SLAM) technique could be used to both generate a map of the environment and to identify the location of the HMD within that environment at the same time.
(21) It is considered advantageous that tracking of one or more peripherals used with the HMD can also be performed. While this may be performed using additional cameras, for example located at a games console or the like, or hardware motion detections such as accelerometers, the complexity of the entertainment system may be reduced if this tracking is performed by the same camera as is used for the HMD tracking. However, this presents numerous problems due to the different technical considerations when performing the HMD and peripheral tracking. While these considerations may be addressed in a single image, for example by capturing images of the environment and peripheral using a raster of pixels with different exposures and/or wavelengths of light to which the pixels are sensitive, this may not be suitable for all purposes.
(22)
(23) Of course, the order in which images are captured may be modified, and it is not essential that the images are captured using each scheme in a 1:1 ratio. For example, an image capture scheme such as A.sub.1, A.sub.2, B.sub.1, A.sub.3, A.sub.4, B.sub.2 could be used, or A.sub.1, A.sub.2, B.sub.1, B.sub.2, A.sub.3, A.sub.4, B.sub.3, B.sub.4. Consecutive image frames that belong to the same set (or a single image frame, if there are no consecutive image frames that belong to the same set) constitute a group belonging to that set. For instance, in each of the two examples in this paragraph there are 4 groups present; ‘A.sub.1, A.sub.2’ being the first, ‘B.sub.1’ or ‘B.sub.1, B.sub.2’ being the second, ‘A.sub.3, A.sub.4’ being the third and ‘B.sub.2 or ‘B.sub.3, B.sub.4’ being the final group. Exemplary differences in the image capture parameters for set A and set B are discussed below; however, it should be noted that these are to be considered non-limiting and that these parameters may be modified as appropriate for a particular implementation.
(24) Irregular arrangements of the image capture order are also considered as being suitable in some embodiments. This includes arrangements such as A.sub.1, A.sub.2, B.sub.1 A.sub.3, B.sub.2, A.sub.4, B.sub.3, B.sub.4, for example. Such arrangements of an image capture order may generated in a pseudo-random fashion, in some cases, or may simply follow a pre-defined pattern in which the groups are of different sizes.
(25) When multiple images are provided in a given group, a single position detection (of the camera-to-peripheral position in the case of “B” groups or the camera-in-the-environment position in the case of “A” groups can be generated from that given group, for example by averaging detections for each image in the group. Alternatively, individual detections can be made for each image in the group and a representative detection selected, for example in the case of the camera position, as a detection closest in time to a detection of the camera-to-peripheral position (so that for example, in an example arrangement A.sub.1, A.sub.2, B.sub.1, A.sub.3, A.sub.4, B.sub.2, A.sub.5, A.sub.6, the camera position detections used in respect of the detection made for the image B.sub.1 would be those from A.sub.2, A.sub.3, whereas the camera position detections used in respect of the detection made for the image B.sub.2 would be those from A.sub.4, A.sub.5.)
(26) In the case that a third set of images are captured in addition to sets of images A and B, the images of the third set may be interleaved with those of the first two sets in any suitable fashion. For example, where D represents a group of one or more images of the third set, ABDABD, ABDABABD, ADBDADBD or any other interleaving may be used as appropriate.
(27) For the HMD tracking performed using images A.sub.1 to A.sub.4, it is considered advantageous that the image is sufficiently bright so as to enable the identification of environmental features in the image. This may be achieved using one or both of an extended exposure time and the use of a light source (such as one mounted on the HMD, or on a console associated with the HMD) to illuminate the environment. An example of the image capture is shown in
(28) For the peripheral tracking performed using images B.sub.1 to B.sub.4, it is considered advantageous that the peripheral is easily identified from the images. As is shown in
(29) When tracking the peripheral using the same camera as that used for tracking the peripheral, the position of the peripheral may be determined relative to the HMD only. In order to obtain the actual (real environment) position of the peripheral, it is necessary to factor in detections of the HMD position at that time. However, due to the alternating image capture scheme discussed above, position information for the HMD at the exact time of the peripheral tracking is not available.
(30) Using HMD position information derived from image A.sub.1 in conjunction with the peripheral position information derived from image B.sub.1 can result in inaccuracies and jittery position data for the peripheral, as this the HMD position is considered to be historical data at this point. While this offers a reasonable approximation of the peripheral position, it may not be suitable for applications which require refined position data.
(31)
(32) The function of the HMD position data generated from images A.sub.1 and A.sub.2 may be any suitable function for deriving a position based upon the two sets of position data. For example, an average of the position data may be generated such that the function requires taking the mean value of the two sets of position data. In some cases, this may be a weighted average—for example, to increase the contribution to the function to position data that was captured closest to the desired time.
(33) Alternatively, or in addition, measurements of the HMD acceleration may be used to generate weighting values—for example, if a positive acceleration is performed between the capture of images A.sub.1 and A.sub.2 then the position of the user at the time halfway between the captured images would not necessarily be the halfway point between the respective positions associated with those images. In this case, the weighting factor would be increased for the position data associated with the earlier image, while for a deceleration the weighting factor would be greater for the position data associated with the later image.
(34) In such an embodiment, position data may be generated in this manner for each of the B images or image groups. For example, peripheral position data C.sub.2 may be generated using a combination of HMD position data generated from images A.sub.2 and A.sub.3 in conjunction with peripheral position data generated from image B.sub.2.
(35) In some embodiments, peripheral tracking data C is generated at the same rate as B images are captured (that is, every other frame in the example of
(36)
(37) A step 600 comprises capturing images of the real environment using a camera mountable upon the user, for example upon an HMD that is wearable by the user.
(38) A step 610 comprises identifying features in images belonging to a first set of images captured by the camera.
(39) A step 620 comprises identifying the image position of one or more peripherals in one or more images belonging to a second set of images captured by the camera, wherein the first set of images and the second set of images captured by the camera are interleaved such that groups of one or more images from each set are captured in turn.
(40) A step 630 comprises generating first position information for the camera in the real environment in dependence upon one or more of the identified features. This step is performed at a time corresponding to the capture of an image upon which the feature identification step 610 is performed; that is, the generating of position information for the camera (and therefore HMD, if the camera is mounted upon the HMD) is performed at the time of feature detection for frame A.sub.1 in the example of
(41) A step 640 comprises generating respective second position information for the one or more peripherals relative to the camera in dependence upon the identified image position of the one or more peripherals. This step is performed at a time corresponding to the capture of an image upon which the peripheral identification step 620 is performed; that is, the generating of position information for the peripheral is performed at the time of feature detection for image frame B.sub.1 in the examples above.
(42) In steps 630 and 640, the time corresponding to the image capture may be the time of the image capture, or a time shortly after this if there is a delay before a captured image may be processed. For example, if the images are transmitted from the camera to an associated processing device (such as a games console) for processing via the HMD then a delay between image capture and image processing is introduced.
(43) A step 650 comprises generating third position information identifying the position of the one or more peripherals in the real environment by combining the second position information for a given image with an average of the first corresponding to a given group of images in the second set of images with a function of the first position information corresponding to a group of images preceding the given group of images and the first position information corresponding to a group of images in the first set of images following the given group of images.
(44) This step is performed at a time corresponding to the capture of the succeeding image upon which the feature identification step 610 is performed; that is, the generating of third position information is performed at the time of feature detection for frame A.sub.2 in the example of
(45)
(46) The camera 700, mountable upon the user and/or HMD, is operable to capture images of the real environment and/or the one or more peripherals. In some embodiments, images are captured with different exposure times for different sets of one or more captured images. For example, as described above, a longer exposure time may be used when capturing images of the environment for HMD tracking than when capturing images of the peripheral for peripheral tracking. In some embodiments, the camera 700 comprises a wide angle lens (such as a fish-eye lens, or any lens with a field of view greater than 60°) for capturing images.
(47) In some embodiments, the system also comprises a light source (such as reference 400 of
(48) In some embodiments, the camera is operable to capture images of the peripheral when lights associated with the peripheral are illuminated. As discussed above, in some embodiments the peripheral is operable to be illuminated (for example, by LEDs on the peripheral) in frames in which the light source operable to illuminate the environment is not active.
(49) The feature identification unit 710 is operable to identify features in images belonging to a first set of images captured by the camera.
(50) The peripheral identification unit 720 is operable to identify the image position of one or more peripherals in one or more images belonging to a second set of images captured by the camera, wherein the feature identification unit and peripheral identification unit perform their respective identification processes on interleaved sets of one or more captured images. As discussed with reference to the step 620 of
(51) As noted above, examples of interleaved sets of one or more images include an arrangement of images into an ABAB format or an AABBAABB format, wherein A and B represent images belonging to different sets; in some embodiments the sets may have different numbers of captured image frames in them, such as in the AABAAB format described above.
(52) The position determining unit 730 is operable to generate first position information for the camera in the real environment in dependence upon one or more of the identified features, and to generate respective second position information for the one or more peripherals relative to the camera in dependence upon the identified image position of the one or more peripherals.
(53) The position determining unit 730 is also operable to generate third position information identifying the position of the one or more peripherals in the real environment by combining the second position information corresponding to a given group of images in the second set of images with a function of the first position information corresponding to a group of images in the first set of images preceding the given group of images and the first position information corresponding to a group of images in the first set of images following the given group of images.
(54) In some embodiments, the position determining unit 730 is operable to generate the third position information using the first position information corresponding to the group of images in the first set of images immediately preceding the given group of images and first position information corresponding to a group of images in the first set of images immediately following the given group of images.
(55) In some embodiments, the position determining unit 730 is operable to use a map of the environment to generate position information. For example, the map may be generated using a simultaneous localisation and mapping process.
(56) Alternatively, or in addition, the system may comprise one or more hardware motion detectors associated with the camera 700 for generating motion tracking information. Examples of such hardware motion detectors include accelerometers and gyroscopes.
(57) A number of variations to the system describe above are considered in the present disclosure.
(58) In some embodiments, the camera 700 is operable to capture a third set of images. As noted above, these images may be used for other purposes, such as capturing images for display to a user or for tracking additional peripherals, or may serve no functional purpose at all. In some embodiments, each of the three sets of images comprises different numbers of groups of images, such that there is not a 1:1:1 ratio between the numbers of groups of images for each function. It is also envisaged that in some embodiments the first, second and third sets of images comprise groups of different respective numbers of images.
(59) In some embodiments the groups comprise different numbers of images for each set; that is, the number of images that form each group may be different for HMD tracking than for peripheral tracking. This may be advantageous in increasing the frequency of the tracking for a prioritised device. It is also considered that the groups belonging to a set of images may comprise varying numbers of images; for example, in an AABABAABAAAB arrangement the number of image frames in the A groups vary between the groups belonging to that set. In more general terms, in some embodiments at least two of the groups comprise different numbers of images for each group. In some embodiments in which three sets of images are captured, the groups belonging to at least one of the first, second and third sets of images comprise numbers of images which vary from group to group
(60) The techniques described above may be implemented in hardware, software or combinations of the two. In the case that a software-controlled data processing apparatus is employed to implement one or more features of the embodiments, it will be appreciated that such software, and a storage or transmission medium such as a non-transitory machine-readable storage medium by which such software is provided, are also considered as embodiments of the disclosure.
(61) Thus, the foregoing discussion discloses and describes merely exemplary embodiments of the present invention. As will be understood by those skilled in the art, the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting of the scope of the invention, as well as other claims. The disclosure, including any readily discernible variants of the teachings herein, defines, in part, the scope of the foregoing claim terminology such that no inventive subject matter is dedicated to the public.