2D水平目标检测数据增强——旋转任意指定角度
这段代码主要实现了以下功能:
- 环境设置与导入库:设置环境变量(针对Apple MPS设备),导入必要的库(如os, numpy, torch, matplotlib, PIL, OpenCV等)。
- 设备选择:根据可用性选择运行设备(CUDA、MPS或CPU),并进行一些设备相关的配置(如使用bfloat16、TF32等)。
- 辅助函数定义:
get_rect
:通过阈值分割和轮廓检测,从二值图像中提取包围所有轮廓的最小矩形。rotate_image
:将图像旋转指定角度,并返回旋转后的图像以及旋转矩阵等信息。rotate_mask
:类似于rotate_image
,但专用于处理掩码(单通道)。read_yolo_labels
:读取YOLO格式的标签文件,返回标签列表(每个标签包含类别和归一化坐标)。read_yolo_labels_for_infer
:从YOLO标签文件中读取标签,并转换为图像上的实际坐标(用于推理)。visualize_yolo_labels
:在图像上绘制YOLO标签(矩形框和类别)。mkdir
:创建目录(如果不存在)。convert_to_yolo
: