城市更新 · 城市维护 · 结构检测与分析

照片进,
可复核的结论出

面向城市更新与城市维护的专业检测与分析系统。上传现场照片,识别四类构造与四类破坏形态, 并给出应力与承载能力的评估线索;类别由确定性模型与规则表给出,不由对话生成, 每张图的类别、命中规则、置信度都能单独核查。
一句话:让每个结论都能被第二个人复核。

无需安装 · 登录即用 · 数据存在自己的服务器上

以下数字是首批验证结果:UHPC 剪力键试件,未参与训练的照片逐张对过真值。 定位是城市更新与城市维护的检测分析,这套判读链路不绑定单一构件类型。
42
四类 · 未参与训练
hold-out,栓钉另计
36/42
层级判对
85.7%
33/42
细类命中 · argmax
78.6% | 真正给出细类且判对 31 张
2
拒判 · 转人工
abstain
产品定位

面向城市更新与城市维护的专业检测与分析系统

不是通用聊天工具,也不是又一个标注平台。它把「现场照片 → 结构损伤结论」做成一条可复核的工程流程: 识别破坏形态、定位损伤区域、给出应力与承载的评估线索,并把每一步依据留在报告里。

服务场景

既有建筑与桥梁的加固改造、灾后与疲劳损伤排查、日常巡检留档。判读结论直接进复核流程,不用再手工誊一遍。

城市更新 · 城市维护 · 加固改造

分析能力

破坏形态识别(M1–M5)、损伤区域定位、界面过渡区细观分割;结合构造类型给出应力与承载能力的评估线索,而不是一句「看起来有问题」。

形态 · 区域 · 细观 · 承载线索

交付形态

每张图给出类别、命中规则、置信度三值;证据不足就出拒判并说明缺口;一页式报告可导出 PDF、可批量汇总。

三值可核 · 拒判说明 · PDF 导出
评估结果 · 首批验证

42 张没参与训练的照片,逐张对过真值

这批验证用的是 UHPC 剪力键试件,是这套方法在结构损伤识别上的第一次完整落地,不是能力上限。 每格上层是层级判决与置信度,下层是人工真值;判对的、判错的、拒判的都摆出来,不挑好的说。

先说边界:当前证据只覆盖 UHPC 剪力键试件这 42 张,同一台设备、同一批试件; 房屋、桥梁、幕墙的跨构件迁移还没有验证过,实验排在下个迭代。先写在这里, 不希望它被读成「四类都验过了」。

四类构造 42 张未参与训练照片的逐格对照:每格上为照片与判决结论、下为人工真值,绿框勾为判对、红框叉为细类判错、灰框横为拒判;栓钉 15 张另计,不在图内
四类 42 张 · 未参与训练(层级对 36 / 给出细类且判对 31 / 只报父类 5 / 判错 4 / 拒判 2)| 栓钉 15 张另计,不在图内|每格右上角:勾 = 判对(只报父类也算对),叉 = 细类判错,横 = 拒判| 这张图由 app/data/eval42.json 直接生成,页面上任何一个数变了,图会跟着重出
判对(含只报父类) 细类判错 拒判,不给结论
类别层级命中该类召回Wilson 95%
PB 开孔板破坏 17/20 85% [64.0, 94.8]
BM3 界面滑移 7/7 100% [64.6, 100]
BM4 端部掀起 6/9 67% [35.4, 87.9]
SG3 基体劈裂 6/6 100% [61.0, 100]
「判对」有三个数,不是一套口径:层级对 36 = 构造大类一致 (PB / BM / SG 这一层),只报父类也算对,2 张拒判不计入;
细类命中 33 = 模型内部概率最高的类正好是真值,不管有没有给出结论——这 33 张里有 1 张被拒判、1 张降级成只报父类,模型想对了但产品没说;
给出细类且判对 31 = 真正对外承诺了细类、而且承诺对了,这是最能代表交付质量的那个数。
36 − 33 = 3 只是巧合,不是「3 张判错了」:两个数的分母都是 42,但计分范围不同, 相减没有含义。下表「层级命中」四行分子相加是 36,逐张明细页可以一格一格点开核对。
「该类召回」怎么算:分子是该类判对数,分母是该类在 42 张里的张数—— 问的是「这一类有多大比例被认出来」,不是「判成这一类的有多准」(后者是精确率)。 单类最多 20 张,点估计只作参考,对外一律说区间。
这 42 张不含栓钉:栓钉支路另计 15 张,不进上面这张表、也不计分。 15 张里只有 4 张能看清钉头,构造证据不足,一律走旁路——宁可走旁路,也不硬凑一个类别。
样本构成:这 42 张 = PB 20 / BM3 7 / BM4 9 / SG3 6,四类合计 42,全部未参与训练。
两个「层级」不是一回事:指标条里的「层级」指构造大类(PB / BM / SG / ST), 「细类」指破坏形态(M1–M5);判读链路里的 L1–L4 是另一套编号,指的是链路环节。 同页两套编号容易混,这里标一下。
判读链路

四层各管一件事,谁都不越界

分层不绑定构件类型:L1 换权重、L2 换规则表,就能迁到别的检测对象上,L3 报告与 L4 工具链不用动。 这也是我们敢把它用在城市更新与城市维护场景里的原因 —— 换的是领域知识,不是整套系统。

