앞서 말했듯이 이번 프로젝트로 진행중인 Yolo를 학습시키기 위해서 COCO Original Dataset과 AdaIN( https://github.com/xunhuang1995/AdaIN-style) 을 적용한 Dataset을 합쳐서 Training data로 사용하려고 하는데 AdaIN을 돌리면 파일명이 XXXXX-stlyized-XXXX.jpg 로 되어 있습니다...난감했던 부분,, 뒤에 XXXX가 Style Set의 무작위로 1개 찝어서 하기 때문에 모두 다르고, 이것들을 반영해 Json에 반영하기 보단 ,,
1. Dataset의 stylized-XXXX에서 XXXX를 지우자
2. Annotation의 Images[file names]에 -stylized를 붙여주자
로 비교적 간단하게 표기 하기로 하였습니다.
적용한 코드는 아래처럼 생겼고 #단 코드는 Train과 Val따로 경로 수정하면서 2번 진행하였습니다
import os
import glob
import json
def modify_filename(original_filename):
new_filename = original_filename.replace('.jpg', '-stylized.jpg')
return new_filename
image_dir = './coco/COCOstylizedval/' #이미지 경로
for image_path in glob.glob(os.path.join(image_dir, '*.jpg')): #모든 이미지
basename = os.path.basename(image_path) #이름을
name, ext = os.path.splitext(basename) #이름과 확장명으로 split!
parts = name.split('-stylized-') #Split 기준
new_name = '{0}-stylized{1}'.format(parts[0], ext)
new_path = os.path.join(image_dir, new_name)
os.rename(image_path, new_path)
json_dir = './coco/annotations/instances_val2017.json'
with open(json_dir, 'r') as f:
data = json.load(f)
for img in data['images']:
img['file_name'] = modify_filename(img['file_name']) #Json filename 변경
with open('./coco/annotations/instances_val2017_stylized.json', 'w') as f: #새로운 json 저장
json.dump(data, f)
이미지로 보면 편하니까,
원래 이렇게 생긴 Json이
file_name에 -stylized.jpg가 들어간 것을 확인할 수 있습니다.
이미지 들도 뒤에 -XXXX부분없이 들어간 것을 확인할 수 있어서 성공적으로 코드가 작동한 것을 확인할 수 있습니다!!
이제 Yolo형식 (txt)로 바꾸고 최종적으로 통합시킨 후 Training을 돌리면 준비된 Data로 학습이 진행될거 같습니다.
'Deep Learning' 카테고리의 다른 글
Yolo V5 Validation. (0) | 2024.01.15 |
---|---|
Yolo V5 Training. (2) | 2024.01.12 |
YOLO에 적용할 COCO Json을 txt로 바꾸자! (2) | 2024.01.10 |
Deep Learning project 요약: DeblurGAN with Object detection (0) | 2024.01.10 |
MMdetection: Faster R-CNN 구현하기 (0) | 2024.01.10 |