本章地图:
- 4.1 神经网络:把"看"交给投票委员会
- 4.2 卷积神经网络:天生为图像而生的结构
- 4.3 三大任务:分类、检测与分割
- 4.4 数据从哪来:多少照片才够训练一个能用的模型
- 4.5 从二维到三维:点云与三维感知入门
- 4.6 让物理当裁判:PINN 与"力学作为校验标尺"
开讲之前,先把本章和前三章的关系说清楚。第二章告诉你,图像是 AI 的燃料——但燃料不会自己变成动力;第三章告诉你,机器学习靠特征吃饭——但特征得靠人来做。第四章要回答的,正是卡在中间的那个问题:能不能让机器自己学特征? 答案就是深度学习。它把"人设计特征"这一步,直接干掉了。
这章内容多,路线图先给你:前三节讲"看二维照片"——神经网络怎么学、CNN 为什么天生适合图像、三大视觉任务怎么选;后两节讲"数据与三维"——多少数据才够、怎么走向三维世界;最后一节讲"让物理当裁判"——当数据不够时,力学方程怎么来补。六节走完,你就有了判断任何视觉项目的完整框架。
4.1 神经网络:把"看"交给投票委员会
核心知识点
还是从裂缝说起。想象你面前有一张裂缝照片,要让计算机判断"有没有裂缝"。传统做法(第三章讲过)是:人先设计特征——亮度低不低、边缘陡不陡、纹理乱不乱——再把特征喂给分类器。问题来了:裂缝的形态千变万化,一条受力裂缝和一条收缩裂缝长得完全不一样,一条 0.2 毫米的细丝和一道 5 毫米的宽缝更是两回事。人设计的那几条特征,总是不够用。
深度学习的回答很粗暴:特征我自己学,你只要给我照片和答案。
怎么学?先认识最小单元——神经元(neuron)。把它想象成一次投票:一群"小委员",每人手里一个数,代表它看到的证据(比如"这个像素暗不暗""周围的边缘多不多"),每个委员的发言权重不一样——有的委员懂行,权重大;有的委员瞎说,权重小。神经元把大家的意见加权求和,再过一个"闸门"(激活函数,activation function),决定这件事到底是"支持"还是"反对"。闸门是关键:它让神经元的输出不是死板的线性叠加,而是像人的判断一样,有个"不到火候不表态"的阈值。
一个神经元只能干一件小事,但把几百万个神经元组织成"层",事情就大了。输入层接收照片的像素,隐藏层(hidden layer)一层一层加工,输出层给出结论——比如"有裂缝的概率 97%(示意)"。层数越多,网络越"深",这就是"深度"学习名字的来历。
网络怎么"学会"?三个字:调权重。训练之前,所有权重都是随机数,网络说的话全是瞎猜。训练的过程,就是拿一张张带标签的照片反复"考试":网络答错了,就记下"这次错在哪儿",然后按功劳大小把权重往正确的方向挪一点。挪多少?由损失函数(loss function)说了算——它量化"这次答得有多离谱"。误差大,权重就多调;误差小,就少调。
专业解读
那"反向传播(backpropagation)"是怎么回事?很多人一听这四个字就头大。一句话就能讲明白:错误从后往前传,谁的责任大,谁改得多。
想想你改考试卷子。最后一题错了,你会倒着检查:是不是前面某一步算错了?顺着算,找不到源头;倒着查,一下就定位了。反向传播干的正是这件事:输出层的误差确定了,它像倒放一样,一层一层往回推,算出"每一层、每一个权重,对这次错误各负多少责任",然后按责任大小调整权重。整个过程配合梯度下降(gradient descent)——把它想成摸黑下山:站在山顶,往哪个方向迈一步能最快下坡,就迈哪一步;迈完再看,再迈。走一步算一步,不要求一步到位,但每一步都往下。几百万步之后,山脚下就到了——损失函数最小了,模型训练完了。
你可能要问:那这些数学,我都得会吗?不用。现在的主流框架(PyTorch、TensorFlow)把反向传播和梯度下降都封装好了,你写三行代码就调用它。但你必须理解"它在调权重"这件事,否则你连"这个模型为什么需要更多数据"都解释不了。第十二章动手实践时,你会亲手体会到:框架帮你算数学,但救不了你的数据。
这里要泼一盆冷水:"深度学习"听起来高深,本质是"大规模调参 + 大量数据"。 它不需要你懂微积分才能用,但它需要你懂三件事:数据够不够、任务对不对、结果怎么验。这三件事,本章后面会逐个讲。记住一个判断:谁跟你吹"神经网络是智能的",你问他一句"它训练数据哪来的、错的代价谁来担"——答不上来的,都是外行。
土木案例
案例一:裂缝检测的"改朝换代"——从手工特征到神经网络
2015 年前后,桥梁裂缝检测的主流做法还是"边缘检测算子 + 形态学处理":用 Sobel 算子找边缘,用连通域分析把边缘连成裂缝。这套方法在实验室的干净照片上效果不错,一到现场就露馅——光照不均、背景杂物、混凝土麻面,让边缘检测器满屏报警。不少团队早期做裂缝检测都踩过这个坑:算法在测试集上准确率 95%(教学示意),换成现场逆光照片,直接掉到 70% 出头(教学示意)。后来换成深度学习方法(先做目标检测再做分割),同样的现场数据,准确率稳定在 90% 以上(教学示意)。差别不在"更聪明",而在"特征是自己学的"——它自己学会了"什么是不重要的背景",而手工特征永远学不会。
案例二:把"水印"当裂缝——神经网络也会犯低级错误
别以为神经网络无所不能。有团队训练裂缝模型时,训练照片的右下角都带同一个相机水印。模型学出来的结果很"灵异":只要右下角有水印,它就判"有裂缝"。为什么?因为水印的亮度特征和裂缝太像,而数据里水印和裂缝总是同时出现,它就把水印当成了裂缝的"替身"。模型学的不是"裂缝",是"裂缝在你这批照片里的样子"。 这叫捷径学习(shortcut learning)——它专挑省力的规律抄。教训只有一条:数据里不能有"跟答案总是同时出现"的假线索。这正好呼应第二章讲的:数据质量,决定模型命运。
本节小结
神经网络 = 一群带权重的"投票委员";训练 = 用带标签的数据反复调权重;反向传播 + 梯度下降 = 摸黑下山,一步一步把错误最小化。深度学习不玄,它就是"让机器自己学特征"——但学成什么样,取决于你喂它什么。 数据喂错了,模型就学歪了;问题问错了,模型再准也没用。
课堂思考题
- 用自己的话解释"反向传播"为什么叫"反向":错误是怎么"传"的?
- 如果训练数据里所有"有裂缝"的照片都是俯拍、所有"无裂缝"的照片都是仰拍,模型会学到什么?现场用它时会出什么问题?
- 为什么说"深度学习不玄"?它本质上在调什么?框架替你省掉了哪一步?
4.2 卷积神经网络:天生为图像而生的结构
核心知识点
上一节那个"全连接"神经网络,处理图像有个致命伤。一张 1000×1000 的灰度照片,就是一百万个像素。如果输入层每个像素都连到隐藏层每个神经元,参数量会爆炸到几亿个——光存参数就要几百兆,训练它需要的数据和算力,土木实验室根本玩不起。更蠢的是:图像里"相邻像素才有关系"这个基本事实,全连接网络完全没用上——它把一万像素外的天空,跟眼前的裂缝当成一回事。
卷积神经网络(Convolutional Neural Network,CNN)就是为解决这两个问题来的。它靠两个看家本领:
本领一:卷积(convolution)——放大镜扫描。 想象一个 3×3 的小窗口(卷积核,kernel),在整张图上从左到右、从上到下,一格一格地滑过去。每停一个位置,窗口里的 9 个像素和核的 9 个权重做加权求和,得一个数,填到输出图的对应位置。这个过程就是"扫描"。同一个核扫遍全图——权重是共享的! 这就把"几亿个参数"砍成了"9 个参数"。而且,核扫到哪,就看哪,天然只关心局部——这正符合图像的特性:一个裂缝像素,只跟它周围几个像素有关,跟一万像素外的天空没关系。这叫局部性(locality)。
本领二:池化(pooling)——压缩摘要。 卷积之后的特征图还是很大。池化就是把特征图切成 2×2 的小块,每块只留一个代表值(比如最大值)。图瞬间缩成四分之一,但"哪里有裂缝"这个信息还在。压缩之后,计算量小了,而且对裂缝位置的小偏移不敏感了——裂缝往左挪两个像素,池化结果几乎不变。这给了网络平移不变性(translation invariance):裂缝出现在图左边还是右边,不影响判断。
光有这两个本领还不够。把卷积层一层层叠起来,奇迹出现了:浅层卷积核学的是边缘、线条;中层学的是纹理、角点;深层学的就是构件、裂缝、桥墩这些"大东西"。 这就是特征层级(feature hierarchy)——从像素到语义,一层比一层抽象。你不需要告诉它"先找边缘、再找裂缝",它自己就这么干了。
专业解读
为什么 CNN 天生适合图像?一句话:它把图像的两条铁律写进了结构里。 铁律一,局部相关——挨得近的像素才有关系,所以用局部窗口扫描;铁律二,位置无关——裂缝在图的哪个位置都是裂缝,所以共享权重、再配池化。人把这两条规律"焊"死在网络结构里,网络就不用再从头学了。这就是 CNN 比全连接网络省数据、省算力、还更准的根本原因。
再回答一个你肯定想问的问题:CNN 的雏形 1998 年就有了(LeNet),为什么 2012 年才火起来? 因为三个条件到齐了:足够多的标注数据(ImageNet 数据集 1400 万张图)、足够快的算力(GPU 并行计算)、足够深的网络结构(AlexNet 首次把深度做到 8 层,一举碾压所有传统方法)。深度学习不是凭空冒出来的,它是"数据 + 算力 + 算法"三股绳拧出来的。 这个判断,你后面读任何 AI 新闻都用得上——谁家的模型厉害了,先看他家数据和算力什么水平。
再补一句深度的事。层数越深,学到的特征越抽象、越强大,但网络也越难训练——误差传回浅层时已经"衰减"得没力气了。2016 年 ResNet 用一招残差连接解决了它:让每一层除了学新东西,还允许"原样跳过",等于给信息开了条高速公路。从此深度随便加到一百多层。这条历史你不用背,但记住"越深越难练,工程上够用就行"——图像识别用 EfficientNet 这类十几层的预训练网络,足够了。
土木案例
案例一:隧道掌子面岩性识别——少量照片怎么撑起一个实用系统
隧道掘进前,掌子面(开挖面)的岩性判断决定支护方案:岩性差,支护要加密;岩性好,可以放宽。传统靠地质工程师现场目测,经验成分大、标准不统一,换个人结论可能就变了。某研究团队与某设计院合作,采集了数千张掌子面岩石照片(教学示意),用预训练卷积神经网络做迁移学习(教学示意),准确率达到约 90% 的量级(教学示意),并把模型以文件形式交付现场——现场工程师不需要懂深度学习,拿一张照片进去,出一个岩性类别出来。
注意两个关键词:预训练模型(不是从零训练)和迁移学习(transfer learning)。几千张照片(教学示意)对深度学习来说少得可怜,之所以能到约 90%(教学示意),全靠"站在巨人肩膀上"——先在千万张图上学过通用特征的模型,再拿工地照片"补课"。这一招怎么用,4.4 节专门讲。还有一个细节值得琢磨:这个成绩是在接近现场的工况条件下取得的,不是实验室理想条件——这正是它值得写进书里的原因(教学示意)。
案例二:PZT-EMI 监测——CNN 不只看照片
CNN 只能看照片吗?不。任何"排列成网格、局部有关联"的数据,它都能看。比如压电阻抗(Electro-Mechanical Impedance,EMI)监测:把压电陶瓷片(PZT)贴在钢结构上,测它的阻抗谱——焊接质量的变化,会让阻抗谱出现细微的"指纹"变化。阻抗谱本来是一条曲线,但把它重排成二维图像喂给 CNN,识别焊接缺陷的效果比传统统计特征好得多。这给你一个启发:CNN 的选择标准不是"是不是照片",而是"数据里有没有局部结构"。 振动时程、频谱图、阻抗谱,都可以"翻译"成图像交给 CNN——这就是第二章说的"数据类型决定技术路线"的活例子。
本节小结
CNN 靠两个本领横扫图像:卷积(放大镜扫描,权重共享,抓局部)和池化(压缩摘要,容忍偏移)。特征层级让它从线条一路学到构件。CNN 之所以适合图像,不是运气,是因为它把图像的两条铁律焊进了结构里。 而它的应用边界远超"照片"——任何有局部结构的数据,都可以请它出山。
课堂思考题
- 用"放大镜"和"压缩摘要"两个比喻,向同学解释卷积和池化分别干什么。
- 为什么权重共享能把参数量从"亿"砍到"个位数"?参数少了,对训练数据量意味着什么?
- 举一个土木场景中"不是照片但可以当图像用"的数据(提示:频谱、时程、阻抗谱)。
4.3 三大任务:分类、检测与分割
核心知识点
现在网络有了,该让它干活了。图像领域的活儿,翻来覆去就是三大件——分类(classification)、检测(object detection)、分割(segmentation)。别小看这三分法,工程问题翻译得对不对,全看你能不能分清这三件事。第一章教你的"翻译三步法",到了图像这一行,翻译的结果基本就是这三选一。
拿同一张裂缝照片说事,三种任务三种输出:
| 任务 | 英文 | 输出是什么 | 回答的问题 | 土木里的典型用途 |
|---|---|---|---|---|
| 分类 | Classification | 整张图一个标签 | 这张图里有没有裂缝? | 巡检照片初筛:有没有病害 |
| 检测 | Detection | 一个或多个边界框 + 类别 | 裂缝在哪?有几处? | 定位病害位置,框出范围 |
| 分割 | Segmentation | 逐像素的类别归属 | 哪些像素是裂缝? | 量裂缝宽度、面积,评估严重程度 |
分类最简单:看一眼全图,给一个结论。检测进了一步:不仅要"有没有",还要"在哪儿"——用一个矩形框把裂缝框出来,并标上类别。分割最精细:它把图像里每一个像素都问一遍"你属于谁?裂缝还是背景?"——输出的是一张"涂色图",裂缝像素被涂成红色,背景保持原样。
检测和分割的区别,是本章最重要的一对概念,务必记牢:检测给的是"框",告诉你裂缝在哪个区域、大概多大范围;分割给的是"像素级轮廓",能精确告诉你裂缝的宽度、形状、长度。框是粗定位,像素是精测量。 工程师要算裂缝宽度——评估严重程度的关键指标——框给不了,必须分割。宽 0.2 毫米和宽 5 毫米,维修策略完全不同,这个数字必须来自分割。
专业解读
你可能会问:为什么不直接上最精细的分割,一步到位?因为贵。贵在三个地方:标注贵——给一张图分类,点一下鼠标就行;画检测框,每处病害框一下;做分割,要把裂缝的每一条边都描出来,一张复杂的裂缝图描一小时很正常。回想第二章讲的数据标注成本——分割是标注成本最高的任务,没有之一。算力贵——逐像素预测的模型(比如 U-Net 这类分割网络)比分类网络大得多、慢得多。数据贵——标注越精细,你负担得起的样本量就越小,模型越难训。
所以工程上的正确姿势是分层递进:用便宜的分类任务把一万张巡检照片筛成三百张"疑似病害",再对三百张做检测定位,最后只对几十张关键照片做分割测量。先粗后细,让每一分标注成本都花在刀刃上。 这是工程师思维和"算法爱好者"思维最大的区别:算法爱好者追求最先进的模型,工程师追求最划算的流程。
再提醒一个坑:检测模型的边界框经常"打架"——一条裂缝断断续续,模型会给出七八个互相重叠的框,你拿它数"有几条裂缝",数出来的数字没法信。检测说"大致在这",分割才说"精确是什么"。 汇报给甲方之前,先想清楚你的数字是从哪类任务来的。另外,评估视觉模型别只看一个准确率,要看第三章讲的混淆矩阵:把背景当裂缝是误报(代价小),把裂缝当背景是漏检(代价大)——两类错误,权重完全不同。
土木案例
案例一:主案例那座桥的巡检照片流水线
还记得第一章那座服役 25 年的桥吗?这里的数字均为教学示意:无人机一次巡检产生约 8000 张照片。如果全部做分割标注,成本高到离谱;如果全部只做分类,又拿不到裂缝宽度。这套方案采用三级流水线:第一级,分类网络秒级初筛,8000 张里筛出 600 张疑似病害;第二级,检测网络框出每张图里的病害位置,滤掉误报,剩 150 张;第三级,分割网络只对这 150 张做逐像素测量,输出裂缝宽度、长度,直接对接"该不该修"的评估。同一个问题,三类任务,三级成本。 这就是第九章智能监测与运维要展开的主线,你先在这里把任务的"分工"记住。
案例二:数裂缝数数——检测模型的反面教材
某检测团队向业主汇报:"模型识别出大桥 37 处裂缝(示意)。"业主工程师拿着报告去现场复核,数出来 21 处(示意)。差在哪?重叠框、断裂框、把两道相邻裂缝框成一个框。检测模型的输出不是"数",是"建议位置"。 正确的做法:检测结果只用来"引导人去复核",精确数量必须由分割或人工确认给出。谁把检测框的数量直接写进报告,谁就是在给自己埋雷——因为模型输出的每个数字,最后都要有工程师签字负责。
本节小结
三大任务回答三个递进的问题:有没有(分类)、在哪(检测)、精确到什么程度(分割)。检测给框,分割给像素,工程师要"量"就必须分割。 工程上按"先粗后细"分层使用,把标注和算力成本花在最关键的环节。记住:先想清楚要什么输出,再选任务——任务选错,模型再准也没用。
课堂思考题
- 业主问你要"裂缝最大宽度",你应该用哪类任务?为什么检测框不行?
- 设计一条"桥梁墩柱病害巡检"的三级流水线,说明每级用什么任务、省下什么成本。
- 检测模型的"重叠框"问题,在什么工程场景下会造成严重后果?怎么规避?
4.4 数据从哪来:多少照片才够训练一个能用的模型
核心知识点
第二章说数据是 AI 的燃料,这一节回答一个更具体的问题:到底要多少燃料? 直说结论,分三档:
| 训练方式 | 大概需要多少数据 | 适用条件 |
|---|---|---|
| 从零训练 | 每类几千张,总图上万张 | 场景太特殊,找不到预训练模型 |
| 迁移学习 | 每类几百张就能起步 | 有同领域的预训练模型(绝大多数土木场景) |
| 直接推理 | 几十张做验证就够 | 现成模型与你场景高度吻合 |
为什么差距这么大?因为"特征"是可以继承的。迁移学习(transfer learning)的道理一句话:让网络先在别人的大工地上当学徒——比如在 ImageNet 的 1400 万张图上学会"看边缘、看纹理、看形状"这些通用技能——再回你的工地干具体活,识别你的裂缝、你的岩性、你的构件。学徒期学的通用技能不白费,你只需要花数据让它在"你的活"上专精。站在巨人肩膀上,是中小团队玩深度学习的唯一理智姿势。 不少中小团队的掌子面识别、裂缝检测实践,走的全是这条路。
另一个省数据的利器是数据增强(data augmentation):把一张照片变成一群"分身"。旋转几度、左右翻转、裁剪一角、调亮调暗、加一点噪声——物理含义没变(还是那条裂缝),但像素完全不同。为什么要这么做?因为你想让模型学的是"裂缝",不是"裂缝的某一种具体拍法"。增强的本质,是你把对"不变性"的工程知识白送给模型:裂缝倒过来还是裂缝(旋转),镜子里的裂缝还是裂缝(翻转),阴天拍的裂缝还是裂缝(亮度)。第二章讲过数据标注有多贵,增强就是最便宜的"造数据"方式——不花一分钱标注费,一分钱相机钱都不用加。
专业解读
为什么深度学习是"数据饥渴"的?回到 4.1 的投票委员会:几百万个权重,每个都要靠数据来调。数据就是调权重的"考卷",卷子太少,权重就调不准——有的委员你根本没见过他发言,怎么知道该给他多大权?这正好呼应第三章讲的过拟合(overfitting):模型把训练集背得滚瓜烂熟,换一批照片就露馅。数据增强本质上是给模型加"防背题"措施——同一道题出几十个变体,它想背也背不成。
你还要警惕一个比过拟合更隐蔽的坑:数据泄漏(data leakage)。名字吓人,意思很朴素——训练和测试的数据"串"了:训练集里有 A 桥的照片,测试集里也放 A 桥的照片,模型"见过"答案,测试成绩虚高。第三章教你的"训练/验证/测试划分",在这里的工程版本是:按"对象"划分,不按"照片"划分。 同一座桥、同一面墙、同一个构件的所有照片,必须整组进训练或整组进测试,不能拆散。否则你汇报的 95%(教学示意),现场一用就变 70%(教学示意)。这不是技术问题,是数据管理问题——工程师的纪律问题。
再补一个思路:半监督与主动学习。标注贵,那就只标最有价值的那几张:先用少量标注训练一个"差不多"的模型,让模型对未标注数据打分——它最没把握的那几张,拿去给人标;它很有把握的,直接当成"伪标签"用。这样几百张人工标注,能撑起几千张的训练量。这个方法土木项目用得起,也值得用。
土木案例
案例一:几千张岩石图是怎么撑起约 90% 准确率的(教学示意)
回到 4.2 的隧道掌子面案例。几千张图(教学示意),摊到每类岩性只有几百张,从零训练必死。该团队的做法是"三板斧":第一板斧,预训练卷积神经网络打底(教学示意)——站在巨人肩膀上;第二板斧,针对性数据增强——旋转、翻转、色彩抖动,模拟不同灯光和拍摄角度,因为现场相机的角度确实五花八门;第三板斧,严格的按开挖循环分组划分数据,确保同一个循环的照片不跨训练集和测试集——防泄漏。三板斧下来,约 90% 的准确率(教学示意)是"在工地条件下"的成绩,不是实验室成绩。数据少不可怕,怕的是数据脏、数据串、方法蠢。
案例二:数据泄漏——一个典型的翻车现场
某项目做裂缝识别(以下数字均为教学示意),工程师把一条路 500 张照片按 7:3 随机切分训练集和测试集。训练时准确率 96%,现场验收时惨不忍睹。排查发现:同一面挡土墙的 30 张连拍照片,18 张进了训练集,12 张进了测试集——测试集里的"新照片",模型早就通过那 18 张"同款"学会了。这就是典型的泄漏。重做划分(按墙、按路段分组)之后,训练准确率降到 88%,但现场表现反而真实稳定了。漂亮的数字可能是假的,真实的数字才是能交付的。 这个故事值得你记一辈子:凡是现场和实验室差得很远的项目,第一件事就是查泄漏。
本节小结
多少数据够用,取决于你怎么用:从零训练要上万张,迁移学习几百张起步,增强和防泄漏是两件免费的"加速器"。站在巨人肩膀上(迁移学习)+ 一菜多做(数据增强)+ 分组防泄漏(数据纪律),是中小团队做视觉项目的三大基本功。 数据永远是稀缺资源,但方法能决定同样一批数据值多少钱。
课堂思考题
- 老板说"我们的照片只有 800 张,做不了深度学习",你如何反驳?至少给出两条出路。
- 为什么"按照片随机划分"会泄漏?请构造一个土木场景说明危害。
- 数据增强会不会引入假数据?旋转 90 度对"裂缝"合理,对"文字标识"合理吗?为什么?
4.5 从二维到三维:点云与三维感知入门
核心知识点
照片是二维的,工程世界是三维的。桥墩是立体的,隧道是立体的,基坑是立体的。二维照片只能告诉你"这儿有个裂缝",三维数据才能告诉你"这个裂缝在空间的什么位置、构件怎么变形"。 本章的最后一公里,就是让 AI 学会看三维世界。而三维世界给 AI 的"照片",主要是一样东西——点云(point cloud)。
点云是什么?想象把三维空间撒上一把"数字化芝麻",每颗芝麻记录一个点的坐标(X、Y、Z),有的还带颜色和反射强度。成千上万个点合在一起,就"描"出了一个三维物体的轮廓。点云就是三维世界的照片,只不过像素换成了点。 它从哪来?两个主流来源:激光雷达(LiDAR)——像一把旋转的尺子,用激光测距,唰唰扫一遍,几秒扫出几百万个点,精度到厘米甚至毫米;摄影测量(photogrammetry)——拿普通相机从各个角度拍几十张照片,用算法算出每一点的三维坐标,便宜,但慢,精度也差一截。
点云数据有个让神经网络头疼的特性:它不是整齐的网格,而是一堆"乱序的点"——同一个物体,点的排列顺序怎么打乱都行,代表的还是同一个物体。图像有天然的"上下左右",点云没有。2017 年提出的 PointNet 给出了一个优雅的答案:把点云当成"一袋点"来学——不关心点的顺序,用对称的聚合操作把整个点集压成一个全局特征。这袋点里,有裂缝的点群、有岩性变化的点群、有变形异常的点群,学出来就能分类、能分割、能检测。原理不必深究,记住"一袋点"这个直觉就够了。
专业解读
你可能觉得三维感知离本科还远。我劝你换个角度想:三维是土木 AI 的"下一个主战场"。 理由有三。第一,成本降下来了——手持激光扫描仪几年前卖几十万,现在几万块;无人机倾斜摄影更是白菜价。第二,政策在推——住建部推动智能建造,BIM 模型要"实模一致",靠的就是三维扫描去校核"建出来的跟设计的是不是一回事",这是刚需。第三,二维的天花板到了——裂缝宽度靠照片量到毫米级就到头了,但构件变形、净空测量、掌子面轮廓,必须三维才能说清。
那为什么三维感知还没全面铺开?因为难,三个坎。数据坎——点云标注比图像标注贵得多,在稠密点云里"描出裂缝",比在照片里描难十倍;算力坎——百万级点云比百万像素图重得多;噪声坎——现场扫描总有遮挡、反光、飞点(凭空冒出来的错误点),数据预处理(去噪、配准)常常比建模本身还费劲。所以工程落地的次序是:二维视觉先用起来,三维感知在关键场景(隧道、桥梁净空、大坝变形)先行试点。 这是实话,也是路线图——别被"全三维、全自动"的宣传带偏了节奏。
土木案例
案例一:隧道掌子面的"三维化"
前文那个掌子面岩性识别案例(4.2 节),早期只有照片,二维。但隧道工程真正关心的是"前方围岩好不好"——这需要把掌子面轮廓、岩层产状和掘进里程对应起来。于是该团队把采集链路升级为"照片 + 点云"双通道:激光扫描仪拍出掌子面三维轮廓,相机拍出纹理颜色,两者融合之后,岩性识别从"看一张照片"变成"看一块三维岩体"。同样的 AI,多了一维信息,判断依据就硬了一截。 这也是相关研究下一步的方向——二维打底,三维升级。这不是哪一家独有的路,是整个土木视觉的通用演进路径。
案例二:桥梁净空与变形——三维感知的"正规军"场景
桥梁下方的净空——桥下通行的船只、车辆的高度余量——是安全红线。传统做法:人工拿测距仪,逐点测,一个断面测半天。现在用激光扫描仪对桥底扫一遍,点云一生成,净空断面想切几条切几条,还能跟上一季度的扫描结果做差值对比(两次点云配准后的差集),毫米级的沉降、挠度变化直接现形。这不是"锦上添花",是"人干不了或干不起"的活——这才是 AI 该上的地方。反过来提醒你:如果哪个项目把三维扫描用在"人本来一小时能干完"的活上,那是为了炫技,不是解决问题。判断标准只有一条:它是不是"人干不了或干不起"的活。
本节小结
点云是三维世界的照片,来自激光雷达和摄影测量;它没有"顺序",所以 PointNet 把它当"一袋点"来学。三维感知是土木 AI 的下一个主战场,但数据贵、算力重、噪声多,落地次序应是"二维先行、三维试点"。 判断一个三维项目该不该上,标准只有一条:是不是"人干不了或干不起"的活。
课堂思考题
- 点云和照片的差别,用"摸黑摸形状"的类比怎么解释?为什么点云没有"上下左右"?
- 净空测量、基坑变形监测、掌子面轮廓三个场景,哪个最该先上三维感知?为什么?
- PointNet 把点云当"一袋点",这个设计解决了点云的什么本质困难?
4.6 让物理当裁判:PINN 与"力学作为校验标尺"
核心知识点
前五节讲的全是"让数据说话"。这一节要讲一件反过来的事:让物理方程也说话。 你有没有想过一个问题:神经网络学裂缝,靠的是几千张照片;可如果一个场景连照片都拍不到呢?比如,一个还没开挖的岩体,它的应力状态谁也没见过——数据没有,模型怎么学?再比如,结构上只装了十几个传感器,测点之间的空白,谁来补?
物理信息神经网络(Physics-Informed Neural Network,PINN)的回答是:没有数据,就请物理方程来当老师。
普通神经网络训练时,唯一的标准答案是数据标签(比如"这张是裂缝")。PINN 在损失函数里多加了一项:物理方程(偏微分方程)的残差。什么意思?神经网络输出的解(比如位移场),代回弹性力学方程,如果方程不成立(残差很大),说明这个解"不符合物理",损失就大,训练时就往符合物理的方向调。模型一边听数据的话,一边听力学方程的话,两边都不得罪,最后解出来一个既拟合观测、又满足力学的答案。
PINN 真正擅长的场景有两个。一是正问题:已知材料参数和边界条件,用物理方程直接求场——位移场、温度场、渗流场。数据只有稀疏的几个测点,方程负责把"测点之间的空白"补成物理上自洽的分布。二是反问题:更妙——已知少量观测数据(比如几个测点的位移),把材料参数(弹性模量、渗透系数)也当成"待学习的变量",让网络同时拟合数据和方程,反推出参数。传统反演方法需要精心设计,PINN 把反演变成了"多训练一项参数"。
专业解读
这一节的位置是刻意安排的。还记得第一章 1.4 节那句话吗?"力学从计算主体,变为校验标尺。" PINN 就是这句话最具体的注脚:神经网络负责"猜",力学方程负责"验"。猜得离谱,方程立刻打回票;猜得靠谱,方程点头放行。数据驱动的盲区和物理规律的刚性,在 PINN 里不是对立的,是合伙的。 这也是全书反复强调的一个态度:AI 不是来取代力学的,是来给力学打工、又请力学把关的。
那是不是以后所有问题都能用 PINN 解决?别激动,四个坎摆在你面前。第一,方程得写得出来——裂纹扩展、混凝土徐变这类问题,本构关系本身就说不清,PINN 没有方程可依。第二,方程得算得动——每训练一步都要算一次方程残差,比普通网络慢一个量级。第三,多尺度问题难——方程在宏观尺度成立,裂缝在细观尺度演化,一个网络同时伺候两个尺度,吃力。第四,它依然是"数值方法"——精度、收敛性、边界处理,一样不能少,不是"加了物理就万能"。
给你一个务实的判断标准:数据又多又全,用普通深度学习;数据稀缺但物理规律明确,才考虑 PINN。 不是"PINN 更高级",是"问题缺什么,就用什么补"。对土木而言,传感器永远是稀疏的——谁也不会在结构上装一万个应变计——而力学规律是现成的。这正是 PINN 在土木的用武之地,也是它出现在本章的最后一个理由。
土木案例
案例一:由点及面的位移场——PINN 解正问题
某大坝表面布设了十几个位移测点,工程师想知道坝体内部的变形分布。测点之间怎么办?传统做法靠插值或有限元建模——插值没有物理意义,有限元需要精细的网格和材料参数。PINN 的做法:把测点位移当数据损失,把弹性力学方程当物理损失,一次训练直接给出"全坝体物理自洽的位移场",测点之间的空白由方程"补"得合情合理。数据只管十几个点,方程管整个坝。 这就是"让物理当裁判"的威力——你手头的数据越稀疏,这个裁判越值钱。
案例二:反演材料参数——PINN 解反问题
更实用的是反问题。隧道开挖时,围岩的弹性模量是未知数——它直接决定支护方案。如果知道几个测点的变形(现场很容易测),就可以让 PINN 把"弹性模量"当作一个待学习的参数,训练收敛后,模量值反推出来了,同时位移场也自洽。这就是"用监测数据反演材料参数"。 在 PZT-EMI 一类监测研究中,也有团队走过类似的路:先让网络学信号特征,再用物理关系把"特征变化"翻译成"损伤程度"。物理是桥梁,把 AI 的输出翻译成工程师听得懂的量——这正是第一章说的,AI 给建议,工程师做决定。
反面提醒:也见过 PINN 翻车的案例——有人把混凝土的复杂本构硬塞进 PINN,方程本身就不准,结果"物理损失"教出来的全是错的。PINN 的前提是方程可信;方程不可信时,物理裁判就变成了物理帮凶。 用之前,先问一句:这条物理规律,在这个场景里到底成立不成立?它适用的尺度、材料、荷载范围,覆盖不覆盖你的问题?
本节小结
PINN = 神经网络 + 物理方程,让数据和力学合伙解题;正问题补空白,反问题反参数。它呼应了全书最重要的观点之一:力学不是被 AI 取代,而是从"计算主体"变成"校验标尺"。 但 PINN 有四个坎——方程要写得出来、算得动、尺度要对、数值要稳——判断标准一句话:数据稀缺、规律明确,才值得用。
课堂思考题
- 用"学生 + 力学教授"的比喻,解释 PINN 的两项损失分别是什么。
- 传感器很稀疏的场景,为什么天然适合 PINN?请举一个土木例子。
- 如果某场景的"物理规律"本身有争议(比如混凝土长期徐变),该不该用 PINN?为什么?
本章小结
- 深度学习 = 让机器自己学特征:神经元是带权重的投票委员,训练是反复调权重,反向传播 + 梯度下降是"摸黑下山"(4.1)。
- CNN 天生适合图像:卷积(放大镜扫描、权重共享)抓局部,池化(压缩摘要)容忍偏移,特征层级从线条学到构件;任何有局部结构的数据都可以请它出山(4.2)。
- 三大任务回答三个递进问题:分类 = 有没有,检测 = 在哪(框),分割 = 精确到什么程度(像素);工程上"先粗后细"分层用,成本花在刀刃上(4.3)。
- 数据多少取决于方法:从零训练上万张,迁移学习几百张起步;数据增强是免费造数据,按对象分组划分防泄漏,半监督与主动学习锦上添花(4.4)。
- 三维感知是下一个主战场:点云是三维世界的照片,PointNet 把它当"一袋点"学;数据贵、算力重、噪声多,二维先行、三维试点(4.5)。
- PINN 让物理当裁判:数据稀缺、规律明确时,用方程残差补数据空白、反演材料参数;力学从"计算主体"变为"校验标尺"(4.6)。
- 贯穿全章的判断:任务选型、数据纪律、物理约束,三者合起来才叫"会用深度学习"——会用,比会调参数重要得多。
思考题
★ 入门级
- 用"投票委员会"的比喻,向同学讲清神经元、权重、激活函数各是什么。
- 卷积和池化各解决什么问题?各用一句话回答。
- 分类、检测、分割各输出什么?各举一个土木用途。
- 迁移学习为什么能省数据?它"继承"的是什么?
★★ 应用级
- 设计隧道衬砌裂缝的"三级流水线",每级用什么任务、成本如何递增。
- 你的团队有 1,200 张基坑照片,要识别支撑变形。请写出完整数据方案:增强怎么做、数据怎么划分、怎么防泄漏。
- 为什么说"检测框的数量不能直接写进检测报告"?正确的做法是什么?
- 对比普通深度学习与 PINN 的适用场景,给出"数据多但物理不明"和"数据少但物理明确"各自的推荐路线。
★★★ 挑战级
- 无人机巡检拍回的 8000 张照片里,有大量"非病害"干扰(水渍、青苔、模板痕迹)。请用本章知识设计一个方案,说明每类任务在哪一级用、误报怎么逐级滤除。
- 讨论题:有人说"PINN 没有数据也能学",这句话对吗?错在哪里?在什么条件下它才能真正可靠?
- 综合题:为"桥梁支座位移监测"设计一个深度学习方案(CNN 或 PINN 路线任选),要求说明数据来源、任务类型、评估指标、边界条件,并说明换一种路线会损失什么。
拓展阅读
- 3Blue1Brown《神经网络》系列视频——反向传播与梯度下降的可视化讲解,强烈推荐先看视频再读书。
- 周志华《机器学习》第 5 章——神经网络的形式化定义与经典算法。
- [美]伊恩·古德费洛等《深度学习》("花书")第 9 章——卷积网络的理论细节。
- PyTorch 官方教程(pytorch.org/tutorials)——用代码动手搭一个 CNN,比任何讲解都直观;第十二章会用到。
- 住建部《关于推动智能建造与建筑工业化协同发展的指导意见》——了解政策对视觉检测、三维感知的引导方向。
参考文献
- LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.
- Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]. NeurIPS, 2012.
- He K, Zhang X, Ren S, Sun J. Deep residual learning for image recognition[C]. CVPR, 2016.
- Redmon J, Divvala S, Girshick R, Farhadi A. You only look once: unified, real-time object detection[C]. CVPR, 2016.
- Ronneberger O, Fischer P, Brox T. U-Net: convolutional networks for biomedical image segmentation[C]. MICCAI, 2015.
- Qi C R, Su H, Mo K, Guibas L J. PointNet: deep learning on point sets for 3D classification and segmentation[C]. CVPR, 2017.
- Raissi M, Perdikaris P, Karniadakis G E. Physics-informed neural networks: a deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations[J]. Journal of Computational Physics, 2019, 378: 686-707.
- 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016.
- Goodfellow I, Bengio Y, Courville A. Deep Learning[M]. Cambridge: MIT Press, 2016.
- Dorafshan S, Thomas R J, Maguire M. SDNET2018: an annotated image dataset for non-contact concrete crack detection using deep convolutional neural networks[J]. Data in Brief, 2018, 21: 1664-1668.