模型只负责给类别和置信度,不下结论;规则表负责仲裁与下调;报告模板负责把证据摆齐;工具链负责把量和图算出来。四层任意一层都能单独替换。

L1 · 视觉模型

一图一专家:每个模型只回答自己那一件事,不越界。先认连接件构造,再判宏观破坏形态,需要时先把破坏面框出来。

  • 连接件类型:ST 栓钉、PB PBL / 复合键、SG 节段榫、BM 加固梁,外加 IF 界面;另有三种子集成版压住单次抖动
  • 破坏形态:M1 金属件剪断、M2 混凝土压碎、M3 界面滑脱、M4/M5 劈裂或混合
  • 栓钉旁路:钉头不可见时不做构造判别,直接走旁路,不参与四类评分
conn4conn3conn4ensfail4detdet_hr
能力

判读之外,还有一整套现场可用的配套

从归组去重到条文检索,从细观分割到批量报表,都是巡检与复核流程里的环节,不是拼凑的功能列表。

四类构造 + 栓钉旁路

ST 栓钉、PB PBL / 复合键、SG 节段榫、BM 加固梁,另加 IF 界面;栓钉在钉头不可见时走旁路,不硬凑类别、也不计分。

ST · PB · SG · BM · IF

四类破坏形态

M1 金属件剪断、M2 混凝土压碎、M3 界面滑脱、M4/M5 劈裂或混合。判不了就出拒判,明说证据不足。

M1 · M2 · M3 · M4/M5

细观分割

S1 界面过渡区脱粘、S2 骨料断裂、S3 基体微裂、S4 纤维拔出或断裂,四类占比进入规则表参与仲裁。

SegFormer · mIoU 0.71 · CT 50 μm

区域检测

先把破坏面与裂缝框出来,再交给判读。高召回版本用于漏检代价高的场合,两版可并行比对。

det / det_hr · 双档召回

规范条文检索

只引条文原文与条号,不自行解读。库是空的就明确回你库是空的,不会编一个条号出来。

clause_search · 只引原文

多端同一份数据

桌面端与网页版读写同一个库,不做各自为政的副本。数据目录可整个拷走,换机器接着用。 移动端还在做,见下面的路线。

同一 SQLite · 目录可迁移
未来规划

接下来要补的三件事

已经上线的能力只写验证过的数字;下面是路线,不是承诺的上线时间。

近期 · 应力场反演

用破坏形态与细观占比反推界面应力分布。先做单轴剪切工况,验证通过再扩到复合受力。

进行中 · 单轴剪切

中期 · 巡检级移动端

手机端离线判读与现场标注,弱网可用;回到办公室不用再补录一遍,同一份数据自动对齐。

规划中 · 离线优先

远期 · 结构健康档案

按构件建立时间序列档案,自动比对历次巡检的形态演化,输出维护优先级排序,而不是每次从零看一遍。

路线 · 时序对比
下载

两个端,同一份判读结果

网页版打开就能用,不用装,只做查询与评审。桌面端内嵌运行时,批量推理、标注与模型配置在那边。两端读写同一个库,桌面端跑完的批次在网页上立刻能看。

网页版

无需安装 · 登录即用

浏览器直接打开就能查询、参与评审、签字确认。批量推理、批量标注与模型配置在桌面端做 —— 网页版故意不给这些入口,免得在公用电脑上误操作。两端读写同一个库,桌面端跑完的批次在网页上立刻能看。

推荐 Chrome / Edge 最新版

Windows 桌面端

v1.1.0 · Windows 安装版

内嵌服务端,模型只在本机运行、不上传云端。首次启动自动配置判读环境,无需手动安装依赖。

约 810 MB · 装完模型在本机跑,不走云端
SHA-256 a077feb72dd3ba290967a2c4ca37fd8f4de26c5a7694874fbdced6e1604e1850
这个包还没做代码签名,首次运行 Windows SmartScreen 会拦一次: 点「更多信息」→「仍要运行」。介意的话,先对一遍上面的 SHA-256 再装。
桌面端运行要求 下列数字都是在真机上跑出来的,不是按「应该够」估的
系统 Windows 10 1809 及以上(64 位)
不用自己装 Python,首次启动自动配齐
内存 4 GB 可用即可
判读进程峰值实测 1.0–1.7 GB
显卡 不要求 NVIDIA
有卡每张快 0.03–0.2 秒,显存只占 200 MB
速度 单模型 0.8–1.0 秒/张,三种子集成 1.8 秒
第一次点要先等约 10 秒起推理进程

测法:20 核 / 15.7 GB / RTX 5060 Laptop,跑 3072×4096 手机照片,一张 9 MB; 把线程压到 4 条、屏蔽显卡复测,即四核办公本水准——单张 0.95 秒、峰值内存 1.0 GB。 核数与显卡都不是瓶颈,时间主要花在解一张 1200 万像素的照片上。

首次启动要联网配置一次运行环境:先拉一份 11 MB 的 Python 运行时, 解压即用,不装进系统、不改 PATH、也不要管理员权限;再装推理依赖,含 CPU 版 PyTorch 与 OpenCV。整段十分钟上下,看网速;装完占盘 1.2 GB,之后不再重复下载。

直接进工作站试一张

用自己的账号登录,上传一张破坏照片,看它给出类别、命中规则和置信度三值。