当前位置:首页 > 工业 AI 落地 > 正文内容

人工缺陷分类每天300片看花眼:我用CNN实现了自动分类

人工缺陷分类每天300片看花眼:我用CNN实现了自动分类

【摘要】缺陷分类原来靠人工看显微镜,每天300片晶圆,检验员眼睛都看花了,错误率高达8%。最严重的一次是漏检,整批退货。我花了3个月训练CNN缺陷分类模型,准确率95%,速度是人工的10倍,把检验员从繁重工作中解放出来。

一、痛点:检验员看缺陷看到怀疑人生

标注标准定义非常详细:颗粒污染是直径大于5微米的非晶态异物;划痕是长度超过100微米的线性痕迹;薄膜脱落是面积超过0.1平方毫米的膜层剥落;裂纹是穿透膜层的线性缺陷。每个标准都有参考图片对照,确保标注一致性。标准清晰是标注质量的基础。

类别不平衡是主要挑战:"颗粒污染"占50%以上样本,"针孔"只占5%。用了两种方法:一是SMOTE过采样对少数类增强,二是类别权重让模型更关注少数类。两种方法结合后,少数类召回率从60%提升到85%。不平衡数据的处理是CV项目的关键技术点。

建立了模型监控机制:每周跑混淆矩阵分析,某类缺陷准确率下降超过5%立即触发重新训练。保留人工标注员,从"全量标注"变为"模型质控",工作压力大幅降低。人机协作是最优解——让AI处理简单重复,人处理复杂疑难。

最意外的发现是模型的"超能力":它能识别出人类标注员都看不出的缺陷模式。分析发现是模型学到了特定光照条件下的微弱信号。帮助拦截了3批原本会被漏检的晶圆。AI能捕捉到人眼难以感知的细节,这是最让我兴奋的应用价值。

缺陷分类是FAB质量控制的关键环节。我厂原来靠人工看显微镜分类,每天300片晶圆、每片几百个缺陷,检验员眼睛都看花了,错误率高达8%。我花了3个月训练了一个CNN缺陷分类模型,准确率95%,速度是人工的10倍,把检验员从繁重工作中解放出来。

人工分类的三大问题:一是疲劳误判——连续看2小时后眼睛疲劳,误判率明显上升;二是标准不统一——不同检验员对同类缺陷的判断有差异;三是效率低——300片/天的分类量,检验员每天加班还是积压。

最严重的一次是漏检:某批次晶圆有一类特殊缺陷,检验员漏掉了,出货后被客户发现,整批退货。那次事件后我下定决心必须上AI分类系统。

二、技术:ResNet50迁移学习方案

技术方案:用迁移学习方法,基于预训练的ResNet50,在缺陷图像数据集上微调。数据集包含8类缺陷:颗粒污染、划痕、薄膜脱落、针孔、气泡、裂纹、残胶、异物,每类约2000张标注图片。模型在验证集上准确率95%,单张图片推理时间50ms,满足生产节拍要求。

数据标注是最大的工作量。我找了3名资深检验员组成标注小组,用两周时间标注了16000张图片。标注质量用交叉验证保证:每张图由2人分别标注,不一致的由第3人仲裁。标注过程也让我发现了问题:有些缺陷类型之间界限模糊,需要更细的分类标准。

训练策略:先用ImageNet预训练权重初始化,只训练最后一层(全连接层)2个epoch,再放开全部层训练5个epoch,学习率从1e-3逐步降到1e-5。数据增强用了随机翻转、随机旋转、颜色抖动,提升模型泛化能力。

三、落地:从模型到生产系统

部署过程的关键点:一是数据安全,缺陷图像是敏感数据,模型必须本地部署,不能上云;二是实时性,检验节拍要求推理时间<100ms;三是可解释性,工程师需要知道模型为什么这么分类,不能是黑箱。

我选择把模型部署在检验机台的工控机上(Intel i5 CPU,无需GPU),用ONNX Runtime加速推理。50ms/张的速度意味着每分钟可以处理1200张图片,完全满足300片/天的检验量(每片平均400个缺陷点)。

上线后检验员的工作方式改变了:原来做全量检验,现在做异常复核——AI判断没问题的直接过,AI标记异常的才需要人工复核。检验员从每天盯显微镜8小时,变成每天复核AI标出的异常2小时。检验效率提升10倍,误判率从8%降到2%。

四、模型优化:从95%到98%的实战经验

