市三院皮肤科的王医生,每天要接诊上百位患者。他一眼扫过病人的皮肤,就能分辨出这是湿疹、是真菌感染还是接触性皮炎,然后开出外用药、口服药或者收治住院。刚来的实习生佩服地问诀窍,王医生笑着说:“看得多了。颜色的深浅、纹理的粗细、形态的方圆,各是各的病。” 工业质检线上的“AI 质检员”,干的就是同样的活儿。传送带上的手机壳、汽车零部件、电路板,就是它要诊断的“病人”;划痕、污渍、变形,就是皮肤上的“疹子”“色斑”“肿块”。本文要讲的表面瑕疵分类,就是教会这位“AI 医生”——如何看、如何判断、如何分级处理、如何控制诊疗成本。从特征提取到分类模型,从类别不平衡到阈值调优,每一步都像医生问诊一样有章可循。

岗位关联

掌握表面瑕疵分类的完整技术链路,是从“会跑模型”走向“能做工业项目交付”的关键一步——这是 AI 视觉落地制造业最真实、最直接的场景之一。

目录
  1. 可视化演示
  2. 瑕疵类型辨识:先认识三类“皮肤病”
  3. 特征提取方法:AI 医生的“望闻问切”
  4. 分类模型设计:从经验规则到 AI 专家
  5. 分级处理流程:轻症开药,重症手术
  6. 类别不平衡处理:当 99% 的人都“没病”
  7. 阈值调优策略:放宽还是收紧诊断标准
  8. 业务ROI平衡:把每一分钱花在刀刃上
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示瑕疵特征提取、不平衡数据处理及混淆矩阵优化的三模态交互动画。

本节配有交互动效(进入视口后自动加载,约 3KB)。

瑕疵类型特征提取 划痕 污渍 HOG+LBP+GLCM 不同瑕疵类型用方向梯度LBP和灰度共生矩阵提取特征

瑕疵类型辨识:先认识三类“皮肤病”

王医生能精准诊断,第一步靠的是“认病”——皮肤上的异常形态五花八门,但他先归纳为几大类:渗液的、掉屑的、鼓包的。工业质检也一样,面对产线上形态各异的缺陷,首先要建立“瑕疵类型”的分类框架。最常见的三类是划痕、污渍和变形。划痕是表面的线性损伤,像手臂上被指甲划过留下的细线;污渍是颜色异常的区域,类似脸上的色斑;变形则是产品结构形态的偏离,好比皮肤上鼓起的肿块。

从图像上看,三类瑕疵的视觉特征差异明显:划痕细长、有方向性;污渍呈块状、颜色异常;变形通常伴随轮廓变化。把这些差异转化为数学语言,就是定义一个瑕疵类别集合。对分类任务来说,首先要明确模型要输出“哪几类答案”——类别定义越清晰,后续的特征提取和模型训练就越有方向。

C={c1,c2,…,cK}\displaystyle C = \{c_1, c_2, \ldots, c_K\}

1. 类别集合:$C$ 表示所有可能瑕疵类别组成的集合,例如 $C = \{$划痕、污渍、变形$\}$。

C={c1,c2,…,cK}C = \{c_1, c_2, \ldots, c_K\}

2. 单个类别:$c_i$ 代表第 $i$ 类瑕疵,其中 $c_1$ 可以是划痕,$c_2$ 是污渍,$c_3$ 是变形。

ci∈C,i=1,2,…,Kc_i \in C, \quad i = 1, 2, \ldots, K

3. 类别总数:$K$ 表示类别总个数,工业场景中通常 $K$ 取值在 3 到 10 之间,有时还会加上一个“正常”类别。

K=∣C∣K = |C|

回到王医生的诊室,他脑子里就装着一张“皮肤病类别表”,每个病人的症状都会先归入某一类,再决定下一步怎么治。表面瑕疵分类的第一课也是这个:把瑕疵类型定义清楚,后面的模型才有明确的“答题范围”。

特征提取方法:AI 医生的“望闻问切”

王医生为什么一眼能分出湿疹和荨麻疹?他说是因为“看”——看颜色红不红、摸表面糙不糙、观形状圆不圆。这些观察角度,在机器视觉里就叫“特征提取”。特征不是图像本身,而是从图像中提炼出的统计量或结构信息,让计算机能抓住“划痕长什么样、污渍长什么样”的本质。

