本文共 2365 字,大约阅读时间需要 7 分钟。
在工业检测领域,过杀漏失分析是确保产品质量的一项关键环节。本文将介绍一个基于Excel的过杀漏失分析工具,展示如何通过Python脚本实现漏失率和过杀率的计算,并生成详细的分析报告。
首先,我们需要读取包含真值和预测值的Excel文件。以下是代码示例:
from openpyxl import load_workbookfrom utils import *from tqdm import tqdmexcel_contrast_path = 'test.xlsx'job_image_dir = r"F:\新2000pcs缺陷料\2000pcs原图\S3\S3-A1-1-Right\OK\Org"# 读取Excel表格excel = load_workbook(excel_contrast_path)table = excel.get_sheet_by_name(excel.sheetnames[0])
接下来,我们从Excel表格中提取真值和预测值。以下是代码示例:
# 获取真值和预测值rows = table.max_row # 获取行数cols = table.max_column # 获取列数real_values_None = []real_values = []predict_values_None = []predict_values = []for i in range(rows): real_values_None.append(table.cell(row=i+1, column=1).value) predict_values_None.append(table.cell(row=i+1, column=2).value)# 过滤非空值for val in real_values_None: if val is not None: real_values.append(val)for val in predict_values_None: if val is not None: predict_values.append(val)
然后,我们需要判断预测值与真值的匹配情况。以下是代码示例:
true_predict_list = []false_predict_list = []for item in predict_values: if item in real_values: true_predict_list.append(item) else: false_predict_list.append(item)print(f"真值正确预测数量:{len(true_predict_list)}")print(f"真值错误预测数量:{len(false_predict_list)}") 接下来,我们计算漏失和过杀的数量。以下是代码示例:
# 计算漏失loushi = list(set(real_values) - set(true_predict_list))print(f"漏失:{len(loushi)},具体漏失项:{loushi}")print(f"漏失率:{len(loushi)/len(real_values)}")# 计算过杀print(f"过杀:{len(false_predict_list)}")print(f"过杀率:{len(false_predict_list)/len(predict_values)}") 最后,我们将分析结果生成Excel报告。以下是代码示例:
# 创建工作簿workbook = xlsxwriter.Workbook('过杀漏失分析表.xlsx')worksheet = workbook.add_worksheet('漏失')# 设置单元格高度和宽度for i in range(0, 200): worksheet.set_row(i, 150)worksheet.set_column('A:O', 50)# 插入图像for item_index, item in enumerate(tqdm(loushi)): try: worksheet.write(item_index, 0, str(item)) img_dir_path = os.path.join(job_image_dir, item) img_files = get_files_path(img_dir_path) for img_index, img in enumerate(img_files): worksheet.insert_image(item_index, img_index + 1, img, {'x_scale': 0.01, 'y_scale': 0.01}) except Exception as exp: pass# 关闭工作簿workbook.close() 通过上述步骤,我们可以清晰地看到产品检测中的漏失和过杀情况,并生成详细的分析报告。这种方法不仅能够帮助检测人员快速识别问题,还能提供数据支持用于质量改进。
转载地址:http://keofk.baihongyu.com/