Easy To Use Patents Search & Patent Lawyer Directory

At Patents you can conduct a Patent Search, File a Patent Application, find a Patent Attorney, or search available technology through our Patent Exchange. Patents are available using simple keyword or date criteria. If you are looking to hire a patent attorney, you've come to the right place. Protect your idea and hire a patent lawyer.


Search All Patents:



  This Patent May Be For Sale or Lease. Contact Us

  Is This Your Patent? Claim This Patent Now.



Register or Login To Download This Patent As A PDF




United States Patent Application 20190125015
Kind Code A1
Schultz; Christopher ;   et al. May 2, 2019

Using Neural Networks in Creating Apparel Designs

Abstract

Software and lasers are used in finishing apparel to produce a desired wear pattern or other design. A technique includes using machine learning to create or extract a laser input file for wear pattern from an existing garment. Machine learning can be by a generative adversarial network, having generative and discriminative neural nets. The generative adversarial network is trained and then used to create a model. This model is used generate the laser input file from an image of the existing garment with the finishing pattern. With this laser input file, a laser can re-create the wear pattern from the existing garment onto a new garment.


Inventors: Schultz; Christopher; (San Francisco, CA) ; Schultz; Jennifer; (San Francisco, CA) ; Bell; Benjamin; (San Francisco, CA) ; Mahanty; Debdulal; (Fremont, CA)
Applicant:
Name City State Country Type

Levi Strauss & Co.

San Francisco

CA

US
Family ID: 1000003720513
Appl. No.: 16/177393
Filed: October 31, 2018


Related U.S. Patent Documents

Application NumberFiling DatePatent Number
62579867Oct 31, 2017

Current U.S. Class: 1/1
Current CPC Class: A41D 27/00 20130101; D03D 1/00 20130101; D03D 15/0094 20130101; A41D 1/06 20130101; A41B 1/08 20130101; A41D 1/089 20180101; A41D 1/02 20130101; A41D 1/04 20130101; A41D 1/14 20130101; A41D 3/00 20130101; A41H 43/00 20130101; G06N 3/088 20130101; G06N 3/0454 20130101; A41D 2500/20 20130101; D10B 2501/04 20130101; A41B 2500/20 20130101
International Class: A41D 27/00 20060101 A41D027/00; D03D 1/00 20060101 D03D001/00; D03D 15/00 20060101 D03D015/00; A41D 1/06 20060101 A41D001/06; A41B 1/08 20060101 A41B001/08; A41D 1/089 20060101 A41D001/089; A41D 1/02 20060101 A41D001/02; A41D 1/04 20060101 A41D001/04; A41D 1/14 20060101 A41D001/14; A41D 3/00 20060101 A41D003/00; A41H 43/00 20060101 A41H043/00; G06N 3/08 20060101 G06N003/08; G06N 3/04 20060101 G06N003/04

Claims



1. A method comprising: assembling a garment made from fabric panels of a woven first material comprising a warp comprising indigo ring-dyed cotton yarn, wherein the fabric panels are sewn together using thread; using a model formed through a machine learning comprising a generative adversarial network, creating a laser input file that is representative of a finishing pattern from an existing garment made from a second material, wherein the first material comprises a different fabric characteristic from the second material; and using a laser to create a finishing pattern on an outer surface of the garment based on the laser input file created by the model, wherein based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the garment, for lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed, and the finishing pattern created can extend across portions of the garment where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

2. The method of claim 1 wherein the generative adversarial network comprises a generative neural net and a discriminative neural net, and the generative adversarial network is trained by providing as input a plurality of laser input files and images of garments burned with the laser input files, and the generative neural net generating laser input files candidates for the discriminative neural net to determine whether the candidates appear real or fake.

3. The method of claim 1 wherein the first material comprises a denim and the second material comprises a denim.

4. The method of claim 1 wherein the garment comprises at least one of jeans, shirts, shorts, jackets, vests, or skirts.

5. The method of claim 1 wherein the garment and the existing garment are of the same type of garment.

6. The method of claim 1 wherein the finishing pattern created by the laser on the garment includes wear patterns comprising at least one of combs or honeycombs, whiskers, stacks, or train tracks, or a combination.

7. A method comprising: providing an assembled garment made from fabric panels of a woven first material comprising a warp comprising indigo ring-dyed cotton yarn, wherein the fabric panels are sewn together using thread; providing a laser input file that is representative of a finishing pattern from an existing garment made from a second material, wherein the finishing pattern on the existing garment was not created by a laser, and the laser input file was obtained by training a generative adversarial network comprising a generative neural net and a discriminative neural net, and forming a model from the generative adversarial network, wherein the model generates the laser input file for an image of the existing garment with the finishing pattern; and using a laser to create a finishing pattern on an outer surface of the assembled garment based on the laser input file, wherein based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the assembled garment, for lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed, and the finishing pattern created can extend across portions of the assembled garment where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

8. The method of claim 7 wherein the first material comprises a denim and the second material comprises a denim, the garment and the existing garment comprise a jean, and the finishing pattern created by the laser on the garment includes wear patterns comprising at least one of combs or honeycombs, whiskers, stacks, or train tracks, or a combination.

9. A method comprising: assembling a jean made from fabric panels of a woven first denim material comprising a warp comprising indigo ring-dyed cotton yarn, wherein the fabric panels are sewn together using thread; creating a laser input file that is representative of a finishing pattern from an existing jean made from a second denim material, wherein the first denim material comprises a different fabric characteristic from the second denim material, and the creating the laser input file comprises using machine learning to form a model, wherein the model generates the laser input file for an image of the existing garment with the finishing pattern; and using a laser to create a finishing pattern on an outer surface of the jean based on the laser input file, wherein based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the jean, for lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed, and the finishing pattern created can extend across portions of the jean where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

10. The method of claim 9 wherein the first denim material comprises a weft comprising yarn that has not been indigo dyed.

11. The method of claim 9 wherein for the portions of the jean exposed to the laser where the fabric panels are joined, the fabric panels are joined together using a thread comprising cotton.

12. The method of claim 9 the determining values for the laser input file comprises: selecting a dark reference in the target image of the finishing pattern from the existing jean of the second denim material; for each pixel in the target image, calculating a difference value between a pixel value and the dark reference; and storing each difference value in the laser input file, wherein the laser input file comprises a reverse image compared to target image.

13. The method of claim 9 wherein the using a laser to create a finishing pattern on an outer surface of the jean comprises a single pass of the laser.

14. The method of claim 9 wherein the using a laser to create a finishing pattern on an outer surface of the jean comprises multiple passes of the laser.

15. The method of claim 9 wherein when using a laser to create a finishing pattern, different laser levels are obtained by varying an output of the laser beam by altering a characteristic of the laser comprising at least one of a frequency, period, pulse width, power, duty cycle, or burning speed.

16. The method of claim 9 wherein the first denim material comprises a first surface texture characteristic which is different from a second surface texture characteristic of the second denim material.

17. The method of claim 9 wherein the first denim material comprises a first dye characteristic which is different from a second dye characteristic of the second denim material.

18. The method of claim 9 wherein the first denim material comprises a first base fabric color characteristic which is different from a second base fabric color characteristic of the second denim material.

19. The method of claim 9 wherein the first denim material comprises a first yarn characteristic which is different from a second yarn characteristic of the second denim material.

20. The method of claim 9 wherein the first denim material comprises a first yarn weight characteristic which is different from a second yarn weight characteristic of the second denim material.

21. The method of claim 9 wherein the first denim material comprises a first yarn diameter characteristic which is different from a second yarn diameter characteristic of the second denim material.

22. The method of claim 9 wherein the first denim material comprises a first yarn twist characteristic which is different from a second yarn twist characteristic of the second denim material.
Description



CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This patent application claims the benefit of U.S. patent application 62/579,867, filed Oct. 31, 2017, which is incorporated by reference along with all other references cited in this application.

BACKGROUND OF THE INVENTION

[0002] The present invention relates to apparel finishing and, more specifically, the use of a laser in the finishing of garments, especially denim including jeans, shirts, shorts, jackets, vests, and skirts, to obtain a faded, distressed, washed, or worn finish or appearance.

[0003] In 1853, during the California Gold Rush, Levi Strauss, a 24-year-old German immigrant, left New York for San Francisco with a small supply of dry goods with the intention of opening a branch of his brother's New York dry goods business. Shortly after arriving in San Francisco, Mr. Strauss realized that the miners and prospectors (called the "forty niners") needed pants strong enough to last through the hard work conditions they endured. So, Mr. Strauss developed the now familiar jeans which he sold to the miners. The company he founded, Levi Strauss & Co., still sells jeans and is the most widely known jeans brand in the world. Levi's is a trademark of Levi Strauss & Co. or LS&Co.

[0004] Though jeans at the time of the Gold Rush were used as work clothes, jeans have evolved to be fashionably worn everyday by men and women, showing up on billboards, television commercials, and fashion runways. Fashion is one of the largest consumer industries in the U.S. and around the world. Jeans and related apparel are a significant segment of the industry.

