打造基于物理力学的时尚尺码引擎 Contour:同一体型穿原色赤耳为 29 码、穿弹力牛仔为 28 码,比传统尺码表准确率高出 40 个百分点。
Fashion TechEcommerceRetail Technology

同一身材穿某款牛仔裤是 29 码,穿另一款却是 28 码:我打造了一套合身引擎,揭示为何传统尺码表无法区分它们

Ashutosh SinghalAshutosh Singhal2026年7月10日12 min

我做这个演示是为了解决一个我一直在和自己争论的问题,而只需切换一次下拉菜单就得出了结论。我设定了一位名叫 Riley 的合成虚拟顾客、一组固定的身体测量数据,以及包含八款合成牛仔裤的目录。我让 Riley 试穿 Ironside——一款 14 盎司、硬挺、零弹力的原色赤耳直筒牛仔裤,引擎给出的结果是29 码,95% 置信度,各部位均舒适。接着,在完全不改变 Riley 任何数据的情况下,我把裤子换成了 Driftwood——一款在商品图上看起来几乎一模一样的弹力修身牛仔裤,正确尺码随即降至28 码。

同样的身体。同样的测量数据。两个截然不同的正确尺码。而如今几乎所有服装网站都在使用的仅看腰围的尺码表,却会为这两条牛仔裤给出完全相同的尺码,并在其中一条上彻底出错。

Contour 为试穿 Ironside 原色赤耳牛仔裤的 Riley 推荐 29 码(置信度 95%),并注明仅看腰围的尺码表会推荐错误的 28 码,且各部位应变条均显示舒适
Riley 试穿硬挺的 Ironside 原色赤耳牛仔裤:引擎以 95% 的置信度给出 29 码,各部位均舒适,并指出仅看腰围的尺码表原本会给出 28 码。在这种零弹力牛仔布上,28 码会直接超出大腿部位的延展极限。

我最终打造的产品名为 Contour,你也可以在 veriprajna.com/zh-Hans/demos/ai-fit-prediction-fashion 亲自运行这一对比。但我想要探讨的并不是推荐本身,而是在身体数据毫厘未变的情况下推荐结果发生改变的原因——因为这个原因,正是我坚持以这种架构构建系统的核心依据。

时尚界一直在试图用更精美的图片解决退货问题

项目伊始,我和该领域的多数人一样,以为退货问题归根结底是图像呈现问题。服装退货以合身度问题为主,合身度相关原因占到了 53% 至 67%,约 63% 的消费者承认自己会“多码选购”(bracketing),即同时下单两个尺码再退掉一件(Veriprajna WP34 研究,2026年)。逆向物流蚕食了利润。而行业的应对方案一直是把视觉效果做得更漂亮:更详尽的尺码表、3D 虚拟化身,再到将服装渲染到真人照片上的生成式虚拟试穿。

曾有很长一段时间,我深信只要虚拟试穿足够逼真就能消除差距,直到我静下心来审视虚拟试穿究竟向你展示了什么。它向你展示了穿在身上的牛仔裤,却没有展示这条牛仔裤穿在身上是否真正合身。 生成式图像可以把面料垂坠感渲染得以假乱真,却完全不知道当 Riley 坐下时,大腿围会超出该款牛仔布所能承受的延展极限。画面看起来天衣无缝,缝线处承受的载荷却是渲染算法从未计算过的。

虚拟试穿可以展示穿在身上的牛仔裤,却依然对它是否合身一无所知。

正是这句话彻底重塑了我对这个项目的认知。尺码表是用四个一维数字假装在描述三维身体,而试穿图像是用精美的二维渲染假装成合身度数据。它们有着相同的盲区:两者都无法感知面料。 一件衣服是否合身绝非视觉问题,而是一个力学问题:即身体各部位的周向应变相对于该面料弹性极限的考量。这也正是为什么即使尺码表完全相同,Riley 穿原色赤耳牛仔裤需要 29 码,而穿弹力牛仔裤只需 28 码。

Contour 为同一位顾客 Riley 推荐 Driftwood 弹力修身牛仔裤的 28 码,并指出此处仅看腰围的尺码表恰好也是 28 码,因为弹力面料包容了其他部位
同样的 Riley,换成 Driftwood 弹力修身牛仔裤后,正确尺码在 90% 置信度下降至 28 码,因为弹力牛仔布包容了硬挺赤耳无法容纳的大腿与臀部。服装变了,身体没变,结论随之改变。

为什么我不再信任模型来挑选尺码?

在早期,我曾试过让大语言模型来选定尺码,而目睹它自信满满地给出错误答案,正是促使系统演进为当前架构的原因。我最初的本能非常直接:把身体数据输入模型,把服装参数输入模型,向它索取尺码。它回答得迅速而流畅,但在硬挺面料上,它往往以最危险的方式出错——高度自信地犯错。它学会了看似合理的尺码答案的表象,却没有进行决定事实真相的那次关键计算。

