안경잡이개발자

728x90
반응형

  Make Sense다양한 이미지에 대하여 레이블링(labeling)을 진행하기 위한 온라인 도구입니다. 객체 탐지(object detection)를 포함해 다양한 컴퓨터 비전(computer vision) 작업에 적용해 사용할 수 있습니다. 현재 온라인으로 제공되고 있는 Make Sense 서비스는 회원가입 없이 간단히 접속하여 사용할 수 있습니다.

 

  ▶ Make Sense 무료 온라인 서비스: https://www.makesense.ai/

 

Make Sense

 

www.makesense.ai

 

  웹 사이트에 접속한 뒤에 다음과 같이 [Get Started] 버튼을 눌러서 실행할 수 있습니다.

 

 

  이후에 그냥 간단하게 여러 개의 이미지를 드래그 앤 드롭(drag & drop)해서 레이블링 작업을 시작할 수 있습니다.

 

 

  이제 한 번 레이블링을 진행해 보겠습니다. 라쿤 데이터셋을 써볼 겁니다. 원본 라쿤 데이터셋은 MIT 라이센스를 따릅니다. 추가적으로 Roboflow에서 제공하는 전처리된 라쿤 데이터 세트도 있습니다.

 

  ▶ 원본 라쿤 데이터셋: https://github.com/datitran/raccoon_dataset

  ▶ Roboflow 라쿤 데이터셋: https://public.roboflow.com/object-detection/raccoon

 

  저는 간단히 이러한 416 X 416으로 리사이즈(resize) 처리된 라쿤(raccoon) 데이터셋에서 30개의 이미지를 가져와 업로드했습니다. 만약 YOLO 형식의 데이터 세트를 만들고 싶다면, [객체 탐지(Object Detection]) 버튼을 누르면 됩니다.

 

 

  이후에 레이블(label)을 추가할 수 있습니다. 라쿤(raccoon) 데이터 세트의 경우 단일 레이블로 라쿤 레이블이 존재합니다.

 

 

  따라서 다음과 같이 라쿤(raccoon)이라는 이름의 레이블 하나를 추가합니다. 만약 레이블이 여러 개라면 여러 개의 레이블을 하나씩 등록하여 사용하면 됩니다.

 

 

  다음과 같이 바운딩 박스(bounding box)를 그린 뒤에 레이블링(labeling)을 같이 진행하면 됩니다. 저는 다음과 같이 이미지를 하나씩 확인하며 라쿤(raccoon)으로 레이블을 설정했습니다.

 

 

  레이블링 작업을 모두 완료하면, 다음과 같이 [Export Annotations] 버튼을 눌러 레이블 정보를 저장할 수 있습니다.

 

 

  다음과 같이 YOLO 형식(format)을 선택하여 내보내기(Export) 할 수 있습니다.

 

 

  결과적으로 다음과 같이 각 이미지당 레이블 정보가 기록됩니다.

 

 

※ YOLO 형식(Format) 설명 ※

 

  YOLO 형식은 다음과 같은 형식으로 구성하면 됩니다. data.yaml은 어떠한 경로에 학습(train) 및 평가(validation) 데이터가 존재하는지 등의 정보를 가지고 있습니다.

 

raccoon_dataset/
    data.yaml
    train/
        images/
            raccoon-1xxx.jpg
            raccoon-2xxx.jpg
            ...
        labels/
            raccoon-1xxx.txt
            raccoon-2xxx.txt
            ...
    valid/
        images/
            raccoon-191xxx.jpg
            raccoon-192xxx.jpg
            ...
        labels/
            raccoon-191xxx.txt
            raccoon-192xxx.txt
            ...

 

  먼저 data.yaml은 다음과 같은 형태를 가지고 있습니다. 각각 학습(train)평가(val) 데이터셋의 경로를 다음과 같이 정확히 명시하는 것을 알 수 있습니다. 추가적으로 라쿤 데이터 세트의 경우 클래스의 개수(nc)는 1이고, 클래스 이름(name)은 리스트 형태로 명시되어 있는 것을 알 수 있습니다.

 

train: ../train/images
val: ../valid/images

nc: 1
names: ['raccoon']

 

  예를 들어 train/images/raccoon-12xxx.jpg의 경우 다음과 같은 이미지입니다.

 

 

  또한 train/labels/raccoon-12xxx.txt의 경우 다음과 같이 두 마리의 라쿤 인스턴스(instance)에 대하여 바운딩 박스 정보가 들어가 있습니다.

 

 

  전체 데이터 세트 예시는 다음과 같습니다.

 

raccoon_dataset.zip
1.45MB

 

  또한 전체 Make Sense 소스코드는 다음의 경로에서 확인할 수 있습니다. 이 웹 사이트는 도커(docker)와 같은 배포 도구를 이용하여 간단히 프로그램을 실행해 볼 수도 있습니다.

 

  ▶ Make Sense 전체 소스코드: https://github.com/SkalskiP/make-sense

 

SkalskiP/make-sense

Free to use online tool for labelling photos. https://makesense.ai - SkalskiP/make-sense

github.com

728x90
반응형