Skip to content

Latest commit

 

History

History
250 lines (157 loc) · 10.7 KB

user_guide.md

File metadata and controls

250 lines (157 loc) · 10.7 KB

用户手册

标签导入/导出

现阶段 X-AnyLabeling 提供了六种主流的标注格式的导入/导出功能,下面简单介绍下使用步骤。

  • 导入 YOLO 标签

在导入 YOLO 标注文件之前,需要大家事先准备好一份自定义类别文件。准备好之后,导入待标注的图像文件,再点击上方菜单栏的 导入 按钮,点击 导入 YOLO 标签,选择先前准备好的标签文件,最后再选择标签文件所在目录即可。

自定义类别文件样式可参考classes.txt

  • 导入 VOC 标签

由于 Pascal-VOC 提供的 xml 标签文件自带类别信息,因此我们只需直接点击上方菜单栏的 导入 按钮,点击 导入 VOC 标签,再选择标签文件所在目录即可。

xml 标签文件样式可参考demo.xml

  • 导入 COCO 标签

同 VOC 标签一致,导入 COCO 标签的步骤也很简单,只需点击上方菜单栏的 导入 按钮,点击 导入 VOC 标签,再选择 coco 的 json 文件即可。

json 标签文件样式可参考instances_default.json

  • 导入 DOTA 标签

点击上方菜单栏的 导入 按钮,点击 导入 DOAT 标签,选择标签文件所在目录即可。

  • 导入 MASK 标签

掩码标签主要用于分割算法,目前 X-AnyLabeling 工具支持两种形式,分别是灰度图和彩色图模式。在导入掩码标签文件之前,我们需要事先准备好一份相应地颜色映射表文件(*.json)格式,随后在遵循前述步骤直接点击上方菜单栏的 导入 按钮,点击 导入 MASK 标签,选择定义好的颜色映射表文件,最后再选择掩码标签文件所在目录即可。

彩色图颜色映射表文件可参考mask_color_map.json
灰度图颜色映射表文件可参考mask_grayscale_map.json

  • 导入 MOT 标签

MOT 标签适用于多目标跟踪算法,标签文件类型为 *.csv。同导入 YOLO 标签文件类似,我们需要提前准备好一份自定义类别文件,然后点击 导入 按钮,点击 导入 MOT 标签,选择自定义类别文件,最后再将 csv 格式的 MOT 标签文件导入即可。


导出设置与导入设置基本无异,用户只需在当前任务标注完成检查无误之后,点击上方菜单栏的导出按钮,再选择相应地格式导出即可。需要注意的是针对不同的导出样式可能需要提前准备好类别文件或颜色映射表文件等,具体可参考导入设置。

配置文件设置

X-AnyLabeling 中的配置文件 .anylabelingrc 默认存放在当前用户目录下,可参考:

#Linux
cd ~/.anylabelingrc

#Windows
cd C:\\Users\\xxx\\.anylabelingrc

以修改自定义的标签颜色为例,实施步骤如下:

  1. 打开您的用户目录下的配置文件(.anylabelingrc),您可以使用文本编辑器或命令行工具进行编辑。

  2. 在配置文件中找到字段 shape_color,确保其值为 "manual",这表示您将手动设置标签的颜色。

  3. 定位到 label_colors 字段,这是一个包含各个标签及其对应颜色的部分。

  4. label_colors 中,找到您想要修改颜色的标签,比如 "person"、"car"、"bicycle" 等。

  5. 使用 RGB 值来表示颜色,例如 [255, 0, 0] 表示红色,[0, 255, 0] 表示绿色,[0, 0, 255] 表示蓝色。

  6. 将您想要设置的颜色值替换到相应标签的值中,保存文件并关闭编辑器。

具体示例如下:

...
default_shape_color: [0, 255, 0]
shape_color: manual  # null, 'auto', 'manual'
shift_auto_shape_color: 0
label_colors:
  person: [255, 0, 0]
  car: [0, 255, 0]
  bicycle: [0, 0, 255]
  ...
...

这样,您已成功修改了自定义标签的颜色。下次在标注过程中使用这些标签时,它们将显示您所设置的颜色。同理,你也可以根据实际需求来设置一些默认的配置,例如预定义标签可修改 labels 字段以及根据自身偏好设置不同的快捷键触发设置等。需要注意的是,以纯数字为首的标签名称在定义是需要自行加上引号''

快速标签修改功能

本功能为用户提供了一种便捷的方式来批量处理标注数据,支持两种核心操作:

  • **删除类别:**通过勾选相应行的 Delete 列中的复选框,可以标记该类别的所有对象以备删除。
  • **替换类别:**在New Value列中填充新的类别名称,以将当前类别名下的所有对象标签替换为新类别。

可参考以下步骤实施:

  1. 在X-Anylabeling工具界面中,点击上方菜单栏的工具->标签管理选项;

  2. 在弹出的Label Change Manager对话框中,根据需求对相应类别进行操作:

  3. 完成全部修改后,点击Confirm按钮确认提交变更。

快速截图保存功能

可参考以下步骤实施:

  1. 准备好一份自定义类别文件,具体示例可参考classes.txt

  2. 点击上方菜单栏的工具->保存子图选项,选择对应的自定义类别文件进行上传;此时会在当前目录下生成一个子图文件夹x-anylabeling-crops,根据类别名存放相应的目标;

