**FITTING DEVICE FOR A 3D SHOE MODEL AND A 3D FOOT**

MIN, Patrick (Torenwacht 72, 2353 DC Leiderdorp, 2353 DC, NL)

MULLER, Roderick Antonius (Bloemgracht 15-HS, 1016 KB Amsterdam, 1016 KB, NL)

NIENHUIS, Nicolaas Johannes (Kethelstraat 19, 3111 PC Schiedam, 3111 PC, NL)

*;*

**G06Q30/06***;*

**A43D1/02***G06T17/00*

WO2016051416A1 | 2016-04-07 | |||

WO2015123518A1 | 2015-08-20 |

US20160125499A1 | 2016-05-05 | |||

US20160081435A1 | 2016-03-24 | |||

CN102915564B | 2014-12-17 | |||

US6741728B1 | 2004-05-25 | |||

US20110055053A1 | 2011-03-03 |

CLAIMS 1. A shoe fitting device comprising an input interface arranged to obtain a 3D shoe model and a 3D foot model, a processor circuit configured to align the 3D shoe model and the 3D foot model to each other by applying an aligning 3D transformation to the 3D foot model and/or the 3D shoe model, the aligning 3D transformation being obtained as the optimum of an alignment function, the processor being configured for optimizing the alignment function, evaluate an error of fit function indicating a fit between the 3D foot model and the 3D shoe model, the evaluating comprising computing multiple distances between a set of points for fitting on the surface of the 3D foot model and a corresponding set of points for fitting on the surface of the 3D shoe model, the error of fit function depending on the multiple distances. 2. A shoe fitting device as in any one of the preceding claims, wherein the processor circuit is configured to obtain a bent 3D foot model, by bending a forward portion of the 3D foot model upwards from a ground plane of the 3D foot model, the alignment and error of fit being computed over the bent 3D foot model. 3. A shoe fitting device as in any one of the preceding claims, wherein the alignment function depends on multiple distances defined between a set of points for aligning on the surface of the 3D foot model and a corresponding set of points for aligning on the surface of the 3D shoe model. 4. A shoe fitting device as in Claim 3, wherein the alignment function comprises a weighted sum of the multiple distances. 5. A shoe fitting device as in any one of the preceding claims, wherein at least some of the set of points for fitting on the surface of the 3D foot model and at least some of the corresponding set of points for fitting on the surface of the 3D shoe model are fixed and stored together with the 3D foot model and 3D shoe model, respectively. 6. A shoe fitting device as in any one of the preceding claims, wherein at least one of the corresponding set of points for fitting on the surface of the 3D shoe model are computed by intersecting a virtual line between two points on the 3D foot model with the surface of the 3D shoe model. 7. A shoe fitting device as in any one of the preceding claims, comprising a data interface arranged for receiving a user identifier and a shoe type identifier, the processor being configured to retrieve a 3D foot model associated with the user identifier from a database, retrieve at least two 3D shoe models associated with different sizes of the shoe type, evaluate errors of fit for between the retrieved 3D foot model and the at least two 3D shoe models, determine if at least one the evaluated errors of fit correspond to a fit between the 3D foot and the 3D shoe model, and if so generate a message comprising an indication of the fitting 3D shoe model, the data interface being arranged to send the message. 8. A shoe fitting device as in any one of the preceding claims, wherein the fitting device is arranged to compute a left error of fit between a left 3D foot model and a left 3D shoe model, and a right error of fit between a right 3D foot model and a right 3D shoe model, e.g., the fitting device may be configured to compute a combined error of fit from the left error of fit and right error of fit, e.g., as the worst of the left error of fit and right error of fit. 9. A shoe fitting device as in any one of the preceding claims, wherein the fitting device is arranged to compute differences between widths of sections of the 3D foot model and width of corresponding sections of the 3D shoe model, and compute an average width difference, the error of fit function comprising a term depending on the average width difference. 10. A shoe fitting device as in any one of the preceding claims, wherein the fitting device is arranged to compute a first ratio of a width of the 3D foot model to a length of the 3D foot model, and/or compute a second ratio between a heel to instep distance to a foot length may be used, the fitting device being arranged to include a term depending on the first and/or second ratio in the error of fit function and/or in a recommended size. 1 1. A shoe fitting method comprising obtaining a 3D shoe model and a 3D foot model, - aligning the 3D shoe model and the 3D foot model to each other by applying an aligning 3D transformation to the 3D foot model and/or the 3D shoe model, the aligning 3D transformation being obtained as the optimum of an alignment function, the method comprising optimizing the alignment function, evaluating an error of fit function indicating a fit between the 3D foot model and the 3D shoe model, the evaluating comprising computing multiple distances between a set of points for fitting on the surface of the 3D foot model and a corresponding set of points for fitting on the surface of the 3D shoe model, the error of fit function depending on the multiple distances. 12. A computer program (1020) comprising computer program instructions arranged to perform the method of claim 1 1 when the computer program is run on a computer. |

FIELD OF THE INVENTION

The invention relates to a shoe fitting device, a shoe fitting method and a computer program

BACKGROUND

A problem encountered, e.g., in e-commerce settings, is that consumers need to find his or her right shoe size while shopping online. For example, an online web store may offer various models and sizes of shoes for a customer to order. However, it is difficult to estimate for a user if a shoe will fit once he has ordered it.

To this day nobody had access to detailed dimensions of their own body. If you ask somebody the size of their feet, they will know (more or less) their size is a UK 8 or EUR 43 but other dimensions such as width, instep height or foot volume are unknown. All these dimensions are crucial for a perfect fit. Usually the sales person in a shop covers this lack of knowledge. For online shopping, such a sales person does not exist. Since it's difficult to tell if a shoe fits in real life, it is even harder to let a computer determine this. The patent application US201 1055053 (A1 ) has tried to overcome this problem. This document discloses a system in which a customer gets its feet individually scanned using an optical 3D foot scanner. In this way, a digital 3D model describing the shape of the foot is obtained, e.g., as a coordinate point cloud, as a triangulated or surfaced 3D model, etc. A software-based matching engine matches the customer's 3D foot model to a database containing 3D models of the inner shape of shoes available in the store or ready to be ordered from a producer or distributor. The matching engine produces through a computerized matching of the information contained in the customer foot model with the interior shoe shape model database a list of best matches which is displayed to the shop staff and to the customer.

The inventors found that existing solutions have several associated disadvantages. In particular, it turns out that deciding if a particular shoe matches a give user's foot can be improved.

SUMMARY OF THE INVENTION

