The disclosure herein generally relates to augmented reality, and more particularly to virtual try-on systems and methods for spectacles, three-dimensional (3D) glasses, augmented reality glasses, virtual reality glasses or headset, smart glasses, sports glasses, safety glasses, or a combination thereof.
The following includes information that may be useful in understanding the invention. It is not an admission that any of the information specifically or implicitly referenced herein is prior art, or essential, to the described or claimed invention.
Augmented reality (AR) applications have been developed in which virtual objects are digitally overlaid on images of real-world objects. In some cases, virtual objects such as gaming characters are added to images of a scene displayed by a smartphone or tablet as a user navigates the scene. In other cases, cartoon features such as cartoon animal facial features are added to an image of a face of a user of a smartphone or tablet, the image having been captured by the camera of the smartphone or tablet. However, in these conventional AR systems, the cartoonish, or unrealistic, nature of the virtual objects allows significant leeway in the accuracy of the size, shape, orientation, and placement of the virtual objects relative to the real-world objects.
The use of AR systems in the fashion industry provides potential opportunities for enhanced marketing campaigns, customer engagement and sales. However, existing AR systems, such as Virtual try-on (VTO) systems, provide inaccurate and unrealistic sizing and fit of accessories (such as spectacles) and/or clothing relative to customers' true sizes and proportions. As a result, such systems lead to increased consumer frustration, decreased use or reliance of such systems and, ultimately, revenue loss.
Thus, there is a need to create an improved VTO system that addresses at least the above-stated issues, and will improve the customers' experience thereto.
The invention described and claimed herein has many attributes and aspects including, but not limited to, those set forth or described or referenced in this Summary. It is not intended to be all-inclusive and the invention described and claimed herein are not limited to or by the features or embodiments identified in this Summary, which is included for purposes of illustration only and not restriction.
According to some aspects of the present disclosure, a computer-implemented method is provided. The computer-implemented method includes capturing, in a client device, a first image of a user, the first image including a reference token for a user-wearable item and displaying, in the client device, images of multiple user-wearable items for the user. The computer-implemented method also includes receiving an input from the user, the input indicative of a selected user-wearable item from the user-wearable items on display and segmenting the first image to separate the reference frame from a background comprising a portion of a physiognomy of the user. The computer-implemented method also includes replacing a segment of the reference frame in the first image with an image of the selected user-wearable item in a second image of the user and displaying, in the client device, the second image of the user.
According to some aspects of the present disclosure, a computer-implemented method is provided. The computer-implemented method includes receiving, from a client device, a first image of a user, the first image including a reference token for a user-wearable item and providing for display, to the client device, images of multiple user-wearable items for the user, stored in a database. The computer-implemented method also includes receiving an input from the user, the input indicative of a selected user-wearable item from the user-wearable items on display, providing for display, in the client device, a second image of the user, the second image having a segment of the reference token replaced with an image of the selected user-wearable item, and receiving, from the client device, a request for the selected user-wearable item.
According to some aspects of the present disclosure, a system is provided that includes a memory circuit storing instructions and a processor circuit configured to execute the instructions. When executing the instructions, the processor causes the system to capture, in a client device, a first image of a user, the first image including a reference token for a user-wearable item, and to display, in the client device, images of multiple user-wearable items for the user, to receive an input from the user, the input indicative of a selected user-wearable item from the user-wearable items on display. The processor also causes the system to segment the first image to separate the reference token from a background comprising a portion of a physiognomy of the user, to replace a segment of the reference token in the first image with an image for the selected user-wearable item in a second image of the user, and to display, in the client device, the second image of the user.
It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed embodiments and together with the description serve to explain the principles of the disclosed embodiments. The drawings are for illustration purposes only, show example non-limiting embodiments, and not necessarily drawn to scale. In the drawings:
In the figures, like elements and steps are labeled with like numeral references unless otherwise stated in the text.
In the following detailed description, numerous specific details are set forth to provide a full understanding of the present disclosure. It will be apparent, however, to one ordinarily skilled in the art, that the embodiments of the present disclosure may be practiced without some of these specific details. In other instances, well-known structures and techniques have not been shown in detail so as not to obscure the disclosure.
VTO systems and methods are disclosed herein. Virtual try-on systems and methods can be particularly useful for viewing how spectacles or spectacles frames would appear on the face of the user in the real world, without the user having access to the real-world spectacles or frames. In some embodiments, virtual reality (VR) displays include systems that display real images superimposed with artificially generated elements. However, it should also be appreciated that the systems and methods described herein can be applied for virtual try-on of other objects on other portions of the user's body, such as for virtual try-on of spectacles accessories, headwear, earrings, other body-piercing accessories, jewelry, clothing, or the like. Virtual try-on systems and methods as disclosed herein allow the user to visualize the way a particular real-world item would appear on the particular body of the user.
Many existing VTO solutions estimate the size of a user's face by assuming that all faces are the same size and scaling the virtual spectacle frames in proportion with the face. Thus, users with smaller- or larger-than-average heads may have the impression that a frame fits them when in reality it is too large or too small. This leads to consumer frustration when the user receives a pair of spectacles and finds out the spectacles do not look as desired, are uncomfortable, or simply do not fit the consumer. In some embodiments, a VTO system may request the user to pose with a reference object of a known size, with standardized dimensions (e.g., a credit card). For some users, this approach may seem uncomfortable or cumbersome. In some embodiments, a VTO system may use three-dimensional (3D) cameras to estimate the size of the user's face and scale the virtual glasses accordingly. However, 3D cameras may not be available for at least some users. In some scenarios, a VTO system may thus guess at how large to make a pair of virtual glasses relative to the facial features of a user in an image. This is because it is not straightforward to estimate the physical size of a user's facial features from an image, particularly when there is no scale reference in or for the image. Some VTO systems may assume that the user's head is an average size in order to determine the appropriate size of the virtual spectacles. However, an assumption of this type would generate unrealistic results for users who have heads that are smaller or larger than average.
Virtual Try-On (VTO) systems as disclosed herein use augmented reality to show a customer how a pair of spectacle frames will look on their face. Customers rely on VTO as disclosed herein to have an accurate sense of the frames' size relative to their face. In some embodiments, a VTO system as disclosed herein makes use of a reference spectacle frame provided to the customer beforehand. The customer puts on the reference frame and the VTO system superimposes a virtual frame, using the reference frame as a size reference.
Furthermore, without accurate three-dimensional information about a subject's head and facial features, a VTO system may improperly estimate the position and size of the spectacles on the subject's face. Accordingly, the use of typical features may show unrealistic results for potential customers, resulting in frustration and revenue loss.
To avoid an inaccurate rendition of a potential customer with spectacles, VTO systems as disclosed herein may request that the user inputs, to the VTO system, a first image of the user wearing a reference frame for a pair of spectacles. The reference frame for a pair of spectacles may include known dimensions. Accordingly, the first image may be used to accurately assess the dimensions and the relative distribution of a user's facial features.
In accordance with aspects of the subject disclosure, VTO systems and methods are provided that provide a realistic representation of the actual appearance of real-world spectacles on a user's face, using a captured image of a user's face wearing a reference frame for a pair of spectacles. Because the size of the user's face in the captured image is directly measured, the VTO systems and methods described herein can render a virtual representation of the spectacles in the correct relative size to the user's face. Accurate placement (e.g., positioning and/or orientation) of the virtual representation of the spectacles relative to the image of the user's face, as they would rest on the actual user's face, is described in further detail hereinafter. Moreover, some embodiments may further provide the ability for the user to try on multiple types, classes, and models of real-world spectacles, using the VTO application. For example, the user may try on tinted lenses, or gradient lenses, or frames having different colors, textures, and designs.
Embodiments as disclosed herein provide a technical solution to the technical problem of providing a remote rendition of an image of a user wearing a virtual pair of spectacles, prior to purchasing. Accordingly, embodiments as disclosed herein provide an enhanced use for a mobile computer device using the display as a virtual mirror to render an augmented reality image of the user wearing a desired pair of spectacles. Further, embodiments as disclosed herein make use of the technical advantage of broadband network computer technology to quickly render and adjust images in a time-sequence, to capture a user's natural movements and gestures while wearing the pair of spectacles. In some embodiments, a 3D model rendering tool may reside at least partially or fully within the application installed in the client device. By avoiding physically going to a store to try on a pair of spectacles, a VTO system as disclosed herein provides a significant commercial advantage for users and enhances sales capability and marketing reach out for vendors.
Through the use of a reference pair of spectacles, embodiments as disclosed herein achieve superior sizing accuracy relative to virtual try-on tools based on 2D imaging. Unlike yet other virtual try-on tools, it does not require a 3D camera, which makes the disclosed system available to a wider customer base. More generally, embodiments consistent with the present disclosure include the use of a reference frame or token for any other type of user-wearable item such as a wearable device, clothing, and the like. Accordingly, in some embodiments, a reference frame or token is provided to a potential customer. The customer takes an image of itself wearing the reference frame or token and an application in the mobile device displays for the user a virtual mirror image of the user with the wearable item. The user may strike a pose, change profiles, take pictures and videos from a different angle, and the application will return a realistic image or video of the user with the wearable item.
Although many examples provided herein describe a user's device or physical features as being identified and/or stored, each user may grant explicit permission for such user information to be collected, shared, and/or stored. The explicit permission may be granted using privacy controls integrated into the disclosed system. Each user may be provided notice that such user information will be stored with explicit consent, and each user may at any time end having the information stored, and may delete any stored user information. The stored user information may be encrypted to protect user security.
The user can at any time delete the user information from the memory circuit and/or opt out of having the user information stored in the memory circuit. Additionally, the user can, at any time, adjust appropriate privacy settings to selectively limit the types of user information stored in the memory circuit, or select the memory circuit in which the user information is stored (e.g., locally on the user's device as opposed to remotely on a server). The user information does not include and/or share the specific identification of the user (e.g., the user's name) unless otherwise specifically provided or directed by the user.
Third-party servers may include servers 130 that handle sales of the spectacles for which the three-dimensional representations are stored at database 152. Servers 130 may store three-dimensional representations of other objects that can be tried on using the try-on interface provided by other servers 130 and/or client devices 110 (e.g., by storing three-dimensional models of the other objects in database 152) and providing the three dimensional models to servers 130 and/or client devices 110.
Servers 130 can each be implemented with any device having an appropriate processor circuit, memory circuit, and communications capability for hosting a try-on interface and/or for storing three-dimensional models of spectacles or other objects. Client devices 110 can be, for example, desktop computers, mobile computers, tablet computers (e.g., including e-book readers), mobile electronic devices (e.g., a smartphone, tablet, or PDA), or any other devices having appropriate imaging (e.g., visible-light imaging and/or infrared imaging), illumination (e.g., visible light illumination and/or infrared light illumination), processor circuit, memory circuit, and communications capabilities for providing a virtual try-on interface. The network 150 can include, for example, any one or more of a local area network (LAN), a wide area network (WAN), the Internet, and the like. Further, the network 150 can include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like.
Server 130 includes a memory circuit 220-2, a processor circuit 212-2, and communications module 218-2. Processor circuit 212-2 is configured to execute instructions, such as instructions physically coded into processor circuit 212-2, instructions received from software in memory circuit 220-2, or a combination of both. Memory circuit 220-2 includes a virtual embedding engine 242 for integrating images, videos, and other multimedia files stored in a stock item database 252 into an augmented reality image or video in payload 225. Virtual embedding engine 242 may form a virtual image or video combining an image or video provided by application 222 with a suitably modified image from stock item database 252. Server 130 then provides payload 225 to a user of client device 110 that is a consumer of a retail store or chain of stores, or who desires to buy a user-wearable item online.
Virtual embedding engine 242 integrates payload 225 using a segmentation tool 244 and a geometric rendition tool 246. Segmentation tool 244 may include instructions to select or create a pixel mask indicative of a reference frame from pixels in an image provided by application 222.
Geometric rendition tool 246 may include a model to determine an orientation and a position of an object of known dimensions (e.g., a reference frame stored in reference frame database 252) in a three-dimensional space. In some embodiments, the model in geometric rendition tool 246 may include instructions to simulate multiple positions and orientations of the reference frame and selecting an orientation and position of the reference frame that best matches (or closely matches, within a threshold) a pixel mask provided by segmentation tool 244.
Application 322 may include several buttons, 320-1 (“Shop”), 320-2 (“Try-On”), 320-3 (“Locations”), 320-4 (“Account”), and 320-5 (“Cart,” hereinafter, collectively referred to as “buttons 320”). Shop button 320-1 may direct the user to a display as illustrated in the figure, wherein different stock items from a database (e.g., stock item database 252) are displayed for the user selection. Locations button 320-3 may direct the user to a map displaying different locations of stores where the user may find selected items for purchase. Account button 320-4 may direct the user to a personal account in the server hosting application 222 (e.g., server 130 sponsored by a store, a spectacle provider, a brand, a manufacturer, and the like). Cart button 320-5 may collect and store items selected by the user when Shop button 320-1 is activated.
Try-on button 320-2 directs the user to a VTO portal as disclosed herein. In the VTO portal, the user may try on a reference object and use client device 310 as a virtual mirror to see a realistic portrait of him/herself wearing a selected pair of spectacles, as disclosed herein.
In some embodiments, the user receives (by physical delivery such as mail, and the like) a reference frame before accessing application 322. The reference frame may be a physical object having similar size and shape as spectacle frame 415. In some embodiments, the reference frame may be distinctively colored. The user then takes an image of him/herself using client device 410 while wearing the reference frame. Accordingly, VTO portal 425 can easily segment the pixels corresponding to the reference frame from the pixels corresponding to the rest of the scene. For those pixels, VTO portal 425 then displays a virtual mirror image 435 that includes the color, shape, and other features of selected spectacle frame 415 instead of those of the reference frame. Accordingly, the user can virtually try on several different colorways.
In some embodiments, the reference frame may not be distinctively colored. In yet other embodiments, the reference frame may be a conventional spectacle frame of a specific color or combination of colors. VTO portal 425 then provides a virtual mirror image 435 where the color of the pixels corresponding to the reference frame are replaced by the color of selected spectacle frame 415.
In some embodiments, the frame of selected spectacle frame 415 may be the same as the reference frame, but the spectacle lenses may be different. Accordingly, VTO portal 425 (or the server hosting the portal) segments the spectacle lenses. Thus, virtual mirror image 435 includes spectacle lenses representing the user's desired type or style. To achieve this, a VTO system as disclosed herein alters the appearance of the pixels corresponding to the spectacle lenses to represent an alternative lens (e.g., tinted, sunglasses, polarized, plated, gradient color, and the like).
In some embodiments, the reference frame may not match the size or shape of selected spectacle frame 415. Instead, the reference frame, which may be a conventional spectacle frame or a purpose-designed reference frame, may serve as a size reference. The VTO system may thus assess the size and shape of a user's head/face (e.g., by creating a 3D model of the user's head), so as to accurately mount selected spectacle frame 415 on the user's face.
2D image 635 may be provided by the user wearing a reference frame 615r via a client device (e.g., client devices 110, 310, and 410), to a server. The server may process 2D image 635 with a virtual embedding engine having a segmentation tool and a geometric rendition tool 646, to generate 3D model 645. Accordingly, geometric rendition tool 646 may use landmark locations 610 where the user's head contacts reference frame 615r and a 3D model for reference frame 615r to ascertain size and shape of essential points in the user's head. Then, by selecting a 3D mesh that best fits landmark locations 610, geometric rendition tool 646 may generate 3D model 645. 3D model 645 may be used by the virtual embedding engine to provide a VTO system with a virtual image of the user, wearing a virtual pair of spectacles, shifting the head in different profiles and poses.
Step 702 includes capturing, in a client device, a first image of a user, the first image including a reference frame for a user-wearable item. In some embodiments, the user-wearable items may include a pair of spectacles, a piece of clothing (e.g., a hat), jewelry, makeup, and the like.
Step 704 includes displaying, in the client device, images of multiple user-wearable items for the user.
Step 706 includes receiving an input from the user, the input indicative of a selected user-wearable item from the user-wearable items on display.
Step 708 includes segmenting the first image to separate the reference token from a background comprising a portion of a physiognomy of the user. For example, in some embodiments the portion of the physiognomy of the user may include a face of the user, a head of the user, an arm, a leg, a wrist, a hand, a finger, and the like. In some embodiments, step 708 includes identifying reference token pixels in the first image, segmenting the reference token pixels, and replacing the color of the reference token pixels with a background color or with the color of the selected user-wearable item, depending on their location.
Step 710 includes replacing a segment of the reference token in the first image with an image of the selected user-wearable item in a second image of the user. In some embodiments, step 710 includes replacing reference token pixels with virtual object pixels, wherein the virtual token pixels are selected from a reference frame database and modified with respect to orientation and position by the geometric rendition tool. In some embodiments, step 710 includes determining an orientation and a position of reference token with a geometric rendition tool and an internal model. In some embodiments, step 710 includes forming an internal model of the reference token and simulating multiple positions and orientations of the reference token. In some embodiments, step 710 includes selecting one or more positions and orientations that best match (or better match within a threshold) to a mask provided by the segmentation tool in step 708. In some embodiments, once the position and orientation of the reference token is determined, step 710 includes positioning and orienting an image of the selected user-wearable item (e.g., virtual object) to match the reference token. In some embodiments, step 710 further comprises replacing the pixels in the pixel mask with the corresponding pixels from the selected user-wearable item.
Step 712 includes displaying, in the client device, the second image of the user.
Step 802 includes receiving, from a client device, a first image of a user, the first image including a reference token for a user-wearable item. In some embodiments, the user-wearable items may include a pair of spectacles, a piece of clothing (e.g., a hat), jewelry, makeup, and the like.
Step 804 includes providing for display, to the client device, images of multiple user-wearable items for the user stored in a database.
Step 806 includes receiving an input from the user, the input indicative of a selected user-wearable item from the pairs of spectacles on display.
Step 808 includes providing for display, in the client device, a second image of the user, the second image having a segment of the reference token replaced with an image of the selected user-wearable item. In some embodiments, step 808 further includes selecting a pixel in the first image based on an estimated position and orientation of a head of the user provided by a geometric rendition engine to identify the segment for the reference token. In some embodiments, step 808 further includes selecting multiple pixels from the first image and forming a mask to identify the segment of the reference token. In some embodiments, step 808 further includes determining an orientation and a position of the reference frame with a geometric rendition tool, and replacing the segment of the reference token in the first image with an image of a selected user-wearable item based on the orientation and the position of the reference token. In some embodiments, step 808 further includes positioning and orienting an image of the selected user-wearable item to match the reference token and to replace a segment of the reference token in the first image. In some embodiments, the reference token for a user-wearable item is a known object that fits on a portion of a physiognomy of the user. Accordingly, step 808 may include obtaining a model of a head of the user based on a two-dimensional projection of the known object in the first image, and superimposing a three dimensional model of the selected user-wearable item on the model of the head of the user.
Step 810 includes receiving, from the client device, a request for the selected user-wearable item.
Computer system 900 includes a bus 908 or other communication mechanism for communicating information, and a processor circuit 902 coupled with bus 908 for processing information. By way of example, the computer system 900 may be implemented with one or more processor circuits 902. Processor circuit 902 may be a general-purpose microprocessor circuit, a microcontroller, a Digital Signal Processor circuit (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information.
Computer system 900 can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor circuit firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them stored in an included memory circuit, such as a Random Access Memory circuit (RAM), a flash memory circuit, a Read-Only Memory circuit (ROM), a Programmable Read-Only Memory circuit (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device, coupled to bus 908 for storing information and instructions to be executed by processor circuit 902. The processor circuit 902 and the memory circuit 904 can be supplemented by, or incorporated in, special purpose logic circuitry.
The instructions may be stored in the memory circuit 904 and implemented in one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, the computer system 900, and according to any method well known to those of skill in the art, including, but not limited to, computer languages such as data-oriented languages (e.g., SQL, dBase), system languages (e.g., C, Objective-C, C++, Assembly), architectural languages (e.g., Java, .NET), and application languages (e.g., PHP, Ruby, Perl, Python). Instructions may also be implemented in computer languages such as array languages, aspect-oriented languages, assembly languages, authoring languages, command line interface languages, compiled languages, concurrent languages, curly-bracket languages, dataflow languages, data-structured languages, declarative languages, esoteric languages, extension languages, fourth-generation languages, functional languages, interactive mode languages, interpreted languages, iterative languages, list-based languages, little languages, logic-based languages, machine languages, macro languages, metaprogramming languages, multiparadigm languages, numerical analysis, non-English-based languages, object-oriented class-based languages, object-oriented prototype-based languages, off-side rule languages, procedural languages, reflective languages, rule-based languages, scripting languages, stack-based languages, synchronous languages, syntax handling languages, visual languages, wirth languages, and xml-based languages. Memory circuit 904 may also be used for storing temporary variable or other intermediate information during execution of instructions to be executed by processor circuit 902.
A computer program as discussed herein does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. The processes and logic flows described in this specification can be performed by one or more programmable processor circuits executing one or more computer programs to perform functions by operating on input data and generating output.
Computer system 900 further includes a data storage device 906 such as a magnetic disk or optical disk, coupled to bus 908 for storing information and instructions. Computer system 900 may be coupled via input/output module 910 to various devices. The input/output module 910 can be any input/output module. Exemplary input/output modules 910 include data ports such as USB ports. The input/output module 910 is configured to connect to a communications module 912. Exemplary communications modules 912 include networking interface cards, such as Ethernet cards and modems. In certain aspects, the input/output module 910 is configured to connect to a plurality of devices, such as an input device 914 and/or an output device 916. Exemplary input devices 914 include a keyboard and a pointing device (e.g., a mouse or a trackball), by which a user can provide input to the computer system 900. Other kinds of input devices 914 can be used to provide for interaction with a user as well, such as a tactile input device, visual input device, audio input device, or brain-computer interface device. For example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, tactile, or brain wave input. Exemplary output devices 916 include display devices, such as an LCD (liquid crystal display) or light-emitting diode (LED) display, for displaying information to the user.
According to one aspect of the present disclosure, user device 110 and servers 130 can be implemented using a computer system 900 in response to processor circuit 902 executing one or more sequences of one or more instructions contained in memory circuit 904. Such instructions may be read into memory circuit 904 from another machine-readable medium, such as data storage device 906. Execution of the sequences of instructions contained in main memory circuit 904 causes processor circuit 902 to perform the process steps described herein. One or more processor circuits in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory circuit 904. In alternative aspects, hard-wired circuitry may be used in place of or in combination with software instructions to implement various aspects of the present disclosure. Thus, aspects of the present disclosure are not limited to any specific combination of hardware circuitry and software.
Various aspects of the subject matter described in this specification can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). The communication network (e.g., network 150) can include, for example, any one or more of a LAN, a WAN, the Internet, and the like. Further, the communication network can include, but is not limited to, for example, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, or the like. The communications modules can be, for example, modems or Ethernet cards.
Computer system 900 can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Computer system 900 can be, for example, and without limitation, a desktop computer, laptop computer, or tablet computer. Computer system 900 can also be embedded in another device, for example, and without limitation, a mobile telephone, a PDA, a mobile audio player, a Global Positioning System (GPS) receiver, a video game console, and/or a television set top box.
The term “machine-readable storage medium” or “computer-readable medium” as used herein refers to any medium or media that participates in providing instructions to processor circuit 902 for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as data storage device 906. Volatile media include dynamic memory circuit, such as memory circuit 904. Transmission media include coaxial cables, copper wire, and fiber optics, including the wires that comprise bus 908. Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EPROM, any other memory circuit chip or cartridge, or any other medium from which a computer can read. The machine-readable storage medium can be a machine-readable storage device, a machine-readable storage substrate, a memory circuit device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
As used herein, the phrase “at least one of” preceding a series of items, with the terms “and” or “or” to separate any of the items, modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase “at least one of” does not require selection of at least one item; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items, and/or at least one of each of the items. By way of example, the phrases “at least one of A, B, and C” or “at least one of A, B, or C” each refer to only A, only B, or only C; any combination of A, B, and C; and/or at least one of each of A, B, and C.
To the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
A reference to an element in the singular is not intended to mean “one and only one” unless specifically stated, but rather “one or more.” All structural and functional equivalents to the elements of the various configurations described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and intended to be encompassed by the subject technology. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the above description.
While this specification contains many specifics, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of particular implementations of the subject matter. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
The subject matter of this specification has been described in terms of particular aspects, but other aspects can be implemented and are within the scope of the following claims. For example, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. The actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the aspects described above should not be understood as requiring such separation in all aspects, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. Other variations are within the scope of the following claims.
This application claims priority in and to U.S. Provisional Application No. 63/010,421, filed Apr. 15, 2020, the content of which is hereby incorporated by reference herein in its entirety. All publications, patents and/or patent applications referred to herein are incorporated by reference in their entirety to the same extent as if each individual publication, patent or patent application was specifically and individually indicated to be incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
2818775 | Ullrich | Jan 1956 | A |
4007990 | McDevitt, Jr. et al. | Feb 1977 | A |
4070115 | Humphrey | Jan 1978 | A |
4090790 | Dragon et al. | May 1978 | A |
4779979 | Iwane | Oct 1988 | A |
5247341 | Kurachi et al. | Sep 1993 | A |
5307141 | Fujieda | Apr 1994 | A |
5379111 | Kajino et al. | Jan 1995 | A |
5414505 | Ikezawa et al. | May 1995 | A |
5489978 | Okumura et al. | Feb 1996 | A |
5521700 | Kajino et al. | May 1996 | A |
5621564 | Kageyama et al. | Apr 1997 | A |
5657710 | Foster et al. | Aug 1997 | A |
5682234 | Kajino | Oct 1997 | A |
5684576 | Kajino et al. | Nov 1997 | A |
5855074 | Abitbol et al. | Jun 1999 | A |
6056633 | Seseña et al. | May 2000 | A |
6496253 | Vokhmin | Dec 2002 | B1 |
6621564 | Akiyama et al. | Sep 2003 | B2 |
6657710 | Kajino et al. | Dec 2003 | B2 |
6972837 | Kajino | Dec 2005 | B2 |
7016824 | Waupotitsch et al. | Mar 2006 | B2 |
7209224 | Kajino | Apr 2007 | B2 |
7245362 | Kobayashi et al. | Jul 2007 | B2 |
7609371 | Kajino | Oct 2009 | B2 |
7733468 | Kajino | Jun 2010 | B2 |
7742158 | Divo et al. | Jun 2010 | B2 |
8564645 | Suzuki | Oct 2013 | B2 |
8789945 | Suzaki et al. | Jul 2014 | B2 |
9019458 | Kim et al. | Apr 2015 | B2 |
9228920 | Blonde et al. | Jan 2016 | B2 |
9357204 | Dehais et al. | May 2016 | B2 |
9549669 | Limon | Jan 2017 | B2 |
9778136 | Suzuki et al. | Oct 2017 | B2 |
9892561 | Choukroun et al. | Feb 2018 | B2 |
9990780 | Kornilov et al. | Jun 2018 | B2 |
10036685 | Goldberg et al. | Jul 2018 | B2 |
10321820 | Gollier et al. | Jun 2019 | B1 |
10330566 | Hofmann et al. | Jun 2019 | B2 |
10825260 | Goldberg et al. | Nov 2020 | B2 |
20050190264 | Neal | Sep 2005 | A1 |
20100283844 | Sayag | Nov 2010 | A1 |
20110071804 | Xie | Mar 2011 | A1 |
20120105799 | Stewart | May 2012 | A1 |
20130088490 | Rasmussen et al. | Apr 2013 | A1 |
20130321412 | Coon et al. | Dec 2013 | A1 |
20130335416 | Coon et al. | Dec 2013 | A1 |
20150055085 | Fonte et al. | Feb 2015 | A1 |
20150178936 | Boisson et al. | Jun 2015 | A1 |
20150293382 | Jethmalani | Oct 2015 | A1 |
20150324951 | Coon et al. | Nov 2015 | A1 |
20160180419 | Adeyoola | Jun 2016 | A1 |
20160223429 | Fecnher et al. | Aug 2016 | A1 |
20160246078 | Choukroun et al. | Aug 2016 | A1 |
20160269645 | Khoe et al. | Sep 2016 | A1 |
20170076523 | Rumble et al. | Mar 2017 | A1 |
20170079523 | Limon | Mar 2017 | A1 |
20170322110 | Conrad et al. | Nov 2017 | A1 |
20180096537 | Kornilov et al. | Apr 2018 | A1 |
20180120198 | Glasenapp et al. | May 2018 | A1 |
20180164610 | Liang | Jun 2018 | A1 |
20180224675 | Gueu et al. | Aug 2018 | A1 |
20180268458 | Popa et al. | Sep 2018 | A1 |
20180336737 | Varady et al. | Nov 2018 | A1 |
20190072455 | Limon et al. | Mar 2019 | A1 |
20190102608 | Wang et al. | Apr 2019 | A1 |
20190164341 | Venkataraman | May 2019 | A1 |
20190221191 | Chhipa | Jul 2019 | A1 |
20190225186 | Szawarski et al. | Jul 2019 | A1 |
Number | Date | Country |
---|---|---|
19632829 | Mar 1997 | DE |
102007057260 | Jun 2009 | DE |
0558015 | Jan 1993 | EP |
1042954 | Sep 1966 | GB |
2002-108196 | Apr 2002 | JP |
201601066 | Jan 2016 | TW |
201241781 | Oct 2016 | TW |
WO 2016076530 | May 2016 | WO |
WO 2016181308 | Nov 2016 | WO |
WO 2016181309 | Nov 2016 | WO |
WO 2016181310 | Nov 2016 | WO |
WO 2017125902 | Jul 2017 | WO |
WO-2018191784 | Oct 2018 | WO |
WO 2018220203 | Dec 2018 | WO |
Entry |
---|
Mar. 23, 2021 Examination Report No. 1 for Standard Patent issued by the Australian Patent Office for Australian Patent Application No. 2019419376. |
“Collision detection in physical simulation,” Wikipedia, https://en.wikipedia.org/wiki/Collision_detection (retrieved Apr. 8, 2019), 6 pages. |
“Binary search algorithm,” Wikipedia, https://en.wikipedia.org/wiki/Binary_search_algorithm (retrieved Apr. 8, 2019) 10 pages. |
Cardinal, D., “How Apple's iPhone X TrueDepth Camera Works,” Extreme Tech http//www.extremetech.com/mobile/255771-apple-iphone-x-truedepth-camera (2017) 5 pages. |
“3D Facial Norms Technical Notes,” FaceBase, https://www.facebase.org/facial_norms/notes (retrieved Apr. 8, 2019), 29 pages. |
Jun. 30, 2021 PCT Notification of the Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the declaration for International PCT Application No. PCT/US21/26569. |
Jul. 8, 2021 Office Action issued by the Intellectual Property Office of Taiwan for Taiwanese Patent Application No. 109100106. [English translation included]. |
Jun. 16, 2021 International Preliminary Report on Patentability and the Written Opinion of the International Searching Authority for International PCT Application No. PCT/US2019/068200. |
Nov. 23, 2020 PCT Notification of the Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the declaration for International PCT Application No. PCT/US20/47757. |
Sep. 9, 2021 Notice of Reason for Rejection issued by the Japanese Patent Office for Japanese Patent Application No. 2021-512526. [English translation included]. |
Sep. 16, 2021 Notice of Preliminary Rejection issued by the Korean Intellectual Property Office for Korean Patent Application No. 2021-7006780. [w/English translation ]. |
Jan. 22, 2020 PCT International Search Report and Written Opinion of the International Searching Authority for PCT International Application No. PCT/US2019/056827. |
Aug. 11, 2017 PCT International Search Report and Written Opinion of the International Searching Authority for PCT International Application No. PCT/US2017/033064. |
Number | Date | Country | |
---|---|---|---|
20210327148 A1 | Oct 2021 | US |
Number | Date | Country | |
---|---|---|---|
63010421 | Apr 2020 | US |