Depth camera based image stabilization
First Claim
1. A method comprising:
- collecting, by a processing device, depth data related to a sequence of images of a video stream being provided by a source device to a target device as part of a communication session between a first user of the source device and a second user of the target device, wherein the depth data includes a depth measurement of individual pixels in each image of the sequence of images;
creating x, y, and z coordinates for features of an object in the sequence of images of the video stream based on the depth data;
creating a stabilized stream of images for the video stream based on the x, y, and z coordinates for the features of the object in the sequence of images of the video stream by;
building a first model of the object in a first image of the sequence of images based on the depth data;
building a second model of the object in a second image of the sequence of images based on the depth data; and
generating the stabilized stream of images based on the first model of the object and the second model of the object, wherein a first foreground portion of the first image corresponds to a second foreground portion of the second image, and wherein the stabilized stream of images comprises an overlapping frame section that includes the object, the overlapping frame section overlapping between the first foreground portion and the second foreground portion; and
providing, to the target device, the stabilized stream of images in the video stream as part of the communication session.
2 Assignments
0 Petitions
Accused Products
Abstract
A processing device collects depth data for frames in a sequence of images of a video stream being provided by a source device to a target device as part of a communication session. The depth data is created by a depth aware camera of the source device. The processing device maps, using the depth data, feature locations of the features of an object in a frame to feature locations of the features of the object in other frames, determines overlapping frame sections between the frames using the mapped feature locations, modifies, in the sequence of images, a set of images corresponding to the frames based on the overlapping frame sections to create a stabilized stream of images for the video stream, and provides the stabilized stream of images in the video stream as part of the communication session.
18 Citations
20 Claims
-
1. A method comprising:
-
collecting, by a processing device, depth data related to a sequence of images of a video stream being provided by a source device to a target device as part of a communication session between a first user of the source device and a second user of the target device, wherein the depth data includes a depth measurement of individual pixels in each image of the sequence of images; creating x, y, and z coordinates for features of an object in the sequence of images of the video stream based on the depth data; creating a stabilized stream of images for the video stream based on the x, y, and z coordinates for the features of the object in the sequence of images of the video stream by; building a first model of the object in a first image of the sequence of images based on the depth data; building a second model of the object in a second image of the sequence of images based on the depth data; and generating the stabilized stream of images based on the first model of the object and the second model of the object, wherein a first foreground portion of the first image corresponds to a second foreground portion of the second image, and wherein the stabilized stream of images comprises an overlapping frame section that includes the object, the overlapping frame section overlapping between the first foreground portion and the second foreground portion; and providing, to the target device, the stabilized stream of images in the video stream as part of the communication session. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a memory; and a processing device, coupled to the memory, the processing device configured to; collect depth data related to a sequence of images of a video stream being provided by a source device to a target device as part of a communication session between a first user of the source device and a second user of the target device, wherein the depth data includes a depth measurement of individual pixels in each image of the sequence of images, the depth measurement being indicative of a distance of an object from a camera that captured the sequence of images of the video; create x, y, and z coordinates for features of the object in the sequence of images of the video stream based on the depth data; create a stabilized stream of images for the video stream based on the x, y, and z coordinates for the features of the object in the sequence of images of the video stream by; building a first model of the object in a first image of the sequence of images based on the depth data; building a second model of the object in a second image of the sequence of images based on the depth data; and generating the stabilized stream of images based on the first model of the object and the second model of the object, wherein a first foreground portion of the first image corresponds to a second foreground portion of the second image, and wherein the stabilized stream of images comprises an overlapping frame section that includes the object, the overlapping frame section overlapping between the first foreground portion and the second foreground portion; and provide, to the target device, the stabilized stream of images in the video stream as part of the communication session. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processing device, cause the processing device to:
-
collect depth data related to a sequence of images of a video stream being provided by a source device to a target device as part of a communication session between a first user of the source device and a second user of the target device, wherein the depth data includes a depth measurement of individual pixels in each image of the sequence of images; create x, y, and z coordinates for features of an object in the sequence of images of the video stream based on the depth data; create a stabilized stream of images for the video stream based on the x, y, and z coordinates for the features of the object in the sequence of images of the video stream by; building a first model of the object in a first image of the sequence of images based on the depth data; building a second model of the object in a second image of the sequence of images based on the depth data; and generating the stabilized stream of images based on the first model of the object and the second model of the object, wherein a first foreground portion of the first image corresponds to a second foreground portion of the second image, and wherein the stabilized stream of images comprises an overlapping frame section that includes the object, the overlapping frame section overlapping between the first foreground portion and the second foreground portion; and provide, to the target device, the stabilized stream of images in the video stream as part of the communication session. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification