AI工业质检落地实操:从硬件到部署全方案 📊
一、前期核心:🔧 硬件选型——别让设备拖垮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标注文件



