Bouw van Contour, een op fysica gebaseerde pasvorm-engine voor mode: hetzelfde lichaam is een 29 in raw selvedge en een 28 in stretchdenim, 40 punten beter dan de maattabel.
Fashion TechEcommerceRetail Technology

Hetzelfde lichaam heeft maat 29 in de ene jeans en 28 in de andere. Ik bouwde de pasvorm-engine die verklaart waarom een maattabel ze niet uit elkaar kan houden.

Ashutosh SinghalAshutosh Singhal10 juli 202612 min

Ik heb deze demo gebouwd om een discussie te beslechten die ik steeds met mezelf voerde, en er was één keuzemenu voor nodig om er een einde aan te maken. Ik had een synthetische shopper die ik Riley noemde, een vaste set lichaamsmaten en een catalogus van acht synthetische jeans. Ik zette Riley voor de Ironside, een 14oz raw selvedge straight jeans, stug, nul stretch, en de engine kwam terug met Maat 29, 95% betrouwbaarheid, comfortabel in elke zone. Vervolgens veranderde ik niets aan Riley, wisselde het kledingstuk om naar de Driftwood, een stretch slim jeans die er op een productfoto vrijwel identiek uitziet, en de juiste maat daalde naar 28.

Hetzelfde lichaam. Dezelfde maten. Twee verschillende juiste maten. En een maattabel die alleen naar de taille kijkt, wat vrijwel elke kledingsite tegenwoordig gebruikt, zou voor beide jeans exact hetzelfde getal hebben getoond en er bij een van de twee naast hebben gezeten.

Contour adviseert Maat 29 met 95% betrouwbaarheid voor Riley op de Ironside raw selvedge jeans, met de opmerking dat een maattabel op basis van alleen taille Maat 28 zou aangeven en onjuist zou zijn, terwijl de spanningsbalken per zone allemaal als comfortabel worden weergegeven
Riley op de stugge Ironside raw selvedge: de engine retourneert Maat 29 met 95% betrouwbaarheid, elke zone comfortabel, en signaleert dat een maattabel op basis van alleen taille 28 zou hebben gezegd. Bij dit denim zonder stretch zou 28 de reklimiet van het bovenbeen ver overschrijden.

Het uiteindelijke product heet Contour, en je kunt deze exacte vergelijking zelf uitvoeren op veriprajna.com/nl/demos/ai-pasvormvoorspelling-die-de-stof-voelt-contour-maatsysteem. Maar waar ik het over wil hebben is niet de aanbeveling. Het is de reden waarom de aanbeveling veranderde terwijl er niets aan het lichaam veranderde, want die reden is het hele argument om dit te bouwen zoals ik het heb gebouwd.

De mode-industrie probeert retourzendingen al jaren op te lossen met betere foto's

Ik begon dit project vanuit de overtuiging, zoals de meesten in dit vakgebied, dat het retourprobleem een beeldprobleem was. Kledingretouren worden gedomineerd door pasvorm, en het pasvormgerelateerde aandeel ligt ergens tussen de 53 en 67 procent, waarbij ongeveer 63 procent van de shoppers toegeeft aan 'bracketing' te doen: twee maten bestellen en er één terugsturen (Veriprajna WP34-onderzoek, 2026). De retourlogistiek vreet de marge op. Het antwoord van de sector was om het beeld te verbeteren: uitgebreidere maattabellen, vervolgens 3D-avatars en daarna generatief virtueel passen dat het kledingstuk op een foto van je lichaam rendert.

Ik was er een tijd van overtuigd dat een voldoende goede virtuele paservaring het gat zou dichten, totdat ik stilstond bij wat virtueel passen je werkelijk laat zien. Het laat je de jeans op een lichaam zien. Het laat je niet zien of die jeans dat lichaam daadwerkelijk past. Een generatieve afbeelding kan een stof overtuigend draperen zonder enig benul te hebben dat wanneer Riley gaat zitten, de bovenbeenomtrek groter is dan wat dat specifieke denim kan meerekken. De foto ziet er goed uit. De naad staat onder een belasting die de render nooit heeft berekend.

Virtueel passen kan je de jeans op je lichaam laten zien en nog steeds geen flauw idee hebben of ze zullen passen.

Dat was de zin die het project voor mij in een heel ander daglicht stelde. Een maattabel bestaat uit vier eendimensionale getallen die pretenderen een driedimensionaal lichaam te beschrijven, en een pasafbeelding is een fraaie tweedimensionale render die pretendeert pasvormdata te zijn. Ze delen dezelfde blindheid. Geen van beide kan de stof voelen. Of een kledingstuk past, is geen visuele vraag. Het is een mechanische vraag: de omtrekspanning bij elke lichaamszone afgezet tegen de elasticiteitslimiet van die stof. En dat is waarom Riley een 29 heeft in raw selvedge en een 28 in stretchdenim, zelfs wanneer de maattabel identiek is.