最常见的三大类特征:颜色特征、纹理特征和形状特征。颜色特征统计像素的颜色分布,比如污渍区域的颜色平均值和正常区域差异大,就能靠颜色区分;纹理特征刻画表面的粗糙程度和规律性,划痕区域的纹理方向性强;形状特征描述目标的几何结构,变形的产品在长宽比、面积等指标上会异常。在实际工业场景中,还会用到边缘检测算子(如 Sobel、Canny),先把图像中灰度突变的位置提取出来,这些“边缘”往往是划痕和变形的骨架。

H[k]=1N∑i=1NI(b(pi)=k)\displaystyle H[k] = \frac{1}{N}\sum_{i=1}^{N} \mathbb{I}(b(p_i) = k)

1. 像素统计:$p_i$ 表示图像中第 $i$ 个像素,$N$ 是像素总数;$b(p_i)$ 把该像素的颜色值映射到第 $k$ 个颜色区间。

b(pi)=kb(p_i) = k

2. 指示函数:$\mathbb{I}(\cdot)$ 是指示函数,当括号内条件成立时取 $1$,否则取 $0$,用来“计数”。

I(b(pi)=k)={1,若 b(pi)=k0,其他\mathbb{I}(b(p_i) = k) = \begin{cases} 1, & \text{若 } b(p_i) = k \\ 0, & \text{其他} \end{cases}

3. 归一化比例:除以 $N$ 得到第 $k$ 个颜色区间的像素占比,构成直方图向量 $H$。

H[k]∈[0,1],∑kH[k]=1H[k] \in [0, 1], \quad \sum_{k} H[k] = 1

王医生的“望闻问切”沉淀在脑海里是几十年的经验,而 AI 质检员的“看家本领”就是一行行特征计算代码。特征提取质量直接决定分类准确率的上限——就像医生如果只靠“看颜色”而不会“摸纹理”,很多病症就会漏掉。

分类模型设计:从经验规则到 AI 专家

王医生带徒弟,一开始教的是经验规则:“如果皮疹发红、有渗出液,多半是湿疹;如果边界清晰、像铜钱一样圆,可能是真菌感染。”这就是最朴素的分类模型——决策规则。工业质检里对应的就是传统机器学习方法:把提取到的特征向量输入决策树、支持向量机(SVM)等分类器,让模型自动学习特征和瑕疵类别之间的映射关系。

后来徒弟看过的病例多了,形成了一种说不清道不明的“直觉”——这就像深度学习模型。卷积神经网络(CNN)不再需要人工设计特征,而是从海量图像中自动学习层级化的视觉特征:浅层学边缘纹理,深层学语义结构。在产线质检中,CNN 在复杂背景、多类瑕疵的任务上通常表现更好,但需要更多数据、算力和调参功夫。选传统方法还是深度学习,要看数据量、硬件和实时性约束。

σ(zi)=ezi∑j=1Kezj\displaystyle \sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}

1. 原始分数:$z_i$ 是模型对第 $i$ 类的打分,值可正可负,直接看大小不方便解释。

zi=模型的第 i 类输出z_i = \text{模型的第 } i \text{ 类输出}

2. 指数变换:对每个分数取 $e^{z_i}$,把负数变正数,同时放大分数间的相对差距。

ezi>0e^{z_i} > 0

3. 归一化:除以所有类别的指数之和,得到 0 到 1 之间的概率值,总和为 1。

∑j=1Kσ(zj)=1\sum_{j=1}^{K} \sigma(z_j) = 1

机器学习的本质,是把王医生“看多了自然知道”的经验,变成可以计算和复用的数学函数。分类模型设计没有放之四海皆准的答案,就像老中医的方子也要根据病人体质调整——数据量大选深度模型,数据量小用传统方法,永远要“对症下药”。

分级处理流程:轻症开药,重症手术

王医生看完病,不会对所有人都说“住院手术”——他会根据病情严重程度开出不同方案:轻微湿疹开支药膏,中度感染开口服药,重度病变才安排住院。这个“分级处置”的思维,工业质检也必须学会。表面瑕疵分类的最终目的不只是“找出缺陷”,而是“决定怎么处理”:轻微瑕疵可以返修,中等瑕疵降级销售,严重瑕疵直接报废。

