CVAT 使用(1) 界面与标注功能介绍

0. 前言

  • 主要内容:
    • 介绍CVAT标注的界面。
    • 介绍CVAT支持的标注相关功能。
  • 参考资料:主要对应用户手册中的 Interface of the annotation tool
  • 还有一大堆细节,等用到了再说。

1. 界面基本介绍

1.1. 总体浏览

  • 界面如下图所示(图来自用户手册,在官方Demo中确认了一下,还是长这样),分为五个部分,下面分别介绍。
  • Header
    • 主要包括CVAT的几个基本功能导航,以及当前用户相关设置。
    • 基本功能主要包括 Tasks/Models/Analytics 三个部分,分别表示标注任务/预训练模型/分析。最后这个不知道是做什么的。
  • Top panel
    • 主要包括图片导航(选择图片)、Menu、保存、撤销/恢复、全屏、标注结果统计、mode切换。
    • 比较多,比较杂。
  • Workspace:工作区,没啥好介绍的,就是图像所在区域。
  • Controls sidebar:控制相关命令侧边栏,包括设置图片大小、位置,创建shape、编辑tracks等标注基本功能。
  • Objects sidebar:标签相关侧边栏,包括两个选项(objects和labels),还有 appearance 相关设置(就是各类标签的展示颜色、透明度等)

img

1.2. navigation 相关

  • 我也不知道该怎么翻译,“导航”好像不能完全表达这个词的意思,大概就是选择图像帧、选择图像帧中具体某些区域的位置这类操作。
  • 选择图像帧相关
    • 按钮功能主要包括前/后一帧前/后 step 帧第一帧/最后一帧播放
    • 还有一个进度条表示图像帧在所有数据中的位置,以及帧编号。
    • img
  • 选中帧后,要选择图像的位置以及缩放有以下几个基本操作
    • 移动图像/选择中心位置:使用第一张图的选项。
    • 另外两个功能是:使图像适应屏幕大小/选择一块区域放大。
    • imgimg

2. 支持的功能

2.1. 从支持的形状角度看

  • 支持的形状

    • 矩形(即目标检测的bounding box)
    • 多边形(即分割)
    • 多段线
    • 长方体
    • Tag(图中没有显示)
  • 示例(下图来自官方用户手册)

    • image-20201129212117530

2.2. 支持的模式

  • Shape Mode(画图模式)
    • 作用:为一组图片添加标注,并已有的标注进行修改
    • 使用:在创建各类shape的时候,有shape和track两种模式,选择shape模式就是shape mode。image-20201130095903637
    • 更多使用细节就等以后再说吧。
  • Track Mode(追踪模式)
    • 作用:用于标注track,本质就是标注关键帧,而关键帧之间的标注通过差值来实现。
    • 使用:就是在创建各类shape的时候,选择track模式,跟上面的图一样,就不放了。
  • Attribute annotation mode
    • 作用:能够快速通过键盘对物体的annotation以及对应的属性值进行标注。
    • 开启:需要在top pannel中选择该模式,注意下图右上方。img

2.3. 其他功能

  • 下载标注结果
    • 大概步骤就是:保存想、选择Menu中需要的结构即可。
    • img
  • 任务同步:
    • 这个的具体细节没了解,大概就是将任务同步git项目的某分支?目前用不到,没有更进一步了解。
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-obXyVSmT-1606707111630)(E:\blogs\images\image106.jpg)]
  • Vocabulary(标签结构)
    • label:定义标注目标类型
    • attribute:物体的属性,有单选、多选等选项。
    • track:就是多帧之间bbox的关联。
    • annotation:可以理解为一系列shapes和tracks的集合。
如果您不想使用CVAT工具,而是直接从CVAT标签文件中读取标签并使用OpenCV显示边界框和点,可以按照以下步骤进行操作: 1. 导入需要的库: ```python import cv2 import xml.etree.ElementTree as ET ``` 2. 定义一个函数来读取CVAT标签文件并显示标签: ```python def display_cvat_labels(image_path, label_file): # 读取图像 image = cv2.imread(image_path) # 解析XML标签文件 tree = ET.parse(label_file) root = tree.getroot() # 遍历每个标签 for track in root.findall('.//track'): label_type = track.get('label') # 如果是边界框类型 if label_type == 'box': xmin = int(track.find('.//xmin').text) ymin = int(track.find('.//ymin').text) xmax = int(track.find('.//xmax').text) ymax = int(track.find('.//ymax').text) # 在图像上绘制边界框 cv2.rectangle(image, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2) # 如果是点类型 elif label_type == 'points': points = track.find('.//points').text.split(';') for point in points: x, y = map(int, point.split(',')) cv2.circle(image, (x, y), 3, (0, 0, 255), -1) # 显示图像 cv2.imshow('CVAT Labels', image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 3. 调用上述函数并传入图像路径和标签文件路径: ```python image_path = 'path/to/image.jpg' label_file = 'path/to/label.xml' display_cvat_labels(image_path, label_file) ``` 请确保将上述代码中的`'path/to/image.jpg'`替换为实际的图像文件路径,将`'path/to/label.xml'`替换为实际的CVAT标签文件路径。 这段代码将从CVAT标签文件中解析出边界框和点的坐标,并使用OpenCV在图像上绘制这些标签。 希望这对您有所帮助!如果您有任何其他问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值