It would be advantageous to have an improved shoe fitting device. A shoe fitting device is proposed comprising an input interface, and a processor circuit. The input interface is arranged to obtain a 3D shoe model and a 3D foot model. The processor circuit is configured to align the 3D shoe model and the 3D foot model to each other by applying an aligning 3D transformation to the 3D foot model and/or the 3D shoe model, the aligning 3D transformation being obtained as the optimum of an alignment function, the processor being configured for optimizing the alignment function, evaluate an error of fit function indicating a fit between the 3D foot model and the 3D shoe model, the evaluating comprising computing multiple distances between a set of points for fitting on the surface of the 3D foot model and a corresponding set of points for fitting on the surface of the 3D shoe model, the error of fit function depending on the multiple distances.

An advantage of the shoe fitting device is that the 3D shoe model and the 3D foot model are aligned to each other before evaluating an error of fit function. For example, during the alignment phase, an approximation is obtained how the foot would reside in the shoe, if an actual fitting were performed. Only at that point is an evaluation of the goodness of fit done. This gives a more realistic indication on how well the shoe fits the foot.

The shoe fitting device is an electronic device, e.g., implemented as a computer. For example, the shoe fitting device may be implemented on a computer server arranged to receive 3D shoe models and 3D foot models, and to send information about the fit. For example, the shoe fitting device may be arranged to report how well the shoe fits. For example, the shoe fitting device may be arranged to advice on a shoe size.

In an embodiment, the shoe fitting device may run locally, e.g., in a store, and/or may be implemented as a mobile electronic device, e.g., implemented in a mobile phone.

A method according to the invention may be implemented on a computer as a computer implemented method, or in dedicated hardware, or in a combination of both. Executable code for a method according to the invention may be stored on a computer program product. Examples of computer program products include memory devices, optical storage devices, integrated circuits, servers, online software, etc. Preferably, the computer program product comprises non-transitory program code stored on a computer readable medium for performing a method according to the invention when said program product is executed on a computer.

In a preferred embodiment, the computer program comprises computer program code adapted to perform all the steps of a method according to the invention when the computer program is run on a computer. Preferably, the computer program is embodied on a computer readable medium.

Another aspect of the invention provides a method of making the computer program available for downloading. This aspect is used when the computer program is uploaded into, e.g., Apple's App Store, Google's Play Store, or Microsoft's Windows Store, and when the computer program is available for downloading from such a store.

BRIEF DESCRIPTION OF THE DRAWINGS

Further details, aspects, and embodiments of the invention will be described, by way of example only, with reference to the drawings. Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. In the Figures, elements which correspond to elements already described may have the same reference numerals. In the drawings,

Figure 1 schematically shows an example of a shoe fitting system,

Figure 2a schematically shows an example of an embodiment of a 3D scan of a foot including the positions of landmarks

Figure 2b schematically shows an example of an embodiment of a 3D foot mesh in

3D shoe,

Figure 2c schematically shows an example of an embodiment of a top view of alignment,

Figure 2d schematically shows an example of an embodiment of a side view of alignment,

Figure 3 schematically shows an example of an embodiment of a side view of alignment,

Figures 5a-5d schematically shows an example of an embodiment of computing a fitting error,

Figure 6a schematically shows a computer readable medium having a writable part comprising a computer program according to an embodiment,

Figure 6b schematically shows a representation of a processor system according to an embodiment,

Figure 7 schematically shows an example of an embodiment of a fitting method,

Figure 8 schematically shows an example of an embodiment of a tilt correction, Figure 9 schematically shows an example of an embodiment of an average width differences.

List of Reference Numerals in figure 1 :

100 a shoe fitting system

1 10 a mobile phone

1 12 a modeling application

1 14 a purchasing application

120 a modeling device

130 a shoe fitting device

132 a 3D foot model and 3D shoe model database

140 a web server DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

While this invention is susceptible of embodiment in many different forms, there are shown in the drawings and will herein be described in detail one or more specific embodiments, with the understanding that the present disclosure is to be considered as exemplary of the principles of the invention and not intended to limit the invention to the specific embodiments shown and described.

In the following, for the sake of understanding, elements of embodiments are described in operation. However, it will be apparent that the respective elements are arranged to perform the functions being described as performed by them. Further, the invention is not limited to the embodiments, and the invention lies in each and every novel feature or combination of features described herein or recited in mutually different dependent claims.

Below a first introduction to the invention is given, and some of the embodiments are introduced. Below a further description of the invention is given.

E-commerce and the use of mobile applications (apps) are showing substantial growth in the international economy. Conversions and logistics play an important role in the revenue models for this industry. A convenient and reliable service for the consumer to find his or her right size while shopping online will positively influence the business. For example, a service may be delivered, e.g., both to consumers and to industry (multi-sided) to find the right size based on an accurate 3D match.

To this day nobody had access to detailed dimensions of their own body. If you ask somebody the size of their feet, they will know (more or less) their size is a UK 8 or EUR 43 but other dimensions such as width, instep height or foot volume are unknown. All these dimensions are crucial for a perfect fit. Usually the sales person in a shop covers this lack of knowledge. For online shopping, this person does not exist. Since it's difficult to tell if a shoe fits in real life, it's even harder to let a computer determine this. E-commerce websites selling size-related products face high return costs. They lose business because people do not know their exact size when shopping for size-related products online. All brands have different sizing specifications and different size indications. To make it more complicated, these indications can vary from region to region. related e-commerce websites struggle with;

High return costs

Low conversion rates

To reduce the risk of "non-sales" these websites offer;

Free and easy returns

Size advice tools However, this does not solve the problem of low conversion. Many people are insecure about their size and returning goods is a hassle. Most size advice tools are either too complicated to use or simply don't work.

On top of that, returning goods and making sure there is enough stock to cover demand exerts a big impact on our planet. Goods are overproduced in huge numbers, transported around all the time and even worse, destroyed. Average return rates vary from 20% to as much as 50% for websites. More than

50% of these returns are a result of wrong size.

2. Solution A platform may offer consumers the possibility to upload and store their personal

3D scan data. This data can be widely used to match products to their true body dimensions. A mobile application (the App) helps consumers to obtain 3D-scans of their body at home, in their private, trusted environment. The App is easy to use and reliable, highly accurate and free of charge for the consumer.

Once a consumer is online, an algorithm makes, at the request of the consumer, a 3D-match between a scan of feet and the product. This results in a better size advice. With the barrier of size-related issues ruled out, online shopping platforms are now able to reach the global consumer, as region specific sizes may be taken into account.

In an embodiment, a user can store a 3D model of his feet. After storing, the 3D models may be used multiple times in connected e-commerce websites selling size related products, e.g., shoes. Conclusion:

• The service reduces return costs

• The service provides a higher conversion by increasing the confidence to buy

• The service improves the customer experience

3. The Service

The platform connects scan data (from the App) to the database. The widget is our button in the online shopping environment. By using this button, the consumer asks for a 3D match with his/her feet and the desired goods. Once this action is demanded, our sizing algorithms calculate the perfect fit in the background and give real-time feedback to the user. In an embodiment, there are 5 main service components:

1. The mobile App scans your 3D-feet anywhere

2. The widget button to incorporate in any web shop

3. The sizing algorithms 3D-match each individual product to a scan

4. The platform the consumer can keep track of personal data

5. The database safely stored scans

Step 1 . Using the App.

The App may be available in an app-store such as iOS, Google Play and Windows.

After you download the App, the process of taking 3 pictures per foot and getting your feet in 3D takes only a few minutes. The scanned feet can be used immediately for online shopping.

Step 2. The Widget

The consumer will see the widget embedded in the online shop. Once a product is selected you can ask for a size match by clicking the widget. Upon this request, a 3D size- match is made between the feet of the consumer and the 3D information of a desired product.

Step 3. The sizing algorithm

A prototype of the algorithm runs in the background and gives feedback to the customer for the best fit within 3 to 5 seconds

Step 4. The platform

A consumer may have the possibility to keep track of personal data and changes on the platform. Connected brands or online shops will be published here. All other information on fitting, sizing and 3D body dimensions may be communicated on the platform.

Step 5. The database

Foot scans and scans of the inside of shoes are stored in the database. Scanning parts of your body with high-resolution scanners is still complicated. A mobile App, e.g., for Android and/or iOS, makes use of a technology to reconstruct a 3D foot from three photographs taken with your mobile phone. Using app, scanning is now conveniently available to consumers. Scan yourself with a high accuracy anywhere, and use your body dimensions for the most objective and best size match.

We have developed our own method to scan the inside of shoes with high accuracy. This technique is fast and can easily be operated by fulfillment partners. Possibly shoes will be available in 3D in the future directly from the producers, in which case no scanning of the shoe is needed to apply the fitting device. The scans of shoes may also be stored in our database. Although various initiatives have been launched, so far nobody has been able to solve both scanning of the feet and scanning of the footwear, and create a 3D match between the two. The combination of the App, scanned footwear and matching algorithm has been proven in a fully operational prototype.

The shoe-to-foot 3D model fit process may proceed as follows. Given a scanned 3D model of a foot, and a scanned 3D model of the inside of a shoe, an "error of fit" is computed for them. This may be done in two steps:

1. Align the foot with the shoe (in a sense, "place the foot inside the shoe") 2. Given the distance between certain key points ("landmarks") on the foot and the shoe, compute an error of fit value (the lower the value, the better the fit)

1 ) Alignment step

The 3D foot model is provided with a set of labeled vertices ("landmarks"), for example, the back of the heel, the tip of the big toe, etc. Distances between a first subset of these landmarks and corresponding points on the 3D shoe model are used to compute an error of alignment. This error is then minimized over 4 variables (x, y, and z translation and rotation around the z (up) axis of the foot) using a nonlinear optimization method, e.g., Powell's Direction Set method.

Alternatively, bounding boxes may be aligned for the 3D shoe model and 3D foot model. The 3D foot model may be aligned with the 3D shoe model by first aligning their bounding boxes. For example, tilting them such that the ball of the foot is at the same height as its corresponding part in the shoe, and turning them such that their largest eigenvectors align.

2) Error of fit

