GuidesAPI ReferenceChangelogDiscussions
Log In
Guides

1-1. 에이모 JSON 양식

에이모 JSON 구조와 Annotation 필드 구조를 알아보세요.

GT field

{
    "annotations": [], // 각 Annotation type 별 Annotation 필드 참조 
    "attributes": {},
    "metadata": {
        "height": 1080,
        "width": 1920
    },
    "label": "Classification",
    "file_id": "620aea6c1e3c3ccd9cfd8bc9",
    "frame_number": 1,
    "scene_id": "620aea6c1e3c3ccd9cfd8bc8",
    "filename": "image (28).jpeg",
    "parent_path": "/batch_5/20220624/daytime",
    "last_modifier_id": "5fc7323e8511afbb60e8554b",
    "last_workers": {
        "라벨링": "5fc7323e8511afbb60e8554b",
        "검수": null,
        "최종 검수": null
    },
    "tags": [
        "car"
    ],
    "parent_tags": [
        "1차작업"
    ]
}

GT Field Definition

NameTypeDescriptionExample
annotationslist[object]어노테이션 정보Annotation 필드 참조
attributesobject작업유형 Classification의 속성 설정 시 classification의 attribute와 동일

Classification이 없으면 {}
{
"속성명": "속성값",
"속성명": "속성값"
}
미설정시 ⇒ {}
metadataobject리소스 유형별 파일 메타데이터
Image : 이미지 크기
PointCloud, Text : {} 빈값
Video : fps (프레임)
# 이미지일 경우{`"height": 1080,"width": 1920` }# 비디오일 경우{ “fps” : 30}
labelstring작업 유형 Classification일 경우에만 존재

*작업유형에 Classification이 없으면 field가 존재하지 않음
“Classification”
file_idobject파일의 아이디620aea6c1e3c3ccd9cfd8bc9
scene_idstring씬파일의 아이디

* 리소스 유형 Sequence Image, Point Cloud가 아닐경우 field가 존재하지 않음
620aea6c1e3c3ccd9cfd8bc8
filenamestring파일명

* 리소스 유형 Sequence Image, Point Cloud의 경우 씬파일 내 프레임에 해당
image (28).jpeg
parent_pathstring파일의 부모 경로/batch_5/20220624/daytime
last_modifier_idstring최종 수정자 id5fc7323e8511afbb60e8554b
last_workersobject각 단계 별 마지막 작업자{
"라벨링": "5fc7323e8511afbb60e8554b",
"검수": null,
"최종 검수": null
}
tagslist[object]파일의 태그값

*태그 포함여부 체크하지 않으면 field가 존재하지 않음
tag 적용 돼있을 시 ⇒ [”car”]
tag 미적용 시 ⇒ 필드 없음
parent_tagslist[object]폴더의 태그값

*태그 포함여부 체크하지 않으면 field가 존재하지 않음
tag 적용 돼있을 시 ⇒ [”1차작업”]
tag 미적용 시 ⇒ 필드 없음


Classification

  • Classification은 모든 리소스 유형(Single Image(vector), Video 등)에서 사용 가능합니다.
  • Classification 정보는 "Annotation" 필드가 아닌 GT 필드에 저장됩니다.
{
    "annotations": [],
    "attributes": {
        "occlusion": "30%미만"
    },
    "label": "car",
    "file_id": "620aea6c1e3c3ccd9cfd8bc9",
    "filename": "image (28).jpeg",
    "parent_path": "/batch_5/20220624/daytime",
    "last_modifier_id": "5fc7323e8511afbb60e8554b",
    "metadata": {
        "height": 1080,
        "width": 1920
    },
    "last_workers": {
        "라벨링": "5fc7323e8511afbb60e8554b",
        "검수": null,
        "최종 검수": null
    }
}

Field Definition

NameTypeDescriptionExample
attributesobject작업유형 Classification의 속성 {
"속성명": "속성값",
"속성명": "속성값"
}
labelstring작업 유형 Classification의 클래스"car"



