• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

train_test_split 함수에 대해 질문이 있습니다.

22.02.15 17:15 작성 조회수 273

0

수업을 듣고 mmedetection을 이용해 custom dataset을 train 시키려는 작업을 계획 중인데, 걸리는 부분이 있어 질문 드립니다.

mmdetection에서 mask-rcnn을 수행하기 위해 kaggle에서 coco format에 맞는 dataset을 받고,  json 파일의 형식이 coco format에 맞는지 확인 했습니다.

그런데 이 dataset의 이미지와 json가 train밖에 없어서 train, val로 나누기 위해 train_test_split 을 써야 하는데, 이 함수의 첫 번째 변수로 어떤 것을 넣어야 하는지(mask rcnn nucell실습에서는 meta_df) 잘 이해가 되지 않습니다.

찾아보니 array 형태로 넣어야한다고는 하는데, 단순히 train 이미지가 있는 경로를 np.array로 넣는 것은 아닌 거 같고, 제 파이썬 실력은 많이 부족해 답이 나오지 않아 질문 남깁니다.

Dataset의 형태는 사진으로 첨부합니다. json은 약 28만 장에 대한 내용이 coco format으로 나와있습니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

nucleus는 coco 포맷으로 개별 mask정보가 되어 있지 않아서 coco 포맷으로 변환을 한 것이라 이미 coco 포맷으로 annotation이 되어 있다면 굳이 이를 따를 필요는 없을 것 같습니다. 

하나의 큰 coco 포맷 파일이 있는데, 이를 train용, valid용으로 나누지 못하신다는 의미 이신지요? 

현재 그런 작업이 어렵다면 일단 valid와 train을 모두 동일한 coco 포맷으로 작업하시면 어떨지요? 

 

Train과 vaild를 동일한 coco 포맷으로 작업한다는 게 정확히 이해가 가지 않습니다!

현재 막히는 부분은 images 안에 있는 이미지들을 config에 맞게 train 폴더와 val 폴더에 나눠서 넣고, 하나로 있는 annotation.json 파일도 나뉜 이미지 목록에 맞게 나누는 작업입니다.

혹시 나누지 않고 작업을 하란 말씀이 저 config 설정에 train과 val  모두 동일한 images 경로, annotation.json 경로로 지정하라는 말씀이신가요?

네, 맞습니다. train과 valid로 나누는 방법이 잘 이해 안되시면 그렇게 적용하셔도 됩니다. 

조금 성능이 저하될 수도 있지만 큰 문제 아닙니다.