Fitting of glasses frames including live fitting
AssigneeDitto Technologies, Inc.
InventorsCliff Mercer, Ebube Anizor, Tenzile Berkin Cilingiroglu, Trevor Noel Howarth
Life of this patent
Estimating the term…
Abstract
In various embodiments, a process for trying on glasses includes determining an event associated with updating a current model of a user's face. In response to the event, using a set of historical recorded frames of the user's face to update the current model of the user's face. The process includes obtaining a newly recorded frame of the user's face, using the current model of the user's face to generate a corresponding image of a glasses frame, and presenting the image of the glasses frame over the newly recorded frame of the user's face.
Claims22
A system, comprising:
- a processor configured to:
- determine an event associated with updating a current model of a user's face;
- in response to the event, use a set of historical recorded frames of the user's face to update the current model of the user's face;
- obtain a newly recorded frame of the user's face;
- use the current model of the user's face to generate a corresponding image of a glasses frame;
- determine a set of computed bridge points, wherein determining the set of computed bridge points comprises:
- determining a face normal vector using at least three points from the current model of the user's face;
- determining a bridge shift value based on two internal eyebrow points and two internal eye corners from the current model of the user's face;
- and
- determining the set of computed bridge points based on the face normal vector and the bridge shift value;
- present the image of the glasses frame over the newly recorded frame of the user's face in an initial placement based on the set of computed bridge points;
- and
- modify the initial placement of the glasses frame over the newly recorded frame of the user's face based on a determined set of morphed nose curve points, the morphed nose curve points determined by moving a predetermined set of points along a nose curve of a generic face model to match corresponding locations on the current model of the user's face;
- and
- a memory coupled to the processor and configured to provide the processor with instructions.
A system, comprising:
- a processor configured to:
- obtain a set of images of a user's head;
- determine an initial orientation of the user's head;
- obtain an initial model of the user's head;
- transform the initial model of the user's head corresponding to the initial orientation;
- receive a user selection of a glasses frame;
- determine a set of computed bridge points;
- determine a vertical shift;
- adjust the set of computed bridge points based on the vertical shift;
- combine the transformed model of the user's head with a model of the glasses frame based on the adjusted set of computed bridge points, the computed bridge points determined by determining a normal set of bridge points of a generic face model and adjusting a vertex of the bridge points to match corresponding locations on the current model of the user's head;
- generate a set of points in 3D by selecting vertices on the initial model;
- generate a nose curve by fitting a plane to the set of points in 3D;
- adjust the combination of the transformed model of the user's head with the model of the glasses frame based on the nose curve;
- generate an image of the glasses frame based at least in part on the combination of the transformed model of the user's head with the model of the glasses frame;
- and
- provide a presentation including by overlaying the image of the glasses frame over at least one image of the set of images of the user's head;
- and
- a memory coupled to the processor and configured to provide the processor with instructions.
A system, comprising:
- a processor configured to:
- receive one or more RGB images, one or more depth sensor images, pose information, and camera intrinsics;
- for each point in each depth sensor image, use camera intrinsics to generate a 3D point in real life scale;
- use pose information to merge 3D points from images into a point cloud with real life scale;
- use historical head scans from storage to generate a 3D head model with real life scale that matches the shape of the point cloud;
- determine a set of computed bridge points, wherein determining the set of computed bridge points comprises:
- determining a face normal vector using at least three points from the 3D head model;
- determining a bridge shift value based on two internal eyebrow points and two internal eye corners from the 3D head model;
- and
- determining the set of computed bridge points based on the face normal vector and the bridge shift value;
- use the generated 3D head model and the set of computed bridge points to generate an initial corresponding image of a glasses frame;
- and
- modify the initial corresponding image of the glasses frame based on a determined set of morphed nose curve points, the morphed nose curve points determined by moving a predetermined set of points along a nose curve of a generic face model to match corresponding locations on the 3D head model;
- and
- a memory coupled to the processor and configured to provide the processor with instructions.
A method, comprising:
- determining an event associated with updating a current model of a user's face;
- in response to the event, using a set of historical recorded frames of the user's face to update the current model of the user's face;
- obtaining a newly recorded frame of the user's face;
- using the current model of the user's face to generate a corresponding image of a glasses frame;
- determining a set of computed bridge points, wherein determining the set of computed bridge points comprises:
- determining a face normal vector using at least three points from the current model of the user's face;
- determining a bridge shift value based on two internal eyebrow points and two internal eye corners from the current model of the user's face;
- and
- determining the set of computed bridge points based on the face normal vector and the bridge shift value;
- presenting the image of the glasses frame in an initial position over the newly recorded frame of the user's face based on the set of computed bridge points;
- and
- modifying the presented image of the glasses frame over the newly recorded frame of the user's face from the initial position based on a determined set of morphed nose curve points, the morphed nose curve points determined by moving a predetermined set of points along a nose curve of a generic face model to match corresponding locations on the current model of the user's face.
A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:
- determining an event associated with updating a current model of a user's face;
- in response to the event, using a set of historical recorded frames of the user's face to update the current model of the user's face;
- obtaining a newly recorded frame of the user's face;
- using the current model of the user's face to generate a corresponding image of a glasses frame;
- determining a set of computed bridge points, wherein determining the set of computed bridge points comprises:
- determining a face normal vector using at least three points from the current model of the user's face;
- determining a bridge shift value based on two internal eyebrow points and two internal eye corners from the current model of the user's face;
- and
- determining the set of computed bridge points based on the face normal vector and the bridge shift value;
- and
- presenting the image of the glasses frame in an initial position over the newly recorded frame of the user's face based on the set of computed bridge points;
- and
- modifying the presented image of the glasses frame over the newly recorded frame of the user's face from the initial position based on a determined set of morphed nose curve points, the morphed nose curve points determined by moving a predetermined set of points along a nose curve of a generic face model to match corresponding locations on the current model of the user's face.
Dependencies are inferred from the claim text.