分级处理流程的自动化,依赖于分类模型输出的“类别 + 置信度”双信息。产线控制系统根据分类结果触发机械臂分拣、报警灯提示或者停机检修。同时,对于模型置信度低或介于两个等级之间的“疑难杂症”,必须设置人工复检兜底——这相当于医生遇到拿不准的病例,会让患者去做进一步检查。

y=f(x)=arg⁡max⁡cP(c∣x)\displaystyle y = f(x) = \arg\max_{c} P(c \mid x)

1. 样本输入:$x$ 是一个待分类的样本(如一张产品表面图像的特征向量)。

x∈Rd(d 为特征维数)x \in \mathbb{R}^d \quad (d \text{ 为特征维数})

2. 条件概率:$P(c \mid x)$ 表示在给定样本 $x$ 的条件下,它属于类别 $c$ 的概率。

∑c∈CP(c∣x)=1\sum_{c \in C} P(c \mid x) = 1

3. 最大后验决策:$\arg\max$ 表示“取使概率最大的那个类别”,即选择最可能的类别作为输出。

y^=arg⁡max⁡cP(c∣x)\hat{y} = \arg\max_{c} P(c \mid x)

“发烧就挂水,骨折就手术”——分级处理让 AI 质检员不再是“一刀切”的判官,而是懂轻重缓急的“主治医生”。每一件产品都按照它的“病情”流向正确的出口,产线的整体效率和客户满意度随之提升。

类别不平衡处理:当 99% 的人都“没病”

王医生的门诊有个特点:一天 100 个患者里,99 个是普通湿疹,只有 1 个是真菌感染。如果他只学一句话:“全部诊断为湿疹”,准确率高达 99%,可那个真菌感染患者就被耽误了。工业质检的困境一模一样:产线上绝大多数产品是合格的,缺陷品可能只占 1%~5%。模型会倾向于把所有样本都判成“正常”来获得高准确率,导致真正需要关注的缺陷被忽略。

应对类别不平衡,有几个被验证有效的策略。过采样:对少数类(缺陷样本)重复抽样,让模型“多见几次”;欠采样:从多数类(正常样本)中剔除一部分,让两类数量接近;加权损失函数:给少数类更高的错分代价,模型就会更重视它;数据增强:对缺陷样本做旋转、平移、加噪等变换,生成多样化的新样本,相当于“克隆”出更多病例。

L=−∑i=1Nwyilog⁡pi\displaystyle L = -\sum_{i=1}^{N} w_{y_i} \log p_i

1. 交叉熵损失:$\log p_i$ 是模型对第 $i$ 个样本真实类别的对数概率,概率越低,$\log p_i$ 负得越多,损失越大。

log⁡pi≤0\log p_i \le 0

2. 类别权重:$w_{y_i}$ 根据类别样本比例设定,少数类权重高于多数类,如 $w = \frac{N}{K \times N_c}$。

wyi=N总K×Ncw_{y_i} = \frac{N_{\text{总}}}{K \times N_{c}}

3. 加权求和:对所有样本加权求和再取负号,得到总的训练损失,优化器会优先降低权重大的类别误差。

L≥0L \geq 0

“均衡饮食才能身体健康”——类别不平衡处理就像是给模型“调剂营养”,不能让它只吃“正常类”这单一食物。只有见过了足够多、足够多样的缺陷样本,AI 质检员才能像王医生一样对罕见病也保持警觉。

阈值调优策略:放宽还是收紧诊断标准

王医生对每个疑似病例,心里都有一杆秤:症状典型到几分才敢确诊?这个“几分”就是阈值。诊断标准定得严(高阈值),他只会确诊最有把握的病,但可能漏掉症状不典型的真患者;标准定得松(低阈值),他什么病都敢报,又会让没病的人白吃药。工业质检的模型也有同样的“尺度”——置信度阈值。

分类模型为每个样本输出各类别的概率,其中最高概率就是置信度分数。设置阈值时,高于阈值的样本判为缺陷,低于阈值判为正常。阈值调的越高,系统越“谨慎”,误检(良品当次品)少但漏检(次品当良品)多;阈值越低,系统越“激进”,漏检少但误检多。ROC 曲线刻画了不同阈值下“真正例率 vs 假正例率”的此消彼长,帮我们找到最优平衡点,再结合业务成本(误检浪费材料、漏检损害客户信任)确定最终值。