Distances between a second subset of landmarks and corresponding points on the 3D shoe model are used to compute an error of fit. The first and second subsets are different, but may partially overlap. The distances may be weighted, with the weight values determined by a separate optimization using data of an actual fitting session (in which people's feet were scanned, and best fitting shoes determined by trying out actual shoes). Figure 1 shows an embodiment of a shoe fitting system 100. Shoe fitting system

100 comprises a mobile phone 1 10, a modeling device 120, a shoe fitting device 130 and a web server 140. Mobile phone 1 10, modeling device 120, shoe fitting device 130 and web server 140 are arranged for digital communication over a digital computer network, e.g., the components of system 100 may comprise a network interface arranged for digital communication over a digital network. For example, a network interface may comprise a Wi-Fi interface, e.g., comprising an antenna. For example, a network interface may comprise an Ethernet interface, e.g., comprising an Ethernet port. Many types of digital networks may be adapted to the invention, however in an embodiment, the digital network is the internet.

Mobile phone 1 10 may be a mobile phone running, e.g., the iOS or android operating system and is capable of running applications, so-called apps. Mobile phone 1 10 comprises a digital photo camera for taking digital images. In the example embodiment, mobile phone 1 10 is used for obtaining a 3D model of a user's foot in cooperation with modeling device 120, and for making purchases in cooperation with web server 140. This is however optional. For example, purchases on web shop 140 could be made with a different mobile phone, or a different device altogether, e.g., a desktop computer, or a dedicated purchasing device set in a shop, etc. 3D models could be obtained in a number of ways. For example, a 3D scanner, e.g., a 3D laser scanner could be used to obtain a 3D model of a foot. Such a 3D scanner could be set-up in a shop for example. In the latter case, the optional modeling device 120, and modeling app 1 12 may be omitted from the system. Below a brief explanation will be given how 3D models for a foot may be obtained using mobile phone 1 10, with the understanding that conventional 3d modeling processes could be adopted for use with the invention.

In an embodiment, mobile phone 1 10 is provided with a modeling application 1 12. For example, modeling application 1 12 may be downloaded from an app store, such as the Google play store and the like. Modeling application 1 12 is arranged to instruct the user to take a number of photos of each of his (naked) feet, e.g., 3 per foot, using the digital camera of mobile phone 1 10. In an embodiment, the user is instructed to stand his foot on a rectangular piece of paper to provide a reference. In an embodiment, the paper comprises a measuring pattern, e.g., a grid, e.g., a pattern of symbols, etc., to provide further references. In an embodiment, the paper is a contrasting color, e.g., white on a darker background.

Modeling application 1 12 sends the photos to modeling device 120. In an embodiment, modeling application 1 12 and/or purchasing application 1 14 is arranged to first establish a user profile with fitting device 130 before sending the photos to modeling device 120. For example, modeling application 1 12 and fitting device 130 may engage in a digital protocol to register the user, and to create a profile on fitting computer 130. Fitting computer 130 may be arranged to create a user identifier for the user associated with his user profile, and send the user identifier to mobile device 1 10, e.g., to modeling application 1 12. The user identifier may be a user name or a user number or the like.

Using preregistration allows modeling application 1 12 to send the photos to modeling device 120 together with the user identifier. In this case, modeling device 120 may be arranged to send the 3D model directly to fitting computer 130 for storage. Alternatively, modeling device 120 returns the 3D model to modeling application 1 12. Modeling application 1 12 then registers with fitting computer 130 and sends the 3D model of his feet obtained from modeling device 120 to fitting device 130.

Modeling device 120 is arranged to receive photos of a user's foot or feet and process them to compute a 3D model of the feet. For example, modeling device 120 may compare the photos to find points common to at least two images and construct a 3D model using those points. For example, modeling device 120 compares the photos to a database of foot photos for which a corresponding 3D model has been pre-obtained. In this case, a close model is selected and/or computed from the available 3D models.

Modeling device 120 is arranged to return the 3D model to modeling application 1 12 and/or to forward the 3d model to fitting device 130. Fitting device 130 is independent from how the 3D foot and shoe models are obtained, whether photos were used or a 3D scanner. In addition to obtaining a 3D foot model for a foot— typically each user will have two 3D foot models, one for his left and one for his right foot— modeling device 120 also identifies a number of landmarks in the 3D model. A 3D model of the foot may be expressed in a polygon file format. The 3D foot model may comprise a triangulation of the foot. The 3d model of a foot may be expressed in a so-called '.ply' file, e.g., in the polygon file format or the Stanford triangle format; a 3d foot model may be expressed in an '.obj' file. Multiple files may be used for each foot, or both feet may be combined in a single file. Figure 2a shows a rendering of a 3D foot model 210. A 3D model, such as a 3D foot model may be stored in a computer file. For example, a 3D model may be represented as a list of flat polygons, e.g., triangles. A variety of properties can be stored, including: landmarks.

In addition to determining a foot model, modeling device 120 further determines a number of landmarks on the foot. For example, a foot model may be a triangulation comprising vertices and edges. The landmarks may be obtained as a list of landmark identifiers and an associated vertex identifier. For example, each vertex may have an associated vertex identifier. Alternatively, the landmarks may be expressed as 3D coordinates, etc.

The 3d foot model 210 shown in figure 2a shows a number of landmarks, one of which has reference number 212. Landmarks may include for example

These landmarks are exemplifying, the number of landmarks identified in a 3d foot model may both be larger or smaller. The used landmarks may be different. Although it is convenient to have the landmarks assigned by modeling device 120 this is not necessary, and could be assigned by fitting device 130; possibly each time a 3D foot model is used for a fitting. Modeling device 120 may compute the landmarks on a foot model by processing the data, and/or comparing the foot model to predetermined foot models.

In an embodiment, the CBH is computed from other landmarks. For example, a virtual line is drawn between the T1 tip and Pternion. A distance is measured along this line from the Pternion, say 25 mm, or say about 10% from the distance between T1tip and Pternion. From this point a perpendicular is dropped to find the CBH.

The 3D foot models produced by modeling device 120 are sent to fitting device 130; e.g., directly from modeling device 120 to fitting device 130 or via some intermediate such as mobile phone 1 10. The 3d foot models obtained by modeling device 120 are stored in a database 132 of fitting device 130. Database 132 may be external to fitting device 130, e.g., a cloud database, or database 132 may be comprised in fitting device 130.

Database 132 is arranged to store 3D foot models of users registered with fitting device 130. In addition, database 132 comprises 3D shoe models. A 3d shoe model is 3D model of the interior of a shoe. The 3d shoe model may be expressed as a 3D model using the same or similar file format at the 3D foot model. Possibly, the 3D shoe model also stores data indicating the elasticity, an amount of padding, and a desired distance to the foot at one or more vertices of the 3D shoe model.

There are several ways in which to produce a 3D shoe model. For example, a shoe scanning method comprises filling the shoe with a pourable liquid that solidifies in the shoe. After removing the solidified substance, a cast of the interior of the shoe is obtained. From the cast, a 3D shoe model may be obtained by 3D scanning the cast. Typically, both a left and right 3D shoe model is made. Landmarks are also applied to the 3D shoe model. These may be the same landmarks as the landmarks used for a 3D foot model. For example, a landmark may be applied at the position were the corresponding foot landmark ought to be for a perfect fit. Shoe landmarks may be applied automatically using similar rules as for foot landmarks, e.g., most outward point at the first toe side. For some applications, the number of shoe models is relatively small, allowing manual application of landmarks rather than automated application of landmarks.

In an embodiment, multiple 3D shoe models are needed for different sizes of a single type shoe. In this case two 3d shoe models may be obtained as described above, e.g., using casts. 3D shoe models may be obtained from these two measured casts by interpolation and/or extrapolating. The inventors have found that good results are obtained by taking the second largest and second smallest shoe size for measuring, e.g., by applying a cast, and obtaining the remaining models from these. For example, a particular type of shoe, say a male shoe of a particular brand and model may be available in the ten sizes 37-46 (inclusive). In this case, casts may be made for the sizes 38 and 45 for both the left and right shoe. After 3D scanning of these casts and obtaining the corresponding 3D shoe models. The remaining sizes are obtained by inter/extrapolation. Validation experiments performed by the inventors have shown that models obtained in this fashion are typically sufficiently close to the corresponding 3D shoe models obtained through measurement. The inter/extrapolation of 3D models may be done by 3D morphing algorithms. As input for the morphing algorithm two corresponding points on the models are identified, these may be the landmarks points. Costs may also be reduced by scanning only one shoe of a pair of shoes and mirroring the shoe model to obtain a model for the other shoe.

Webserver 140 is arranged to generate and/or transmit web pages over the internet. For example, web server 140 may communicate with mobile phone 1 10, or a desktop computer etc. For example, mobile phone 1 10 may comprise a purchasing application 1 14. The latter may be a dedicated application (e.g. an app) but may also be a general-purpose web browser. Figure 4 shows a schematic example of a web page sent by web server 140. Shown is a web page to buy a particular type of shoe. The web page may comprise a web page address (URL) 420, an illustration 430 of the shoe, e.g., a photo, a written description 440, and a buy button 470, e.g., an 'add to cart' button. Interestingly, the web page comprises a size select button 450 in which a user can manually select a size, e.g., size 42, but also an obtain-size button 460. Previously, the user may have registered and logged-in to web server 140. If the user pressed button 460, web server 140 will send a fitting request to fitting device 130. The fitting request may comprise a user identifier and a shoe type identifier. If web server 140 uses different user/shoe identifiers than fitting device 140, then a translation table may be used to translate the user/shoe identifiers to the identifiers recognized by fitting device 130. The translation table may be at fitting device 130 or at web server 140.

Fitting device 130 comprises a network interface arranged to receive the fitting request. Fitting device 130 is arranged to retrieve from database 132 a 3D foot model that corresponds to the user identifier and the 3D shoe models corresponding to the shoe type identifier. When evaluating the fit between a user and particular size shoes, the fitting model may obtain an error of fit for each foot-shoe (left/left and right/right) separately. An error of fit for the two feet together may be obtained by taking the worst error of fit, e.g., the highest of the two error values. Alternatively, the fitting device may fit the feet independently, and, e.g., produce different size recommendations per feet, e.g., a size 42 for left and a size 42.5 for right. Below we will describe the fitting process for one foot and corresponding 3d foot model and one shoe and corresponding 3d shoe model. For example, we may consider the left foot first. The other foot may be done in the same manner.

Given a 3d foot model and a 3d shoe model the fitting device may perform a fitting, and obtain an error of fit in the following way. The fitting process may have three phases: (1 ) a foot deformation phase (2) an alignment phase and (3) an error phase.

During the foot deformation phase the 3D foot model is deformed. The deformation that is applied to the 3D foot model may depend upon the shoe type. For example, a shoe may have associated deformation parameters in addition to 3D shoe models. For example, an angle may be stored together with a shoe type or even per 3D shoe model. For example, the angle may be 12 degrees or 20 degrees. The deformation process may bend a toe portion of the foot, say the first 50% or 40% etc. of the foot as seen from the toes, upwards by the angle. This upward bending of the foot has an important effect on the fit that can be obtained. The inventors found that for many shoes, the front part has an upward bend. Taking this bending into account results in an important improvement of the fit.

The bend function may be implemented around the toe portion of the foot, e.g., 50% of the foot measured from the toe. This is known as a bend modifier and bends a part of the 3D foot model a number of degrees, e.g., producing a bend in this section of the object's geometry. The bend modifier may be taken as implemented in 3D Studio Max, or Blender. For example, the bending may be defined by a rotation axis at the 50% point of the foot, e.g., between two landmarks of the 3D foot model. The axis may be perpendicular to a length axis of the foot, but this is not necessary, the axis may also have an angle therewith.

The bend operation may be arranged to bend the 3D foot model with a gradual transition between the bent toe portion and the portion that was not bent. For example, in an embodiment, the number of degrees that a vertex in the toe portion is rotated increases with its distance to the rotation axis, e.g., the number of degrees that a vertex rotates may increase linearly, e.g., a multiple of the distance of the vertex to the rotation axis. For example, a 20- degree bending may be implemented by rotating a vertex 0 degrees when it lies on the axis, and the full 20 degrees when at the very front of the foot; vertices in between the rotation axis and the very front of the foot are rotated over an angle between 0 and 20, e.g., linearly interpolated there between.

Figure 2d shows a side view as an orthographic projection of a 3D foot model and 3D shoe model after alignment. The 3D foot model has been processed by bending it before aligning. In this case, the bending has been performed on the first 50% of the foot.

In the alignment phase, the foot is aligned with the shoe, in a second error phase it is determined how well the fit is in this alignment. The latter may be expressed as an error of fit (or equivalently as a goodness of fit. For example, a goodness of fit may be obtained from an error of fit, by e.g., goodness=1000-error, or even goodness=-error, etc.).

In the alignment phase, a first subset of landmarks on the 3D foot model is selected and a set of allowed transformations. It was found that an advantageous set of transformations are translations in the x, y and z directions and rotation in the direction of the z-axis. Conveniently, we will use the z-axis as the up axis, and the x-axis is the length axis of the foot and shoe. As a result of this set of transformations the orientation of the 3D foot model with respect to a ground plane, e.g., the plane defined by an x and y axis. For example, in an embodiment, the sole of the 3d foot model and the sole of the 3d shoe model are both parallel to the ground plane, e.g., defined by the x and y axis. Translation over any vector followed by a rotation with the z-axis as axis of rotation keeps the sole of the 3d foot/shoe model parallel to the ground plane.

The alignment may be implemented as an optimization function, e.g., the minimization of an alignment error function. For example, the alignment function may be defined from the distances of the landmarks on the 3d foot model to a closest point on the surface of the 3d shoe model. For example, the first subset of, say 4 landmarks, may give rise to a number of distances, one for each landmark. The alignment may be defined as a weighted sum of the distances. For example, the alignment may be computed from the landmarks: MP1 , T5 (tip of smallest toe), CBH, and Pternion.

The inventors have realized that computing the distances from a number of landmarks on the foot model to a surface, although possible, is relatively time consuming, especially if an optimization over an error function comprising these distances has to take place. In an improved alignment method, a corresponding set of landmarks is defined on the 3d shoe model; so that to each landmark on the foot a landmark on the shoe model corresponds. In this case the distance between a foot landmark and the corresponding shoe landmark is computed. As the shoe model is fixed, and only the foot model is transformed, this is a much easier computation. However, still a set of distances is defined and similar alignment error functions may be defined. It was found that a weighted sum of distances between foot landmarks and corresponding shoe landmarks provides an adequate way to align the foot in the shoe.

Several optimization functions may be used to implement the optimization, for example, Powell's method or simulated annealing, hill climbing, etc. Instead of transforming the foot to align to the shoe, one may equivalently transform the shoe to align to the foot.

For example, an alignment function may be the weighted sum of the distance between a set of landmarks on the foot model and a corresponding set of landmarks on the shoe model. As the foot or shoe model is transformed, the alignment function value changes. The transformation that minimizes the alignment function is the transformation that aligns shoe and foot.

In an embodiment, the 3D foot model may be aligned with the 3D shoe model by first aligning their bounding boxes, tilting them such that the ball of the foot is at the same height as its corresponding part in the shoe, and turning them such that their largest eigenvectors align.

The bounding box may be a so-called axis-aligned bounding box. In order to do the tilt correction, one may first compute a point near the front of the foot, e.g., using the following steps:

(1 ) define an axis through, a landmark at the heel, e.g., the 'pternion' (back of heel) and a landmark at the front of the foot, e.g., the T2tip' (tip of 2nd largest toe) landmark,

(2) compute the points on this axis closest to two further landmarks, e.g., the 'MP1 ' and 'MP5' landmarks

(3) take the midpoint of these two points,

(4) intersect a vertical line through this midpoint with the bottom of the foot model and the bottom of the shoe model

(5) compute a 'pivot point' some distance, e.g., 25 mm, along the axis defined in step (1 )

(6) compute the vertical angle difference between a vector from this pivot point to the intersections from step (4), and

(7) rotate the foot model such that the foot intersection point moves to the same position as the shoe intersection point.

Figure 8 schematically shows an example of an embodiment of a tilt correction. Shown in figure 8 is a 3D foot mesh in 3D shoe. Shown is an axis extending from a heel landmark, in casus the pternion landmark, to a tip landmark at the front of the foot, in casus the T2tip. Shown on the axis are the points closest to the further landmarks, and an on-axis midpoint. From the on-axis midpoint the bottom intersection points are computed. A pivot point is computed on this axis, e.g., as described above, and may be used to tilt the foot model. To compute the eigenvectors, one may project the vertices of both the foot and the shoe model onto the ground (XOY) plane. For both these sets of projected vertices, their eigenvectors are computed. Normally, the largest eigenvector of the foot and the shoe model will point in a different direction. If, for example, this vector for the foot model points in a direction turned 5 degrees to the left with respect to its corresponding shoe model vector (when seen from above), the foot model is rotated by 5 degrees to the right, around a vertical axis (e.g. parallel with the Z-axis) through a landmark, e.g., the pternion (back of heel) landmark.

Once the foot has been aligned in the shoe, an error of fit is computed. For the error of fit a second subset of landmarks on the foot may be used. For the landmarks in the second subset one may again compute the distance to the surface of the shoe, but also here it has proved better to compute the distances between landmarks in the second subset on the foot model with corresponding landmarks on the shoe model. The second set of distances that is so obtained is used to compute the error of fit function. For example, also here a weighted sum of the distances may be used.

The weights in the weighted sum, both for alignment as well as for error of fit may be obtained by having a number of people perform actual fittings and assigning a score to the fit as well as computing the above alignment and fitting errors. The weights may then be optimized so that the error of fit conforms to the actual scores assigned by test subjects. For example, a least square fit may be used to compute the weights.

In an embodiment, different alignment and/or error of fit functions are used for different shoe models. For example, different alignment and/or error of fit functions may be used per shoe type or even per shoe model.

The inventors found that having a different error of fit function for different shoe types solves a problem that plagued automated fitting for some time. Some shoe models have areas in which the fabric of the shoe is partially elastic, or where the shoe is padded, etc. In such areas, the exact fit is less critical or even a slight non-fit may be appropriate, e.g., for elastic materials. An error of fit for such shoes, may assign a smaller weight to landmarks that fall in padding, or assign a low or even slightly negative weight to areas that correspond to elastic zones.

For example, consider figure 3. Figure 3 shows an alignment between a 3D shoe model and a 3D foot model (after bending). This shoe type has elastic material at the heel and at the instep. The error of fit defined for this shoe allows a negative distance between the heel, e.g., between Pternion and a corresponding landmark on the shoe and between a landmark on the instep of the foot and the instep of the shoe.

More complicated error of fit functions are also possible. For example, for each distance a scoring function may assign how critical this distance is for a correct fit. For example, a scoring function may be a combination of two linear functions, e.g., of two weights; a first weight is applied to the distance (e.g. multiplied) if a foot landmark is within the shoe and a second weight if the foot landmark is outside the shoe. In this way, a landmark that is outside the shoe may be penalized more severely. Similarly, a scoring function for the toes may take into account that a minimum distance at the toes is desirable. For example, the scoring function may increase as the distance between a landmark on the toe to the front of the shoe is further away from an ideal distance, e.g. , an ideal distance for this shoe type or shoe model. A scoring function may be a non-linear function.

For example, let d _{t } be the computed distances. Let t _{t } be an ideal distance for said distance, e.g. , at that landmark. For example, at the toes a larger distance is desired than at the instep. Let S _{t } be a scoring function, then the error of fit may be defined as Σι Ξ^άι). In an embodiment according to the latter formula, the scoring function takes the ideal distance t _{t } into account. In an embodiment, the error of fit may be defined as Σι Ξ^άι , t _{j }), here the ideal distances are an input to the scoring function. For example, the ideal distances may be stored with the 3D shoe model. In an embodiment, the error of fit may be defined as∑i S _{j } (d _{j } - t _{j }). The scoring function is non-linear so that, e.g . , S _{t } increases stronger if d _{t } < t _{t } than for d _{t }≥ t _{j } . In an embodiment, the scoring function increases yet stronger if d _{t } < 0. Note that t _{j } may be negative for elastic parts. In the latter case, a negative d _{t } may be accepted.

