| 现场环境 |
本算法属于 单样本异常检测 :只需要一张 正常图像(OK 图) 作为参考,把待检测图与这张 OK 图做对比,找出变化区域并输出异常热力图与掩膜。
原理本质是 “找不同” :先进行基础对齐,再对比差异,因此成像条件变化也可能被视为异常。
它不依赖文本提示或语言模型,适合快速落地演示与工业场景的“快速上手”需求。 |
| 使用对象 |
通用缺陷识别(工业品外观、产品表面等) |
| 使用目的 |
实现高效、准确的自动化缺陷检测 |
| 硬件配置 |
推荐配置 NVIDIA GPU(CUDA 环境)以实现高效计算;CPU 模式(OnnxRuntime)可用,但处理速度较慢。 |
| 硬件兼容 |
原理上兼容Jetson Orin Nano(未测试)
|
| 软件配置 |
Python 3.x
NumPy、OpenCV
ONNX Runtime(onnxruntime 或 onnxruntime-gpu)
CUDA 12+(当前代码适配 CUDA 12+)
TensorRT 10.x(当前代码以 TRT 10.0+ 为基准)
PyQt5(仅 GUI 演示需要) |
| 软件兼容 |
无
|
| 输入数据 |
单张OK样本数据和待检测的图片数据 |
| 输出数据 |
异常/不同区域热力图分布,根据阈值输出的分割Mask |
| 样本获取 |
通用数据集 |
| 测试结果 |
为确保检测效果,请尽量保持OK图与待测图在拍摄位置、光照和角度上一致。
规则纹理(如网格) 对角度和位移极其敏感,请固定相机并缩小检测区域。
极细小缺陷 建议使用512分辨率模型,并通过近距离拍摄或裁剪局部来放大缺陷。
大角度或遮挡 可能导致对齐不准,请保证拍摄条件稳定。
全新品类 需重新采集高质量OK图作为参考。
噪声环境 下请稳定光源并保持背景干净。 |
| 执行速度 |
RTX2060 BatchSize=1的情况下 TRT加速:推理15ms(256分辨率),25ms(512分辨率) |
| 资源消耗 |
不同电脑环境不一样,需要自行测试 |
| 源码类型 |
python代码, onnx模型+推理代码+GUI界面代码,trt模型需要自己转(TRT 本机显卡、TRT 版本强相关,模型需要再转一次,有教程文档) |
| 文件大小 |
约400MB以内 |
| 相关备注 |
onnx模型+推理代码+GUI界面代码+两个说明文档
重要提醒:OK 图与待测图在拍摄位置、光照、角度上尽量一致,样品摆放要保持一致
TensorRT 引擎与本机显卡、TensorRT 版本强相关,现有 .trt 不一定可用,必须在自己机器上转换一次。
已知在 MVTec 的 grid类效果可能不佳,个人猜测是和该类别随意摆放的角度有关,建议OK 图与待测图里的类似样本一定要保持位置距离相对一致。 |