AI质检系统搭建:从环境准备到模型上线的完整流程

AI质检系统搭建的核心是把训练好的视觉模型部署到服务器上,并提供可调用的检测接口。
本文以Ubuntu 22.04、NVIDIA GPU和YOLOv8为例,从零开始走通环境配置、模型加载和接口测试。
整个过程需要一台带NVIDIA显卡的服务器或工作站,如果暂时没有GPU,也可以用CPU模式跑通流程,但检测速度会明显下降。

先确认硬件和系统条件

搭建前先核对服务器状态,避免装到一半发现驱动不兼容。
登录服务器后执行以下命令查看显卡和系统版本:

nvidia-smi
lsb_release -a

nvidia-smi 能正常输出显卡型号、驱动版本和CUDA版本,说明驱动已就绪。
如果提示 command not found,需要先安装NVIDIA驱动。
系统方面建议使用Ubuntu 22.04 LTS,内核版本在5.15以上。
内存建议不低于16GB,磁盘预留50GB以上用于存放模型和数据集。

配置Python环境和深度学习依赖

不建议直接使用系统自带的Python,容易和系统包冲突。
用Miniconda创建独立环境:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda create -n aiqc python=3.10 -y
conda activate aiqc

下一步安装PyTorch。
先根据 nvidia-smi 右上角显示的CUDA版本选择对应安装命令,例如CUDA 12.1可执行:

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

安装完成后验证GPU是否可用:

python -c "import torch; print(torch.cuda.is_available())"

输出 True 表示PyTorch已识别到GPU。
如果输出 False,先检查驱动版本是否与PyTorch要求的CUDA版本匹配。

部署质检模型并编写推理脚本

以YOLOv8为例,安装Ultralytics包并准备模型权重文件:

pip install ultralytics fastapi uvicorn python-multipart
mkdir -p /opt/aiqc/models /opt/aiqc/uploads

将训练好的 best.pt 放到 /opt/aiqc/models/ 目录。
新建推理脚本 /opt/aiqc/detect.py:

from ultralytics import YOLO
from fastapi import FastAPI, UploadFile, File
import shutil, os

app = FastAPI()
model = YOLO('/opt/aiqc/models/best.pt')

@app.post('/predict')
async def predict(file: UploadFile = File(...)):
    path = f'/opt/aiqc/uploads/{file.filename}'
    with open(path, 'wb') as f:
        shutil.copyfileobj(file.file, f)
    results = model(path)
    detections = []
    for r in results:
        for box in r.boxes:
            detections.append({
                'class': model.names[int(box.cls)],
                'confidence': float(box.conf),
                'bbox': box.xyxy.tolist()
            })
    os.remove(path)
    return {'detections': detections}

启动服务:

cd /opt/aiqc
uvicorn detect:app --host 0.0.0.0 --port 8000

避开这几个常见坑

  • 驱动与CUDA版本不匹配:nvidia-smi 显示的CUDA版本是驱动支持的最高版本,PyTorch安装的CUDA版本不能高于它,否则 torch.cuda.is_available() 会返回False。
  • 模型路径写错:YOLO加载权重时如果路径不存在,会静默下载官方预训练模型,导致检测结果和预期不符。启动服务后务必检查日志中加载的模型路径。
  • 上传目录权限不足:FastAPI进程需要对 /opt/aiqc/uploads 有写权限,可以用 chown -R $USER:$USER /opt/aiqc/uploads 修正。
  • 端口被占用:启动失败提示 Address already in use 时,用 ss -tlnp | grep 8000 找到占用进程,换端口或停止无关服务。

验证系统是否真的可用

服务启动后,用curl发送一张测试图片:

curl -X POST http://127.0.0.1:8000/predict -F "file=@/opt/aiqc/test.jpg"

预期返回JSON,包含 detections 数组,每个元素有类别名、置信度和检测框坐标。
如果返回空数组,说明模型没有检测到目标,可换一张包含缺陷的样本再试。
同时观察 nvidia-smi 中GPU显存占用是否上升,确认推理确实跑在GPU上。

关于生产环境的补充说明

以上流程跑通的是AI质检原型,适合验证模型效果和接口连通性。
如果要接入产线相机、处理高并发请求或做多模型管理,还需要补充任务队列、日志监控和模型版本管理,这些内容建议在原型稳定后再逐步添加。

常见疑问

没有GPU能不能搭建? 可以,安装CPU版PyTorch即可,但单张图片推理时间可能从几十毫秒增加到几秒,不适合实时质检场景。

模型必须自己训练吗? 不一定,可以先用公开的缺陷检测数据集或YOLOv8预训练模型跑通流程,再替换成自己业务数据训练的权重。

接口返回的bbox坐标是什么格式? 默认是 [x1, y1, x2, y2] 的像素坐标,左上角和右下角,可直接用于画框或裁剪。

分享到:
上一篇
AI+制造应用教程:从数据准备到产线质检的落地步骤
下一篇
AI预测性维护配置:从数据采集到告警的落地步骤
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意