快速标签纠正功能

本功能主要针对标定过程中存在的两种误检情况进行快速修正:

  • 背景误标前景
  • 前景标签错误

可参考以下步骤实施:

  1. 准备好一份自定义类别文件,具体示例可参考classes.txt

  2. 点击上方菜单栏的工具->保存扩充子图选项,选择对应的自定义类别文件进行上传;此时会在当前目录下生成一个子图文件夹x-anylabeling-crops,根据类别名存放相应的目标;目录组织如下:

|- root
  |- images
    |- xxx.jpg
    |- xxx.json
    |- yyy.jpg
    |- yyy.json
    |- ...
  |- x-anylabeling-crops
    |- src
      |- CLASS-A
        |- xxx.jpg
        |- xxx1.jpg
        |- xxx2.jpg
        |- ...
      |- CLASS-B
        |- yyy.jpg
        |- ...
      ...
    |- dst
      |- CLASS-A
      |- CLASS-B
      |- ...
    |- meta_data.json

字段说明:

  • src: 原始截图文件;
  • dst: 待修正后的截图文件;
  • meta_data.json: 标注信息文件;
  1. 打开 src 目录,针对每个子文件夹的内容,进行如下操作:
  • 删除所有误标背景图;
  • 将所有类别错误的前景图移动到 dst 目录下对应正确类别的文件夹下;
  1. 打开 X-Anylabeling 工具,选择工具->更新标签选项,选择 x-anylabeling-crops 文件夹,点击上传,重新加载源图像即可。

注意:此功能仅适用于 rectangle 对象。

多标签分类任务标注

可参考以下步骤实施:

  1. 准备好一个自定义属性标签文件,具体示例可参考 attributes.json

  2. 运行X-AnyLabeling,点击导入-导入属性文件导入第1步准备好的属性标签文件;

  3. 加载图片,绘制目标矩形框,标签必须与自定义类别标签一致;

  4. 确保当前模式处于编辑模式,否则可按快捷键 Ctrl+J 迅速切换;

  5. 点击选中目标,右上角即可进行标签属性的标定。

注:如果你打算使用AI模型进行预打标,可先加载对应的属性分类模型,选择一键运行所有图像功能,再进行微调即可。

旋转目标标注标注

可参考以下步骤实施:

  1. 导入图像文件;

  2. 点击左侧菜单栏旋转框按钮或直接按下快捷键O快速绘制旋转框;

  3. 选中对应地旋转框对象,通过以下快捷方式调整旋转角:

快捷键 说明
z 大角度逆时针旋转
x 小角度逆时针旋转
c 小角度顺时针旋转
v 大角度顺时针旋转

如果想显示旋转度数,可点击上方菜单栏"View",勾选"Show Degress"即可显示实时预估旋转角。

SAM 系列模型

可参考以下步骤实施:

  1. 点击菜单栏左侧的Brain标志按钮以激活AI功能选项;

  2. 从下拉菜单Model中选择Segment Anything Models系列模型;

说明:模型精度和速度因模型而异,其中

  • Segment Anything Model (ViT-B) 是最快的但精度不高;
  • Segment Anything Model (ViT-H) 是最慢和最准确的;
  • Quant 表示量化过的模型;
  1. 使用自动分割标记工具标记对象:
  • Point (q):添加一个属于对象的点;
  • Point (e):移除一个你想从对象中排除的点;
  • +Rect:绘制一个包含对象的矩形。Segment Anything 将自动分割对象。
  1. Clear (b):清除所有自动分割标记;

  2. 完成对象(f):当完成当前标记后,我们可以及时按下快捷键f,输入标签名称并保存当前对象。

多目标跟踪

多目标跟踪技术可用于在视频序列中同时识别并跟踪多个目标,这涉及到在不同帧之间关联目标。当前 X-AnyLabeling 工具中内置了多个不同的检测后跟踪算法,包括 ByteTrackOCSort 等,同时支持导入和导出 MOT 格式标签。

首先,对于导出设置,可参考以下步骤实施:

  1. 加载视频文件,示例文件可参考demo_video.mp4;【需要注意的是不能出现中文路径!】
  2. 加载跟踪模型,例如 yolov5m_bytetrack 或者 yolov8m_ocsort
  3. 单击运行,检查确保无误后,可按下快捷键 Ctrl+M 一键运行所有帧;
  4. 准备一份自定义类别文件,具体示例可参考classes.txt
  5. 点击菜单栏->导出->选择自定义类别文件->点击确认,即可在当前视频文件同级目录下会自动生成一份 *.csv 文件。

最后,对于导入设置,可参考以下步骤实施:

  1. 加载视频文件;
  2. 准备一份自定义类别文件,具体示例可参考classes.txt
  3. 点击菜单栏->导入->选择自定义类别文件->选择*.csv标签文件->点击确认,即可导入MOT标签。

深度估计

当前,X-AnyLabeling 工具内置了 Depth-Anything 模型,用户可根据实际需要选择相应规模(Small/Base/Large)的模型。

实施步骤参考如下:

  1. 加载图像/视频文件;
  2. 加载 Depth-Anything 或其它可选的深度估计模型;
  3. 单击运行,检查确保无误后,可按下快捷键 Ctrl+M 一键运行所有图片;

最终运行得到的结果默认保存在与当前图像跟目录下的 depth 文件夹下。