【6】基于 Docker + YOLOv8 的模型部署实战(GTX1660S + Ubuntu22.04)

开源YOLOv8自动化标注平台:从模型集成到本地Docker化部署实战 本文详细介绍了开源YOLOv8自动化标注平台的本地Docker化部署实战,涵盖从环境配置到模型集成的全流程。该平台通过集成YOLOv8目标检测模型,大幅提升标注效率,支持多种数据格式和自定义模型,特别适合中小型团队快速实现自动化标注需求。 阅读详情

本文基于之前博客中的 YOLOv8 Docker 训练环境,完整讲解:

 
模型训练
    ↓
ONNX导出
    ↓
TensorRT加速
    ↓
Python推理
    ↓
Docker部署
    ↓
API服务化

适合人群:

  • 想学习 AI 模型部署
  • 想做 YOLOv8 推理优化
  • 想学习 TensorRT
  • 想学习 ONNX Runtime
  • 想做工业 AI 部署

本文环境:

项目版本
Ubuntu22.04
GPUGTX1660S
Docker最新版
CUDA容器内置
PyTorchNVIDIA NGC
YOLOv8ultralytics

一、什么是模型部署?

模型部署:

 
让训练好的模型真正运行起来

例如:

  • 摄像头检测
  • 视频分析
  • Web API
  • 工业检测
  • 边缘AI

训练:

 
只是开始

真正上线:

 
部署才是重点

二、YOLOv8 为什么适合部署?

YOLO 系列最大的优势:

 
实时检测

特点:

特性说明
推理快FPS高
精度高mAP优秀
模型小易部署
导出方便ONNX/TensorRT

YOLOv8 采用 Anchor-Free 与解耦检测头设计,更适合现代部署优化。


三、工业界主流部署流程

现在最常见:

 
PyTorch
    ↓
ONNX
    ↓
TensorRT
    ↓
Docker
    ↓
服务化API

原因:

技术作用
ONNX通用模型格式
TensorRTNVIDIA推理加速
Docker环境隔离
FastAPIAPI服务

四、本文部署方案

本文采用:

 
YOLOv8n
 + ONNX
 + TensorRT FP16
 + FastAPI
 + Docker

因为:

GTX1660S:

  • 显存只有6GB
  • 更适合轻量模型
  • FP16收益明显

五、Docker 环境准备

1. 拉取 NVIDIA PyTorch 镜像

 
docker pull nvcr.io/nvidia/pytorch:24.12-py3

NVIDIA 官方 NGC PyTorch 镜像:
NVIDIA NGC PyTorch Container


六、启动容器

 
docker run -it --gpus all \
    --shm-size=16g \
    --name yolov8-deploy \
    -v /home/workspace:/workspace \
    nvcr.io/nvidia/pytorch:24.12-py3

参数说明:

参数作用
--gpus all使用GPU
--shm-size增加共享内存
-v挂载目录

七、安装 YOLOv8

1. 克隆项目

 
cd /workspace

git clone https://github.com/ultralytics/ultralytics.git

cd ultralytics

官方项目:
Ultralytics YOLO Github


2. 安装依赖

 
pip install -e .

八、准备模型

这里直接使用官方模型:

 
yolov8n.pt

下载:

 
wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt

九、为什么部署前要转 ONNX?

PyTorch:

 
更适合训练

但:

 
不一定适合生产部署

ONNX:

  • 跨平台
  • 更容易优化
  • 支持 TensorRT
  • 支持 ONNX Runtime

Ultralytics 官方也推荐先导出 ONNX 再进行生产部署。


十、导出 ONNX

1. 最简单导出

 
yolo export \
    model=yolov8n.pt \
    format=onnx

生成:

 
yolov8n.onnx

十一、推荐生产导出参数

 
yolo export \
    model=yolov8n.pt \
    format=onnx \
    imgsz=640 \
    half=True \
    dynamic=True \
    simplify=True

参数说明:

参数作用
half=TrueFP16
dynamic=True动态batch
simplify=TrueONNX简化

十二、为什么推荐 FP16?

GTX1660S:

 
支持FP16

FP16:

  • 显存减半
  • 推理更快
  • 精度损失很小

Ultralytics 部署文档中也推荐 NVIDIA GPU 使用 TensorRT FP16。


十三、ONNX Runtime 推理

1. 安装 ONNX Runtime

 
pip install onnxruntime-gpu

2. 推理代码

创建:

 
touch infer_onnx.py

十四、ONNX Runtime 推理脚本

 
import cv2
import numpy as np
import onnxruntime as ort

session = ort.InferenceSession(
    "yolov8n.onnx",
    providers=["CUDAExecutionProvider"]
)