[0005] As fashion, people are concerned with the appearance of their jeans. Many people desire a faded or worn blue jeans look. In the past, jeans became faded or distressed through normal wash and wear. The apparel industry recognized people's desire for the worn blue jeans look and began producing jeans and apparel with a variety of wear patterns. The wear patterns have become part of the jeans style and fashion. Some examples of wear patterns include combs or honeycombs, whiskers, stacks, and train tracks.

[0006] Despite the widespread success jeans have enjoyed, the process to produce modern jeans with wear patterns takes processing time, has relatively high processing cost, and is resource intensive. A typical process to produce jeans uses significant amounts of water, chemicals (e.g., bleaching or oxidizing agents), ozone, enzymes, and pumice stone. For example, it may take about 20 to 60 liters of water to finish each pair of jeans.

[0007] Therefore, there is a need for an improved process for finishing jeans that reduces environmental impact, processing time, and processing costs, while maintaining the look and style of traditional finishing techniques. Further there is a need for improved techniques of creating or extracting design features or wear patterns from existing garments to obtain corresponding laser input files.

BRIEF SUMMARY OF THE INVENTION

[0008] Software and lasers are used in finishing apparel to produce a desired wear pattern or other design. A technique includes using machine learning to create or extract a laser input file for wear pattern from an existing garment. A machine learning method may use a generative adversarial network, having both generative and discriminative neural nets that work together to translate an image of a garment to manufacturing inputs that will recreate it. The generative adversarial network model would then be trained with images of garments and the manufacturing inputs used to create them. This model is used to generate the laser input file from an image of the existing garment with the finishing pattern. With this laser input file, a laser can re-create the wear pattern from the existing garment onto a new garment. Another technique using a purely convolutional neural network architecture allows for the creation of novel garments by mixing the aesthetic.

[0009] Wear patterns and other designs on garments (including jeans and other denim garments) are reproduced by capturing digital images (e.g., high resolution digital photographs, potentially in a raw format) of existing garments exhibiting desirable wear patterns or other designs, processing the digital images using machine learning software (e.g., generative adversarial network), and then using the images generated by a model formed from the machine learning software as the patterns to control a laser to reproduce the desired pattern or design on a new garment. This process permits the reproduction of desirable, complex, and authentic wear patterns taken from worn garments such as jeans on new articles of clothing before sale.

[0010] In an implementation, a method includes: assembling a garment made from fabric panels of a woven first material having a warp with indigo ring-dyed cotton yarn, where the fabric panels are sewn together using thread; using a model formed through a machine learning having a generative adversarial network, creating a laser input file that is representative of a finishing pattern from an existing garment made from a second material, where the first material has a different fabric characteristic from the second material; and using a laser to create a finishing pattern on an outer surface of the garment based on the laser input file created by the model, where based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the garment, for lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed, and the finishing pattern created can extend across portions of the garment where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

[0011] In an implementation, a method includes: providing an assembled garment made from fabric panels of a woven first material including a warp having indigo ring-dyed cotton yarn, where the fabric panels are sewn together using thread; providing a laser input file that is representative of a finishing pattern from an existing garment made from a second material, where the finishing pattern on the existing garment was not created by a laser, and the laser input file was obtained by training a generative adversarial network having a generative neural net and a discriminative neural net, and forming a model from the generative adversarial network, where the model generates the laser input file for an image of the existing garment with the finishing pattern; and using a laser to create a finishing pattern on an outer surface of the assembled garment based on the laser input file, where based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the assembled garment, for lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed, and the finishing pattern created can extend across portions of the assembled garment where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

[0012] In an implementation, a method includes: assembling a jean made from fabric panels of a woven first denim material including a warp having indigo ring-dyed cotton yarn, where the fabric panels are sewn together using thread; creating a laser input file that is representative of a finishing pattern from an existing jean made from a second denim material, where the first denim material includes a different fabric characteristic from the second denim material, and the creating the laser input file includes using machine learning to form a model, where the model generates the laser input file for an image of the existing garment with the finishing pattern; and using a laser to create a finishing pattern on an outer surface of the jean based on the laser input file, where based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the jean, for lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed, and the finishing pattern created can extend across portions of the jean where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

[0013] In an implementation, a method includes: providing an assembled garment made from fabric panels of a woven first material with a warp having indigo ring-dyed cotton yarn, where the fabric panels are sewn together using thread; and providing a laser input file that is representative of a finishing pattern from an existing garment made from a second material, where the finishing pattern on the existing garment was not created by a laser. The laser input file was obtained by: providing sample laser input files and images of sample garments with lasered finishing patterns resulting from the sample laser input files to a generative adversarial network, where the sample laser input files are real laser input files for the generative adversarial network; using a generative neural net of the generative adversarial network, generating fake laser input files for the images of sample garments with lasered finishing patterns; determining a generator loss based on the fake laser input files and real laser input files; inputting the real laser input files to a real discriminator of the generative adversarial network; inputting the real laser input files and the fake laser input files to a fake discriminator of the generative adversarial network; determining a discriminator loss based on outputs of the real discriminator and fake discriminator; and based on outputs of the generator loss and discriminator loss, iteratively training a model to obtain final model, where the final model generates the laser input file for an image of the existing garment with the finishing pattern.

[0014] A laser is used to create a finishing pattern on an outer surface of the assembled garment based on the laser input file form the final model. Based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the assembled garment. For lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed. The finishing pattern created can extend across portions of the assembled garment where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

[0015] In an implementation, a garment includes: fabric panels made from a woven first material with a warp having dyed cotton yarn, where the fabric panels are sewn together using thread; and an outer surface of the garment includes a finishing pattern created by a laser based on a laser input file. The laser input file includes digital data that is representative of a finishing pattern from an existing garment made from a second material. The first material has a different fabric characteristic from the second material. The laser input file is created by providing sample laser input files and images of sample garments with lasered finishing patterns resulting from the sample laser input files to a generative adversarial network, where the sample laser input files are real laser input files for the generative adversarial network; using a generative neural net of the generative adversarial network, generating fake laser input files for the images of sample garments with lasered finishing patterns; determining a generator loss based on the fake laser input files and real laser input files; inputting the real laser input files to a real discriminator of the generative adversarial network; inputting the real laser input files and the fake laser input files to a fake discriminator of the generative adversarial network; determining a discriminator loss based on outputs of the real discriminator and fake discriminator; and based on outputs of the generator loss and discriminator loss, iteratively training a model to obtain final model, where the final model generates the laser input file for an image of the existing garment with the finishing pattern.

[0016] In an implementation, a garment includes: fabric panels made from a woven first material with a warp having dyed cotton yarn, where the fabric panels are sewn together using thread; and an outer surface of the garment includes a finishing pattern created by a laser based on a laser input file. The laser input file includes digital data that is representative of a finishing pattern from an existing garment made from a second material. The first material has a different fabric characteristic from the second material. The laser input file is created by training a generative adversarial network comprising a generative neural net and a discriminative neural net, and forming a model from the generative adversarial network, where the model generates the laser input file for an image of the existing garment with the finishing pattern.

[0017] Other objects, features, and advantages of the present invention will become apparent upon consideration of the following detailed description and the accompanying drawings, in which like reference designations represent like features throughout the figures.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] FIG. 1 shows a block diagram of a system for creating, designing, producing apparel products with laser finishing.

[0019] FIG. 2 shows a flow for a finishing technique that includes the use of a laser.

[0020] FIG. 3 shows a weave pattern for a denim fabric.

[0021] FIGS. 4-7 show how the laser alters the color of ring-dyed yarn.

[0022] FIG. 8 shows a flow for finishing in two finishing steps and using base templates.

[0023] FIG. 9 shows multiple base templates and multiple resulting finished products from each of these templates.

[0024] FIG. 10 shows a distributed computer network.

[0025] FIG. 11 shows a computer system that can be used in laser finishing.

[0026] FIG. 12 shows a system block diagram of the computer system.

[0027] FIG. 13 shows a block diagram of machine learning using a generative adversarial network to generate laser input files for realistic wear patterns on apparel.

[0028] FIG. 14 shows another block diagram of machine learning using a generative adversarial network to generate laser input files for realistic wear patterns on apparel.

[0029] FIG. 15 shows a technique of a convolutional style transfer by way of a style transfer convolutional network.

[0030] FIG. 16 shows another example of a convolutional style transfer.

[0031] FIG. 17 has shows a more detailed system diagram of a conditional generative adversarial neural network (cGAN) to generate laser input files for realistic wear patterns on apparel.

[0032] FIG. 18 shows an individual operation module for a conditional generative adversarial neural network to generate laser input files for realistic wear patterns on apparel.

[0033] FIGS. 19A-19C show an implementation of a generator of a generative adversarial neural network to generate laser input files for realistic wear patterns on apparel.

[0034] FIGS. 20A-20C show another implementation of a generator of a generative adversarial neural network to generate laser input files for realistic wear patterns on apparel.

[0035] FIG. 21 shows an implementation of a discriminator of a generative adversarial neural network to generate laser input files for realistic wear patterns on apparel.

[0036] FIG. 22 shows an overall block diagram of a loss structure of the generative adversarial neural network to generate laser input files for realistic wear patterns on apparel.

DETAILED DESCRIPTION OF THE INVENTION

