IP Library › Granted Patent US 12,307,682
Granted Patent B2
US 12,307,682 · App. 17/851,448 · Granted May 20, 2025

Virtual selfie stick

Inventors: Kai Zhou (Wiener Neudorf, AT); Branislav Micusik (St.Andrae-Woerdern, AT)
Assignee: Snap Inc.
G06T7/194G06T3/4007G06T7/11G06T7/50G06T7/70H04N5/265H04N23/632H04N23/64G06T2200/24G06T2207/30201G06T2207/30244
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,307,682
App. No.
17/851,448
Granted
May 20, 2025
Kind
B2
Abstract

A method for generating a virtual selfie stick image is described. In one aspect, the method includes generating, at a device, an original self-portrait image with an optical sensor of the device, the optical sensor directed at a face of a user of the device, the device being held at an arm length from the face of the user, displaying, on a display of the device, an instruction guiding the user to move the device at the arm length about the face of the user within a limited range at a plurality of poses, accessing, at the device, image data generated by the optical sensor at the plurality of poses, and generating a virtual selfie stick self-portrait image based on the original self-portrait image and the image data.

Claims (85)

1. A method comprising:

generating, at a device, an original self-portrait image with an optical sensor of the device, the optical sensor directed at a face of a user of the device, the device being held at an arm length from the face of the user;

displaying, on a display of the device, a directional graphical user interface that includes an arrow that points to a direction guiding the user to move the device at the arm length about the face of the user within a limited range at a plurality of poses;

displaying, on the display of the device, a slider graphical user interface that enables the user to adjust a distance of a virtual selfie stick relative to the face of the user;

accessing, at the device, image data generated by the optical sensor at the plurality of poses;

generating a virtual selfie stick self-portrait image based on the distance of the virtual selfie stick, the original self-portrait image, and the image data;

partitioning the virtual selfie stick self-portrait image into an expanded area, a blocked area, and an interpolation area;

calculating pixels in the expanded area and the blocked area using a computer vision algorithm;

calculating pixels in the interpolation area using a scaling engine; and

in response to partitioning the virtual selfie stick self-portrait image into the expanded area, the blocked area, and the interpolation area, applying the computer vision algorithm only to the expanded area and the blocked area, and applying the scaling engine only to the interpolation area.

2. The method of claim 1 ,

wherein the expanded area includes a border region of the virtual selfie stick self-portrait image, the border region including content that contiguously expands from a perimeter region of the original self-portrait image,

wherein the blocked area includes a blocked region adjacent to the face of the user in the virtual selfie stick self-portrait image, the blocked region including background content that is blocked by the face of the user in the original self-portrait image, and

wherein the interpolation area includes a remapping region that includes the face of the user and background content displayed in both the original self-portrait image and the virtual selfie stick self-portrait image, the remapping region excluding the border region and the blocked region.

3. The method of claim 2 , further comprising:

computing pixels in the expanded area and the blocked area by applying the computer vision algorithm to the original self-portrait image and the image data corresponding to the expanded area and the blocked area.

4. The method of claim 3 , further comprising:

running the computer vision algorithm at a first resolution based on the plurality of poses of the device;

identifying a first foreground depth and a first background depth of the original self-portrait image based on running the computer vision algorithm at the first resolution;

identifying a second foreground depth and a second background depth of the virtual selfie stick self-portrait image; and

running the computer vision algorithm at a second resolution to compute the pixels in the expanded area and the blocked area based on the second foreground depth and the second background depth,

wherein the second resolution is higher than the first resolution,

wherein the second foreground depth is higher than the first foreground depth, and

wherein the second background depth is higher than the first background depth.

5. The method of claim 4 , further comprising:

receiving a request to change the second foreground depth to a third foreground depth;

computing a third background depth based on the third foreground depth; and

running the computer vision algorithm at the second resolution to compute the pixels in the expanded area and the blocked area based on the third foreground depth and the third background depth.

6. The method of claim 3 , wherein the computer vision algorithm includes at least one of a neural radiance fields algorithm, a Multi-View Stereopsis algorithm, and a three-dimensional reconstruction algorithm.

7. The method of claim 1 , further comprising:

adjusting a depth of a background in the virtual selfie stick self-portrait image based on the distance selected in the slider graphical user interface.

8. The method of claim 1 , further comprising:

accessing pose data corresponding to the image data at the plurality of poses,

wherein the device comprises a visual tracking system that generates the pose data based on a corresponding pose of the device, and

wherein the virtual selfie stick self-portrait image is based on the pose data.

9. The method of claim 1 , wherein the directional graphical user interface comprises text instructions that instruct the user to move the device in the direction of the arrow.

10. A computing apparatus comprising:

a display;

an optical sensor;

a processor; and

a memory storing instructions that, when executed by the processor, configure the computing apparatus to perform operations comprising:

generate an original self-portrait image with the optical sensor, the optical sensor directed at a face of a user of the computing apparatus, the computing apparatus being held at an arm length from the face of the user;

display, on the display, a directional graphical user interface that includes an arrow that points to a direction guiding the user to move the computing apparatus at the arm length about the face of the user within a limited range at a plurality of poses;

display, on the display, a slider graphical user interface that enables the user to adjust a distance of a virtual selfie stick relative to the face of the user;

access, at the computing apparatus, image data generated by the optical sensor at the plurality of poses;

generating a virtual selfie stick self-portrait image based on the distance of the virtual selfie stick, the original self-portrait image, and the image data;