In an embodiment, a scoring function may be defined as follows: S _{j }(d _{j }, t _{j }, ) = a(di - t _{j }), for di≥ t _{i } S _{j }(d _{j }, t _{j }, ) = -b(di - t _{j }), for 0≤ d _{t } < t _{i } and S _{j }(d _{j }, t _{j }, ) = 1000, for d _{t } < 0. Herein, a and b are parameters, for example, a < b. Herein, the number 1000 is assumed to be a very large error, steering the algorithm away from this shoe size. The number of '0' in the last comparison may be replaced by a different value, e.g. , for elastic materials, e.g. , if a slight 'non- fit' is desired. The distances d _{t } in this example, are assumed to be positive for points within the shoe and negative for points outside the shoe.

In an embodiment, both fixed and dynamic landmarks on the 3D shoe model are used. For example, fixed shoe landmarks may be stored with the 3D shoe model. The distance between a fixed shoe landmark and a corresponding (fixed) landmark on the 3D foot model is used in the computation of the error of fit (e.g . as one of the d _{t } values). For example, the fixed landmarks may be MP1 and T5. A dynamic landmark on the 3D shoe model is computed from the 3D foot model. Dynamic landmark may be obtained by drawing a line between two points on the foot, e.g ., landmarks, and intersecting this line with the shoe model to find the dynamic shoe landmark. For example, a line may be drawn between a landmark on the inset of the foot and on T1 or T2. The intersection between these two lines and the shoe gives two dynamic landmarks. In this example, the distance is computed between the two dynamic landmarks obtained from T1 and T2 and the fixed landmarks T1 and T2 respectively. In general, one of the fixed landmarks used to compute a dynamic shoe landmark, may also be used to compute distance; this is not necessary though.