[0037] FIG. 1 shows a process flow 101 for manufacturing apparel such as jeans, where garments are finished using a laser. The fabric or material for various apparel including jeans is made from natural or synthetic fibers 106, or a combination of these. A fabric mill takes fibers and processes 109 these fibers to produce a laser-sensitive finished fabric 112, which has enhanced response characteristics for laser finishing.

[0038] Some examples of natural fibers include cotton, flax, hemp, sisal, jute, kenaf, and coconut; fibers from animal sources include silk, wool, cashmere, and mohair. Some examples of synthetic fibers include polyester, nylon, spandex or elastane, and other polymers. Some examples of semisynthetic fibers include rayon, viscose, modal, and lyocell, which are made from a regenerated cellulose fiber. A fabric can be a natural fiber alone (e.g., cotton), a synthetic fiber alone (e.g., polyester alone), a blend of natural and synthetic fibers (e.g., cotton and polyester blend, or cotton and spandex), or a blend of natural and semisynthetic fibers, or any combination of these or other fibers.

[0039] For jeans, the fabric is typically a denim, which is a sturdy cotton warp-faced textile in which a weft passes under two or more warp threads. This twill weaving produces a diagonal ribbing. The yarns (e.g., warp yarns) are dyed using an indigo or blue dye, which is characteristic of blue jeans.

[0040] Although this patent describes the apparel processing and finishing with respect to jeans, the invention is not limited jeans or denim products, such as shirts, shorts, jackets, vests, and skirts. The techniques and approaches described are applicable to other apparel and products, including nondenim products and products made from knit materials. Some examples include T-shirts, sweaters, coats, sweatshirts (e.g., hoodies), casual wear, athletic wear, outerwear, dresses, evening wear, sleepwear, loungewear, underwear, socks, bags, backpacks, uniforms, umbrellas, swimwear, bed sheets, scarves, and many others.

[0041] A manufacturer creates a design 115 (design I) of its product. The design can be for a particular type of clothing or garment (e.g., men's or women's jean, or jacket), sizing of the garment (e.g., small, medium, or large, or waist size and inseam length), or other design feature. The design can be specified by a pattern or cut used to form pieces of the pattern. A fabric is selected and patterned and cut 118 based on the design. The pattern pieces are assembled together 121 into the garment, typically by sewing, but can be joined together using other techniques (e.g., rivets, buttons, zipper, hoop and loop, adhesives, or other techniques and structures to join fabrics and materials together).

[0042] Some garments can be complete after assembly and ready for sale. However, other garments are unfinished 122 and have additional finishing 124, which includes laser finishing. The finishing may include tinting, washing, softening, and fixing. For distressed denim products, the finishing can include using a laser to produce a wear pattern according to a design 127 (design II). Some additional details of laser finishing are described in U.S. patent applications 62/377,447, filed Aug. 19, 2016, and U.S. Ser. No. 15/682,507, filed Aug. 21, 2017, issued as U.S. Pat. No. 10,051,905 on Aug. 21, 2018, are incorporated by reference along with all other references cited in this application.

[0043] Design 127 is for postassembly aspects of a garment while design 115 is for preassembly aspects of a garment. After finishing, a finished product 130 (e.g., a pair of jeans) is complete and ready for sale. The finished product is inventoried and distributed 133, delivered to stores 136, and sold to consumers or customers 139. The consumer can buy and wear worn blue jeans without having to wear out the jeans themselves, which usually takes significant time and effort.

[0044] Traditionally, to produce distressed denim products, finishing techniques include dry abrasion, wet processing, oxidation, or other techniques, or combinations of these, to accelerate wear of the material in order to produce a desired wear pattern. Dry abrasion can include sandblasting or using sandpaper. For example, some portions or localized areas of the fabric are sanded to abrade the fabric surface. Wet processing can include washing in water, washing with oxidizers (e.g., bleach, peroxide, ozone, or potassium permanganate), spraying with oxidizers, washing with abrasives (e.g., pumice, stone, or grit).

[0045] These traditional finishing approaches take time, incur expense, and impact the environment by utilizing resources and producing waste. It is desirable to reduce water and chemical usage, which can include eliminating the use agents such as potassium permanganate and pumice. An alternative to these traditional finishing approaches is laser finishing.

[0046] FIG. 2 shows a finishing technique that includes the use of a laser 207. A laser is a device that emits light through a process of optical amplification based on the stimulated emission of electromagnetic radiation. Lasers are used for bar code scanning, medical procedures such as corrective eye surgery, and industrial applications such as welding. A particular type of laser for finishing apparel is a carbon dioxide laser, which emits a beam of infrared radiation.

[0047] The laser is controlled by an input file 210 and control software 213 to emit a laser beam onto fabric at a particular position or location at a specific power level for a specific amount of time. Further, the power of the laser beam can be varied according to a waveform such as a pulse wave with a particular frequency, period, pulse width, or other characteristic. Some aspects of the laser that can be controlled include the duty cycle, frequency, marking or burning speed, and other parameters.

[0048] The duty cycle is a percentage of laser emission time. Some examples of duty cycle percentages include 40, 45, 50, 55, 60, 80, and 100 percent. The frequency is the laser pulse frequency. A low frequency might be, for example, 5 kilohertz, while a high frequency might be, for example, 25 kilohertz. Generally, lower frequencies will have higher surface penetration than high frequencies, which has less surface penetration.

[0049] The laser acts like a printer and "prints," "marks," or "burns" a wear pattern (specified by input file 210) onto the garment. The fabric that is exposed to the laser beam (e.g., infrared beam) changes color, lightening the fabric at a specified position by a certain amount based on the laser power, time of exposure, and waveform used. The laser continues from position to position until the wear pattern is completely printed on the garment.

[0050] In a specific implementation, the laser has a resolution of about 34 dots per inch (dpi), which on the garment is about 0.7 millimeters per pixel. The technique described in this patent is not dependent on the laser's resolution, and will work with lasers have more or less resolution than 34 dots per inch. For example, the laser can have a resolution of 10, 15, 20, 25, 30, 40, 50, 60, 72, 80, 96, 100, 120, 150, 200, 300, or 600 dots per inch, or more or less than any of these or other values. Typically, the greater the resolution, the finer the features that can be printed on the garment in a single pass. By using multiple passes (e.g., 2, 3, 4, 5, or more passes) with the laser, the effective resolution can be increased. In an implementation, multiple laser passes are used.

[0051] Jeans are dyed using an indigo dye, which results in a blue colored fabric. The blue color is caused by chromophores trapped in the fabric which reflect light as a blue color. U.S. patent application 62/433,739, filed Dec. 13, 2016, which is incorporated by reference, describes a denim material with enhanced response characteristics to laser finishing. Using a denim material made from indigo ring-dyed yarn, variations in highs and lows in indigo color shading is achieved by using a laser.

[0052] FIG. 3 shows a weave pattern of a denim fabric 326. A loom does the weaving. In weaving, warp is the lengthwise or longitudinal yarn or thread in a roll, while weft or woof is the transverse thread. The weft yarn is drawn through the warp yarns to create the fabric. In FIG. 3, the warps extend in a first direction 335 (e.g., north and south) while the wefts extend in a direction 337 (e.g., east and west). The wefts are shown as a continuous yarn that zigzags across the wefts (e.g., carried across by a shuttle or a rapier of the loom). Alternatively, the wefts could be separate yarns. In some specific implementations, the warp yarn has a different weight or thickness than the weft yarns. For example, warp yarns can be coarser than the weft yarns.

[0053] For denim, dyed yarn is used for the warp, and undyed or white yarn is typically used for the weft yarn. In some denim fabrics, the weft yarn can be dyed and have a color other than white, such as red. In the denim weave, the weft passes under two or more warp threads. FIG. 3 shows a weave with the weft passing under two warp threads. Specifically, the fabric weave is known as a 2.times.1 right-hand twill. For a right-hand twill, a direction of the diagonal is from a lower left to an upper right. For a left-hand twill, a direction of the diagonal is from an lower right to an upper left. But in other denim weaves, the weft can pass under a different number of warp threads, such as 3, 4, 5, 6, 7, 8, or more. In other implementation, the denim is a 3.times.1 right-hand twill, which means the weft passes under three warp threads.

[0054] Because of the weave, one side of the fabric exposes more of the warp yarns (e.g., warp-faced side), while the other side exposes more of the weft yarns (e.g., weft-faced side). When the warp yarns are blue and weft yarns are white, a result of the weave is the warp-faced side will appear mostly blue while the reverse side, weft-faced side, will appear mostly white.

[0055] In denim, the warp is typically 100 percent cotton. But some warp yarns can be a blend with, for example, elastane to allow for warp stretch. And some yarns for other fabrics may contain other fibers, such as polyester or elastane as examples.

[0056] In an indigo ring-dyed yarn, the indigo does not fully penetrate to a core of the yarn. Rather, the indigo dye is applied at a surface of the cotton yarn and diffuses toward the interior of the yarn. So when the yarn is viewed cross-sectionally, the indigo dyed material will appear as a ring on around an outer edge of the yarn. The shading of the indigo dye will generally lighten in a gradient as a distance increases from the surface of the yarn to the center (or core) of the yarn.