因此我彻底将决策权从模型中剥离。在 Contour 中,尺码是由经过单元测试的纯粹 Python 代码计算出来的。对于每个候选尺码,引擎在各个部位计算zone_strain = (body_circumference − garment_finished_circumference) / garment_finished_circumference,将其与面料的弹性舒适极限进行对比,并选出各部位综合遗憾值最低的尺码。八个单元测试牢牢锁定了这套物理规律。在整个决策路径中,没有任何模型参与决定你的尺码。 语言模型依然各司其职:将混乱的商家文案解析为结构化的面料规格,并将结果表述为“臀部贴合,大腿宽松”。它提供建议,但绝不下定论。

智能体提供建议,代码做出裁决。一旦模型在具体数字上拥有投票权,你就失去了让这个数字值得信赖的根基。

这也是该论点中永不过时的部分,是我给那些询问我为何不等待更强大模型的工程师们的回答。即使是一个完美的语言模型,也无法消除对面料力学、身体几何结构、各部位应变计算以及弃权策略的需求。即便是毫无瑕疵的顾问,也必须对照计算量进行校验,才能确保结账时的准确安全。模型只是这台机器内部一个可替换的顾问。这台机器本身才是产品。

拒绝胡乱猜测的尺码

我差点发布了一个从不说“我不知道”的版本,我很庆幸一个棘手的测试用例打消了我的念头。那位顾客是 Jordan,同样试穿硬挺的 Ironside 赤耳牛仔裤。我运行了合身度检查,本以为会得到一个明确的数字,引擎却暴露出了一个真实的冲突:较小尺码下大腿会直接超出面料延展极限,而较大尺码下腰围又偏松。在零弹力牛仔布上,根本没有任何尺码能让所有部位都完美契合。与此同时,仅看腰围的尺码表却自信地给出了28 并不以为意。

Contour 对试穿 Ironside 牛仔裤的 Jordan 做出弃权判定,指出存在实质性的合身冲突,以 58% 的置信度推荐次优尺码 31 码(腰部和臀部偏松),并建议多码选购或咨询造型师
Jordan 试穿硬挺的 Ironside:腰部和臀部偏松(-8% 和 -6%),大腿偏紧,没有任何尺码能在所有部位都完美契合。引擎给出了置信度 58% 的次优尺码(31 码)并主动弃权,提示“多码选购,或咨询造型师”,而不是像尺码表那样盲目自信地硬塞一个 28 码。

最诱人的做法——也是能让整体准确率看起来更漂亮的做法——是始终输出次优尺码并将其称之为推荐。我确实写过那个版本。但随后我让引擎学会了弃权:它标出次优尺码,将置信度降至 0.58,并明确告知“多码选购,或咨询造型师”。在完整的评估测试中,它在 105 组身体-服装组合中的 33 组上选择了弃权,而不是瞎猜。一句坦诚的“当前没有任何单一尺码能完美契合”,对消费者而言远比一个盲目自信但错误的 28 码更有价值,因为盲目自信的错误 28 码正是导致退货的根源。事实证明,拒绝作答是一项我必须克服自身基准测试虚荣心才能保留下来的功能。

不可能为真的商家文案

在我的产品目录中有一件衣服,其存在的唯一目的就是被系统拒绝,而它源于我对某些商品文案描述的极度不满。Maverick 被其商家描述为“100% 全棉原色赤耳四面弹牛仔布”。这种说法在物理学上是自相矛盾的。硬挺机织的原色赤耳牛仔布绝不可能具备四面弹力。但粗糙的信息提取器只要读到“四面弹”,就会盲目认为该面料极具包容性,并面带微笑地向你交付一个危险且错误的尺码。

因此在信息提取与决策之间,我加入了一个对抗性审查器(adversarial critic)。它会根据物理约束校验提取出的面料规格,一旦发现文案自相矛盾,就会阻断推理流程并转交人工审核。系统不会发布任何尺码推荐。 拥有最终裁决权的是确定性规则,而非阅读文案的大模型。

Contour 拦截了商家文案自称“原色赤耳且具备四面弹力”的 Maverick 牛仔裤,审查器提示该面料推理因力学上不兼容而被拒绝,并在不发布尺码的情况下转交人工审核
Maverick 的文案同时声称“原色赤耳”和“四面弹”。审查器认定硬挺机织布不可能具备四面弹力,以力学不兼容为由拒绝了该推理,并在未发布推荐的情况下将其转交人工审核,而不是将自相矛盾粉饰成一个自信的尺码。

我把这个例子一直留在屏幕上,因为它是针对该问题最真实的“AI 安全”实践。这里的失效模式并非模型在自由发挥,而是模型在面对虚假描述时百依百顺地犯错。 一个永远给答案的系统在这里同样会给出答案,并且它对 Maverick 的自信程度会与那些文案属实的牛仔裤毫无二致。设立这一层的核心意义,就在于能有一道屏障站出来指出“这两个事实不可能同时成立”,并果断中止流程。