In an embodiment, a combination of two embodiments for fitting error may be used. This combination proved particularly useful. In this embodiment, a set of distances is computed from a fixed foot landmark to a corresponding fixed shoe landmark. However, a second set of distances is computed between a foot landmark and a computed non-fixed, dynamic point on the shoe. For example, a landmark on the toe, say the tip of T1 and/or T2, may be used for the foot landmark. The corresponding point on the shoe is computed by extending a virtual line from the toe landmark to the front of the shoe parallel to the angle under which the toes were bent. The intersection between the virtual line and the shoe may be taken as the computed second point on the shoe. The two sets of distances may be used in an error function as defined above, e.g., as a weighted sum. This hybrid method of computing an error of fit has the advantage that for some landmarks the fitting error is computed between a foot landmark and the point where that foot landmark ought to be in this shoe's model, while a second set of distances is computed based on the actual shape of the foot. Especially for computing a fitting error at toes is this method advantageous, but it may also be applied elsewhere. An alternative method of computing an error of fit is schematically illustrated in figures 5a-5d. The fitting method uses a function, e.g., 'fn_getToeSpace', to compute the space around the toes. Virtual lines, aka probes, are cast from a point on the heel to the toes. For example, a heel point may be a landmark on a 3d foot model. For example, a line between two landmarks at the front on the foot may define a range. Probes are casts from the heel point to points in the range. For example, the range may be points on a line between two landmarks defined on the 3d foot model.