partitioning the virtual selfie stick self-portrait image into an expanded area, a blocked area, and an interpolation area;

calculating pixels in the expanded area and the blocked area using a computer vision algorithm;

calculating pixels in the interpolation area using a scaling engine; and

in response to partitioning the virtual selfie stick self-portrait image into the expanded area, the blocked area, and the interpolation area, applying the computer vision algorithm only to the expanded area and the blocked area, and applying the scaling engine only to the interpolation area.

11. The computing apparatus of claim 10 ,

wherein the expanded area includes a border region of the virtual selfie stick self-portrait image, the border region includes content that contiguously expands from a perimeter region of the original self-portrait image,

wherein the blocked area includes a blocked region adjacent to the face of the user in the virtual selfie stick self-portrait image, the blocked region including background content that is blocked by the face of the user in the original self-portrait image, and

wherein the interpolation area includes a remapping region that includes the face of the user and background content displayed in both the original self-portrait image and the virtual selfie stick self-portrait image, the remapping region excluding the border region and the blocked region.

12. The computing apparatus of claim 11 , wherein the instructions further configure the computing apparatus to:

compute pixels in the expanded area and the blocked area by applying the computer vision algorithm to the original self-portrait image and the image data corresponding to the expanded area and the blocked area.

13. The computing apparatus of claim 12 , wherein the instructions further configure the computing apparatus to:

run the computer vision algorithm at a first resolution based on the plurality of poses of the computing apparatus;

identify a first foreground depth and a first background depth of the original self-portrait image based on running the computer vision algorithm at the first resolution;

identify a second foreground depth and a second background depth of the virtual selfie stick self-portrait image; and

run the computer vision algorithm at a second resolution to compute the pixels in the expanded area and the blocked area based on the second foreground depth and the second background depth,

wherein the second resolution is higher than the first resolution,

wherein the second foreground depth is higher than the first foreground depth, and

wherein the second background depth is higher than the first background depth.

14. The computing apparatus of claim 13 , wherein the instructions further configure the computing apparatus to:

receive a request to change the second foreground depth to a third foreground depth;

compute a third background depth based on the third foreground depth; and

run the computer vision algorithm at the second resolution to compute the pixels in the expanded area and the blocked area based on the third foreground depth and the third background depth.

15. The computing apparatus of claim 12 , wherein the computer vision algorithm includes at least one of a neural radiance fields algorithm, a Multi-View Stereopsis algorithm, and a three-dimensional reconstruction algorithm.

16. The computing apparatus of claim 10 , wherein the instructions further configure the computing apparatus to:

adjust a depth of a background in the virtual selfie stick self-portrait image based on the distance selected in the slider graphical user interface.

17. The computing apparatus of claim 10 , wherein the instructions further configure the computing apparatus to:

access pose data corresponding to the image data at the plurality of poses,

wherein the computing apparatus comprises a visual tracking system that generates the pose data based on a corresponding pose of the computing apparatus, and

wherein the virtual selfie stick self-portrait image is based on the pose data.

18. A non-transitory computer-readable storage medium, the non-transitory computer-readable storage medium including instructions that when executed by a device, cause the device to perform operations comprising:

generate, at the device, an original self-portrait image with an optical sensor of the device, the optical sensor directed at a face of a user of the device, the device being held at an arm length from the face of the user;

display, on a display of the device, a directional graphical user interface that includes an arrow that points to a direction guiding the user to move the device at the arm length about the face of the user within a limited range at a plurality of poses;

display, on the display of the device, a slider graphical user interface that enables the user to adjust a distance of a virtual selfie stick relative to the face of the user;

access, at the device, image data generated by the optical sensor at the plurality of poses;

generate a virtual selfie stick self-portrait image based on the distance of the virtual selfie stick, the original self-portrait image, and the image data;

partition the virtual selfie stick self-portrait image into an expanded area, a blocked area, and an interpolation area;

calculate pixels in the expanded area and the blocked area using a computer vision algorithm;

calculate pixels in the interpolation area using a scaling engine; and

in response to partitioning the virtual selfie stick self-portrait image into the expanded area, the blocked area, and the interpolation area, apply the computer vision algorithm only to the expanded area and the blocked area, and apply the scaling engine only to the interpolation area.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2022
From: ZHOU, KAI; MICUSIK, BRANISLAV
To: SNAP INC.
Reel/Frame 060337/0357 →
Continuity (1)
Related Publication 20230421717A1 · Dec 28, 2023
References Cited (9)
US 20110229024A1 · El-Maraghi · 2011 [cited by examiner]
US 20140354781A1 · Matsuyama · 2014 [cited by examiner]
US 20160110848A1 · Gray et al. · 2016 [cited by applicant]
US 20190197333A1 · Patankar · 2019 [cited by examiner]
US 20210344927A1 · Abbas · 2021 [cited by examiner]
US 20220358619A1 · Chen · 2022 [cited by examiner]
Zhang, Yun, Yu-Kun Lai, and Fang-Lue Zhang. “Content-preserving image stitching with regular boundary constraints.” arXiv preprint arXiv:1810.11220 (2018). (Year: 2018). [cited by examiner]
“International Application Serial No. PCT US2023 069064, International Search Report mailed Sep. 25, 2023”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT US2023 069064, Written Opinion mailed Sep. 25, 2023”, 5 pgs. [cited by applicant]