The present disclosure generally relates to systems and methods for performing virtual application of a ring with image warping.
In accordance with one embodiment, a computing device obtains an image depicting a hand and determines attributes of a finger on the hand in the image. The computing device generates a displacement table comprising locations of pixels for the finger based on the attributes and applies the displacement table to generate a modified finger. The computing device performs virtual application of a ring on the modified finger.
Another embodiment is a system that comprises a memory storing instructions and a processor coupled to the memory. The processor is configured by the instructions to obtain an image depicting a hand and determine attributes of a finger on the hand in the image. The processor is further configured to generate a displacement table comprising locations of pixels for the finger based on the attributes and apply the displacement table to generate a modified finger. The processor is further configured to perform virtual application of a ring on the modified finger.
Another embodiment is a non-transitory computer-readable storage medium storing instructions to be implemented by a computing device. The computing device comprises a processor, wherein the instructions, when executed by the processor, cause the computing device to obtain an image depicting a hand and determine attributes of a finger on the hand in the image. The processor is further configured by the instructions to generate a displacement table comprising locations of pixels for the finger based on the attributes and apply the displacement table to generate a modified finger. The processor is further configured by the instructions to perform virtual application of a ring on the modified finger.
In accordance with an alternative embodiment, a computing device obtains an image depicting a hand and determines attributes of a finger on the hand in the image. The computing device applies a non-linear warping function to generate a modified finger in the image based on the attributes. The computing device performs virtual application of a ring on the modified finger.
Other systems, methods, features, and advantages of the present disclosure will be apparent to one skilled in the art upon examining the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present disclosure, and be protected by the accompanying claims.
Various aspects of the disclosure are better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The subject disclosure is now described with reference to the drawings, where like reference numerals are used to refer to like elements throughout the following description. Other aspects, advantages, and novel features of the disclosed subject matter will become apparent from the following detailed description and corresponding drawings.
There is a need for an improved way for allowing consumers to evaluate the appearance of rings when considering different rings of interest. The present disclosure is directed to systems and methods for achieving a more realistic appearance of rings on a user by performing virtual application of a rings using image warping based on attributes associated with the user's finger.
A description of a system for implementing virtual application of a ring with image warping is described followed by a discussion of the operation of the components within the system.
A ring applicator 104 executes on a processor of the computing device 102 and includes an import module 106, a finger region analyzer 108, a finger region modifier 110, and a virtual application module 112. The import module 106 is configured to obtain digital images of a user's hand for purposes of performing virtual application of one or more rings. For some embodiments, the import module 106 is configured to cause a camera (e.g., front-facing camera) of the computing device 102 to capture an image or a video of a user of the computing device 102. Alternatively, the import module 106 may obtain an image or video of the user from another device or server where the computing device 102 may be equipped with the capability to connect to the Internet.
The images obtained by the import module 106 may be encoded in any of a number of formats including, but not limited to, JPEG (Joint Photographic Experts Group) files, TIFF (Tagged Image File Format) files, PNG (Portable Network Graphics) files, GIF (Graphics Interchange Format) files, BMP (bitmap) files or any number of other digital formats. The video may be encoded in formats including, but not limited to, Motion Picture Experts Group (MPEG)-1, MPEG-2, MPEG-4, H.264, Third Generation Partnership Project (3GPP), 3GPP-2, Standard-Definition Video (SD-Video), High-Definition Video (HD-Video), Digital Versatile Disc (DVD) multimedia, Video Compact Disc (VCD) multimedia, High-Definition Digital Versatile Disc (HD-DVD) multimedia, Digital Television Video/High-definition Digital Television (DTV/HDTV) multimedia, Audio Video Interleave (AVI), Digital Video (DV), QuickTime (QT) file, Windows Media Video (WMV), Advanced System Format (ASF), Real Media (RM), Flash Media (FLV), an MPEG Audio Layer III (MP3), an MPEG Audio Layer II (MP2), Waveform Audio Format (WAV), Windows Media Audio (WMA), 360 degree video, 3D scan model, or any number of other digital formats.
The finger region analyzer 108 is configured to identify the finger on the hand depicted in the image and determine attributes of the finger. For some embodiments, the finger region analyzer 108 is configured to determine attributes of the finger by identifying a target region between two knuckles (e.g., the base knuckle and middle knuckle) on the finger. The finger region analyzer 108 then determines the coordinates of the target region, the boundary of the target region, and/or the orientation of the target region. The finger region analyzer 108 may determine the orientation of the target region by determining a roll angle of the target region, a yaw angle of the target region, and/or a pitch angle of the target region.
The finger region modifier 110 is configured to generate a displacement table comprising locations of pixels for the finger based on the attributes and apply the displacement table to generate a modified finger. For some embodiments, the finger region modifier 110 is configured to generate the displacement table comprising the locations of the pixels for the finger based on the attributes by generating a mapping function that comprises a non-linear warp function in an image domain based on the attributes.
For some embodiments, the finger region modifier 110 includes an artificial intelligence (“AI”) engine configured to determine where the ring will be specifically positioned on the finger. The AI engine is further configured to generate attributes of the finger. The attributes may comprise coordinates of the target region, a boundary of the target region, and an orientation of the target region. The AI engine then generates a displacement table based on the attributes.
The displacement table generated by the AI engine may be embodied as a warp mesh where the displacement table specifies displacement of pixels in the region where the ring is positioned on the finger. The finger region modifier 110 applies the displacement table to generate a modified finger. The modified finger depicts the finger being squeezed by the ring, thereby achieving realistic virtual application of the ring. The virtual application module 112 then performs virtual application of a ring on the modified finger, thereby providing a more realistic depiction of the ring being worn on the user's finger.
The processing device 202 may include a custom made processor, a central processing unit (CPU), or an auxiliary processor among several processors associated with the computing device 102, a semiconductor based microprocessor (in the form of a microchip), a macroprocessor, one or more application specific integrated circuits (ASICs), a plurality of suitably configured digital logic gates, and so forth.
The memory 214 may include one or a combination of volatile memory elements (e.g., random-access memory (RAM, such as DRAM, and SRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.). The memory 214 typically comprises a native operating system 216, one or more native applications, emulation systems, or emulated applications for any of a variety of operating systems and/or emulated hardware platforms, emulated operating systems, etc. For example, the applications may include application specific software that may comprise some or all the components of the computing device 102 displayed in
In accordance with such embodiments, the components are stored in memory 214 and executed by the processing device 202, thereby causing the processing device 202 to perform the operations/functions disclosed herein. For some embodiments, the components in the computing device 102 may be implemented by hardware and/or software.
Input/output interfaces 204 provide interfaces for the input and output of data. For example, where the computing device 102 comprises a personal computer, these components may interface with one or more input/output interfaces 204, which may comprise a keyboard or a mouse, as shown in
In the context of this disclosure, a non-transitory computer-readable medium stores programs for use by or in connection with an instruction execution system, apparatus, or device. More specific examples of a computer-readable medium may include by way of example and without limitation: a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory), and a portable compact disc read-only memory (CDROM) (optical).
Reference is made to
Although the flowchart 300 of
At block 310, the computing device 102 obtains an image depicting a hand. As discussed above, the user may utilize a camera of the computing device 102 to capture an image of the user's hand. At block 320, the computing device 102 determines attributes of a finger on the hand in the image. For some embodiments, the computing device 102 determines attributes of the finger by identifying a target region between two knuckles (e.g., the base knuckle and middle knuckle) on the finger and determining coordinates of the target region, a boundary of the target region, and/or an orientation of the target region. For some embodiments, the computing device 102 determines the orientation of the target region by determining a roll angle of the target region, a yaw angle of the target region, and/or a pitch angle of the target region.
At block 330, the computing device 102 generates a displacement table comprising locations of pixels for the finger based on the attributes. For some embodiments, the computing device 102 generates the displacement table comprising the locations of the pixels for the finger based on the attributes by generating a mapping function comprising a non-linear warp function in an image domain based on the attributes. At block 340, the computing device 102 applies the displacement table to generate a modified finger. At block 350, the computing device 102 performs virtual application of a ring on the modified finger. Thereafter, the process in
To illustrate further various aspects of the present invention, reference is made to the following figures described below.
Reference is made to
Although the flowchart 900 of
At block 910, the computing device 102 obtains an image depicting a hand. As discussed above, the user may utilize a camera of the computing device 102 to capture an image of the user's hand. At block 920, the computing device 102 determines attributes of a finger on the hand in the image. For some embodiments, the computing device 102 determines attributes of the finger by identifying a target region between two knuckles on the finger and determining coordinates of the target region, a boundary of the target region, and/or an orientation of the target region.
For some embodiments, the computing device 102 determines the orientation of the target region by determining a roll angle of the target region, a yaw angle of the target region, and/or a pitch angle of the target region. At block 930, the computing device 102 applies a non-linear warping function to generate a modified finger in the image based on the attributes. At block 940, the computing device 102 performs virtual application of a ring on the modified finger in the image. Thereafter, the process in
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are included herein within the scope of this disclosure and protected by the following claims.
This application claims priority to, and the benefit of, U.S. Provisional Patent Application entitled, “Method and System for Ring Virtual Try-on Based on Image Warping,” having Ser. No. 63/324,681, filed on Mar. 29, 2022, which is incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63324681 | Mar 2022 | US |