Contour adviseert Maat 28 voor dezelfde shopper Riley op de Driftwood stretch slim jeans, waarbij wordt opgemerkt dat de maattabel op basis van alleen taille hier ook op 28 uitkomt omdat de stretch de andere zones compenseert
Dezelfde Riley, nu op de Driftwood stretch slim. De juiste maat daalt naar 28 met 90% betrouwbaarheid, omdat het stretchdenim het bovenbeen en de heup compenseert waar de stugge selvedge dat niet deed. Het kledingstuk veranderde, het lichaam niet, en de uitkomst verschoof.

Waarom vertrouwde ik het model niet meer om de maat te kiezen?

Ik heb in het begin een taalmodel eens de maat laten kiezen, en zien hoe het met vol zelfvertrouwen fout zat, is de reden dat de architectuur er nu uitziet zoals ze eruitziet. Mijn eerste ingeving was de meest voor de hand liggende: voer het model het lichaam, voer het het kledingstuk, en vraag om een maat. Het antwoordde direct en vloeiend, en bij de stugge stoffen zat het er vaak op de gevaarlijkste manier naast: fout met een hoge mate van zekerheid. Het had de vorm van een plausibel maatadvies geleerd zonder de ene berekening uit te voeren die de waarheid bepaalt.

Dus heb ik de beslissing volledig bij het model weggehaald. In Contour wordt de maat berekend in eenvoudige, met unit-tests geteste Python. Voor elke kandidaat-maat berekent de engine zone_strain = (body_circumference − garment_finished_circumference) / garment_finished_circumference voor elke zone, vergelijkt dit met de elastische comfortlimiet van de stof en kiest de maat met de laagste totale spijtscore per zone. Acht unit-tests houden die fysica stevig op haar plek. Er is nergens in het beslistraject een model dat je maat bepaalt. Het taalmodel heeft nog steeds een taak: het omzetten van rommelige leveranciersteksten naar een gestructureerde stofspecificatie, en het formuleren van het resultaat als "aansluitend bij de heup, relaxed bij het bovenbeen." Het adviseert. Het beslist nooit.

Agents adviseren, code beslist. Zodra het model een stem krijgt in het getal, ben je datgene kwijtgeraakt wat het getal betrouwbaar maakte.

Dit is ook het deel van de stelling dat niet veroudert, en het is het antwoord dat ik geef aan engineers die vragen waarom ik niet gewoon heb gewacht op een beter model. Een perfect taalmodel zou nog steeds de noodzaak niet wegnemen van de stoffysica, de lichaamsgeometrie, de spanningsberekening per zone en het onthoudingsbeleid. Zelfs een vlekkeloze adviseur moet worden getoetst aan een berekende grootheid om veilig te zijn bij het afrekenen. Het model is één inwisselbare adviseur binnen de machine. De machine is het product.

De maat die het weigert te raden

Ik had bijna een versie uitgebracht die nooit "ik weet het niet" zegt, en ik ben blij dat een hardnekkige testcase me daarvan heeft weerhouden. De shopper was Jordan, met diezelfde stugge Ironside selvedge. Ik voerde de pasvormcontrole uit in de verwachting van een duidelijk getal, maar in plaats daarvan bracht de engine een reëel conflict aan het licht: bij de kleinere maten overschrijdt het bovenbeen de reklimiet van de stof ruimschoots, en bij de grotere maten valt de taille te wijd. Bij denim zonder stretch is er simpelweg geen maat die in elke zone goed uitkomt. De maattabel op basis van alleen taille toont ondertussen zelfverzekerd 28 en gaat gewoon door.

Contour onthoudt zich van een hard advies voor Jordan op de Ironside jeans, toont een reëel pasvormconflict, beveelt Maat 31 aan als de minst slechte optie met 58% betrouwbaarheid waarbij taille en heup wijd vallen, en geeft het advies om te 'bracketen' of met een stylist te overleggen
Jordan op de stugge Ironside: taille en heup vallen wijd (-8% en -6%), het bovenbeen zit strak, en geen enkele maat klopt overal. De engine noemt de minst slechte maat (31) met 58% betrouwbaarheid en onthoudt zich van een hard advies met de mededeling "bracket of overleg met een stylist", in plaats van een getal te bluffen zoals de zelfverzekerde 28 van de tabel.