F1=2×P×RP+R\displaystyle F1 = \frac{2 \times P \times R}{P + R}

1. 精确率:$P = \frac{TP}{TP + FP}$,在模型判为缺陷的样本中,真实缺陷所占比例(“报的病有多少真”)。

P=TPTP+FPP = \frac{TP}{TP + FP}

2. 召回率:$R = \frac{TP}{TP + FN}$,在所有真实缺陷中,被模型找出来的比例(“真的病有多少被报”)。

R=TPTP+FNR = \frac{TP}{TP + FN}

3. 调和平均:P 和 R 的调和平均不会偏向任何一个极端值,只有当两者都高时 F1 才高——鼓励模型“既准又全”。

F1=2PRP+RF1 = \frac{2PR}{P + R}

“诊断标准太松会误诊,太紧会漏诊”——王医生会在行医经验中不断校准自己的尺度。AI 质检员也一样,上线前用 ROC 曲线找到理论最优区间,上线后根据产线实际数据微调阈值,让系统始终处于最佳工作状态。

业务ROI平衡:把每一分钱花在刀刃上

医院引进一台新设备,院长要算账:设备能多诊断多少病人、减少多少误诊赔偿、省下多少人工成本?工业 AI 质检项目同样要过“ROI 这一关”。一个视觉检测模型即使准确率再高,如果部署和运维成本超过它带来的收益,企业也不会买单。ROI 是衡量整个质检系统价值的最终标尺。

计算 ROI 时,收益端来自:减少人工质检人力成本、降低次品流出导致的客户赔偿、提高产线良品率和产能。成本端包括:硬件(相机、工控机)、软件(算法开发、平台授权)、部署调试、数据标注和模型维护。误检率和漏检率直接影响收益——误检高浪费良品材料和返工工时,漏检高则面临客户退货赔偿与品牌损伤。因此,阈值调优不只是算法工程师的技术活,更是和财务、生产、质量部门一起做的经营决策。

ROI=B−CC\displaystyle ROI = \frac{B - C}{C}

1. 总收益:$B$ 包括省下的人工成本、减少的赔偿损失、提升的良品率带来增收等。

B=B人力节省+B损失减少+B产能提升B = B_{\text{人力节省}} + B_{\text{损失减少}} + B_{\text{产能提升}}

2. 总成本:$C$ 涵盖硬件、软件、数据、人力、维护等全部投入。

C=C硬件+C软件+C数据+C运维C = C_{\text{硬件}} + C_{\text{软件}} + C_{\text{数据}} + C_{\text{运维}}

3. 回报率:$\frac{B - C}{C}$ 为净收益与成本的比值,衡量每一元投入带来的净回报。

ROI=BC−1ROI = \frac{B}{C} - 1

王医生开药方,既要治好病,也要考虑患者的钱包;AI 质检系统的设计,同样需要在技术理想和商业现实之间找平衡。记住:业务上不划算的“完美模型”,不会在产线上活过半年。

AI 应用场景

电子行业 PCB 板缺陷检测

阶段:模型部署与推理

解决的问题:PCB 板上的短路、断路、多铜、少铜等缺陷检测,传统人工目检速度慢、标准难统一,且人眼长时间工作容易疲劳。AI 视觉系统用高分辨率相机拍摄板面,通过特征提取 + 分类模型自动识别缺陷类型,并实时触发分拣信号。

具体案例:某 PCB 代工厂在回流焊后检测环节部署缺陷分类系统,传送带速度 0.5m/s,相机每分钟拍摄 60 块板,模型将漏检率从人工目检的 3% 降到 0.5%,误检率控制在 1% 以内,节省 4 名质检员的人力成本。

汽车零部件表面质量分级

阶段:数据准备与模型训练

解决的问题:汽车金属零部件的划痕、磕碰、氧化斑等瑕疵类别多且样本不平衡(良品占 95% 以上)。需要构建一个能兼顾各类瑕疵的鲁棒分类器,避免“只认识良品”的模型偏向。

