이번 주는 인코딩 관련 문제 해결 & 이미지 증강을 통한 성능 향상에
초점을 맞춰서 진행 해 보았다.
우선 인코딩 이슈..
지난번에 점수 0 뜬거 보고
아무리 데이터의 질이 나쁘더라도 이럴 수 있나..?
뭐 클래스 불균형이 너무 심해서 그런갑다 했는데 무슨
파일 뜯어보니 인코딩이 엉망이었다.
무엇이 그렇겗?귱금하슇죣??
지난번 자모분리현상 부터 왜이런진 모르겠는데..
ANSI로 인코딩 하면 육안상 괜찮은데 데이콘에서 받아들이지 못해서 점수가 0으로 나오고,
utf-8은 위 사진처럼 미친듯이 깨지더라
그래서 혼자 터득해본 방법은
1. csv를 메모장으로 열기
2. utf-8(BOM) 으로 저장하기
그럼 이렇게 이쁜 결과를 얻을 수 있다.
나중에 알고보니 그냥 to_csv 할 때
encoding = 'utf-8-sig' 옵션을 추가해주면 되더라.
utf-8-sig : 서명이 있는 utf-8, 즉 UTF-8 with BOM
BOM : Byte Order Mark.
이미지 증강은 성능 향상을 위해 거의 필수적이었다.
애초에 가구수정, 반점, 틈새과다 등의 항목들은
이미지가 20개도 되지 않았다.
여기서 item 별 유의미한 특징을 뽑아내는 건 사람도 힘들겠더라
그래서 우선 단순 증강들을 사용해
클래스별 개수의 전반적인 비율을 비슷하게끔 하고자 했다.
데이터 증강에 관해서는 따로 포스팅 하도록 하겠다.
가장 데이터가 많았던 훼손을 타 변수들로 나눈 결과이다.
목표는 다른 데이터들도 '훼손'과 비슷한 수를 갖게끔 이미지를 증강시키는 것.
그래서 크게 세 그룹으로 나누어 각기 다른 개수의 증강을 적용했다.
기존 데이터에 이미지 변형을 시도할 수록 개수가 2의 지수로 증가한다.
ex) flip과 crop을 적용시키는 경우
기존 데이터 -> 기존 데이터 + flip 데이터 -> 기존 데이터 + flip 데이터 + crop(기존 데이터 + flip 데이터)
그 다음 증강별 transform을 정리해주고
폴더 명과 증강 종류를 input시키면
기존 폴더에 증강된 이미지를 넣도록 함수를 만들어 주었다.
열심히 돌아가는 친구들
우선 이렇게 증강을 통해 성능 개선 -> 최적의 증강 세트 파악 -> 최적의 모델 파악
-> 하이퍼파라미터 튜닝의 과정을 거쳐보려는 원대한 꿈이 있었으나
증강된 데이터를 바탕으로 동일한 efficientnet_b0에 전이학습 해본 결과
오히려 점수가 낮아지는 기현상
마지막에 auto augmentation을 넣어서 그렇지 않을까 싶기도 하다
아니면 전체적으로 내가 한 증강이 도움이 되는 방향이 아닌건지..
이미지 특징별로 도움이 되는 증강방식이 존재할텐데
그냥 막 때려버려서 모델이 삼키길 거부하는 듯 하다
증강에 대한 제대로된 공부를 통해 보완시켜보겠다
'VISION' 카테고리의 다른 글
사물탐지 (1) - 사물탐지 프로젝트 프레임워크 (0) | 2023.06.11 |
---|---|
[이미지 분류 프로젝트] - 데이콘 도배 하자 (1) (3) | 2023.05.16 |
고급 합성곱 신경망 구조 (2) - AlexNet, VGGNet, InceptionNet (0) | 2023.05.11 |
고급 합성곱 신경망 구조 (1) - CNN의 패턴과 LeNet (0) | 2023.05.10 |
컴퓨터 비전 기초 - 프로세스와 CNN (1) | 2023.04.28 |