半导体百科:自动光学检测(AOI)系统原理与实战指南

【摘要】
本文系统梳理缺陷检测与分析领域的核心问题与落地路径。自动光学检测(Automated Optical Inspection,简称AOI)是半导体制造过程中至关重要的质量检测技术,…。全文围绕「摘要、背景介绍、AOI系统工作原理、常见缺陷类型详解、实战:AOI系统实施要点」逐层展开,给出原理说明、实操步骤与验证方法。核心结论:除了AOI设备本身的参数优化,AOI数据的分析也很有价值。补充说明:缺陷分析的起点是分类而非计数。缺陷总数相同但类型分布不同的两批产品,对良率的影响可能完全不同,因此必须经过复查分类才能得出可用结论。
【核心要点】
- 摘要:自动光学检测(Automated Optical Inspection,简称AOI)是半导体制造过程中至关重要的质量检测技术,广泛应用于晶圆制造、封装测试、…
- 背景介绍:随着半导体工艺节点不断缩小(目前已进入3nm量产阶段),芯片制造对缺陷检测的精度和速度要求日益严苛。
- AOI系统工作原理:AOI系统的核心工作原理是通过光学成像设备获取被测物体的表面图像,然后利用图像处理算法和机器学习模型自动识别缺陷。完整AOI系统包括以下关键子系统:
- 常见缺陷类型详解:半导体制造过程中,AOI系统需要检测数十种不同类型的表面缺陷,以下是最常见且与良率直接相关的五类缺陷:
- 实战:AOI系统实施要点:在实际产线中部署AOI系统时,工程师需要重点关注以下实施要点:
- 代码示例:基于Python的缺陷区域提取:以下代码演示了使用OpenCV对AOI图像进行预处理并提取缺陷区域的基本流程。该代码可用于Particle、Scratch等缺陷的自动检测和区域标记。
【适用场景】
- 缺陷突增批次的工序定位与原因分类。
- 缺陷检测灵敏度的优化(检出能力与噪声的平衡)。
- 缺陷与良率损失的定量关联分析。
- 缺陷突增的工序定位与类型分类。
这个方向的工具共 53 款,完整清单与选型建议见 MES与生产管理工具包。全部 351 款见 工具资源包下载页。
一、摘要
自动光学检测(Automated Optical Inspection,简称AOI)是半导体制造过程中至关重要的质量检测技术,广泛应用于晶圆制造、封装测试、PCB组装等环节。本文系统介绍AOI系统的工作原理、常见缺陷类型(particle、bump crack、scratch等)、AOI与人工复检的效率对比,并提供基于Python的缺陷区域提取代码示例,帮助MES(制造执行系统,Manufacturing Execution System)工程师和工艺工程师深入理解和应用AOI技术。
关键词:AOI、自动光学检测、缺陷检测、Particle、Bump Crack、Scratch、图像预处理、边缘检测、半导体良率
缺陷检测的灵敏度设置需要与工艺水平匹配:灵敏度过低会漏掉关键缺陷,过高则产生大量噪声掩盖真实问题。合理的做法是依据历史缺陷分布与良率影响反复校准。
二、背景介绍
随着半导体工艺节点不断缩小(目前已进入3nm量产阶段),芯片制造对缺陷检测的精度和速度要求日益严苛。传统人工目检方式已无法满足现代半导体产线的高吞吐量需求,自动光学检测(AOI)系统应运而生,成为保障芯片良率的关键设备。
AOI技术最早应用于PCB组装行业,20世纪90年代末开始引入半导体封装测试领域,21世纪初逐步延伸至晶圆制造前道工艺。如今,AOI系统已成为半导体产线标配设备,市场渗透率接近100%。
根据SEMI统计,2024年全球半导体AOI设备市场规模已达52亿美元,预计2027年将突破75亿美元,年均复合增长率超过13%。中国市场因本土晶圆厂大规模扩建,AOI设备需求增长尤为迅速。
缺陷的空间分布携带着归因信息:边缘环状分布常与传输、夹持或边缘工艺相关;与腔体位置对应的扇区分布指向设备差异;全片随机分布多与颗粒污染或化学液相关。
三、AOI系统工作原理
AOI系统的核心工作原理是通过光学成像设备获取被测物体的表面图像,然后利用图像处理算法和机器学习模型自动识别缺陷。完整AOI系统包括以下关键子系统:
- 光学照明系统:采用多角度、多光谱光源(如环形LED光源、同轴光、线形光)对晶圆表面进行均匀照明,突出不同类型的缺陷特征。照明质量直接决定图像信噪比,是AOI系统性能的基础。
- 成像系统:由高分辨率工业相机(CCD或CMOS传感器)、显微镜头、图像采集卡组成。现代AOI系统相机分辨率普遍达到2000万像素以上,搭配远心镜头可实现亚微米级成像精度。
- 机械运动系统:高精度XYZθ平台,负责承载晶圆或基板,实现精确扫描路径。运动精度需达到±1μm以内,确保图像拼接无错位。
- 图像处理单元:运行去噪、增强、特征提取等预处理算法,为后续缺陷检测提供高质量输入图像。常用算法包括高斯滤波、直方图均衡化、边缘检测(Sobel/Canny)、形态学运算等。
- 缺陷检测算法:基于规则检测(差分比对、阈值分割)或深度学习(CNN、YOLO系列)的缺陷识别引擎,输出缺陷位置、类型和严重等级。
- 分类与复检系统:对检测到的缺陷进行自动分类(真缺陷 vs 误报),并将可疑缺陷推送至人工复检工作站(Review Station),由操作员最终确认。
四、常见缺陷类型详解
半导体制造过程中,AOI系统需要检测数十种不同类型的表面缺陷,以下是最常见且与良率直接相关的五类缺陷:
其中,Particle是最常见(占缺陷总数60%以上)且对良率影响最大的缺陷类型。在28nm以下节点,即使直径20nm的Particle也可能导致栅极短路。因此,AOI系统对Particle的检出率要求极高(通常需达到99.5%以上)。
缺陷的致命性判断必须结合版图环境:相同尺寸的缺陷在不同图形位置上的影响差异极大,因此叠加版图信息的缺陷分析才能估算对良率的真实影响。
五、实战:AOI系统实施要点
在实际产线中部署AOI系统时,工程师需要重点关注以下实施要点:
(1)光学参数优化:根据缺陷类型和产品特性,调整光源角度、波长、强度。例如,检测金属表面的Particle需使用暗场照明(Dark Field),而检测bump形貌则需使用明场照明(Bright Field)。
(2)检测算法选择:对于规则缺陷(Particle、Scratch),传统的差分比对算法(Golden Reference Comparison)已足够;对于复杂缺陷(bump crack、pattern defect),建议采用深度学习算法(如YOLOv8、Faster R-CNN)以提升检出率。
(3)误报率控制:AOI系统的误报率(False Positive Rate)直接影响人工复检成本。通过优化检测阈值、引入多帧确认机制、结合设计数据(GDS版图)进行比对,可将误报率控制在2%以下。
(4)系统与MES集成:AOI设备需通过SECS/GEM协议与MES系统通信,实时上传缺陷数据( defect map、defect count、defect classification),支持SPC(统计过程控制)分析和良率预测。
缺陷分析的起点是分类而非计数。缺陷总数相同但类型分布不同的两批产品,对良率的影响可能完全不同,因此必须经过复查分类才能得出可用结论。
六、代码示例:基于Python的缺陷区域提取
以下代码演示了使用OpenCV对AOI图像进行预处理并提取缺陷区域的基本流程。该代码可用于Particle、Scratch等缺陷的自动检测和区域标记。
import cv2
import numpy as np
import matplotlib.pyplot as plt
def extract_defect_regions(image_path, threshold=30, min_area=50):
"""
AOI缺陷区域提取函数
参数:
image_path: AOI图像路径
threshold: 差分阈值(灰度差异)
min_area: 最小缺陷面积(像素)
返回:
defect_regions: 缺陷区域列表 [(x, y, w, h), ...]
result_img: 标注后的图像
"""
# 1. 读取图像(灰度模式)
img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
if img is None:
raise ValueError(f"无法读取图像: {image_path}")
# 2. 读取Golden Reference图像(无缺陷参考图)
# 实际产线中,Golden Image来自同一产品的标准晶圆
golden = cv2.imread(image_path.replace('.jpg', '_golden.jpg'),
cv2.IMREAD_GRAYSCALE)
if golden is None:
# 若无Golden Image,使用高斯滤波后的图像作为参考
golden = cv2.GaussianBlur(img, (15, 15), 0)
# 3. 差分比对(Subtractive Comparison)
diff = cv2.absdiff(img, golden)
# 4. 阈值分割
_, binary = cv2.threshold(diff, threshold, 255, cv2.THRESH_BINARY)
# 5. 形态学运算(去除噪声,连接邻近缺陷)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
binary = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel)
binary = cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel)
# 6. 轮廓提取
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
# 7. 过滤小区域(去除噪声)
defect_regions = []
result_img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
for cnt in contours:
area = cv2.contourArea(cnt)
if area >= min_area:
x, y, w, h = cv2.boundingRect(cnt)
defect_regions.append((x, y, w, h))
# 绘制红色矩形框标记缺陷
cv2.rectangle(result_img, (x, y), (x+w, y+h), (0, 0, 255), 2)
# 标注缺陷ID
cv2.putText(result_img, f'D{len(defect_regions)}',
(x, y-5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1)
print(f"检测到 {len(defect_regions)} 个缺陷区域")
return defect_regions, result_img
def classify_defect_type(defect_roi):
"""
缺陷类型分类(基于形状特征)
返回:'particle' | 'scratch' | 'bump_crack' | 'unknown'
"""
# 计算长宽比
h, w = defect_roi.shape[:2]
aspect_ratio = max(w, h) / (min(w, h) + 1e-5)
# 计算圆形度
contours, _ = cv2.findContours(defect_roi, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
if not contours:
return 'unknown'
cnt = contours[0]
area = cv2.contourArea(cnt)
perimeter = cv2.arcLength(cnt, True)
circularity = (4 * np.pi * area) / (perimeter**2 + 1e-5)
if circularity > 0.7 and aspect_ratio 3:
return 'scratch' # 细长 → Scratch
elif 0.3 < circularity < 0.7:
return 'bump_crack' # 不规则 → Bump Crack
else:
return 'unknown'
# 示例使用
if __name__ == '__main__':
# 实际使用时替换为真实AOI图像路径
regions, result = extract_defect_regions('aoi_wafer_001.jpg', threshold=25)
cv2.imwrite('aoi_result_001.jpg', result)
print("缺陷提取完成,结果已保存")
# 分类每个缺陷
for i, (x, y, w, h) in enumerate(regions):
roi = result[y:y+h, x:x+w]
dtype = classify_defect_type(roi)
print(f"缺陷 {i+1}: 位置({x},{y}) 类型:{dtype}")
代码说明:上述代码实现了AOI缺陷检测的核心流程——差分比对法。该方法将待测图像与无缺陷的Golden Reference图像进行像素级比对,通过阈值分割提取差异区域,再经形态学滤波去除噪声,最终输出缺陷位置和边界框。分类函数则根据缺陷的形状特征(圆形度、长宽比)判断缺陷类型,为后续复检提供先验信息。
七、效果对比:AOI vs 人工复检
上图展示了AOI自动检测与人工检测的多维度性能对比。从数据可以看出:
(1)检测速度:AOI系统检测速度可达120片/小时,是人工检测(20片/小时)的6倍,能够满足现代产线的高吞吐量需求。
(2)误报率:AOI误报率约2.5%,虽然低于人工检测的8%,但仍有优化空间。引入深度学习分类器后,误报率可进一步降至1%以下。
(3)漏检率:AOI漏检率(0.3%)显著低于人工检测(1.2%),尤其在微小Particle(<10μm)检测方面,AOI具有绝对优势。
(4)复检时间:AOI系统可在5秒内完成缺陷定位和分类,而人工复检平均需要45秒/缺陷,效率差距达9倍。
(5)不同缺陷类型的检出率:AOI对Particle的检出率高达99.8%,对Bump Crack和Scratch的检出率也在96%以上,全面优于人工检测。
缺陷复查是分类的前提,而分类结果是改善的前提。缺少分类的缺陷数据只能给出总量趋势,无法指导具体工序的改善。
八、实施建议
- AOI设备选型:根据产线节拍(UPH)和检测精度要求选择合适型号。前道晶圆检测推荐KLA-Tencor的Puma系列,封装检测推荐Camtek的Falcon系列。
- 算法迭代机制:建立缺陷样本库,持续训练和优化深度学习模型。建议每月更新一次模型,纳入新出现的缺陷类型。
- 误报管理:设置误报审核流程,定期分析误报原因(光学参数?算法阈值?),持续优化系统参数。

- 数据追溯:所有AOI检测数据(原始图像、缺陷坐标、分类结果)至少保存3年,满足车规级IATF 16949追溯要求。
- 人员培训:操作AOI系统的技术人员需接受40小时以上的专业培训,获得设备厂商认证后方可独立操作。
致命性判断需要结合图形环境:同样尺寸的颗粒落在场区可能无害,落在关键图形上则直接导致断路或短路。因此缺陷分析必须叠加版图信息才能估算对良率的影响。
九、进阶方向
- AI深度学习融合:将YOLOv8、Mask R-CNN等先进目标检测算法部署至AOI系统,实现端到端的缺陷检测和分类,减少人工特征工程。
- 多模态检测:结合2D光学图像与3D形貌数据(来自共聚焦显微镜或结构光),提升bump crack等三维缺陷的检出率。
- Inline SPC集成:将AOI缺陷数据实时接入SPC系统,当缺陷密度超过控制限时自动报警,实现工艺漂移的早期预警。
- Digital Twin(数字孪生,Digital Twin)应用:建立产线数字孪生模型,在虚拟环境中模拟AOI检测流程,优化检测参数和路径规划。
- 边缘计算部署:将AOI图像处理算法部署至边缘计算节点(如NVIDIA Jetson),减少数据传输延迟,实现实时检测。
补充:AOI系统实战调参经验
在实际FAB中,AOI设备的参数调优是个技术活。我第一次独立负责AOI调参时,光是调整阈值就调了整整3天,良率还是上不去。后来才明白,问题不在阈值本身,而在于对不同工艺阶段的缺陷特征理解不够。
举个例子:刻蚀后的晶圆,particle和bump crack的灰度值差异很大。如果用同一套阈值参数,bump crack很容易漏检。正确做法是按工艺阶段分别建立Recipe:
- 刻蚀后检测:侧重检测particle、bridge、missing pattern
- CMP(化学机械抛光,Chemical Mechanical Polishing)后检测:侧重检测scratch、dishing、erosion
- 镀膜后检测:侧重检测void、delamination
另一个常见问题是AOI和人工复检的一致性。很多工程师发现AOI检出的defect,人工复检时有一半不存在。这通常是因为AOI的光源角度和人工复检用的显微镜不一致,或者AOI检出的是submicron级别的潜在缺陷,人工显微镜看不到。解决方案是建立双盲复检机制:让AOI连续跑100片,随机抽20片做人工全检,对比检出率。如果一致性低于80%,就要重新调整Recipe。
补充:基于Python的AOI数据分析代码
除了AOI设备本身的参数优化,AOI数据的分析也很有价值。下面是一个批量处理AOI报告的Python脚本:代码解析:用Counter统计缺陷类型比手动计数快10倍,适合处理上千条记录。用numpy的histogram2d用于热力图,对接后续可视化非常方便。分离数据解析和数据分析两层,方便后续扩展到数据库读取。
本文由MES工程师实战笔记团队编写,如需AOI系统选型建议或算法优化支持,欢迎留言交流。
---
【常见坑】
- 举个例子:刻蚀后的晶圆,particle和bump crack的灰度值差异很大。如果用同一套阈值参数,bump crack很容易漏检。正确做法是按工艺阶段分别建立Recipe:
- 只看缺陷总数不看类型与位置,把大量无害缺陷计入改善目标,浪费资源。
- 缺陷检测设备的灵敏度设置过高,产生海量噪点,掩盖真实缺陷。
- 忽略缺陷与工序的时间对应关系,无法确定缺陷是产生于本工序还是前道带入。
- 缺陷复查抽样量不足,分类结果的统计置信度不够却直接用于决策。
常见问题(FAQ)
Q:缺陷数下降但良率没有改善,可能是什么原因?
A:大概率是消除的缺陷本身不具致命性。缺陷对良率的影响取决于其尺寸、位置与所在图形环境,减少场区无害缺陷不会带来良率收益。此时应重新按「致命性」而不仅是「数量」定义改善目标。
Q:同样数量的缺陷为什么对良率影响不同?
A:因为缺陷的影响取决于尺寸、位置与所在图形环境。落在场区的缺陷通常无害,落在关键图形上则可能直接导致断路或短路。因此评估缺陷影响时必须结合位置信息,仅比较总数会产生误导。
Q:缺陷检测结果和实际良率对不上,如何排查?
A:先确认是否统计了口径一致:检测统计的是缺陷数量或密度,良率反映的是器件失效比例,两者之间的换算需要缺陷致命性模型。其次是时空对应关系是否正确,缺陷检测与电性测试之间隔了多道工序,若对应关系错误则结论必然偏差。
【总结】
缺陷检测与分析的难点往往不在单点技术,而在于把原理、数据与现场验证串成闭环。除了AOI设备本身的参数优化,AOI数据的分析也很有价值。下面是一个批量处理AOI报告的Python脚本:代码解析:用Counter统计缺陷类型比手动计数快10倍,适合处理上千条记录。用numpy的histogram2d用于热力图,对接后续可视化非常方便。缺陷的空间分布携带着归因信息:边缘环状分布常与传输、夹持或边缘工艺相关;与腔体位置对应的扇区分布指向设备差异;全片随机分布多与颗粒污染或化学液相关。建议先用小范围试点验证有效性,再逐步扩大适用范围,并保留完整的数据与判断记录以便复盘。
术语速查
- MES(Manufacturing Execution System,制造执行系统):位于计划层与控制层之间,负责工单执行、过程追溯、数据采集与质量管控的信息系统。 工程意义:是打通 ERP 计划与车间现场的中间层。
- SPC(Statistical Process Control,统计过程控制):用控制图等统计方法对过程进行实时监控,区分随机波动与异常波动的管理方法。 工程意义:是把「事后检验」变为「过程预防」的核心工具。
- CD(Critical Dimension,关键尺寸):光刻或刻蚀后需要严格管控的特征线宽,是工艺窗口的核心监控指标。 工程意义:CD 偏差直接映射器件性能与良率波动。
- CMP(Chemical Mechanical Polishing,化学机械抛光):以化学腐蚀软化与机械研磨去除相结合,实现晶圆表面全局平坦化的工艺。 工程意义:是多层金属互连的前提,直接影响套刻精度与膜厚均匀性。
- Digital Twin(Digital Twin,数字孪生):在数字空间中建立与物理实体同步映射的模型,用于仿真、预测与优化。 工程意义:价值取决于模型保真度与数据同步频率的平衡。
相关阅读
- MES与ERP集成:工单/物料/成本的数据打通
- 半导体百科 | 半导体质量体系:IATF16949/VDA6.3/CPK完整实战指南
- 半导体工厂的数字化转型:MES/QMS/ERP系统集成
- ERP、MES、WMS怎么分?十大工业系统定位与场景分工
[要点] 关注「半导体智能制造」公众号,获取更多MES工程师实战笔记!
📚 同栏目延伸阅读:半导体百科_CVD成膜原理与工艺调优:从原理到工业化应用、半导体百科:PE/PIE/PDE工程师面试题库、半导体镀膜工艺:PVD/CVD/ALD三大技术对比、半导体设备的SECS/GEM通信:工业4.0的连接基石