具体案例:某汽车零部件供应商收集 10 万张表面图像,其中划痕仅 2 千张、氧化斑 1.5 千张。团队采用过采样 + 旋转/亮度数据增强扩充缺陷样本,并用加权交叉熵损失训练 CNN,使划痕类的召回率从 68% 提升至 92%。

纺织品面料瑕疵分级分拣

阶段:业务决策与部署

解决的问题:纺织厂的面料瑕疵(织疵、油污、破洞)需要按等级分流——轻微降级二等品、严重剪裁报废。分拣标准直接关系产品定价和客户投诉率,需结合漏检赔付成本与误检原料损失来设定分类阈值。

具体案例:某纺织企业根据平均布料单价(40 元/米)和客户索赔金额(约为订单额 20%)计算最优阈值,使 F1 分数从 0.82 提升到 0.91,年减少因漏检导致的索赔约 120 万元,同时因误检减少的原料浪费省下约 80 万元。

Python 演示

python57 行
import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.tree import DecisionTreeClassifier # 模拟工业质检中的瑕疵特征数据(实际项目由图像处理提取)np.random.seed(42)label_map = {0: '正常', 1: '划痕', 2: '污渍', 3: '变形'} def generate_sample(label):    if label == 0:    # 正常:面积小、边缘少、颜色差异小        return np.array([np.random.uniform(0.001, 0.01),                         np.random.uniform(0.001, 0.005),                         np.random.uniform(0.01, 0.05)])    if label == 1:    # 划痕:面积小但边缘密度高        return np.array([np.random.uniform(0.005, 0.02),                         np.random.uniform(0.02, 0.06),                         np.random.uniform(0.06, 0.2)])    if label == 2:    # 污渍:面积大、颜色差异大        return np.array([np.random.uniform(0.02, 0.08),                         np.random.uniform(0.005, 0.02),                         np.random.uniform(0.3, 0.6)])    # 变形:面积大、边缘也较多    return np.array([np.random.uniform(0.02, 0.06),                     np.random.uniform(0.01, 0.05),                     np.random.uniform(0.2, 0.5)]) # 构造类别不平衡数据集:良品40个,划痕15个,污渍15个,变形10个labels = np.array([0]*40 + [1]*15 + [2]*15 + [3]*10)X = np.array([generate_sample(l) for l in labels]) # 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(    X, labels, test_size=0.3, stratify=labels, random_state=42) # 训练决策树分类器clf = DecisionTreeClassifier(max_depth=4)clf.fit(X_train, y_train)y_pred = clf.predict(X_test) # 评估分类效果并输出混淆矩阵acc = np.mean(y_pred == y_test)print(f"整体准确率: {acc:.2%}")print("\n混淆矩阵(行=真实类别,列=预测类别):")cm = np.zeros((4, 4), dtype=int)for t, p in zip(y_test, y_pred):    cm[t, p] += 1for i in range(4):    row = " ".join(f"{v:2d}" for v in cm[i])    print(f"{label_map[i]:4s} | {row}") # 输出每个类别的召回率,观察不平衡类别表现print("\n各类别召回率:")for i in range(4):    total = np.sum(y_test == i)    hit = np.sum((y_test == i) & (y_pred == i))    recall = hit / total if total > 0 else 0    print(f"{label_map[i]:4s} : {recall:.2%} ({hit}/{total})")
目的:完整演示了“特征提取 → 构造不平衡数据集 → 训练分类器 → 评估类别召回率”的工业瑕疵分类全流程,从混淆矩阵可以直观看到多类别评估比“整体准确率”更可信。
  1. labels = np.array([0]*40 + [1]*15 + [2]*15 + [3]*10)构造类别不平衡数据,模拟真实产线良品远多于缺陷的情况。
  2. if label == 0: return np.array([...])每个类别有不同的特征分布范围,对应“正常/划痕/污渍/变形”的视觉差异。
  3. train_test_split(..., stratify=labels, ...)按类别比例分层划分训练集和测试集,保证测试集中各类别都有代表。
  4. DecisionTreeClassifier(max_depth=4)深度为 4 的决策树,简单可解释,适合作为工业场景的轻量级基线模型。
  5. cm[t, p] += 1在混淆矩阵对应位置计数,行是真实类别、列是预测类别,对角线越亮分类越准。
  6. recall = hit / total分别计算每类召回率,能暴露“整体准确率高但缺陷类召回率低”的问题。

