数字散斑相关法(DIC)原理与实操:从散斑制备到全场应变测量
2026/9/2 18:37:42 网站建设 项目流程

简介:面向光学测量、实验力学与图像处理学习者的数字散斑相关法(DIC)资源包,聚焦散斑图像相关性分析、亚像素级位移测量与二次曲面拟合等核心环节。压缩包共10个文件,以jpg图像和png模拟散斑图为主,含多张x/y方向位移前后的散斑图像,并配套subpixel.m、SANBAN.m两个MATLAB脚本,可直接运行观察相关函数峰值定位与亚像素匹配过程。包体仅142KB,轻量便于随下随用。已有784人学习下载,适合正在开展材料形变、结构应变或生物组织位移等课题的初学者搭建基础实验流程。通过图像与代码对照,可直观理解互相关计算、峰值拟合与位移场提取,也可为后续自编DIC算法或二次开发提供起步模板。 如果你去参加过任何一场材料力学、实验力学或者结构监测相关的会议,大概率会听到“数字散斑相关法”这个术语。我第一次听到时也被镇住了,以为是某种高不可攀的光学黑科技。但真正上手做完一套完整的拉伸实验后我发现,它的核心思想简单到让人意外:给材料表面做出高对比度的随机斑点图案,然后用相机连续拍照,再通过追踪斑点图案在图像序列中的移动,反算出整个表面的位移场和应变场。就这么一条逻辑链,把传统应变片“单点测量、只能测一个地方”的限制彻底掀翻了。

这套技术能解决什么问题?凡是想知道材料表面“哪里变形了、变形了多少、怎么分布的”,它几乎都能派上用场。金属拉伸、混凝土开裂、橡胶大变形、复合材料层间损伤、芯片封装后的热翘曲,只要你能给测试面做出合格的散斑图案,用一台相机就能拿到全场变形数据。这篇文章适合谁?在实验室里捣鼓力学测试的研究生、做产品验证和失效分析的工程师、以及想给结构健康监测换一套技术方案的同行,认真看完应该都能少走不少弯路。

1. 数字散斑相关法到底是什么:从一个拉伸实验说起

1.1 DIC能测什么,与传统测量手段的本质区别

先抛开教科书定义,用一场最常见的金属狗骨拉伸实验来说明。以前我们测拉伸试样的变形,最标准的做法是贴应变片或者装引伸计。应变片只能告诉你贴在某个点位置的平均应变,引伸计只能给出标距范围内的总伸长量。这两个方案都只能提供“点”或“段”的数据,试件中间发生了颈缩、出现了局部大变形、裂纹从哪里萌生,这些信息几乎是盲区。

数字散斑相关法(Digital Image Correlation,简称DIC)的思路完全不同。它把试样表面看成一块布满了随机纹理的棋盘,通过相机记录“棋盘”在加载过程中的每一步移动,再用相关性算法去匹配变形前后的图像,最终算出每一个像素位置上的位移分量。有了全场的位移场,应变场自然可以通过数值微分求出来。这样不仅能看到拉伸过程中均匀变形段的应变,还能把颈缩区的应变集中、裂纹尖端的应变奇异性全部呈现出来,这是传统手段很难做到的。

下表列出了这几种测量方式的直观对比:

测量手段空间覆盖是否接触量程关键局限
应变片单点接触一般3%~10%只能测一个点,无法测梯度
引伸计标距范围平均接触只能给总伸长,没有分布
DIC全场光学测量整个视野平面非接触可设计,大变形时换镜头和散斑即可需要光学通路和散斑制备

DIC还有一个天然优势是非接触。对于柔软材料、高温环境、微尺度构件或者正在通电运行的试件,贴应变片本身就会引入附加刚度和干扰,而光学测量完全无扰。这也是为什么这几年DIC在软材料力学、高低温材料测试、微电子封装可靠性领域越来越普及。

1.2 这套技术的适用场景,选型前先想清楚

DIC虽然好用,但不是万能的。根据我接触过的项目经验,它最适合这几类情况:

需要全场应变分布的场景。比如研究缺口、裂纹、应力集中,DIC能直观给出应变云图,帮你在哪里开裂纹一目了然。

大变形或者超弹性材料。橡胶、凝胶、软生物组织这一类,应变几十甚至百分之百以上,应变片根本贴不住,引伸计刀口也可能打滑,DIC只要散斑跟着材料一起变形就行。

瞬态或动态过程。配合高速相机,DIC可以测量冲击、爆炸、碰撞过程中的瞬态变形场。这种情况下其他接触式传感器几乎无法安装,或者装上去也会因为惯性响应不过来。

不适合用DIC的情况也有:被测表面完全不可接近、没有光学通路,或者环境里灰尘烟雾太多、光路被遮挡,这时候老老实实选接触式传感器反而更好。还有长期野外无人值守的监测场景,相机的稳定性、光源寿命、环境干扰都会成为难题,这类场景目前还是振弦式或光纤传感器的主场。

2. 核心原理拆解:怎么从两张图算出全场应变

2.1 散斑是“码”,相机是“读码器”

要理解DIC,先要理解散斑的角色。散斑图案在DIC里相当于一种人为施加的表面编码,它的作用是给材料表面每个微小区域一个唯一的“身份标识”。随机分布的斑点让图像上任选一个小窗口,都能在另一张图里找到唯一对应的位置。

这个思路和手机扫码特别像。二维码之所以能被识别,是因为黑白方块图案具备唯一的空间分布特征;散斑也是同样的道理,只是它的“码”不是方形模块,而是随机颗粒状的灰度花纹。对散斑图案的基本要求是:高对比度、随机均匀、没有周期重复。如果斑点图案有周期性,比如排列整齐的条纹,匹配时就很容易出现“到处都像”的歧义,算法会直接算飞掉。

DIC里的核心概念是子集(subset),也叫计算窗口。它的逻辑是这样:在变形前的参考图像上,取一个以目标点为中心、通常15×15到31×31像素大小的方形区域,然后在变形后的图像中,按照某种搜索策略,寻找与这个子集灰度分布最相似的位置。一旦找到最优匹配位置,参考子集中心点的位移就确定了。对整个图像网格逐点做一遍这个操作,就能得到全场位移。

2.2 相关算法:两张图之间如何计算相似度

匹配的正确与否,直接取决于相似度评价函数。最常见的评价指标是零均值归一化互相关(ZNSSD或ZNCC),它的好处是对图像亮度的整体偏移和增益变化不敏感。实验过程中环境光扰动、相机自动增益调整,都会让两张图的灰度整体平移或缩放,如果直接比较原始灰度,匹配结果很容易漂移。而零均值归一化相当于把灰度变化中的“直流偏置”和“增益系数”先消掉,只比较纹理形状本身。

ZNSSD的计算公式展开写是:

C(p) = Σ [ (f(xi) - fm) / Δf - (g(xi') - gm) / Δg ]^2

其中fm和gm是参考子集和变形子集的平均灰度,Δf和Δg是各自的标准差。C越接近0越好,对应最相似的匹配位置。实际工程软件里一般用的是它的等价形式ZNCC,也就是互相关系数,取最大值时对应的位置就是最优匹配点。

为什么要费劲做归一化?我实测过,在普通日光灯环境下,人眼看不出明显变化的照明波动,反映在图像灰度上可能就有几十个灰度级的漂移。如果不做归一化,相关系数的峰值会被这些低空间频率的亮度起伏污染,位移测量会出现系统偏差。

2.3 亚像素精度是怎么来的

像素是图像的基本单位,如果只做整数像素搜索,DIC测量的位移分辨率就只有一个像素,这对工程测量来说远远不够。比如用2000像素宽的画面拍50mm宽的试样,一个像素对应的物理尺寸是25μm,只能分辨到25μm的位移,刚性足够但应变精度完全不够看。要测量微应变级别,位移分辨率必须到0.01像素甚至更高。

亚像素的实现思路是插值。在整像素搜索找到大致位置后,算法会在匹配点附近用双三次样条或其他高阶插值方法对灰度场进行重建,然后在连续空间中搜索相关系数的极值位置。这个极值对应的小数像素偏移量就是亚像素位移。另一种思路是对相关系数矩阵本身做插值,虽然省去灰度插值的计算量,但一般精度不如前者,主流商用软件多用灰度场插值或形函数迭代的方案。

要拿到可靠的亚像素结果,前提是散斑图案足够清晰。一个经验参考是:单个斑点直径占3~5个像素是最优的。斑点太小,图像上就是一个孤立的亮像素点,匹配容易跳变;斑点太大,子集窗口内缺乏纹理起伏,相关系数峰形钝,亚像素精度会断崖式下降。

3. 实操全流程:从散斑制备到数据导出

3.1 散斑制备:材料选型与喷涂要点

散斑制备的质量几乎决定实验成败。这里没有捷径,每一步都有讲究。

第一步是表面处理。金属试样出厂表面往往有油污、氧化皮和反光,必须先用丙酮或酒精擦干净,然后喷一层哑光白漆作为底漆。底漆的作用是统一底色、消除金属反光。注意一定要选哑光漆,光面漆在灯光下会形成镜面反射,局部区域过曝,散斑直接白掉。喷白色底漆时不用太厚,均匀覆盖即可,如果漆膜太厚会影响试样本身的力学性能。

第二步是喷黑色斑点。喷嘴离试样表面保持30~50cm,用点喷的方式短促按压喷头,让漆滴落在表面形成随机颗粒分布。这里有一个关键技巧:宁可多喷几次,每次薄薄地喷,也不要一次喷太厚。喷太厚黑油漆会流挂,形成拖尾状条纹,散斑各向异性严重,后续相关计算就会出现方向性偏差。喷完后拿手机微距模式拍一张放大检查,理想状态是黑白分明、颗粒大小在3~5像素、斑点覆盖面积约50%。

第三步是干燥。至少等漆面完全干透再开始加载实验。很多新手急着测试,漆没干时加载,散斑随着基底变形后,油漆还有流动性,图像纹理和实际变形不对应,测量结果看起来合理其实是废数据。

3.2 图像采集:相机、镜头、光照怎么配

硬件选型原则是:分辨率优先、全局快门优先、定焦镜头优先。分辨率决定了视野内能放多少个计算点,500万像素起步是比较稳妥的选择。全局快门对动态测量很重要,如果用的是卷帘快门相机,试样高速变形时图像会出现拖影和扭曲,相关计算根本做不稳。

镜头建议用定焦工业镜头,不要用变焦头。变焦镜头在长时间实验中哪怕有一点微小的焦距漂移,都会引入虚假应变。光圈不要开到最大,控制在F8到F11之间,这样既保证景深又减少像差。如果被测面有翘曲变形,景深不够会导致散斑在两个状态下清晰度不同,相关系数会明显下降。

光照这块,最好的方案是直流供电的LED平板光源,左右各一盏,以45度左右的入射角均匀照亮试样表面。要避开交流供电的荧光灯,它会以两倍工频的频率闪烁,高速相机下采集到的图像亮度周期性变化,产生系统误差。光源固定好后,整个实验过程尽量不要再移动。

相机架设也有讲究。镜头光轴要尽量垂直于被测表面,夹角超过30度时,离面位移引起的面内投影误差会急剧增大。如果必须倾斜安装,需要在标定阶段引入足够的标定数据来修正透视畸变,否则面内应变的绝对值会偏大。

3.3 标定与参数设置:子集尺寸和步长怎么选

标定是整个流程中最容易被轻视的环节。标定的作用是建立像素坐标和物理坐标之间的映射关系,同时求解镜头畸变参数。常用标定板有圆形点阵和棋盘格两种,我偏向圆点阵,因为圆心拟合的精度高于角点提取,对畸变大的广角镜头尤为明显。标定图像要拍20到30张,标定板在视野内以不同角度和位置摆放,尽量覆盖整个画幅,然后检查重投影误差,一般要控制在0.1像素以内,超过这个值检查一下是否标定板弯了或者图像糊了。

计算参数里最重要的是子集尺寸、步长和搜索范围。子集尺寸的推荐值通常取15×15到31×31像素。选子集时要权衡空间分辨率和精度:子集越小,空间分辨率越高,能分辨更细的应变梯度,但包含的纹理信息少,匹配容易跳点;子集越大,亚像素精度越高,但会把局部应变梯度抹平。对于拉伸实验,我通常先用21×21或者25×25的试算,看应变云图的噪声水平,如果云图噪声大就加大子集,如果细小的应变集中带消失了,就减小子集。

步长是相邻计算点之间的间距,一般取5~10像素。步长越小,网格越密,云图越细腻,但计算量成倍增加。搜索范围决定了算法在变形后图像上找匹配的最大范围,要根据预估最大位移来设,给得太小搜不到,给得太大容易误匹配。如果是大变形实验,最好分多步进行,每步用一个合理的增量位移,避免一次性大搜索带来的匹配失效。

3.4 后处理与常见分析输出

软件计算完成后,第一件要做的不是直接导数据,而是先检查相关系数云图。相关系数低于某个阈值的点,大概率是散斑缺陷、遮挡、光照异常或者匹配跳点,这些坏点如果不剔除,后面的应变场会显示出一片虚假的红色或蓝色区域。几乎所有DIC软件都支持散斑去噪或坏点修复,处理完坏点之后再计算应变。

应变计算本质是对位移场求梯度,而数值微分会把噪声放大。所以各软件都会内置一个虚拟应变片(Virtual Strain Gauge)的概念,实际上是设定一个计算窗口对位移场做平滑后再求导,窗口尺寸通常用不同数量的像素定义。窗口太大会平滑掉应变集中,推荐结合试件特征尺寸来定,一般取应变集中区宽度的1/5到1/3比较合理。

输出的数据常用的是全场的εxx、εyy、εxy应变分量云图、主应变云图,以及任意一条剖线上的应变分布曲线。对于断裂力学研究,还可以在裂纹尖端附近布置积分路径算J积分。很多软件支持导出每个计算点的坐标和位移值,方便自己写脚本做二次分析,比如算应变速率、塑性功等。要注意的是导出数据量很大,一个网格5万点的场,每个增量步都导一次CSV会非常卡,建议按需导出关键增量步,别急着全量导。

4. 常见问题与排查技巧实录

4.1 散斑质量差导致的计算问题

我在实验里踩过一个印象很深的坑:试件喷完漆后看着花纹很漂亮,但软件一跑相关,相关系数大片掉到0.8以下。放大看采集图像才发现,黑斑边缘模糊,像晕开了一样。原因是我喷漆时距离太近,溶剂还没挥发完全就落到表面,形成细小的溶剂冒泡。散斑边缘一模糊,就相当于花纹的高频细节全部丢失,相关峰变钝,精度自然上不去。

散斑的问题归纳起来无非是这么几类:

故障表现可能原因排查方向
相关系数整体偏低散斑模糊、光照过曝/欠曝检查对焦和亮度直方图
局部区域无法匹配斑点缺失、反光、遮挡查看散斑覆盖是否均匀
位移场出现周期性条纹散斑有方向性、网格类图案重新制斑,确保随机各向同性
边缘计算跳动严重子集跨出试件边界设置好ROI和边界mask

4.2 环境振动与光照扰动

普通实验室里,空调送风、地板振动、桌面共振都会让相机与被测试件之间产生相对位移。如果相机机架固定在光学平台上,而试件夹具固定在另一张普通桌子上,加载时机架的微小晃动就会直接表现为虚假位移。我曾经被这个问题折磨了一整周,直到把相机支架和试件夹具全部固定到同一块光学底板上才解决。后来我做测量实验时,会先空采一段静态图像序列,看看软件算出来的位移场噪声有多大,这个值基本就代表了系统本身的振动底噪。如果底噪已经超过你预期测量应变的1/10,那第一步不是优化算法,而是先治理振动环境。

光照的问题则隐蔽得多,尤其是自动增益或自动白平衡开启的相机。实验过程中,试件表面反光条件变化会让相机自动调整参数,导致灰度基线整体漂移。即使归一化算法对均匀亮度变化免疫,增益调整过程中有些区域的局部高光溢出、暗部噪声放大,还是会影响匹配。所以条件允许的话,务必把相机调到全手动模式,固定曝光时间和增益。

4.3 标定错误和畸变残留

标定常见的翻车现场是:重投影误差看起来不错,但测量出来的应变场有固定的光学畸变条纹,像一片咖啡色云图上的渐变斑。这种问题多半是标定板只覆盖了画面中心区域,边缘畸变没有被标定模型捕捉到。要解决这个问题,标定板在拍摄时一定要移动到画面边缘,让边缘区域也有足够多的特征点参与求解。

如果画面边缘出现明显的桶形畸变或枕形畸变,先检查镜头的是不是广角镜头。DIC一般建议用25mm以上的标准镜头或者中长焦镜头,短焦距的广角镜头即使标定修正,边缘的分辨率也达不到测量要求。标定完可以做一个刚性平移验证:把试件精确移动一个已知位移比如1mm,然后看软件算出的位移场是否均匀等于1mm。如果存在梯度,说明标定还不干净。

5. 实操心得:从硬件预算到项目落地的一些建议

5.1 硬件采购的优先级建议

预算有限的情况下,硬件投入的顺序很重要。我的建议是第一优先买好的镜头和三脚架,第二是光源,第三才是相机机身。很多人正好做反了,花了很大预算买高分辨率相机,却配了一个普通变焦镜头,结果分辨率再高也喂不进足够的图像细节,等于白花钱。一支素质过关的定焦工业镜头带来的清晰度收益,远大于把相机从800万升到2000万像素。

相机选型时可以关注几个硬指标:芯片尺寸(1/1.8英寸以上)、像元尺寸(尽量大,3.45μm以上)、全局快门、千兆网接口或USB3.0。高速实验要考虑帧率和分辨率之间的平衡,高速相机通常全分辨率帧率上不去,需要根据目标应变速率估算所需帧率,再反推可用分辨率。

光源的选择逻辑是稳定均匀,不追求大功率。很多实验室用两个LED平板灯45度对称布置就足够了。要注意光源的频闪特性,有些便宜的LED驱动电路纹波大,高速采集时会看到画面亮度周期波动,建议在光源前端加一块柔光板,同时也避免镜面反光。

5.2 新手最容易忽略的几个细节

先说要害的:实验开始前把镜头盖取掉,实验结束再盖回去。听上去像废话,但真有同行装好相机、开好软件、加载到一半发现画面全黑,原因是保护盖没摘。还有对焦要趁试样完全装好之后再做,对焦完成后用胶带把对焦环锁死,防止实验过程中意外转动。

载荷同步记录这块,如果软件支持模拟量输入,把载荷传感器的信号接到采集系统里,让载荷数据和图像时间戳对齐,后面画应力应变曲线会省很多事。如果两套系统各自独立触发,尽量用同一个触发源,否则数据对齐误差会影响很大。

最后说一个软件操作层面的小技巧:所有计算参数要在一个备份项目上先试跑一遍,确认云图质量没问题,再批量处理完整数据。DIC计算是大规模数值计算,跑一次大网格可能要几个小时,半路发现参数不对重跑非常浪费时间。我个人的习惯是先用低分辨率、大步长做一次快速预览,确定子集尺寸、搜索范围都合理,再启动高分辨率的正式计算。这套流程虽然多花五分钟,但能让你少以小时为单位返工。

数字散斑相关法说到底,就是“给变形表面编码然后用机器视觉解码”这件事。真正连续做几个项目之后你会发现,算法选型、参数优化都对易错也难,但真正决定数据质量的永远是试件表面那层几毫米见方的黑白油漆,和支架相机之间那几十厘米的稳固程度。光学测量的朴素质朴在这里,它最怕的坑也在这里。以后有机会再聊聊DIC在高温测试、三维全场测量和微尺度CT-DIC这些方向上的扩展玩法,那些就是另一个层次的话题了。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询