도배 하자 유형 분류 AI 경진대회

안녕하세요. 대회가 거의 끝났네요. 저희 팀이 접근했던 방식 공유해드립니다.(26등) clipfinetune

2023.05.22 08:54 3,202 Views

Long tail problem

Data의 Imbalance가 굉장히 심합니다. 소수의 클래스가 데이터의 대부분을 차지하고 나머지 클래스는 데이터가 부족한 경우 특히 부족한 클래스가 20개 미만일 경우 Longtail problem이라고 합니다. 우선 이러한 Longtail problem을 해결하기 위해서 관련 논문을 탐색했습니다. 2019년에 나온 Survey 논문 블로그와 paper with code를 참고했습니다.


[논문정리] Deep Long-Tailed Learning : A Survey

https://haystar.tistory.com/82

ImagNet-LT Benchmark

https://paperswithcode.com/sota/long-tail-learning-on-imagenet-lt


Benchmark에서 2위와 3위는 CLIP을 이용한 논문입니다. 따라서 CLIP을 구현할 필요성을 느꼈습니다.(결국 이번 대회는 CLIP을 finetuning하면서 끝을 맺었습니다.)

CLiP fintuning은 다음 코드를 참고하였습니다.

https://www.kaggle.com/code/zacchaeus/clip-finetune


open-clip이라는 좀 더 큰 모델들을 pretrain시킨 모델들이 있는데 학습이 되지를 않아서 사용은 못 했습니다. 아마도 사용했으면 성능이 증가했을 듯 한데 조금 아쉽습니다.

open_clip git

https://github.com/mlfoundations/open_clip


clip finetune 후기

1.보통 A photo of somthing 이런 식으로 해서 하는게 성능이 증가한다고 하였지만 실제로는 A photo of를 사용하지 않을 때가 성능이 더 좋았습니다.


2.짧은 단어와 긴 문장을 두 가지 모두 사용해보았는데 긴 문장의 성능이 훨씬 좋았습니다.

ex) 짧은 단어 예시 : A photo of nail, 긴 문장 예시, nail on the wall

3.사용했던 문장들입니다.

['the door frame with a crack',

'the baseboard with a crack',

'wall paper is coming off at the corner',

'the crack with drawer and wall',

'corner of the ceiling',

'crack near electric outlet',

'serious crack at the corner',

'a hole at the ceiling',

'wall paper is cut',

'crack on the ceiling',

'stains on the wall',

'red dots or blue dots on the wall',

'a protruding part of the wallpaper',

'wrinkle on the ceiling or wall',

'seam wrinkles around the corner',

'wall with a brown spot',

'nail on the wall',

'contamination on the wall',

'a hole or crack in the wallpaper']

4.data augmentation을 하는데 상당히 힘들었습니다. clip의 preprocess에 들어가는 함수를 숨겨놨더군요.

다음과 같은 augmentation을 적용했습니다.

  • RandomResizedCrop
  • TrivialAugmentWide
  • Normalize(mean=(0.48145466, 0.4578275, 0.40821073), std=(0.26862954, 0.26130258, 0.27577711))
  • RandomErasing(p=0.1)

5.TrivialAugmentWide는 사용했을 때 성능의 2프로 정도의 향상을 가져왔습니다.


데이터 크롤링 증가

사용하지는 않았지만 가능하지 않았을까 싶은 크롤링입니다. 구글에 벽에 푸른 반점이나 붉은 반점이나 검색하면 이미지가 뜹니다. 아마도 관련 데이터로 이미지를 증강시켰으면 성능이 많이 증가하지 않았을까합니다.


다들 즐거운 대회가 되셨길 빕니다. 1등2등3등 분들은 어떤 기법을 쓰셨는지 궁금하네요. 다들 고생하셨습니다.


대회 아쉬운 점

한글 제출때문에 거의 2주를 날렸습니다. 눈물이 나네요. 질문을 해도 주최 측에서 안 받아주고...인공지능 대회가 한글로 제출하는 걸 테스트하는 대회는 아니라고 생각하는데 좀 아쉬운 대회였습니다.


로그인이 필요합니다
0 / 1000
mutoy
2023.05.22 09:24

저도 CLIP의 contrastive loss와 SimVLM의 generative caption loss 방식을 image-text encoder-decoder구조에 학습시킬 수 있는 CoCa 모델을 활용해 보려했는데, 직접 텍스트 임베딩을 적다가 (이미지의 화살표 스티커 같은것들) 지쳐서 Res2next로 끝냈습니다. 그냥 카테고리당 하나의 문장으로 적어서 해볼걸 그랬네요

이세의인공지능
2023.05.22 10:59

좋은 내용 공유 감사합니다!
첫 날에 한글 제출 때문에 2회 날려서 속상함에 바로 코드를 올렸는데... 
다들 인코딩 문제로 엄청 시간을 날리신 것 같습니다ㅠㅠ...

이전 글
csv파일 0점 문제 질문드립니다.
Competition - 도배 하자 유형 분류 AI 경진대회
Likes 1
Views 1,731
Comments 10
일 년 전
현재 글
안녕하세요. 대회가 거의 끝났네요. 저희 팀이 접근했던 방식 공유해드립니다.(26등) clipfinetune
Competition - 도배 하자 유형 분류 AI 경진대회
Likes 18
Views 3,202
Comments 2
2년 전
다음 글
힘들 때 도움이 되는 명언
Competition - 데이크루 5기
Likes 7
Views 3,103
Comments 0
2년 전