YOLOv8实例分割(多边形标注)位置数据增强技术问询
针对YOLOv8多边形标注的数据增强方案
一、直接用YOLOv8内置增强(最简便)
YOLOv8的ultralytics库原生支持多边形标注(格式为每行class_id x1 y1 x2 y2 ... xn yn)的自动增强,无需手动修改坐标。只需在训练时配置对应参数即可:
- 训练命令中直接指定增强:
yolo segment train data=your_data.yaml model=yolov8n-seg.pt epochs=100 augment=True - 也可在
your_data.yaml中定制增强细节:augment: rotate: 0.5 # 最大旋转弧度(≈28.6度) flipud: 0.5 # 上下翻转概率 fliplr: 0.5 # 左右翻转概率 scale: 0.5 # 缩放范围(原图的0.5-1.5倍) translate: 0.1 # 平移范围(相对图像尺寸的比例)
YOLOv8会自动同步处理图像和多边形坐标,所有旋转、翻转、缩放、平移操作都会实时映射到标注点上。
二、自定义增强脚本(灵活控制)
如果需要更定制化的逻辑,可使用Albumentations库实现图像与多边形坐标的同步变换:
- 安装依赖:
pip install albumentations opencv-python - 单样本处理示例脚本:
若标注为绝对坐标,可直接跳过坐标转换步骤。import cv2 import albumentations as A import numpy as np # 加载图像和标注(假设标注为相对坐标) img = cv2.imread("sample.jpg") h, w = img.shape[:2] with open("sample_label.txt", "r") as f: label_lines = f.readlines() # 定义增强流水线 transform = A.Compose([ A.RandomRotate90(p=0.5), A.HorizontalFlip(p=0.5), A.VerticalFlip(p=0.5), A.RandomScale(scale_limit=0.5, p=0.5), A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.2, rotate_limit=30, p=0.5) ], keypoint_params=A.KeypointParams(format='xy', remove_invisible=False)) # 处理标注并生成增强结果 augmented_labels = [] for line in label_lines: parts = list(map(float, line.strip().split())) cls_id = parts[0] # 相对坐标转绝对坐标 abs_points = np.array([(parts[i]*w, parts[i+1]*h) for i in range(1, len(parts), 2)], dtype=np.float32) # 应用增强 result = transform(image=img, keypoints=abs_points) # 绝对坐标转回相对坐标 aug_w, aug_h = result['image'].shape[1], result['image'].shape[0] rel_points = [] for (x, y) in result['keypoints']: rel_points.append(x/aug_w) rel_points.append(y/aug_h) # 拼接成YOLO格式标注行 augmented_labels.append(f"{int(cls_id)} " + " ".join(map(str, rel_points))) # 保存增强后的图像和标注 cv2.imwrite("aug_sample.jpg", result['image']) with open("aug_sample_label.txt", "w") as f: f.write("\n".join(augmented_labels))
三、关键注意事项
- 确保标注点为闭合多边形的有序点集,无需重复首尾点;
- 增强时可通过
border_mode=cv2.BORDER_CONSTANT处理边界问题,或用A.CropNonEmptyMaskIfExists过滤无效标注; - 可将脚本扩展为批量处理循环,遍历整个数据集自动生成增强样本。
内容的提问来源于stack exchange,提问作者Abdullah Saatçi
相关产品推荐
相关产品推荐