input_name = session.get_inputs()[0].name

img = cv2.imread("test.jpg")

img = cv2.resize(img, (640, 640))

img = img.transpose(2, 0, 1)

img = np.expand_dims(img, axis=0)

img = img.astype(np.float32) / 255.0

outputs = session.run(
    None,
    {input_name: img}
)

print(outputs[0].shape)

十五、TensorRT 部署

TensorRT:

 
NVIDIA官方推理加速框架

特点:

  • GPU优化极强
  • FP16/INT8支持
  • 延迟低
  • 吞吐高

TensorRT 可比原始 PyTorch 推理快数倍。


十六、直接导出 TensorRT Engine

YOLOv8 已支持:

 
yolo export \
    model=yolov8n.pt \
    format=engine \
    half=True

生成:

 
yolov8n.engine

十七、TensorRT 推理代码

 
from ultralytics import YOLO

model = YOLO("yolov8n.engine")

results = model("test.jpg")

results[0].show()

十八、部署速度对比

典型情况:

部署方式速度
PyTorch普通
ONNX Runtime更快
TensorRT FP16非常快

Ultralytics 官方测试中,TensorRT 往往比原始 PyTorch 更快。


十九、为什么工业界喜欢 TensorRT?

因为:

 
GPU利用率高

TensorRT 会:

  • 图优化
  • Kernel融合
  • 自动FP16
  • 内存优化

二十、FastAPI 服务化部署

实际生产中:

 
模型
 ≠ 真正服务

通常需要:

 
HTTP API

二十一、安装 FastAPI

 
pip install fastapi uvicorn python-multipart

二十二、创建 API 服务

创建:

 
touch app.py

二十三、完整 FastAPI 部署代码

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

app = FastAPI()

model = YOLO("yolov8n.engine")

@app.post("/predict")

async def predict(file: UploadFile):

    path = file.filename

    with open(path, "wb") as buffer:
        shutil.copyfileobj(file.file, buffer)

    results = model(path)

    result = results[0].boxes.xyxy.tolist()

    return {
        "result": result
    }

二十四、启动服务

 
uvicorn app:app \
    --host 0.0.0.0 \
    --port 8000

浏览器访问:

 
http://IP:8000/docs

即可看到 Swagger API。


二十五、测试 API

curl 测试

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

二十六、Docker 化部署

真正生产:

 
必须Docker化

原因:

  • 易迁移
  • 易扩容
  • 易运维
  • 环境一致

二十七、创建 Dockerfile

 
FROM nvcr.io/nvidia/pytorch:24.12-py3

WORKDIR /app

COPY . .

RUN pip install -e .
RUN pip install fastapi uvicorn python-multipart

CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]

二十八、构建镜像

 
docker build -t yolov8-api .

二十九、运行部署容器

 
docker run -it --gpus all \
    -p 8000:8000 \
    yolov8-api

三十、真实工业部署架构

很多公司:

 
摄像头
   ↓
RTSP
   ↓
YOLO推理
   ↓
FastAPI
   ↓
前端展示

或者:

 
Triton Server

三十一、Triton Inference Server

NVIDIA 官方:

 
Triton推理服务器

支持:

  • TensorRT
  • ONNX
  • PyTorch
  • 多模型
  • 动态Batch

Ultralytics 官方已提供 Triton 集成方案。


三十二、为什么 Triton 很强?

特点:

功能说明
多模型管理支持多个模型
自动Batch提高吞吐
GPU调度自动优化
HTTP/gRPC高性能接口

三十三、GTX1660S 部署建议

1660S:

  • 6GB显存
  • 更适合轻量模型

推荐:

项目推荐
模型yolov8n/s
batch1
FP16开启
imgsz640

三十四、部署中的常见问题

1. CUDA 不可见

检查:

 
nvidia-smi

2. Docker GPU 无法使用

检查:

 
docker run --gpus all

3. ONNX Runtime GPU 不生效

检查:

 
print(ort.get_available_providers())

应包含:

 
CUDAExecutionProvider

4. TensorRT 导出失败

升级:

 
pip install -U ultralytics

三十五、完整 AI 部署路线

推荐学习路线:

 
YOLOv8训练
    ↓
ONNX
    ↓
TensorRT
    ↓
FastAPI
    ↓
Docker
    ↓
Triton

这是目前 NVIDIA GPU 非常主流的部署路线。


三十六、总结

本文基于:

  • Ubuntu22.04
  • Docker
  • GTX1660S
  • YOLOv8

实现了:

  • ONNX部署
  • TensorRT部署
  • FastAPI服务化
  • Docker部署
  • GPU推理优化

