网易首页 > 网易号 > 正文 申请入驻

利用 NVIDIA TAO 和视觉 AI 模型实现工业缺陷检测的变革

0
分享至

效率对于工业制造来说至关重要,即便是微小的提升也会带来显著的经济效益。美国质量协会的数据显示,“许多企业机构实际的质量相关成本高达销售收入的 15 - 20%,有些甚至高达总运营成本的 40%。”这些惊人的统计数据揭示了一个严峻的现实:工业应用中的缺陷不仅会危及产品质量,还会消耗很大一部分的企业收入。

但如果企业能够收回这些损失的利润,并将其重新投入到创新和扩张中,那又会怎样呢?这正是 AI 的“用武之地”。

本文将探讨如何使用 NVIDIA TAO 设计出能够精准定位工业应用缺陷,进而提高整体质量的自定义 AI 模型。

NVIDIA TAO 套件是基于 TensorFlow 和 PyTorch 构建的低代码 AI 工具套件。它通过抽象化 AI 模型和深度学习框架的复杂性,来简化并加速模型训练过程。借助 TAO 套件,开发者不仅可以使用预训练模型,还可以针对特定用例对其进行微调。

在本文中,我们使用一个名为 VisualChangeNet 的高级预训练模型进行变化检测,并使用 TAO 工具套件对其进行微调,使其能够检测 MVTec Anomaly 异常检测数据集中的缺陷。这个综合基准数据集由各种工业产品的正常和缺陷样本组成,专门用于机器视觉中的异常检测。

借助 TAO 套件,我们使用迁移学习训练了一个模型,该模型在 MVTec Anomaly 异常数据集的“瓶子”类别上达到了 99.67% 的总体准确率、92.3% 的 mIoU、95.8% 的 mF1、97.5 的 mPrecision 和 94.3% 的 mRecall。图 1 显示了使用这个训练有素的模型进行的缺陷掩码预测。

图 1. 通过将缺陷图像与黄金图像进行比较 来分段预测缺陷物体的缺陷掩码

第 1 步:设置先决条件

为了按照本文重新创建这些步骤,请执行以下操作。

  1. 按照《NGC 用户指南》中提供的步骤在 NGC 目录上注册账户并生成 API 密钥:https://docs.nvidia.com/ngc/gpu-cloud/ngc-user-guide/index.html#generating-api-key

  1. 按照《TAO 快速入门指南》设置 TAO 启动器。为 MVTec 数据集下载 VisualChangeNet Segmentation Jupyter Notebook。启动 Jupyter Notebook 并运行单元格,以便跟着本文进行操作。

*请注意:VisualChangeNet 模型只能在 5.1 及以上的版本中运行。

3.按照提示进入下载页面,下载并准备 MVTec 异常检测数据集,然后复制 15 个对象类中任何一个的下载链接:https://www.mvtec.com/company/research/datasets/mvtec-ad

  1. 将下载链接粘贴到 Jupyter Notebook 第 2.1 部分中的“FIXME”位置,然后运行该笔记本单元。本文主要介绍瓶子对象,但所有 15 个对象都能在该笔记本中使用。图 2 显示了数据集中的缺陷图像样本。
#Download the dataimport osMVTEC_AD_OBJECT_DOWNLOAD_URL = "FIXME"mvtec_object = MVTEC_AD_OBJECT_DOWNLOAD_URL.split("/")[-1].split(".")[0]os.environ["URL_DATASET"]=MVTEC_AD_OBJECT_DOWNLOAD_URLos.environ["MVTEC_OBJECT"]=mvtec_object!if [ ! -f $HOST_DATA_DIR/$MVTEC_OBJECT.tar.xz ]; then wget $URL_DATASET -O $HOST_DATA_DIR/$MVTEC_OBJECT.tar.xz; else echo "image archive already downloaded"; fi

图 2. MVTec 数据集中电缆、瓶子 和晶体管的缺陷图像样本(从左到右)

我们用 MVTec-AD 中的“瓶子”类别展示了如何在工业检测用例中使用 TAO 套件与 VisualChangeNet 来实现自动光学检测。

在 Jupyter Notebook 下载数据集后,运行该笔记的第 2.3 节,将数据集处理成 VisualChangeNet 分割所需的正确格式。