[0057] During laser finishing, the laser removes a selected amount of the surface of the indigo dyed yarn (e.g., blue color) to reveal a lighter color (e.g., white color) of the inner core of the ring-dyed yarn. The more of the indigo dyed material that is removed, the lighter the color (e.g., lighter shade of blue). The more of the indigo dyed material that remains, the darker the color (e.g., deeper shade of blue). The laser can be controlled precisely to remove a desired amount of material to achieve a desired shade of blue in a desired place or position on the material.

[0058] With laser finishing, a finish can be applied (e.g., printed or burned via the laser) onto apparel (e.g., jeans and denim garments) that will appear similar to or indistinguishable from a finish obtained using traditional processing techniques (e.g., dry abrasion, wet processing, and oxidation). Laser finishing of apparel is less costly and is faster than traditional finishing techniques and also has reduced environmental impact (e.g., eliminating the use of harsh chemical agents and reducing waste).

[0059] FIGS. 4-7 show how the laser alters the color of ring-dyed yarn. FIG. 4 shows a laser beam 407 striking a ring-dyed yarn 413 having indigo-dyed fibers 418 and white core fibers 422. The laser removes the dyed fibers, which can be by vaporizing or otherwise destroying the cotton fiber via heat or high temperature that the laser beam causes.

[0060] FIG. 5 shows the laser using a first power level setting or first exposure time setting, or a combination of these, to remove some of the dyed fibers, but not revealing any of the white core fibers. The undyed fibers remain covered. There is no color change.

[0061] FIG. 6 shows the laser using a second power level setting or second exposure time setting, or a combination of these, to remove more of the dyed fibers than in FIG. 5. The second power level is greater than the first power level, or the second exposure time setting is greater than the first exposure time setting, or a combination of these. The result is some of the undyed fibers are revealed. There is a color change, subtle highlighting.

[0062] FIG. 7 shows the laser using a third power level setting or third exposure time setting, or a combination of these, to remove even more of the dyed fibers than in FIG. 6. The third power level is greater than the second power level, or the third exposure time setting is greater than the second exposure time setting, or a combination of these. The result is more of the undyed fibers are revealed. There is a color change, brighter highlighting.

[0063] As shown in FIG. 2, before laser 207, the fabric can be prepared 216 for the laser, which may be referred to as a base preparation, and can include a prelaser wash. This step helps improves the results of the laser. After the laser, there can be a postlaser wash 219. This wash can clean or remove any residue caused by the laser, such as removing any charring (which would appear as brown or slightly burned). There can be additional finish 221, which may be including tinting, softening, or fixing, to complete finishing.

[0064] FIG. 8 shows a technique where finishing 124 is divided into two finishing steps, finishing I and finishing II. Finishing I 808 is an initial finishing to create base templates 811. With finishing II 814, each base template can be used to manufacture multiple final finishes 817.

[0065] FIG. 9 shows multiple base templates, base A, base B, and base C. These base templates may be referred to as base fit fabrics or BFFs. In an implementation, the base templates can be created during base prep and prelaser wash 216 (see FIG. 2). During finishing I, by using different wash 216 methods or recipes, each different base template can be created.

[0066] Finishing II can include laser finishing. Base A is lasered with different designs to obtain various final product based on base A (e.g., FP(A)1 to FP(A)i, where i is an integer). Base B is lasered with different designs to obtain various final product based on base B (e.g., FP(B)1 to FP(B)j, where j is an integer). Base C is lasered with different designs to obtain various final product based on base C (e.g., FP(C)1 to FP(C)k, where k is an integer). Each base can be used to obtain a number of different final designs. For example, the integers i, j, and k can have different values.

[0067] As described above and shown in FIG. 2, after finishing II, there can be additional finishing during post laser wash 219 and additional finishing 221. For example, during the postlaser wash, there may be additional tinting to the lasered garments. This tinting can result in an overall color cast to change the look of the garment.

[0068] In an implementation, laser finishing is used to create many different finishes (each a different product) easily and quickly from the same fabric template or BFF or "blank." For each fabric, there will be a number of base fit fabrics. These base fit fabrics are lasered to produce many different finishes, each being a different product for a product line. Laser finishing allows greater efficiency because by using fabric templates (or base fit fabrics), a single fabric or material can be used to create many different products for a product line, more than is possible with traditional processing. This reduces the inventory of different fabric and finish raw materials.

[0069] For a particular product (e.g., 511 product), there can be two different fabrics, such as base B and base C of FIG. 9. The fabrics can be part of a fabric tool kit. For base B, there are multiple base fit fabrics, FP(B)1, FP(B)2, and so forth. Using laser finishing, a base fit fabric (e.g., FP(B)1) can be used to product any number of different finishes (e.g., eight different finishes), each of which would be considered a different product model.

[0070] For example, FP(B)1 can be laser finished using different laser files (e.g., laser file 1, laser file 2, laser file 3, or others) or have different postlaser wash (e.g., postlaser wash recipe 1, postlaser wash recipe 2, postlaser wash recipe 3, or others), or any combination of these. A first product would be base fit fabric FP(B)1 lasered using laser file 1 and washed using postlaser wash recipe 1. A second product would be base fit fabric FP(B)1 lasered using laser file 2 and washed using postlaser wash recipe 1. A third product would be base fit fabric FP(B)1 lasered using laser file 2 and washed using postlaser wash recipe 2. And there can be many more products based on the same base fit fabric. Each can have a different product identifier or unique identifier, such as a different PC9 or nine-digit product code.

[0071] With laser finishing, many products or PC9s are produced for each base fit fabric or blank. Compared to traditional processing, this is a significant improvement in providing greater numbers of different products with less different fabrics and finishes (each of which in traditional processing consume resources, increasing cost, and take time). Inventory is reduced. The technique of providing base fit finishes or fabric templates for laser finishing has significant and many benefits.

[0072] A system incorporating laser finishing can include a computer to control or monitor operation, or both. FIG. 10 shows an example of a computer that is component of a laser finishing system. The computer may be a separate unit that is connected to a system, or may be embedded in electronics of the system. In an embodiment, the invention includes software that executes on a computer workstation system or server, such as shown in FIG. 10.

[0073] FIG. 10 is a simplified block diagram of a distributed computer network 1000 incorporating an embodiment of the present invention. Computer network 1000 includes a number of client systems 1013, 1016, and 1019, and a server system 1022 coupled to a communication network 1024 via a plurality of communication links 1028. Communication network 1024 provides a mechanism for allowing the various components of distributed network 1000 to communicate and exchange information with each other.

[0074] Communication network 1024 may itself be comprised of many interconnected computer systems and communication links. Communication links 1028 may be hardwire links, optical links, satellite or other wireless communications links, wave propagation links, or any other mechanisms for communication of information. Communication links 1028 may be DSL, Cable, Ethernet or other hardwire links, passive or active optical links, 3G, 3.5G, 4G and other mobility, satellite or other wireless communications links, wave propagation links, or any other mechanisms for communication of information.

[0075] Various communication protocols may be used to facilitate communication between the various systems shown in FIG. 10. These communication protocols may include VLAN, MPLS, TCP/IP, Tunneling, HTTP protocols, wireless application protocol (WAP), vendor-specific protocols, customized protocols, and others. While in one embodiment, communication network 1024 is the Internet, in other embodiments, communication network 1024 may be any suitable communication network including a local area network (LAN), a wide area network (WAN), a wireless network, an intranet, a private network, a public network, a switched network, and combinations of these, and the like.

[0076] Distributed computer network 1000 in FIG. 10 is merely illustrative of an embodiment incorporating the present invention and does not limit the scope of the invention as recited in the claims. One of ordinary skill in the art would recognize other variations, modifications, and alternatives. For example, more than one server system 1022 may be connected to communication network 1024. As another example, a number of client systems 1013, 1016, and 1019 may be coupled to communication network 1024 via an access provider (not shown) or via some other server system.

[0077] Client systems 1013, 1016, and 1019 typically request information from a server system which provides the information. For this reason, server systems typically have more computing and storage capacity than client systems. However, a particular computer system may act as both as a client or a server depending on whether the computer system is requesting or providing information. Additionally, although aspects of the invention have been described using a client-server environment, it should be apparent that the invention may also be embodied in a stand-alone computer system.

[0078] Server 1022 is responsible for receiving information requests from client systems 1013, 1016, and 1019, performing processing required to satisfy the requests, and for forwarding the results corresponding to the requests back to the requesting client system. The processing required to satisfy the request may be performed by server system 1022 or may alternatively be delegated to other servers connected to communication network 1024.

[0079] Client systems 1013, 1016, and 1019 enable users to access and query information stored by server system 1022. In a specific embodiment, the client systems can run as a standalone application such as a desktop application or mobile smartphone or tablet application. In another embodiment, a "Web browser" application executing on a client system enables users to select, access, retrieve, or query information stored by server system 1022. Examples of Web browsers include the Internet Explorer browser program provided by Microsoft Corporation, Firefox browser provided by Mozilla, Chrome browser provided by Google, Safari browser provided by Apple, and others.

