GDSC Sookmyung 활동/10 min Seminar

커스텀 데이터셋 만들기

alacori1010 2023. 3. 5. 22:16

안녕하세요 저는 오늘 10분세미나를 맡게된 정시은입니다. 제가 오늘 발표할 주제는 ‘커스텀 데이터셋 만들기’입니다. 저의 경험담을 바탕으로 간단하게 커스텀데이터셋을 만드는 방법을 소개해드리고자 합니다!

이미지에서 검출하고 싶은 객체의 위치, 즉 바운딩 박스를 찾고 객체의 카테고리를 분류하는 작업을 object detection이라고 하는데요, 객체 검출을 할때에는 대표적으로 널리 알려진 yolo 모델을 사용합니다.

object detection과 같이 원하는 이미지를 인식하고자 하는 컴퓨터비전관련 프로젝트나 작업을 하게 됐을때 적합한 데이터셋이 필요할 때가 있습니다. 저의 경우, 눈송이를 인식하여 눈송이의 표정에 따른 감정인식을 하는 모델을 만들고자 하였는데, 먼저 눈송이와 다른 캐릭터들을 구분짓기 위해 눈송이를 인식하는 모델을 만들고 싶었습니다. 이때 커스텀데이터셋을 만들어야합니다.

roboflow 라는 플랫폼을 사용하면 몇단계만으로 쉽게 커스텀데이터를 만들 수있습니다. 머신러닝 경험이 전혀 없는 사람들도 쉽게 만들수있도록 다양한 기능과 도구를 제공합니다.

먼저, sign up을 하고 workspace를 생성한뒤, new project를 만들어줍니다.

하고자하는 프로젝트의 목적에 맞게 project type을 설정해줍니다. 저같은 경우는 눈송이를 탐지하는 object detection 이었기 때문에 object detection을 클릭해주고 create을 눌러줍니다.

등록한 후에는 사용할 이미지를 업로드해줍니다.

모델을 학습하기 위한 ground truth 값을 만드려면 이미지에 주석을 달아야합니다. roboflow는 이미지에 bounding box를 그리고 해당하는 레이블, (저의 경우 “noonsong” 이 되겠죠 ?) 을 달수있도록 해줍니다.

팀원들과 이미지를 1/n 해 라벨링 작업을 같이 할수도 있답니다.

라벨링이 완료되면 train, validation, train set으로 자동으로 분리해줍니다. 분리비율도 설정할수있습니다.

data augmentation 작업도 무료로 가능한데,이미지 수가 한정되어 있을때 사용하는 데이터 증강 기술을 말합니다. 예를 들어 잘라내기, 뒤집기, 회전과 같이요. 새로운 이미지처럼 기능하기 때문에 작은 트레이닝 데이터의 크기를 늘릴 수 있습니다.

이제 충분한 데이터셋을 만들었으니 export 버튼을 눌러주면

yolo의 train 작업에 사용되는데 원하는 프레임워크에 따라 선택해주면 됩니다.

프레임워크(yolov5)를 선택해주고 download code를 눌러주면 yolo의 학습에 사용가능한 코드가 나오게 됩니다.

코렙에서 이코드를 가지고 yolo 학습전에 실행해주면 dataset과 data.yaml 야믈파일이 만들어집니다.train과 validation 이미지 경로를 txt 파일로 저장해주고,txt 파일을 yaml 파일에 정리하여 yaml 파일의 경로를 바꿔줍니다.

학습시켜주면, 이렇게 눈송이를 잘 인식하는 것을 확인할수있습니다.

yolov5를 내가 원하는 데이터셋을 인식하도록 만들기 위해 커스텀 데이터셋을 만들고 새롭게 학습하는 과정을 거쳤는데요,머신러닝을 모르는 사람들도 쉽고 빠르게 원하는 모델을 직접 학습시키는 경험을 할 수 있어서 한번쯤 해보시면 좋은 경험이 될것같습니다.

 

'GDSC Sookmyung 활동 > 10 min Seminar' 카테고리의 다른 글

GIT 브랜치 전략이란  (0) 2023.03.05
스프링부트 로그 찍기  (0) 2023.03.05
MVC vs MVVM  (0) 2023.02.27
JWT란 무엇인가  (0) 2023.02.27
XML과 Compose의 차이점  (1) 2023.02.27