De verleidelijke stap, degene die je algemene nauwkeurigheidscijfer er beter uit laat zien, is om altijd de minst slechte maat te tonen en dat een aanbeveling te noemen. Die versie had ik geschreven. Vervolgens liet ik de engine zich onthouden in plaats daarvan: het noemt de minst slechte maat, verlaagt de betrouwbaarheid naar 0,58 en zegt hardop: "bracket, of overleg met een stylist." Over de gehele evaluatie doet het dit bij 33 van de 105 combinaties van lichaam en kledingstuk in plaats van te gokken. Een eerlijk "geen enkele maat past hier overal perfect" is meer waard voor een shopper dan een zelfverzekerde foute 28, want die zelfverzekerde foute 28 is precies hoe je een retourzending veroorzaakt. Weigeren een antwoord te geven bleek een functionaliteit te zijn waarvoor ik tegen mijn eigen benchmark-instincten moest vechten om die te behouden.

De leverancierstekst die niet waar kán zijn

Ik heb een kledingstuk in de catalogus dat uitsluitend bestaat om te worden afgewezen, en dat ontstond uit een oprechte frustratie over hoe productteksten worden geschreven. De Maverick wordt door zijn eigen leverancier omschreven als "100% katoenen raw selvedge denim met 4-way stretch." Die bewering is fysiek incoherent. Een stug geweven raw selvedge kan niet tegelijkertijd 4-way stretch hebben. Maar een naïeve extractor leest "4-way stretch", gaat er vrolijk van uit dat de stof alles vergeeft en reikt je met een glimlach een gevaarlijk foute maat aan.

Dus heb ik tussen de extractie en de beslissing een 'adversarial critic' geplaatst. Deze toetst de geëxtraheerde stofspecificatie aan fysische randvoorwaarden, en wanneer de tekst zichzelf tegenspreekt, blokkeert deze de inferentie en stuurt deze door naar handmatige controle. Er wordt geen maatadvies afgegeven. De deterministische regels hebben het laatste woord, niet het model dat de tekst heeft gelezen.

Contour blokkeert de Maverick jeans waarvan de leverancierstekst zowel raw selvedge als 4-way stretch claimt, met een critic-melding dat de stofinferentie werd afgewezen als mechanisch incompatibel en is doorgestuurd voor handmatige controle zonder dat er een maat is afgegeven
De tekst van de Maverick claimt tegelijkertijd "raw selvedge" en "4-way stretch". De critic wijst de inferentie af als mechanisch incompatibel — een stug weefsel kan geen 4-way stretch zijn — en stuurt deze door naar handmatige controle zonder advies af te geven, in plaats van een tegenstrijdigheid wit te wassen tot een zelfverzekerde maat.

Ik houd dit voorbeeld in beeld omdat het de eerlijke versie is van "AI-veiligheid" voor dit probleem. De foutmodus is niet dat het model creatief is. Het is dat het model gehoorzaam fout zit bij een kledingstuk waarvan de eigen beschrijving liegt. Een systeem dat altijd antwoord geeft, zal dat hier ook doen, en het zal over de Maverick net zo zelfverzekerd zijn als over een jeans waarvan de tekst wél klopte. Het hele punt is om een laag te hebben die kan zeggen "deze twee feiten kunnen niet allebei waar zijn", en stopt.

Wat de cijfers werkelijk zeggen, en wat niet

Ik hecht veel waarde aan de benchmark, en ik hecht er nog meer waarde aan om het bereik ervan eerlijk te benoemen, want het eerlijke getal is het getal dat standhoudt. Op een gelabelde synthetische gouden set van 105 paren, 15 lichamen tegenover 7 beoordeelde kledingstukken, scoort de engine van Contour 100 procent tegenover de score van de maattabel op basis van alleen taille van 60 procent. Het elimineert bracketing bij 67,6 procent van de paren, wat betekent dat de shopper één maat krijgt met hoge betrouwbaarheid en er geen twee hoeft te bestellen, en het vangt 39 pasvormconflicten af: gevallen waarin de taille-overeenkomst van de tabel een maat kiest waarvan het spanningsmodel bewijst dat deze in een andere zone faalt.

Het benchmarkpaneel van Contour toont 100 procent engine-nauwkeurigheid tegenover 60 procent voor de baseline op basis van alleen taille, een stijging van plus 40 punten, 105 beoordeelde pasvormen, 39 onderschepte conflicten en 67,6 procent enkele maat, met een tabel per shopper voor de raw selvedge jeans
De benchmark: engine 100% vs. 60% voor de maattabel op basis van alleen taille op de set van 105 paren, een toename van +40 punten, waarbij 39 conflicten werden opgevangen en bracketing werd geëlimineerd bij 67,6% van de paren. Bij de stugge selvedge (bovenste tabel) daalt de tabel naar 33%, precies waar de pasvorm het lastigst is.

