AI工业质检落地实操:从硬件到部署全方案 📊

2025-11-11 14:28:20
文章摘要
案例核心数据:该车企采用本文方案后,缸体质检漏检率从8.2%降至0.28%,单条生产线质检员从5人减至1人(仅复核异常),不良品流出率下降92%,设备投资6个月收回成本。

一、前期核心:🔧 硬件选型——别让设备拖垮AI效果

AI质检的基础是“拍得清”,硬件选型直接决定数据质量,而数据质量又决定模型效果。很多企业盲目追求“高像素相机”,却忽视光源、镜头与缺陷类型的匹配,导致“相机很贵,图片很废”。以下是基于“发动机缸体缺陷”场景的硬件选型逻辑,可平移至轴承、芯片等其他零部件检测。

1. 📋 核心硬件选型表(附参数与理由)


2. ⚠️ 硬件搭配避坑要点

● ⏱️ 快门与运动速度匹配:流水线移动速度v,相机视野宽度w,快门速度需满足“快门时间 ≤ w/(v×1000)”,否则会出现运动模糊。例:v=1m/s,w=15cm,快门时间需≤150ms,实际设为100ms更安全。

● 💡 光源角度调试:检测凹陷/凸起缺陷时,光源与镜头呈45°角(阴影效应突出立体缺陷);检测平面划痕时,光源与镜头同轴(漫反射突出平面差异)。

● 📡 网口传输带宽:500万像素图片(BMP格式)约15MB/张,10GigE网口传输速度达1000MB/s,可避免传输延迟;若用千兆网口,需将图片压缩为JPG格式(压缩比5:1)。

 

二、数据采集与标注:🗂️ AI质检的“地基”

模型效果的好坏,80%取决于数据质量。工业场景数据的核心要求是“覆盖全缺陷类型、标注精准”,而非盲目追求数据量。以下是基于缸体检测的标准化流程,日均可采集标注500张有效图片,3周即可满足模型训练需求。

1. 📸 数据采集:3步获取高质量图片

1.  1️⃣ 场景覆盖:按“缺陷类型+位置+光照”三维度采集,确保覆盖6类核心场景:①正常缸体 ②不同长度划痕(0.1-5mm) ③不同大小砂眼(0.2-2mm) ④不同深度凹陷(0.1-1mm) ⑤油污覆盖的缺陷 ⑥边缘区域缺陷(易漏检)。


2.  2️⃣ 💻 采集工具与脚本:用Python+OpenCV控制相机采集,配合触发传感器实现“缸体到位→自动拍照→图片保存”全自动化,避免人工操作引入的角度偏差:

import cv2

import numpy as np

import time

from pypylon import pylon # 海康相机SDK


# 初始化相机

camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice())

camera.Open()

# 设置相机参数

camera.ExposureTime.SetValue(100000) # 快门时间100ms(单位:微秒)

camera.Gain.SetValue(0) # 增益0(避免噪点)

# 初始化触发传感器(通过串口通信)

ser = serial.Serial("COM3", 9600, timeout=1)


def capture_image(save_path):

"""触发传感器信号触发后,拍摄并保存图片"""

while True:

# 读取传感器信号(1为有物体,0为无)

sensor_signal = ser.readline().decode().strip()

if sensor_signal == "1":

# 拍摄图片

grab_result = camera.RetrieveResult(5000, pylon.TimeoutHandling_ThrowException)

if grab_result.GrabSucceeded():

# 转换为OpenCV格式

image = grab_result.Array

image = cv2.cvtColor(image, cv2.COLOR_BayerBG2BGR)

# 按“时间戳_缺陷类型”命名(便于后续标注)

timestamp = time.strftime("%Y%m%d%H%M%S", time.localtime())

image_name = f"{timestamp}_normal.jpg" # 正常件,缺陷件手动修改前缀

cv2.imwrite(os.path.join(save_path, image_name), image)

print(f"已保存图片:{image_name}")

grab_result.Release()

# 延迟1秒,避免重复触发

time.sleep(1)


# 调用采集函数(替换为你的保存路径)

capture_path = "/home/nvidia/inspection_data/capture"

os.makedirs(capture_path, exist_ok=True)

capture_image(capture_path)

 

3.  3️⃣ 🔍 数据筛选:剔除模糊、曝光过度/不足的图片,保留“缺陷清晰、背景干净”的有效数据,筛选后有效率需≥80%(低于此值需重新调试硬件参数)。

2. 📝 数据标注:标准化流程+工具使用技巧

工业质检标注的核心是“精准定位缺陷边界”,避免标注偏移导致模型学习错误特征。推荐用LabelImg(轻量、开源),标注格式选择YOLO(txt格式,便于模型训练)。

 

✅ 标注规范(必须落地执行)

● 缺陷分类:按“划痕(scratch)、砂眼(pinhole)、凹陷(dent)”三类标注,避免细分(如“长划痕”“短划痕”)导致样本分散。

● 边界框标注:边界框需紧贴缺陷边缘,框住整个缺陷区域,不允许超出缺陷或漏框(误差≤2个像素)。例:0.1mm划痕需放大图片至100%后标注。

● 标注审核:专人审核标注结果,随机抽检20%标注数据,错误率需≤3%(错误包括分类错误、边界框偏移)。

⚡ LabelImg使用技巧(提升3倍效率)

# 1. 安装LabelImg(Python环境)
pip install labelImg==1.8.6
 
# 2. 启动命令(指定图片路径和标注保存路径)
labelImg /home/nvidia/inspection_data/capture /home/nvidia/inspection_data/annotations
 
# 3. 快捷键高效标注
w: 新建边界框
d: 下一张图片
a: 上一张图片
ctrl+s: 保存标注
# 4. 格式设置:左侧“Save Format”选择“YOLO”,自动生成txt标注文件


 

声明:该内容由作者自行发布,观点内容仅供参考,不代表平台立场;如有侵权,请联系平台删除。