Technology for virtually trying on items
Realistic virtual try-on techniques for items like jewelry and clothing address unrealistic presentations in current technologies, reducing purchase rejections and returns, and maintaining merchant reputation.
Patent Information
- Application Number
- JP2022575202
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-06-05
- Filing Date
- 2021-06-04
- Publication Date
- 2025-09-11
- Estimated Expiration
- 2041-06-04
AI Technical Summary
Current virtual try-on technologies for items like jewelry and clothing provide unrealistic presentations, leading to potential purchase rejections, increased return rates, and damage to merchant reputation.
Techniques for virtually trying on items that enhance realism through dynamic rotation angles, hidden/unhidden areas, magnetic/reflective effects, and user interactions, applicable across various form factors and objects.
Enhances the virtual try-on experience, reducing purchase rejections and returns, and maintaining merchant reputation by providing a more realistic simulation.
Smart Images

Figure 0007738014000002 
Figure 0007738014000003 
Figure 0007738014000004
Abstract
Description
[Technical Field]
[0001] [Cross-reference to related patent applications] This patent application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 035,346, filed June 5, 2020, which is incorporated herein by reference for all purposes.
[0002] The present disclosure relates to various techniques for virtually trying on items. [Background technology]
[0003] Merchants may allow potential customers to virtually try on items (e.g., earrings) before purchasing the item. However, various currently known techniques for providing such functionality are technically problematic because, at least in part, their unrealistic presentation of the item can (a) exclude the item from purchase, (b) increase the likelihood of item return after purchase, and (c) potentially damage the reputation of the merchant or manufacturer of the item. Summary of the Invention [Means for solving the problem]
[0004] Broadly speaking, the present disclosure enables various techniques for virtually trying on items (e.g., jewelry, earrings, clothing) in a more realistic manner than currently known approaches to providing such functionality. For example, some of these techniques include various user interfaces (UIs) programmed to enable various virtual try-on attempts based on (a) the appearance of varying rotation angles of an item depending on the location where the item is virtually tried on, various configurations of the object on which the item is virtually tried on, the item itself, or in response to various user inputs, (b) dynamically hiding or unhiding various areas of an item depending on what type of item is being virtually tried on, (c) the location where the item is virtually tried on, and (d) enabling various magnetic, reflective, or shading effects on, relative to, or relative to the item depending on the location where the item is virtually tried on, various configurations of the object on which the item is virtually tried on, the item itself, or in response to various user inputs or other functions. These virtual try-on modalities (a) can be combined with or dependent on each other, (b) can be separate, distinct, or independent of each other, and (c) can be embodied through or on various form factors (e.g., server, client, smartphone, tablet, wearable, smart mirror, OS, software application, browser, mobile app). Note that these technologies can be applied to virtually try on various items (e.g., jewelry, earrings, necklaces, clothing, hats, rings, anklets, bracelets, tattoos) on various objects (e.g., humans, mannequins, showcase models, body parts, heads, noses, ears, necks, arms, forearms, upper arms, wrists, torsos, navels, toes, fingers, clothing, shoes).
[0005] In one embodiment, a system is provided that includes a processor programmed to cause a UI to be presented, the UI being programmed to: present a virtual ear (or another virtual object) in a frontal orientation within the UI; receive, while the virtual ear is presented in the UI in a frontal orientation, a first user selection selecting a virtual earring (or another virtual item) to be presented in the UI while the virtual ear is presented in the UI in a frontal orientation; receive, while the virtual ear is presented in the UI in a frontal orientation, a second user selection selecting a virtual location on the virtual ear presented in the UI in a frontal orientation within the UI; and in response to receiving the first user selection via the UI and the second user selection via the UI, virtually try-on the virtual earring at the virtual location within the UI such that the virtual earring appears to change rotational angles in the UI depending on where the virtual location is located on the virtual ear in the UI.
[0006] In one embodiment, a system is provided that includes a processor programmed to cause a UI to be presented, the system being programmed to: present a virtual ear (or another virtual object) in the UI in a frontal orientation; present a virtual earring (or another virtual item) in the UI while the virtual ear is presented in the UI in a frontal orientation; receive a drag and drop input in the UI while the virtual ear is presented in the UI in a frontal orientation; and present the virtual earring in the UI in such a way that (a) the drag and drop input allows the virtual earring to be virtually tried on the virtual ear in the UI in response to the drag and drop input by dragging the virtual earring onto the virtual ear; (b) the virtual earring appears to change rotation angle in the UI depending on where the virtual earring is virtually tried on on the virtual ear in the UI in response to the drag and drop input; and (c) the virtual earring appears to be at least partially dynamically hidden and at least partially dynamically unhidden depending on where the virtual earring is virtually tried on on the virtual ear in the UI in response to the drag and drop input.
[0007] In one embodiment, a system includes a processor programmed to cause a UI to be presented, the UI presenting a virtual ear (or another virtual object) in a frontal orientation within the UI, the virtual ear including a set of virtual depth areas; receiving, while the virtual ear is presented in the UI in a frontal orientation, a first user selection selecting a virtual earring (or another virtual item) including a set of virtual portions that is presented in the UI while the virtual ear is presented in the UI in a frontal orientation; receiving, while the virtual ear is presented in the UI in a frontal orientation, a second user selection selecting a virtual location on the virtual ear that is presented in the UI in a frontal orientation; and receiving the first user selection via the UI. In response to receiving a second user selection via the UI, a system is provided that is programmed to virtually try on virtual earrings at a virtual location within the UI such that at least one virtual portion selected from the virtual portion set is dynamically obscured and visible below at least one virtual depth area selected from the virtual depth area set when the virtual location is in the at least one virtual depth area selected from the virtual depth area set, and such that at least one virtual portion selected from the virtual portion set is dynamically obscured and visible below at least one virtual depth area selected from the virtual depth area set when the virtual location is not in the at least one virtual depth area selected from the virtual depth area set.
[0008] In one embodiment, a system is provided that includes a processor programmed to cause a UI to be presented, the UI presenting a virtual ear (or another virtual object) in a frontal orientation within the UI, the virtual ear including a first virtual edge and virtual skin; while the virtual ear is presented in the UI in a frontal orientation, receiving a first user selection of a virtual earring (or another virtual item) including a second virtual edge that is presented in the UI while the virtual ear is presented in the UI in a frontal orientation; while the virtual ear is presented in the UI in a frontal orientation, receiving a second user selection of a virtual location on the virtual ear that is presented in the UI in a frontal orientation; and in response to receiving the first user selection via the UI and the second user selection via the UI, virtually try-on the virtual earring at a virtual location within the UI, based on availability of virtual space between the first virtual edge and the second virtual edge, in response to the virtual earring, such that the virtual earring appears to virtually gravitationally fall relative to the virtual ear until it appears to virtually contact the virtual skin in the UI.
[0009] In one embodiment, a system is provided that includes a processor programmed to cause a UI to be presented, the UI presenting a virtual ear (or another virtual object) including a virtual skin tone in a frontal orientation; receiving, while the virtual ear is presented in the UI in a frontal orientation, a first user selection selecting a virtual earring (or another virtual item) presented in the UI while the virtual ear is presented in the UI in a frontal orientation; and receiving, while the virtual ear is presented in the UI in a frontal orientation, a second user selection selecting a virtual location on the virtual ear presented in the UI in a frontal orientation; and in response to receiving the first user selection via the UI and the second user selection via the UI, the system is programmed to virtually try on the virtual earring at the virtual location in the UI such that at least one of: (a) there is an appearance of a virtual reflection of the virtual skin tone on the virtual earring in the UI, the virtual reflection varying based on the virtual skin tone; or (b) there is an appearance of a virtual shadow of the virtual earring on the virtual ear in the UI, the virtual shadow varying based on the virtual skin tone.
[0010] In one embodiment, a system includes a processor programmed to cause a UI to be presented, the UI presenting a user input element within the UI programmed to receive user input; presenting a virtual ear (or another virtual object) including a virtual skin area in a frontal orientation while the user input element is presented within the UI; receiving a first user selection, while the virtual ear is presented in the UI in a frontal orientation, selecting a virtual earring (or another virtual item) to be presented within the UI while the virtual ear is presented in the UI in a frontal orientation; receiving a second user selection, while the virtual ear is presented in the UI in a frontal orientation, selecting a virtual location spaced apart from the virtual skin area on the virtual ear presented in the UI in a frontal orientation; receiving the first user selection via the UI and the second user selection via the UI. In response to receiving a user selection, the system is programmed to virtually try on the virtual earring at the virtual location within the UI such that (a) the virtual earring appears to spin in response to user input while being virtually tried on at the virtual location, and (b) based on the virtual earring appearing to be virtually anatomically tucked within the virtual ear, the virtual earring appears to be at least partially dynamically hidden in response to user input while being virtually tried on at the virtual location, and based on the virtual earring appearing to be virtually anatomically untucked within the virtual ear, the virtual earring appears to be dynamically unhidden in response to user input while being virtually tried on at the virtual location.
[0011] In one embodiment, a system is provided that includes a processor programmed to receive an image of a user's ear (or another virtual object) presented in a frontal orientation in an image, identify sets of virtual anatomical regions of the ear presented in a frontal orientation in the image, segment each selected set from the sets of virtual anatomical regions into sets of virtual regions, and enable a user to virtually try on virtual earrings on the ear presented in a frontal orientation in the image based on the sets of virtual anatomical regions and the sets of virtual regions, such that the virtual earrings (or another virtual item) dynamically change appearance depending on where on the ear presented in a frontal orientation in the image the virtual earrings are virtually tried on.
[0012] In one embodiment, a system is provided that includes a processor that is programmed to receive an image of a user's ear (or another virtual object) presented frontally in an image, identify a virtual piercing hole in the ear presented frontally in the image, identify a scale of the ear presented frontally in the image, and present visual content to the user recommending virtual earrings (or another virtual item) to be virtually tried on the ear presented frontally in the image based on a) where the virtual piercing hole is located in the ear presented frontally in the image and (b) the scale.
[0013] In one embodiment, a system includes a smart mirror including a housing, a processor, a camera, and a display, the housing containing the processor, the camera, and the display, the processor communicating with the camera and the display, the processor receiving from the camera a left image presenting a front-facing left ear (or another virtual object) of a user standing in front of the camera and a right image presenting a front-facing right ear (or another virtual object) of a user standing in front of the camera, identifying a virtual left ear from the front-facing presented left ear in the left image, identifying a virtual right ear from the right ear in the right image, setting the virtual left ear to a left preset scale, setting the virtual right ear to a right preset scale, and setting the virtual left ear to a right preset scale. A system is provided that is programmed to identify a set of left virtual anatomical regions in the virtual left ear and a set of right virtual anatomical regions in the virtual right ear set to a right preset scale, segment each set selected from the left virtual anatomical region set into a left virtual region set, segment each set selected from the right virtual anatomical region set into a right virtual region set, simultaneously present the virtual left ear, virtual right ear, and virtual earring (or another virtual item) scales on a display, receive input from a user while the virtual left ear, virtual right ear, and virtual earring are simultaneously presented on the display, and virtually try on the virtual earring on the virtual left ear or virtual right ear in response to the input.
[0014] In one embodiment, a system is provided that includes a processor programmed to: access a map of a virtual object, wherein the map of the virtual object segments the virtual object into a set of virtual regions, and segments each virtual region selected from the set of virtual regions into a set of virtual zones that are polygonal and adjacent to each other within the respective virtual region; access a set of images that depict a virtual item from a set of different rotation angles; receive a first user selection of a virtual item; receive a second user selection of a virtual zone selected from the set of virtual zones and located within the virtual region selected from the set of virtual regions; based on the second user selection, select an image from the set of images that corresponds to the virtual zone selected and located within the virtual region; and virtually try-on the virtual item on the virtual object based on the selected image in response to the first user selection and the second user selection. [Brief explanation of the drawings]
[0015] [Figure 1] 1 illustrates an embodiment of a UI programmed to virtually try on virtual earrings, in accordance with various principles of the present disclosure. [Figure 2] 2 illustrates an embodiment of a flowchart for accessing the UI of FIG. 1 in accordance with various principles of the present disclosure. [Figure 3] 2 illustrates an embodiment of a computing architecture that implements the UI of FIG. 1 in accordance with various principles of the present disclosure. [Figure 4] 2 illustrates the UI of FIG. 1 with virtual earrings dragged and dropped for virtual try-on in accordance with various principles of the present disclosure. [Figure 5] FIG. 1 illustrates an embodiment of a virtual ear segmented into a set of virtual anatomical regions, in accordance with various principles of the present disclosure. [Figure 6] FIG. 1 illustrates an embodiment of a virtual ear segmented into a set of virtual zones, in accordance with various principles of the present disclosure. [Figure 7]FIG. 1 illustrates an embodiment of a virtual ear segmented into a set of anatomical regions and a set of virtual zones within the set of anatomical regions, in accordance with various principles of the present disclosure. [Figure 8] 10A-10C illustrate embodiments of virtual earrings that appear to rotate in the XZ plane in accordance with various principles of the present disclosure. [Figure 9] 10A-10C illustrate embodiments of imaginary planes for earring rotation in accordance with various principles of the present disclosure. [Figure 10] 10A-10C illustrate embodiments of sets of virtual zones corresponding to sets of angles for rotating a virtual studded earring, in accordance with various principles of the present disclosure. [Figure 11] 10A-10C illustrate embodiments of sets of virtual zones corresponding to sets of angles for rotating a virtual earring with a ring, in accordance with various principles of the present disclosure. [Figure 12] 10A-10C illustrate embodiments of sets of virtual zones corresponding to sets of angles for rotating a virtual earring with a die ring in accordance with various principles of the present disclosure. [Figure 13] 10A-10C illustrate embodiments of virtual earrings having different sets of rotation angles in accordance with various principles of the present disclosure. [Figure 14] 8 illustrates an embodiment of a portion of a UI programmed to map a virtual earring to an anatomical region selected from the set of anatomical regions of FIGS. 5-7, in accordance with various principles of the present disclosure. [Figure 15] FIG. 1 illustrates an embodiment of a flow chart for enabling magnetic effects in accordance with various principles of the present disclosure. [Figure 16] FIG. 1 illustrates an embodiment of a virtual ear segmented into a set of layers, in accordance with various principles of the present disclosure. [Figure 17] 1 illustrates an embodiment of a layer set for a virtual ear in accordance with various principles of the present disclosure. [Figure 18] 1A-1C illustrate embodiments of a virtual ear without and with a tacking effect during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 19]10A-10C illustrate embodiments of virtual gravity effects applied to virtual earrings being virtually tried on virtual ears in accordance with various principles of the present disclosure. [Figure 20] 10A-10C illustrate embodiments of virtual ear sizes relative to ratios, in accordance with various principles of the present disclosure. [Figure 21] FIG. 10 illustrates an embodiment of a flowchart for resizing an image of an ear for subsequent use, in accordance with various principles of the present disclosure. [Figure 22] 10A-10C illustrate embodiments of virtual earrings being virtually tried on with and without drop shadows during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 23] 1 illustrates an embodiment of virtual earrings being virtually tried on as not recommended or possible (although possible) during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 24] 1 illustrates an embodiment of virtual earrings that are virtually tried on as recommended or possible during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 25] 1A-1C illustrate embodiments of virtual ears shown as left and right ears during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 26] 1 illustrates an embodiment of a virtual ear that is zoomed during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 27] 1 illustrates an embodiment of a virtual ear that is zoomed during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 28] 10A-10C illustrate embodiments of virtual ears that are panned or moved during a virtual try-on, in accordance with various principles of the present disclosure. [Figure 29] 10A-10C illustrate embodiments of virtual earrings that spin relative to the virtual ear in response to user input regarding the virtual ear during virtual try-on, in accordance with various principles of the present disclosure. [Figure 30] 1A-1C illustrate embodiments of a virtual ear in which virtual skin tones change during virtual try-on, in accordance with various principles of the present disclosure. [Figure 31]10 is an embodiment showing various sets of images presenting various sets of virtual earrings from various sets of different rotation angles in accordance with various principles of the present disclosure. [Figure 32] 10 is an embodiment showing various sets of images presenting various sets of virtual earrings from various sets of different rotation angles in accordance with various principles of the present disclosure. [Figure 33] 10 is an embodiment showing various sets of images presenting various sets of virtual earrings from various sets of different rotation angles in accordance with various principles of the present disclosure. [Figure 34] 1 illustrates an embodiment of a virtual ear segmented by anatomical region in accordance with various principles of the present disclosure. [Figure 35] 10A-10C illustrate embodiments of planes for rotation of a virtual earring in accordance with various principles of the present disclosure. [Figure 36] FIG. 10 illustrates an embodiment of a virtual ear segmented by different zone sets within different anatomical region sets, each anatomical region having its own respective rotation angle for each virtual zone set, in accordance with various principles of the present disclosure, in which virtual earrings can be virtually tried on. [Figure 37] 10A-10C illustrate various embodiments of virtual earrings virtually tried on virtual ears, angled according to which anatomical zone receives each respective virtual earring, in accordance with various principles of the present disclosure. [Figure 38] 10A-10C illustrate embodiments of virtual earrings that spin relative to the virtual ear in response to user input with respect to the virtual ear, in accordance with various principles of the present disclosure. [Figure 39] 10A-10C illustrate embodiments of virtual earrings that spin relative to the virtual ear in response to user input with respect to the virtual ear, in accordance with various principles of the present disclosure. [Figure 40] 10A-10C illustrate embodiments of virtual earrings that spin relative to the virtual ear in response to user input with respect to the virtual ear, in accordance with various principles of the present disclosure. [Figure 41]10A-10C illustrate embodiments of virtual earrings with overlapping studs in accordance with various principles of the present disclosure. [Figure 42] 10A-10C illustrate embodiments of virtual earrings with overlapping studs in accordance with various principles of the present disclosure. [Figure 43] 1 illustrates an embodiment of a virtual ear segmented with different zone sets in different anatomical regions programmed for rotation of a virtual earring with a ring according to various principles of the present disclosure. [Figure 44] 1 illustrates an embodiment of a virtual gravity effect implemented in a virtual earring that is virtually tried on a virtual ear, in accordance with various principles of the present disclosure. [Figure 45] 10A-10C illustrate embodiments of images from an image set corresponding to virtual earrings being virtually tried on to a virtual ear while an administrator configures the images within a virtual try-on administrator console or panel according to a set of anatomical regions of the virtual ear and a set of virtual zones of the virtual ear, as well as a virtual entry point or a virtual exit point from the virtual ear, in accordance with various principles of the present disclosure. [Figure 46] 10A-10C illustrate embodiments of images from an image set corresponding to virtual earrings being virtually tried on to a virtual ear while an administrator configures the images within a virtual try-on administrator console or panel according to a set of anatomical regions of the virtual ear and a set of virtual zones of the virtual ear, as well as a virtual entry point or a virtual exit point from the virtual ear, in accordance with various principles of the present disclosure. [Figure 47] 10A-10C illustrate embodiments of images from an image set corresponding to virtual earrings being virtually tried on to a virtual ear while an administrator configures the images within a virtual try-on administrator console or panel according to a set of anatomical regions of the virtual ear and a set of virtual zones of the virtual ear, as well as a virtual entry point or a virtual exit point from the virtual ear, in accordance with various principles of the present disclosure. [Figure 48]10A-10C illustrate embodiments of images from an image set corresponding to virtual earrings being virtually tried on to a virtual ear while an administrator configures the images within a virtual try-on administrator console or panel according to a set of anatomical regions of the virtual ear and a set of virtual zones of the virtual ear, as well as a virtual entry point or a virtual exit point from the virtual ear, in accordance with various principles of the present disclosure. [Figure 49] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 50] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 51] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 52] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 53] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 54] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 55] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 56]10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 57] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 58] 10A-10C illustrate various embodiments of virtual earrings having various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. [Figure 59] 10 illustrates an embodiment of a virtual charm added to a virtual earring virtually tried on a virtual ear, in accordance with various principles of the present disclosure. [Figure 60] 1 illustrates an embodiment of a virtual charm virtually tried on a virtual ear in accordance with various principles of the present disclosure. [Figure 61] 10A-10C illustrate various embodiments of virtual charms with the same angling virtually tried on a virtual ear in accordance with various principles of the present disclosure. [Figure 62] 1 illustrates an embodiment of a virtual handcuff earring virtually tried on a virtual ear, in accordance with various principles of the present disclosure. [Figure 63] 1 illustrates an embodiment of virtual handcuff earrings virtually tried on as charms on a virtual ear, in accordance with various principles of the present disclosure. [Figure 64] 10A-10C illustrate embodiments of virtual earrings with arches virtually tried on with the arches virtually hidden while preventing the virtual earrings from spinning, in accordance with various principles of the present disclosure. [Figure 65] 10A-10C illustrate embodiments of virtual earrings with arches virtually tried on with the arches virtually hidden while preventing the virtual earrings from spinning, in accordance with various principles of the present disclosure. [Figure 66]10A-10C illustrate embodiments of a virtual ear having different anatomical regions in which the virtual earring can default to a constant spin angle depending on the respective anatomical region selected, in accordance with various principles of the present disclosure. [Figure 67] 66A-66C illustrate embodiments of the arcuate portion of FIGS. 64-65 that are angled differently depending on which virtual zone in which virtual anatomical region of the virtual ear the arcuate portion is virtually tried on, in accordance with various principles of the present disclosure. [Figure 68] 10A-10C illustrate various embodiments of virtual charms on a virtually tried-on virtual ring and virtual chain wrap in accordance with various principles of the present disclosure. [Figure 69] 10A-10C illustrate various embodiments of virtual charms on a virtually tried-on virtual ring and virtual chain wrap in accordance with various principles of the present disclosure. [Figure 70] 1 illustrates an embodiment of a virtually tried-on virtual earring with movable parts, in accordance with various principles of the present disclosure. [Figure 71] 10A-10C illustrate various necklace length embodiments for virtually trying on a virtual necklace in accordance with various principles of the present disclosure. [Figure 72] 10A-10C illustrate embodiments of various ring sizes for virtually trying on a virtual necklace in accordance with various principles of the present disclosure. [Figure 73] 10A-10C illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. [Figure 74] 10A-10C illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. [Figure 75] 10A-10C illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. [Figure 76] 10A-10C illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. [Figure 77] 10A-10C illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. [Figure 78] 10A-10C illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. [Figure 79] 10A-10C illustrate embodiments of self-images that are processed to take action after detecting a virtual divot or virtual dimple from an existing real piercing hole, in accordance with various principles of the present disclosure. [Figure 80] 10A-10C illustrate an embodiment of an X / Y plane showing how a virtual earring with a ring hangs based on comfort, in accordance with various principles of the present disclosure. [Figure 81] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 82] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 83] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 84] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 85] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 86] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 87] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 88] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 89] FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. [Figure 90]FIG. 1 illustrates an embodiment of a machine learning method for creating a canvas or map for an object according to the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0016] Broadly speaking, the present disclosure enables various techniques for virtually trying on items (e.g., jewelry, earrings, clothing) in a more realistic manner than currently known approaches to providing such functionality. For example, some of these techniques include various UIs programmed to enable different virtual try-ons based on (a) the appearance of changing different rotation angles of an item depending on the location where the item is virtually tried on, different configurations of the object on which the item is virtually tried on, the item itself, or in response to various user inputs, (b) dynamically hiding or unhiding different areas of an item depending on what type of item is being virtually tried on, (c) the location where the item is virtually tried on, and (d) enabling different magnetic, reflective, or shading effects on, relative to, or relative to the item depending on the location where the item is virtually tried on, different configurations of the object on which the item is virtually tried on, the item itself, or in response to various user inputs or other functions. These virtual try-on modalities (a) can be combined with or dependent on each other, (b) can be separate, distinct, or independent of each other, and (c) can be embodied through or on various form factors (e.g., server, client, smartphone, tablet, wearable, smart mirror, OS, software application, browser, mobile app). Note that these technologies can be applied to virtually try on various items (e.g., jewelry, earrings, necklaces, clothing, hats, rings, anklets, bracelets, tattoos) on various objects (e.g., humans, mannequins, showcase models, body parts, heads, noses, ears, necks, arms, forearms, upper arms, wrists, torsos, navels, toes, fingers, clothing, shoes).
[0017] The present disclosure will now be more fully described with reference to Figures 1-90, which illustrate several embodiments of the present disclosure. However, the present disclosure may be embodied in many different forms and should not be construed as necessarily limited to the embodiments disclosed herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the various concepts of the present disclosure to those skilled in the art.
[0018] It should be noted that various terms used herein can refer to direct or indirect, complete or partial, temporary or permanent action or inaction. For example, when an element is said to be "on," "connected," or "coupled" to another element, the element may be directly on, connected to, or coupled to the other element, or intervening elements may be present, including indirect or direct variations. In contrast, when an element is said to be "directly connected" or "directly coupled" to another element, no intervening elements are present.
[0019] Similarly, the term "or," as used herein, is intended to mean an inclusive "or," not an exclusive "or." That is, unless otherwise specified or clear from context, "X employs A or B" is intended to mean any of the natural inclusive permutations. That is, "X employs A or B" is satisfied by either X employing A, X employing B, or X employing both A and B.
[0020] Similarly, as used herein, the various singular forms "a," "an," and "the" are intended to include the various plural forms, unless the context clearly indicates otherwise. For example, the terms "a" or "an," even when used in conjunction with the phrase "one or more," are intended to mean "one or more." For example, "one or more" includes 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, tens, hundreds, thousands, or more, and all intermediate integer or decimal values therebetween.
[0021] Furthermore, as used herein, the term "comprises," "includes," or "comprising," "including," or "comprising" indicates the presence of a stated feature, integer, step, operation, element, or component, but does not exclude the presence and / or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof. Furthermore, when something is said in this disclosure to be "based on" something else, such reference refers to a standard that may likewise be based on one or more other things. In other words, unless expressly indicated otherwise, "based on" as used herein inclusively means "based at least in part on" or "based at least partially on."
[0022] Furthermore, although terms such as "first" and "second" may be used herein to describe various elements, components, regions, layers, or sections, these elements, components, regions, layers, or sections should not necessarily be limited by such terms. Rather, these terms are used to distinguish one element, component, region, layer, or section from another element, component, region, layer, or section. Thus, a first element, component, region, layer, or section described below could also be referred to as a second element, component, region, layer, or section without departing from the present disclosure.
[0023] Furthermore, unless otherwise specified, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by those skilled in the art to which this disclosure belongs. Therefore, terms defined in commonly used dictionaries should be interpreted as having a meaning in accordance with their meaning in the context of the relevant art and this disclosure, and should not be interpreted in an ideal or overly formal sense unless clearly defined herein.
[0024] All issued patents, published patent applications, and non-patent publications (including hyperlinked articles, web pages, and websites) mentioned in this disclosure are hereby incorporated by reference in their entirety for all purposes to the same extent as if each individual issued patent, published patent application, or non-patent publication was specifically and individually indicated to be copied and pasted into this specification or incorporated by reference. In the event that any disclosure incorporated by reference herein conflicts, in part and / or in whole, with the present disclosure, the present disclosure will control in terms of the conflict and / or broader disclosure and / or broader definition of terms. In the event that such disclosures conflict, in part and / or in whole, with each other, the later-dated disclosure will control in terms of the conflict.
[0025] The present disclosure enables various techniques to solve various technical challenges encountered by sellers or customers when virtually trying on jewelry (e.g., earrings, necklaces, rings, bracelets, anklets) before purchasing the jewelry, as well as after purchasing the jewelry. For example, such virtual try-on may involve virtually wearing a virtual item (e.g., jewelry, earrings, necklaces, bracelets, rings, anklets) on a virtual object (e.g., a body part, ear, neck, wrist, finger, ankle) presented within an electronic display (e.g., a computer monitor, a touch screen, a stereoscopic display, a smart mirror) placed in front of a user (e.g., a retailer, a potential customer). Specifically, various currently known approaches for providing virtual try-on functionality are technically problematic because, at least in part, the unrealistic presentation of the item by these approaches can (a) result in the item being rejected for purchase, (b) increase the likelihood of item returns after purchase, and (c) potentially damage the reputation of the seller or manufacturer of the item. These technologies thus enable various virtual try-on features that realistically present items during such virtual try-on before purchasing the item, as well as post-purchase virtual try-on of jewelry items. As disclosed herein, these technologies can be implemented individually or in combination with other technologies.
[0026] For example, these techniques can include presenting an easy, intuitive, self-explanatory, and realistically responsive UI for a potential customer. These techniques can also include the UI presenting realistic output of various virtual try-ons by the customer, making items (e.g., virtual earrings) appear almost like a real photoshoot. These techniques can also include the UI presenting automatic item scaling proportional to the potential customer's ear (e.g., self-uploaded from a selfie of the ear taken by the potential customer), although other body parts (e.g., face, neck) can also be used. These techniques can also include the UI operating based on the setting of various constraints that limit which body parts an item can be virtually tried on, and even which locations (or areas) of the body parts an item can be virtually tried on. These techniques can also include the UI allowing multiple items to be virtually tried on simultaneously for look combinations, while allowing easy adding / removing items to create or customize various desired looks. Additionally, these technologies may include the UI presenting detailed appearances through zooming or panning of a body part (e.g., a virtual ear) or item while keeping the item and body part appearing proportional. These technologies may also include the UI enabling various appearance configurations created or arranged by potential customers to be saved or stored or downloaded as images (e.g., JPEG files, PDF files) for later use (e.g., review). These technologies may also include the UI enabling connectivity with social media platforms (e.g., Facebook, Instagram) so that various created or arranged looks can be shared. Furthermore, these technologies may include the UI presenting virtual try-on experiences using different skin tones, real-time image capture, and video clips depending on the virtual object or item, or the form or location on the virtual object where the virtual item is virtually tried on.Similarly, these technologies may include a UI presented on many consumer devices (e.g., computer monitors, desktops, laptops, tablets, smartphones, touch screens) and (a) openly integrating with various e-commerce and shopping platforms, or (b) providing application programming interfaces (APIs) for integration with multiple front-end or back-end computer systems, whether those of the item seller or third parties.
[0027] While the present disclosure will be described in the context of virtually trying on jewelry products (e.g., earrings, charms) on ears, the present disclosure is not limited thereto. Rather, the present disclosure can be utilized for virtually trying on any body part and any product. Accordingly, these techniques can be applied to virtually trying on various items (e.g., jewelry, earrings, necklaces, clothing, rings, anklets, bracelets, tattoos) on various objects (e.g., humans, mannequins, showcase models, body parts, heads, noses, ears, necks, arms, forearms, upper arms, wrists, torsos, navels, toes, fingers, clothing, shoes). For example, instead of trying on virtual earrings on virtual ears, these techniques may be adapted to virtually try on a virtual necklace on a virtual neck, or to virtually try on other virtual items (e.g., jewelry, clothing, hats, rings, anklets, bracelets, tattoos) on other virtual objects (e.g., humans, mannequins, body parts, showcase models, heads, noses, arms, forearms, upper arms, wrists, torsos, navels, toes, fingers, clothing, shoes).
[0028] 1 illustrates an embodiment of a UI programmed for virtually trying on virtual earrings in accordance with various principles of the present disclosure. Specifically, the UI (e.g., a design studio UI) includes a set of user input elements (e.g., buttons, images, links), a virtual try-on window (e.g., panes, tiles, regions), and a virtual item window (e.g., panes, tiles, regions). The set of user input elements includes a set of skin tone controls 1, a set of zoom controls 2, a view all control 5, social media sharing controls 6, an earring selector 7, and a set of auxiliary controls 8. The virtual try-on window presents a virtual ear 3 and a picture-in-picture (PIP) window 4 to the side or below the virtual ear 3 (although the PIP window 4 can also be positioned outside the virtual try-on window above, below, or to the side of the virtual ear 3). Note that the virtual ear 3 is presented in the virtual try-on window facing forward. The virtual try-on window, virtual item window, and set of user input elements collectively enable a user to virtually try on a virtual earring (or another virtual item) selected or customized in the virtual item window via the set of user input elements onto a virtual ear 3 (or another body part) in the virtual try-on window.
[0029] The virtual try-on window and the virtual item window are positioned adjacent to each other, side by side. However, this positioning can be changed, and the virtual try-on window and the virtual item window can be positioned above or below each other, or diagonally. For example, the UI can be programmed to allow a user to reposition (e.g., move) the virtual try-on window and the virtual item window within the UI. Similarly, the virtual try-on window and the virtual item window can be a single window.
[0030] The skin tone control set 1 (e.g., a button set, an image set, a link set) selects a virtual skin tone on the virtual ear 3 presented in a frontal orientation within the virtual try-on window, and such action is performed in response to a user selecting a particular skin tone control 1. The skin tone control set 1 is present outside the virtual try-on window alongside the virtual ear 3, although this positioning can be changed (e.g., inside the virtual try-on window, or above, below, or diagonally from the virtual try-on window). The virtual try-on window is positioned between the skin tone control set 1 and the virtual item window, although this positioning can be changed (e.g., the skin tone control set 1 is positioned between the virtual try-on window and the virtual item window, or the virtual item window is positioned between the skin tone control set 1 and the virtual try-on window). Note that the skin tone control set 1 can also be omitted.
[0031] The zoom control set 2 (e.g., a button set, an image set, a link set) allows the virtual ear 3 to be zoomed in or out within the virtual try-on window while the virtual ear 3 is presented in a frontal orientation within the virtual try-on window, and such action is performed in response to the user selecting a particular zoom control 2 (e.g., a plus button, a minus button). Note that during such zooming, the virtual earring can also be zoomed simultaneously while maintaining its ratio or scale to or relative to the virtual ear 3. The zoom control set 2 is positioned below the virtual ear 3 within the virtual try-on window, but can also be positioned outside the virtual try-on window or above, diagonally, or to the side of the virtual ear 3. Note that the zoom control set 2 can also be omitted.
[0032] While the virtual try-on window presents the virtual ear 3 (on the left as shown) facing forward, the PIP window 4 presents the opposite virtual ear (on the right as shown) facing forward. Selecting (e.g., activating, clicking, or touching) the PIP window 4 can switch the virtual ear 3 to the opposite virtual ear, so that the virtual try-on window presents the virtual ear 3 (on the right as shown) facing forward and the PIP window 4 presents the opposite virtual ear (on the left as shown) facing forward. Note that when the virtual ear 3 is switched to the opposite virtual ear, the virtual earring shown virtually tried on the virtual ear 3 (on the left as shown) in the virtual try-on window is responsively repositioned in the same position on the opposite virtual ear, so that the virtual try-on window presents the virtual ear 3 (on the right as shown) facing forward and the PIP window 4 presents the opposite virtual ear (on the left as shown) facing forward. Note that the PIP window 4 can also be omitted. However, if such functionality is still desired, both virtual ears can be shown in the virtual try-on window simultaneously, allowing virtual earrings to be tried on both virtual ears simultaneously, or there can be dedicated virtual try-on windows for specific ears. Thus, virtually trying on a virtual earring on one virtual ear 3 may or may not also result in it being virtually tried on the opposite virtual ear.
[0033] A full display control 5 (e.g., button, image) allows for simultaneous presentation of the virtual ear 3 and the contralateral virtual ear. Such simultaneous presentation can occur within the virtual try-on window or within a dedicated virtual try-on window for each virtual ear. For example, virtual item windows can be positioned side-by-side, above-and-below, or diagonally between such virtual try-on windows, or one virtual try-on window can be positioned side-by-side, above-and-below, or diagonally between the other virtual try-on window and the virtual item window. As shown in FIG. 1, there can be user control elements (e.g., button, image) for reversing this full display function to present the UI reversibly.
[0034] The social media sharing controls 6 (e.g., a button set, an image set, a link set) allow the user to share, or a link to, the virtual earring being virtually tried on the virtual ear 3 on a social media network (e.g., Facebook, Instagram). Such sharing may include a post with an image or screenshot of the virtual earring being virtually tried on the virtual ear 3. The post may include some pre-defined, default, or user-customizable text about the virtual earring being virtually tried on the virtual ear 3. The social media sharing controls 6 are presented to the side of the virtual try-on window and below the virtual item window. However, such presentation may be modified. For example, the social media sharing controls 6 may be omitted or presented above, below, or diagonally above the virtual try-on window or the virtual item window.
[0035] An earring selector set 7 (e.g., an image, graphic, icon, tile, text box, drop-down menu) is presented in the virtual item window for a user to select to virtually try on the virtual ear 3 presented in a front-facing orientation in the virtual try-on window. The earring selector sets 7 are presented in a matrix-arranged grid, although this presentation format can be modified (e.g., a carousel, a list). The earring selector sets 7 can be customizable through various controls (e.g., drop-down menus, dials) presented below the virtual item window (although these can be omitted). For example, these controls can dynamically or in real time add earring selector sets 7 presented in the virtual item window. For example, in response to a right ear drop-down menu selection, the number of earring selector sets 7 can be dynamically increased or decreased based on which earring selector 7 corresponds to the right ear drop-down menu.
[0036] The earring selector set 7 is sourced from a catalog (e.g., a database, a relational database, an in-memory database) of virtual items that can be virtually tried on the virtual ear 3. The virtual item catalog can also be hosted remotely from the user or locally to the user. For example, a user can operate an application (e.g., a browser, a mobile app, a dedicated application) running on a computing device (e.g., a desktop, laptop, smartphone, tablet) to access a UI hosted on a server remote from the computing device. The server then creates a current copy of the virtual item catalog and transmits this copy to be downloaded to the application the user is operating. Thus, whether the copy is stored locally within the application or external to the application, the application has access to the copy, allowing the user to seamlessly, responsively, and realistically try on virtual earrings on the virtual ear 3. This copy can be periodically deleted by the application, can have an expiration date that is visible to the application, or can be periodically updated by the application (e.g., based on discrepancies) via a data push or pull method.
[0037] A set of auxiliary controls 8 (e.g., images, graphics, icons, tiles, text boxes, drop-down menus) are presented to the side of the virtual try-on window. The set of auxiliary controls 8 allow the user to access various auxiliary functions. These functions may include (a) help for the virtual try-on (e.g., opening or linking to a help page or file), (b) saving the virtual try-on presented in the virtual try-on window for later remote access or customization, (c) downloading the virtual try-on presented in the virtual try-on window in a file format (e.g., PDF file, JPEG file), or other auxiliary functions as desired. Note that the set of auxiliary controls 8 may be fewer or more than those shown, or the set of auxiliary controls 8 may be omitted.
[0038] The UI can be presented through or on various form factors. For example, the UI can be presented in a browser running on a client in network communication with a server separate from the client operated by the user virtually trying on the virtual earrings. For example, the UI can be presented in a mobile app (e.g., a dedicated e-commerce app, a browser app) running on a client in network communication with a server separate from the client operated by or physically present in front of the user virtually trying on the virtual earrings. For example, the UI can be presented in an operating system running on a client in network communication with a server separate from the client operated by or physically present in front of the user virtually trying on the virtual earrings. For example, the UI can be presented in an application (e.g., a dedicated application, a browser application) running on a computing device (e.g., a desktop, laptop, smartphone, tablet, wearable, smart mirror) operated by or physically present in front of the user virtually trying on the virtual earrings. For example, the UI may be presented within an operating system running on a computing device (e.g., desktop, laptop, smartphone, tablet, wearable, smart mirror) operated by or physically present in front of a user who is virtually trying on virtual earrings.
[0039] 2 illustrates an embodiment of a flowchart for accessing the UI of FIG. 1 in accordance with various principles of the present disclosure. Specifically, the UI is designed to function independently or in operational integration with a catalog of items that can be virtually tried on virtual ear 3, or with an e-commerce platform of choice. According to the flowchart, if the UI is embodied in a web application accessible via a browser, a user would use the browser to (a) visit www.mariatash.com (or another URL), (b) browse the catalog of items at www.mariatash.com (or another URL), (c) navigate to an item page (e.g., jewelry page, earring page, necklace page) on www.mariatash.com (or another URL) to view more details, (d) navigate on the item page and see a hyperlink to use the UI to virtually try on the jewelry (although in-page virtual try-on is also possible), (d) activate the hyperlink, and (e) be presented with a UI programmed to enable virtually trying on the virtual earrings corresponding to the item page. The UI is presented in the browser with the option to select the item selected by the user and any other items from a catalog of items to virtually try on. Alternatively, the user can use the browser to access a web page (e.g., a third-party web page) that presents a hyperlink to a UI that allows the user to determine which items to virtually try on on a pre-defined or selected body part, and activate the hyperlink to present the UI. For example, this can be done from a top web navigation header or through a promotional link. As mentioned above, at this point, the UI does not appear in a default location within the virtual ear as if the user had arrived through the ear category page. If the end user discovers the item page from a search results page (e.g., a Google search results page), the appearance of the UI can be the same as if the user had navigated to the UI other than through a product detail page (PDP) link.However, items that appear in or are linked to from the search results should appear as first choice items to select to virtually try on the virtual ear. Note that the UI can be presented without pre-loaded items to virtually try on the virtual ear, with options to select any item listed in a catalog of items to virtually try on, or as an earring selector set 7 in the virtual item window.
[0040] FIG. 3 illustrates an embodiment of a computing architecture for implementing the UI of FIG. 1 in accordance with various principles of the present disclosure. Specifically, the UI is enabled through or executes UI algorithms on both a client (e.g., browser) and a server (e.g., an internet-connected cloud server) environment. Separation of algorithms may be performed to improve at least some speed of user interaction or to improve item catalog updates. Generally, some, many, most, or all interactions related to user response are conveyed within the browser environment (or another application), while tasks (e.g., image manipulation, creation of new images) are performed on the server. This separation is also made with consideration for the limitations of each technology and maintaining various compatibility with multiple platforms, screen sizes, viewports, and browsers. Some programming technologies that can be used for the UI include HTML / DHTML, JavaScript, PHP, MYSQL, Python, or OpenCV. Note that FIG. 3 illustrates a computing architecture for a hosting and execution environment.
[0041] The computing architecture may include a network, servers, and clients that communicate with each other over the network (e.g., wired, wireless, waveguide).
[0042] A network includes multiple computing nodes interconnected via multiple communication channels, enabling the sharing of resources, applications, services, files, streams, records, or information. Networks can operate via network protocols such as the Ethernet protocol, Transmission Control Protocol (TCP) / Internet Protocol (IP), etc. A network can be of any size, such as a personal area network (PAN), local area network (LAN), home area network, storage area network (SAN), campus area network, backbone network, metropolitan area network, wide area network (WAN), enterprise network, virtual private network (VPN), virtual network, satellite network, computer network, Internet network, or cellular network. A network can include an intranet, extranet, or the like. A network can include the Internet. A network can also include other networks or enable communication with other networks, whether sub-networks or different networks.
[0043] The server may include a web server, an application server, a database server, a virtual server, a physical server, or the like. For example, the server may be included in a computing platform (e.g., Amazon Web Services, Microsoft Azure, Google Cloud, IBM Cloud) having a cloud computing environment defined through multiple servers including the server, which cooperate to perform computational tasks such as reading data, writing data, deleting data, collecting data, or sorting data via a server cluster, a server grid, a server group, or the like. For example, one or more servers including server 104 may be configured for parallel processing (e.g., multi-core processors). The computing platform may include a mainframe or a supercomputer. The server may be housed in a data center, a server farm, or the like. The computing platform may provide multiple computing services on demand, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or Packaged Software as a Service (SaaS). For example, a computing platform may provide computing services from multiple data centers spread across multiple availability zones (AZs) in different global regions, where an AZ is a location containing multiple data centers and a region is a collection of AZs in geographic proximity connected by low-latency network links. For example, a computing platform may enable the launch of multiple virtual machines (VMs) and replicate data in different AZs to achieve a reliable infrastructure that can tolerate failures of individual servers or entire data centers.
[0044] A client includes logic that communicates with a server over a network. If the logic is hardware-based, the client may include a desktop, laptop, tablet, or the like. For example, if the logic is hardware-based, the client may include an input device such as a cursor device or a hardware or virtual keyboard. Similarly, if the logic is hardware-based, the client may include an output device such as a display or speaker. Note that the input and output devices may be embodied as a single unit (e.g., a touch screen). If the logic is software-based, the client may include a software application, a browser, a software module, an executable or data file, a mobile app, or the like. Regardless of how the logic is implemented, the logic enables the client to communicate with a server to request or receive resources / services from or to a computing platform via a common framework such as Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), or File Transfer Protocol (FTP).
[0045] It should be noted that this disclosure describes some of the functionality in the context of several open-source libraries. These libraries, their use, utility, and purpose are loosely coupled to the algorithms and methods described herein and, therefore, can be fully replaced or supplemented with any other suitable open-source or commercially licensed package. For example, OpenCV can run on a server and JQuery can run on a browser. For example, OpenCV can run on the server and be responsible for generating various grayscale models of color images and the outlines of model ears and jewelry. OpenCV can be replaced or supplemented with Google Cloud Vision API, Microsoft Computer Vision, SimpleCV, or other suitable libraries. Similarly, JQuery runs within the browser and helps to better understand web page structure and element placement, their size within the web browser, and other related data. Thus, JQuery can be replaced or supplemented with other libraries, or (if necessary) can use proprietary functions to present user interfaces on multiple devices / at multiple screen resolutions and sizes. For example, JQuery can be replaced or supplemented with UmbrellaJS (https: / / umbrellajs.com), MooTools (https: / / mootools.net), Sancha JS (https: / / sencha.com), or any other suitable library.
[0046] 4 illustrates the UI of FIG. 1 with drag and drop of virtual earrings for virtual try-on in accordance with various principles of the present disclosure. Specifically, the UI is programmed to allow a user to select the virtual earrings in the virtual item window (first user selection), drag them from the virtual item window to the virtual try-on window, and drop them (second user selection) into a virtual position on the virtual ear 3 presented in a front-facing position within the virtual try-on window. If the location where the virtual earrings are dropped into the virtual position of the virtual ear 3 is programmed to be appropriate for such virtual try-on, the virtual earrings are virtually tried on the virtual ear presented in a front-facing position within the virtual try-on window.
[0047] This drag-and-drop functionality can be enabled in various ways. For example, this drag-and-drop functionality can be enabled from the open-source library JQuery using its "dragable" and "droppable" functions. Furthermore, when the UI loads in a browser (or another application), it pre-loads various item information (e.g., from a server separate from the browser) for the item the user has selected to virtually try on. This item information can include product images, variants, pricing information, and all other relevant data necessary for a successful user purchase if the user decides to purchase the item through or from the UI. The server or client can also request other items configured by an administrator in an administrator console or panel using various "administrative settings," and / or items from a predefined list of items or within a particular category defined in the administrator console or panel. The administrator panel's access settings to the UI (or any of its components) can be different from the user's access settings.
[0048] Drag-and-drop functionality is not required for the UI, and other forms of user selection for virtual try-on are possible within the UI. For example, the UI may present a pop-up, web page, screen, menu, prompt, form, reflective questionnaire, hyperlink, button, radio button, knob, dial, wheel, drop-down menu, wizard, or other form of user input that a user can activate, select, manipulate, navigate, or interact with to select a virtual earring and virtual location on a virtual ear presented face-on within the UI, whether such selection is made in a single motion or multiple motions, and whether it is made per virtual earring, per virtual location, or collectively for virtual earrings and virtual locations. For example, a user may select a virtual earring presented in the virtual item window and then select a virtual location on the virtual ear in the virtual try-on window, or vice versa, to enable virtual try-on of the virtual earring on the virtual ear in the virtual try-on window. Note that such user selection is not limited to a cursor device (e.g., a mouse, touchpad, trackpad) or a keyboard (e.g., a physical keyboard, a virtual keyboard). As a result, such user selections may be made via a microphone (e.g., voice command, intelligent virtual assistant, Apple Siri), a camera (e.g., optical camera, thermal camera, depth camera), or any other suitable sensor (e.g., radar, distance sensor, proximity sensor, motion sensor, LIDAR, sonar, ultrasonic sensor). For example, such user selections may be made via various contactless hand gestures or contactless finger tracking, whether tracked via a camera or any other suitable sensor.
[0049] 5 illustrates an embodiment of a virtual ear segmented into a set of virtual anatomical regions in accordance with various principles of the present disclosure. Specifically, virtual try-on of virtual earrings to the virtual ear can be enabled in various ways. For example, virtual try-on can be enabled via a virtual ear that relies on an ear architecture in which the virtual ear is represented in a frontal orientation as a "country" segmented by a set of virtual anatomical regions ("state sets"), each of which is further segmented by a set of virtual zones ("county sets").
[0050] As shown in Figures 5 and 7, the set of virtual anatomical regions are not identical to one another in shape and size. Therefore, the set of virtual anatomical regions are not identical to one another in perimeter and area. However, such a configuration is not required. For example, the set of virtual anatomical regions may be identical to one another in shape or size. Therefore, the set of virtual anatomical regions may be identical to one another in perimeter and area.
[0051] The set of virtual anatomical regions can include a virtual earlobe, a virtual helix, and others. Each virtual anatomical region selected from the set of virtual anatomical regions is further segmented into a set of virtual zones, which are polygonal (e.g., square, rectangular, honeycomb, triangular) boxes that may or may not be adjacent to each other from at least one side within at least the respective virtual anatomical region when presented in a frontal orientation. The set of virtual anatomical regions can be adjacent to each other when presented in a frontal orientation.
[0052] Each virtual anatomical region selected from the set of virtual anatomical regions has a certain number of virtual zones that may or may not be adjacent to each other from at least one side when presented in a frontal orientation, and these virtual zones contain or are logically associated with information regarding how far or spaced apart each of these virtual zones is from the virtual anatomical edge / physical boundary of the ear, which photographic / rendering angle of the virtual item (e.g., ring or stud) applies to each of these virtual zones, and to the entire area of each of these virtual zones.
[0053] When the virtual ear is segmented by a set of virtual anatomical regions, which are further segmented into a set of mutually polygonal virtual zones presented in a frontal orientation, an ear canvas or map is formed based on which virtual earrings can be virtually tried on the virtual ear more realistically than currently known approaches that provide such functionality without the use of such a canvas or map. The ear canvas or map is invisible to the user during virtual try-on, but can also be configured to be visible to the user during virtual try-on. The ear canvas or map is presented on the virtual ear. The ear canvas or map is visible to an administrator operating an administrator console or panel regardless of whether virtual try-on is in progress, but can also be configured to be invisible to an administrator operating an administrator console or panel regardless of whether virtual try-on is in progress. Note that if this UI is used for virtual try-on of other virtual objects, similar canvases or maps can be created and edited accordingly. For example, such canvases or maps can be created for other virtual objects (e.g., humans, mannequins, showcase models, body parts, heads, noses, necks, arms, forearms, upper arms, wrists, torsos, navels, toes, fingers, clothing, shoes).
[0054] As described above, when presented in a frontal orientation, the virtual ear is segmented into a set of virtual anatomical regions (e.g., virtual earlobe, virtual helix, virtual tragus), and all such virtual anatomical regions are further segmented into a set of virtual zones. To enable virtual try-on of virtual earrings onto the virtual ear, each virtual earring (e.g., database record, file, image, data structure) has guidelines or rules (due to its size and nature) corresponding to which virtual anatomical regions of the virtual ear it can be placed in, and an administrator of the UI configures the possible virtual anatomical regions for an item based on this while adding the item to an item catalog presented through the UI via an administrator console or panel. The UI determines which "virtual pierceable areas" will accommodate the virtual earring based on various dimensions (e.g., height, length, width) of the virtual earring that the administrator pre-programmed via the administrator console or panel. The UI allows the user to understand how far the virtual earring can rotate before placing it on or within a virtual anatomical region or one of its virtual zones (a "hot spot"). While the virtual earring is being dragged or dropped onto the virtual ear presented in a frontal orientation within the virtual try-on window, the UI is programmed to highlight various virtual anatomical regions where the virtual earring can be placed while the virtual ear is presented in a frontal orientation within the virtual try-on window. If the user decides to place the virtual earring outside of a virtual anatomical zone set or a virtual zone set (defined area), the UI enables or employs a magnet algorithm to find the nearest applicable location for the virtual earring presented in a frontal orientation within the virtual try-on window. This region recognition is created or modified by an administrator through various settings within the administrator console or administrator panel.The UI is programmed to understand various topologies of the set of virtual anatomical regions and the set of virtual zones, and appears to position or virtually try on the virtual earrings accordingly at appropriate rotation angles on the virtual ear presented in a frontal orientation within the virtual try-on window, creating a realistic rendering of how the virtual earrings would virtually be worn on different parts of the virtual ear as in the real world.
[0055] The ear canvas or map can be created or edited in many ways. For example, there can be an image of a model ear presented in a frontal orientation, divided or segmented into multiple parts according to their respective virtual anatomical regions, and loaded into an application (e.g., a browser). The UI loads various data related to the area applicability of the virtual earring, along with various item information as described above that allows the UI to recognize the applicability area of each item in the ear canvas or map. A combination of a DHTML layer and script (e.g., JavaScript) then uses the position of the cursor (e.g., mouse, trackpad, touchpad, stylus, finger) to highlight the various applicability areas of the virtual earring. Note that FIG. 5 shows a virtual ear divided or segmented into multiple virtual anatomical regions, each presented in a frontal orientation: a virtual earlobe anatomical region and a virtual helix anatomical region.
[0056] FIG. 6 illustrates an embodiment of a virtual ear segmented into virtual zone sets in accordance with various principles of the present disclosure. As described above, each virtual anatomical region is further segmented into virtual zone sets. As shown in FIG. 6, a single zone is a rectangular (although it can also be square, polygonal, triangular, or non-rectangular) area that can be virtually pierced to virtually insert a virtual earring into the virtual ear or virtually try on a virtual earring on a virtual ear presented in a frontal orientation. Each such zone is mapped to a virtual anatomical region. If an item can be placed in or on the virtual anatomical region or tried on in the virtual anatomical region, the item can be placed (e.g., dragged onto) one of the assigned zones. For simplicity, a virtual zone set is a subdivision of each virtual anatomical region presented in a frontal orientation.
[0057] For example, there may be a total of 919 zones (although more or less than this is possible, as needed, for greater or less granularity). A further allocation of virtual zones to virtual anatomical regions can be as follows: tragus virtual anatomical region = virtual zone numbers 1 to 33, earhead virtual anatomical region = virtual zone numbers 34 to 77, helix virtual anatomical region = virtual zone numbers 78 to 186, rook virtual anatomical region = virtual zone numbers 187 to 387, Tash Rook virtual anatomical region = virtual zone numbers 388 to 417, contraconch virtual anatomical region = virtual zone numbers 418 to 483, earlobe virtual anatomical region = virtual zone numbers 484 to 723, antitragus virtual anatomical region = virtual zone numbers 724 to 782, conch virtual anatomical region = virtual zone numbers 783 to 915, and daith virtual anatomical region = virtual zone numbers 916 to 919. Note that this is by way of example only, and there can be more or fewer virtual zones depending on the desired granularity.
[0058] In terms of virtual size, each virtual zone selected from the virtual zone set is approximately 1 millimeter per side, or area or perimeter (although it can be larger or smaller), suitably scaled. Each virtual zone selected from the virtual zone set can be identical in size and shape to one another when presented in a frontal orientation, although this is not required; various virtual zones selected from the virtual zone set can be identical and non-identical in shape or size to one another when presented in a frontal orientation. Each virtual zone selected from the virtual zone set is mapped to a product angle; that is, when an item is placed on or within this virtual zone, or when an item is virtually tried on in this virtual zone and presented in a frontal orientation, the UI is programmed to always rotate the item to the virtual zone angle that is realistically appropriate for this virtual zone. Items can be placed “anywhere” within the respective virtual zone, meaning that the ear can ultimately be pierced anywhere within the area enclosed by this virtual zone. If an item is dropped outside the pierceable area, a magnetic effect is applied to attract or snap the item to the nearest realistically appropriate zone (e.g., based on a minimum pixel distance). Virtual Zone Sets are invisible to the user (although they can be made visible). Virtual Zone Sets are pre-defined in the UI and pre-loaded with various designated areas as configured or programmed by the administrator in the administrator console or panel. Note that various HTML, CSS, and JavaScript techniques can be combined to enable placement of items in the appropriate virtual zones.
[0059] 7 illustrates an embodiment of a virtual ear segmented into a set of anatomical regions and a set of virtual zones within the set of anatomical regions, where each colored area corresponds to a different virtual anatomical region of the virtual ear, and where each virtual anatomical region is further segmented into a set of virtual zones as described above, in accordance with various principles of the present disclosure.
[0060] FIG. 8 illustrates an embodiment of a virtual earring that appears to rotate in the XZ plane in accordance with various principles of the present disclosure. FIG. 9 illustrates an embodiment of a virtual plane for earring rotation in accordance with various principles of the present disclosure. Specifically, the UI is programmed so that the virtual earring appears to change rotational angles in the UI depending on where the virtual location for virtual try-on is located on the virtual ear in the UI (e.g., during or after a drag-and-drop operation or user selection). This can be enabled in various ways. For example, each virtual zone, as described above, can correspond to a particular rotational angle of the virtual earring (e.g., in the XYZ plane) depending on the virtual earring selected by the user (first user selection). Each virtual earring can have various associated images. These images depict the virtual earring from various different rotational angles. Each virtual zone can be associated with a different image of the virtual earring selected for virtual try-on. Thus, as described above, when a user selects a virtual earring to virtually try on at the virtual location of the virtual ear, the UI identifies the respective virtual anatomical region that contains the virtual location, the respective virtual zones within the respective virtual anatomical region that contains the virtual location, and the corresponding image for each virtual zone, and presents the corresponding image of the virtual earring selected for virtual try-on. Each virtual zone corresponds to an image of the virtual earring selected for virtual try-on with a specific rotation angle, resulting in the virtual earring being presented in a more realistic and appropriate orientation than currently known approaches for providing such functionality. Thus, the virtual earring selected for virtual try-on is rotated using various rotation angles specified by the various assigned virtual zones. For example, based on the virtual earrings shown in FIG. 8 and the virtual plane shown in FIG. 9, rotation angles of −12 degrees, −6 degrees, 0 degrees, +6 degrees, and +12 degrees in the XZ plane can be used for the virtual stud, and rotation angles of −24 degrees, −18 degrees, +18 degrees, and +24 degrees in the XZ plane can be used for the virtual ring. Note that these angles are exemplary and can be modified as needed based on the type, configuration, and other parameters of the virtual earring.
[0061] FIG. 10 illustrates an embodiment of a set of virtual zones corresponding to a set of rotation angles for rotating a studded virtual earring in accordance with various principles of the present disclosure. Note that there are various imaging angles for the studded virtual earring. As shown in FIG. 10, the green rectangle uses a stud at 0 degrees in the XZ plane, the blue rectangle uses a stud at 6 degrees in the XZ plane, and the black rectangle uses a stud at 12 degrees in the XZ plane. Thus, FIG. 10 illustrates various zone-to-item rotation angle mappings for the studded virtual earring.
[0062] FIG. 11 illustrates an embodiment of a set of virtual zones corresponding to a set of rotation angles for rotating a virtual earring with a ring, in accordance with various principles of the present disclosure. Note that there are various viewing angles for the virtual earring with a ring. As shown in FIG. 11, the blue rectangle uses an 18-degree ring in the XZ plane, and the black rectangle uses a 24-degree ring in the XZ plane. Thus, FIG. 11 illustrates various zone-to-item rotation angle mappings for the virtual earring with a ring.
[0063] FIG. 12 illustrates an embodiment of a set of virtual zones corresponding to a set of rotation angles for rotating a virtual earring with a dice ring according to various principles of the present disclosure. Note that there are various imaging angles for the virtual earring with a dice ring. As shown in FIG. 12, there can be a dice ring rotation angle of +6 degrees. Thus, FIG. 12 illustrates various zone-to-item rotation angle mappings for the virtual earring with a dice ring.
[0064] 13 illustrates an embodiment of virtual earrings with different sets of rotation angles in accordance with various principles of the present disclosure. Specifically, the virtual earring shown on the left has a sample virtual try-on with a 0-degree rotation angle in the virtual helix anatomical region. The virtual earring on the right has a sample virtual try-on with a 12-degree rotation angle in the virtual tragus anatomical region. The UI can apply the rotation angles in a variety of ways. For example, there can be logic having pseudocode such as: Step applyRotation(): 1.hotspot ← The current hotspot where the item was placed (e.g., user drag-and-dropped, user clicked, or otherwise selected). 2. productType ← Gets the type of the current item being placed (e.g., the type data associated with the data record of the currently viewed item) 3.angle:=hotspot.getRotationAngleFor(productType based on hotspot) 4.newProductImage←Get product image for angle 5.update_product_image(newProductImage) 6. Back
[0065] FIG. 14 illustrates an embodiment of a portion of a UI programmed to map virtual earrings to selected anatomical regions from the set of anatomical regions of FIGS. 5-7 in accordance with various principles of the present disclosure. Specifically, the UI can employ magnetic effects. FIG. 15 illustrates an embodiment of a flowchart enabling magnetic effects in accordance with various principles of the present disclosure. Specifically, virtual ears are mapped to virtual anatomical regions to specify where particular virtual earrings can be virtually positioned / placed or otherwise virtually tried on. These virtual anatomical regions are pre-configured in an administrator console or panel and then applied to each individual virtual earring based on the virtual location / position where the virtual earring can be worn. The UI pre-loads this information with various virtual earring data as part of its loading process. Some virtual anatomical regions on the virtual ear can be highlighted as the user drags the earring to place it on the virtual ear. As described above, if a user attempts to place or virtually try on a virtual earring on a virtual earring but does not do so precisely in a particular virtual zone, the virtual earring automatically moves to the nearest virtual zone, which virtually attracts the virtual earring to that zone, enabling a magnetic effect. The nearest virtual zone can be based on the linear pixel distance between the location where the user places the virtual earring and the boundary line of the nearest virtual zone, whether inside or outside, or at a central or non-central point. By having the virtual earring placed over or on a virtual zone, it becomes possible or easy for the UI to know its exact current image zone location and its relative position to different parts of the virtual ear (which is equally important and can be utilized in several other calculations, as listed in later sections).
[0066] As shown in FIG. 15 , the ear map or canvas used to place the virtual earring is location-sensitive. As soon as, or in response to, the virtual earring enters the ear map or canvas area over the virtual ear (in the background), the UI begins tracking where the virtual earring is located on the ear map or canvas over the virtual ear. When a drop (or placement) event is identified, the UI can access a list of predefined virtual zones, as described above, and perform various real-time calculations to identify the nearest virtual zone, which can be based on the linear pixel distance between the location where the user placed or dropped (or positioned) the virtual earring and the boundary of the nearest virtual zone, whether inside or outside, or at a central or non-central point. The virtual earring is then moved and placed on the hotspot by adjusting the drop coordinates, which can be accompanied by an animation effect of the movement. This magnetic function can be written using JavaScript or can be executed in a browser environment, although other languages or environments can be used as well. The UI can apply the magnetic effect in various ways. For example, there can be logic having pseudocode such as the following: Steps in getNearestPossibleHotspot(): 1.x,y ← Current coordinates where the item will be dropped (or placed). For example, the current coordinates can include a virtual zone identifier or X and Y coordinates. 2.nearestZone←Initialize the first virtual zone. 3.nearestDistance←Assigns the distance between the first virtual zone and the X and Y coordinates 4.About each zone zoneX,zoneY ←Zone coordinates if(x,y) is located with the zone Return a.currentZone end if TIFF0007738014000001.tif14104if the distance < the nearest distance b. nearestZone ← the current virtual zone c. nearestDistance ← distance end if 5. end for 6. Return the nearest zone
[0067] FIG. 16 is a diagram showing an embodiment of a virtual ear segmented into a set of layers according to various principles of the present disclosure. FIG. 17 is a diagram showing an embodiment of a set of layers of a virtual ear according to various principles of the present disclosure. FIG. 18 is a diagram showing an embodiment of a virtual ear without a tapping effect and a virtual ear with a tapping effect during virtual fitting according to various principles of the present disclosure. Specifically, the virtual ear includes a set of depth areas where items can be placed (e.g., dropped). Accordingly, the UI can be programmed to make it appear as if some of the items within these depth areas are dynamically hidden or not hidden. When the user attempts to virtually discover a desired arrangement for the appearance of the item being virtually tried on, the UI knows which depth portions and how many items can appear to be dynamically hidden beneath the uneven pockets of the virtual ear's undulations and then hides these item portions through the depth portions to make the positioning of the items appear more realistic. If an item is moved (e.g., positioned, rearranged, dragged & dropped) to another part of the virtual ear and not necessarily any part of the item is hidden, the UI appropriately adjusts the desired appearance.
[0068] The UI can be programmed to dynamically hide and unhide portions of the virtual earring in various ways. For example, to map a set of depth areas, the virtual ear is cropped at multiple regions at various depths, as shown in FIG. 16. As shown in FIG. 17, there are various regions (e.g., 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11 or more) into which the virtual ear is segmented. These regions are different layers used to achieve this functionality. Each of these layers has an opacity setting to hide various objects below or overlapping some of the regions. The layers also have predetermined boundaries that limit the movement of at least some of the objects, which provides at least some sense that an item has been pocketed into some portion of the virtual ear.
[0069] Items can be overlaid on or pushed into the set of depth areas of the virtual ear. As shown in FIG. 17 , an image depicts the virtual ear on different layers so that items can be sandwiched between the different layers. As shown in FIG. 18 , the virtual earrings shown on the left and right are presented without a tacking effect on any depth area of the virtual ear, while the virtual earring on the right is presented with a tacking effect on at least one depth area of the virtual ear. The UI can apply dynamic tacking and dynamic untacking angles in various ways. For example, there can be logic having pseudocode such as: Initialization: tuckingBoundaries←Initialize the boundaries of all tucking areas within the virtual ear with x,y coordinates Procedure performProductTucking(): 1. productBoundaries ← Get the item boundaries after the item is dropped or placed on the virtual ear 2.appliedLayer←Get the current layer from the assigned virtual zone 3. If productBoundaries intersect with tuckingBoundaries i. Return to previous position 4.else if not ii. Use z-index to sandwich items into layers 5.end if 6. Back
[0070] FIG. 19 illustrates an embodiment of a virtual gravity effect applied to virtual earrings being virtually tried on a virtual ear in accordance with various principles of the present disclosure. The UI is programmed to enable a gravity effect for the virtual earrings. The gravity effect occurs when an item virtually falls due to its perceived virtual weight. For example, if the virtual earrings include a ring placed or positioned on the virtual ear, the ring falls to enhance realism. The ring virtually falls only if there is available space between the outer edge of the virtual ear and the outer edge of the ring. This effect occurs only to the extent that the ring virtually touches or abuts the virtual ear (e.g., virtual skin).
[0071] Gravity effects can be implemented in a variety of ways. For example, when a ring is placed or positioned on the virtual ear, it starts from a perfectly horizontal position and begins to virtually fall (e.g., swivel, rotate) until it touches or abuts the virtual ear. Gravity effects can be developed in JavaScript. As shown in FIG. 19, the virtual earring shown on the left is virtually tried on with a gravity effect, in contrast to the virtual earring on the right, which was virtually tried on without a gravity effect. The UI can apply gravity effects in a variety of ways. For example, there can be logic having pseudocode such as the following: Initialization: earBoundary←Initialize the boundary of the virtual ear with x,y coordinates Step applyGravity(): 1. ringBottomPoint ← Get the bottom point of the ring where the material starts 2.piercingPoint←Get the point to pierce the virtual ear to attach the ring 3. gravityAngle:=NULL 4. While gravityAngle is NULL a.Spin the ringBottomPoint towards the outer ear boundary b.if ringBottomPoint intersects earBoundary i.gravityAngle:=spinAngle ii. Exit while looping c.end if 5.end while 6. Spin the ring by gravityAngle 7. Back
[0072] FIG. 20 illustrates an embodiment of a proportional virtual ear size in accordance with various principles of the present disclosure. FIG. 21 illustrates an embodiment of a flowchart for resizing an image of an ear for subsequent use in accordance with various principles of the present disclosure. In some embodiments, because the virtual ear is an image, the virtual ear, as well as the item being virtually tried on, may not accurately reflect the size of the actual ear. Because the size of the image (e.g., a photograph) is not proportional to the actual size of the actual ear, various techniques can be implemented to preprocess the image to its actual size. The size of the virtual ear can remain fixed in millimeters (even if the size increases proportionally during zoom and pan functions). For accurate sizing, consider the proportions of the actual ear shown in the image. The ear size is specified as 57.5 mm in height (although this size can be changed). The width does not particularly need to be known. Since we want to know the size conversion ratio from millimeters to pixels, either height or width is sufficient. At the maximum zoom-out level, the ratio of each ear in pixels can be 218px, i.e., approximately 1mm is equal to 218 / 57.5 P-1 3.8px (although this can be changed). There can be a total of 16 zoom steps (although this can be changed). These steps are Level 1 to Level 2.5, with a zoom percentage of 0.1, i.e., 10% for each mode. The default zoom level when the UI is first loaded is 1.8 (although this level can be changed). The administrator console or panel has a form or user input element that invites the administrator to enter the dimensions, height, or width of an item in millimeters (mm). This measurement of approximately 1mm P-1 3.8px at zoom level 1 is used to proportionally scale the item to pixels. The formula used to determine the scale of an item is as follows: |= *3.8*
[0073] As described, in some embodiments, the minimum zoom level can be 1 and the maximum can be 2.5 (although these levels can be changed as needed). Each zoom is incremented by 0.1, or 10%, (although these increments can be changed as needed). Thus, the zoom values are 1.0, 1.1, 1.2, 1.3, 2.4, and 2.5, resulting in a total of 16 levels. The item images are then processed to remove the background and scaled to a proportional size according to the virtual ear. Note that various techniques can preprocess these scaled versions of the images so that users can quickly access them using the UI, while different sets of images can be used to display the items on the search and product detail pages. As shown in the flowchart in FIG. 21, item images can be scaled to the correct size by adding items and proportionally adjusting the item size while incorporating item measurements entered by an administrator via an administrator console or panel. Adding proportional dimensions and resizing the images ensures that item sizes remain realistic, allowing users to select the same item in different sizes based on their preferences.
[0074] FIG. 22 illustrates an embodiment of virtual earrings virtually tried on with and without drop shadows during a virtual try-on, in accordance with various principles of the present disclosure. Specifically, when an item is placed or positioned on the virtual ear with a distinct background and size, it can sometimes still appear fake, or like two images stapled together in this manner. Therefore, a natural appearance of item placement can be achieved through adding natural light and shadows to the items and their surroundings. Shadows can be placed by estimating the light source and its influence so that multiple items placed on the virtual ear reflect similarly. There can be two types of shadows associated with an item: one is a reflection of the virtual skin tone on the item, and the other is a shadow cast on the item on the virtual ear. Shadows on the virtual ear can be programmed into the system for five different static virtual skin tones (although more or less are possible). The shadows can vary depending on the selected virtual skin tone. Each shadow can have a different color, shadow movement, and spread. For example, there may be an estimated light source, and in 2D images, there may be one light source in the studio to create 2D images of items with different rotation angles as described above, however, in 3D images, there may be multiple light sources in the studio to create 3D images of items with different rotation angles as described above.
[0075] These forms of shading can be implemented in a variety of ways. For example, the UI interface is position-aware, so a JavaScript algorithm detects the coordinates when an image of an item is placed or positioned on the virtual ear. The shading can be different for each virtual skin type, and the color can be different for each virtual skin tone. Each virtual skin tone can have its own shading, hue / color, density (opacity), position / placement (top, left, right, and bottom), or other properties.
[0076] The UI can be programmed to allow a user to upload an image depicting their ear (e.g., a selfie taken from a webcam, smartphone camera, tablet camera, laptop camera, or smart mirror camera), and apply a dynamic shadow according to the virtual skin tone detected within the ear shown in the image. When an item is placed or positioned on the virtual ear, a snap or portion of virtual skin surrounds the item. From this skin snap or portion, the virtual skin tone can be obtained via an average skin hex or hexadecimal color code. Once the average skin tone hexadecimal color code is obtained, a relative shadow color is applied to the item. For the virtual skin tone, an image depicting the user's own ear can be scanned pixel-by-pixel. The UI can be programmed to apply reflections, lights, and shadows from the virtual skin to the item. For example, virtual skin reflections can be applied to metallic (or non-metallic) surfaces of the item. The virtual skin tone can be dynamically selected by reading the average hexadecimal color of the virtual skin area surrounding the item tried on the virtual ear. As shown in FIG. 22, the virtual earring shown on the right has a drop shadow added to make the virtual earring appear more realistic and three-dimensional, while the virtual earring shown on the left presents the virtual earring without a drop shadow.
[0077] FIG. 23 illustrates an embodiment of virtual earrings virtually tried on during a virtual try-on as something not recommended or possible (although possible) in accordance with various principles of the present disclosure. FIG. 24 illustrates an embodiment of virtual earrings virtually tried on during a virtual try-on as something recommended or possible in accordance with various principles of the present disclosure. The UI is programmed to recognize the positioning of multiple items to create different looks or to compare and contrast different looks or items. A user of the UI is free to add as many items as desired (although this number of items may be limited to a preset amount) so that the user can come up with the desired look they wish to see. Thus, the UI allows for the addition of multiple items and the addition of the same item multiple times to the virtual ear. Once an item is selected and placed or positioned on the virtual ear, it should not be possible to place other items on top of that item (although it is possible). Several techniques can be used to restrict the end user from placing or positioning items on top of each other, and these techniques can use magnetic effects as described above to move newly added items to the closest possible position when items are attempted to be placed on top of each other on the virtual ear, so that the newly added item is not placed or moved on top of an older item that has already been virtually tried on the virtual ear.
[0078] This awareness of the positioning of multiple items can be implemented in various ways. For example, each time an item is placed or positioned on the virtual ear, a script (e.g., JavaScript) tracks the virtual location and virtual zone of the placement or positioning. The script stacks the virtual locations and, upon an item drop event, verifies whether the virtual location overlaps any other items. The script then invokes or activates a magnetic effect to find the closest possible placement for the item, while recognizing various constraints of placement of the virtual anatomical region based on the ear canvas or map.
[0079] FIG. 25 illustrates an embodiment of virtual ears shown as left and right ears during virtual try-on, in accordance with various principles of the present disclosure. Specifically, the UI is programmed to present a left front view of the virtual ear or a right front view of the virtual ear. The user can place items on both the left and right virtual ears presented in a front-facing orientation within the virtual try-on window based on the user's preference. The user can switch views between the left and right virtual ears by clicking a selection button (or another user-input visual element) within the UI for the preferred ear on which to virtually try on the item. As described above, both views of the virtual ear (left and right) are mapped to the exact same zone, size, and all other configurations necessary to provide accurate placement, taking into account inversion, mirroring, or symmetry. When switching from the right view to the left view, or vice versa, the UI may or may not automatically place or position the item the user is currently virtually trying on in the corresponding spot on the newly switched virtual ear view. For example, the UI may provide the freedom to place and work with different items on different virtual ears as needed. The different virtual ears may or may not be displayed simultaneously. As shown in Figure 25, different items have been added to the virtual left and right ear views, but the same items are also possible as described above.
[0080] This switching between the left front view of the virtual ear and the right front view of the virtual ear can be implemented in various ways. For example, various scripts (e.g., JavaScript) that manage placement, dragging, dropping, panning, moving, zooming, and other techniques, including magnetic effects and virtual zone management, can be configured differently for each ear, but can also be configured similarly. With these two data sets, the data set for all calculations and placement changes depending on the user's switch. For example, the item images for the different views can be flipped for different ear images. For example, because each virtual ear view provides similar functionality, there can be a shared core algorithm for virtually trying on items for both virtual ear views, but the data sets can be different for different virtual ears. For example, the different data sets can be from the user, and the virtual right ear view and virtual left ear view need not be symmetrical to each other, but can be. The UI can apply the virtual ear view switching in various ways. For example, there can be logic having pseudocode such as the following: Step performLeftRightSwitch(): 1. NewSide ← Get the ear side to switch to 2. Change the ear image in the dashboard 3. Update all virtual anatomical regions of the new ear 4. Update all virtual zones for new areas 5. Delete all additional items from OldSide 6.Update all previous additions to NewSide 7. Back
[0081] 26-27 illustrate embodiments of a virtual ear that is zoomed during virtual try-on, in accordance with various principles of the present disclosure. Specifically, the user is provided with zoom functionality through + and - icons on the UI (although other icons can be used). The + function increases the size of the virtual ear, and the - function decreases the size. The default zoom is set to 0, meaning this is the smallest view the user can set. There are seven (or more or fewer) zoom levels, each magnifying the view a little more than the previous one.
[0082] Such a zoom function can be implemented in various ways. For example, the zoom level is one parameter, such as the virtual left ear view or the virtual right ear view. The zoom level acts as a switch that adds a multiplier to all placement and calculations. When the user presses the zoom button, the UI proportionally increases the height and width of the virtual ear and the currently placed item. The UI also recalculates the pixels in which the item will be placed in the zoom view, the new boundaries of the zone, etc. If an item is placed or positioned while the zoom function is on, the multiplier acts as the basis for calculating the item's exact size at the zoom setting. Note that size in pixels = size in mm * 3.8 * current zoom level. As shown in Figures 26-27, the virtual ear is zoomed in from 100% to 250%, and the items are scaled or resized proportionally. The UI can apply zooming in various ways. For example, there can be logic with pseudocode such as the following: Step updateZoomLevel(): 1.newZoomLevel←Get the new zoom level to apply 2. Calculate and update the ear image size for the new zoom level a.newSize=InitialSize*zoomLevel...Equation (1) 3. Calculate and update the size of the virtual anatomical region at the new zoom level (using equation (1)). 4. Calculate and update the virtual zone size at the new zoom level 5. Calculate and update item sizes in the virtual ear 6. Back
[0083] FIG. 28 illustrates an embodiment of a virtual ear that is panned or moved during virtual try-on, in accordance with various principles of the present disclosure. Specifically, the UI can be programmed to enable panning or movement. When zoomed in on the virtual ear, the user may wish to pan (move) the virtual ear to view other areas of the virtual ear. The user can be provided with a way to move the virtual ear within the virtual try-on window when zoomed in. The user can begin dragging the virtual ear up and down or left and right. As the user moves the virtual ear, all items, virtual anatomical regions, and virtual zones move automatically. For example, as the user drags the virtual ear within the virtual try-on window, the UI records the relative moment, causing other content, virtual zones, and previously placed items in the corresponding virtual anatomical regions to move accordingly. This functionality can be implemented in various ways (e.g., JavaScript). The UI can apply this panning or movement in various ways. For example, there can be logic having pseudocode such as the following: Step performPanning(): 1. movementX ← Get the number of pixels dragged in the X-axis direction 2. movementY ← Gets the number of pixels dragged on the Y axis 3. Reposition the ear image by movementX and movementY 4. Rearrange the area by movementX and movementY 5. Rearrange zones by movementX and movementY 6. Reposition the product in the ear using movement X and movement Y 7. Back
[0084] FIG. 29 illustrates an embodiment of a virtual earring that spins relative to the virtual ear in response to user input regarding the virtual ear during virtual try-on, in accordance with various principles of the present disclosure. Specifically, once a studded virtual earring is placed or positioned on the virtual ear, the user may wish to spin the item to see how the style looks. The user may be provided with a pop-up, menu, or sidebar, whether in the virtual try-on window or elsewhere, that includes a user input element (e.g., a spinner, a rotating wheel, a knob, a dial) programmed to allow the user to spin the virtual earring around the stud once it is placed or positioned on the virtual ear. For example, if the user is provided with a rotating wheel, the user may spin the virtual earring to any desired angle, whether clockwise or counterclockwise. Note that if the spinning of the virtual earring extends beyond the tacking constraints of the designated area as described above, the UI may be programmed to return the spin to the best possible spin angle so that the virtual earring does not appear to puncture or scratch the virtual skin.
[0085] The spin function can be implemented in various ways. For example, the spin function can be operated by a script library (e.g., a JavaScript library). When spinning the virtual earring, the UI can be programmed to check if any part of the virtual earring intersects with a tacking area as described above, and if not, allow the spin angle, or if it does, revert the spin angle to the previous spin angle. The UI can apply this spin in various ways. For example, there can be logic having pseudocode such as the following: Step performSpinning(): 1. currentSpinAngle ← Gets the item's current spin angle 2.spinAngle←Get the spin angle to be applied 3. Apply the specified spinAngle to the item 4. Check that the new item coordinates do not cross the tacking boundary 5. When it crosses a boundary Set a.spinAngle back to currentSpinAngle 6. Back
[0086] FIG. 30 illustrates an embodiment of a virtual ear in which the virtual skin tone changes during virtual try-on, in accordance with various principles of the present disclosure. Specifically, the UI is programmed to allow the user to select a virtual skin tone from a range of skin tones within the UI. Once the user selects an appropriate virtual skin tone, the ear image can be changed to match the selected virtual skin tone (e.g., a new image, a filter), or the virtual skin tone can be changed without changing the ear image. The virtual skin tone selection does not affect the placement of items; all placed items remain in the same location. The shadows of the items can change to match the selected virtual skin tone. Once the user selects a virtual skin tone, the corresponding skin image can be retrieved from the server and updated on the UI, or the virtual skin tone can be changed without changing the ear image. The new shadow settings for the selected virtual skin tone can also be applied to the items.
[0087] The UI can also be programmed to save the appearance created or edited by the user within the UI. Once the user is satisfied with the placement of various items, they may wish to save the virtual workspace for later modification or to show to another person. The UI can be programmed to allow the user to save the appearance to the user's account associated with the UI, the platform providing the UI, or the e-commerce platform of the item seller. This form of saving the virtual workspace can be enabled in various ways. For example, when the user clicks an input element for a save option, all added items are saved to the user's account along with their locations (e.g., ear canvas or map-based coordinates). The user can later log in to their account and resume the process if needed. The virtual workspace can be erased after a preset period of time (e.g., three days, two weeks, one month).
[0088] The UI can be programmed to allow users to collaborate on the appearance they create or edit within the UI. A user may wish to solicit suggestions on item placement. A user may wish to share an editable version of their virtual workspace. The UI can be programmed to allow a user to share their editable virtual workspace with any other user, allowing the other user to read, write, delete, or perform other computational functions. This functionality can be implemented in a variety of ways. For example, as disclosed herein, this process can be driven by scripts (e.g., JavaScript) and a database that stores and manages access to the virtual workspace. As described above, the database can also store a catalog of items. A user can first save their current virtual workspace and then share this saved workspace with other users (e.g., via email, text message, or social media post). Other users can receive a link to this workspace and activate the link to access the shared virtual workspace and make edits there as needed. These edits can be saved manually or periodically (e.g., every minute, every 30 seconds). These edits are visible to all collaborators in real time.
[0089] The UI can be programmed to allow the user to download the look. Once the user is satisfied with the arrangement of the various items, the user may wish to save the entire look to a file (e.g., a PDF file, an image file). The UI can be programmed to present a user input element (e.g., a button, a hyperlink) that the user activates to save the look to a file and download the file to the user's computing device (e.g., a desktop, a laptop). This download functionality can be implemented in a variety of ways. For example, when the user clicks on the user input element for the download option, a new image is created with the look created or edited by the user, and all associated visual elements, including virtual ears and items, are added to the file. The file is then downloaded to the user's browser.
[0090] The UI can be programmed to allow a user to share the look on various social media networks. Once the user is satisfied with the arrangement of various items, they may wish to share some or all of the look with friends via email or social media interaction. The UI can be programmed to have hyperlinks that enable such sharing from the UI. This social sharing functionality can be implemented in various ways. For example, when a user clicks on a user input element (e.g., a button, a hyperlink) for a sharing option, the UI may cause a new popup to appear prompting the user to select a sharing method (e.g., email, Facebook, Instagram). Once the user selects a method, a third-party system is opened or a third-party API is called or invoked to log in to the corresponding social media, after which the look is posted from the user's account. Note that the UI or its underlying system may or may not remember the user's credentials for the sharing method.
[0091] As described above, the various techniques described herein allow a user to more accurately or realistically virtually try on, preview, or simulate various pieces of jewelry (or other wearables) on a virtual ear, body, or skin. Similarly, the various techniques described herein allow a user to plan for future actual piercings by virtually trying on, previewing, or simulating various pieces of jewelry (or other wearables) at various virtual piercing locations that the user does not yet have. Similarly, the various techniques described herein allow a user to customize the size of a virtual jewelry (or other wearable). For example, after uploading an image of the user's own ear with a current piercing (e.g., via a smartphone camera, tablet camera, webcam camera, or dedicated camera), a server can process the image via various computer vision techniques (e.g., object detection, edge detection, color contrast, depth detection) to identify (e.g., detect, recognize) the current piercing in order to accurately size the jewelry to be virtually tried on, previewed, or simulated. This can be achieved in multiple ways. For example, one method is by recognizing various image characteristics of the ear piercing / divot in the image uploaded by the user. For example, the scale of the ear depicted in the image can be calibrated to the UI. Knowing the identified user's current piercing and the relative scale of the user's ear depicted in the image, particularly the distance between the current piercing and the edge of the user's ear depicted in the image, allows the UI to output suggestions (e.g., text, images, sounds) based on where the current piercing (e.g., divot, hole) virtually resides in the user's ear depicted in the image. For example, the server can detect a hole (or its surrounding area) found in a divot / dimple in the skin of the user's ear depicted in the image relative to the anatomical outer edge of the ear shown in the image.When a user places or positions a new item image on the uploaded ear image currently depicted as a virtual ear to virtually try on or preview or simulate a new item on the virtual ear formed from the ear depicted in the image uploaded by the user, the depicted item (e.g., virtual earrings with a ring pattern) can be positioned more realistically, and the "comfort" of the item (e.g., virtual earrings with a ring pattern) can be accurately measured for the user's unique ear pattern depicted in the image uploaded by the user. Similarly, unique styling suggestions can also be made to the user.
[0092] As noted above, the various techniques described herein enable more realistic virtual try-on, preview, or simulation than currently known approaches for providing such functionality. Unlike some such approaches, which may allow a user to virtually try on an item on an earlobe image at a fixed location on the earlobe image while sitting in one orientation, the various techniques described herein enable a user to virtually try on, preview, or simulate an item by dragging and dropping the item (or otherwise selecting the item and virtual location) onto some, many, most, all, or any pierceable areas on the ear image. Furthermore, unlike some such approaches, the various techniques described herein enable virtual try-on, preview, or simulation that realistically renders item images on the virtual ear, taking into account virtual gravity effects, virtual ear morphology, volume, and scale. Also, unlike some such approaches, the various techniques described herein enable customized virtual try-on, preview, or simulation of an item (e.g., spinning the item on the virtual ear). Furthermore, unlike some of these approaches, the various techniques described herein allow a user to place or position a studded virtual earring on a virtual ear (similar to how a user would place a real stud in their ear in real life) and spin the virtual earring to some, many, most, all, or any desired angle. The UI allows the virtual earring to be virtually tried on, previewed, and simulated while taking into account the scale and boundaries of the virtual earring. For example, the virtual earring may avoid rotation beyond a predetermined boundary. For example, if an earring in the real world would not rotate due to hitting or contact with the skin, this condition may be virtually mimicked within the UI. As described above, such functionality may be enabled through mapping of some, many, most, all, or any of the boundaries of the flaps and ridges of the virtual ear.Additionally, various techniques described herein enable the UI to be programmed to prevent some types of virtual earrings (e.g., stud-equipped) from being placed or positioned (e.g., dragged and dropped) at specific virtual locations on the virtual ear for virtual try-on, preview, or simulation because such placement is not possible in the real world. For example, if a user desires to select the width of a virtual stud and attempts to place or position the stud image in the conch area of the virtual ear, and, as in the real world, the virtual stud is too wide to fit, the stud image will magnetically snap to the closest location to the selected location where it can fit, as described above. For example, this magnetic snapping is possible because the UI understands the widths of all folds and crevices in the preprogrammed mapped topology of the virtual ear. Additionally, various techniques described herein may enable virtual try-on, preview, or simulation of multiple items simultaneously on the virtual ear. For example, as described above, a user can virtually try on a first item on a virtual ear and then virtually try on a second item, different or identical to the first item, while the first item is being virtually tried on the virtual ear to compare or contrast how the first item compares to the second item in different virtual locations on the virtual ear. Furthermore, the UI also allows for various layering abilities, such as allowing a user to add charm images to a ring image. The various techniques described herein also allow the UI to swivel, spin, or evaluate items while they are being virtually tried on, previewed, or simulated. Furthermore, the various techniques described herein allow the UI to present items while taking into account gravity, ear morphology, and the type of item being tried on, previewed, or simulated. For example, the UI allows items to be virtually tried on, previewed, or simulated on a virtual ear while taking into account various piercing principles, piercing angles, piercing rules, and pierceable locations on the ear.For example, as described above, the UI may allow items to be virtually tried on or previewed or simulated on the virtual ear while dynamically hiding (e.g., obscuring) or unhiding items when portions of them are placed or positioned below a flap of the virtual ear (e.g., below the virtual helix region), with such dynamic hiding or unhiding being based on an ear canvas or map. Additionally, as described above, various techniques described herein may allow a user's existing collection at a designated retailer (e.g., e-commerce data) to be automatically imported into the UI, or jewelry from other brands to be automatically imported into the UI for virtual try-on or preview or simulation.
[0093] 31-33 illustrate various image sets presenting various sets of virtual earrings from different sets of rotation angles in accordance with various principles of the present disclosure. Specifically, as described above, an item (e.g., virtual earrings) can be represented in various ways. For example, as shown in FIGS. 31-33, an item can be associated with image sets depicting the item from different sets of rotation angles. For example, the sets of rotation angles can differ from each other by multiple degrees (e.g., 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, or more). As shown in FIG. 31, the image sets can be or be formed from a set of photographs of the actual item at such different rotation angles. As shown in FIGS. 32 and 33, the image sets can be or be formed from CAD renderings. For example, the CAD renderings can be scanned and the image sets can be extracted from the CAD renderings. After the image set is created, the administrator operates an administrator console or panel to input various parameters for the items (e.g., dimensions, width, length, height, depth, inner diameter, item type, wearing position, insertion point, right or left ear fit) that are applicable to some, many, most, or all of the images selected from the image set. Thus, the image set and these parameters collectively enable the matching placement for each item to be determined, thereby enabling the UI to perform the virtual try-on as described above.
[0094] FIG. 34 illustrates an embodiment of a virtual ear segmented by anatomical regions in accordance with various principles of the present disclosure. Specifically, the UI can facilitate virtual try-on as described above based on various rotation angles associated with the illustrated virtual earring, virtual stud, virtual ring, and virtual piercing. For example, as described above, the UI is programmed to allow the virtual earring and the corresponding image of the virtual stud or virtual ring to appear to rotate at discrete angles directly apart on the view depending on the intended area of virtual ear try-on. These angles are determined by over 25 years of development of the Maria Tash piercing methodology of body piercing and "front-facing" angles. For example, the virtual ear includes any part that can be pierced with modern technology. These virtual anatomical regions are referred to as the earlobe, laminated earlobe, helix, tashruk, tragus, antitragus, daith, rook, anterior helix, reverse concha, and concha.
[0095] The UI can be programmed to understand piercing rules in conjunction with an understanding of the overall ear topology and the ring inner / outer diameters and length / width of various stud jewelry. Each virtual piercing location can be planned as a 3D tunnel rather than a 1D dot. Actual, precise piercings are not determined by dots. Actual, precise needle placement may require knowledge of the angle and depth at which the needle enters the skin, rather than a dot on the skin. These 3D tunnels can be rendered through various imaging angles. Modern piercings are no longer limited to marking a dot on the skin above the ear; jewelry does not penetrate tissue straight, vertically, with zero rotation, like stud earrings (or other earrings). Therefore, the UI can be programmed to present virtual earrings that are more sophisticated in their realism and adherence to body piercing rules and Maria Tash's piercing angle aesthetic. This virtual try-on method uses various tools to understand and accurately render Maria Tash's piercing technique.
[0096] For example, as described above, the UI can be programmed to enable virtual try-on of virtual earrings on the virtual ear based on segmenting the virtual ear (e.g., an image of the virtual ear presented in a frontal orientation) into a set of virtual anatomical regions corresponding to areas of the virtual ear having common attributes for piercing. These virtual anatomical regions are further segmented into polygonal (e.g., rectangular, triangular, honeycomb, square) virtual zones that cover some, many, most, or all of the pierceable areas on the virtual ear.
[0097] As shown in FIG. 34, the virtual ear is segmented into a set of virtual anatomical regions, which are further segmented into a set of virtual zones, each of which is a polygon, and which may or may not be adjacent to one another, thereby forming an ear canvas or map. Thus, new piercing placements, piercing techniques, and jewelry for these piercings (e.g., virtual earrings) can be invented. The UI can therefore be programmed to understand these scenarios. For example, some of the new piercings or virtual anatomical regions include the helix drape region, the rook drape region, and the vertical conch region.
[0098] FIG. 35 illustrates an embodiment of a plane for rotating a virtual earring in accordance with various principles of the present disclosure. Specifically, as described above, the image set for a selected virtual earring presents the virtual earring from various viewing angles (e.g., rotation angles), whether isometric, frontal, or other views. Through extensive testing and research, anatomical regions were simplified into viewing angles. In reality, these angles may be unique to each user. In augmented reality, these angles represent the standard average at which most people wear jewelry. Note that as more distinct jewelry (e.g., virtual earrings) are developed, viewing angles may change, or new or other viewing angles may be added. As shown in FIG. 35, the viewing angles for an image set such as those described above may be rotated along the XZ plane (shown as the orange plane).
[0099] 36 illustrates an embodiment of a virtual ear segmented by various zone sets within various anatomical region sets, with each anatomical region having its own respective rotation angle for each virtual zone set in which virtual earrings can be virtually tried on, in accordance with various principles of the present disclosure. As discussed above, the virtual earrings may include studs. Thus, the viewing angles (reflected for the virtual left and right ears) used for such virtual earrings may be 0, 6, and 12 degrees for the virtual right ear and 0, −6, and −12 degrees (e.g., opposite) for the virtual left ear. As shown in FIG. 36, the green virtual zone = 0 degree, the purple virtual zone = 6 / −6 degrees, and the black virtual zone = 12 / −12 degrees.
[0100] 37 illustrates various virtual earring embodiments virtually tried on a virtual ear, angled according to which anatomical zone receives each respective virtual earring, in accordance with various principles of the present disclosure, with example studs and viewing angles in the UI corresponding to the green, purple, and black zones in FIG.
[0101] As described above, the UI can be programmed to enable "size awareness." This can be achieved by programming the UI to know where a studded virtual earring (or another virtual earring) could not be placed or positioned on the virtual ear to mimic the real world. For example, if a user desires to select a wide studded virtual earring and attempts to place or move the wide studded virtual earring over the virtual concha region, but the wide studded virtual earring is too large to fit in the real world, the wide studded virtual earring magnetically snaps to the nearest virtual zone where the selected wide studded virtual earring can fit. As described above, the UI can be programmed to understand the widths of various folds and gaps in the mapped topology of the virtual ear.
[0102] 38-40 illustrate embodiments of virtual earrings that spin relative to the virtual ear in response to user input related to the virtual ear, in accordance with various principles of the present disclosure. As described above, the UI can be programmed to spin the virtual earrings while they are being virtually tried on the virtual ear. For example, as shown in FIGS. 38-40, when a user selects a studded virtual earring, the user can be presented with a window or menu having a spin control element (e.g., a spin wheel, knob, or dial) programmed to freely or incrementally spin (e.g., swivel, rotate, pivot) the virtual earring relative to the virtual ear at a point on the virtual ear corresponding to where a real earring reflecting the virtual earring would be inserted into the real ear. For example, such increments can be in increments of one degree (or more or less). Note that such spinning may or may not occur on a different axis than the respective viewing angles. For example, such spinning can be a rotation about an XY or XZ plane, while the respective viewing angles can be a rotation about an XZ or XY plane as described above. Note that some virtual earrings may include studs that are not round or symmetrical, so the user can spin the virtual earring over the virtual ear in a desired orientation relative to the virtual ear.
[0103] 41-42 illustrate embodiments of virtual earrings with overlapping studs in accordance with various principles of the present disclosure. As described above, the UI can be programmed to present the virtual earrings while accounting for potential overlap that may occur when actual earrings that mirror the virtual earrings are worn. For example, such overlap can occur in a variety of scenarios. One such scenario occurs when the anatomical structure of the ear overlaps the virtual earring. Accordingly, the UI can be programmed to account for such overlap based on the definition of virtual regions that are hollow and located below the virtual superior fold of the virtual helix region, below the virtual rook region and virtual inverted concha region, and behind the virtual antitragus region. For example, the virtual ear can have a map indicating how much space exists below the virtual fold for the virtual earring with the virtual stud to swivel or hide.
[0104] FIG. 43 illustrates an embodiment of a virtual ear segmented with various zone sets in various anatomical regions programmed for rotation of a virtual earring with a ring, in accordance with various principles of the present disclosure. As discussed above, some virtual earrings include rings (commonly referred to as clickers or hoops). Accordingly, the imaging angles used for such rings may be -24°, -18°, 18°, and 24°, while the imaging angle used for a dice ring may be -6° forward. Note that while the ring placement is more complex than the stud placement, and the piercing for the ring has the same three-dimensional tunnel placement angle, the UI is programmed to take into account realism, such as how virtual gravity pulls down differently in different parts of the virtual ear, how this virtual droop varies depending on the diameter of the virtual earring or virtual ear, and how much of the ring is obscured by the virtual ear tissue when it wraps behind the virtual skin of the virtual ear. Similarly, in some situations, a basic principle for ring placement may exist, such as the inner diameter of the virtual ring being less than or equal to the maximum distance between the virtual piercing hole (e.g., virtual zone) for that ring style and the edge of the virtual anatomy. For example, a ring with a 5 mm inner diameter can be placed up to 5 mm from the edge of the virtual anatomy of the virtual ear. Similarly, the angle of the ring can be based on the rules of forward Maria Tash piercing angle aesthetics + body piercing. Also, several virtual rings can be placed anywhere within the virtual ear, some, many, most, all, or anywhere, taking into account the virtual inner diameter. This inner diameter is a critical measurement that determines whether the ring can clear the virtual edge of any virtual tissue. Therefore, some, many, most, any, or all of the ring jewelry pieces have their inner and outer diameters measured and entered via the administrator console or panel for correct scaling. As shown in Figure 43 and described above, there is a zone-to-product rotation angle mapping for such rings, with purple virtual zones using 18-degree rings in the XZ plane and black virtual zones using 24-degree rings in the XZ plane.
[0105] FIG. 44 illustrates an embodiment of a virtual gravity effect implemented in a virtual earring virtually tried on a virtual ear, in accordance with various principles of the present disclosure. Inner diameter measurements can be important or technically advantageous for a UI to enable virtual earrings to be virtually tried on a virtual ear. Specifically, the gravity tool's basic function is to virtually pull jewelry downward from a virtual insertion point or piercing placement. In the illustration, the ring's ability to virtually hang straight down with virtual gravity is related to the inner diameter and the virtual piercing location on the virtual ear. Because real earlobes are commonly pierced, rendering this scenario can be relatively easy. However, adding additional rings to the real ear changes the topology of the real ear, and the anatomy of the real ear begins to prevent the jewelry from hanging straight down. Thus, if a user drags (or otherwise places or virtually tries on) a virtual earring with a ring to a spot where the virtual diameter does not clear the virtual anatomy, as in a real-world mirror, the virtual ring will snap to the closest position (e.g., virtual zone) to the originally selected spot where the diameter clears and the ring fits snugly. The spot the UI snaps to is merely a suggestion for the jewelry. If the user desires to place or position the virtual jewelry in the intended location, they can reposition the virtual jewelry or select a larger ring size. If the selected ring virtually fits, the virtual gravity tool can place the ring in a natural virtual resting position. This virtual sagging / suspension can be determined by the distance from the virtual piercing to the virtual edge of the virtual anatomy and the inner diameter of the ring. As shown in FIG. 44, if the placement of the virtual piercing set by the administrator via the administrator console or panel simulates 4.5 mm from the virtual edge of the virtual anatomy, and the inner diameter of the ring is 9.5 mm, the virtual ring can drop to a more vertical position. When a user virtually places or positions a 5mm ring that an administrator has set via an administrator console or panel in the same virtual piercing placement, the virtual ring will be suspended more horizontally, and this relationship can be called "comfort."
[0106] 45-48 illustrate embodiments of images from an image set corresponding to a virtual earring being virtually tried on a virtual ear while an administrator configures the image in a virtual try-on administrator console or panel according to a set of anatomical regions of the virtual ear and a virtual try-on location within a set of virtual zones of the virtual ear, as well as a virtual entry point or exit point from the virtual ear, in accordance with various principles of the present disclosure. Note that FIG. 46 shows where the inner diameter is located on the virtual earring. Similarly, FIG. 47 shows where the insertion point is located on the virtual earring. Similarly, FIG. 48 illustrates overlapping, where the ring addresses the overlapping of the anatomical structure. The ring may need to be cropped to appear to wrap around the virtual anatomical structure. A border can be drawn on the trailing edge (e.g., invisible to the user), which can be done by the administrator via the administrator console or panel. The border defines when the jewelry begins to disappear behind the anatomical structure. The ring can be overlapped with charms or other products to appear to exist in a space further back.
[0107] 48-58 illustrate various embodiments of virtual earrings with various virtual rings virtually tried on in various anatomical regions of a virtual ear in accordance with various principles of the present disclosure. These virtual earrings are shown virtually tried on in the virtual lobe, antitragus, anterior helix / earhead, tragus, rook, and other virtual regions of the virtual ear. When a portion of the virtual earring is virtually tried on in the virtual upper helix region, the illustration shows that the virtual earring has a ring located near the top of the virtual helix, allowing the ring to rise vertically if snug. The virtual piercing placement relative to the virtual edge of the virtual anatomy can be depicted as a virtual vertical line. When a portion of the virtual earring is virtually tried on in the concha, the virtual rest position can generally be more horizontal if the virtual has a ring. For example, in some situations, a 9.5 mm inner diameter set by an administrator for a particular ring via an administrator console or panel may be the minimum ring size that will virtually fit. If a portion of the virtual earring has a ring in the rook or reverse concha virtual region, the illustration shows these rings suspending at approximately 90 degrees, or between 90 and 60 degrees depending on the inner diameter. Sometimes, there are virtual regions where rings are not allowed due to lack of practicality and the large diameter required to clear the tissue. If a portion of the virtual earring has a ring in the virtual die region, a frontal shot can be used. For example, a frontal shot can be taken while rotating 6 degrees in the XZ plane. This information helps demonstrate how the UI allows for relatively accurate rendering of the desired piercing angle. As shown in Figure 57, the virtual earring shown on the left is rotated 6 degrees, as opposed to the virtual earring shown on the right, which is rotated 0 degrees.
[0108] FIG. 59 illustrates an embodiment of a virtual charm added to a virtual earring virtually tried on a virtual ear in accordance with various principles of the present disclosure. FIG. 60 illustrates an embodiment of a virtual charm virtually tried on a virtual ear in accordance with various principles of the present disclosure. FIGS. 68-69 illustrate various embodiments of virtual charms on a virtual ring and a virtual chain wrap virtually tried on in accordance with various principles of the present disclosure. Specifically, there are various virtual layering rings, virtual moving parts, and virtual chains, as described below. The UI can be programmed to virtually try on virtual earrings with charms. A user can add up to a certain number of charms to a virtual earring (e.g., 1, 2, 3, 4, 5, or 6 or more). Illustratively, such charms can be pulled directly downward by virtual gravity, as described above. Illustratively, such charms can follow the same viewing angle as the element to which they are connected. Illustratively, such charms can be layered on most rings. Illustratively, such charms can have an inner diameter that must be considered. If the inside diameter of the jump ring is smaller than the width of the jewelry set by the administrator via the administrator console or panel, the charm may not be virtually suitable for virtual try-on. If the inside diameter of the jump ring is larger than the width of the jewelry, the charm may be virtually suitable for virtual try-on. Note that Figure 59 shows one type of virtual charm on a virtual piercing, while Figure 60 shows another type of virtual charm on a virtual piercing and a virtual earring with a chain wrap.
[0109] FIG. 61 illustrates an embodiment of various virtual charms with the same angle virtually tried on a virtual ear in accordance with various principles of the present disclosure. A virtual earring can have at least two charms. As shown in FIG. 61, the virtual earring shown on the left has multi-tone metal styling, in contrast to the virtual earring shown on the right having white metal styling. Both virtual earrings show the same items (star charm, lightning bolt charm, 8mm ring) but in different metal tones for visual clarity. The ring viewing angle is -6 degrees (although other angles are possible). The charms follow the same viewing angles as described above.
[0110] FIG. 62 illustrates an embodiment of virtual handcuff earrings virtually tried on a virtual ear in accordance with various principles of the present disclosure. The virtual earrings can be embodied as handcuffs that can be virtually tried on in various ways as described herein. In the illustration, several virtual styling techniques allow the handcuffs to be worn as a way to connect two virtual earrings, and can also be used as a charm, or worn in one piercing, with the second ring hanging straight down. FIG. 62 shows handcuffs with two virtual insertion points.
[0111] FIG. 63 illustrates an embodiment of virtual handcuff earrings virtually tried on as charms on a virtual ear in accordance with various principles of the present disclosure. As shown in FIG. 63, the UI is programmed to understand that the base of the design is two virtual rings. In the illustration, there is a virtual chain to which the two virtual handcuff rings are attached. In the illustration, the UI is programmed to allow the user to select the placement of both virtual rings. In this scenario, the chain and rings can be virtually rendered naturally. In the illustration, the virtual chain has fluidity with each virtual piercing placement, allowing the virtual chain to settle differently with virtual gravity, anatomy, or other parameters. All of these virtual chain scenarios can be virtually rendered. If the UI is programmed to allow an administrator or user to import 3D geometry, the virtual chain can automatically adjust as the user moves the virtual chain or virtual earrings on the virtual ear.
[0112] 64-65 illustrate an embodiment of a virtual earring with a bow virtually tried on with the bow virtually obscured while preventing the virtual earring from spinning, in accordance with various principles of the present disclosure. FIG. 66 illustrates an embodiment of a virtual ear with various anatomical regions in which the virtual earring can default to a constant spin angle depending on the respective anatomical region selected, in accordance with various principles of the present disclosure. FIG. 67 illustrates an embodiment of the bow of FIGS. 64-65 in which the bow is angled differently depending on which virtual zone in which virtual anatomical region of the virtual ear the bow is virtually tried on, in accordance with various principles of the present disclosure. Virtual earrings with a bow can have certain restrictions in the UI. For example, as shown in FIG. 66, the UI can allow such virtual earrings to be placed only in certain anatomical regions that allow such bow curves (e.g., the helix region, the superior concha). Similarly, the UI can prevent such virtual earrings from being virtually rotated while being virtually tried on the virtual ear. Similarly, the UI can allow such earrings to default to a spin angle depending on the virtual zone in which they are placed.
[0113] 70 illustrates an embodiment of a virtually tried-on virtual earring with a movable portion, in accordance with various principles of the present disclosure. In the figure, the movable portion can virtually dangle when the virtual earring has a ring attached at a more horizontal angle. For example, the ring in the virtual helix region, as shown in FIG. 70.
[0114] As described above, the UI can be programmed to show what a virtual or real left and right ear would look like viewed together on one screen. For example, the virtual ear could be a model ear as described above, and the real ear could be from a selfie uploaded or captured by the user (e.g., via a smartphone, smart mirror, or laptop) as described above. The user can view both the virtual or real right and left ears together on one screen (e.g., side-by-side, side-by-side, or diagonally) as if viewing them in a mirror. For example, this could be useful for a jewelry retailer where most of the jewelry they sell is sold individually and where customers design asymmetrical looks. This can be done to gauge not only what the diameters look like on the same virtual or real ears, but also how out of proportion or out of shape they appear when viewed together. Since jewelry can amplify or distract from facial blemishes or eyes, the UI imports the end user's own face in addition to or instead of actual ears, and while the curation as described above takes all of these aspects into account to create a good look, taking virtual gravity into account can affect placement for realism so the appearance of the ear and jewelry can be presented in relation to its full features, blemishes and imperfections.
[0115] UIs can be programmed for use with dedicated applications, mobile apps, web browsers, and other technologies. For example, smart glasses or smart mirrors (mirrors with cameras) can exist. In these situations, the 3D experience can differ from 2D, and therefore such smart mirror and real-time UI experiences may require a real-time video feed and an .obj file (or other suitable format) attached to it. What can be achieved in 2D (e.g., an image extracted from a 3D .obj file) is tapping a video feed from a smart mirror's camera or a smartphone or another camera-equipped device. For example, a person can record the rotation of their face using the smartphone's front (or back) camera. The smartphone can manipulate this video feed by placing or overlaying jewelry on it, which the user can then play back on the smartphone. For example, similar technology could allow users to upload an image of their own ear. For example, a user can stand in front of a smart mirror (e.g., flat, cubic, V-shaped, C-shaped, U-shaped, bi-fold, tri-fold, arc-shaped), regardless of whether the smart mirror has a display (e.g., touch screen, non-touch screen) below or to the side along with a reflecting mirror, or whether the display functions as a virtual mirror; the smart mirror has at least one camera or stereo camera (a depth camera or a pair of cameras enabling stereoscopic vision), each of which can be located on a panel of the smart mirror, or can have multiple cameras or stereo cameras (a depth camera or a pair of cameras enabling stereoscopic vision). The smart mirror can include a microphone, a speaker, and a networking interface (e.g., a modem, Wi-Fi card, Bluetooth chip). The user can have the mirror capture their right and left ears by looking right and left, such that both real ears are virtually presented on the display. If the display is touch-enabled, the user can touch, drag and drop, or otherwise manipulate such virtual ears or virtual earrings shown on the display.If the display is not touch-enabled, the user can do the same using contactless hand gestures or contactless finger tracking (e.g., for hygiene reasons if the smart mirror is present in a retail store). The smart mirror, whether touch-enabled or touchless, can also form a heat map for such virtual try-on, allowing management to collect relevant data. Similarly, the smart mirror may image the user via a camera or stereo camera (a depth camera or a pair of cameras that enable stereoscopic vision) and, based on such imaging, prompt the user to (a) remove a headwear item (e.g., a hat) if imaging of such ears is difficult, b) move long hair if imaging of such ears is difficult, (c) tilt back hair if imaging of such ears is difficult, (d) keep / keep current earrings on / on if imaging of the ears is difficult, (e) remove at least one current earring from the ear if imaging of the ears is difficult, or (f) remove a particular earring if imaging of the ears is difficult. For example, the smart mirror may identify the current earrings worn by the user and hide or overlay these current earrings when displaying the user's ears on the display, thereby allowing the user to virtually try on virtual earrings as desired in those locations where the current earrings are worn without removing the current earrings from those locations on their real ears. For example, the smart mirror may receive user input (e.g., touch, voice) while standing in front of the smart mirror before, during, after, or based on the user virtually trying on virtual earrings via the UI, and based on or in response to the user input, request another person (e.g., a salesperson or stylist) to approach the smart mirror to retrieve any real items that correspond to the virtual earrings that the user selected via the UI to virtually try on on their virtual ears.The request can be sent via a networking interface of the smart mirror that communicates (e.g., wired, wireless) with an output device (e.g., speaker, wearable, headset, electronic display) operated by or in proximity to the other person. For example, the smart mirror can be arcuate, bi-fold, tri-fold, or multi-panel, and can have one or more cameras that track the user's head, eyes, nose, torso, and ears in real time, and can predict earring movement based on virtual gravity if the user's head moves. For example, the smart mirror can employ a stereo camera (e.g., a depth camera or a pair of cameras that enable stereoscopic vision) to image the user's ears while the user is standing in front of the smart mirror, obtain corresponding ear measurements, estimate the size of the corresponding ear region based on such measurements, and then recommend various virtual earrings or their placements. As described above, smart mirrors can be embodied in various ways. For example, based on the above, the smart mirror can include a housing, a processor, a camera, and a display, where the housing houses the processor, the camera, and the display.The processor can be in communication with the camera and the display, and can be programmed to receive from the camera a left image presenting a front-facing left ear of a user standing in front of the camera and a right image presenting a front-facing right ear of a user standing in front of the camera, identify a virtual left ear from the left ear presented frontally in the left image, identify a virtual right ear from the right ear in the right image, set the virtual left ear to a left preset scale, set the virtual right ear to a right preset scale, identify a left set of virtual anatomical regions in the virtual left ear set at the left preset scale and a right set of virtual anatomical regions in the virtual right ear set at the right preset scale, segment each selected set from the left set of virtual anatomical regions into a left virtual region set, segment each selected set from the right set of virtual anatomical regions into a right virtual region set, simultaneously present the virtual left ear, the virtual right ear, and the virtual earring scale on the display, receive an input from the user while the virtual left ear, the virtual right ear, and the virtual earring are simultaneously presented on the display, and virtually try on a virtual earring on the virtual left ear or the virtual right ear on the display in response to the input. If a user wishes to upload an image of their ear from a smartphone or smart mirror or another camera-equipped computing device to or through the smart mirror or server as described above, they can take an image / upload an image (e.g., raster) or scan their ear on the computing device. As described above, the smart mirror or server reads the morphology of the ear image and applies virtual regions and virtual zones to it so that the image is ready for use.
[0116] As described above, the UI can work with various virtual body parts or objects (e.g., humans, mannequins, showcase models, body parts, heads, noses, ears, necks, arms, forearms, upper arms, wrists, torsos, navels, toes, fingers, clothing, shoes) and items (jewelry, earrings, necklaces, clothing, hats, rings, anklets, bracelets, tattoos), whether for jewelry, tattoos, acupuncture, clothing, or other uses. For example, these include necklaces, bracelets, face jewelry (e.g., nose / septum / nostril, lips / tongue / mouth, eyebrows, facial skin, accepts Monroe piercings), bow earrings, rings, skin, anklets, belly button barbells / waist chains, mix and match belly button pieces, acupuncture needles, belts, mapping tattoos on the body for preview, where the tattoos can curve with the virtual body, or the tattoos are previewed on a user-selected virtual skin tone.
[0117] As described above, the UI can be configured for various virtual body parts or virtual objects. Thus, in the context of acupuncture, many acupuncture treatments define the entire body, represented by the ear. Needles of a given thickness are applied to zones within the ear at given angles. Thus, these zones can be assigned virtual regions of the body rather than piercing names. For example, the dice virtual zone of the virtual ear can be the location of the liver in acupuncture. The imaging or rendering angle of the needle can represent how the acupuncture needle should "face forward" when inserted into that zone. The UI can be used for the complete torso and body, along with acupuncture treatments and zones applied to the complete body. That is, the body and its meridians are defined as virtual regions or zones, and in the ear, the meridians and organs of the body are defined in the ear zone. For example, specific angles can exist for specific functions. Note that the UI can be expanded to include all acupuncture areas (e.g., neck, fingers, hands). For example, needles can be imaged to teach or show how they can be applied to the ear (or another suitable body part image).
[0118] FIG. 71 illustrates an embodiment of various necklace lengths for virtually trying on a virtual necklace in accordance with various principles of the present disclosure. The UI can be programmed regarding the adjustability of such a necklace for the virtual try-on. For example, what are the minimum and maximum lengths (think of a belt). For example, with some necklaces, the UI may need to know whether the respective necklace is adjustable longitudinally and, if so, from what length to what maximum length (such as a belt with a minimum and maximum). The UI can graphically identify whether the virtual necklace is adjustable. If not, the UI can operate as a fixed "diameter." If so, the UI should place the virtual necklace around the user's neck, ask the user whether they want the virtual necklace to appear long or short by citing its minimum and maximum values, and then tell the user what length the UI applies to their skin. For example, neck size can be determined by clothing size. For example, as described above, the user can upload an image of their neck. For example, the UI can prompt the user to select the brand and size of a similar item purchase of a similar or different brand, and provide sizing advice. For example, the UI can understand what the optimal size for the desired look is based on various criteria (e.g., the user's profile, derived images) as the user drags (or otherwise positions or has positioned) a virtual necklace over the virtual neck. For example, a non-adjustable handcuff necklace may include a choker option that can be made relatively small. For a relatively thin woman, 14-15 inches may be a choker. For a man, the UI can recommend a necklace length if it knows the collar size. For a relatively heavy woman, a 16-inch necklace may fit tightly, creating a choker effect. The user can measure their neck circumference using a tape measure and base this on a size guide for women with thin necks that determines the drop for a given necklace length. Thus, the UI can mimic this functionality. Note that the virtually flexible chain needs to attach to the collarbone of the virtual neck to understand its topology.The UI can enable this through the mesh feature.
[0119] There can be a virtual layering principle for the virtual necklace. The UI can be programmed to use a selected virtual necklace length, preset by an administrator via an administrator console or panel, to determine the virtual drop of the virtual chain relative to how virtually tight it will be around the virtual neck (choker style) based on various size charts. For example, this can be done as described herein, but can be tailored to the necklace image and corresponding measurements. Thus, the UI can initially use an average (or predetermined) neck, face, and shoulders, and then the user can specify which design they want for which length of necklace, see how the designs look relative to each other, and whether the length of the virtual necklace chain needs to be adjusted to achieve aesthetic clearance between the virtual chain length and any virtual pendants or charms hanging from it. The virtual width of the neck can determine the fit of the virtual necklace chain. For example, as described above, a user can import their own neck (e.g., an image) and measure the circumference at the base of their neck, using this measurement as the length of the choker.
[0120] FIG. 72 illustrates an embodiment of various ring sizes for virtually trying on a virtual necklace in accordance with various principles of the present disclosure. Several virtual layering principles for the virtual try-on of virtual rings can exist. The UI can be programmed to adopt the average size of an average U.S. (or other country, region, or world) finger. For example, there can be a US size 6 ring finger and a Chinese size X index finger. Thus, if a user wants to see what two virtual rings look like side-by-side or one finger apart, the UI can provide such a virtual capability (e.g., horizontally, vertically, diagonally) to see if the design is aesthetically balanced or too heavy. Single-knuckle or double-knuckle rings are also available (typically, these are size 4), and the UI can allow the user to see how these virtual rings look when combined with other virtual rings in standard positions on the ring, middle, or index finger to gauge the aesthetic balance of the virtual selection. The UI can also be programmed to allow both virtual hands to be shown together (e.g., horizontally, vertically, diagonally) so that the user can determine how the virtual ring will look on the virtual finger or on both virtual hands. The UI can also be programmed to allow the user to import an image of their hand, as described above, and if the user has existing jewelry, such as a wedding ring, the UI can allow the user to see how the new design they want to purchase will look with these other selected rings (or hide the existing jewelry when displayed, as described above, so as not to remove it). For example, this can be a horizontal, vertical, or diagonal presentation, or a simultaneous presentation (e.g., so that both the left and right hands can be viewed). FIG. 72 shows some US sizing for rings, distinguished from ear hoops / rings / clickers.
[0121] The UI can layer virtual rings on top of each other and on top of other virtual knuckles, similar to other embodiments described herein. Note that the TryOn software can be adapted to provide similar layering principles for virtual bracelets, virtual body chains, virtual belly button chains, virtual anklets, virtual belly button jewels, virtual nose jewels or virtual septum jewels, virtual skin jewels, or other virtual items, similar to other embodiments described herein. As noted above, the UI can show a self-image or fictitious image (e.g., avatar, pictogram) from the waist up to simultaneously illustrate the entirety of the created virtual appearance—belly button, nostrils, septum, left and right ears, necklace, body chain, waist chain, and so on.
[0122] Figures 73-78 illustrate embodiments of virtual jewelry being virtually tried on various virtual non-ear body parts in accordance with the present disclosure. Figure 79 illustrates an embodiment of a self-image being processed to take action after detecting a virtual divot or virtual dimple from an existing real piercing hole in accordance with various principles of the present disclosure. Figure 80 illustrates an embodiment of an X / Y plane showing how a virtual earring with a ring will sag based on comfort in accordance with various principles of the present disclosure. Figures 81-90 illustrate embodiments of machine learning methods for creating a canvas or map for an object in accordance with the present disclosure.
[0123] Various embodiments of the present disclosure may be implemented in a data processing system suitable for storing and / or executing program code, including at least one processor coupled directly or indirectly to memory elements through a system bus, including, for example, local memory employed during the actual execution of the program code, bulk storage, and cache memory that provides temporary storage of at least some of the program code to reduce the number of times the code must be retrieved from bulk storage during execution.
[0124] I / O devices (including but not limited to keyboards, displays, pointing devices, DASDs, tapes, CDs, DVDs, thumb drives, and other storage media) may be coupled to the system either directly or through I / O controllers. The system may also have attached network adapters that allow the data processing system to be coupled to other data processing systems, remote printers, or storage devices through private or public networks. Modems, cable modems, and Ethernet cards are just a few of the types of network adapters available.
[0125] The present disclosure may be embodied in a system, a method, and / or a computer program product. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions that cause a processor to perform aspects of the present disclosure. The computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards, or raised structures in grooves that record instructions, and any suitable combination thereof.
[0126] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission cables, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computer / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium within the respective computer / processing device for storage.
[0127] Computer-readable program instructions for carrying out operations of the present disclosure can be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or object-oriented programming languages such as Smalltalk or C++, and conventional procedural programming languages such as the "C" programming language. A code segment or machine-executable instructions can represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment can be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. can be passed, forwarded, or transmitted via any suitable means, including memory sharing, message passing, token passing, network transmission, etc., among others. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet Service Provider).In some embodiments, to carry out aspects of the present disclosure, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to individualize the electronic circuitry.
[0128] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions. The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. The above describes various illustrative components, blocks, modules, circuits, and steps generally in terms of their functionality to clearly illustrate the interchangeability of hardware and software. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in varying ways to suit each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0129] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions shown in the blocks may occur in an order different from that shown in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or may be executed in the reverse order, depending on the functionality involved. Furthermore, each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or acts, or a combination of dedicated hardware and computer instructions.
[0130] The use of words such as "then" and "next" is not intended to limit the order of the steps; these words are merely used to guide the reader through the description of the method. Although a process flow diagram may describe operations as a sequential process, many of the operations may be performed in parallel or simultaneously. The order of operations may also be changed. A process corresponds to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or to the main function.
[0131] Features or functions described with respect to some example embodiments may be combined or subcombined in and / or with various other example embodiments. Also, different aspects and / or elements of the example embodiments disclosed herein may likewise be combined or subcombined. Furthermore, some example embodiments, individually and / or collectively, may be components of larger systems, may have other steps precedence, and / or may be otherwise modified in their application. Also, many steps may be required before, after, and / or concurrently with example embodiments as disclosed herein. It should be noted that at least some and / or all of the methods and / or processes as disclosed herein may be at least partially performed via at least one entity or actor in any manner.
[0132] While preferred embodiments have been shown and described in detail herein, those skilled in the art will recognize that various modifications, additions, substitutions, and the like may be made without departing from the spirit of the present disclosure, and therefore, such modifications, additions, substitutions, and the like are deemed to be included within the scope of the present disclosure as defined in the following claims. [Explanation of symbols]
[0133] 1 Skin Tone Control Set 2 Zoom Control Sets 3 Virtual Ears 4 Picture-in-Picture (PIP) Window 5 Full View Control 6. Social Media Sharing Controls 7. Earring Selector 8 Auxiliary Control Set
Claims
1. 1. A system comprising a processor programmed to cause a user interface (UI) to be presented, the UI comprising: Presenting a virtual ear in the UI in a frontal orientation; receiving, while the virtual ear is presented in the UI in a frontal orientation, a first user selection selecting a virtual earring to be presented in the UI while the virtual ear is presented in the UI in a frontal orientation; and receiving, while the virtual ear is presented in the UI in a frontal orientation, a second user selection selecting a virtual location on the virtual ear that is presented in the UI in a frontal orientation; in response to receiving the first user selection via the UI and receiving the second user selection via the UI, virtually trying on the virtual earring at the virtual location within the UI such that the virtual earring appears to change rotational angles within the UI depending on where the virtual location is located on the virtual ear within the UI; It is programmed to (i) the virtual ear includes a set of virtual anatomical regions in the UI, and the UI is further programmed to, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, highlight at least one virtual anatomical region selected from the set of virtual anatomical regions at which the virtual earring can be virtually tried on; (ii) the virtual ear includes a virtual skin tone, and the UI is further programmed, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, to virtually try on the virtual earring at the virtual location within the UI such that at least one of: (a) a virtual reflection of the virtual skin tone is present on the virtual earring within the UI, the virtual reflection varying based on the virtual skin tone; or (b) a virtual shadow of the virtual earring is present on the virtual ear in the UI, the virtual shadow varying based on the virtual skin tone; or (iii) the UI is further programmed to: access (a) a set of images depicting the virtual earring from a set of different rotation angles; and (b) an ear map including a set of virtual anatomical regions each further segmented into a set of polygonal, adjacent virtual zones; and, in response to receiving the first user selection via the UI and the second user selection via the UI, virtually try on the virtual earring at the virtual location within the UI such that the virtual earring appears to have varying rotation angles within the UI depending on where the virtual location is on the virtual ear within the UI based on each virtual zone selected from the set of virtual zones being associated with an image selected from the set of images and the virtual location being at least one of the virtual zones. At least one of the following is true: system.
2. receiving the first user selection via the UI and receiving the second user selection via the UI are combined into a single drag-and-drop input within the UI dragging the virtual earring onto the virtual ear within the UI; The system of claim 1 .
3. receiving the first user selection via the UI and receiving the second user selection via the UI are combined into a single user input other than a drag-and-drop input; The system of claim 1 .
4. The UI is further programmed to, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, try on the virtual earrings at the virtual location within the UI based on determining what type of the virtual earrings corresponds to the first user selection. The system of claim 1 .
5. The UI is further programmed to, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, access a set of images depicting the virtual earring at a set of different rotation angles, and try on the virtual earring at the virtual location within the UI based on selecting an image from the image set associated with the virtual location. The system of claim 1 .
6. The UI is further programmed to locally store the image set. The system of claim 5.
7. The UI is further programmed to execute locally. The system of claim 1 .
8. the virtual ear includes the set of virtual anatomical regions in the UI; the UI is further programmed to, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, highlight the at least one virtual anatomical region selected from the set of virtual anatomical regions in which the virtual earring can be virtually tried on. The system of claim 1 .
9. the UI is further programmed to, in response to receiving the first user selection via the UI, receiving the second user selection via the UI, and the virtual location being outside the at least one virtual anatomical region from the set of virtual anatomical regions, cause the virtual earring to appear to be attracted to a nearest virtual anatomical region selected from the set of virtual anatomical regions in which the virtual earring can be virtually tried on. The system of claim 8.
10. the virtual ear includes a set of virtual anatomical regions in the UI, and the UI is further programmed to, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, virtually try on the virtual earring at the virtual position within the UI such that the virtual earring appears to change the rotation angle within the UI depending on where the virtual position is within each virtual anatomical region selected from the set of virtual anatomical regions on the virtual ear within the UI. The system of claim 1 .
11. the UI is further programmed, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, to virtually try on the virtual earring at the virtual location within the UI such that the virtual earring appears to change the rotation angle within the UI depending on (a) where the virtual location is on the virtual ear within the UI and (b) whether the virtual earring includes a virtual stud or a virtual ring. The system of claim 1 .
12. the first user selection and the second user selection are combined into a single user selection. The system of claim 1 .
13. the first user selection is different from the second user selection; The system of claim 1 .
14. the virtual earring includes a set of virtual depth areas; the virtual earring comprises a virtual portion set; the UI is further programmed to, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, virtually try on the virtual earrings at the virtual location within the UI such that at least one virtual portion selected from the virtual portion set appears dynamically obscured beneath at least one virtual depth area selected from the virtual depth area set when the virtual location is in the at least one virtual depth area selected from the virtual depth area set, and such that at least one virtual portion selected from the virtual portion set appears dynamically unobscured when the virtual location is not in the at least one virtual depth area selected from the virtual depth area set. The system of claim 1 .
15. the virtual earring includes a virtual portion; The UI is further programmed to cause the virtual part to appear to virtually fall relative to the virtual ear to enable a virtual gravity effect for the virtual part. The system of claim 1 .
16. the virtual ear includes a first virtual edge; the imaginary portion includes a second imaginary edge; The UI is further programmed to, based on availability of a virtual space between the first virtual edge and the second virtual edge, cause the virtual part to appear to virtually fall relative to the virtual ear to enable a virtual gravity effect of the virtual part. The system of claim 15.
17. the virtual ear includes virtual skin; The UI is further programmed to cause the virtual part to appear to virtually fall against the virtual ear until the virtual part appears to be in virtual contact with the virtual skin to enable a virtual gravity effect for the virtual part. The system of claim 15.
18. the imaginary portion includes an imaginary arcuate portion; The system of claim 15.
19. the virtual portion includes a virtual ring; The system of claim 15.
20. the virtual ring includes a virtual arcuate portion; 20. The system of claim 19.
21. the virtual earring comprises a virtual stud; The system of claim 1 .
22. the virtual ear includes the virtual skin tone; The UI, in response to receiving the first user selection via the UI and receiving the second user selection via the UI, (a) the appearance of the virtual reflection of the virtual skin tone is present on the virtual earring in the UI, and the virtual reflection changes based on the virtual skin tone; or (b) the appearance of the virtual shadow of the virtual earring on the virtual ear in the UI, the virtual shadow changing based on the virtual skin tone; and further programmed to virtually try on the virtual earrings at the virtual location within the UI, such that the virtual earrings are at least one of: The system of claim 1 .
23. the virtual ear includes a virtual skin area; the virtual location is spaced from the virtual skin area; The UI includes: (a) the virtual earring appears to spin in response to user input while the virtual earring is being virtually tried on at the virtual location; (b) the virtual earring appears at least partially dynamically hidden in response to the user input when the virtual earring appears virtually anatomically tucked within the virtual ear, and the virtual earring appears dynamically unhidden in response to the user input when the virtual earring appears virtually anatomically untacking within the virtual ear. and further programmed to present within the UI a user input element programmed to receive the user input such that The system of claim 1 .
24. further comprising a smart mirror including the processor. The system of claim 1 .
25. a server including the processor, the UI being remote from the server; The system of claim 1 .
26. The UI is further programmed to allow the virtual ear to be switched between a left virtual ear and a right virtual ear such that the virtual earring virtually tried on at the virtual location switches accordingly while remaining at the virtual location, respectively. The system of claim 1 .
27. The UI includes: accessing a) the set of images depicting the virtual earring from the set of different rotation angles; and (b) the ear map including the set of virtual anatomical regions, each further segmented into the set of adjacent virtual zones, each of which is a polygon; and in response to receiving the first user selection via the UI and the second user selection via the UI, virtually trying on the virtual earring at the virtual location within the UI such that the virtual earring appears to vary in rotation within the UI depending on where the virtual location is on the virtual ear within the UI, based on each virtual zone selected from the set of virtual zones being associated with the image selected from the set of images and the virtual location being at least one of the virtual zones. The system of claim 1 , further programmed to:
28. the ear map is not visible in the UI when the first user selection is received via the UI and the second user selection is received via the UI; 28. The system of claim 27.
29. the image set is not visible within the UI when the first user selection is received via the UI and the second user selection is received via the UI; 28. The system of claim 27.
30. 1. A system comprising a processor programmed to cause a user interface (UI) to be presented, The UI includes: Presenting a virtual ear in the UI in a frontal orientation; presenting a virtual earring within the UI while the virtual ear is presented in a frontal orientation within the UI; receiving a drag and drop input within the UI while the virtual ear is presented in a forward orientation within the UI and the virtual earring is presented within the UI, such that (a) the drag and drop input allows the virtual earring to be virtually tried on the virtual ear within the UI in response to the drag and drop input by dragging the virtual earring onto the virtual ear, (b) the virtual earring appears to change rotational angle within the UI depending on where the virtual earring is virtually tried on within the UI in response to the drag and drop input, and (c) the virtual earring appears to be at least partially dynamically hidden and at least partially dynamically unhidden depending on where the virtual earring is virtually tried on within the UI in response to the drag and drop input. It is programmed to (i) the virtual ear includes a set of virtual anatomical regions in the UI, and the UI is further programmed to, in response to receiving the drag-and-drop input via the UI, highlight at least one virtual anatomical region selected from the set of virtual anatomical regions onto which the virtual earring can be virtually tried on; (ii) the virtual ear includes a virtual skin tone, and the UI is further programmed, in response to receiving the drag and drop input via the UI, to virtually try on the virtual earring at a virtual location on the virtual ear in the UI such that at least one of: (a) a virtual reflection of the virtual skin tone is present on the virtual earring in the UI, the virtual reflection changing based on the virtual skin tone; or (b) a virtual shadow of the virtual earring is present on the virtual ear in the UI, the virtual shadow changing based on the virtual skin tone; or (iii) the UI is further programmed to: access (a) a set of images depicting the virtual earring from a set of different rotation angles; and (b) an ear map including a set of virtual anatomical regions each further segmented into a set of polygonal, adjacent virtual zones; and, in response to receiving the drag-and-drop input via the UI, virtually try-on the virtual earring at the virtual location within the UI such that the virtual earring appears to vary in rotation angle within the UI depending on where the virtual location is on the virtual ear within the UI based on each virtual zone selected from the set of virtual zones being associated with an image selected from the set of images and the virtual location being at least one of the virtual zones. At least one of the following is true: system.
Citation Information
Patent Citations
Switchable turning cylinder for double side printing press
JP1977054507A
Method and system for enabling interaction between virtual environment and physical object
JP2012069111A
Method and apparatus for transmitting 3D video information from a server to a client
JP2014501973A
Method, medium, and system for virtual try-on coordination via communications sessions
US11068971B1
Image processing device, image processing method, image processing program and computer-readable recording medium storing the program
US20150317811A1