Annotation Field - 공통 필드

{
    "annotations": [
        {
            "id": "1-48f557c0-3fff-4227-bd18-8574ff7f8ad0",
            "type": "bbox",
            "attributes": {
                "is_parked": "y",
                "occlusion": "30%"
            },
            "track_id": "1",
            "points": [], // 각 Annotation type 별 정의 참조 
            "label": "car"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample
idstringinstance의 아이디"1-48f557c0-3fff-4227-bd18-8574ff7f8ad0"
typestringannotation 유형"bbox"
attributesobjectinstance의 속성 (속성명, 속성값){
"속성명": "속성값",
"속성명": "속성값"
}
미설정 시 ⇒ {}
track_idstring씬 내에서 프레임 별 동일 인스턴스에 부여되는 인스턴스 번호

*리소스 유형 Sequence Image가 아닐경우 field가 존재하지 않음
"1"
points인스턴스의 표현 정보
각 annotation type 별 정의 참조
ex. bounding box, poligon: "points"
ex. Rodated B-box: "rect" & "degree"
ex. keypoint: "keypoints"
labelstringinstance의 클래스 "car"



Single & Sequence Image (Vector)

Bounding Box

{
    "annotations": [
        {
            "id": "1-48f557c0-3fff-4227-bd18-8574ff7f8ad0",
            "type": "bbox",
            "attributes": {
                "is_parked": "y",
                "occlusion": "30%"
            },
            "track_id": "1",
            "points": [
                [
                    297,
                    307
                ],
                [
                    1169,
                    307
                ],
                [
                    1169,
                    530
                ],
                [
                    297,
                    530
                ]
            ],
            "label": "car"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수 조
pointsList of pointB-Box 좌표 (좌상단, 우상단, 우하단, 좌하단)

* 이미지 좌상단이 (0,0)인 좌표계
[[297, 307], [1169, 307], [1169, 530], [297, 530]]점이 4개여야 함


Rotated B-box

{
    "annotations": [
        {
            "id": "48f557c0-3fff-4227-bd18-8574ff7f8ad0",
            "type": "obbox_v2",
            "attributes": {},
            "track_id": "1",
            "rect": [
                1461,
                570,
                9,
                21
            ],
            "degree": 228.5,
            "label": "vehicle"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
rectList of Intx, y = 라벨링 시작점
w = obbox_v2의 width
h = obbox_v2의 height
[x, y, w, h]점이 4개여야 함
degreefloat각도값 (-89.5 ≤ degree ≤ 270)
* degree (radian 아님)
228.5


Keypoint

{
    "annotations": [
        {
            "id": "3-57db6fbe-cbc0-4a4a-a07b-0ef42f328977",
            "type": "keypoint",
            "attributes": {
                "confidence": "1",
                "size": "large"
            },
            "track_id": "1",
            "keypoints": {
                "PointLabel#1": [
                    0,
                    1
                ],
                "PointLabel#2": [
                    10,
                    231
                ],
                "PointLabel#3": [
                    213,
                    322
                ]
            },
            "invisible_keys": [
                "PointLabel#2"
            ],
            "label": "damaged"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample
keypointslist of pointkey: 포인트명(설정값), value: 좌표(x,y)
설정된 포인트명 : 해당 포인트의 좌표 (x,y)
{
"PointLabel#1": [0,1],
"PointLabel#2": [10,231]
}
invisible_keyslist of stringinvisible 체크된 키포인트 이름 목록["PointLabel#1", "PointLabel#2"]


Segmentation

{
    "annotations": [
        {
            "id": "1-9da0e293-d2db-47e5-8e57-0e43bc8b4ae9",
            "type": "poly_seg",
            "track_id": "1",
            "points": [
                [
                    747,
                    937
                ],
                [
                    761,
                    867
                ],
                [
                    783,
                    780
                ],
                [
                    787,
                    719
                ],
                [
                    793,
                    652
                ],
                [
                    795,
                    587
                ],
                [
                    780,
                    575
                ],
                [
                    759,
                    557
                ],
                [
                    783,
                    588
                ],
                [
                    787,
                    629
                ],
                [
                    773,
                    768
                ],
                [
                    755,
                    861
                ],
                [
                    744,
                    923
                ]
            ],
            "label": "damaged",
            "attributes": {
                "confidence": "1",
                "size": "large"
            }
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
pointslist of pointsegmentation 내 모든 점의 list (순서대로)[[747,937],[761,867],[783,780],[787,719]]최소 점 3개 이상


Polygon

{
    "annotations": [
        {
            "id": "1-20271808-9daa-4133-b338-024258d97a1a",
            "type": "polygon",
            "track_id": "1",
            "points": [
                [
                    747,
                    937
                ],
                [
                    761,
                    867
                ],
                [
                    783,
                    780
                ],
                [
                    787,
                    719
                ],
                [
                    793,
                    652
                ],
                [
                    795,
                    587
                ],
                [
                    780,
                    575
                ],
                [
                    759,
                    557
                ],
                [
                    783,
                    588
                ],
                [
                    787,
                    629
                ],
                [
                    773,
                    768
                ],
                [
                    755,
                    861
                ],
                [
                    744,
                    923
                ]
            ],
            "label": "damaged",
            "attributes": {
                "confidence": "1",
                "size": "large"
            }
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
pointslist of pointpolygon내 모든 점의 list (순서대로)[[x1, y1], [x2,y2], [x3,y3]]최소 점 3개 이상


Polyline

{
    "annotations": [
        {
            "id": "1-49c4f45d-f90e-4e15-aada-572ed3a4142e",
            "type": "polyline",
            "track_id": "1",
            "points": [
                [
                    747,
                    937
                ],
                [
                    761,
                    867
                ],
                [
                    783,
                    780
                ]
            ],
            "label": "yellow_line",
            "attributes": {
                "confidence": "1"
            }
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
pointslist of pointpolyline내 모든 점의 list (순서대로)[[747,937],[761,867],[783,780]]최소 점 2개 이상


3D Cuboid

{
    "annotations": [
        {
            "id": "1-8831725a-868c-4e48-a7f7-dea7c4c7be35",
            "type": "cuboid_2d",
            "track_id": "1",
            "points": [
                [
                    0,
                    0
                ],
                [
                    100,
                    0
                ],
                [
                    100,
                    100
                ],
                [
                    0,
                    100
                ],
                [
                    200,
                    200
                ],
                [
                    300,
                    200
                ],
                [
                    300,
                    300
                ],
                [
                    200,
                    300
                ]
            ],
            "label": "damaged",
            "attributes": {
                "confidence": "1",
                "size": "large"
            }
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
pointslist of point육면체 포인트 8개
전면 bbox ⇒ 후면 bbox 순서
[[0,0], [100,0], [100,100], [0,100], [200,200], [300,200],[300,300],[200,300]]점이 8개여야 함


Flat Cuboid

{
    "annotations": [
        {
            "id": "6-d971dc14-c030-418f-b1e3-260c45313160",
            "type": "cuboid_plain",
            "attributes": {},
            "track_id": "1",
            "points": [
                [
                    1150,
                    365
                ],
                [
                    1564,
                    365
                ],
                [
                    1564,
                    591
                ],
                [
                    1150,
                    591
                ]
            ],
            "label": "차량"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
pointslist of point점이 4개때 Bbox
점이 6개일때 Bbox 점 4개 + 마우스 누르는 순서로 5번째 위치, 6번째 위치 점 2개
[[1150, 365], [1564, 365], [1564, 591], [1150, 591]]점이 4개 또는 6개여야 함


Classification

{
	"attributes": {
			"occlusion": "30%",
	},
  "label": "car"
}

Annotation Field Definition

NameTypeDescriptionExample
attributesobject세부 속성 정보{
"subclass": "samba",
"is_crowded": "y"
}
labelstringclass 정보"car"



Single Image (Pixel)

Segmentation

{
	"annotations": [
		{
      "id": "1-5ca0fc23-027c-4a50-a8d3-0107529bcb91",
			"type": "segmentation_mask",
      "mask": "23F456T232F234T", //RLE
      "bound": [[100, 200], [400, 300]],
			"attributes": {
				  "occlusion": "30%",
			  },
      "label": "car"
		}
	]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
maskstringBinary Mask (커스텀 RLE encoding)23F456T232F234T
boundlist[point]mask의 boundary 정보
([좌상단좌표, 우하단 좌표])
[[100, 100], [300, 500]]점이 2개여야 함



Point Cloud (LiDAR, RADAR)

3D Cuboid

{
    "annotations": [
        {
            "id": "efed27a1-ac3e-4541-af0c-7abf8be7ae78",
            "type": "cuboid",
            "attributes": {
                "direction": "forward",
                "is_walking": "y"
            },
            "track_id": "1",
            "geometry": [
                4.760000000000003,
                1.92,
                1.96
            ],
            "position": [
                13.075738648931754,
                4.250296285924759,
                -0.8600000000000001
            ],
            "rotation": [
                0,
                0,
                3.6739180754480634
            ],
            "pointCount": 6126,
            "label": "pedestrian"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample
geometrylist of floatlength, width, height[5.220000000000002, 2.14, 1.7400000000000002]
positionlist of floatx, y, z 중점 [-18.407794112900135, -2.656089968153442, 0.6299999999999999]
rotationlist of float- PI/2 ≤ yaw < PI + PI/2
*단위: radian
*회전 범위 degree: 0~269.5도, 0~-90도[x로테이션, y로테이션, z로테이션 (yaw)]
각 로테이션 값은 rad으로 표시
로테이션 범위 : - PI/2 ≤ yaw < PI + PI/2
[0, 0, 3.6739180754480634]
pointCoutint한 instance 내에 들어있는 포인트 개6126


Segmentation

{
    "annotations": [
        {
            "id": "efed27a1-ac3e-4541-af0c-7abf8be7ae78",
            "type": "lasso",
            "attributes": {
                "direction": "forward",
                "is_walking": "y"
            },
            "track_id": "1",
            "indices": "111534-3-57-132-3-57-132-3-57-36-96-3",
            "label": "pedestrian"
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample
indicesstring포인트클라우드 점의 Index 배열을 문자열로 인코딩한 것“34122-192-150-42-150-42-150-42-150-42-150-42-150-42-150-42-150-42-150-42”



Video

FrameRange

{
    "annotations": [
        {
            "id": "1-82338d78-46b3-4901-971c-a6faff5d10d1",
            "type": "frameRange",
            "startFrame": 3028,
            "endFrame": 3159,
            "startTime": 101.03437770103437,
            "endTime": 105.23858190523858,
            "label": "dance",
            "attributes": {
                "subclass": "samba"
            }
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
startFrameinteger구간 시작 프레임 번호3028
endFrameinteger구간 끝 프레임 번호3159endFrame은 startFrame보다 작을 수 없음
startTimefloat구간 시작 시간101.03437770103437
endFramefloat구간 끝 시간105.23858190523858endTime은 startTime보다 빠를 수 없음



Text

Entity

{
    "annotations": [
        {
            "id": "1-36e5c504-edd8-4028-9ed1-70497152447e",
            "type": "entity",
            "label": "회사명",
            "text": "에이모",
            "start": 10,
            "end": 20,
            "attributes": {
                "hand_writed": "y"
            }
        }
    ]
}

Annotation Field Definition

NameTypeDescriptionExample필수조건
textstring선택한 문자열"에이모"
startint선택한 문자열의 시작 index값10
endint선택한 문자열의 끝 index값15end는 start보다 작거나 같을 수 없음



다른 질문이 있으신가요? [email protected]으로 문의주세요.