Probes may be taken in single strips between two boundaries, kind of like a radar. The farthest samples are stored. The distance between each pair of far-samples is taken and returned for evaluation This is used to get the space between the most protruding line at the toes and a shoe.

Rays are cast towards the toes, see figure 5a. The origin of the rays may be the rear of the foot. For example, the rays are cast between T1 (the big toe) and T5 (the small toe). These are landmarks may be supplied in the foot model.

Each ray is may be regarded as a line of probes, or a scanline. These probes measure the distance between the surface of the shoe and the origin of the rays. The point or points which protrudes the most are recorded. For example, for each probe a pair of points is computed: the last point on the foot, as seen from the origin of the probe in the heel, and the first point, see figure 5b. The distance between these two points is obtained.

Finally, the distances between the foot and shoe are measured. This actually results in a list of distances (one for every probe, e.g., for every pair of points). This list is used to compute the fit, as it is a good measure for fit. After measuring the distances between toe and shoe we end up with an array of distances, here shown as a bar chart.

A visualization of three shoe sizes (43, 42 and 41 ) is shown in figure 5c. Each vertical bar is a sample, in this example, 24 per foot. The line 520 represents a distance of 20 mm between foot and shoe. Size 41 is too tight at the big toe which is clearly visible in the chart. Size 42 seems good, apart from the width.

To be able to produce a simple "yes, this shoe fits" or "no, this shoe doesn't fit" we need to evaluate the chart shown in figure 5c. In an embodiment, the fitting device determines the space underneath the chart and compares this to a predetermined space. For example, the shoe may be determined to fit if the distance between foot and shoe is 2 cm on average, and within +- 10%". 2 cm is of course variable. In an embodiment, different shoe types have different fitting functions to account, e.g., for padding, or for models with, say, long noses. In the latter, more toe space is accepted. This method can be refined in several ways:

• the optimal fit distance can change depending on the length of the foot.

Bigger feet need more margin than smaller feet.

• use a penalty if the overlap is larger than a certain area. If the penalty exceeds a value, the shoe doesn't fit. This avoids having big spaces and big overlaps compensating each other and still getting a 2 cm distance on average

• weigh samples. Overlap at the sides (big toe and small toe) is less problematic than overlap in the middle. The toes at the side have a bit of room to move to the sides to compensate for overlap. The toes in the middle don't.

An alternative method of computing an error of fit is schematically illustrated in figure 9. Shown is a section of the front of the 3D foot model, as well as the 3D shoe model, projected onto the ground plane. Widths of the sections are sampled at regular intervals, and subtracted. An average width difference is then computed. This average width difference gives an indication as to how tight (or not) the shoe fits at its sides.

To compute the section of the foot and shoe model from which widths will be sampled, one may use the following procedure:

(1 ) define an axis through a back of the foot landmark, e.g., the 'pternion' (back of heel) and a front of the foot landmark, e.g., T2tip' (tip of 2nd largest toe) landmarks,

(2) compute a 'starting point' at some percentage, e.g., 65%, along this axis,

(3) set the 'end point' to be the point on this axis closest to a landmark, e.g., the T5' (smallest toe) landmark,

(4) remove all foot and shoe model vertices that are positioned behind the starting point (i.e. closer to the heel than the starting point) and in front of the end point (i.e. closer to the toes that the end point),

(5) project all remaining points onto the ground (XOY) plane,

(6) compute the convex hull for both point-sets,

(7) divide the line segment between the starting point and end point into multiple step, e.g. 25, steps which may be equally distributed over the line segment.

(8) compute the width of both convex hulls at each step (e.g., the width orthogonal to the line segment of step (7)), and

(9) average the width difference over all steps. Figure 9 schematically shows an example of an embodiment of an average width difference computation. Shown is an axis through the pternion landmark to the T2tip landmark. Also shown are a starting point at 65% and an end point close to the T5 landmark. Orthogonal to the axis, a line segment may be drawn to, one of which is shown to extend along the entire width of the foot. The average width difference may then be computed for the line segment.

Note that the fitting function may use multiple parameters to decide on the fit. For example, multiple parameters may be combined, say in an error function, e.g., as a weighted sum. For example, the average width difference may be a parameter which is weighted in the error function. The toe gap, e.g., as defined above, and/or the average width difference may also be included in the error function.

The fit may be expressed with a message explaining the fit. It may contain the margins used to determine the fit and the names of the product and scan. For example, a fit may be expressed as a single integer: -1 , 0 or 1.

0: the product fits

-1 : the product is too small

1 : the product is too big

The toe graph represents the fit of a foot with a shoe. It shows the distances measured between the toes and the shoe. Besides that, it shows the average distance measured and the margin between which the shoe is considered a good fit.

In the example shown in figure 5d, the line 510 is below the lines 512. This means the distance between toes and shoe are too small. The shoe will be too tight.

For example, in an embodiment the error of fit is mapped to a three leveled function indicating too small, fit, too big. Or a 5 level function, e.g., too small, slightly small, ideal, slightly large, too large.

After the fitting device receives a shoe type identifier and a user identifier, the fitting device retrieves the shoe models corresponding to the type and the foot model corresponding to the user and computes an error of fit for at least two models of the same shoe type, e.g., at least two different sizes. In an embodiment, an error of fit is computed for all models in the range, e.g., of the shoe model. The fitting device may return to the web server a shoe model that has an ideal fit. Alternatively, the fitting device may return all shoe sizes that have a fit. The latter has been found to occur for some shoe types, e.g., if the shoe model has half sizes and a corresponding first subset of landmarks on the 3D shoe model. The inventors found that the ratio of a foot's width to its length affect the best fit size. A relatively large ratio tends to make people choose a larger size than would be determined using toe gap alone, for example. Therefore, a recommended size may be adjusted by computing a foot's width/length ratio (using the bounding box width and length), and then subtracting the average width/length ratio for a representative population. This difference may then be multiplied by a weight factor, and added to the initial size recommendation.