数字真正说明了什么,又没有说明什么

我很看重基准测试,而我更在乎对其适用范围进行坦诚说明,因为唯有诚实的数字才经得起推敲。在包含 15 种体型对应 7 款评测服装、共计 105 组标注样本的合成黄金数据集上,Contour 引擎取得了 100% 的准确率,而仅看腰围的尺码表仅有 60%。 它在 67.6% 的组合中消除了多码选购需求,意味着顾客能获得单个高置信度尺码而无需一次买两件;同时它还捕获了 39 处合身冲突——即尺码表依据腰围选出的尺码被应变模型证实会在其他部位出现严重不合身的情况。

Contour 基准测试面板显示:引擎准确率达 100%,而仅看腰围基准仅为 60%,提升达 40 个百分点;共评估 105 次合身度,捕获 39 处冲突,67.6% 实现单码推荐,附带针对原色赤耳牛仔裤的单人体型明细表
基准测试数据:在 105 组样本上,引擎 100% 对比仅看腰围尺码表的 60%,提升达 +40 个百分点,捕获 39 处冲突,并在 67.6% 的组合中消除了多码选购。在硬挺赤耳牛仔裤上(上方表格),尺码表准确率暴跌至 33%,而这恰恰是合身度要求最严苛的地方。

以下是我拒绝粉饰的部分。该黄金数据集是合成生成的,其标签采用了与引擎相同的可测量面料延展数据,因此它并非完全独立的评判基准(oracle)。 这里的 100% 是该构建数据集特有的属性,绝非对开放真实世界中完美预测合身度的承诺,我也绝不允许任何人将其作为承诺来引用。我真正认可并背书的数据,是在相同标签衡量下相较于现有主流方法(即如今大多数门店采用的仅看腰围尺码表)所取得的 +40 个百分点提升。这一优势在最关键的地方体现得淋漓尽致:在硬挺赤耳和精细剪裁服装上,尺码表准确率降至 33%,因为硬挺面料对错误尺码毫不留情,而高弹针织面料则具有包容性。物理规律起决定性作用的地方,正是图片帮助最小的地方,也是这套引擎发挥真正价值的所在。

真正坦诚的标题不是“100% 准确”,而是“比你店铺当前所信赖的尺码表提升了 40 个百分点,且差距主要集中在牛仔品类”。

上述每一项推荐还会生成一份可重放的 JSON 凭证:包含驱动各项参数的具体源文案片段提取的面料规格、各尺码完整的应变矩阵以及最终决策。因此,输出的答案不仅仅是一个数字,而是一个可以展开并严谨溯源的结论,而且相同的数据结构直接通过 /api/fit 接口提供,AI 导购智能体可直接调用。随着电商向代表我们进行交易的智能体时代演进,它们所消耗的尺码信号必须是机器可读、附带置信度评分且可审计的。这是一份报告,而不是一张图片。

我反复思考的问题

初涉这个项目时,我以为自己是在做一个更厉害的猜测工具;而做完后我坚信,自己打造出的是一个更接近精密仪器的系统。真正有价值的工作从来不是预测尺码,而是界定系统被允许做出何种断言、何时必须弃权、必须拒绝哪些自相矛盾,以及事后如何论证每个答案。当我将下拉菜单从硬挺牛仔裤切换到弹力牛仔裤,看着身体数据未变而正确尺码随之改变时,我的感受绝非“模型真聪明”,而是“物理规律是实实在在的,我们终于不再把它掩盖在精美的图片之后”。你也可以在 veriprajna.com/zh-Hans/demos/ai-fit-prediction-fashion 亲自切换下拉菜单,见证这一过程。

如果你更想眼见为实而不是听我描述,这里展示了整个系统的端到端完整运行过程。

我反复琢磨、并且非常希望与其他开发者共同探讨的问题是:在哪些其他领域,我们同样在用更精美的图像粉饰基本的物理力学事实?十年来时尚界一直在追求更漂亮的图片,而真正的答案却潜藏在一个任何工程师都能写单元测试的应变计算公式中。那么在你所在的领域,大家都在竭力渲染的表象之下,最根本的力学事实究竟是什么?比起一个可检验的数字,你真的会更信任一张渲染出来的图片吗?

相关研究

同步发布于

满怀信心地构建您的 AI。

与一支在打造新一代企业级 AI 方面拥有深厚经验的团队携手合作。让我们助您设计、构建并部署一套值得信赖的 AI 战略。

Veriprajna 深度科技咨询公司 专注于为医疗健康、金融和监管等领域构建安全攸关的 AI 系统。我们的架构均依据成熟的规范进行验证,并配有完善的合规文档。