[0080] In a client-server environment, some resources (e.g., files, music, video, or data) are stored at the client while others are stored or delivered from elsewhere in the network, such as a server, and accessible via the network (e.g., the Internet). Therefore, the user's data can be stored in the network or "cloud." For example, the user can work on documents on a client device that are stored remotely on the cloud (e.g., server). Data on the client device can be synchronized with the cloud.

[0081] FIG. 11 shows an exemplary client or server system of the present invention. In an embodiment, a user interfaces with the system through a computer workstation system, such as shown in FIG. 11. FIG. 11 shows a computer system 1101 that includes a monitor 1103, screen 1105, enclosure 1107 (may also be referred to as a system unit, cabinet, or case), speaker (not shown), keyboard or other human input device 1109, and mouse or other pointing device 1111. Mouse 1111 may have one or more buttons such as mouse buttons 1113.

[0082] It should be understood that the present invention is not limited any computing device in a specific form factor (e.g., desktop computer form factor), but can include all types of computing devices in various form factors. A user can interface with any computing device, including smartphones, personal computers, laptops, electronic tablet devices, global positioning system (GPS) receivers, portable media players, personal digital assistants (PDAs), other network access devices, and other processing devices capable of receiving or transmitting data.

[0083] For example, in a specific implementation, the client device can be a smartphone or tablet device, such as the Apple iPhone (e.g., Apple iPhone 8, iPhone XS, or iPhone XS Max), Apple iPad (e.g., Apple iPad, Apple iPad Pro, or Apple iPad mini), Apple iPod (e.g., Apple iPod Touch), Samsung Galaxy product (e.g., Galaxy S series product or Galaxy Note series product), Google Nexus and Pixel devices (e.g., Google Nexus 6, Google Nexus 7, or Google Nexus 9), and Microsoft devices (e.g., Microsoft Surface tablet). Typically, a smartphone includes a telephony portion (and associated radios) and a computer portion, which are accessible via a touch screen display.

[0084] There is nonvolatile memory to store data of the telephone portion (e.g., contacts and phone numbers) and the computer portion (e.g., application programs including a browser, pictures, games, videos, and music). The smartphone typically includes a camera (e.g., front facing camera or rear camera, or both) for taking pictures and video. For example, a smartphone or tablet can be used to take live video that can be streamed to one or more other devices.

[0085] Enclosure 1107 houses familiar computer components, some of which are not shown, such as a processor, memory, mass storage devices 1117, and the like. Mass storage devices 1117 may include mass disk drives, floppy disks, magnetic disks, optical disks, magneto-optical disks, fixed disks, hard disks, CD-ROMs, recordable CDs, DVDs, recordable DVDs (e.g., DVD-R, DVD+R, DVD-RW, DVD+RW, HD-DVD, or Blu-ray Disc), flash and other nonvolatile solid-state storage (e.g., USB flash drive or solid state drive (SSD)), battery-backed-up volatile memory, tape storage, reader, and other similar media, and combinations of these.

[0086] A computer-implemented or computer-executable version or computer program product of the invention may be embodied using, stored on, or associated with computer-readable medium. A computer-readable medium may include any medium that participates in providing instructions to one or more processors for execution. Such a medium may take many forms including, but not limited to, nonvolatile, volatile, and transmission media. Nonvolatile media includes, for example, flash memory, or optical or magnetic disks. Volatile media includes static or dynamic memory, such as cache memory or RAM. Transmission media includes coaxial cables, copper wire, fiber optic lines, and wires arranged in a bus. Transmission media can also take the form of electromagnetic, radio frequency, acoustic, or light waves, such as those generated during radio wave and infrared data communications.

[0087] For example, a binary, machine-executable version, of the software of the present invention may be stored or reside in RAM or cache memory, or on mass storage device 1117. The source code of the software of the present invention may also be stored or reside on mass storage device 1117 (e.g., hard disk, magnetic disk, tape, or CD-ROM). As a further example, code of the invention may be transmitted via wires, radio waves, or through a network such as the Internet.

[0088] FIG. 12 shows a system block diagram of computer system 1101 used to execute the software of the present invention. As in FIG. 11, computer system 1101 includes monitor 1103, keyboard 1109, and mass storage devices 1117. Computer system 1101 further includes subsystems such as central processor (CPU) 1202, system memory 1204, input/output (I/O) controller 1206, display adapter 1208, serial or universal serial bus (USB) port 1212, network interface 1218, graphics processor (GPU) 1220, field programmable gate array (FPGA) 1225, and specialized processor 228 (e.g., ASIC, physics processor, digital signal processor (DSP), or other processor). The invention may also be used with computer systems with additional or fewer subsystems. For example, a computer system could include more than one processor 1202 (i.e., a multiprocessor system) or a system may include a cache memory.

[0089] The computer system may include any number of graphics processors. The graphics processor may reside on the motherboard such as being integrated with the motherboard chipset. One or more graphics processors may reside on external boards connected to the system through a bus such as an ISA bus, PCI bus, AGP port, PCI Express, or other system buses. Graphics processors may on separate boards, each connected to a bus such as the PCI Express bus and to each other and to the rest of the system. Further, there may be a separate bus or connection (e.g., Nvidia SLI or ATI CrossFire connection) by which the graphics processors may communicate with each other. This separate bus or connection may be used in addition to or in substitution for system bus.

[0090] The processor, CPU or GPU, or both, may be a dual core or multicore processor, where there are multiple processor cores on a single integrated circuit. The system may also be part of a distributed computing environment. In a distributed computing environment, individual computing systems are connected to a network and are available to lend computing resources to another system in the network as needed. The network may be an internal Ethernet network, Internet, or other network. Multiple processors (e.g., CPU, GPU, FPGA, and other specialized processors, in any combination) can be utilized on multiple, different machines connected by the network. These machines that perform the computation in parallel may connected through the Internet (or Cloud) using a paradigm known as Cloud computing.

[0091] Arrows such as 1222 represent the system bus architecture of computer system 1101. However, these arrows are illustrative of any interconnection scheme serving to link the subsystems. For example, GPU 1220 could be connected to the other subsystems through a port or have an internal direct connection to central processor 1202. The processor may include multiple processors or a multicore processor, which may permit parallel processing of information. Computer system 1101 shown in FIG. 12 is but an example of a computer system suitable for use with the present invention. Other configurations of subsystems suitable for use with the present invention will be readily apparent to one of ordinary skill in the art.

[0092] Computer software products may be written in any of various suitable programming languages, such as C, C++, C#, Pascal, Fortran, Perl, Matlab (from MathWorks, www.mathworks.com), SAS, SPSS, JavaScript, AJAX, Java, Python, Erlang, and Ruby on Rails. The computer software product may be an independent application with data input and data display modules. Alternatively, the computer software products may be classes that may be instantiated as distributed objects. The computer software products may also be component software such as Java Beans (from Oracle Corporation) or Enterprise Java Beans (EJB from Oracle Corporation).

[0093] An operating system for the system may be one of the Microsoft Windows.RTM. family of systems (e.g., Windows 95, 98, Me, Windows NT, Windows 2000, Windows XP, Windows XP x64 Edition, Windows Vista, Windows 7, Windows 8, Windows 10, Windows CE, Windows Mobile, Windows RT), Symbian OS, Tizen, Linux, HP-UX, UNIX, Sun OS, Solaris, Mac OS X, Apple iOS, Android, Alpha OS, AIX, IRIX32, or IRIX64. Other operating systems may be used. Microsoft Windows is a trademark of Microsoft Corporation.

[0094] Any trademarks or service marks used in this patent are property of their respective owner. Any company, product, or service names in this patent are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.

[0095] Furthermore, the computer may be connected to a network and may interface to other computers using this network. The network may be an intranet, internet, or the Internet, among others. The network may be a wired network (e.g., using copper), telephone network, packet network, an optical network (e.g., using optical fiber), or a wireless network, or any combination of these. For example, data and other information may be passed between the computer and components (or steps) of a system of the invention using a wireless network using a protocol such as Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802.11e, 802.11g, 802.11i, 802.11n, 802.11ac, and 802.11ad, just to name a few examples), near field communication (NFC), radio-frequency identification (RFID), mobile or cellular wireless (e.g., 2G, 3G, 4G, 3GPP LTE, WiMAX, LTE, LTE Advanced, Flash-OFDM, HIPERMAN, iBurst, EDGE Evolution, UMTS, UMTS-TDD, ixRDD, and EV-DO). For example, signals from a computer may be transferred, at least in part, wirelessly to components or other computers.

[0096] In an embodiment, with a Web browser executing on a computer workstation system, a user accesses a system on the World Wide Web (WWW) through a network such as the Internet. The Web browser is used to download Web pages or other content in various formats including HTML, XML, text, PDF, and postscript, and may be used to upload information to other parts of the system. The Web browser may use uniform resource identifiers (URLs) to identify resources on the Web and hypertext transfer protocol (HTTP) in transferring files on the Web.

[0097] In other implementations, the user accesses the system through either or both of native and nonnative applications. Native applications are locally installed on the particular computing system and are specific to the operating system or one or more hardware devices of that computing system, or a combination of these. These applications (which are sometimes also referred to as "apps") can be updated (e.g., periodically) via a direct internet upgrade patching mechanism or through an applications store (e.g., Apple iTunes and App store, Google Play store, Windows Phone store, and Blackberry App World store).

