티스토리 뷰

til

COCO dataset 소수점 자리수

주먹불끈 2022. 12. 3. 21:09

개요

COCO JSON에서 Object detection annotation에서 사용하는 필드의 소수점을 알아본다.

TL;DR

  • segmentation의 좌표정보는 최대 소수점 2자리로 한다
  • area 정보는 최대 소수점 16자리로 한다.

준비

Annotation dataset 준비

찾으려는 정보

링크: https://haobin-tan.netlify.app/ai/computer-vision/object-detection/coco-dataset-format/

결론: 여기에선 segmentation 정보와 area 정보만 있으면 될 것 같다.

annotations 를 추출해보자

segmentations 는 소수점 2자리

$ cat instances_val2017.json | jq '.annotations[1]'
{
  "segmentation": [
    [
      289.74,
      443.39,
      384.68,
      480,
     중략...,
      291.88,
      443.74
    ]
  ],
  "area": 27718.476299999995,
  "iscrowd": 0,
  "image_id": 61471,
  "bbox": [
    272.1,
    200.23,
    151.97,
    279.77
  ],
  "category_id": 18,
  "id": 1773
}

area 필드의 최대 소수점 자리를 확인해보자

area는 최대 소수점 16자리

$ cat instances_val2017.json | \
jq '.annotations' | \
grep -m 10000 area | \
awk '{split($0,a,"."); print a[2]}' | \
awk -F, '{l=length($1)};l>max{max=l;val=$1}END{print val, max}'
1240499999999645 16

스크립트 간단 설명

$ cat instances_val2017.json | \ # 출력
jq '.annotations' | \            # jq로 annotation 필드를 추출
grep -m 10000 area | \           # 그 중에서 area 필드만 추출
awk '{split($0,a,"."); print a[2]}' | \  # 소수점 이하만 추출
awk -F, '{l=length($1)};l>max{max=l;val=$1}END{print val, max}' # 최대 문자열 찾기
1240499999999645 16
반응형
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함