论文复现_芯片定位和引脚缺陷检测

本文介绍了一种基于图像处理的芯片引脚缺陷检测方法,通过区域生长法和轮廓提取,构建掩膜图像来获取引脚主体部分。利用引脚数目、面积、质心间距等指标判断缺脚、高度偏移和位置偏移等缺陷,并通过拟合引脚质心获取芯片中心坐标和旋转量。

首先感谢陈广锋同学的论文,若侵权,请联系删除。
论文里面提出利用区域生长法获取引脚的总数及各个引脚主体部分的形心坐标及面积。通过与实际引脚总数进行对比, 判断是否存在引脚缺失的缺陷, 并和实际引脚的间距、面积的设定值进行对比, 当测定值超过设定值一定范围时, 认为该芯片存在引脚位置偏移以及高度偏移等缺陷。
与作者不同之处在于我使用提取轮廓,构建掩膜图像的方式获取引脚的主体部分,其余部分均按照论文思路判别缺陷。
步骤:

  1. 图像预处理;
  2. 提取轮廓,构建掩膜图像,获取引脚主体;
  3. 引脚分割为4个ROI,排序,获取引脚质心;
  4. 通过引脚数目 ,面积,质心间距指标分别判别缺脚,高度偏移,位置偏移;
  5. 通过拟合4个ROI内引脚质心,获取4线方程,从而获取芯片中心坐标,即可获得相对参考坐标的偏移量;
  6. 选择上下两线的斜率平均值,即可获取芯片的旋转量。

主要代码:

void find(Mat &src, vector<vector<Point>>con_new) {
   
   
	int num = con_new.size();
	cout << "num = " << num << endl;
	//缺脚判断
	vector<Moments>mu(con_new.size());
	vector<Point2f>mc(con_new.size());
	double area = 0;
	if (num == 12) {
   
   
		//偏移判断
		for (int i = 0; i < con_new.size(); i++) {
   
   
			area = contourArea(con_new[i]);
			//cout << " area=" << area << endl;
			//上下判断
			if (area 
### 芯片缺陷检测论文复现与代码实现 芯片缺陷检测是一个重要的研究方向,涉及计算机视觉、深度学习以及传统的图像处理技术。以下是针对这一主题的一些具体方法技术: #### 1. 数据预处理 在进行芯片缺陷检测之前,通常需要对原始数据进行预处理。这一步骤可能包括但不限于灰度转换、噪声去除、边缘增强等操作[^4]。 ```python import cv2 import numpy as np def preprocess_image(image_path): image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) blurred = cv2.GaussianBlur(image, (5, 5), 0) # 噪声去除 edges = cv2.Canny(blurred, threshold1=30, threshold2=100) # 边缘检测 return edges ``` #### 2. 缺陷特征提取 通过传统图像处理算法(如SIFT、SURF)或者现代深度学习模型来提取芯片表面的关键特征。如果采用深度学习,则可以选择卷积神经网络(CNN),并对其进行适当调整以适应特定的任务需求[^3]。 #### 3. 深度学习模型设计 为了更好地完成芯片缺陷分类任务,可以考虑使用迁移学习的方式加载已训练好的权重作为初始状态,并在此基础上进一步微调网络参数。常见的骨干架构有ResNet系列、VGG变体等[^1]。 ```python from tensorflow.keras.applications import ResNet50 from tensorflow.keras.models import Model from tensorflow.keras.layers import Dense, GlobalAveragePooling2D base_model = ResNet50(weights='imagenet', include_top=False) x = base_model.output x = GlobalAveragePooling2D()(x) predictions = Dense(num_classes, activation='softmax')(x) model = Model(inputs=base_model.input, outputs=predictions) for layer in base_model.layers: layer.trainable = False ``` #### 4. 参数初始化策略 当构建自己的深层结构时,合理的参数初始化能够加速收敛过程并且减少陷入局部极小值的风险。这里推荐几种常用的初始化方式:Lecun均匀分布、Xavier正态分布以及He正常初始化方案[^1]。 #### 5. 结果验证与性能评估 最后,在测试集上运行整个流程之后,应当计算诸如精确率(Precision),召回率(Recall),F1分数之类的指标来衡量系统的有效性[^4]。 ```python from sklearn.metrics import classification_report y_true = [...] # 实际标签列表 y_pred = model.predict(X_test).argmax(axis=-1) # 预测结果 print(classification_report(y_true, y_pred)) ``` --- 相关问题
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值