Similarly, the heel to instep distance, e.g. the distance between the lowest point of the heel and the highest point of the instep, divided by the foot length may be used. This is another ratio, from which an average ratio is subtracted, resulting in a possible size adjustment. Instead, this distance may be used as an extra parameter in the weighted error-of- fit function.

The data interface may take various forms, such as a network interface to a local or wide area network, e.g., the Internet, a storage interface to an internal or external data storage, such as a database, etc.

Typically, modeling device 120, shoe fitting device 130 and web server 140 each comprise a microprocessor (not separately shown) which executes appropriate software stored at the device; for example, that software may have been downloaded and/or stored in a corresponding memory, e.g., a volatile memory such as RAM or a non-volatile memory such as Flash (not separately shown). Alternatively, the devices may, in whole or in part, be implemented in programmable logic, e.g., as field-programmable gate array (FPGA). The devices may be implemented, in whole or in part, as a so-called application-specific integrated circuit (ASIC), i.e. an integrated circuit (IC) customized for their particular use. For example, the circuits may be implemented in CMOS, e.g., using a hardware description language such as Verilog, VHDL etc.

In an embodiment, the fitting device comprises an alignment unit, e.g., an alignment circuit and a fitting-error unit, e.g., a fitting-error circuit, arranged to determine an alignment between the shoe model and foot model, and to determine error of fit between an aligned shoe model and foot model, respectively. The circuits may be a processor circuit and storage circuit, the processor circuit executing instructions represented electronically in the storage circuits. The circuits may also be FPGA, ASIC or the like.

An embodiment of a shoe fitting method comprises

obtaining a 3D shoe model and a 3D foot model,

- aligning the 3D shoe model and the 3D foot model to each other by applying an aligning 3D transformation to the 3D foot model and/or the 3D shoe model, the aligning 3D transformation being obtained as the optimum of an alignment function, the method comprising optimizing the alignment function,

evaluating an error of fit function indicating a fit between the 3D foot model and the 3D shoe model, the evaluating comprising computing multiple distances between a set of points for fitting on the surface of the 3D foot model and a corresponding set of points for fitting on the surface of the 3D shoe model, the error of fit function depending on the multiple distances.

A further embodiment of a shoe fitting method is given in figure 7. Many different ways of executing the method are possible, as will be apparent to a person skilled in the art. For example, the order of the steps can be varied or some steps may be executed in parallel. Moreover, in between steps other method steps may be inserted. The inserted steps may represent refinements of the method such as described herein, or may be unrelated to the method. Moreover, a given step may not have finished completely before a next step is started.

A method according to the invention may be executed using software, which comprises instructions for causing a processor system to perform the method. Software may only include those steps taken by a particular sub-entity of the system. The software may be stored in a suitable storage medium, such as a hard disk, a floppy, a memory, an optical disc, etc. The software may be sent as a signal along a wire, or wireless, or using a data network, e.g., the Internet. The software may be made available for download and/or for remote usage on a server. A method according to the invention may be executed using a bit stream arranged to configure programmable logic, e.g., a field-programmable gate array (FPGA), to perform the method.

It will be appreciated that the invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of source code, object code, a code intermediate source, and object code such as partially compiled form, or in any other form suitable for use in the implementation of the method according to the invention. An embodiment relating to a computer program product comprises computer executable instructions corresponding to each of the processing steps of at least one of the methods set forth. These instructions may be subdivided into subroutines and/or be stored in one or more files that may be linked statically or dynamically. Another embodiment relating to a computer program product comprises computer executable instructions corresponding to each of the means of at least one of the systems and/or products set forth.

Figure 6a shows a computer readable medium 1000 having a writable part 1010 comprising a computer program 1020, the computer program 1020 comprising instructions for causing a processor system to perform a shoe fitting method, according to an embodiment. The computer program 1020 may be embodied on the computer readable medium 1000 as physical marks or by means of magnetization of the computer readable medium 1000. However, any other suitable embodiment is conceivable as well. Furthermore, it will be appreciated that, although the computer readable medium 1000 is shown here as an optical disc, the computer readable medium 1000 may be any suitable computer readable medium, such as a hard disk, solid state memory, flash memory, etc., and may be non-recordable or recordable. The computer program 1020 comprises instructions for causing a processor system to perform said method of fitting.

Figure 6b shows in a schematic representation of a processor system 1 140 according to an embodiment. The processor system comprises one or more integrated circuits 1 1 10. The architecture of the one or more integrated circuits 1 1 10 is schematically shown in Figure 6b. Circuit 1 1 10 comprises a processing unit 1 120, e.g., a CPU, for running computer program components to execute a method according to an embodiment and/or implement its modules or units. Circuit 1 1 10 comprises a memory 1 122 for storing programming code, data, etc. Part of memory 1 122 may be read-only. Circuit 1 1 10 may comprise a communication element 1 126, e.g., an antenna, connectors or both, and the like. Circuit 1 1 10 may comprise a dedicated integrated circuit 1 124 for performing part or all of the processing defined in the method. Processor 1 120, memory 1 122, dedicated IC 1 124 and communication element 1 126 may be connected to each other via an interconnect 1 130, say a bus. The processor system 1 1 10 may be arranged for contact and/or contact-less communication, using an antenna and/or connectors, respectively.

For example, in an embodiment, the fitting device may comprise a processor circuit and a memory circuit, the processor being arranged to execute software stored in the memory circuit. For example, the processor circuit may be an Intel Core i7 processor, ARM Cortex-R8, etc. The processor circuit may be multiple processors cores arranged to perform the processing function. The memory circuit may be an ROM circuit, or a non-volatile memory, e.g., a flash memory. The memory circuit may be a volatile memory, e.g., an SRAM memory.

It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments.

In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. Use of the verb "comprise" and its conjugations does not exclude the presence of elements or steps other than those stated in a claim. The article "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

In the claims references in parentheses refer to reference signs in drawings of embodiments or to formulas of embodiments, thus increasing the intelligibility of the claim. These references shall not be construed as limiting the claim.

**Previous Patent:**SINGLE-PORTION PACKAGE, USE, AND PREPARATION MACHINE

**Next Patent: LIGHT DEVICE WITH A LIGHT SOURCE HAVING A LIGHTING AREA AND A COMMUNICATION AREA**