[0098] The system can run in platform-independent, nonnative applications. For example, client can access the system through a Web application from one or more servers using a network connection with the server or servers and load the Web application in a Web browser. For example, a Web application can be downloaded from an application server over the Internet by a Web browser. Nonnative applications can also be obtained from other sources, such as a disk.

[0099] Machine learning is used in apparel design to create realistic patterns and designs (e.g., wear pattern) on apparel. A realistic appearing pattern refers to a pattern that a person would not be able to (or would be difficult to) discriminate as being a fake (e.g., generated or manufactured artificially by a computer).

[0100] Machine learning is a field of computer science, and in particular, artificial intelligence (AI), that gives computers the ability to automatically learn and improve from experience without being explicitly programmed. Machine learning can utilize an artificial neural network (or simply, a neural net) that is based on a collection of connected units called artificial neurons.

[0101] Machine learning algorithms can be categorized as supervised or reinforcement learning type algorithms. Supervised machine learning algorithms can apply what has been learned in the past to new data using labeled examples to predict future events. Starting from the analysis of a known training dataset, the learning algorithm produces an inferred function to make predictions about the output values. The system is able to provide targets for any new input after sufficient training. The learning algorithm can also compare its output with the correct, intended output and find errors in order to modify the model accordingly.

[0102] Unsupervised machine learning algorithms are used when the information used to train is neither classified nor labeled. Unsupervised learning studies how systems can infer a function to describe a hidden structure from unlabeled data. The system does not figure out the right output, but it explores the data and can draw inferences from datasets to describe hidden structures from unlabeled data.