import random import shutil from PIL import Imageos.environ["HOST_DATA_DIR"] = os.path.join(os.environ["LOCAL_PROJECT_DIR"], "data", "changenet")formatted_dir = f"formatted_{mvtec_object}_dataset" DATA_DIR = os.environ["HOST_DATA_DIR"]os.environ["FORMATTED_DATA_DIR"] = formatted_dir #setup dataset folders in expected format formatted_path = os.path.join(DATA_DIR, formatted_dir)a_dir = os.path.join(formatted_path, "A")b_dir = os.path.join(formatted_path, "B")label_dir = os.path.join(formatted_path, "label")list_dir = os.path.join(formatted_path, "list") #Create the expected foldersos.makedirs(formatted_path, exist_ok=True)os.makedirs(a_dir, exist_ok=True)os.makedirs(b_dir, exist_ok=True)os.makedirs(label_dir, exist_ok=True)os.makedirs(list_dir, exist_ok=True)

该原始数据集专门用于异常检测。我们将两者合并成一个包含 283 幅图像的综合数据集,然后将其分成 253 幅训练集图像和 30 幅测试集图像。两个数据集都包含有缺陷的样本。

我们确保该测试集包含每个缺陷类中 30% 的缺陷样本,“瓶子”类别主要包含“无缺陷”图像,三个缺陷类别中,每个类别各有约 20 幅图像。

图 3. 该数据集中的输入样本,包含测试图像、黄金图像和显示缺陷的分割掩码。图中采用从瓶子顶部俯视的视角,摄像头安装在瓶口的正上方。

第 2 步:下载 VisualChangeNet 模型

VisualChangeNet 模型是最先进的基于转换器的变化检测模型。其设计核心是孪生网络(Siamese Network)。孪生网络是一种独特的神经网络架构,由两个或多个相同的子网络组成。这些“孪生”子网络接受不同的输入,但共享相同的参数和权重。这种架构使 VisualChangeNet 模型能够比较当前图像和作为参考的“黄金”图像之间的特征,从而精准定位变化和变更。该功能使孪生网络尤其擅长图像对比和异常检测等任务。

模型文档提供更多细节,如架构和训练数据等。我们没有从头开始训练模型,而是从在 NV-ImageNet 数据集上训练而成的预训练 FAN 骨干开始。我们使用 TAO 套件在 MVTec-AD 数据集上针对“瓶子”类别对其进行微调。

运行笔记第 3 部分以安装 NGC 命令行工具,并从 NGC 下载该预训练骨干。

# Installing NGC CLI on the local machine.## Download and installimport os%env CLI=ngccli_cat_linux.zip!mkdir -p $HOST_RESULTS_DIR/ngccli # # Remove any previously existing CLI installations!rm -rf $HOST_RESULTS_DIR/ngccli/*!wget "https://ngc.nvidia.com/downloads/$CLI" -P $HOST_RESULTS_DIR/ngccli!unzip -u "$HOST_RESULTS_DIR/ngccli/$CLI" -d $HOST_RESULTS_DIR/ngccli/!rm $HOST_RESULTS_DIR/ngccli/*.zipos.environ["PATH"]="{}/ngccli/ngc-cli:{}".format(os.getenv("HOST_RESULTS_DIR", ""), os.getenv("PATH", ""))!mkdir -p $HOST_RESULTS_DIR/pretrained!ngc registry model list nvidia/tao/pretrained_fan_classification_nvimagenet*!ngc registry model download-version "nvidia/tao/pretrained_fan_classification_nvimagenet:fan_base_hybrid_nvimagenet" --dest $HOST_RESULTS_DIR/pretrained

第 3 步:使用 TAO 套件训练模型

在本节中,我们将详细介绍如何使用 TAO 套件训练 VisualChangeNet 模型。您可在模型卡中找到 VisualChangeNet 模型的详细信息以及支持的预训练权重,也可以使用该预训练 FAN 主干权重作为微调 VisualChangeNet 的起点,这也是我们在 MVTec-AD 数据集上进行微调时使用的权重。

如图 4 所示,该训练算法会同步更新所有子网络的参数。在 TAO 中,VisualChangeNet 支持将两幅图像作为黄金样本和测试样本输入,其目标是检测“黄金或参考”图像与“测试”图像之间的变化。TAO 支持 VisualChangeNet 架构的 FAN 骨干网络。

