littlebot
Published on 2025-04-16 / 2 Visits
0

【源码】基于Python的CVAT标注数据处理工具

项目简介

本项目是基于Python的CVAT标注数据处理工具,针对CVAT(Computer Vision Annotation Tool)生成的标注数据进行处理和管理,能助力用户高效开展标注数据的管理、转换和导出工作。

项目的主要特性和功能

  1. 数据加载:可从CVAT导出的XML文件加载标注数据。
  2. 标签管理:支持添加、修改和合并标签,便于管理标注数据标签。
  3. 数据转换:能将CVAT标注数据转换为YOLO等常见格式。
  4. 数据导出:可将处理后的数据导出为YOLO和图像分类等深度学习框架所需格式。
  5. 图像分割与遮罩处理:可从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】