项目简介
本项目是基于Python的CVAT标注数据处理工具,针对CVAT(Computer Vision Annotation Tool)生成的标注数据进行处理和管理,能助力用户高效开展标注数据的管理、转换和导出工作。
项目的主要特性和功能
- 数据加载:可从CVAT导出的XML文件加载标注数据。
- 标签管理:支持添加、修改和合并标签,便于管理标注数据标签。
- 数据转换:能将CVAT标注数据转换为YOLO等常见格式。
- 数据导出:可将处理后的数据导出为YOLO和图像分类等深度学习框架所需格式。
- 图像分割与遮罩处理:可从CVAT标注文件提取遮罩信息,进行图像分割和叠加操作。
安装使用步骤
安装
假设用户已下载本项目的源码文件,按以下步骤安装:
1. 进入项目目录,在命令行执行:
bash
cd CVAT-Annotation-Tool
2. 使用pip安装(以可编辑模式安装):
bash
pip install -e .
若仅使用工具而不修改代码,可省略-e
选项。
使用
数据加载
```python from cvat.core import CVAT
cvat = CVAT()
cvat.load('path/to/your/cvat_annotations.xml')
meta = cvat.get_meta()
images = cvat.get_images() ```
数据导出
YOLO格式导出
python
cvat.export(
export_path='./export_path',
export_type='YOLOv1',
export_args=(
'./data/images/default',
(0.8, 0.15, 0.05),
'Kano'
)
)
参数说明:
- export_path
:导出文件的目标路径。
- export_type
:导出格式,此处为'YOLOv1'。
- export_args
:包含图像路径、数据集分割比例和数据集名称的元组。
Image-Classification格式导出
```python names_map = { '狗': 'Dog', '貓': 'Cat', }
cvat.export(
export_path='./export_path',
export_type='classification',
export_args=(
'./data/images/default',
(0.8, 0.15, 0.05),
'Kano',
'cvat_',
names_map,
['want_to_ignore_label_1', '__2']
)
)
``
参数说明:
-
export_path:导出文件的目标路径。
-
export_type:导出格式,此处为'classification'。
-
export_args`:包含图像路径、数据集分割比例、数据集名称、导出图片前缀、标签名映射和标签忽略列表的元组。
图像分割与遮罩处理
遮罩提取与转换
```python file = cvat.core.CVAT() file.load('./dataset/annotations.xml')
images_info = file.get_images() image_info = images_info[0] image_masks_info = cvat.data.Image.get_masks(image_info) image_mask_info = image_masks_info[0]
image_mask = cvat.utility.annotation.rle_to_binary_mask( image_mask_info[cvat.data.Mask.Keys.rle], image_mask_info[cvat.data.Mask.Keys.height], image_mask_info[cvat.data.Mask.Keys.width] ) ```
图像分割
```python item_image = cv2.imread('./dataset/images/' + image_info[cvat.data.Image.Keys.name])
segment_image = cvat.utility.image.segment_image_with_mask( item_image, image_mask, image_mask_info[cvat.data.Mask.Keys.top], image_mask_info[cvat.data.Mask.Keys.left], is_crop=True ) ```
图像叠加
```python background_image = cv2.imread('./images/background.jpg')
overlay_image = cvat.utility.image.overlay_image( background_image, segment_image, (background_image.shape[0] - segment_image.shape[0]) / 2, (background_image.shape[1] - segment_image.shape[1]) / 2 ) ```
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】