TAO 支持两类变化检测网络,分别是 VisualChangeNet-Segmentation 和 VisualChangeNet-Classification。在本文中,我们将使用 VisualChangeNet-Segmentation 模型,通过分割 MVTec-AD 数据集中两张输入图像之间的变化像素,来演示变化检测。

图 4. 检测瓶子类黄金图像和测试图像之间变化的 VisualChangeNet-Segmentation 算法架构图

使用工具套件微调 VisualChangeNet 模型非常简单,无需编码经验。只需在 TAO 套件中加载数据、设置实验配置并运行训练命令即可。

该实验配置文件定义了 VisualChangeNet 模型架构、训练和评估的超参数。可在训练模型前在 Jupyter Notebook 中查看并编辑该配置文件。

我们使用该配置对 VisualChangeNet 模型进行微调,在该配置中定义了一个带有预训练 FAN-Hybrid-Base 骨干(即基准模型)的 VisualChangeNet 模型,然后对该模型进行 30 个历元训练,批量大小为 8。下面展示了部分实验配置以及一些关键参数。完整的实验配置可在 Jupyter Notebook 中进行查看。

encryption_key: tlt_encodetask: segmenttrain: resume_training_checkpoint_path: null pretrained_model_path: null segment: loss: "ce" weights: [0.5, 0.5, 0.5, 0.8, 1.0] num_epochs: 30 num_nodes: 1 val_interval: 1 checkpoint_interval: 1 optim: lr: 0.0002 optim: "adamw" policy: "linear" momentum: 0.9 weight_decay: 0.01results_dir: "/results"model: backbone: type: "fan_base_16_p4_hybrid" pretrained_backbone_path: /results/pretrained/pretrained_fan_classification_nvimagenet_vfan_base_hybrid_nvimagenet/fan_base_hybrid_nvimagenet.pth

为了调整模型的性能,可以修改的一些常用值包括训练历元数、学习率(lr)、优化器和预训练骨干。如要从头开始训练,可以将 pretrained_backbone_path 设置为空,但这可能会增加为达到高准确率所需的历元数和数据量。如需进一步了解该实验配置文件中的参数,请参阅《VisualChangeNet用户指南》:https://docs.nvidia.com/tao/tao-toolkit/text/visual_changenet/index.html

现在数据集和实验配置已经准备就绪,我们要开始在 TAO 套件中进行训练了。运行第 5.1 节中的代码块,使用单颗 GPU 启动 VisualChangeNet 训练。

print("Train model")!tao model visual_changenet train \\ -e $SPECS_DIR/experiment.yaml \\ train.num_epochs=$NUM_EPOCHS \\ dataset.segment.root_dir=$DATA_DIR \\ model.backbone.pretrained_backbone_path=$BACKBONE_PATH

该单元将开始在 MVTec 数据集上训练 VisualChangeNet-Segmentation 模型。在训练过程中,模型将学习如何识别缺陷对象并输出显示缺陷区域的分割掩码。训练日志包含验证数据集上的准确率、训练损失、学习率和训练后的模型等,都将保存在实验配置中设置的结果目录中。

第 4 步:评估模型

训练完成后,我们可以使用 TAO 在验证数据集上对模型进行评估。VisualChangeNet Segmentation 的输出是 2 张给定输入图像的分割变化图,表示的是像素级缺陷。笔记的第 6 节将运行评估模型性能的命令。

!tao model visual_changenet evaluate \\ -e $SPECS_DIR/experiment.yaml \\ evaluate.checkpoint=$RESULTS_DIR/train/changenet.pth \\ dataset.segment.root_dir=$DATA_DIR

TAO 中的评估命令将返回验证集的多个 KPI,比如在缺陷类(缺陷像素)上的准确度、精确度、召回率、F1 分数和 IoU 等。

OA = 有变化/无变化像素的总体准确率(输入维度 - 256×256)

表 1. MVTec-AD 二进制变化检测(瓶子类) 中的 VisualChangeNet 模型评估指标

第 5 步:部署模型

可以使用 NVIDIA DeepStreamNVIDIA Triton 部署这一经过微调的模型。我们将其导出为 .onnx 格式。笔记第 8 节将运行 TAO 导出命令。

!tao model visual_changenet export \\ -e $SPECS_DIR/experiment.yaml \\ export.checkpoint=$RESULTS_DIR/train/changenet.pth \\ export.onnx_file=$RESULTS_DIR/export/changenet.onnx