常见误区

误区“现在都 2025 年了,谁还用颜色直方图、Sobel 边缘检测?直接上 CNN 端到端训练就完事了,特征工程是给老古董学的。”

正解工业场景中,数据量往往只有几千张,特别是缺陷样本可能只有几百张。深度学习在这种小数据场景下容易过拟合,反而传统特征 + 轻量分类器(如 SVM、决策树)更稳定、推理更快、可解释性更强——产线出问题时能定位是哪里“看走眼”。实际项目中,很多成熟方案是“特征提取得好 + 简单模型”跑赢“乱上深度模型”。

为何常见:学术界追求端到端深度模型的风气影响太深,加上深度模型在公开大数据集上战绩辉煌,让人误以为它是所有场景的万能解。

误区“我的模型在测试集上准确率 99%,这么高的准确率,肯定能直接部署到产线了。”

正解如果缺陷只占 1%,一个“全部判正常”的模型准确率也有 99%。真正要看的是每类(尤其缺陷类)的精确率和召回率。应使用混淆矩阵 + 类别召回率来评估,而不是只看整体准确率一个数字。

为何常见:准确率是最直观好理解的指标,人们习惯把它当成模型好坏的唯一标尺,忽略了类别不平衡数据下准确率的“虚高”陷阱。

误区“把阈值调到 0.95,只有非常确认的缺陷才报,误检肯定少,系统看起来很'专业'。”

正解阈值越高,漏检的真实缺陷越多。一个真实缺陷流出客户手中,轻则退货赔偿,重则影响整条终端产品的安全认证(如汽车刹车片裂纹)。阈值应当基于误检成本与漏检成本的具体数值来求解最优平衡点,而不是拍脑袋追求“越高越好”。

为何常见:“严格检查更安全”是生活中的直觉,但工业生产中任何决策都有成本,不能脱离代价谈“更安全”。

误区“缺陷样本太少?用 GAN 无脑生成几万张缺陷图,数据不就平衡了吗?”

正解GAN 生成的图像往往与真实产线的缺陷形态有差异(过度光滑、伪影、分布塌缩),模型学会了“假缺陷”但在真实缺陷上表现不佳。更实用的做法是组合拳:过采样 + 传统数据增强(旋转、缩放、亮度扰动)+ 加权损失,在真实数据分布内做文章。

为何常见:看到“生成样本”四个字就觉得是免费午餐,忽视了生成数据的分布真实性问题。

误区“模型输出缺陷概率 0.8,那就说明这个产品有 80% 的概率是缺陷啊,直接拿来做决策准没错。”

正解softmax 概率反映的是类别间相对竞争力,不是真实世界概率。深度模型普遍存在“过度自信”,可能输出 0.99 但实际是错的。工程实践上需要用校准方法(如温度缩放)调整概率,或直接用模型分数排序来做阈值决策。

为何常见:softmax 输出恰好是 0~1 的数,和“概率”长得太像,人们容易直接把数学意义上的“归一化分数”等同于统计概率。

面试题

Q1. 表面瑕疵分类中,区分划痕与污渍最常用的特征是什么?

单选题 · easy

  • A.瑕疵的细长程度比例← 正确答案
  • B.图像的元数据大小
  • C.相机的曝光时间值
  • D.产品表面的温度数据

答案:A。划痕是细长线性结构,污渍是块状区域,形状特征(细长程度、长宽比)是区分这两类最直接的指标;元数据和曝光时间属于成像参数而非样本特征,表面温度与视觉分类无关。

Q2. 工业视觉质检中“误检”指的是什么?

单选题 · easy

  • A.将合格品误判为缺陷品← 正确答案
  • B.将缺陷品误判为合格品
  • C.对图像进行过度压缩
  • D.对生产线速度的错误估计

答案:A。误检(False Positive)是把良品当次品,会导致材料浪费和返工成本;漏检(False Negative)是把次品当良品,会导致客户投诉。C 和 D 都是工程操作问题,不属于检测结果的误判类型。

Q3. 处理类别不平衡最直接有效的方法是什么?

