2023 교원그룹 AI OCR 챌린지

알고리즘 | 채용 | 광학문자인식 | Accuracy

  • moneyIcon 상금 : 1,000 만원
  • 1,337명 마감

 

Dataset과 Augmentation을 쉽게 해봅시다.

공동작성자

stroke
2023.01.04 13:47 5,507 조회 language

Huggingface의 datasets와 
https://github.com/roatienza/straug 에 공개된 straug 라이브러리를 이용하면 쉽게 어그멘테이션을 할 수 있습니다.
모두 파이프라인을 만드는데 도움이 되면 좋겠습니다.

코드
로그인이 필요합니다
0 / 1000
BlackANGus
2023.01.04 14:08

해당 로테이트는
15, 30, 45도중 랜덤하게 1개를 선택하고,
(30도가 선택되었다는 가정)
0~30 도중에 랜덤하게 1개를 선택하고,
+,- 여부를 결정합니다.

결론적으로는 0~45도 사이에 +- 어떤 한 각도로 변경이 될텐데, 계단형 구조의 선택과정을 거치므로, 상대적으로 특정 각도 사이의 값이 선택될 확률이 높아지게 될 것입니다 참고하세요!

재오
2023.01.04 19:47

혹시 rotate한 이미지들을 따로 저장하고 싶은데 datasets 라이브러리에 대한 정보를 어떻게 검색하면 좋을까요?

청소
2023.01.04 19:58

https://huggingface.co/docs/datasets/index

docs를 알려드리면 도움이 될까요?

찾아보고 문제가 해결 안될경우 저는 huggingface datasets [problems] 정도로 검색하구 있습니다🤗

BlackANGus
2023.01.04 20:05

아마 그렇다면 set_transform이 아니라 map을 쓰셔야할 것 같은데요,
train_datasets.map(rotate)
train_datasets.save_to_disk(경로)
이런식으로 하신다음에,
train_datasets.load_from_disk(경로)
로 불러오는 과정이 필요합니다.
set_transform은 참조되는 데이터에만 적용되는거 같던데, map은 배치단위로 적용될거라서 어쩌면 위에 rotate가 리스트형 데이터 구조를 처리할 수 있도록 수정되어야 할 수도 있을 거 같으면서도, list comprehension으로 작성해놔서 그냥 수려하게 잘 될거 같기도 하고 한번 해보면서 적당히 수정하는 과정은 필요할지 모르겠습니다.

저는 토치 라이트닝을 쓰면서도 datasets는 HuggingFace를 주로 쓰게되다보니 구조나 환경이 개발자별로 어떨지 잘 모르겠어서 가이드 한번 같이 보시면서 구현해보시는건 어떨까 생각되네요
https://huggingface.co/docs/datasets/process#map

재오
2023.01.04 20:08

docs 정보 및 직접적인 해결 방법 제공 모두 정말 감사합니다!!  참고하여 해결해보도록 하겠습니다.