기본 데이터셋의 뼈대가 된다.
class MyCustomDatasetImage(Dataset):
def __init__(self, path): # 파라미터 값은 달라질 수 있다.
# 정의
pass
def __getitem__(self, index):
# 정의 작성된 내용을 구현
pass
def __len__(self):
# 전체 길이를 반환 -> 리스트 [] len()
pass
path를 여기서 여러개로 접근이 가능했다.
def __init__(self, path): # 파라미터 값은 달라질 수 있다.
# 정의
# ./Grapevine_leaves_Image_Dataset/*/*.png
self.all_data = sorted(glob.glob(os.path.join(path, '*', '*.png')))
glob이 for문 처럼 생각하면된다.
폴더 > 폴더로 들어가는 것을 반복문으로 들어간다 생각하는 것처럼 glob을 쓸 수 있다.
shuffle은 섞겠냐고 묻는 것이다.
test에서는 섞지 않는다.
batch_size : 전체 이미지에서 몇장 빼서 넣을거냐.
32를 했을때 32장씩 밀어넣는다는 것.
1을 했을 때는 한장씩 넣는다는 것이다.
Mac과 Windows에서 파일경로가 나오는 부분이 좀 다르다.
그래서 split을 할 때 windows는 '\'로 split을 진행했고 mac은 '/'로 split이 진행되었다.
라벨링 툴에서 많이 사용하는 기능
어노테이션 라벨링 양식
dataset을 만들고나서 dataloader에 집어넣어야한다.
dataset: Dataset[T_co] batch_size: Optional[int] num_workers: int pin_memory: bool drop_last: bool timeout: float sampler: Sampler prefetch_factor: int _iterator : Optional['_BaseDataLoaderIter'] __initialized = False
cv2를 사용해서 bbox를 이용해서 이미지를 크롭하는 게 생각보다 어렵게 느껴진다.
연습을 해야겠다.