[0103] In an implementation, machine learning and artificial neural network computations for apparel design are executed on a hardware or software system, or combination, comprising one or more specialized processing units. Examples of the specialized processing units include central processing units (CPUs), graphical processing units (GPUs), physics processors, cell processors, digital signal processors (DSPs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and the like. Portions of the neural computational task for apparel design may be transformed into the form of mathematical manipulations. GPUs may be particularly well suited to performing such operations.

[0104] In this application, GPUs are used as an example of a specialized processor, but this is not intended to limit the scope of the teaching of this patent to GPUs. A neural net may utilize any of the specialized processors mentioned previously, and other substantially similar processors as understood by those having ordinary skills in the art and as similar or related processors may be developed later. An interface facilitating a neural net may be at least one of a PCI Express bus, AGP bus, front side bus, Ethernet, the Internet, or other interface that facilitates the transfer of data in any form including serial or parallel.

[0105] An alternative hardware configuration includes a cooperative collection of specialized processing units where each processing unit may be well suited for a specific type of computation. This hardware configuration will be defined here as a "heterogeneous configuration" meaning that the various computational tasks are executed by different, typically specialized, processors. As an example, GPUs are designed specifically for high throughput on specialized types of problems found in graphics processing that require a large number of arithmetic calculations with a relatively small number of memory access steps. Other specialized processors may be designed to handle other types of data or computational problems. Allocating the various portions of the neural net computations to specialized processors may improve the throughput, increase the efficiency, lower the cost, and improve the results of the computation.

[0106] GPUs may be designed for fast graphics processing. The data may be organized into a stream where a stream is an ordered set of data of the same data type. Operations, procedures, methods, algorithms, and the like that may be applied to entire streams of data are typically called kernels. Kernels are very efficient because they depend only on their input. Internal computations within the kernel are independent of other elements of the stream. Therefore, GPUs may be designed for parallel processing, memory efficiency, and high throughput for specific problems.

[0107] GPUs typically have hardware blocks that may be specifically designed for certain types of problems (e.g., specific kernels may be implemented in hardware). As an example, hardware blocks may be designed to implement various types of vector or matrix computations, or both. As an example, graphics data is typically four-dimensional referring to the channel value of the red, green, and blue pixels (referred to as RGB) and the opacity value (typically referred as alpha or A). Therefore, GPUs have been designed to process images (e.g., four-dimensional (RGBA) data) very quickly and very efficiently.

[0108] FIG. 13 shows a block diagram of machine learning using a generative adversarial network (GAN) 1303 to generate laser input files for realistic wear patterns on apparel. In an implementation, the generative adversarial network executes on a system having multiple graphics processors. The graphics processors or GPUs increase throughput, such as for training of neural nets that are part of the generative adversarial network and also for generating a model based on the training.

[0109] It should be understood that the invention is not limited to the specific flows and steps presented. A flow of the invention may have additional steps (not necessarily described in this patent), different steps which replace some of the steps presented, fewer steps or a subset of the steps presented, or steps in a different order than presented, or any combination of these. Further, the steps in other implementations of the invention may not be exactly the same as the steps presented and may be modified or altered as appropriate for a particular application or based on the data or situation.

[0110] A generative adversarial network is an architecture that typically incorporates some form of unsupervised machine learning. The generative adversarial network includes at least two neural networks. A first network may be referred to as a generative (G) neural network 1304 and generates candidates 1307. A second network, which may be referred to as a discriminative (D) neural network 1309, evaluates the candidates generated by the first network. The generative neural net tries to synthesize fake images that fool the discriminative neural net into thinking that the images are actual laser input files, not fake.

[0111] In a specific implementation, the input to generative neural net are images of garments with sample finished patterns with known laser input files. The known laser input files may be referred to as real data. Taking the sample images of garments, generative neural net generates laser input file candidates. These generated laser input file candidates can be referred to as fake data.

[0112] The generative adversarial network is trained by inputting images of laser input files with various patterns and designs 1312 and also images of the results of burning these laser input files onto apparel (e.g., jeans) 1316. Over time, with more training from greater numbers of input files, the generative neural net becomes better at generating laser input file candidates that are capable of fooling the discriminative neural net.

[0113] The amount of sample data used to train a generative adversarial network can vary, such as more than 100 samples, more than 200 samples, more than 300 samples, more than 500 samples, more than 800 samples, more than 900 samples, or more than 1000 samples. Generally, the greater number of samples, the better trained the generative adversarial network will. In an implementation, about 900 samples can be taken, which means there are 900 laser input files (real data) that are used to laser 900 different finishing patterns on, for example, jeans. This amount of real data sample can be further increased by various image processing or image manipulation techniques (e.g., lightening or darkening the images). The samples and image manipulated samples can be used as real data for the generative adversarial network.

[0114] Some files are described as being of an image file type. Some examples of image file types or file formats include bitmap or raster graphics formats including IMG, TIFF, EXIF, JPEG, GIF, PNG, PBM, PGM, PPM, BMP, and RAW. The compression for the file can be lossless (e.g., TIFF) or lossy (e.g., JPEG). Other image file types or file formats include vector graphics including DXF, SVG, and the like.

[0115] Bitmaps or raster graphics are resolution dependent while vector graphics are resolution independent. Raster graphics generally cannot scale up to an arbitrary resolution without loss of apparent quality. This property contrasts with the capabilities of vector graphics, which generally easily scale up to the quality of the device rendering them.

[0116] A raster graphics image is a dot matrix data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium. A bitmap, such as a single-bit raster, corresponds bit-for-bit with an image displayed on a screen or output medium. A raster is characterized by the width and height of the image in pixels and by the number of bits per pixel (or color depth, which determines the number of colors it can represent).

[0117] The BMP file format is an example of a bitmap. The BMP file format, also known as bitmap image file or device independent bitmap (DIB) file format or simply a bitmap, is a raster graphics image file format used to store bitmap digital images, independently of the display device. The BMP file format is capable of storing two-dimensional digital images of arbitrary width, height, and resolution, both monochrome and color, in various color depths, and optionally with data compression, alpha channels, and color profiles.

[0118] The generative neural net generates laser input files and synthesizes images to approximate a provided wear pattern (without a laser input file). The discriminative neural net evaluates each candidate generated. When the generated image appears photorealistic (or not fake) compared to the given image (without laser input file), the generative adversarial network has created or extracted a laser input file for a design that previously did not exist.

[0119] Then, information from the generative neural net and discriminative neural net are used to generate 1323 a model 1329. This model can be used to generate laser input files 1352 for given images of apparel with wear patterns 1357, where the results would appear realistic to the discriminative neural net.

[0120] In a specific implementation, the model is given images of a vintage garment with a wear pattern. Typically, there is not a laser input file for the vintage garment, since the wear pattern on the vintage garment was created by long-term wear. A jeans manufacturer like Levi Strauss & Co. has produced many jeans with a variety of wear patterns. The manufacturer has many existing wear pattern designs, which can include vintage wear patterns. Some wear patterns are referred to as authentic wear patterns which are the result of long-term wear. For example, a cowboy or cowgirl may wear a pair of jeans while ranching tending to cattle, riding houses, and participating in rodeos, and so forth. A miner may wear a pair of jeans while prospecting for gold, mining for coal, excavating a cavern, riding a mine train, and so forth. The result of the worker working in the jeans for a period of time (e.g., five or more years) without washing them will be an authentic wear pattern.

[0121] The apparel manufacturer wants to reproduce these existing, vintage, or authentic wear pattern designs (or portions or features of these designs) on garments. A laser system can be used to reproduce the wear pattern on new garments in an accelerated fashion, so that it will not take years to produce a garment.

[0122] An approach is to scan or take a photo of an existing garment with a wear pattern. Then with this scan or photo, create an inverted grayscale image. With the converted image, a laser prints (or burns) the wear pattern on another garment. However, the result of this approach is generally a very poor reproduction of the original wear pattern. The resulting wear pattern typically does not appear realistic, generally appearing flat--where the highs and lows in the coloration appear compressed.

[0123] There are reasons why this approach does not work. A reason is the material of the original garment and new garment are different. The laser has not been specifically configured for the characteristics of the material being burned. The scanning process or photo may not be a proper input file to control the laser for burning the pattern accurately.

[0124] Another approach for re-creating wear patterns is to enhance scans (e.g., via hand editing or hand drawing) of the existing pattern using a photo editing tool such as Adobe Photoshop. The editing process may use a computer, keyboard, mouse, or pen tablet input device (e.g., Wacom tablet), or any combination of these. This process is generally time consuming because significant manual editing is involved.

[0125] Therefore, it is desirable to obtain or extract a laser input file for this vintage garment, so that the vintage wear pattern may be reproduced more easily by laser finishing. Thus, the model (created through the generative adversarial network) is used to generate a laser input file output for this vintage garment. Then through laser finishing, a laser can burn laser input file onto a jeans template to re-create the vintage garment wear pattern. Using the approach in FIG. 13 and described above, the laser can re-create a wear pattern faster and more accurately than any previous approaches

[0126] Furthermore, in order to operate and generate candidates, the generative adversarial network has a randomness component which normally only ensures that the final network is trained in a robust way (e.g., able to generalize well to new inputs), and this randomness component can be increased or decreased. Although the candidates generated by the generative network may not be photorealistic compared to the given image, these candidates may be suitable for use as new designs that had not be previously produced or manufactured. These candidates may be used a starting point for designs to make modifications to create new designs. Therefore, due to the randomness component (which can be varied), the generative adversarial network can be used to generate many new designs that have not previously existed. Another technique using a purely convolutional neural network architecture allows for the creation of novel garments by mixing the aesthetic qualities of a garment or other artwork with the structural content of another image.

[0127] FIG. 14 shows another block diagram of machine learning using a generative adversarial network (GAN) 1462 to generate laser input files for realistic wear patterns on apparel. This system is similar to the network shown in FIG. 13 and described above. There is a generative neural net that generates laser input file candidates from images of sample garments with lasered finishing patterns with known laser input files. The known laser input files can be referred to as real data, while the generated laser input file can be referred to as fake data.

[0128] Compared to FIG. 13, in this network, discriminative neural net 1309 is split into two neural nets, a real discriminator 1474 and fake discriminator 1476. There are two loss components, a generator loss 1480 (which is composed of a distance loss in Euclidean space and a GAN loss) and a discriminator loss 1483 (which is composed of a real discriminator loss and a fake discriminator loss). Generator loss 1480 takes input from generated laser input file candidates 1307 (fake data) and laser input files data 1312 (real data) and outputs a distance loss value as well as a generator loss from the fake discriminator. These are input to a train model n iterations 1486 component.

[0129] Discriminator loss 1483 takes input from real discriminator 1474 (which receives real data) and fake discriminator 1476 (which receives fake data) and outputs a discriminator loss value, which is input to train model n iterations 1486. An output of train model n iterations 1486 is model 1329. Train model n iterations 1486 iterates on many laser input files and generated laser input file candidates until an error or loss based on the generator loss and discriminator loss values is reduced or minimized. When the loss values are reduced to a minimum, desired, or acceptable level, then that model can be used to create the laser input files from a given image of a jeans with finishing. An acceptable level can be determined by human judgment or review of a quality of the generated image.

[0130] Note that both the generator loss and discriminator loss take into account fake data. This is an adversarial aspect of the network. The generator is attempting to produce better fakes to fool the discriminator, while the discriminator is trying to improve itself in detecting fakes. Through adversarial training, the system improves its ability to produce a model that is used generate laser input file for a given image of a garment with the finishing pattern.

[0131] In short, to use this system, a user obtains a model by training the networks. This involves providing as input numerous examples of real data. Specifically, the real data would include laser input files and photos of the laser finished apparel which are from a result of lasering using these laser input files.

[0132] The system is also trained on generated data or fake data. This would include neural-net-generated laser input files, from generative neural net 1304 and generate laser input file candidates 1307. Training of a model continues until results from the generated laser input files become indistinguishable from the real laser input files. That is, the generative adversarial network is unable to distinguish the difference whether the image of apparel is a real or a fake.

[0133] At that point, when the model is given a photo of finished apparel for which a laser input file is not available, the model will be able to generate an appropriate laser input file to obtain that finished apparel using laser finishing.

[0134] An input to the real discriminator includes the input training or sample photos or images. An input to the discriminator includes the generated photos from the generative neural network. A loss is then calculated by strategically combine three loss measures, distance, discriminator, and generator. This can be done by the relationships (in Python programming language and TensorFlow framework from Google) as follows:

discrim_loss=tf.reduce_mean(-(tf. log(predict_real+EPS)+tf. log(1-predict_fake+EPS)))

gen_loss_GAN=tf.reduce_mean(-tf. log(predict_fake+EPS))

gen_loss_L1=tf.reduce_mean(tf. abs(targets-outputs))

gen_loss=gen_loss_GAN*a.gan_weight+gen_loss_L1*a.l1_weight.

[0135] Note that both the generator and the discriminator loss both have "predict_fake" loss in the relationships. This means that the discriminator and the generator both care about how good the "fake" or generated image is. To keep the discriminator loss "honest," the technique factors in the ability to tell what a real image is and make sure that it can still correctly guess a real image taken from the data while calling a fake a fake. To keep the generator "honest," the technique forces the generator to deal with the actual Euclidean distance from the intended output is. Because there is one discriminator loss function that trains both the real and fake discriminator, both are dependent on each other; without the other each discriminator could become biased. Similar relationship applies for the generator loss (e.g., combining predict_fake and distance loss).

[0136] FIG. 15 shows a technique of neural style transfer using a convolutional neural network. This technique using a purely convolutional neural network architecture allows for the creation of novel garments by mixing the aesthetic qualities from a laser pattern with the form factor (or topology) from another separate garment. These combinations may be mixed and matched to create novel product.

[0137] In an upper row 1504, a style image (e.g., Starry Nights by Vincent van Gogh) is combined with an input image (e.g., photograph of homes along a river), and the output from the convolutional neural network is an image with the style transferred (e.g., painting of the photograph in the Starry Nights style).

[0138] In a lower row 1512, a style image (e.g., laser input file) is combined with an input image (e.g., image of jeans), and the output from the style transfer convolutional network is an image with the style transferred (e.g., jeans with wear pattern in the style of the style image).

[0139] FIG. 16 shows another example of a neural style transfer. In this example, the same input and style images are used to generate three different outputs, which each differs from each other in appearance. This example shows how a style transfer convolutional network can also be used to generate multiple designs from the same input.

[0140] Artificial neural networks can be used for creative content development. A designer inputs style factors, and the technique generates novel finish patterns. Artificial neural networks can stylize existing finishes. Artificial neural networks can generate patterns for carryover finishes. Artificial neural networks can generate printable finish patterns for nonspecific briefs (e.g., full package in a box).

[0141] FIG. 17 has shows a more detailed system diagram of a conditional generative adversarial neural network (cGAN) to generate laser input files for realistic wear patterns on apparel. The system can be implemented in software using one or more general purpose computers, hardware with firmware code, or specialized hardware.

[0142] The components of the system include main 1705, load_examples( )1710, create_model 1715, create_discriminator 1720, create_discriminator 1725, create_generator 1730, batchnorm 1735, conv 1740, lrelu 1745, and deconv 1750.

[0143] Main 1705 generates a paths output for load_examples 1710 and receives examples from load_examples( ). An initial setup occurs within main 1705, taking in user variables and recording settings. Main checks a path or paths for input and output validity; creates a file list; makes input data into tensor flow manipulatable objects; splits input data into A side and B side, sets up data manipulation (e.g., flip or random crop), and calculates a model steps_per_epoch. Main returns RETURN Example{paths_batch, inputs_batch, targets_batch, len(input_paths), steps_per_epoch}.

[0144] Create_model 1715 receives examples.inputs and examples.target from main and outputs a model to main. Create_model ouptuts inputs and out_channels to create_generators 1730, and receive output=layers[-1]. In a specific implementation, create_model creates a first encoder layer with a 4.times.4 convolution, stride 2 of the input; creates a list of encoder layer definitions; create subsequent layers within a for loop iterating over the list of layer definitions (e.g., lrelu->conv->batchnorm->append layer); and creates a list of decoder layer definitions including a dropout percentage. Create_model creates decoder layers using a for loop to enumerate over the decoder layers. Skip connections (U-Net) are included where appropriate and appending to layers. A convolution (conv) operation is replaced by deconvolution (deconv) operation. A leaky rectified linear unit activation function (lrelu) function is replaced by a rectified linear unit activation function (relu) function. See below for further discussion. Then, a final layer or generated image is returned.

[0145] FIG. 18 shows an individual operation module for a conditional generative adversarial neural network for laser finishing. The module blocks lists an operation 1808, planar square dimension 1816, and depth dimension 1824. Some examples of operations include: Input, Conv, DeConv, LReLu, ReLu, BatchNorm, and Dropout. Conv represents a convolution operation. DeConv represents a transpose convolution or deconvolution operation. ReLu represents a rectified linear unit activation function. LReLu represents a leaky rectified linear unit activation function.

[0146] FIGS. 19A-19C show an implementation of a generator architecture of a generative adversarial neural network to generate laser input files for realistic wear patterns on apparel. In this implementation, conv is a 4.times.4 stride 2, deconv is a transpose convolution, and lrelu has a 0.2 slope when a value is less than 0.

[0147] FIGS. 20A-20C show another implementation of a generator architecture of a generative adversarial neural network to generate laser input files for realistic wear patterns on apparel.

[0148] Returning to FIG. 17, for a real discriminator operation, create_models outputs inputs and targets to create_discriminator 1725, and receives predict_real=layers[-1]. FIG. 20 shows an example of an implementation of operation of these components. For an implementation, conv are 4.times.4 full depth filters, and lrelu has 0.2 slope when less than 0.

[0149] The operations include: concatenate disc_input and disc_target from input, and targets are from the data set; create the first layer with input->conv->lrelu; create subsequent layers within a for loop iterating a specified number of discriminator layers (e.g., conv->batchnorm->lrelu->append layer); create last layer with conv->sigmoid; and return final layer (e.g., 30.times.30 grade of "realness").

[0150] Returning to FIG. 17, for a fake discriminator operation, create_models outputs inputs and gen_output to create discriminator 1720, and receives predict_fake=layers[-1]. This is similar to the operation described above, but with predicted fake layers rather than predicted real layers. Similarly, FIG. 21 shows an implementation of a discriminator architecture of a generative adversarial neural network to generate laser input files for realistic wear patterns on apparel. For an implementation, conv are 4.times.4 full depth filters, and lrelu has 0.2 slope when less than 0.

[0151] Similarly, the operations include: concatenate disc_input and disc_target from input, and targets are the generator outputs; create the first layer with input->conv->lrelu; create subsequent layers within a for loop iterating a specified number of discriminator layers (e.g., conv->batchnorm->lrelu->append layer); create last layer with conv->sigmoid; and return final layer (e.g., 30.times.30 grade of "fakeness").

[0152] Returning to FIG. 17, the batchnorm, conv, lrelu, and deconv components (such as shown in FIGS. 19 and 20) represent the modules and their inputs, which are generated by create discriminator 1720, create discriminator 1725, and create generator.

[0153] FIG. 22 shows an overall block diagram of a loss structure of the generative adversarial neural network to generate laser input files for realistic wear patterns on apparel. The components include inputs 2205, targets 2210, generator output image 2215, real discriminator 2220, fake discriminator 2225, generator L1 loss 2230, generator GAN loss 2235, generator loss 2240, and discriminator loss 2245.

[0154] For the generative adversarial network, the real discriminator, fake discriminator, and generator output image components are artificial neural networks of a machine learning system. The generator output image component generates candidates, while the real discriminator and fake discriminator evaluate the candidates. In a specific implementation, the candidates are laser image files used for laser finishing apparel such as jeans.

[0155] Inputs 2205 include photos or images (e.g., photos of laser finished garments and laser input files used to produce the finished garments), which are provided as input to generator output image 2215, real discriminator 2220, and fake discriminator 2125 components. The real discriminator can take real images as input while the fake discriminator can take as input fake images. The generator output image receives photos (e.g., photos of laser finished garments with known laser input files) and generates output images (e.g., laser image files or laser input files) as candidates. The generated output images can be referred to as fake data, while the know laser input files can be referred to as real data.

[0156] The real discriminator and fake discriminator components are difference machines, comparing their inputs and determining whether a given image is "real" or "fake." Specifically, the real discriminator determines differences between real images (from inputs 2205) and target images (from targets 2210). The fake discriminator determines differences between fake images (from generator output image 2215) and inputs 2205.

[0157] Generator L1 loss 2230 determines a generator loss 2240 based on outputs of the generator output image and fake discriminator. Generator GAN loss 2230 determines a discriminator loss 2245 based on outputs of the real and fake discriminators.

[0158] An equation (in Python programming language and TensorFlow framework from Google) for discriminator loss is:

discrim_loss=tf.reduce_mean(-(tf. log(predict_real+EPS)+tf. log(1-predict_fake+EPS))).

[0159] Equations (in Python programming language and TensorFlow framework from Google) for the generator loss are:

gen_loss_GAN=tf.reduce_mean(-tf. log(predict_fake+EPS)),

gen_loss_L1=tf.reduce_mean(tf. abs(targets-outputs)), and

gen_loss=gen_loss_GAN*a.gan_weight+gen_loss_L1*a.l1_weight.

[0160] More specifically, the fake discriminator uses the generator output as part of its input and then outputs "predict_fake" which is used by the discriminator loss to tell (part of) how good it is at detecting real versus fake. Output "predict_fake" is also used in generator loss to determine how well it can fool the discriminator. In this way the loss function becomes data dependent and allows a benefit through adversarial training. The generator also uses a direct distance metric to determine how close it is to what is in the data set. In this way the generator fits to the solution in the dataset.

[0161] When using laser finishing to burn a pattern, various laser levels can be obtained by varying an output of the laser beam by altering a characteristic of a laser waveform such as a frequency, period, pulse width, power, duty cycle, or burning speed. The pattern can be formed by a single pass of the laser or multiple passes.

[0162] In an implementation, a system includes an assembled garment made of a fabric material, where the assembled garment will be exposed to a laser beam that will create a finishing pattern on a surface of the assembled garment.

[0163] There is a laser that emits the laser beam, where the laser beam will form a finishing pattern on the surface of the fabric material of the assembled garment based on the laser input file. The laser input file is obtained by machine learning as discussed above. The laser input file can be a reverse image.

[0164] The assembled garment can include fabric panels that have been sewn together using thread to form pants legs, a crotch region for the pants, and pocket openings for the pants. Before exposure to the laser, the assembled garment does not have a finishing pattern. The fabric material can use a warp yarn having indigo ring-dyed cotton yarn and undyed weft yarn.

[0165] The finishing pattern on the surface of the fabric material of the assembled garment can be formed by removing a selected amount of material from the surface of the fabric material of the assembled garment based on the laser input file. Laser levels at an output of the laser beam are altered based on the laser input file by varying a characteristic of a laser such as a frequency, period, pulse width, power, duty cycle, or burn speed.

[0166] In an implementation, a method includes assembling a jeans made from fabric panels of a woven first denim material including a warp having indigo ring-dyed cotton yarn, where the fabric panels are sewn together using thread. A laser input file is created that is representative of a finishing pattern from an existing jeans made from a second denim material. The first denim material has a different fabric characteristic from the second denim material. The creating the laser input file can include: using machine learning to form a model, where the model generates the laser input file for an image of the existing garment with the finishing pattern.

[0167] A laser is used to create a finishing pattern on an outer surface of the jeans based on a laser input file. Based on the laser input file, the laser removes selected amounts of material from the surface of the first material at different pixel locations of the jeans. For lighter pixel locations of the finishing pattern, a greater amount of the indigo ring-dyed cotton warp yarn is removed, while for darker pixel locations of the finishing pattern, a lesser amount of the indigo ring-dyed cotton warp yarn is removed. The finishing pattern created can extend across portions of the jeans where two or more fabric panels are joined together by the threads by exposing these portions to the laser.

[0168] The first denim material can have a weft yarn that has not been indigo dyed. For the portions of the jeans exposed to the laser where the fabric panels are joined, the fabric panels are joined together using a thread having cotton.

[0169] The first denim material can have a first surface texture characteristic that is different from a second surface texture characteristic of the second denim material. The first denim material can have a first dye characteristic that is different from a second dye characteristic of the second denim material. The first denim material can have a first base fabric color characteristic (e.g., color shade or color tint) that is different from a second base fabric color characteristic of the second denim material. The first denim material can have a first yarn characteristic (e.g., ring dye effect) that is different from a second yarn characteristic of the second denim material. For example, the thickness of the ring dyed region can be different. The diameter of the core region can be different.

[0170] Further, the first denim material can have a first yarn weight characteristic that is different from a second yarn weight characteristic of the second denim material. The first denim material can have a first yarn diameter characteristic that is different from a second yarn diameter characteristic of the second denim material. The first denim material can have a first yarn twist characteristic (e.g., number of twists) that is different from a second yarn twist characteristic of the second denim material.

[0171] This description of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form described, and many modifications and variations are possible in light of the teaching above. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications. This description will enable others skilled in the art to best utilize and practice the invention in various embodiments and with various modifications as are suited to a particular use. The scope of the invention is defined by the following claims.

* * * * *

File A Patent Application

  • Protect your idea -- Don't let someone else file first. Learn more.

  • 3 Easy Steps -- Complete Form, application Review, and File. See our process.

  • Attorney Review -- Have your application reviewed by a Patent Attorney. See what's included.