单选题 · easy

  • A.对少数类样本进行过采样← 正确答案
  • B.降低整条传送带的运行速度
  • C.提高检测相机的基础分辨率
  • D.增加生产工厂的无尘洁净度

答案:A。过采样让少数类在训练集中出现更多次,直接缓解模型“偏食”多数类的问题。传送带速度和分辨率影响成像和节拍,洁净度影响环境,都不能从数据分布上解决类别不平衡。

Q4. 提高分类判定阈值后最可能的结果是什么?

单选题 · mid

  • A.漏检率上升同时误检率下降← 正确答案
  • B.误检率上升同时漏检率下降
  • C.漏检率误检率同时都上升
  • D.漏检率误检率同时都下降

答案:A。阈值提高等于“要求更高证据才报缺陷”,报得少,误检率(把良品当缺陷)自然下降,但真实缺陷也更容易被放过,漏检率上升。这与“放缓诊断标准”的直觉相反,需要结合业务成本找平衡点。

Q5. 以下哪些策略常用于处理瑕疵类别不平衡?

多选题 · mid

  • A.对多数类样本进行欠采样← 正确答案
  • B.对少数类样本进行过采样← 正确答案
  • C.使用类别加权损失函数← 正确答案
  • D.删除全部缺陷样本数据

答案:ABC。欠采样减少多数类数量、过采样增加少数类数量、加权损失提高少数类错分的惩罚,都是经典手段。删除全部缺陷样本会让模型完全丧失识别缺陷的能力,是不可行的选项。

Q6. 关于 ROC 曲线,正确说法是哪一项?

单选题 · hard

  • A.曲线越靠近左上角性能越好← 正确答案
  • B.曲线越靠近右下角性能越好
  • C.曲线越靠近左下角性能越好
  • D.曲线形状与阈值选择无关

答案:A。ROC 曲线的纵轴是真正例率(召回率),横轴是假正例率。左上角意味着在保证高召回的同时假正例率低,分类性能最优。ROC 曲线正是通过遍历所有可能的阈值绘制出来的,它的形状与阈值密切相关。

Q7. Softmax 层输出的向量代表什么?

单选题 · mid

  • A.各类别的预测概率分布← 正确答案
  • B.各类别的特征图尺寸
  • C.样本中的像素点数量
  • D.训练时的梯度大小值

答案:A。Softmax 将模型的原始分数转换成一组和为 1 的非负值,可以理解为“模型认为样本属于各个类别的概率分布”。它不是特征图尺寸、像素数量或梯度值,这些都是训练和网络结构中的其他概念。

Q8. 瑕疵分级处理流程中,合理触发人工复检的情形有哪些?

多选题 · hard

  • A.分类置信度低于设定阈值← 正确答案
  • B.置信度高于阈值但接近临界← 正确答案
  • C.该产品属于高价值订单批次← 正确答案
  • D.产品外观颜色恰好是深黑色

答案:ABC。置信度低说明模型没把握,应让人工复核;置信度接近阈值说明处于“灰色地带”,容易误判,也值得复检;高价值订单中单件产品损失大,优先复检合理。产品颜色本身不是复检触发依据。

Q9. 当缺陷占比仅 1% 时训练集准确率 99%,主要问题是什么?

单选题 · hard

  • A.准确率指标被多数类主导← 正确答案
  • B.模型训练耗时变得过长
  • C.模型参数量无法被压缩
  • D.梯度下降收敛速度太慢

答案:A。全判正常就能拿到 99% 准确率,模型无须真正学会识别缺陷即可“刷分”——准确率被占 99% 的正常类主导,掩盖了缺陷类可能 0% 召回的问题。这是“准确率虚高”的经典陷阱。

Q10. 关于业务 ROI 与阈值调优,下列说法正确的是哪些?

多选题 · extreme

  • A.高价值产品应倾向降低漏检率← 正确答案
  • B.低价值产品可提高阈值省成本← 正确答案
  • C.阈值需定期根据数据重新评估← 正确答案
  • D.阈值一旦上线就永久无需调整

答案:ABC。高价值产品(如汽车安全件)漏检赔付巨大,阈值应调低以提高召回;低价值快消品误检浪费成本高,可适当提高阈值。生产环境、良品率、客户结构都会变化,阈值必须定期校准。选项 D 违背持续迭代的工程常识。