输出的 .onnx 模型与训练好的 .pth 模型保存在同一目录下。如要部署到 Triton,请查看 GitHub 上的 tao-toolkit-triton 资源库。该项目提供了将许多 TAO 模型(包括 VisualChangeNet Segmentation)部署到 Triton 推理服务器的参考实现。

实时推理性能

推理以 FP16 精度在所提供的未修剪模型上运行。该推理性能在嵌入式 Jetson Orin GPU 和数据中心 GPU 上使用 trtexec 运行。Jetson 设备以 GPU 频率最高的 Max-N 配置运行。

请执行以下命令来运行 trtexec:

/usr/src/tensorrt/bin/trtexec --onnx= --minShapes=input0:1x3x512x512,input1:1x3x512x512 --maxShapes=input0:8x3x512x512,input1:8x3x512x512 --optShapes=input0:4x3x512x512,input1:4x3x512x512 --saveEngine=

此处显示的性能仅为推理性能。流式传输视频数据的端到端性能可能会因硬件和软件的其他瓶颈而有所变化。

总结

在本文中,我们了解了如何使用 TAO 套件微调 VisualChangeNet 模型,并将其用于分割 MVTec 数据集中的缺陷,从而实现 99.67% 的总体准确率。

现在,您还可以使用 NVIDIA TAO 检测制造工作流程中的缺陷。

如要开始使用,请先:

  • 从 NVIDIA NGC 目录下载 VisualChangeNet 模型。

  • 按照《TAO 快速入门指南》设置 TAO 启动器:https://docs.nvidia.com/tao/tao-toolkit/text/tao_toolkit_quick_start_guide.html

  • 从 GitHub 下载 VisualChangeNet Segmentation Notebook:https://github.com/NVIDIA/tao_tutorials/tree/main/notebooks/tao_launcher_starter_kit/visual_changenet

  • 请通过 NVIDIA 文档进一步了解 NVIDIA TAO 工具套件:https://docs.nvidia.com/tao/tao-toolkit/text/overview.html#:~:text=NVIDIA%20TAO%20Toolkit%20is%20a,and%20the%20deep%20learning%20framework

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
东北老两口定居成都半年后,哭着说:这哪是养老,分明是遭罪!

东北老两口定居成都半年后,哭着说:这哪是养老,分明是遭罪!

王二哥老搞笑
2026-07-20 10:54:42
女孩带88岁奶奶自驾游8省,耗时21天花费约2万,奶奶回来后一直跟邻居分享旅程

女孩带88岁奶奶自驾游8省,耗时21天花费约2万,奶奶回来后一直跟邻居分享旅程

潇湘晨报
2026-07-20 18:09:21
坏了!马斯克真是在搞庞氏骗局!万亿美元蒸发只是开始

坏了!马斯克真是在搞庞氏骗局!万亿美元蒸发只是开始

丹妮观
2026-07-20 12:25:26
日媒:韩国人要求禁播侮辱韩国足球的《功夫女足》,建议自查02世界杯

日媒:韩国人要求禁播侮辱韩国足球的《功夫女足》,建议自查02世界杯

情感大头说说
2026-07-20 13:54:37
前英格兰国脚:梅西不该像小孩一样举报,若吃红牌比赛就完了

前英格兰国脚:梅西不该像小孩一样举报,若吃红牌比赛就完了

懂球帝
2026-07-20 15:07:07
孙宇晨犀利点评邹市明夫妇:冉莹颖吸血奋斗者,鸠占鹊巢!拿刘邦吕后作比,一针见血

孙宇晨犀利点评邹市明夫妇:冉莹颖吸血奋斗者,鸠占鹊巢!拿刘邦吕后作比,一针见血

火山詩话
2026-07-19 16:20:44
邹市明亏损2亿内幕曝光,妻弟包揽工程报价翻倍,网友:这是掏空啊

邹市明亏损2亿内幕曝光,妻弟包揽工程报价翻倍,网友:这是掏空啊

梅梅诗话
2026-07-20 10:32:14
雅典市中心惊现“行李箱藏尸” ,失踪两个月的华人女子成警方调查比对重点

雅典市中心惊现“行李箱藏尸” ,失踪两个月的华人女子成警方调查比对重点

