一.关于docker
Docker 是一个开源的平台,用于开发、交付和运行应用程序。它使用容器技术,可以将应用程序及其依赖项打包成容器,从而实现快速部署、可移植性和可伸缩性。
下载推荐使用小鱼的一键安装,非常好用,小鱼是神。
wget http://fishros.com/install -O fishros && . fishros
-
docker --version
:查看 Docker 版本信息。 -
docker pull <image_name>
:从 Docker Hub 下载镜像到本地。 -
docker images
:列出本地已下载的镜像。 -
docker run <image_name>
:运行一个容器。 -
docker ps
:列出正在运行的容器。 -
docker ps -a
:列出所有容器,包括已停止的。 -
docker exec -it <container_id> <command>
:在运行的容器中执行命令。 -
docker stop <container_id>
:停止一个正在运行的容器。 -
docker rm <container_id>
:删除一个容器。 -
docker rmi <image_name>
:删除一个本地镜像。 -
docker build -t <image_name> <path_to_dockerfile>
:构建一个新的镜像。 -
docker-compose up
:使用 Docker Compose 启动应用程序。
二.YOLOv8介绍
Ultralytics 并没有直接将开源库命名为 YOLOv8,而是直接使用 ultralytics 这个词,原因是 ultralytics 将这个库定位为算法框架,而非某一个特定算法,一个主要特点是可扩展性。其希望这个库不仅仅能够用于 YOLO 系列模型,而是能够支持非 YOLO 模型以及分类分割姿态估计等各类任务。总而言之,ultralytics 开源库的两个主要优点是:
1.融合众多当前 SOTA 技术于一体
2.未来将支持其他 YOLO 系列以及 YOLO 之外的更多算法
Ultralytics为YOLO模型发布了一个全新的存储库。它被构建为 用于训练对象检测、实例分割和图像分类模型的统一框架。
提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求。
骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。不过这个 C2f 模块中存在 Split 等操作对特定硬件部署没有之前那么友好了。
Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free
Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss
训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度。
YOLOv8 还高效灵活地支持多种导出格式,并且该模型可以在 CPU 和 GPU 上运行。YOLOv8 模型的每个类别中有五个模型用于检测、分割和分类。YOLOv8 Nano 是最快和最小的,而 YOLOv8 Extra Large (YOLOv8x) 是其中最准确但最慢的。
三.YOLOv8训练部署过程,环境配置
1.安装anaconda,创建一个yolov8的虚拟环境,推荐python版本3.8
2.根据你使用的cuda版本,先安装对应的PyTorch-gpu的版本(否则默认安装的是cpu版本)。
3.#Pip install the ultralytics package including all requirements in a Python>=3.7 environment with PyTorch>=1.7.
在yolov8虚拟环境下,在终端输入:pip install ultralytics
yolov8工程就下载完成了,工程文件默认安装在../env/yolov8/bin/ultralytics
注:如果是从GitHub官方通过git clone拉取的工程,依然需要pip install ultralytics。在使用yolo命令行时,程序执行的依然是../env/yolov8/bin/ultralytics/目录下的工程文件。
执行pip install ultralytics后,环境已经将requirement.txt的必要库都安装好了,但为了转onnx模型和更好的训练,建议再配置如下几个库,可以参考官方项目中的requirement.txt文件。
# Logging -------------------------------------
# tensorboard>=2.13.0
# Export --------------------------------------
# onnx>=1.12.0 # ONNX export
# onnxsim>=0.4.1 # ONNX simplifier
# Extras --------------------------------------
# pycocotools>=2.0.6 # COCO mAP
这几个是默认未自动安装的,需要手动安装,例:pip install tensorboard == 2.13.0
至此yolov8工程和环境配置完成
四.训练
yolov8训练,官方文档:
Train - Ultralytics YOLOv8 Docs
预测,官方文档:
Predict - Ultralytics YOLOv8 Docs
五.实际操作
1.登录训练服务器 (账号密码见工作笔记本)
2.sudo docker ps -a
3.sudo docker start yolov8-seg(或rknn等)
4.sudo docker exec -it yolov8-seg /bin/bash
5.cd /usr/src