【目标检测算法】YOLOV8代码复现
1. 搭建环境
创建虚拟环境
1 | conda create -n yolov8 python=3.7 |
安装PyTorch1.8.0
1 | conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge |
下载作者开源的程序,并安装其他依赖
1 | git clone https://github.com/ultralytics/ultralytics |
2. 数据集制作(实例分割)
(0)使用相机录制目标物体数据
此处以 Realsense 相机 + Ubuntu 20.04 + ROS Noetic
为例。将相机通过 USB 连接至电脑后,运行以下 python 程序,拍摄目标物体,每按下一次 s
保存一个图像,按下 q
或 esc
退出数据录制。
建议在数据集中的图像,物体数量、角度、背景等尽可能丰富。
(1)使用 Labelme 创建实例分割数据集
安装 labelme
1 | pip install labelme |
安装完成后直接在命令行输入 labelme
即可打开。
使用 label 进行标注,将生成的 json 文件和原始图像 jpg,放入同一个文件夹中。
(2)Labelme 格式转 YOLO 格式
1 | pip install labelme2yolo |
1 | labelme2coco --json_dir path/to/labelme/dir |
(3)创建数据集的 YAML 文件
打开目录 ultralytics/datasets
,复制一份其中的 coco128-seg.yaml
,重命名为 custom-seg.yaml
,然后根据自己的数据集进行修改。
例如:
1 | # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] |
3. Python使用教程
一般使用此方法训练测试
(1)训练
1 | from ultralytics import YOLO |
(2)评价
1 | from ultralytics import YOLO |
(3)预测
获取预测结果
1 | from ultralytics import YOLO |
预测结果分析(results会包含预测所有结果的列表,当有很多图像的时候要注意避免内存溢出,特别是在实例分割时)
1 | # 1. return as a list |
4. 开始训练
新建一个python文件如train.py
,添加内容如下:
1 | from ultralytics import YOLO |
2.5 结果预测
评论