这里的图片格式仅指平面矩形图片。图片内的坐标系和原点以标注格式为准。
本文为图像识别标注指定以下备选格式:
一、总论
1. 坐标系
每张图片规定了坐标系和原点。坐标系的两个坐标轴夹角可以是直角,也可以是其它不大于 2π 弧度的角。即夹角的取值范围是(0, 2π)。在规定了原点位置之后,x 轴固定为水平直线,向右为正方向;y 轴以 x 轴正方向为基准,逆时针转动一个夹角后,其新指向的方向为 y 轴正方向。
例如:数学中常见的直角坐标系中 x 轴和 y 轴的夹角为 π/2 。y 轴的正方向为垂直向上。
但诸多图片格式中,y 轴的正方向与数学中常见的正方向不同,普遍为垂直向下。即图片中的坐标轴与数学中常见的坐标轴相比,两数轴的夹角为 3π/2 。原点在图片的左上角。
因此,为了方便图片的实际存储格式定义与数学中常见的数轴能够一一对应,我们允许图片标注格式重新定义图片的坐标轴和原点。
2. 标注形状
每张图片文件可以包含若干图层,每个图层可以包含若干区域,每个区域可以包含若干对象。
不同的对象非常复杂,一般以外观轮廓表示。外观轮廓可以是点、线段、路径、多边形、椭圆等。
因此标注形状就是上述几何图形。标注的对象就是封闭图形内的部分。
二、定义
1. 一个标注文件只描述一张图片中的待标注对象
文件名一般与被标注的图片文件名相同,且必须与被标注图片处于同一目录下。文件格式采用 JSON,默认编码为 UTF-8。
键 | 值 |
filename | 标注文件的文件名。与 base64_img_data 二者须至少有一个有效。如果此选项指定且能成功访问,则忽略 base64_img_data。文件名不含目录。 |
base64_img_data | 将文件内容按 base64 编码后的内容。可选。 |
layers | 图层。数组。必需。最多 256。 |
没有定义与坐标轴和原点相关的键,默认将左上角的点当做原点,水平向右为 x 轴正方向,垂直向下为 y 轴正方向。以后版本定义中可以加入坐标轴和原点的定义。
图层定义:
键 | 值 |
name | 图层名称 |
regions | 区域。数组。必需。最多 256。 |
区域定义:
键 | 值 |
name | 区域名称 |
objects | 对象。数组。必需。最多 65536。 |
对象定义:
键 | 值 |
name | 对象名称 |
category | 正整数,代表所属分类。0代表不在任何分类。 |
shape | point, line_segment, path, polygon,四个形状其中之一。 |
points | 使用(x, y)点数组来描述对应的形状。每个点可以没有编号,也可以编号。若没有编号,则排列顺序体现了线段、路径、多边形的方向。 |
每个点就是一个二元数组(x, y),用以表示该点的坐标。
- 若形状为点(point),则 points 数组只有 1 个元素,即该点的坐标。
- 若形状为线段(line_segment),则 points 数组有且只有两个元素,即线段首尾的坐标。
- 若形状为路径(path),则 points 数组至少有三个元素,即路径的首尾坐标。最多 65536 个元素。
- 若形状为多边形(polygon),则 points 数组至少有三个元素,即多边形的顶点。最多 65536 个元素。
2. 一个标注文件包含同目录下所有图片中待标注的对象
文件名可以随意指定,且须位于待标注图片相同目录下,但不能与目录中任意一个待标注图片文件名相同。文件格式采用 JSON,默认编码为 UTF-8。
键 | 值 |
文件名 | 数组。每个元素的定义见上。 |
三、代码演示
JSON:
{ "filename": "image.jpg", "base64_img_data": "1", "layers": [ { "name": "Layer1", "regions": [ { "name": "Region1", "objects": [ { "name": "Object1", "category": 1, "shape": 0, "points": [ { "X": 1, "Y": 1 } ] } ] } ] } ] }
XML:
待补充……
您必须登录才能发表评论。