从高度场到结构型谱
A technical review of an industrial belt and tread defect detection system based on structured-light height maps, geometric measurement, and transform-domain structural patterns
冯玮(Wei Feng)
这篇文章整理的是我在2016年做过的一套带束层与胎面在线缺陷检测方案。它不是一个后来被完整写成论文或正式产品文档的项目;更准确地说,它是一套当时已经在真实现场跑通、但由于后续人事与发表因素,始终没有被正式写下来的工业视觉系统。
它真正有价值的地方,并不在于“做了一个轮胎缺陷检测模块”,而在于它把原本容易被理解为普通图像识别的问题,改写成了一组更自然的几何测量与变换域判别问题:
对于带束层,核心是围绕料宽、中心偏差、断差以及料头料尾关系所展开的实时参数测量;
对于胎面,核心则是通过线性变换与投影,把原空间中难以直接稳定判断的接头状态,组织成一组可解释、可比较的结构型谱。
核心思想
输入并不是普通灰度图,而是结构光高度图。
带束层部分并不依赖复杂分类模型,而是通过基准平面、周期缓冲、边界统计与局部模板匹配,把问题还原为几何参数测量与接头位移判定。
胎面部分则通过一个面向刀口结构的线性变换与投影,把局部几何在变换域中压缩为稳定的灰度表象,从而将定位与异常判别统一到同一个表示空间中。
English Abstract
This article reconstructs an industrial online inspection scheme I developed during graduate study for belt and tread defect detection on a tire building drum. It was never fully written up as a paper or formal product document, even though its core algorithmic pipeline had already been implemented and validated in a real production setting. The value of the system did not lie merely in “detecting defects,” but in reformulating the task into a more natural combination of geometric measurement and transformed-domain pattern analysis. For the belt layer, the problem was organized around real-time measurement of width, center deviation, edge discontinuity, and head-tail relations. For the tread layer, a linear transform and projection were used to convert difficult local joint geometry in the original height field into stable structural patterns in a transformed domain, thereby unifying localization and defect discrimination in a single representation.
这个项目面向轮胎成型鼓上的带束层与胎面在线检测。它并不是一个简单的“缺陷分类器”,而是一套需要在现场节拍下持续运行、实时输出工艺参数并稳定报警的几何测量系统。
真正做下去之后,我逐渐意识到:这个问题的关键并不在于“识别图像中的某种异常纹理”,而在于如何把结构光高度图中原本纠缠在一起的曲面、边界、接头与局部变形,重新组织到一个更自然的几何表示中。也正是在这个意义上,这个项目并非我结构化思考的起点,而是其在工业视觉场景中的一次非常典型的展开。
1. 现场环境与系统位置
这套算法不是脱离现场节拍的离线实验,而是直接嵌入轮胎成型检测设备中的在线模块。它需要与相机、光源、上位机、机械节拍和编码器同步配合,在连续进图的条件下完成定位、参数测量与异常判别。
2. 已实现的关键定位结果
从现存图像与代码主线来看,这套系统已经稳定打通了两条检测链中的关键定位环节:一条是带束层料头 / 料尾关系的几何提取,另一条是胎面抬头范围的稳定恢复。
对于带束层,需要先说明其几何对象本身的性质。带束层在工艺上可以理解为一条较长的矩形带材,其料头与料尾并不是任意形状,而是由刀沿某个固定角度切开后形成的一对斜直边。也就是说,系统要面对的并不是“在图中找一个任意缺陷块”,而是要在连续展开的数据中识别出这组具有明确几何约束的接头边界,并进一步判断它们能否正确对接。
在这个意义上,前两幅图中的绿色十字并不只是简单的命中标记。第一幅对应的是带束层接头关键位置的提取结果,说明系统已经能够在连续图像中稳定抓住料头 / 料尾相关的几何位置;第二幅则更进一步,对应多横向剖面上的料头匹配点。它们并不是单点检测,而是沿左、中、右等若干横向位置共同建立的一组几何锚点。正是这些锚点,使后续的头尾关系分析不再依赖单一局部响应,而能够在多个剖面之间建立一致的比较关系,从而服务于虚接、搭接以及头尾相对位移等判别任务。
换句话说,带束层部分最关键的并不是“识别出一个料头”,而是把原本连续展开的带材接头问题,转化为一组带有明确几何意义的剖面定位问题。只有在这些定位点稳定之后,料宽、中心偏差、断差以及头尾关系分析才有可靠支撑。因此,这两幅带束层结果图实际上对应的是整条参数测量链的前置入口。
胎面部分的定位意义则有所不同。由于原始高度图中的刀口区域同时受到曲面、热软化和压合作用的影响,直接在原图中给出稳定边界并不容易。因此,系统先通过一个面向刀口结构的线性变换与投影,把原空间中较为分散、较难直接比较的局部几何,压缩到一个更稳定的变换域中;在该域里,料头相关结构表现为更容易提取的高灰度响应。随后,再将变换域中的定位结果逆映射回原始图像,从而恢复出抬头范围在原图坐标中的上下边界。
第三幅图中的两条红线,表示的正是这样一个由变换域恢复回原图的定位区间:它并不是人为附加的辅助说明,而是料头抬头范围在原始图像中的最终几何表达。也正因为有了这个边界区间,后续的搭接、翘起、虚接等异常判别,才能建立在一个明确、稳定、可追踪的局部范围之上。
因此,这三幅图的意义并不只是“系统已经能找到几个关键点”,而在于它们分别对应了两条检测主线中最关键的入口量:带束层依赖多剖面料头 / 料尾几何锚点进入参数测量与接头关系分析;胎面依赖变换域中的亮线结构恢复抬头范围,再进入后续的结构型谱判别。就现存材料而言,这一层定位结果已经足以说明:该系统的核心不是零散技巧的拼接,而是一条从高度图预处理、几何定位到后续测量 / 判别的完整检测链条。
3. 现场缺陷实例
胎面对接区域的异常在现场是真实存在的,但它们并不总是以肉眼极其显眼的方式出现。这个问题真正困难的地方,恰恰在于异常尺度往往不大,而检测要求却很严格:系统不仅要判断是否存在异常,还要在连续生产条件下,在较小误差容限内对其作出稳定、可比较的区分;在部分检测任务中,系统还需要进一步输出具体参数,误差要求达到毫米量级。
具体来说,这套系统并不是只回答“有没有问题”,而是围绕以下参数展开检测与测量:
- 带束层 / 胎面料宽
- 带束层 / 胎面中心偏差
- 带束层断差
- 带束层、胎面料头料尾的虚接 / 搭接量
- 胎面抬头范围及其相关异常状态
因此,搭接、翘起与虚接等问题并不是抽象标签,而是真实出现在生产过程中的局部几何异常。它们受到曲面形态、热软化、压合作用以及局部成像条件的共同影响,所以现场检测的难点并不只是“看见某种异常”,而是如何把这些细微但关键的差异转化为稳定、可复核、可测量的检测关系。
图 3:现场缺陷实例。现存图像主要保留了搭接、翘起与虚接三类典型异常。
4. 为什么这个问题不能只当作普通图像检测
这类问题表面上看像图像检测,但真正做下去会发现,普通二维图像思路并不自然。
原因很简单:输入并不是普通灰度图,而是结构光输出的高度数据。在这样的数据里,最重要的不是纹理,而是几何关系:
- 材料边界在哪里;
- 接头的相对位置如何变化;
- 局部是否出现未重合、搭接、翘起;
- 曲面、压合、热软化带来的形态扰动,如何在一个更稳定的表示中被重新组织。
也就是说,这个问题真正困难的,并不是“把缺陷看出来”,而是如何建立一个稳定、可比较、可实施的检测关系。
5. 带束层检测:从周期差分到参数测量
带束层检测分为一层和二层,两者实现上略有不同,但主线是一致的:
- 对输入高度图做基于参考平面的预处理;
- 将当前图与循环缓冲中的同相位历史图进行比较;
- 提取稳定的材料边界;
- 在有效区域内计算料宽、中心偏差与断差;
- 在料头 / 料尾区域进一步判断虚接 / 搭接。
5.1 周期展开与循环缓存
由于目标运行在成型鼓上,图像天然具有周期性。因此系统并不是把每一帧孤立处理,而是维护一个沿鼓面相位组织的循环图像缓冲区。当前图像进入后,会写入这个循环缓冲;对于一层带束层,可将当前帧与同相位历史帧做差,从而突出材料变化;对于二层带束层,则进一步叠加列权重等先验进行筛选。
从工程上看,这一步不是“图像保存”,而是把连续进来的数据组织成一个与成型鼓周期结构一致的时空缓冲面。没有这个设计,后面的在线参数测量会非常别扭。
5.2 边界不是“分割出来”的,而是“统计出来”的
在有效区域内,我并没有走复杂分割路线,而是按纵向区间做横向统计:对每个局部带,统计各列上有效点的出现情况,构成直方图;再对直方图做差分分析,从而得到左边界与右边界。
有了这些局部边界,就可以进一步得到:
- 当前料宽;
- 左右边界相对基准位置的偏移;
- 相邻区间之间的边界跳变量,也就是断差。
因此,带束层这一部分的本质更接近实时几何参数测量,而不是图像语义分类。
5.3 料头 / 料尾定位:局部模板比复杂模型更稳
在带束层接头检测中,我将连续若干帧拼接成一个局部展开图,再在左、中、右多个横向位置上,用一个小模板去匹配料头 / 料尾位置。
这里采用的不是复杂可学习模型,而是非常小的、与头尾形态一致的局部模板。它的优势在于:
- 计算量低;
- 几何含义清楚;
- 在现场工况比较稳定时,反而比大而全的方法更可靠。
得到多个剖面上的头尾位置后,再综合其相对位移,即可判断虚接或搭接量。
6. 胎面检测的核心:从线性变换到结构型谱
胎面检测中,最初真正困难的,并不是“如何分类缺陷”,而是如何稳定定位料头刀口位置。
在原始结构光高度图上,刀口区域往往同时受到曲面、热软化、压合动作与局部形变的影响,因此并不适合直接按普通二维图像边缘去理解。我的做法是先从预处理后的高度图中提取非零点,将其视为三维点集 \(\mathcal{P}=\{(x,y,z)\}.\)
随后,对每个点施加一个绕 $X$ 轴的线性变换 \(p' = R_x(\theta)p, \qquad R_x(\theta)= \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos\theta & -\sin\theta\\ 0 & \sin\theta & \cos\theta \end{pmatrix},\) 即 \(x' = x,\qquad y' = y\cos\theta - z\sin\theta,\qquad z' = y\sin\theta + z\cos\theta.\)
这一步的目的,不是做一般性的空间旋转,而是将原来刀痕附近倾斜、弯曲、不利于直接观察的局部几何,送到一个更自然的参考系中,使刀痕平面在该坐标系里更接近垂直状态。
旋转之后,并不直接把 $z’$ 当作新图像,而是将点集按 $(x’,y’)$ 投影到新的二维栅格中,并在每个栅格上累积响应。若记落入栅格 $(u,v)$ 的点数为 $n(u,v)$,则其累积响应可写为 \(A(u,v)=\sum_{k=0}^{n(u,v)-1} c\,\alpha^k,\) 其中 $c>0$ 为比例系数,$\alpha\in(0,1)$ 为衰减系数。与此同时,每个栅格还记录对应点集的上包络与下包络: \(U(u,v)=\max z',\qquad L(u,v)=\min z'.\)
于是,变换域图像可记为 \(T(u,v)=A(u,v).\)
这一步非常关键。它意味着:原空间中原本较厚、较散、难以直接界定的刀口结构,在新的参考系中经过投影后,会沿一条狭窄轨迹聚集起来,并在 $T(u,v)$ 中表现为一条高灰度曲线。换句话说,所谓“亮线”,并不是人为画出来的,而是局部几何在变换域中发生塌缩与聚焦后形成的高响应脊线。
更重要的是,这个变换最初虽然是为定位而设计的,但后来我发现,它实际上构造出了一个非常自然的判别域。不同接头状态在该域中的表象并不是任意的,而是呈现出稳定的灰度拓扑差异:
- 正常对接:通常表现为只有灰度值均衡的矩形区域图像;有时中间可能仅有一条灰度略高、但并不突出的浅曲线。
- 搭接:在灰度值均衡的矩形区域中间出现一条水平高灰度曲线,并且紧贴该曲线的上方出现明显低灰度区域。
- 翘起:同样出现一条水平高灰度曲线,但明显低灰度区域位于该曲线下方。
- 未重合 / 虚接类:通常表现为矩形区域中间存在一条水平高灰度曲线,但不存在搭接或翘起那样紧贴亮线的明显低灰度区。
因此,这个线性变换与投影图后来事实上变成了一张变换域中的结构型谱:它不只是辅助定位,更把不同异常状态组织成了几种可解释、可比较、可复核的灰度结构模式。
为了更清楚地说明这一点,我将变换域中的典型表象整理为一张结构型谱图。需要强调的是,这张图并不是现场原始检测截图,而是对变换域中灰度结构关系的示意性抽象:它的作用不是替代现场证据,而是帮助解释为什么同一套线性变换与投影能够同时承担定位与判别两种任务。
在得到变换域中的关键点后,再通过逆变换 \(p = R_x(-\theta)q\) 将其映射回原始坐标系,最终得到料头范围及相关定位结果。也就是说,整个过程并不是停留在变换域中做“好看的图”,而是借助一个可逆的几何表示,把原本难以直接判别的局部结构变成更容易检测的信号,再准确地带回现场坐标系。
7. 为什么这和 CT / MR 有异曲同工之妙
这里的相似性不在物理机制,而在方法论:
- 不是在原始空间里硬找目标;
- 而是先做一次变换 / 投影 / 编码;
- 让难以直接辨认的空间结构在另一个域里变得更集中、更显著;
- 然后再把结果映射回原空间。
从这个角度看,它与 CT / MR 的“先换域,再成像 / 再回域”的思想确实有某种同构意味。当然,这里只是一个面向特定目标的局部几何成像,而不是通用医学成像系统;但在算法思想上,两者确实有异曲同工之处。
8. 算法之外:为什么工程架构同样是项目成功的一半
如果只谈几何思路,这个项目很容易被误读为一个离线算法原型。但从实现上,它实际上是按在线检测模块组织的:DLL 化接口、输入队列、后台线程、结果异步输出,以及围绕成型鼓周期组织的循环缓存 / 双缓存机制,共同构成了它的工程骨架。
这部分并不是“附属实现细节”,而是项目能否真正落地的必要条件。在轮胎成型这样的连续节拍场景中,算法不仅要“算得对”,还要“流得动”:图像持续进入、缓冲有序更新、检测异步执行、结果稳定输出。如果没有这一层工程组织,再好的几何主线也很难真正成为现场系统。
对这套系统而言,双缓存并不只是一个“提速技巧”,而是把连续进图、局部展开、参数测量与异常判别组织成稳定在线流程的关键结构。它保证了不同处理阶段之间既能彼此衔接,又不必互相阻塞;也正是在这种工程骨架之上,前面所说的带束层参数测量和胎面变换域判别,才真正具备了在现场长期运行的条件。
9. 为什么我今天仍然认为这个项目值得被写下来
这个项目后来没有形成正式文档,确实很可惜。但今天回头看,它依然非常值得整理,原因不在于它“曾经成功过”,而在于它体现了一种我后来越来越确信的方法论:
真正有效的工业视觉系统,不是把更多工具堆上去,而是先把问题表述到更自然的几何空间里。
这个项目后来也让我更确信一点:工业检测里真正漂亮的系统,往往并不是实现最复杂的系统,而是那类实现极为简洁、但现场结果却异常漂亮的方案。它们真正的力量,不来自技术堆叠,而来自问题表述、几何关系与检测链条之间的高度一致。
带束层部分是这样:它把问题还原成边界、宽度、偏移、断差与接头位移的测量问题。
胎面部分更是这样:它先为了定位构造出一个变换域,后来又发现这个域几乎天然就是缺陷判别域。
这种“表示先行”的思路,比单纯讨论某个检测器、某个网络结构更接近问题本体。我今天之所以愿意把它重新写下来,正是因为它不仅是一个做成过的项目,也确实代表了我后来很多工作的技术取向。
10. 后记
这篇文章仍然只是一个开始。由于原始配置文件、部分现场图像和部分工程资料已经散失,我不打算假装把它完整复原成一篇“无缺失”的白皮书。更现实、也更诚实的做法,是先把最核心的算法主线、工程骨架和方法论价值留下来。
对我而言,这不是简单回忆过去,而是在为一段本该被正式写下来的工作,补一份迟到的技术档案。
作者: 冯玮(Wei Feng)
邮箱: weifeng@stu.ouc.edu.cn