0305

우병주·2025년 3월 4일

: val/n02090721/00044529

val/n02092002/00004288

val/n02104029/00032043

val/n02107312/00039020

  1. timm vit 참고하면서 reg_token 추가해보기: original paper에 따라서 4개
  2. 돌릴 실험: (1) ViT-B-16 + reg_token, (2) CAST-B-16-cls + reg_token? (3) cls token as center of gpool
  3. graph 그리기
  4. hierarchical seg 구경 하기
  5. CAST의 dog 그림 TTA 해보기

실험결과, ConvStem이 있을 수록, Cls token을 사용할수록 imagenet val은 높은것으로 보임.
PatchEmbedNorm을 사용시 ViT보다 성능이 좋지 않음
(1) PatchEmbedNorm의 방식은 중복이 너무 강함 -> 8x8 Conv로 PatchEmbedNorm을 해야할수도
(2) ViT에도 똑같이 ConvStem을 쓰는 방식 해보기 (16까지 가는 original ConvStem)
1. ViT-B-16c: 블럭 하나 빼고 ConvStem(patch_size=16)을 넣음
2. CAST-B-16p-gpool: PatchEmbedNormv2: 그냥 stride=8, kernel_size=8, no padding의 정상적인 patch embedding 적용

--
도커 접속방법

  1. [워크스페이스] cp -r /mnt/bj-pkgs/* ~/anaconda3/envs/cast/lib/python3.9/site-packages
  2. [내 콤퓨타] 다른 창에서 cd ~ && ./run_jupyter.sh <포트>
  3. [워크스페이스] jupyter notebook --allow-root 여기서 뜨는 localhost 어쩌구저쩌구 주소를 ctrl 누르고 클릭

--
factory에 load_state_dict 파트에서 weight_only 파트 수정함.

--
ViTamin: Convolution stem을 초기에 다는게 왜 powerful한지 설명해주는듯 + Locked Text Tuning(LTT)의 유용성 설명)

아직 성능을 더 개선할 수 있는점:

  • lokcked text tuning
  • load DINOv2-block?

superpixel quality에 대한 의심

  • 8x downsample 기준으로 SEEDS와 SFCN 누가 더 나은지 봐야할듯
  • SEEDS로도 학습해보자

학습된 모델로 해봐야 할 것들
gpool?

  • open vocabulary segmentation - qualitative
  • open vocabulary segmentation - quantitative on COCO-stuff
  • reffering image segmentation - qualitative
  • coco image text retrieval

CAST-CLIP:
CLIP을 따라서,

gamma: [0.017, 0.023, 0.0008, 0.0046]
cos-sim: [0.83, 0.92, 0.93]
final logit: 0.04~0.06 -> all contributes samely
gap vs gpool: cos sim: 0.94

0개의 댓글