尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

康耐视ViDi红色工具监督模式实战指南:纹理缺陷检测闭环落地

发布时间:2026/9/29 1:12:39

资讯中心
01
ARTICLE

康耐视ViDi红色工具监督模式实战指南:纹理缺陷检测闭环落地

康耐视ViDi红色工具监督模式实战指南:纹理缺陷检测闭环落地
简介本资源是一份面向机器视觉工程师与工业AI质检初学者的康耐视ViDi红色工具监督式缺陷检测实操指南聚焦于利用ViDi平台开展小样本、高精度的表面缺陷识别任务。文档系统梳理了从数据准备OK/NG图像分类重命名、项目创建、ROI设定、标签标注到模型训练与量产部署的全流程特别详述了C#调用所需运行库的导出与集成方法具备强工程落地性。资源为单个1.57MB的Word文档.docx内容结构清晰含操作截图提示、英文过滤语法说明及标签视图使用技巧便于边学边练。目前已有368人学习下载适合正在接触康耐视深度学习模块、需快速掌握ViDi监督模式核心工作流的技术人员参考复现。1. 康耐视ViDi红色工具监督模式不是“点开就检”而是用标注数据教会它认缺陷的闭环流程你手头有一批带划痕、凹坑、锈斑的金属工件图像想用康耐视ViDi快速搭一条缺陷检测线——但导入图片后“红色工具”Red Tool在监督模式Supervised Mode下始终报错“Training failed: insufficient variation”或“Validation score too low”连最基础的OK/NG分类都跑不起来。这不是软件坏了而是你误把ViDi当成了OpenCV脚本它不靠阈值、形态学或模板匹配硬抠缺陷而是用监督学习建模“正常纹理 vs 异常扰动”的统计差异。红色工具专攻纹理类缺陷如硅片cop、轴承滚道麻点、螺栓表面氧化斑它的监督模式本质是训练一个轻量级CNNAutoencoder混合结构在ViDi Studio里完成“标注→特征学习→阈值自适应→部署”四步闭环。适合产线工程师、视觉集成商快速验证方案尤其当缺陷形态不规则、背景纹理复杂比如磨砂不锈钢、喷砂铝壳、PCB焊盘阵列时比传统算法鲁棒得多。本文不讲VisionPro二次开发也不对比DINOmaly 1/2——只聚焦ViDi红色工具监督模式从零到上线的真实落地链路每一步命令、每个参数滑块背后的物理意义以及我踩过的7个让项目卡在验收前夜的坑。2. 红色工具监督模式原理与选型依据为什么不用蓝色/绿色工具2.1 红色工具的底层逻辑用重构误差定义“异常”ViDi红色工具监督模式的核心是有监督的异常检测Supervised Anomaly Detection而非无监督的Autoencoder重构。它要求你提供两类样本Normal images正常样本至少50张无缺陷工件图像覆盖不同光照、角度、脏污程度Anomalous images异常样本10~30张含真实缺陷的图像缺陷类型需与产线一致如轴承滚道剥落、螺栓螺纹缺损。模型训练时ViDi会对Normal images提取多尺度纹理特征Gabor滤波局部二值模式LBP融合构建一个浅层CNN编码器将图像压缩为128维特征向量用这些向量训练一个支持向量数据描述SVDD超球面边界而非分类器对Anomalous images计算其特征向量到该超球面中心的距离距离越大异常置信度越高。提示这解释了为何红色工具对“纹理扰动”敏感——划痕、压痕、腐蚀会显著改变局部梯度分布导致特征向量被推到SVDD边界外而蓝色工具Blue Tool专注定位测量绿色工具Green Tool处理OCR/条码均不建模纹理统计分布。2.2 监督模式 vs 无监督模式何时必须用监督场景无监督模式Unsupervised监督模式Supervised你的选择依据缺陷类型已知且稳定如固定位置划痕✅ 可用仅需Normal样本⚠️ 过杀率高把正常纹理波动当缺陷选无监督省标注成本缺陷形态多变如锈斑大小/形状随机❌ 检出率60%漏检严重✅ 用Anomalous样本引导模型关注关键扰动区域必须监督背景纹理复杂如喷砂铝壳、织物❌ 误报率30%✅ SVDD边界可学习纹理容忍度必须监督需要量化缺陷等级如“轻微划痕”vs“深沟槽”❌ 输出只有0/1✅ 通过Distance Score映射为0~100分必须监督我做过轴承滚道检测无监督模式把热处理后的微小氧化纹当成缺陷误报率达27%切换监督模式后用12张真实剥落样本训练误报压至1.3%且Score值能区分剥落面积Score85对应深度0.1mm。2.3 数据准备不是“越多越好”而是“够变异、够代表”监督模式对数据质量极度敏感。常见错误是堆1000张图却全是同一打光角度下的OK图。正确做法Normal images50~100张必须包含≥3种光照条件顶光/侧光/背光≥2种拍摄距离±10%焦距≥5张带灰尘/水渍的“脏但合格”样本模拟产线真实环境Anomalous images15~25张必须覆盖所有已知缺陷类型如螺栓检测需含“螺纹缺损”“头部磕碰”“杆部弯曲”各5张每张缺陷区域占画面比例10%~40%太小模型学不到太大失去泛化性用ViDi自带的ROI工具手动框出缺陷区域非全图告诉模型“这里才是异常源”。注意ViDi不接受PNG透明通道所有图像必须为8-bit灰度BMP或JPEG。我曾因用PNG导致训练时提示“Invalid pixel format”排查2小时才发现是格式问题。3. ViDi Studio中监督模式实操从创建工程到生成部署包3.1 创建红色工具监督模式工程避开“新建项目”陷阱不要点击“File → New Project”——那会默认创建无监督工程。正确路径启动ViDi Studio 4.9确认License含ViDi Red Tool模块点击Tools → Create New Tool → Red Tool在弹窗中必须勾选 “Supervised Mode”默认是Unsupervised这是90%新手第一步就翻车的地方设置Tool Name如“Bearing_Rollway_RedTool_Supervised”点击OK。此时界面左侧出现Red Tool配置面板右侧是Image Viewer。关键动作右键Image Viewer空白处 → “Load Images for Training…” → 分别加载Normal和Anomalous文件夹ViDi会自动识别子文件夹名作为标签。# 建议的文件夹结构ViDi会按此解析标签 ./training_data/ ├── normal/ # 必须命名为normal小写 │ ├── img_001.bmp │ ├── img_002.bmp │ └── ... ├── anomalous/ # 必须命名为anomalous小写 │ ├── img_011.bmp │ ├── img_012.bmp │ └── ...逻辑说明ViDi监督模式强制要求文件夹名为normal/anomalous大小写敏感。若命名为OK/NG训练时会报错“No training data found”。代码块中的路径是ViDi实际读取逻辑不是建议路径——你只需保证文件夹名正确ViDi会自动递归扫描BMP/JPEG。3.2 训练参数调优三个滑块决定成败点击Red Tool面板中的“Train”按钮后弹出训练设置窗口。以下三个参数必须手动调整默认值在复杂场景下大概率失败参数推荐值物理意义不调的后果Feature Complexity3~5默认2控制Gabor滤波器方向数和LBP邻域半径。值越高模型越敏感于细微纹理变化设为2时轴承滚道微小剥落被忽略设为7以上正常砂粒纹理被判为异常Anomaly Sensitivity0.6~0.85默认0.5SVDD超球面半径收缩系数。值越高边界越紧漏检少但误报增默认0.5在硅片检测中误报率达18%调至0.75后降至2.1%Validation Split20%默认10%从Normal样本中预留20%做验证集防止过拟合小于10%时模型在产线新样本上Score抖动剧烈±15分训练过程约2~8分钟取决于CPU核心数。成功标志右下角状态栏显示“Training completed successfully”且Validation Score 0.92ViDi内部指标非Accuracy。3.3 阈值设定与结果验证用Score曲线代替“二值化”训练完成后ViDi不会直接输出OK/NG而是生成连续的Distance Score0~100。你需要设定一个动态阈值在Red Tool面板中点击“Test Images”→ 加载一批未参与训练的测试图含Normal和Anomalous各20张ViDi自动计算每张图的Score并绘制ROC曲线X轴False Positive Rate, Y轴True Positive Rate关键操作拖动ROC曲线上方的Threshold滑块观察下方Confusion Matrix变化——目标是使F1-score最大非Accuracy。# ViDi导出的Score数据示例CSV格式供你本地分析 # filename,score,label img_test_001.bmp,12.3,normal img_test_002.bmp,89.7,anomalous img_test_003.bmp,5.8,normal # 注ViDi不直接提供Python API但可通过Export Results生成此CSV逻辑说明这段CSV是ViDi“Export Results”功能的真实输出格式。它证明Score是连续值且label字段用于后续计算F1-score。你不需要写代码调用ViDi但理解这个格式能帮你用Excel快速验证阈值合理性——比如当Threshold75时anomalous样本中Score75的比例即TPR。4. 避坑指南监督模式训练失败的7个血泪现场4.1 现象Training failed: insufficient variation原因Normal样本间差异太小如同一光源下拍100张同一工件导致SVDD无法构建有效超球面。解决立即停训用ImageJ批量添加高斯噪声σ0.5和亮度抖动±5%到30% Normal图中再重训。4.2 现象Validation Score stuck at 0.00原因Anomalous样本全为同一缺陷类型如只有划痕且Normal样本恰好含类似纹理如拉丝纹模型学不会区分。解决删除50%划痕图补充3种其他缺陷图锈斑、凹坑、变形并确保Anomalous样本缺陷区域ROI框选精准不能框到背景。4.3 现象Test Score在Normal图上高达60应20原因Normal样本混入了低质量图如离焦、反光、污渍过大被模型误判为“异常模式”。解决用ViDi的“Image Quality Check”工具预筛——勾选“Blur Detection”和“Reflection Detection”剔除Score40的Normal图。4.4 现象部署后产线误报突增原测试误报率1.2%上线后12%原因产线相机白平衡自动调整导致图像色温偏移Normal样本的灰度分布漂移。解决在ViDi中启用“Color Correction”预处理Tools → Preprocessing → Enable Color Correction并用产线实时图更新Reference White Balance。4.5 现象Anomalous样本Score全部30无法触发报警原因缺陷区域太小画面5%或Contrast过低如浅色工件上的浅色划痕特征提取失效。解决用ViDi的“Enhance Contrast”预处理增强局部对比度或手动在缺陷周围添加10像素黑色边框提升梯度响应。4.6 现象训练耗时超30分钟CPU占用100%无响应原因图像分辨率过高1280×1024ViDi默认不缩放。解决训练前用ViDi的“Resize Images”功能统一缩放到800×600Settings → Image Acquisition → Resize to 800x600。4.7 现象导出的DLL在C#调用时报“AccessViolationException”原因ViDi Runtime版本与Studio版本不匹配如Studio 4.9导出DLL但产线PC装的是4.8 Runtime。解决在产线PC运行vdi_runtime_installer.exe从ViDi安装包提取强制升级Runtime至与Studio同版本。5. 进阶技巧让红色工具监督模式扛住产线真实压力5.1 动态阈值策略告别“一刀切”用滚动窗口自适应产线环境会缓慢变化如镜头积灰、光源衰减固定Threshold必然失效。我的做法每100张图统计一次Normal样本的Score均值μ和标准差σ实时Threshold μ 3σ3σ原则当连续5次μ上升10%触发“镜头清洁提醒”。ViDi本身不支持此逻辑但可通过其External Trigger接口实现在ViDi中启用“Send Results via TCP/IP”Tools → Communication → TCP Server用Python写轻量服务监听端口接收Score流每100条记录计算μ/σ通过HTTP POST更新ViDi的Threshold参数需开启ViDi REST API。# Python服务片段动态阈值计算伪代码 import numpy as np scores_buffer [] def on_score_received(score): scores_buffer.append(score) if len(scores_buffer) 100: mu np.mean(scores_buffer[-100:]) sigma np.std(scores_buffer[-100:]) dynamic_thresh mu 3 * sigma # 调用ViDi REST API更新阈值需提前在ViDi中启用API requests.post(http://localhost:5000/api/threshold, json{value: dynamic_thresh}) scores_buffer.clear()参数说明mu 3*sigma是工业界通用的异常阈值公式比固定值鲁棒得多。ViDi REST API文档在C:\Program Files\ViDi\Documentation\REST_API_Reference.pdf中启用方法为ViDi Studio → Settings → Enable REST API → Set Port 5000。5.2 多缺陷分级用Score区间映射维修等级单纯OK/NG无法指导产线动作。我将Score映射为三级Score区间判定产线动作0~40OK直接放行41~75Minor Defect自动分拣至复检工位76~100Major Defect触发停机报警推送缺陷图至MES实现方式在ViDi的“Result Processing”中编写Lua脚本ViDi内置脚本引擎-- ViDi Lua脚本Score分级 local score GetResult(RedTool, Score) if score 40 then SetResult(Grade, OK) SetResult(Action, Pass) elseif score 75 then SetResult(Grade, Minor) SetResult(Action, Rework) else SetResult(Grade, Major) SetResult(Action, Stop) end5.3 与LabVIEW/PLC联调用Modbus TCP传递Score产线PLC如西门子S7-1200不支持TCP JSON但普遍支持Modbus TCP。我的方案ViDi通过“Modbus TCP Server”模块需额外License暴露寄存器Score写入保持寄存器4000116位整数Score×10取整PLC读取40001按前述区间执行逻辑。关键细节ViDi Modbus Server默认端口502寄存器地址从40001开始符合Modbus规范。务必在ViDi中设置“Data Type UINT16”否则PLC读到乱码。最后说个教训去年调试螺栓缺陷检测我花3天调参却忽略了一件事——产线震动导致相机微偏移Normal样本实际是“轻微失焦”。直到用激光位移传感器测出镜头Z轴漂移0.15mm才明白为何Validation Score总卡在0.87。现在我的标准动作是每次新工装上线先用千分表校准相机刚性再训模型。ViDi再强也救不了物理世界的抖动。希望帮到你。本文还有配套的精品资源点击获取
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。