YOLOv8 相关环境安装
使用 conda 创建虚拟环境,然后安装 ultralytics 相关环境,测试下 yolo 命令,主要是为后面使用 airockchip/ultralytics_yolov8 导出模型创建环境。也可以直接跳到后面模型导出小结,拉取airockchip/ultralytics_yolov8,然后根据 requirements.txt 安装环境。
# 使用 conda 创建虚拟环境
conda create -n yolov8 python=3.8
conda activate yolov8# 安装 pytorch 等等
# 安装 YOLOv8 ,直接使用命令安装
pip install ultralytics -i https://mirror.baidu.com/pypi/simple# 或者通过拉取仓库然后安装
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .
# 安装成功后,使用命令 yolo 简单看下版本
(yolov8) llh@anhao:/$ yolo version
8.0.206
安装之后,就可以直接使用 yolo 命令 或者编写 python 程序 进行模型训练等等操作。
TACO 数据集
TACO 是一个包含在不同环境下(室内、树林、道路和海滩)拍摄的垃圾图像数据集,这些图像中的垃圾对象被精细地用方框和多边形进行了标注,标注信息采用与 COCO 数据集一样的格式,总共有 60 个类别,不过有的类别标注得很少甚至没有(建议训练数据集可以减少类别)。
下载数据集:
git clone https://github.com/pedropro/TACO.git
cd TACO# 运行脚本下载图像数据,默认下载官方数据集( annotations.json )是 1500 张,也可以指定下
载非官方的数据( annotations_unofficial.json )
python3 download.py
下载失败可以重新运行命令,如果还是下载失败,也可以到配套例程网盘下载数据集,然后解压到 TACO/data 目录下。
TACO 数据集中有很多程序,可以查看数据集的相关信息:
列表 1: example/garbage_detection/taco/dataset_info.py
# 参考 demo.ipynb ,查看官方数据集整体信息
import json
import numpy as np
dataset_path = './data'
anns_file_path = dataset_path + '/' + 'annotations.json'
# Read annotations
with open(anns_file_path, 'r') as f:
dataset = json.loads(f.read())
categories = dataset['categories']anns = dataset['annotations']
imgs = dataset['images']
nr_cats = len(categories)
nr_annotations = len(anns)
nr_images = len(imgs)
# Load categories and super categories
cat_names = []
super_cat_names = []
super_cat_ids = {}
super_cat_last_name = ''
nr_super_cats = 0
for cat_it in categories:
cat_names.append(cat_it['name'])
super_cat_name = cat_it['supercategory']
# Adding new supercat
if super_cat_name != super_cat_last_name:
super_cat_names.append(super_cat_name)
super_cat_ids[super_cat_name] = nr_super_cats
super_cat_last_name = super_cat_name
nr_super_cats += 1
print('Number of super categories:', nr_super_cats)
print('Number of categories:', nr_cats)
print('Number of annotations:', nr_annotations)
print('Number of images:', nr_images)
python data.py
# 运行程序输出
Number of super categories: 28
Number of categories: 60Number of annotations: 4784
Number of images: 1500
官方数据集总共 1500 张图像,有 60 个类别,4784 个标注。
数据集处理
TACO 数据集标注信息和 COCO 格式一样,我们将使用 COCO 数据集的 API 来处理 TACO 数据集,将数据集划分。要使用 Yolov8-seg 训练,还需要并将其转换成 yolo 格式。利用 TACO 仓库提供的 detector/split_dataset.py,我们将 TACO 数据集的标注信息 annotations.json划分成三份 train, val, test,生成对应的 json 文件。
# 在 TACO 工程目录下执行 detector/split_dataset.py 划分数据集 ,--dataset_dir 指定
json 路径, --test_percentage 设置测试集
# --val_percentage 设置验证集, --nr_trials 设置份数
python detector/split_dataset.py --dataset_dir ./data --test_percentage 5