第一次拿到GelSight 视触觉3D显微系统的扫描结果时,我的第一反应是去找那个华丽的 3D 渲染窗口,盯着模型来回旋转、放大缩小,觉得“3D 才够直观”。实际用了一阵子之后才发现,真正高效的日常流程反而是回到2D Tools视图:把高度信息映射成二维灰度图,在这个平面上做表面测量和标注,无论是找缺陷、量尺寸还是出报告,都快了不止一倍。
这套流程尤其适合质检、失效分析和材料研究场景,凡是需要快速判断划痕、麻点、颗粒异物的长度、深度、面积,并且留下可追溯标注记录的,都会从中受益。下面把我日常操作中沉淀下来的步骤和细节拆开讲,包括为什么优先用 2D 视图、数据该怎么预处理、测量和标注怎么做到又快又准,以及最后怎么把结果导出成经得起复检的报告。
1. 为什么表面检测先用 2D 视图而不是直接看 3D 模型
1.1 高度图其实保留了全部 3D 信息
先解释一个很多新手容易误解的地方。GelSight 的核心原理是“视触觉”:弹性凝胶探头贴合到样品表面,内部多角度光源照明后,相机拍下凝胶变形形成的多幅反射图像,软件再根据这些图像重建出表面的 3D 形貌。这个 3D 数据是真实测量值,不是渲染效果。
而 2D Tools 里的灰度图,本质上是把 3D 高度场投影到 XY 平面:每个像素的灰度值对应那个位置的高度。亮的地方高,暗的地方低,所以它看起来像一张普通照片,但它其实保留了完整的表面信息。换句话说,你并没有因为切到 2D 视图而丢失 3D 数据,你只是换了一种更利于人眼观察和鼠标操作的表达方式。
这种表达方式对表面检测来说非常关键。显微镜下很多缺陷并不靠颜色区分,而是靠高度差区分。一条只有几微米深的划痕,在普通光学图像里可能完全看不出来,但在高度图上,只要把灰度范围压到合适区间,它就会变成一条非常清晰的暗色线条,肉眼一眼就能定位。
1.2 2D 视图在找缺陷和取点上的效率优势
实际做测量时,效率差异非常明显。3D 模型窗口里最耗时的操作是“找角度”:你得不断旋转视图,让光照方向和观察方向正好把缺陷暴露出来,否则浅划痕很容易被起伏背景吞掉。而在 2D 视图里,整个表面平铺在屏幕上,你只需要上下左右扫一遍,再加上色阶拉伸,基本不会漏。
取点和标注也是同样道理。在 3D 窗口里测距离,鼠标点到表面上的哪个位置,很大程度取决于你当前的视角;稍微斜一点,取到的点就可能偏了。在 2D 视图里,XY 坐标平铺显示,点的位置和像素一一对应,点选更直接,后续测量线、尺寸线、引线也都自动对齐到二维平面上,出图很干净。
我整理过一份自己在实际工作中的对比,可以直观感受一下:
| 操作 | 2D Tools 视图 | 直接旋转 3D 模型 |
|---|---|---|
| 快速遍历整块表面 | 整面平铺,滑动即可 | 需要不断调整视角,容易漏看 |
| 浅划痕、低对比凹坑 | 拉伸色阶后很容易发现 | 光照固定,浅特征容易被背景吞掉 |
| 点选、测距离 | 坐标平铺,点击即得 | 视角影响点选位置,需反复确认 |
| 理解缺陷立体形态 | 需要配合剖面线 | 直观,适合单点观察 |
| 标注、引线、尺寸线 | 自动对齐二维画面 | 标注位置受视角干扰,出图麻烦 |
所以我的习惯一直是“2D 找、2D 测、3D 验”,先把 2D 作为主战场,最后再用三维视图求证。
1.3 什么时候必须回到 3D 视图
当然,2D 不是万能的。遇到以下几种情况,一定要切回 3D 视图:
一是缺陷立体形态复杂,比如冲压凹陷、材料剥落,光看灰度图很难判断边缘到底是一个斜坡还是一个陡坎;二是测量深度时需要一个稳定的参考面,3D 视图下旋转观察可以更直观地确认参考平面选在哪里;三是复核疑似假阳性时,需要从多个角度观察特征,看它到底是真实形貌还是凝胶残留带来的伪影。
正确的姿势,是把 2D 视图当作战术工具,把 3D 视图当作验证工具,而不是反过来。
2. 数据导入与预处理:给 2D Tools 喂一份“干净”的高度图
2.1 触式采样中的关键操作
GelSight 的测量效果高度依赖采样质量。采样前一定要检查凝胶探头尖端的状态,这是我踩过最多坑的地方。
凝胶表面如果有灰尘、纤维、残留的脱模剂,或者样品表面本身有油污,都会在高度图上形成明显的假特征。灰尘颗粒看起来像一个凸起的小亮点,纤维则像一条弯曲的亮线,非常容易和真实缺陷混淆。稳妥的做法是采样前用无尘布配合专用清洁剂轻擦凝胶表面,然后用干燥空气吹一遍。如果是表面容易掉屑的样品,比如涂层粉末、橡胶制品,采样前还应先做轻微预压,把表面松散的颗粒带走,再进行正式采样。
采样时的姿态也要注意。让探头尽量垂直于样品表面,匀速下压,接触稳定后停留两秒再抬起。不要快速猛压,也不要一边压一边晃动,否则凝胶会产生非均匀变形,导致重建出来的边缘出现奇怪的高度误差。对于同一批对比样品,尽量保持相同的按压力度和接触面积,不同人员在操作时尤其容易忽略这一点,测量结果差一两个微米是常有的事。
2.2 平面补偿:去掉宏观弯曲,暴露微观轮廓
很多样品并不是一个理想的平面,而是带有宏观翘曲、倾斜甚至轻微弧面。如果把这种样品直接放进 2D 工具,你会发现高度图整体是明暗不均的:一边亮一边暗,中间还有渐变。这种宏观趋势会把微小的缺陷对比度压得很低,划痕反而看不清。
这时候需要做平面补偿,也叫背景去倾斜。软件会拟合出一个背景平面或曲面,把它从原始数据中减去,相当于把样品“垫平”。补偿之后,宏观的高度差被去除,剩下的是只和缺陷相关的局部起伏,灰度图上的对比度会一下子拉开。
这里有一个关键认知:平面补偿不是简单滤波,它会改变整个数据集的相对高度分布。所以选择补偿范围时,要确保选中的区域尽量包含缺陷周围的正常表面,而不要把缺陷本身包进去当背景。否则缺陷的高度会被“吃”掉一部分,测量结果偏小。我个人的习惯是,补偿区域比目标缺陷边缘留出至少 3 到 5 倍直径的距离。
2.3 高度色阶调整:把低对比度特征“拉”出来
完成平面补偿后,高度图是否能看清缺陷,很大程度上取决于高度色阶的映射范围。
软件通常允许你手动设置高度显示的最小值和最大值。如果范围设得太大,比如从表面最低点到最高点全部映射到灰度上,那么局部的浅划痕只占整个灰度的很小一段,看起来就是灰蒙蒙一片,什么细节都看不出来。正确做法是,把色阶范围压缩到只覆盖你关心的缺陷高度区间,让暗部和亮部形成强烈对比。
举个实际例子:一个表面有 5μm 深划痕的样品,但整个表面还有 80μm 的宏观起伏。如果直接用默认范围看,划痕只占 5/80 的灰度跨度,几乎不可见。先把平面补偿做掉,宏观起伏消失,再调整色阶范围到上下各几微米,划痕就会变成一条清晰的黑线。
注意一个容易混淆的点:调整色阶只影响显示,不改变原始测量数据。你在 2D 视图里看到的灰度对比是“视觉增强”的结果,但当你用测量工具去取值时,读到的仍然是真实的高度、深度和长度。这个特性也是我们能放心用 2D 视图做测量标注的前提。
3. 实测演示:划痕、麻点、异物颗粒三类特征的测量流程
3.1 划痕测量:长度、宽度与深度必须配合剖面
划痕是表面检测中最常见的缺陷。我先说反直觉的一点:直接看划痕的整体走向很容易,但宽度和深度的测量,不能随手在划痕上拉一条线就完事。
正确步骤是先在 2D 视图里找到划痕,用距离测量工具点选划痕的起始点和终止点,得到长度。然后,真正关键的一步是垂直于划痕走向画一条剖面线。只有在垂直方向上,才能得到划痕真实的横截面形状:两侧边缘的坡度、谷底的宽度、最大深度。如果剖面线是斜着画的,测出来的宽度会比实际宽,深度也可能被平均掉一部分,结果没有参考价值。
剖面线生成后,软件会显示一条高度曲线。这时定义宽度的标准就很重要。有的划痕截面像 U 形,两边边界还好找;有的像 V 形,根本看不到明显的平坦边缘,宽度完全取决于你按哪个高度去切。我们内部一般固定用深度阈值法,也就是以背景平均高度往下找某个固定深度位置作为边界点,比如 0.5μm 或 1μm,再求两个边界点之间的距离。不同样品可以选不同阈值,但同一批对比样品中间不能更换,否则数据不具备可比性。
3.2 麻点测量:直径、深度和边缘界定
麻点,也就是表面腐蚀坑或砂眼,在高度图上通常表现为圆形或近圆形的暗色区域,中心最暗,边缘逐渐变浅。
测量直径时,最忌直接用肉眼在灰度图上画一条弦线当直径,因为你会分不清哪条弦刚好经过中心,量出来的值会偏小。更好的办法是用圆形拟合工具,在麻点边缘上点几个点,软件自动拟合一个或多个同心圆,然后读直径。如果麻点形状不规则,可以改用闭合轮廓工具,沿着边缘根据灰度阈值圈定区域,软件会输出等效圆直径和区域面积。
深度测量相对麻烦,因为麻点周围往往也不是绝对的平面。我习惯先画一条覆盖麻点且延伸到两侧正常区域的剖面线,从剖面曲线上读取谷底到底面的距离。更稳的方法是在麻点周边选一块完好的区域,把它的平均高度作为参考平面,然后用麻点最低点的高度减去这个参考面高度,差值就是实际深度。这种方法可以规避样品测量区域整体倾斜带来的偏差。
测量面积时,重复前面说的边缘界定原则。麻点边缘如果模糊,就固定一个统一的灰度阈值。实际操作中,测量结果对这个阈值非常敏感,阈值差一两个灰度等级,面积可能差百分之十几。所以每次记录时一定要注明阈值条件,最好把阈值参数写进报告备注。
3.3 异物颗粒测量:灰度阈值圈定投影面积
异物颗粒和麻点正好相反,在高度图上通常是亮色凸起。测量思路也是先定位边界,再算面积和高度。
颗粒的边界判定比麻点更麻烦,因为颗粒表面往往有反射差异,同一个颗粒在高度图上可能显示为亮、暗交替的纹理。这时候不要用单一灰度阈值直接圈,容易把颗粒内部的暗区漏掉,导致面积偏小。我的处理方式是先做一次轻度的表面平滑,把高频噪声滤掉,然后在颗粒外围的平坦背景上取一个参考高度,再从参考高度往上推导阈值,圈出来的轮廓就是颗粒的投影轮廓。
颗粒高度同样依赖参考面。异物颗粒所在区域如果本身有划痕或凹坑,参考面就容易选偏。稳妥的方式是取颗粒周围一圈正常表面的平均高度,再和颗粒最高峰进行比较。如果颗粒本身比较薄,比如涂层表面的一层薄膜,还要结合剖面线确认它是一层均匀覆盖物还是一个独立的凸起物,两种情况的判定标准完全不同。
3.4 测量结果与剖面联动
一个很容易被忽略的效率点,是测量条目和剖面视图的联动。在 2D Tools 里,每一个测量项都是一个独立的记录对象,双击这个记录,软件会自动呼出对应的剖面曲线或三维局部视图。不要只把它当成一个静态的测量数值,要利用这个联动关系做二次确认。
我的习惯是,每做一次关键测量,就顺手打开剖面看一下曲线形状是否合理。如果曲线是锯齿状的,多半是取点取到了噪声区域,需要重新取点;如果曲线形态和缺陷走向明显不匹配,可能是剖面方向画错了。这一步虽然只花几十秒,但能避免很多后期返工。
4. 标注操作:图层、分类、尺寸线与备注的规范用法
4.1 缺陷类型与对应标注方式
标注不是简单地把箭头指到缺陷上就结束了。不同缺陷类型对应不同的标注方式,规范与否,直接影响报告阅读者能否快速理解你的结论。
在 2D Tools 里,常见的标注类型包括箭头、引线、尺寸线、闭合轮廓和文字框。我整理了常用的匹配建议:
| 缺陷类型 | 推荐标注方式 | 备注 |
|---|---|---|
| 划痕 | 箭头 + 长度尺寸线,附垂直剖面 | 标注划痕走向,剖面单独导出 |
| 麻点/凹坑 | 闭合轮廓 + 直径尺寸线 | 轮廓要贴近检测时的阈值边缘 |
| 异物颗粒 | 闭合轮廓 + 引线 | 引线指向颗粒,在备注中写明高度 |
| 压伤/变形 | 闭合轮廓 + 多个剖面线 | 剖面线越多,形貌判断越充分 |
| 表面纹理(非缺陷) | 不做缺陷标注,仅文字说明 | 避免与缺陷标注混淆 |
引线和尺寸线尽量画在缺陷外侧,不要压住缺陷本体。有些新手喜欢把箭头直接插在划痕上,标注线横穿整个缺陷,这样出图时缺陷细节被标注覆盖,别人根本看不清楚实际形态。我的原则是:缺陷本体永远是干净的,标注全部放到外围。
4.2 图层管理把标注变成“可编辑的矢量化记录”
2D Tools 的标注是矢量对象,不是画在图像上的像素,这意味着它们可以被编辑、移动、分层和统计。熟练利用图层管理,是高效完成整块样品标注的关键。
我建议按缺陷类型分图层:划痕一个图层,麻点一个图层,颗粒一个图层。每个图层用固定颜色区分,例如划痕用红色、麻点用黄色、颗粒用蓝色。这样只要关闭某个图层,就能单独查看某类缺陷的分布。对同一样品做复检或抽检时,也可以快速统计每种缺陷的数量和面积。
分布情况对于判定工艺问题非常有价值。比如一堆麻点集中在某个区域,可能说明该区域接触了污染源;划痕方向一致,可能说明是同一道加工工序带来的方向性损伤。这种全局分布信息在单一缺陷特写里是看不出来的,只有把图层全部打开,让所有标注同时显示,才能得出结论。
4.3 批量标注与属性模板的应用
如果一块样品上有十几个同类麻点,一个个手动添加箭头、引线、尺寸线会非常耗时。批量标注技巧可以极大提升效率。
操作方法并不复杂:先做好第一个麻点的标注,设置好箭头样式、尺寸线格式、备注模板,然后直接复制这个标注对象,再拖到下一个麻点位置。期间只需要调整引线端点的位置和测量数值,不需要重新画一遍。如果软件支持组合标注,还可以把箭头、尺寸线、文字框绑定成一个标注组,复制时一次性套用。
属性模板也很实用。把常用信息预填好,例如检测标准编号、样品批次号、检测员代号、缺陷判定级别,在新建标注时自动带入,省去大量重复输入。这个习惯刚开始看不出差别,但做整批 20 个样品时,能省至少一小时的重复劳动。
5. 三维视窗复核:把 2D 测量结果放回 3D 模型里求证
5.1 同步定位与旋转观察
2D 测量做完,不代表工作已经结束。我强烈建议每完成一组关键测量,都切到三维视窗做一次逆向验证:从 2D 标注记录上反查它在 3D 模型中的位置,然后旋转模型,从多个角度观察缺陷的真实形貌。
这个验证能发现不少“2D 看上去像缺陷,3D 一看其实不是”的情况。比如,高度图上出现一个圆形暗点,2D 视角下很容易被当成麻点;但旋转到 3D 模型侧面一看,发现它是一个隆起的小颗粒,只是颗粒顶部比周围低,形成了凹陷错觉。再比如,两条平行的暗线在 2D 里像划痕,3D 里一看,原来是材料本身的轧制纹理,凹陷深度均匀且连续,属于表面纹理而不是缺陷。
用 3D 视窗验证还有一个好处,就是可以把缺陷和周围的环境放在一起判断。失效分析中,缺陷往往不是孤立存在的,旁边有没有微裂纹、二次损伤、材料堆积,都对结论很重要。这些东西在 2D 视图里要用不同色阶调来调去才能隐约看到,在 3D 窗口里一目了然。
5.2 用剖面线验证测量值
三维视窗里的剖面工具,验证效果比 2D 更直观。你可以直接在模型上画剖面线,软件会显示这条线对应的高度剖面曲线,并给出峰谷差、平均高度等参数。
这里有个细节:不要仅仅在 2D 视图里看剖面,因为在 2D 视图里你只能沿固定的屏幕方向画线,而到了 3D 视图,剖面线可以沿着缺陷的真实走向进行精确控制。尤其对于弯曲的划痕,三维剖面能捕捉到真正垂直于划痕走向的截面,测出来的宽度和深度会更可信。
我一般在两种情况下强制使用三维剖面:一是缺陷尺寸接近判定边界,结果直接影响产品是否放行;二是同行评审或客户复检时,需要拿一份无可争议的剖面证据。这两种场景下,宁可在 3D 窗口里多花五分钟,也不能靠一个在 2D 里随手拉的数值应付过去。
5.3 常见假阳性的识别清单
做久了你会发现,GelSight 高度图上的“缺陷”并不全是真实缺陷。根据我的经验,常见假阳性主要有这么几类,我把它们整理成一个识别清单:
| 现象 | 常见原因 | 判断方法 |
|---|---|---|
| 高度图上出现孤立高亮圆形点 | 凝胶尖端沾了灰尘颗粒 | 3D 旋转观察,若呈规则球形且表面光滑,多为镜头伪影 |
| 暗色圆环,中间略亮 | 凝胶表面有气泡或凹陷 | 用剖面线查看,若深度小于凝胶局部形变,则进一步清洁后复测 |
| 沿同一方向的长条亮线 | 样品表面加工纹理 | 在未接触区域多次采样,若纹理方向一致且深度均匀,可判定为纹理 |
| 大面积亮块或暗块 | 样品表面油污或反射差异 | 更换采样点或清洁后复测,对比两次高度图差异 |
| 边缘锐利的高台阶 | 凝胶边缘压到样品边界 | 调整按压位置,让凝胶中心对准测量区域 |
假阳性最有效的验证手段就是两个字:复测。在凝胶清洁后重新采样一次,看同一个位置的缺陷是否还在,高度和形状是否一致。如果两次结果差异很大,基本可以判断第一次是伪影,别急着下结论。
6. 报告导出的记录管理:让测量结果经得起复检
6.1 导出报告应该包含的六类内容
一张干巴巴的截图加一行文字,不能算合格的检测报告。我通常在导出时至少包含以下六类内容:
- 原始高度图:未叠加标注的 2D 视图,保持默认色阶,作为原始证据。
- 带标注的 2D 视图:所有箭头、引线、尺寸线都打开,完整呈现测量过程。
- 剖面曲线:关键缺陷的垂直剖面图,附上最大深度和峰谷差参数。
- 三维模型视角图:选择能真实反映缺陷形态的旋转角度,导出清晰视图。
- 测量数据表:所有测量项的名称、类型、长度、宽度、深度、面积、圆形拟合值等。
- 样品与检测信息:样品编号、检测日期、探头状态、清洁记录、色阶范围、平面补偿范围、阈值设定。
这六类内容缺一不可。尤其是最后一项,很多人在实际操作中会漏掉,但一旦涉及复检或仲裁,没有这些条件参数,测量结果就很难被重新复现。
6.2 测量记录的命名规范与留档
测量标注做好之后,还要解决的问题是怎么管理记录。我在处理批量样品时吃过不少亏,后来固定了一套命名规范,现在分享出来。
建议格式:样品编号 + 检测日期 + 缺陷类型 + 序号。例如:SN-20250415-A-scratch-01、SN-20250415-A-pit-03、SN-20250415-B-particle-01。一定要在测量列表里给测量项单独命名,而不是靠默认的“测量 1”“测量 2”区分。默认名称一旦多起来,你根本分不清哪个是哪个,到了出报告的时候只能逐个回看位置,非常浪费时间。
原始数据文件也要一并留档。报告里导出的是处理过的、套用显示增强的 2D 图像,而原始数据文件保留了完整的 3D 信息。复检时,别人可以通过原始数据重新调整色阶、重新补偿、重新测量,整个过程透明可追溯。只留一张图片,等于把复检路径堵死了。
6.3 一点关于流程的体会
文章最后,分享一点我自己在大量操作中形成的体会。GelSight 这类视触觉系统能干的事很多,3D 模型也很漂亮,但它真正发挥价值的地方,是帮你快速、客观地解决“表面状态到底怎么样”这个问题。2D Tools 之所以高效,是因为它把复杂的三维判断简化成了人们习惯的平面观察,而测量、标注、导出一气呵成,整个流程非常顺。
我用这套“2D 找、2D 测、3D 验、数据留档”的流程跑了上百个样品之后,最大的感受就是省心。新手刚上手时,别急着追求把所有工具都用一遍,先把最基本的平面补偿、色阶调整、剖面验证、图层标注做好,再逐步扩展高级功能。固定一个简单的 SOP,比掌握一堆功能快捷键更重要。