Hier is het deel dat ik weiger af te ronden. Die gouden set is synthetisch, en de labels gebruiken dezelfde meetbare stofrekcijfers die de engine gebruikt, dus het is geen volledig onafhankelijk orakel. De 100 procent is een eigenschap van deze geconstrueerde set, geen belofte van perfecte pasvormvoorspelling in de open wereld, en ik zal niemand toestaan het als zodanig te citeren. Het cijfer waar ik daadwerkelijk achter sta, is de toename van +40 punten ten opzichte van de huidige gangbare methode, de maattabel op basis van alleen taille die de meeste winkels vandaag de dag hanteren, gemeten op dezelfde labels. Dat voordeel is precies het grootst waar het zou moeten zijn: bij de stugge selvedge en maatwerk, waar de tabel daalt naar 33 procent, omdat een stugge stof een verkeerde maat afstraft en een elastisch breisel deze vergeeft. Waar de fysica het hardst toeslaat, helpt een foto het minst, en daar bewijst deze engine zijn waarde.

De eerlijke kop is niet "100% nauwkeurig." Het is "40 punten beter dan de tabel waarop je winkel nu al vertrouwt, en het grootste deel van dat verschil zit in denim."

Elk van die aanbevelingen schrijft ook een herspeelbare JSON-bon: de geëxtraheerde stofspecificatie met de exacte bronfrases die elke parameter bepaalden, de volledige spanningsmatrix per maat en de uiteindelijke beslissing. Het antwoord is dus niet zomaar een getal. Het is een getal dat je kunt openen en controleren, en dezelfde payload wordt geleverd via een /api/fit endpoint dat een AI-shoppingagent direct kan aanroepen. Nu e-commerce verschuift naar agents die namens ons transacties uitvoeren, moet het maatsignaal dat zij consumeren machineleesbaar zijn, voorzien van een betrouwbaarheidsscore en controleerbaar. Een rapport, geen foto.

De vraag waar ik steeds op terugkom

Ik begon hieraan met het idee dat ik een betere gokker aan het bouwen was, en ik kwam eruit overtuigd dat ik iets had gebouwd dat dichter bij een meetinstrument ligt. Het interessante werk was nooit het voorspellen van een maat. Het was bepalen wat het systeem mag beweren, wanneer het zich moet onthouden van een oordeel, welke tegenstrijdigheden het moet weigeren en hoe het elk antwoord achteraf bewijst. Wanneer ik dat keuzemenu omschakel van de stugge jeans naar de stretchjeans en de juiste maat zie veranderen bij een lichaam dat dat niet deed, voel ik niet "het model is slim". Het is "de fysica is echt, en we zijn eindelijk gestopt met het verbergen ervan achter een foto." Je kunt datzelfde keuzemenu proberen op veriprajna.com/nl/demos/ai-pasvormvoorspelling-die-de-stof-voelt-contour-maatsysteem en het zelf zien gebeuren.

En als je het liever ziet dan dat je mijn beschrijving leest: hier draait het hele systeem van begin tot eind.

De vraag waar ik over blijf nadenken, en waarover ik oprecht graag met andere bouwers in discussie wil gaan, is waar we nog meer een mechanisch feit verbloemen met een fraaiere afbeelding. De modewereld zocht een decennium lang naar betere foto's, terwijl het antwoord lag in een spanningsberekening die elke engineer van unit-tests had kunnen voorzien. Dus wat is in jouw eigen vakgebied het mechanische feit onder datgene wat iedereen maar probeert te renderen, en zou je een afbeelding daarvan meer vertrouwen dan een getal dat je kunt verifiëren?

Gerelateerd onderzoek

Ook gepubliceerd op

Bouw uw AI met vertrouwen.

Werk samen met een team met diepgaande ervaring in het bouwen van de volgende generatie enterprise-AI. Laat ons u helpen bij het ontwerpen, bouwen en implementeren van een AI-strategie waarop u kunt vertrouwen.

Veriprajna Deep Tech-adviesbureau is gespecialiseerd in het bouwen van veiligheidskritische AI-systemen voor de gezondheidszorg, de financiële sector en gereguleerde domeinen. Onze architecturen worden gevalideerd aan de hand van gevestigde protocollen met uitgebreide compliancedocumentatie.