Product modeling system and method
Abstract
A product modeling system and method are provided. On one embodiment, the product modeling system is used to model a piece of apparel, such as a shirt, with a design wherein the model with the design is used to display the piece of apparel with the design to a consumer.

Term
2.1 yearsleft in the term
Expires 24 October 2028.
- Priority
- Filed
- Granted
- Today
- Expires
13 claims: 8 independent, 5 dependent
- 1Claims:1. An apparatus for modeling a product, comprising: a plurality of markers that are capable of forming a marker pattern on a product that does not occlude a surface of the product;5 an imaging device that is capable of taking a single image of the product on an object and the plurality of markers, wherein the product is one of an item worn by a human being and an item worn by an animal;and a computing device that captures a contour of a design area when that design area is on a product that is represented on an object in the single image, electronically applies a user 10 design to the product and generates a visual representation of the user design on the product when on the object using the captured lighting, texture and contours of the surface of the product.
- 610 networked computing system, a client/server system, a peer-to-peer system, an ASP model type system, a laptop computer, a mobile device or a mobile cellular phone. 15. The apparatus of claim 1, wherein the marker pattern further comprises a grid of markets on the product. 16. A method for product modeling, comprising:15 providing, using an imaging device, a contour of a design area when that design area is on a product that is represented on an object in the single image generated by imaging, using a single image, the product on an object using a plurality of markers that form a marker pattern on the product that does not occlude a surface of the product, wherein the product id one of an item worn by a human being and an item worn by an animal;20 electronically applying, using a computer, a user design to the product;and generating, using the computer, a visual representation of the design on the product when on the object using the captured lighting, texture and contours of the product and the object so that the visual representation of the design on the product has the contour of the surface of the product. 25 17. The method of claim 16, wherein providing a three dimensional surface further comprises placing a plurality of markers on a product to create a grid, imaging the product on an object with the grid to generate an imaged product and capturing a contour of a surface of the product when the product is on the object based on the imaged product. 18. The method of claim 17 further comprising displaying the visual 30 representation of the product with the design on a web page to a consumer. 19. The method of claim 17, wherein the object further comprises a human model, a mannequin or an animal. 2008316632 05 Jan 2012 20. The method of claim 17, wherein placing the plurality of markers on a product further comprises affixing a plurality of markers to a physical product. 21. The method of claim 17, wherein placing the plurality of markers on a product further comprises electronically affixing a plurality of markers to an image of a 5 physical product. 22. The method of claim 17, wherein each marker further comprises a piece of pigment. 23. The method of claim 17, wherein each marker farther comprises a piece of reflective material. 10 24. The method of claim 23, wherein the piece of reflective material further comprises a piece of retro-reflective material. 25. The method of claim 17, wherein each marker further comprises a circular marker. 26. The method of claim 17, wherein placing a plurality of markers on a product 15 further comprises placing a grid of lines not visible to a human on the product. 27. The method of claim 16, wherein the product further comprises a piece of apparel, a garment, an item worn by a human being or an item worn by an animal. 28. The method of claim 16, wherein generating a visual representation of the design on the product further comprises mapping one or more points on the design to one or 20 more points on the contour of the surface of the product on an object. 29. The method of claim 28, wherein (he mapping the one or more points further comprising using a warp mapping. 30. The method of claim 28, wherein the warp mapping further comprises using a bicubic image warp. 25 31. The method of claim 16, wherein generating a visual representation of the design on the product further comprises further comprises colorizing the contour of a surface of a product on an object prior to generating the visual representation of the design on the product. 32. The method of claim 31, wherein colorizing the contour of a surface of a 30 product further comprises using a color calibration card. 33. The method of claim 31, wherein generating a visual representation of the design on the product further comprises further comprises texturizring the contour of a 2008316632 05 Jan 2012 - 32surface of a product on an object prior to generating the visual representation of the design on the product. 34. The method of claim 16, wherein the marker pattern further comprises a grid of markets on the product. 5 35. An apparatus for modeling a product, comprising: a plurality of markers that are capable of forming a marker pattern on a product that does not occlude a surface of the product;an imaging device that is capable of taking a single image of the product on an object and the plurality of markers, wherein the product is one of an item worn by a human being 10 and an item wom by an animal;and a computing device that captures a contour of a design area when that design area is on a product that is represented on an object in the single image, electronically applies a user design to the product and generates a visual representation of the user design on the product when on the object using the captured lighting, texture and contours of the product and the 15 ohject-so that the visual representation of the design on the product has the contour of the surface of the product. 36. A method for product modeling, comprising: providing, using a imaging device, a contour of a design area when that design area is on a product that is represented on an object in the single image generated by imaging, using 20 a single image, the product on an object with a single image using a plurality of markers that form a marker pattern on the product that does not occlude a surface of the product;electronically applying, using a computer, a user design to the product;and generating, using the computer, a visual representation of the user design on the product when on the object using the captured lighting, texture and contours of the product 25 and the object so that the visual representation of the user design on the product has the contour of the surface of the product. WO 2009/055738 PCT/US2008/081215 FIGURE 1 WO 2009/055738 PCT/US2008/081215 2/17 FIGURE 2 CM CM WO 2009/055738 PCT/US2008/081215 3/17 START PREPROCESS INTEGRATE FIGURE 3 WO 2009/055738 PCT/US2008/081215 4/17 □ □□□□□□□ □ □□□□□□□ □ □ □ □ □ □ □ [] □ □ El □ □ El □ □ □ [] □ El □ □ □ □ El □ < m Di ZD LL WO 2009/055738 PCT/US2008/081215 5/17 E 4B WO 2009/055738 PCT/US2008/081215 WO 2009/055738 PCT/US2008/081215 7/17 FIGURE 5B WO 2009/055738 PCT/US2008/081215 8/17 FIGURE 6A WO 2009/055738 PCT/US2008/081215 9/17 FIGURE 6C CD co Lil DC WO 2009/055738 PCT/US2008/081215 10/17 FIGURE 6D WO 2009/055738
- 711/17 PCT/US2008/081215 FIGURE 7A FIGURE 7B WO 2009/055738 PCT/US2008/081215
- 812/17 WO 2009/055738 PCT/US2008/081215
- 913/17 < CO LU Di O WO 2009/055738 PCT/US2008/081215
- 1014/17 FIGURE 8C WO 2009/055738 PCT/US2008/081215
- 1115/17 □ □□□□□□□ □ □□□□□□□ □ □ □ π □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ 3 □ □ □ □ FIGURE 8E CM O CM □ □ □ □ □ G !□□□□□□□ ΓΗ3-Ε3-Ε3-Ε3-Ε3-ΕΗ1 ΓΒ-Ε3-Ε3-Ε3-E3-E3-EMI Γ3-ΕΗΗ3-Ε3-Ε3-Ε3-Ε1 ΓΪ-ΕΗ3-Ε3-Ε3-Ε3-Ε3-Ε] Γ3-Ε3-Ε3-Ε3-Ε3-ΕΞ-Ε3-ΕΞΙ Ε3-Ε3-Ε3-ΕΞ-Ε3-Ε3-Ε MJ άάάαάαάά WO 2009/055738 PCT/US2008/081215
- 1216/17 FIGURE 9A FIGURE 9B WO 2009/055738 PCT/US2008/081215
- 1317/17 FIGURE 9C
Independent claims10
248 paragraphs in 106 sections, as filed
The invention relates generally to a system and method for modeling a piece of apparel.
Background
Electronic commerce (E-commerce) is a thriving business in which various different products and services are sold to a plurality of consumers using an E-commerce site. The ECommerce site may include a website that allows a plurality of consumers to gain access to die website using a network, such as the Internet. The website may have a plurality of web pages wherein these web pages have images of a plurality of different products that the consumer may purchase. The images contained in the plurality of web pages are two dimensional images. The website may also include a secure commerce portion that allows the consumer to select one or more items, place those items in an electronic shopping cart
WEsraissrns.t
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215
Attorney Docket No. 352432-5110 -2and, when done shopping, check out and pay for the items that remain in the electronic shopping cart using various payment services, such as PayPal or a credit card.
One limitation with these typical E~commerce systems is that the product available on the website, such as a shirt, may be modeled by a human model to show the product and its 5 design, but is shown to the consumer as a “flat” image since it is shown to the consumer on die display of the computer being used by the consumer. Thus, the actual design of the product and how the product looks in real life is often difficult to determine from those images. This may result in consumers not purchasing the product which is undesirable.
Another limitation of these typical E-commerce systems is that the product available on the website, such as a shirt, cannot be customized by die consumer with a design on die product Thus, the consumer cannot see the customized product with the design and (his also may result in consumers not purchasing the product which is undesirable. Thus, it is desirable to provide a system and method that provides better models for products and it is to this end that the system and method are directed.
Brief Description Of die Drawings
Figure 1 is a block diagram illustrates an exemplary implementation of the product modeling system;
Figure 2 illustrates an exemplary implementation of a product modeling method;
Figure 3 illustrates further details of an exemplary implementation of a product modeling method;
Figure 4A and 4B illustrate further details of the process for marking a product in the product modeling method;
Figures 5 A and 5B illustrate further details of the process for generating images of a product in the product modeling method;
Figures 6A-6D illustrate further details of the process for preprocessing die model in the product modeling method;
WESTaiS8273S.l
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -3Figures 7A - 7C illustrate further details of the post processing process in the product modeling method;
Figure 8A illustrates an example of a design to be placed on a piece of apparel;
Figures 8B illustrates a typical image of a piece of apparel with, the design in a typical system;
Figures 8C-8D illustrate the design on a piece of apparel in the product modeling system;
Figure 8E illustrates the process for placing file design on the model; and
Figures 9A -9C illustrate a process for changing the background against which the piece of apparel with the design is displayed fa the product modeling system.
Detailed Description of One or Moro Embodiments
The system and method are particularly applicable to a system and method for modeling a shirt implemented fa software on a computer and it is fa this context that the system and method is illustrated and described. It will be appreciated, however, that tile system and method can be used for various products wherein the products may include other apparel and other products fa which it is desirable to provide betters models of the products. For example, the system may be used for any type of garment or piece of apparel, any item that can be worn or used by a human beingar pet, such as a hat, backpack, dog sweater, etc. and/or any other product fa which it is desirable to be able to display the product on a model. In addition, the system may be used with any product fa which it is desirable to be able to display the product (with an irregular surface) with a design on it, such as a skateboard, a shoe, fa addition, the system may be used to display a design on any item with an irregular surface, such as a wall, automobile body, a pencil and the like. Furthermore, the system may be used to identity a product/item fa a video wherein a design can be inserted fate the product/item in the video. In addition, the system and method can be implemented in software (shown in the illustrated implementation), hardware or a combination of hardware and software and may also be implemented on stand alone computing device (shown in the illustrated implementation), a web server, a terminal, a peer to peer system and the like so that
WEST21582735.1
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215
Attorney Docket No. 352432-5110 -4the system and method are not limited to the particular implementation of the system or method.
Figure 1 is a block diagram illustrates an exemplary implementation of toe product modeling system 100. In this implementation, the system is implemented on a stand alone computing device, such as a personal computer and the product modeling system is implemented as one or more pieces of software comprising a plurality of lines of computer code that are executed by a processing unit in the computing device to implement the product modeling system. The product modeling system, however, can also be implemented on other computing devices and computing systems, such as a networked computing system, a client/server system, a peer-to-peer system, an ASP model type system, a laptop computer, a mobile device, a mobile cellular phone or any other computing device with sufficient processing power, memory and connectivity to implement the product modeling system and method as described below.
The exemplary implementation of toe system may include a display device 102 to permit a consumer to view die product with the design generated by the product modeling system, a chassis 104 and one or more input/output devices 105, such as a keyboard and mouse, that allow die consumer to interface with the computing device and the product modeling system. The chassis 104 may house a processing unit 106 such as an Intel processor, a persistent storage device 108 such as a hard disk drive and a memory 110 wherein the memory may store the software modules/applications being executed by the processing unit When the product modeling system is being implemented on the computing device, the computing device may also include a product modeling store 112, such as a software implemented database and the memory may store an operating system 114 that controls the operations of the computing device and a product modeling module 116 that has a plurality of lines of computer code wherein the plurality of lines of computer code are executed by the processing unit to implement the product modeling system and method as described below.
For purposes of illustrating the product modeling system and method, a product modeling method for a piece of apparel, such as a t-shirt, with a design is described below.
However, the product modeling system may also be used for other products, such as other apparel and other products in which it is desirable to provide betters models of the products.
WESTaiSS273S.l
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -5For example, the system may be used for any type of garment or piece of apparel, any item that can be worn or used by a human being or pet, such as a hat, backpack, dog sweater, etc. and/or any other product in which it is desirable to be able to display the product on a model. In addition, the system may be used with any product in which it is desirable to be able to display the product (with an irregular surface) with a design on it, such as a skateboard, a shoe. In addition, the system may be used to display a design on any item with an irregular surface, such as a wall, automobile body, a pencil and the like. Furthermore, the system may be used to identify a product/item in a video wherein a design can be inserted into the product/item in the video. The output of die product modeling method (an image of the product with a design shown on the product) may be used for various purposes. For example, the output may be used to generate a plurality of product displays with designs on a website that allows consumers to see the products. The example described below is a system in which the product modeling system is tied to a product marketing and selling company wherein the product marketing and selling company has control of models and images of toe product modeling system. In another implemcntation/cmbodiment of toe product modeling system, toe system may permit a consumer to provide their own images/models, such as models of toe actual consumer, so that toe consumer can upload the image to a service and then have the selected design displayed on toe model of toe actual consumer wherein the service provides: 1) the model components (to create toe model form); 2) a tool to upload/modify toe model images to toe service; and 3) a tool to display toe model with toe design to the consumer.
Figure 2 illustrates an exemplary implementation of a product modeling method 120 that displays a model with a design on the model wherein toe model is a realistic representation of a person with a piece of apparel that has toe design on toe piece of apparel. The methods shown in Figures 2 and 3, the processes described below may be performed by the product modeling module 116 described above. A consumer may select a design (122) such as toe design shown in Figure 8A and a warp process (124) may be performed to generate a warp design (128). The consumer may also select a background (126) for the model such as toe backgrounds shown in Figures 9A-9C. Once toe background and design are chosen by the consumer, toe design is warped and then sutftce shading ¢130) and a surface specular process (132) is performed. Once these processes are completed, the model is created with toe design (134) wherein toe model with toe design is shown to toe consumer. In one embodiment, toe model with the design is displayed to the consumer to assist toe
WEST\2158273J.l
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -6consumer in previewing the product with the design before the consumer purchases the product with the design, such as through an E-commerce website. Now, the product modeling method is described in more detail.
Figure 3 illustrates further details of an exemplary implementation of a product modeling method 140 when used with a piece of apparel. The product modeling method (and the processes set forth below) are implemented, in one embodiment and implementation, as a plurality of lines of computer code that are part of the product modeling module that are executed by a processing unit 106 that is part of the product modeling system. In die method, a piece of apparel is created with a plurality of markers (142) that are used to capture information about the piece of apparel when die piece of apparel is worn by a human model. The plurality of markers may be a marker pattern that encodes, in two dimensions, a flexible substrate that may be detected when the flexible substrate is placed on a complex three dimensional surface wherein the coverage area of the marker pattern does not Substantially occlude the substrate that it encodes. For example, die plurality of markers may cover a predetermined percentage, such as 50%, of die piece of apparel, that allow the system to capture information about the piece of apparel when the piece of apparel is worn by a human model. In one implementation, die plurality of markers may form a grid. In more detail, ths markers that form a grid on a flat surflice (the piece of apparel flat on a surface when die markers are properly positioned cm the piece of apparel) may be used to map to a grid of markers on a non-flat surface (the piece of apparel when worn on a human model). As shown in Figure 4A, the grid of markers 186 on the flat surface are mapped to a grid 187 with the same markers in die same positions on a non-flat surface so that the mapping between die grid on die flat surface and the grid on the non-flat surface is determined. The system may interpolate the marker locations to generate a mapping from the plurality of markers to die grid on die flat surface and may then store the mapping to avoid recalculation of the mapping each time. In one embodiment, the markers may be a number of non-visible lines that form a grid. In another embodiment, die markers may be a plurality of optical markers 190 that may be affixed to a piece of apparel 192 as shown in Figure 4B that permits the optical tagging of the piece of apparel to map the surface of die piece of apparel when wom by a human model. The optical markers may be made of a reflective material, a colorized material or a diffraction pattern. The reflective material may be retro-reflective material. The colorized material may be pigmented material. The markers may have various shapes (including die
WESTO1582735.1
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -7dot shape shown in Figure 4B) and sizes and the method is not limited to any particular shape of the markers. In one embodiment, the plurality of markers may be a film material that has the retro-reflective materia! in a particular shape. In yet another embodiment, the markers may be a set of markers that form a grid wherein the markers are placed onto the piece of apparel electronically or by other means. In one embodiment in which the product modeling system is used by a business entity that sells apparel, each piece of apparel is placed onto a plurality of human models of different shapes and/or sizes (as shown in Figures 5A and SB) so that the consumer can then choose a model for the piece of apparel that is closest to the intended wearer of the piece of apparel. In another embodiment in which each consumer may create his own model for a piece of apparel, the consumer is provided wife fee markers (either electronically or as physical markers) so feat the consumer can affix the markers to a piece of apparel and then performs fee other processes described below. In yet another embodiment, fee product modeling system may allow a plurality of users (such as a community of users) to generate a plurality of models feat may then be uploaded to fee product modeling System.
Once fee one or more pieces of apparel are prepared wife fee markers, an image for each piece of apparel on each different human model may be generated (150) such as by using a camera to take a picture of fee piece of apparel being <sup>w</sup>om by a human model. Prior to taking fee image of the piece of apparel with fee markers on fee human model, fee lighting for taking the image is determined. When the user/consumer generates fee models, the product modeling system may provide instructions for taking an image of fee piece of apparel such as using a flash, using a particular exposure, etc... In one implementation of fee product modeling system, fee product modeling system may download a piece of code directly to a user/consumer's camera, such as a digital camera, to set up fee camera properly to take fee image of the product or item, hi particular, fee surface model and illumination model for each piece of apparel is determined which also allows the color and lighting for fee image to be accurately determined.
Once fee image of the piece of apparel on a plurality of human models in a plurality of different poses are taken, fee model for fee piece of apparel on a particular model in a particular pose are preprocessed (160) by fee product modeling system. During fee preprocessing, the product modeling system may detect the plurality of markers on fee piece of apparel image, remove the marker images from the image of the piece of apparel and then
WS$Tt21S8273S.l
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -8generate a representation of the surface of the piece of apparel when wom by the human model.
In one implementation, the markers may be detected by a distinguishing feature of the markers (spectral difference, reflective difference, textual difference and/or temporal difference), refined by matching geometric properties of the pattern (local pattern finding) and reconstructed by matching the known pattern (local patterns assembled into a known complete pattern.) The reconstructed pattern may then be used to model the shape of the flexible substrate. The product modeling system may have a plurality of local samples of the original unmarked substrate so that the marker pattern can be replaced using the textures of the unmarked substrate as an example that yields an unmarked image suitable for commercial display.
The preprocessing process is shown in Figures 6A-6C with Figure 6A illustrating the image of the piece of apparel with the markers^ Figure 6B illustrating the plurality of markers identified on the piece of apparel and Figure 6C illustrates the image of the piece of apparel with the markers removed. Appendix A (2 pages), incorporated herein by reference, contains an example of the pseudocode for identifying the markers on a product in one implementation of the product modeling system. The steps of the marker identification process for one implementation are set forth in Appendix A. hi one implementation, the markers are detected by visible detection. In another implementation of the system, the markers may be detected by a temporal process in which infrared radiation may be used to image the markers at several different times and then the pattern of the markers is detected based on the images of the markers at several different times.
During the identification of the markers, the product modeling system may use various techniques. For example, edge detection may be used to identify each marker and the spacing between the markers that can then be used to generate the grid of markers on the surface of the piece of apparel when wom on a human model that thus allows the surface of that piece of apparel on the particular human model in a particular pose to be accurately determined. Alternatively, the system may threshold at the white color based on the color calibration and then locate elements above the threshold and then also identify the background including elements of the human model such as jewelry, an eye or the
WEST'21582735.)
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -9background behind the human model. The system may also use histograms to identify die markers and the background.
The marker images(once identified) may be removed from the image of the piece of apparel (as shown in Figure 6C) by various processes. For example, the markers may be removed by, for each marker location, identifying the texture adjacent the marker and then filling in the location of the marker with the texture in the adjacent area. Alternatively, the system may use image coherence and synthesize the image to remove the markers in the image.
To generate the representation of the contours of file surface of the piece of apparel when worn by a particular human model in a particular pose, the system maps the position of file markers 190 relative to each other as shown in Figure 6D into a set of contour curves 194 that represent file surface of the piece of apparel when worn by a particular human model in a particular pose. Since file system has information about the markers and the grid that they form on a flat surface as shown Figure 4A, the system is able to determine file contours of the surface of the piece of apparel when worn by a particular human model in a particular pose.
Once file contours of the surface is determined and file preprocessing is completed, the model of file piece of apparel when worn by a particular human model in a particular pose may be retouched (162) as needed. Then, the model is post-processed (170) by the product model system. During the post-processing process, file product model system colorizes the model using a color mapping module that is part of the product model system. The colorizing allows each model for each piece of apparel on a particular human model in a particular pose to have the piece of apparel converted into any colors such as the two different colors shown in Figures 7A and 7B. As shown in Figure 7C, the system may use the color calibration card with a known spectral response for each session to calibrate images for the same session. To change the color for the piece of apparel, the fabric may be wrapped onto a sphere as shown in Figure 7C which is then mapped to the model to change the color of the model.
Appendices B-E, incorporated herein by reference, illustrate, for a particular implementation of the product modeling system, the code fori) remapping the color of an image using normalized ordinal color distribution; 2) building a color map in normalized histogram order with an index from a matching color space; 3) building a look-up table to remap the colors from a source sphere to a destination sphere; and 4) remapping the color of
WESrai58273S.l
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
Attorney Docket No. 352432-5110 -10the source image with a source sphere color tnap to a destination image with the color map of the sphere color object. Using the code set forth in these appendices (and the process steps described in these appendices), the color mapping process; 1) builds a color map (the BuiidMap code in Appendix C) for the source image using a sphere to build a histogram and then a sorted table; 2) builds a remap table (the BuildReMap table code in Appendix D); 3) remaps the image colors (the code in Appendices B and E) onto the product. The system may also layer color and texture so that the colorized model of the particular piece of apparel an the particular human model in the particular pose more accurately emulates different fabrics and/or threads of the fabric which results, for example, in an accurate emulation of the printed ink of the design on the piece of apparel with the particular type of fabric.
Once the colorization is completed, the model for a particular piece of apparel on a particular human model in a particular pose is integrated into a service (180) such as a website that has the pieces of apparel with particular designs for sale to consumers.
When the model is integrated into the service, the product modeling system may perform warp mapping (182) on a design selected by the consumer and permit the user to select a particular background ¢184). An example design is shown in Figure 8A. The exemplary design shown on a piece of apparel in a typical system with a flat image is shown in Figure 8B. Using the product modeling system, a mapping between the design image and the surface contour of the model of the particular piece of apparel on the particular human model in the particular pose (See for example Figure 8D) is done so that the design is shown on the model as shown in Figure 8E is a more realistic three dimensional manner.
During the warp mapping (that may be a bicubic image warp), a grid of the design 200 is mapped to the surface contour grid 202 which is then placed onto the piece of apparel to generate the more realistic model for the piece of apparel with the design as shown in Figure 8D. In the mapping process, a point in the design is mapped to the surface contour grid which is in turn mapped onto the piece of apparel. The image background can be easily exchanged by the product modeling system as shown in Figures 9A-9C.
Although the example provided herein is for a piece of apparel (a shirt) worn by a human being, the product modeling system may be used for various different products (other pieces of apparel, other garments, hats, shoes, pet clothing, inanimate objects such as cups) with various different models (human models, animal models, inanimate models such as
WEST\21582735.1
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215
Attorney Docket No. 352432-5110 -11robots or mannequins) and with any number of different poses for the models since the above example is merely illustrative.
While the foregoing has been with reference to a particular embodiment of the invention, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from die principles and spirit of the invention, the scope of which is defined by the appended claims.
WESTS 1582755.1
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
APPENDIX A
EXEMPLARY CODE FOR LOCATING MARKERS
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
<img file="AU2008316632B2_D0001.tif" />
* Procedure:
* FindAndSynthMarkcrs * Description:
* Finds a marker pattern in a photograph, * Saves the Marker Array to a File, * Fills tire found Markers using multi-frequency texture synthesis.
* Finds the Background Alpha Channel Μ>ΦΦ****«*ι*«**********Φ*****>Ι·****««·»ΙΗι*****«***>Ι·*«***·*****************>Ι>*/ void ModelShot: :FindAndSynihMarkers( *aSrcImage, •aDstlmage, )
Image Image // find die markers // Save the RGB image to destination CopyRGBChannels(SrcImage, Dstlmage);
// Choose Monochrome scalers based on shirt color ChooseMonochomcScalers(SKUCOLOR, aMonochromeScaler);
// Convert the Source image to monochomc with good constrast ConvcrtSourccImagcToMonoChromc(aMonDchromcScalcr, Srclmage, aMonoImagc);
// Apply a Gaussian Difference Bandpass filter to increase marker contrast ApplyBandPassFilter/aMonoImage, LowMarkerSize, HighMarkerSize);
li find first histogram minima from full luminance, this is marker threshold MarkcrThrcshold ~ FindHistogramMinima( aMonoImagc, 1);
// produce marker image by thresholding
Apply Threshold(aMonoImage, Markerimage, MarkerThreshold);
//build marker array by filling each found region and averaging pixel locations.
BuildMarkerArray(MarkerImage, aMarkerArray);
SavcMarkcrArray(aMarkerArray, aMarkerArrayFilc) // save the found markers as a channel;
CopyChannel(MarkerImage, Dstlmage, MarkcrChannel);
// find the background // find second histogram minima from full luminance, this is background threshold BackgroundThncshold = FindHistograniMimma(DstImagc, 2);
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
H produce background alpha by thresholding ApplyThreshold(Dstlmage, Markerlmagc, MarkerThreshold);
// save the found background alpha as a channel; CopyChannel(MarkerImage, Dstlmage, backgroundCahnnel);
// fill die markers ll separate the high frequency image component
HighPassFilter(DstImage, HighPassImage, 2.0) // separate the low frequency component, downsample to improve texture synthesis speed.
DownsampleIrnage(DstImage, LowPassImage, 2.0) // increase the size of the markers to cover color artifacts from bloom. ExpandAlpha/Dstlmage, MarkerChannel, HighSynthSelection, BloomDist);
// downsample the selection for the low frequency component Downsamplclmage(HighSynthSelection, LowSynthSclection, 2.0) // fill the LowpassImage markers with texture examples // from the local 11x11 neighborhood.
LocalTextureSynthesis(LowPassImage, LowSynthSclection, 11,11);
// fill the HighPassImage with texture examples // from the local 5x5 neighborhood. LocalTextureSynthesis(HighPassImage, HighSynthSelection, 5,5);
}
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738
PCT/US2008/081215
<img file="AU2008316632B2_D0002.tif" />
APPENDIX B EXEMPLARY CODE FOR REMAPPING IMAGE COLOR
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738 ib
<img file="AU2008316632B2_D0003.tif" />
* Procedure:
* RemapImagcColor *
* Description:
* Remaps the Image Color using normalized ordinal color distribution * of similar source and destination color reference photos.
* Reference photos need not be aligned, only have proportionally * illuminated color areas.
<img file="AU2008316632B2_D0004.tif" />
void ModelShot;:RemapImageColor(
Image Image Image Image ) *aSrc!magc, •aSrcColorReference, •aDstlmage, •aDstColorReference // Make a Source Color map SphereColor *aSrcMap = SphereColort;NewL(iService); aSrcMap->BuildMap(aSrcColorReference, 3,0x00007fff);
// Make a Dest Color map SphereColor *aDstMap * SphereColor: :NewL(iScrvicc); aDstMap->BuildMap(aDstColorRcfcrcncc, 3,0x00007ffl);
aDstMap->RcmapImageComposite(aSrcImage, aSrcMap, aDstlmage);
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
Π
WO 2009/055738
APPENDIX C EXEMPLARY CODE FOR BUILDMAP
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738 ^*·****Φ·**«*Φ****4Φ>»ΦΦΦΦ«Φ*Φ*Φ**ΦΦΦΦ**ν*>Ιι***Φ*«ΦΦΦ*ι*«*Φ***Φ**Φ·*Φ>|ι****«*·Μι * Procedure*.
* BuildMap *
* Description:
* Builds a color map in normalized histogram order, with an index * to map from a matching color space.
* Uses these steps:
* 1. Finds a monochrome scale for the image that maximizes the * resolution for this color sample.
* 2. Builds a Histogram from this monochrome value for the * Image, annotated with the average color for each bin.
* 3. Builds a map of color normalized to the amount of * each luminance found in the reference image.
* 4. Builds a lookup to go from the reference color space * to the normalized map space.
φφφφφφφφφφφφφφφφφφφφφφφφφφφφφ^φφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφφ^
BOOL SphcreColor::BuildMap(Image *aSphercImagc,
INT32 aMapChannel, INT32 aMapThreshold) 1
INT32 anEntryCount = 1 « SPHERECOLORSHIFT;
UINT16 ♦«Buffer = (UINT16*)aSphcrcImagc->imagcjtr;
INT32 anlmageSize = aSphereImage->width ♦ aSphere!mage->height;
INT64 anAccumColor[3J;
INT32 aFoundPixelCount = 0;
sphcreHistoAccum ♦aTempColorEntries;
1NT32 i;
BOOL «Result = FALSE;
iScrvice->AllocL(anEntryCount * sizeoftsphereHistoAccum), 'cent'); aTempColorEntries = (sphereHistoAccum<sup>+</sup>)iService->GetAlIacO; iService->PushAllocL(aTcmpColorEntries);
memset(aTempColorEntries, 0, anEntryCount ♦ sizeof(sphcreHistoAccum));
anAccumColorfO] = 0;
anAccumColorfl] = 0;
anAccumColor[2] = 0;
for(i = 0; i < anlmageSize; i++) if (aBuffer[aMapChannel] > aMapThreshold) {
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215 anAccumColorfO] += aBuffer[O);
anAccurnColorfl] += aBufferfl];
anAccumColor(2] += aBuffcr[2]; aFoundPixclCount++;
} aBuffer += aSphere!mage->channels;
if (aFoundPixelCount > 0) {
anAocumColor[0] = anAccumColor[0] / aFoundPixelCount; anAccumColor[l] = anAccumColorfl] / aFoundPixelCount; anAccumColor[2] = anAccumColor[2] / aFoundPixelCount;
CalcMonoScalers(anAccumColor);
aBuffer - (UTNT16*)aSpherelmage->image_ptr, for(i - 0; i < anlmageSize; i++) if (aBufferfaMapChannel] > aMapThreshold) (
UENT32 aLuminance = ((aBufferfOJ * (UINT32)iMonoScalcr[0]) » 16)+ ((aBufferfl] * (UINT32)iMonoScaler[l]) » 16)+ ((aBuffet[2] * (UlNT32)iMonoScalcr[2D » 16);
INT32 aLumlndcx = aLuminance » (16 SPHERE_COLOR_SHIFT);
aTempColorEntrics[aLumindex].shaColorCount++;
aTempColorEntries[aLumIndexi.shaAverageCoIor[0] += aBuffer [0]; aTempColorEntrics[aLumIndex].shaAverageColor[l] += aBuffcrfl]; aTempColorEntries[aLumlndex].shaAverageColor[2] += aBuffer[2];
aTempColorEntries[aLumIndex].shaLuminance = aLuminance;
} aBuffer += aSphereImage->channels;
) if (aFoundPixelCount > 256) (
double anlncrcmcnt = (REAL)aFoundPixclCount / (REAL)anEntryCount; double uRunningCount = 0;
UlNT32j;
aResult = TRUE;
if (this->iHisto = NULL) {
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215 iService->AIlocL(anEntryCount ♦ sizeoftsphercHistoEntry), ΈϊβΓ); this-MHisto = (sphereHi8toEntry*)iService->GetAllocO;
} memsct(iHisto, 0, anEntryCount * sizeof(sphereHistoEntry));
for(i - 0; i < anEntryCount; i++)
INT32 aColorCount= aTempColorEntries[i].shaColorCoung if (aColorCount1- 0) {
aTempCoIorEntries[i]jihaAverageColor[0] /= aColorCount;
aTempColorEntries[i].shaAverageColor[l] A<sup>1</sup> aColorCount; aTempColorEntrics[i].shaAveragcColor[2] /= aColorCount;
} }
for(i = 0; i < anEntryCount; i++) { double aNextCount = aRunningCount + aTempColorEntries[i].shaColorCount;
double aHistoValue = (aRunningCount I anlncrcment);
UINT32 aRunStart = (UINT32)floor(aHistoValue);
UINT32 aRunEnd ” (UINT32)ceil(aNextCount / anlncrcment);
UINT32 aRunDiff;
ΪΝΤ32 aLutnShift=(16 - SPHERE_COLOR_SHIFT);
INT32 aLumlncrement = 1« aLumShifV, if (aRunStart > (UINT32)anEntryCoiint-1) aRunStart = (UINT32)anEntryCount-l;
if (aRunEnd > (UINT32)anEntryCount) aRunEnd = (UINT32)anEntiyCount;
aRunDiff = aRunEnd - aRunStart;
iHisto[i].shaIndex = aRunStart;
iHisto[i].shaHistoFract=(UINT16)((aHistoValue - aRunStart) * OxOOOOFFFF);
if (iHisto[i] .shaHistoFract > OxOOOOOffff) iHisto[i].shaHistoFract = OxOOOOffff;
if (aRunDiff) (
UINT32 aRunScaler=0x00010000 / aRunDiff;
fbr(j = aRunStart; j < aRunEnd; j++)
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
<td></td><td> { 1NT32 aFract = (0 - aRunStart) * aRunScaler); this->iHisto[j].shaLuminancc - (i« aLumShift); this->iHisto[j].shaLumiMncc += (aLumlncrcmcnt *</td>
<td> aFract) »16;</td><td> INT32 aColorScaler = 0; if (aTempColorEntries[i].shaLuminance > 0) { aColorScaler = (this-</td>
<td> >iHista[j].shaLuminance «16)/</td><td> aTempColorEntries[i].shaLuminancc; )</td>
this->iHisto[j].shaColor[0] = (UlNT16)((aTempColorEntries[i].shaAverageColor[0] * aColorScaler) »16);
thiS->iHisto(j].shaColor[l] = (UINT16)((aTempColorEntries[i] ,shaAverageColor[l] ♦ aColorScaler)» 16);
this->iHisto[i].shaColor[2] = (HINT 16)((aTcmpColorEntrice[i] .shaAverageColor[2] * aColorScaler)»16);
} } aRunningCount = aNextCount;
this->iHisto[anEntryCoiint-l].shaColor[0] = this->iHisto[anEntryCount2].shaColor[0J;
this->iHisto[anEntryCount-l].shaColor[l] = this->iHisto(anEntryCourit2].shaColor[l];
this->iHisto[anEntryCount-l].shaColor[2] = this->iHisto[anEntryCount2].shaColor[2];
} iService->PopAndDestroyAlloc(aTctnpColorEntries); retum(aResult);
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
APPENDIX D EXEMPLARY CODE FOR BUILD REMAP TABLE
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738 •Procedure:
* BuildRemapTable ♦
* Description:
* Builds a look-up table to remap die colors from a source sphere to a * dest sphere.
* This function builds a luminance-based look up.
* for each luminance entry it docs these things:
* I. Look up the index from this luminance into the normalized * color reference space.
* 2. Intcropolatc between two entries in the reference map * using this luminance's fractional weight.
* 3. Store the interpolated value in the entry for this * luminance.
* void SphereColor::BuildRemapTable(SphereColor *aSourceSphere) I
INT32 anEntryCount = 1 « SPHERE_COLOR_SHIFT; UINT16 *aDstColor;
INT32 aLumShift = (16 - SPHERE JJOLOR_SHIFT); INT32i;
if(iRemap —NULL) { iServicc->AllocL(anEntryCount · sizeof(UINT16) * 3, 'rnoap'); this->iRemap = (UINT16*)iService->GetAllocO;
aDstColor - this->iRcmap;
for (i = 0; i < anEntryCount; i++) { // for each entry in the table...
II map from luminance into normalized Histogram order
INT32 aHistolndcxO = aSourccSphcre->iHisto[i].shaIndcx;
// if this is not the last entry...
if ((i + 1) < anEntryCount) (
// interpolate between this and the next entry for smoothness
UINT32 aHistoBlcndl = aSourccSphere->iHisto[i+l].shaHistoFrac
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215
<img file="AU2008316632B2_D0005.tif" />
UTNT32 aHistoBlendO = OxOOOOffff - aHistoBIendl;
INT32 aHistoIndexl = aSourceSphere->iHisto[i+l].shalndex; UINT16 *aDstColort) = this+<sup>></sup>iHisto[aHistolndexO].shaCoIor; UINT16 *aDstColorl = this->iHisto[aHistoIndexl].shaColor;
aDstColor[0] = (UINT16X((aDstColor0[0] * aHistoBlendO) » 16)+ C(aDstCblorl[0] * aHistoBIendl) »16));
aDstColor[l]-(UlNTI6)(((aDstColorO[l] * aHistoBlendO)» 16)+ ((aDstColorlfl] * aHistoBIendl) »16));
aDstColor[2] = (UlNT16)(((aDstColorO[2] ♦ aHistoBlendO) » 16)+ ((aDstColorip] * aHistoBIendl) » 16));
else { // last entry, no interpolation
UINT16 *aHistoColor - this->iHisto[aHistolndexO].shaColor, aDstColor[0] = aHistoColor(0];
aDstColor[l] - aHistoColorfl); aDstColor[2] = aHistoColor[2];
} aDstColor +·» 3;
}
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738
APPENDIX E EXEMPLARY CODE FOR REMAP IMAGE COMPOSITE
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
PCT/US2008/081215
WO 2009/055738 * Procedure:
* RcmapImagcCompositc *
* Description:
* Remaps the Color of aSourcelmage with aSourceSphere color map to * aDestlmage withthe color Map of this SphereColor object.
* aMapChannel is the index of the alpha channel with the region to be * remapped indicated in white. The remaped color fa then blended into * die image.
* Ulis function does the following:
* Builds a remapTable to go from the source color space to * the dost color space.
* Using the source color space's Monochrome sealer, find a luminance * for each pixel.
* Use the luminance to look-up the new color value in the remap table.
* Composite the new color value into the dest image.
♦ ♦ + 4444*444444*1*444*4 444444*444444444444444444444444444444444444*44*4*444/ void SphereColor::ReniapImageComposite( Image *aSourcelmage, SphereColor •aSourceSphere,
Image *aDestImage, INT32 aMapChannel) ( if (aSourcelmage && aSourceSphere && aDestlmage) {
if (aSourcelmage->iElemType “ elemi 6bit && aDestImage->iElemType = elemi 6bit) {
if (aSourccImagc->height “ aDcstImage->hcight && aSourcelmage^width=aDesfimage^>width && aMapChannel > 2 && aSourceImage->channels > aMapChannel && aDestImage->channels > 3) {
if (iHisto && aSourceSphere->iHisto) (
INT32 aPixelCount = aSourceImage->hcight ♦ aSourceImage->width;
UINT16 *aSrcBuffer= (UINT16*)aSourceIinage>image_ptr;
UINT16 *aDstBuffer = (UTNT16*)aDestImage>image_ptr,
UINT32 *srcMonoScalcr = aSourceSphcre->iMonoScaler;
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738 PCT/US2008/081215
INT32 anEntryCount = 1« SPHERE_COLOR_SHIFT; UINT16 ♦aDstColor;
1NT32 aLumShift -= (16 - SPHERE_COLOR_SHIFT);
BuildRemapTable(aSourceSphere);
INT32 i;
for (i = 0; i < aPixelCount; i++) t // for every pixel in the image...
if (aSrcBuffer[aMapChannel] > OxOOOOOOff) { // fetch the blending values for alpha coloring
UTNT32 anAlphaBlendO = aSrcBufferfaMapChannel];
UINT32 anAlphaBlendl = OxOOOOffffanAlphaBlendO;
// calc luminance using this color space's monochrome //scaler.
UINT32 aLuminance = ((aSrcBuflfer[0] ♦ (UlNT32)srcMonoScaler[0])»16)+ ((aSrcBufferfl] * (UINT32)srcMonoScaler[I])»16)+ ((aSrcBufier[2] * (UINT32)srcMonoScaler[2]) »16);
// convert luminance value to an index for the look-up
1NT32 aLumlndex = aLuminance » aLumShift;
// look-up the replacement color for blending.
U1NT16 *aBlendCoIor= iRemap+ (aLumlndcx * 3);
I I alpha blend the color into the destination image.
aDstBufferfO] = (UTNT16)(((aBlendColor[0J * anAlphaBlendO) » 16)+ ((aDstBuffer[O] * anAlphaBlendl) » 16));
SUBSTITUTE SHEET (RULE 26)
PCT/US08/81215 14-01-2009
WO 2009/055738
PCT/US2008/081215
<img file="AU2008316632B2_D0006.tif" />
aDstBuffer[l]= [UINTI6)(((aBlendColor[I] * anAlphaBlendO)» 16)+((aDstBuffer[l] * anAlphaBlendl)» 16));
aDstBuffer[2] = (UINT16)(((aBIendColor[2J * anAlphaBlendO) » 16}+((aDstBuffer[2] * anAlphaBlendl)» 16));
INT32 aSum = aDstBufier[3]; aSum -H= aSrcBufferfaMapChannel]; if (aSum> OxOOOOffff) aSum =* OxOOOOffiF;
aDstBuffer[3] ” aSum;
aSrcBuffer ·+= aSourceImage->channels; aDstBuffer ·+= aDestlmage->chalmels;
SUBSTITUTE SHEET (RULE 26)
2008316632 05 Jan 2012
Contents106
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| US20040227752 | Cites | United States of America |
| US6907310 | Cites | United States of America |
| EHARA, J et al., 'Texture overlay for virtual clothing based on PCA of silhouettes', 2006, pages 139-142 | Non-patent | – |
| EHARA, J et al., 'Texture overlay onto deformable surface for virtual clothing', 2005, pages 172-179 | Non-patent | – |
180 members in 10 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 11925716 | United States of America | – | |
| 92571607 | United States of America | A | |
| 2008081215 | United States of America | W |
Members180
| Document | Office | Kind | |
|---|---|---|---|
| AU2008316632A1 | Australia | A1 | |
| CA2706699A1 | Canada | A1 | |
| US2009109214A1 | United States of America | A1 | |
| WO2009055738A1 | World Intellectual Property Organization (WIPO) | A1 | |
| CA2737067A1 | Canada | A1 | |
| WO2010014750A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US2010036753A1 | United States of America | A1 | |
| AU2009282683A1 | Australia | A1 | |
| CA2737908A1 | Canada | A1 | |
| WO2010022404A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2009308274A1 | Australia | A1 | |
| CA2741558A1 | Canada | A1 | |
| US2010106283A1 | United States of America | A1 | |
| WO2010048516A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US2010185309A1 | United States of America | A1 | |
| EP2215603A1 | European Patent Office (EPO) | A1 | |
| KR20100112112A | Republic of Korea | A | |
| EP2215603A4 | European Patent Office (EPO) | A4 | |
| CN101933048A | China | A | |
| JP2011501326A | Japan | A | |
| KR20110058834A | Republic of Korea | A | |
| EP2342667A1 | European Patent Office (EPO) | A1 | |
| EP2350369A1 | European Patent Office (EPO) | A1 | |
| CN102177525A | China | A | |
| CN102203818A | China | A | |
| EP2370922A1 | European Patent Office (EPO) | A1 | |
| CA2740172A1 | Canada | A1 | |
| EP2391114A1 | European Patent Office (EPO) | A1 | |
| US2011292451A1 | United States of America | A1 | |
| JP2011245864A | Japan | A | |
| EP2342667A4 | European Patent Office (EPO) | A4 | |
| AU2011202173A1 | Australia | A1 | |
| US8090461B2 | United States of America | B2 | |
| JP2012501017A | Japan | A | |
| AU2008316632B2This record | Australia | B2 | |
| JP2012507082A | Japan | A | |
| EP2350369A4 | European Patent Office (EPO) | A4 | |
| US8174521B2 | United States of America | B2 | |
| US8175931B2 | United States of America | B2 | |
| AU2009282683B2 | Australia | B2 | |
| EP2370922A4 | European Patent Office (EPO) | A4 | |
| JP4951709B2 | Japan | B2 | |
| US2012197422A1 | United States of America | A1 | |
| US2012221428A1 | United States of America | A1 | |
| US2012249552A1 | United States of America | A1 | |
| BRPI1102404A2 | Brazil | A2 | |
| CA2862639A1 | Canada | A1 | |
| CA2785412A1 | Canada | A1 | |
| US2013050205A1 | United States of America | A1 | |
| US2013050218A1 | United States of America | A1 | |
| EP2565824A1 | European Patent Office (EPO) | A1 | |
| CA2845894A1 | Canada | A1 | |
| CA2845911A1 | Canada | A1 | |
| CA2847294A1 | Canada | A1 | |
| US2013057549A1 | United States of America | A1 | |
| US2013060654A1 | United States of America | A1 | |
| US2013060801A1 | United States of America | A1 | |
| WO2013033356A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2013033643A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2013033644A1 | World Intellectual Property Organization (WIPO) | A1 | |
| KR101243429B1 | Republic of Korea | B1 | |
| AU2012211439A1 | Australia | A1 | |
| US8401916B2 | United States of America | B2 | |
| JP2013054740A | Japan | A | |
| US2013173415A1 | United States of America | A1 | |
| WO2013101957A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US8514220B2 | United States of America | B2 | |
| CA2706699C | Canada | C | |
| US2013328877A1 | United States of America | A1 | |
| EP2350369B1 | European Patent Office (EPO) | B1 | |
| US8654120B2 | United States of America | B2 | |
| AU2012301603A1 | Australia | A1 | |
| AU2012301604A1 | Australia | A1 | |
| AU2009308274B2 | Australia | B2 | |
| AU2012301864A1 | Australia | A1 | |
| AU2011202173B2 | Australia | B2 | |
| JP2014094295A | Japan | A | |
| CN103827923A | China | A | |
| CN103828339A | China | A | |
| US2014160118A1 | United States of America | A1 | |
| CA2838204A1 | Canada | A1 | |
| CN103914851A | China | A | |
| EP2751728A1 | European Patent Office (EPO) | A1 | |
| EP2751757A1 | European Patent Office (EPO) | A1 | |
| EP2753058A1 | European Patent Office (EPO) | A1 | |
| US2014193068A1 | United States of America | A1 | |
| AU2013273701A1 | Australia | A1 | |
| JP2014139783A | Japan | A | |
| AU2012362334A1 | Australia | A1 | |
| AU2011202173B8 | Australia | B8 | |
| CN104040581A | China | A | |
| JP2014525636A | Japan | A | |
| US8856160B2 | United States of America | B2 | |
| EP2786554A1 | European Patent Office (EPO) | A1 | |
| JP2014527679A | Japan | A | |
| US8878850B2 | United States of America | B2 | |
| EP2798602A1 | European Patent Office (EPO) | A1 | |
| JP2014531637A | Japan | A | |
| KR20140136429A | Republic of Korea | A | |
| CN104185853A | China | A |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Letters patent sealed or granted (standard patent)GrantedFGA | FGA |
Numbers
- Publication
- 2008316632
- Application
- 316632
Titles
- English
- Product modeling system and method
Classification
- CPC, 11
- G06T15/04
- G06T19/00
- G06T2200/08
- G06T2210/16
- G06Q30/00
- G06T11/00
- G06T11/60
- G06T5/94
- G06T17/00
- G06T3/20
- G06T2207/20092
- IPC, 2
- G06T15 40
- G06T17 00