核心思想:

 
训练只是开始
部署才是真正落地

后续进阶方向

后面推荐继续学习:

 
INT8量化
    ↓
DeepStream
    ↓
Triton
    ↓
Jetson部署

这是目前工业视觉 AI 的主流方向。

基于YOLOv8的危险武器检测系统:从算法原理到工程部署全流程 目标检测作为计算机视觉的核心技术,通过深度学习算法实现对图像中特定物体的定位和识别。YOLOv8作为单阶段检测算法的代表,采用Anchor-Free设计和Decoupled Head架构,在精度与速度平衡上实现显著提升。该技术的工程价值在于能够替代传统人工监控,实现7×24小时自动化安防检测。在公共安全监控和智能安防场景中,YOLOv8通过多尺度特征融合有效应对武器目标尺度变化大的挑战,特别适合危险武器检测这类对实时性和准确性要求较高的应用。本文基于YOLOv8算法,详细介绍了从环境配置、模型训练到界面开发 阅读详情

相关推荐

宠物健康AI初筛系统:轻量级对话框架设计与本地化部署

宠物健康辅助诊断是AI在垂直医疗场景落地的关键方向之一,其核心在于平衡专业性、可解释性与工程可行性。不同于通用大模型直接生成式应用,该类系统需深度融合兽医临床路径、结构化症状解析与可控对话生成三大技术模块,强调决策过程可追溯、数据本地化、响应低延迟。基于DistilBERT+知识图谱+Phi-3-mini的三层嵌套架构,有效规避幻觉风险,满足《个人信息保护法》对动物健康信息的合规要求。典型应用场景包括私域问诊嵌入、基层诊所AI预检分诊及开发者定制健康管家,尤其适合中小型动物医疗机构快速构建安全、可信、可审计

cumian9828的博客 856

【4】基于 Docker + YOLOv8 环境将模型转换为 ONNX(GTX1660S + Ubuntu22.04)

本文详细介绍了YOLOv8模型从PyTorch到ONNX的转换及推理部署流程。主要内容包括:1) ONNX作为通用模型交换格式的优势;2) 在Docker环境中搭建YOLOv8开发环境;3) 使用yolo export命令导出ONNX模型的关键参数配置;4) ONNXRuntime GPU推理验证;5) GTX1660S显卡的部署建议。文章提供了完整的ONNX导出命令和推理测试代码,并阐述了ONNX与TensorRT的关系,为后续模型加速部署奠定了基础。该教程适合YOLOv8初学者学习模型部署和优化,特别是

lu_linux的博客 555

YOLOv8车辆识别系统:七类车型检测与PyQt5界面部署指南

目标检测作为计算机视觉的核心技术,通过深度学习模型实现对图像中特定物体的定位与分类。其原理基于卷积神经网络提取特征,结合边界框回归和分类器完成精准识别。在智能交通、安防监控等领域,目标检测技术能够实现车辆类型统计、违规行为识别等实用功能。YOLOv8作为当前先进的实时检测算法,在精度和速度方面表现优异。本系统基于YOLOv8框架,专门针对七种常见道路车辆(包括小型轿车、中型轿车、大型卡车等)进行优化检测,并集成PyQt5开发了现代化的图形界面,支持图片、视频和实时摄像头三种检测模式。系统提供完整的项目源码和

chuozhi7142的博客 473

【2】基于 Docker + YOLOv8 环境实现模型蒸馏实战(GTX1660S + Ubuntu22.04)

模型蒸馏(Knowledge Distillation)本质上是:用一个“大模型”指导“小模型”学习。角色作用Teacher(教师模型)精度高,但体积大Student(学生模型)更小、更快模型参数量推理速度YOLOv8m较大较慢YOLOv8n很小很快先训练一个 YOLOv8m再让 YOLOv8n 学习 YOLOv8m 的“知识”小模型精度会提升推理速度仍然很快更适合边缘部署。

lu_linux的博客 755

YOLO26环境部署与性能优化实战指南

目标检测是计算机视觉的核心任务之一,YOLO(You Only Look Once)系列以其高效的实时检测能力著称。YOLO26作为最新版本,通过改进网络结构和训练策略,在保持实时性的同时提升了检测精度。其技术价值在于将深度学习模型部署到实际生产环境中,广泛应用于安防监控、自动驾驶和工业质检等领域。本文以YOLO26为例,详细解析从CUDA环境配置、模型训练到TensorRT加速的完整流程,特别针对NVIDIA显卡优化和模型压缩等工程实践问题提供解决方案。通过半精度推理和多线程处理等技巧,可显著提升在边缘设

