尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
计算机视觉翻车实录:把检测当分类做,监督学习让我白标了5000张图
计算机视觉翻车实录:把检测当分类做,监督学习让我白标了5000张图周一下午,我坐在工位上,看着标注平台里已经标到 4532 张的工业零件图片,手开始发抖。这些图片原本计划用监督学习训练一个分类模型,来检测计算机视觉中常见的表面划痕和凹陷。但我忽略了一个致命事实:生产线上随时可能出现从未见过的新型缺陷,分类模型根本兜不住。标注的成本已经烧掉了两个月的加班工时,模型召回率却还不到 60%。这时候我才想起团队老李说过的那句:“先把人工智能入门课程看完再选算法,比你闷头标图强十倍。”这门人工智能入门我原以为是给纯小白看的,打开才发现它用一张问题类型决策树讲透了监督、无监督、强化学习的边界--正是我当时在计算机视觉项目里缺的那块拼图。如果早两个月看过,至少不会把需要无监督异常检测的任务,硬生生塞进监督学习的框里。我以为所有图像问题都是分类问题刚接手这条产线的缺陷检测项目时,我脑子里只有一个等式:计算机视觉 CNN 大量标注。翻了两篇 ResNet 的论文,就认定一切问题都能抽象成“正常/划痕/凹陷”的多分类任务。当时连机器学习基础都没吃透,只是看网上教程说用监督学习加 5000 张标注图,就能搞定工业检测。我带着两个实习生连标了三周,把相机角度、光照变化、油污反光的情况都纳入了训练集。这个阶段我对计算机视觉的理解非常浅层:以为只要图片进网络、标签对齐,模型自然会学会“看”出缺陷。机器学习基础课程里反复强调的“假设前提”--训练集和真实分布一致--被我一扫而过。# 最初的监督学习分类代码(过于天真) import torchvision.models as models model models.resnet18(pretrainedTrue) num_ftrs model.fc.in_features model.fc torch.nn.Linear(num_ftrs, 3) # 正常、划痕、凹陷 criterion torch.nn.CrossEntropyLoss() # 完全没考虑新类型缺陷出现时的泛化问题 optimizer torch.optim.Adam(model.parameters(), lr0.001)这套代码在验证集上跑到 97% 的准确率,上线头三天一切平静。直到第四天,一种从未标过的“涂层剥落”缺陷出现在摄像头上,模型把它稳稳地分进了“正常”。混淆矩阵打脸:99%准确率全是假象事故发生后我立刻拉了混淆矩阵来分析,发现“正常”类的精确率飙到 99%,但“划痕”和“凹陷”的召回率已经跌到 40% 以下。因为训练集中绝大部分是正常样本,模型只需把所有东西往“正常”里推,就能拿到漂亮的宏观指标。没有混淆矩阵的逐类拆解,99% 这个数字差点让我错过产线停机的真正原因。如果你正在用计算机视觉做质量检测,强烈建议把混淆矩阵的每一列都读一遍--机器学习课程里教过如何用热力图定位混淆最严重的类别,这种分析方法直接帮我锁定了数据不平衡的问题。但治标不治本,新缺陷永远在产生,监督学习的边标注边训练模式根本追不上产线变化。这时我才开始正视另一个方向:深度学习中的无监督异常检测。深度学习入门课程里有一个用自编码器做重建误差检测的案例,我照着改了一版。# 自编码器异常检测(重建误差过大视为缺陷) class Autoencoder(nn.Module): def __init__(self): super().__init__() self.encoder nn.Sequential( nn.Conv2d(3, 16, 3, stride2, padding1), nn.ReLU(), nn.Conv2d(16, 32, 3, stride2, padding1), nn.ReLU(), ) self.decoder nn.Sequential( nn.ConvTranspose2d(32, 16, 3, stride2, padding1, output_padding1), nn.ReLU(), nn.ConvTranspose2d(16, 3, 3, stride2, padding1, output_padding1), nn.Sigmoid() ) def forward(self, x): return self.decoder(self.encoder(x)) # 只用正常样本训练,重建误差阈值得反复调 anomaly_score torch.mean((recon - input) ** 2, dim[1,2,3])这个模型不再依赖缺陷标签,理论上能揪出任何“不像正常样本”的图像。但数据预处理的坑又冒了出来:不同批次的零件表面反光程度不同,重建误差基线漂移严重,阈值一天一改。AWS 机器学习课程里专门有一节讲图像数据的标准化与增强,我照着把光照均衡化写进流水线后,误报率才从 23% 压到 8% 以内。无监督学习怎么被我用到了真正的缺陷检测里无监督学习最大的吸引力在于,它不需要成千上万张缺陷图就能启动。深度学习基础课程里反复强调的无监督学习两大武器--聚类与降维--被我搬到了计算机视觉的异常检测流水线中。先用预训练 CNN 提取图像嵌入,再通过孤立森林对嵌入做异常评分,这是看完AWS深度学习课程中“模型组合”章节后的灵感。具体流程是这样的:只用 800 张正常的零件图片训练一个轻量卷积网络作为特征提取器,不接分类头;然后将所有训练图像送入这个网络,得到 128 维的嵌入向量,导入 Scikit-learn 的 IsolationForest 做密度异常检测。上线后,新出现的涂层剥落、碎屑附着等未知缺陷,全部被高异常分拦截,召回率从之前分类模型的 58% 飙升到 92%。# 使用特征提取 异常检测的无监督流水线 from sklearn.ensemble import IsolationForest import torch # 提取正常样本的嵌入 feature_model torch.load(feature_extractor.pth) normal_embeddings [] with torch.no_grad(): for img in normal_loader: emb feature_model(img).numpy() normal_embeddings.append(emb) normal_embeddings np.concatenate(normal_embeddings) # 训练孤立森林 clf IsolationForest(contamination0.05) clf.fit(normal_embeddings) # 推理时返回异常分数 scores clf.decision_function(new_embeddings)这次调整让计算机视觉检测流水线从“被动补标”变成了“主动发现”,标注量直接砍掉 70%--原来需要靠人眼从几千张图里找出缺陷,现在只需对异常分数高的图片复核即可。画出问题类型决策树后,我再也没选错过算法真正让我把概念吃透的,是回炉人工智能入门课程的那两个周末。课程里把机器学习问题按“是否有标签”“是否需要与环境交互”分成了清晰的三个大枝,我照这个思路给计算机视觉项目画了一张决策树:能用标签定义全部模式?→ 监督学习(如 OCR、已知缺陷分类)缺陷形态不可穷举、只有正常样本?→ 无监督学习(如表面异常检测)需要连续做决策(如自适应调参、动态跟踪)?→ 强化学习(如视觉伺服从调焦)这张决策树后来挂在我们组的白板上,机器学习基础知识被压缩成一套可执行的选择逻辑,新人上手计算机视觉时先走一遍树,再决定用哪类算法。同时我补了机器学习管道的完整流程:特征工程阶段,我会先用数据预处理把光照归一化,再用特征存储把中间嵌入固化,避免每次实验重新生成;模型上线后定期检查数据漂移,一旦重建误差基线偏移超过 15%,就触发重训。亚马逊云科技机器学习的课程案例里,把这些步骤串成了一个端到端的 MLOps 流水线,看完我才意识到,之前边标边练、无日志无版本的作坊式搞法,在任何正式计算机视觉系统里都是灾难。给类似处境的人的建议如果你也在计算机视觉里踩过算法选型的坑,下面 6 条建议或许能帮你省下几百小时:先画问题类型决策树再动手--完整拆一遍人工智能基础里的监督/无监督/强化适用边界,每接到新的计算机视觉需求,先做问题分类。别只盯混淆矩阵的准确率--把混淆矩阵的每一类召回、精确都拆开看,机器学习课程里这点强调过无数次。用无监督学习兜底未知模式--在计算机视觉任务里,只要存在“你说不清楚的长尾缺陷”,就值得并行一套无监督方案;AWS深度学习课程的自编码器案例可以直接改。把特征提取流水线固化,减少重复标注--用特征工程和特征存储保存中间嵌入,避免每次换算法都重新处理图像,这是机器学习管道的核心思想。用数据预处理对抗光照和背景漂移--图像直方图均衡化、高斯模糊去噪,这些在AWS机器学习实验环境里都有现成模板。定期检查数据漂移,别让模型悄悄地坏掉--这是机器学习基础里最容易忽视的一节,但恰好是计算机视觉系统长期稳定的命门。回看最初那个白标 5000 张图的自己,问题不是不会写代码,而是压根没建立起“算法选型要先于模型调参”的认知。如果你也准备踏入计算机视觉这个方向,或者已经被监督、无监督、强化学习搞得一头雾水,人工智能入门课程里的那张决策树,可能就是让你节省两个月试错成本的第一步。
RELATED

