GuidesRecipesAPI ReferenceChangelogDiscussions
Log In

1-1. 에이모 JSON 양식

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

GT field

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

GT Field Definition

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

Classification이 없으면 {}
{
"속성명": "속성값",
"속성명": "속성값"
}
미설정시 ⇒ {}
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
metadataobject리소스 유형별 파일 메타데이터
Image : 이미지 크기
PointCloud, Text : {} 빈값
Video : fps (프레임)
# 이미지일 경우
{
"height": 1080,
"width": 1920
}

# 비디오일 경우
{
“fps” : 30
}
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,
      "label": "car"
		}
	]
}

Annotation Field Definition

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

*리소스 유형 Sequence Image가 아닐경우 field가 존재하지 않음
"1"
labelstringinstance의 클래스 "car"



Single Image (Vector)

Bounding Box

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

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": {},  
      "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",
        "keypoints": {
					"PointLabel#1": [0,1],
					"PointLabel#2": [10,231],
					"PointLabel#3": [213,322]
				},
				"invisible_keys": ["PointLabel#2"],
				"label": "damaged",
				"attributes": {
          "confidence": "1",
					"size": "large"
        },
      }
		]  
}

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",
        "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",
        "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",
        "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",
        "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": {},
      "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",
			"geometry": [4.760000000000003, 1.92, 1.96],
			"position": [13.075738648931754, 4.250296285924759, -0.8600000000000001],
			"rotation": [0, 0, 3.6739180754480634],
      "pointCount": 6126,
			"label": "pedestrian",
			"attributes": {
				"direction": "forward",
				"is_walking": "y"
			}
	]
}

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",
			"indices": "111534-3-57-132-3-57-132-3-57-36-96-3",
			"label": "pedestrian",
			"attributes": {
				"direction": "forward",
				"is_walking": "y"
			}
	]
}

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]으로 문의주세요.