weixin_30421809的博客 363

基于YOLOv8的汽车损伤智能检测系统:原理、实现与应用

目标检测作为计算机视觉的核心技术,通过深度学习算法实现对图像中特定物体的识别与定位。YOLOv8作为当前最先进的目标检测框架,采用单阶段检测原理,在保持高精度的同时显著提升推理速度。这一技术突破为工业应用带来了重要价值,特别是在汽车后市场服务领域。通过将YOLOv8算法应用于汽车损伤识别,系统能够自动检测划痕、凹陷等常见损伤类型,为保险理赔、二手车评估等场景提供高效的自动化解决方案。基于包含11,675张专业标注图像的数据集训练,该系统在GPU环境下可实现毫秒级处理速度,满足实时检测需求。深度学习技术的引入

weixin_30882895的博客 410

【3】基于 Docker + YOLOv8 环境实现模型裁剪(GTX1660S + Ubuntu22.04)

删除神经网络中“不重要”的参数很多神经元其实没什么用可以删除不影响太多精度还能减少计算量DockerGTX1660SYOLOv8模型裁剪权重删除Fine-tune恢复ONNX部署方向删除不重要参数更小模型更低显存更快推理这是 AI 部署优化中的核心技术之一。

lu_linux的博客 468

YOLOv8海洋生物检测系统实战指南:从毕设到渔业落地

YOLOv8作为当前主流的实时目标检测框架,凭借Anchor-Free设计、C2f骨干与Task-Aligned匹配机制,在小目标识别和多尺度融合上显著优于YOLOv5等早期版本。其轻量化结构(如v8n)特别适合Jetson Nano等边缘设备部署,结合CBAM注意力、BiFPN特征融合与EIoU损失优化后,可有效应对水下图像低对比度、色偏与运动模糊等挑战。该技术已广泛应用于水产养殖巡检、海洋生态监测及濒危物种保护等场景,支撑近海视频流实时分析与生物语义理解。本文详解S2026053毕设级项目——一个经工程

weixin_34174322的博客 330

【5】基于 Docker + YOLOv8 环境实现模型量化(GTX1660S + Ubuntu22.04)

降低模型计算精度原始类型量化后FP32FP16FP32INT8用更小的数据类型表示神经网络参数DockerGTX1660SYOLOv8FP16量化INT8量化ONNX量化TensorRT量化Calibration校准降低精度提升速度这是 AI 推理部署中最核心的优化技术之一。

lu_linux的博客 456

YOLOv8夜间车辆识别实战:低照度目标检测与边缘部署

目标检测是计算机视觉的基础任务,其核心在于从图像中准确定位并分类物体;YOLOv8作为当前主流的单阶段检测框架,凭借端到端训练和高推理效率被广泛采用;但在低照度、强光晕、运动拖影等真实夜间场景下,标准RGB输入、固定anchor与通用Docker部署会严重失配物理成像特性;技术价值体现在通过双通道输入重构、混合标注协议与硬件感知Dockerfile,显著提升小目标检出率与部署鲁棒性;典型应用场景包括交通卡口夜间预警、车载ADAS实时感知及边缘NVR智能分析;本文聚焦YOLOv8在红外/弱光图像中的落地难点,

weixin_42535720的博客 315

YOLOv8 Pose实验室安全行为识别实战

实验室安全行为识别是智能监控中的典型细粒度姿态理解任务,其核心在于结合目标检测与人体关键点定位,实现对护目镜佩戴、手套穿戴等高危动作的精准判别。传统方法受限于姿态变化与反光干扰,而YOLOv8 Pose通过OKS损失函数与可变形卷积,在关键点鲁棒性与推理效率上实现突破。该技术具备轻量部署、小样本适配和多场景泛化能力,广泛适用于高校实验教学监管、危化品操作合规审计及工业安全巡检等真实落地场景。本文围绕YOLOv8 Pose模型展开实验室定制化实践,涵盖数据集构建、反光抑制增强、Streamlit轻量化界面与G

weixin_32678995的博客 232

【1】基于 GTX1660 Super + Docker + YOLOv8 的目标检测训练完整实践(Ubuntu22.04)

本文基于如下环境,完整演示如何从零开始搭建 YOLOv8 训练环境,并使用 COCO128 数据集训练 YOLOv8n 模型,同时深入讲解 YOLOv8 的训练原理、参数含义、模型结构、ONNX 导出以及后续模型压缩优化路线。

lu_linux的博客 564

YOLOv8钱币识别系统:毕设级数据集、GUI与部署全栈方案