相关推荐

右值引用:C++的性能利器,一文读懂移动语义

右值引用:C++的性能利器,一文读懂移动语义

资源搬家,而不是资源复制——让C程序跑得更快前言在C编程中,我们经常遇到这样的场景:创建了一个大对象,然后需要把它传递给另一个变量。传统的方式是复制,但复制大量数据(比如百万级数组)的成本…

📅 2026/11/11 21:08:03
参半牙膏研发投入大吗?三年超5400万且用料升级

参半牙膏研发投入大吗?三年超5400万且用料升级

据小阔集团港股招股书数据显示,参半近三年累计研发开支超过5400万元,2025年研发投入达1939万元,较2024年同比增长15%。在日化口腔护理这一全球平均研发费率处于1%至2%的成熟赛道中,参半2025年营业收入同比大增82.5%至24.99亿元&am…

📅 2026/10/8 16:37:54
YOLOv26药品铝塑板缺粒检测实战:Python训练、验证与推理完整代码

YOLOv26药品铝塑板缺粒检测实战:Python训练、验证与推理完整代码

文章来源说明:本文由 ZeroOne AI 整理发布,官网与 CSDN 双端同步首发,原文见 www.zeroone-ai.com。一、项目目标 针对药品铝塑板视觉检测,本项目使用: 500万彩色工业相机 穹顶漫射光 YOLOv26 实现药品铝塑板的&…