红星新闻
2026-07-20 12:55:18
村民从岷江中打捞出一枚印章,转手卖了1300万,三年后大难临头

村民从岷江中打捞出一枚印章,转手卖了1300万,三年后大难临头

海佑讲史
2026-07-20 09:30:22
“夏奇拉49岁状态”引热议,四次献唱世界杯,决赛中场秀全程高强度唱跳刷屏

“夏奇拉49岁状态”引热议,四次献唱世界杯,决赛中场秀全程高强度唱跳刷屏

草莓解说体育
2026-07-20 16:36:56
6人离队!广东男篮彻底迎来大洗牌,3大年轻赢家成功上位

6人离队!广东男篮彻底迎来大洗牌,3大年轻赢家成功上位

去山野间追风
2026-07-20 17:06:38
果然,好保姆是不流通的!网友:雇主都跟着保姆跑

果然,好保姆是不流通的!网友:雇主都跟着保姆跑

另子维爱读史
2026-07-14 19:50:24
1937年地主王学文救下女红军还收留了她的孩子,彻底改变三个家庭

1937年地主王学文救下女红军还收留了她的孩子,彻底改变三个家庭

磊子讲史
2026-01-14 16:09:59
世界杯奖项汇总:西班牙获4大奖!罗德里获金球,19岁中卫获金童奖

世界杯奖项汇总:西班牙获4大奖!罗德里获金球,19岁中卫获金童奖

我爱英超
2026-07-20 06:43:31
1球0助攻,亚马尔这届世界杯踢了什么水平?

1球0助攻,亚马尔这届世界杯踢了什么水平?

体坛周报
2026-07-20 14:15:30
赛后阿根廷主帅泪流满面:我心里大概已有了自己想怎么做的想法,我看看我是不是该停下来,很难再组建这样的集体,这让我感到心痛,对不起

赛后阿根廷主帅泪流满面:我心里大概已有了自己想怎么做的想法,我看看我是不是该停下来,很难再组建这样的集体,这让我感到心痛,对不起

三湘都市报
2026-07-20 09:45:23
SpaceX斥资520亿美元采购1.3万台英伟达GB300服务器 富士康斩获大单

SpaceX斥资520亿美元采购1.3万台英伟达GB300服务器 富士康斩获大单

cnBeta.COM
2026-07-20 09:08:02
演都不演了!马龙许昕夺冠不到24小时,恶心的事发生,还不止一件

演都不演了!马龙许昕夺冠不到24小时,恶心的事发生,还不止一件

轩逸阿II
2026-07-20 17:12:28
今日金价:大家要有心理准备了,7月20日,金价或将重现15年历史

今日金价:大家要有心理准备了,7月20日,金价或将重现15年历史

小蜜情感说
2026-07-20 13:21:13
打破无戏可拍谣言!知情人曝光肖战签约三部大戏,均合作顶流巨星

打破无戏可拍谣言!知情人曝光肖战签约三部大戏,均合作顶流巨星

暖心萌阿菇凉
2026-07-19 16:22:31
2026-07-20 18:35:00
NVIDIA英伟达中国 incentive-icons
NVIDIA英伟达中国
英伟达(中国)官方账号
3608文章数 1459关注度
往期回顾 全部

科技要闻

中兴阶跃荣耀齐出手,AI手机争夺系统入口

头条要闻

谢贤遗产超1亿港元 九成留给张柏芝和谢霆锋两个儿子

头条要闻

谢贤遗产超1亿港元 九成留给张柏芝和谢霆锋两个儿子

体育要闻

65岁肌肉男,世界杯最年长冠军主帅

娱乐要闻

谢霆锋发文确认父亲谢贤去世 享年89岁

财经要闻

AI开始挤泡沫

汽车要闻

无线控不旗舰 谁说的?

态度原创

教育
本地
游戏
旅游
军事航空

教育要闻

锚定特色办学 赋能创新培育——2026普通高中多样化特色发展研讨会深度观察

本地新闻

2026暑期旅行新灵感:跟着影视去旅行

IGN盛赞《恶魔城》新作:经典2D回归 难度不坐牢

旅游要闻

视点|一池粉荷绽放,龙潭西湖开启夏日赏荷季

军事要闻

两名美军士兵死亡 美伊冲突升级

无障碍浏览 进入关怀版