上线3个月后,模型准确率从95%提升到了98%,主要靠三招:

第一招:持续学习。把每次人工复核的结果作为新的训练样本,每周重新训练一次模型。模型越训越准,特别是对于那些容易混淆的缺陷类型(比如划痕和裂纹),随着样本增多区分能力明显提升。

第二招:难例挖掘(Hard Example Mining)。每周跑一次混淆矩阵分析,找出错误率最高的缺陷类型组合(比如颗粒误判为异物),然后针对性地补充这类样本。用了这个方法后,模型在困难类别上的准确率从88%提升到了95%。

第三招:模型集成。训练了3个不同架构的模型(ResNet50、EfficientNet-B0、ConvNeXt-Tiny),推理时用投票机制综合三个模型的预测结果。集成后准确率比单个模型提升了1.5%,而且对不确定样本的识别能力更强——当三个模型预测不一致时,系统自动标记为需要人工复核。

【效果对比】

【实战代码】

import torch, torchvision

# Load pretrained ResNet50

model = torchvision.models.resnet50(pretrained=True)

model.fc = torch.nn.Linear(2048, 8) # 8 defect classes

# Phase 1: freeze backbone, train classifier

for param in model.parameters():

param.requires_grad = False

model.fc.weight.requires_grad = True

criterion = torch.nn.CrossEntropyLoss()

optimizer = torch.optim.Adam(model.fc.parameters(), lr=1e-3)

# Training loop - phase 1

for epoch in range(2):

for images, labels in train_loader:

outputs = model(images)

loss = criterion(outputs, labels)

optimizer.zero_grad()

loss.backward()

optimizer.step()

==================================================

讨论

你们FAB的缺陷分类是怎么做的?

AI缺陷分类落地有哪些坑?

==================================================

==================================================

VIP资源

更多半导体FAB工具在博客VIP专区免费下载

==================================================

关注我,获取更多半导体智能制造实战笔记!

标签: AI半导体

相关文章

AI+数据采集:智能预警与预测性维护(工程师实战版)

AI+数据采集:智能预警与预测性维护(工程师实战版)

AI+数据采集:智能预警与预测性维护(工程师实战版) 大家好,我是老张。FAB的数据采集过去主要是“存下来,等人查”,属于被动模式。去年我们做了AI+数据采集系统,实现“主动预警、预测性维护”,设备非...

AI晶圆良率预测:XGBoost从数据到部署(工程师实战版)

AI晶圆良率预测:XGBoost从数据到部署(工程师实战版)

AI晶圆良率预测:XGBoost从数据到部署(工程师实战版) 大家好,我是老张。在半导体FAB做良率工程师5年,前3年靠经验“拍脑袋”预测良率,准确率只有65%左右。去年开始用AI(XGBoost)做...

AI辅助SPC:异常自动诊断与根因分析(工程师实战版)

AI辅助SPC:异常自动诊断与根因分析(工程师实战版)

AI辅助SPC:异常自动诊断与根因分析(工程师实战版) 大家好,我是老张。SPC(统计过程控制)是FAB质量管理的基石,但传统SPC有个痛点:只能“报警”,不能“诊断”。比如控制图发出异常信号,工程师...

AI正在"入侵"FAB:我用机器学习把膜厚良率预测准确率做到了93%

AI正在"入侵"FAB:我用机器学习把膜厚良率预测准确率做到了93%

AI正在"入侵"FAB:我用机器学习把膜厚良率预测准确率做到了93% 发布时间:2026-07-03 | 分类:半导体百科 | 阅读需要:10分钟 ────────────────...

AI辅助良率根因分析实战:6个月处理57次异常排查效率提升6倍

AI辅助良率根因分析实战:6个月处理57次异常排查效率提升6倍

AI辅助良率根因分析实战:6个月处理57次异常排查效率提升6倍 发布时间:2026-07-26 16:00 | 阅读:1,650 | 原创 01 问题背景 在半导体制造的良率管理中长期困扰YE...

AI辅助良率根因分析实战:6个月处理57次异常排查效率提升6倍

AI辅助良率根因分析实战:6个月处理57次异常排查效率提升6倍

AI辅助良率根因分析实战:6个月处理57次异常排查效率提升6倍 发布时间:2026-07-26 16:00 | 阅读:1,650 | 原创 01 问题背景 在半导体制造的良率管理中长期困扰YE...