目标检测是计算机视觉的基础任务,其核心在于模型、数据与工程落地的协同。YOLOv8作为轻量高效的目标检测框架,广泛应用于工业质检、金融识别等场景;而钱币识别则代表了小目标、多类别、高精度定位的典型挑战。本文围绕YOLOv8钱币识别展开,深入解析高质量标注数据集构建逻辑、PyQt5定制化可视化交互设计、以及覆盖conda环境、Docker容器与PyInstaller打包的全链路部署实践。特别聚焦学生群体真实痛点——数据标注一致性、GUI工程化封装、低配显卡推理优化,提供可直接复用的毕设级源码与文档。适用于课程

weixin_28362173的博客 330

YOLOv5目标检测实战:从安装到部署全流程指南

目标检测是计算机视觉中的核心技术,通过定位和识别图像中的物体,广泛应用于安防、自动驾驶等领域。YOLOv5作为当前最先进的实时目标检测框架,采用单阶段检测架构,在精度和速度之间实现了最佳平衡。其核心原理是通过网格划分和锚框机制,将目标检测转化为回归问题,显著提升了推理效率。在工程实践中,YOLOv5凭借模块化设计和完整的工具链支持,成为工业级应用的首选方案。本文以最新v7.0版本为例,详解环境配置、数据准备、模型训练等关键环节,特别包含PyTorch框架优化和TensorRT加速等实战技巧,帮助开发者快速实

culi4814的博客 649

YOLOv8地下管廊积水渗漏检测系统实战

地下管廊智能巡检依赖高鲁棒性的视觉检测技术,其核心在于应对积水形态多变、渗漏尺度微小及低光照强干扰等典型工业场景挑战。YOLOv8凭借Anchor-Free设计、C2f特征提取模块与Task-Aligned Assigner机制,在边缘模糊、运动模糊和亚像素级线状缺陷识别中展现出显著优势;结合YOLOv8-seg实例分割能力,可精准提取渗漏mask并支持曲率分析与量化分级。该方案已落地于老旧管廊真实环境,兼顾实时性(24fps)、离线可用性与工程部署兼容性,适用于智慧城市基础设施运维、市政AI巡检系统开发及

weixin_34161029的博客 368

YOLOv8夜间车辆识别:从成像缺陷到嵌入式部署的全栈攻坚

夜间车辆识别是目标检测在低照度、高噪声、非均匀光照等复杂物理条件下的典型挑战,其本质是图像信噪比崩溃、运动模糊、光晕干扰与谱域信息缺失共同导致的检测鲁棒性退化。传统YOLOv8模型虽具备动态标签分配与解耦检测头等优势,但需针对夜间成像特性重构数据预处理、特征融合机制与边界损失函数。技术价值体现在提升小目标召回率、抑制过曝区误检、适配红外/可见光多模态输入,并支撑智慧交通、智能安防等边缘场景的实时部署。本文聚焦真实落地中的关键切口——如inference.cpp定制化CUDA核、Docker跨平台一致性构建、

weixin_42667269的博客 238

YOLOv8安全手套佩戴识别检测系统:从原理到工业部署实践

目标检测作为计算机视觉的核心技术,通过深度学习算法实现对图像中特定物体的定位与识别。其原理基于卷积神经网络提取特征,结合边界框回归和分类器实现精准检测。在工业安全领域,这项技术能够自动识别作业人员的安全装备佩戴情况,有效预防工伤事故。基于YOLOv8的安全手套佩戴识别系统采用两类别检测模型(Gloves/NO-Gloves),支持8097张高质量标注数据的模型训练,具备图片、视频和实时摄像头三种检测模式。该系统通过PyQt5图形界面提供直观的操作体验,并支持CPU/GPU双推理方式,在建筑工地、工厂车间等场

diaogan4202的博客 360

基于YOLOv8的高空抛物智能监控系统:从算法到完整工程实践

目标检测是计算机视觉的核心任务之一,旨在识别图像或视频中的物体并定位其位置。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并预测边界框和类别。这项技术的价值在于将视觉信息转化为结构化数据,为自动化决策提供支持。在安防监控、自动驾驶、工业质检等场景中,目标检测是实现智能化感知的关键。本文聚焦于社区高空抛物这一具体应用场景,探讨如何利用YOLOv8这一先进的目标检测框架构建完整的监控系统。系统涉及数据工程、模型训练、系统集成与部署全流程,并特别关注了GTX1660Ti等边缘设备的部署优化,以及如何通过数

weixin_29064009的博客 260
上一篇: 【5】基于 Docker + YOLOv8 环境实现模型量化(GTX1660S + Ubuntu22.04)
下一篇: ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
我是谁??
博客等级 码龄11年 242粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值