Closed omocomo closed 2 years ago
이후, batch_size만 32로 수정하고 실행과정을 이해하기 위해 ICDAR17_ALL 데이터셋으로 학습을 시켰습니다. 위에서 빨간색이 그 결과이고, 30 Epoch 정도에서 문제 없이 잘 돌아가는 것 같아 학습을 중지시켰습니다.
그리고 이번 대회의 제출 방식이 새로워서 테스트 겸 위 학습의 latest.pth를 제출했습니다. 그 결과 f1 0.6036으로 갑자기 순위가 급상승 했는데 의도하지 않은 결과라 당황스럽습니다..ㅇㅅㅇ 많은 데이터를 사용했을 때의 효과는 확실해 보이지만 이번 실험은 validation set 등 어떤 의미 있는 통제를 하고 진행한 실험이 아니라 참고만 하고 다시 처음부터 실험을 진행하려고 합니다. 특히 학습 결과에서 어떤 데이터를 잘 맞추고, 어떤 데이터를 잘 맞추지 못하는지 파악하고 이를 해결해가는 과정에 집중하려고 합니다.
ICDAR17 데이터셋과 관련해 의문점은 아래와 같습니다.
이에 대해 현재는 다음과 같이 생각합니다.
ICDAR17_ALL이 그러면 ICDAR_mlt와 동치되는 것일까요? ( annotation 정보외의 detection정보만으로는)
그렇다면 ICDAR17_ALL + (추가 제공받은 1300장) + (AI HUB) + ( ICDAR 다른 연도 버전) 정도를 생각해볼 수 있을까요?
네 데이터는 동일하고 annotation만 ufo 형식으로 바꾼겁니다! 말씀해주신대로 생각해볼수 있을 것 같아요
현재 directory까지 만들어주는 download.sh 돌려보고 있는데, 결과 확인해보고 여기나 PR로 공유하겠습니다!
valid 이름까지 바꾸고 convert_mlt.py 돌려보니깐 안되더라구요. 아마 경로나 그런걸 수정해야 할 것 같은데 혹시 어떤걸 수정하셨나요?
DST_DATASET_DIR 이 부분일까요??
그리고 전체 데이터를 변환하려면 이 부분은 주석 처리 해주어야 합니다. 그 외의 다른 부분 수정은 없는걸로 확인했는데, 처음에 놓쳐서 죄송합니다..!
download.sh
#!/usr/bin/env bash
mkdir -p /opt/ml/input/data/ICDAR17_MLT/raw/zip
mkdir -p /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_1.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_1.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_2.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_2.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_3.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_3.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_4.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_4.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_5.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_5.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_6.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_6.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_7.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_7.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
wget https://datasets.cvc.uab.es/rrc/ch8_training_images_8.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_images_8.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_images
mkdir -p /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_gt
wget https://datasets.cvc.uab.es/rrc/ch8_training_localization_transcription_gt_v2.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_training_localization_transcription_gt_v2.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_training_gt
mkdir -p /opt/ml/input/data/ICDAR17_MLT/raw/ch8_validation_images
wget https://rrc.cvc.uab.es/downloads/ch8_validation_images.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_validation_images.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_validation_images
mkdir -p /opt/ml/input/data/ICDAR17_MLT/raw/ch8_validation_gt
wget https://datasets.cvc.uab.es/rrc/ch8_validation_localization_transcription_gt_v2.zip --no-check-certificate -P /opt/ml/input/data/ICDAR17_MLT/raw/zip
unzip /opt/ml/input/data/ICDAR17_MLT/raw/zip/ch8_validation_localization_transcription_gt_v2.zip -d /opt/ml/input/data/ICDAR17_MLT/raw/ch8_validation_gt
rename_valid.py
import os
import os.path as osp
from glob import glob
def main():
image_path = '/opt/ml/input/data/ICDAR17_MLT/raw/ch8_validation_images'
image_file = glob(osp.join(image_path, '*.jpg')) + glob(osp.join(image_path, '*.png'))
for img in image_file:
new_num = 7200 + int(img.split('/')[-1].split('_')[-1].split('.')[0])
fm = img.split('/')[-1].split('_')[-1].split('.')[1]
dst = osp.join(image_path, 'img_' + str(new_num) + '.' + fm)
os.rename(img, dst)
gt_path = '/opt/ml/input/data/ICDAR17_MLT/raw/ch8_validation_gt'
gt_file = glob(osp.join(gt_path, '*.txt'))
for gt in gt_file:
new_num = 7200 + int(gt.split('/')[-1].split('_')[-1].split('.')[0])
fm = gt.split('/')[-1].split('_')[-1].split('.')[1]
dst = osp.join(gt_path, 'gt_img_' + str(new_num) + '.txt')
os.rename(gt, dst)
if __name__ == '__main__':
main()
@omocomo convert_mlt 과정에서 dataset의 copy가 일어나나요? mlt -> all로 갈 때 image data들도 copy가 되는지 여쭤보고 싶습니다. 데이터 양이 많아서 확인을 해보고 싶습니다!
@hyoseok1223 네 image data도 copy 됩니다.
Background
현재 Trainset으로 제공받은 ICDAR17_Korean 데이터는 ICDAR17_MLT 중 한글만 가져온 536장의 데이터이다. 우리가 하고 있는 Task는 Text Detection으로 언어와 상관없이 글자 영역 위치를 인식하는 게 중요하다고 생각해 전체 데이터를 사용해보려고 한다.
Content
Details
ICDAR17 MLT 전체 데이터 다운로드 방법
토론 게시판의 관련글을 참고할 수 있습니다. 하지만 똑같이 실행했는데, unzip에서 오류가 있었습니다. 우선 제가 실행한 방법을 간단히 적겠습니다. (위 이미지의 파일 구조를 참고해주세요!)
convert_mlt.py 실행 시 주의할 점
이후, convert_mlt.py를 이용해 저희가 사용하는 ufo 형식으로 해당 데이터를 변환해 저장할 수 있습니다. 이 때 ICDAR17_MLT에는 7200장의 Training 데이터와 1200장의 Validation 데이터가 있는데 두 데이터의 이미지 이름이 겹칩니다. convert_mlt.py의 코드에서 train과 valid를 concat해 사용하고 있음을 볼 수 있고 그냥 실행시키면 겹친 이미지가 중복 저장되어 9000장의 이미지가 아닌 약 7200장의 이미지가 저장됩니다. 따라서 rename_valid.ipynb에서 valid의 image와 gt 파일의 이름을 7201부터로 rename 했습니다. 이후 convert_mlt.py를 실행시키면 9000장의 image가 잘 저장됩니다.