📅 2026/10/2 15:39:55
MORE NEWS

更多资讯

📰

2026河南最新政策下司机算特种工退休吗怎么考

2026河南最新政策下司机算特种工退休吗怎么考 你是不是也正愁没特种作业证,找工作处处碰壁?2026河南最新政策下,很多岗位明确要求持证上岗,司机算特种工退休吗?这个问题直接影响你能不能拿到退休金、能不能继续从事相关工作。如果你也在犹豫要不…

📰

村里免费办理电工证报名流程全公开!网上查询最新政策,工地太忙根本没时间复习考试

村里免费办理电工证报名流程全公开!网上查询最新政策,工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,你是不是也经常这样想?特别是像我们这种在工地常年奔波的电工作业人员,时间紧张、任务繁重,很多时候连基本的考试复习都顾不上。现在国家政…

📰

龙岗区电工证到期复审千万别踩坑,电工证过期了还能不能上岗?

龙岗区电工证到期复审千万别踩坑,电工证过期了还能不能上岗? 你还在为电工证到期复审发愁?急需特种作业证才能上岗找工作,偏偏电工证有效期到了还不知道怎么办?龙岗区电工证到期复审千万别踩坑,现在不搞清楚,等到找工作的关键时刻就只能干瞪眼。下面从…

📰

秦皇岛电工证电话怎么转异地,上岗必备证书怎么考

秦皇岛电工证电话怎么转异地,上岗必备证书怎么考 你是不是正在找工作,却发现没有电工证根本进不了门?现在各行各业对特种作业证的要求越来越严格,尤其是像电工证这类 上岗必备…

📰

泌阳哪里有办电工证怎么找不被坑 电子证书办理攻略

泌阳哪里有办电工证怎么找不被坑 电子证书办理攻略 不知道去哪报名怕被中介坑,想在泌阳办理电工证又怕被坑?特别是想拿到 电子证书…

📰

苏州电工证年审在哪里 上岗必备流程全解析

苏州电工证年审在哪里 上岗必备流程全解析 你是不是也担心自己学历不高,根本报不上名?其实,电工证的报考对学历的要求并没有你想象中那么高,只要你是年满18周岁、具备初中及以上学历,就可以参加电工证的考试。电工证是很多行业上岗必备的证书,特别是…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