指南 3个标注团队操作手册:提升标注速度与质量

时间序列标注

使用这个通用模板标注任何类型的时间序列数据。

交互式模板预览

标注配置

多元时间序列标注的示例项目配置:

<View>
  <TimeSeriesLabels name="label" toName="ts">
    <Label value="Run"/>
    <Label value="Walk"/>
  </TimeSeriesLabels> 
  <TimeSeries name="ts" valueType="url" value="$csv_url" timeColumn="time">
    <Channel column="sensorone" />
    <Channel column="sensortwo" />
  </TimeSeries>
</View>

关于标注配置

所有标注配置必须包含在View标签内。

使用TimeSeriesLabels控制标签来高亮并标注时间序列图中的特定区间:

<TimeSeriesLabels name="label" toName="ts">
    <Label value="Run"/>
    <Label value="Walk"/>
</TimeSeriesLabels>

该标签通过toName参数与TimeSeries对象标签相关联。

使用TimeSeries对象标签来显示时间序列数据和通道:

<TimeSeries name="ts" valueType="url" value="$csv_url" timeColumn="time">
    <Channel column="sensorone" />
    <Channel column="sensortwo" />
</TimeSeries>

valueType="url"参数表示Label Studio期望JSON格式任务中包含CSV文件的链接。timeColumn参数指定数据集中用作时间X轴的列。如果未指定timeColumn,Label Studio将使用递增整数值作为X轴:0, 1, 2, ...

输入数据

标注配置的示例CSV文件输入如下所示:

time,sensorone,sensortwo
0,10,20
1,20,30
2,30,40

输入格式

Label Studio 支持多种时间序列输入类型:

  • 带或不带标题的CSV文件
  • 带或不带标题的TSV文件
  • JSON

CSV示例

例如,对于一个包含3列的CSV文件:

time,sensorone,sensortwo
0.0,3.86,0.00
0.1,2.05,2.11
0.2,1.64,5.85

然后,创建一个JSON文件,引用CSV文件的URL以上传到Label Studio:

[ { "data": { "csv_url": "http://example.com/path/to/file.csv" } } ]

由于JSON文件引用了一个URL,且该URL在名为csv_url的字段中指定,因此请在你的标注配置中按如下方式设置TimeSeries对象标签:

<TimeSeries name="ts" valueType="url" value="$csv_url" sep="," timeColumn="time">
    <Channel column="sensorone" />
</TimeSeries>

在本例中,标签具有valueType="url"属性,因为CSV文件是通过URL引用的。详见如何导入数据

TSV 示例

如果您正在上传制表符分隔的文件,请在TimeSeries标签上使用sep属性来指定制表符分隔。

例如,在您的标注配置中按如下方式设置TimeSeries对象标签:

<TimeSeries name="ts" valueType="url" value="$csv_url" sep="\t" timeColumn="time">
    <Channel column="0"/>
</TimeSeries>

无表头CSV与TSV

无表头CSV/TSV使用方式的主要区别在于另一种命名列的方法。由于文件没有表头且无法获知列名,因此需改用列索引。例如,要将第一列用作时间列,需指定。对于标签中的column属性也同样适用。

JSON

Label Studio中的所有任务都以JSON格式存储,这是Label Studio的原生格式。

  • valueType="url"

    当您为TimeSeries标签使用valueType="url"并导入CSV文件时,Label Studio会自动创建一个JSON任务,其内容示例如下:

    {
      "csv": "http://localhost:8080/data/upload/my-import-file.csv"
    }
  • valueType="json"

    您也可以通过创建并导入如下示例所示的JSON结构,直接使用Label Studio的JSON格式,其中每个键都指定了时间和通道:

    {
      "ts": {
        "time": [
          15.97, 15.85, 25.94
        ],
        "sensorone": [
          13.86, 29.05, 64.90
        ],
        "sensortwo": [
          21.00, 15.18, 35.85
        ]
      }
    }

输出格式示例

标注者为时间序列任务添加标签。Label Studio 使用JSON结构表示每个已完成的标注。每个标注都有一个result字段,对于时间序列标注项目,示例如下:

{
  "annotations": [{  
    "result": [
      {
          "value": {
              "start": 1592250751951.8074,
              "end": 1592251071946.638,
              "instant": false,
              "timeserieslabels": [
                  "Run"
              ]
          },
          "id": "S1DkU7FSku",
          "from_name": "label",
          "to_name": "ts",
          "type": "timeserieslabels"
      },
      {
          "value": {
              "start": 1592251231975.601,
              "end": 1592251461993.5276,
              "instant": false,
              "timeserieslabels": [
                  "Run"
              ]
          },
          "id": "XvagJo87mr",
          "from_name": "label",
          "to_name": "ts",
          "type": "timeserieslabels"
      }
    ]
  }] 
}

增强此模板

如果想增强此模板,可以对标签配置进行多项修改。

单个项目中的多时间序列

如果想在一个项目中使用多个时间序列数据集,必须将CSV文件以URL形式提供,并导入一个JSON格式的文件,其中包含引用这些CSV文件的任务。

例如,对于可以引用两组时间序列数据的任务:

[ { "data": { "csv_file1": "http://example.com/path/file1.csv", "csv_file2": "http://example.com/path/file2.csv" } } ]

然后您可以设置以下标注配置来引用每个CSV文件,并能够在同一个标注界面上对它们进行标注:

<View>
  <Header value="First time series" />
  <TimeSeriesLabels name="lbl-1" toName="ts-1">
    <Label value="Label 1" />
  </TimeSeriesLabels>
  <TimeSeries name="ts-1" timeColumn="0" value="$csv_file1">
    <Channel column="1" />
  </TimeSeries>
  
  <Header value="Second time series" />
  <TimeSeriesLabels name="lbl-2" toName="ts-2">
    <Label value="Label 2" />
  </TimeSeriesLabels>
  <TimeSeries name="ts-2" timeColumn="0" value="$csv_file2">
    <Channel column="1" />
  </TimeSeries>
</View>

TimeSeries标签中的value参数用于引用包含CSV文件URL的JSON键。