본문 바로가기
etc/공부방

[네부캠] 5주차 정리

by 베짱이28호 2023. 12. 4.

1. Computer Vision

1. Object Detection

  • Semantic segmentation -> instance segmentation / panoptic segmentation : 같은 class 객체를 구분
  • object detection : classification + box localization, 물체의 class와 location 판별.
  • R-CNN (Regions - CNN) : 영상의 영역을 나누고, input shape을 변형시켜서 CNN에 넣어서 classification
    selective search. 데이터 전처리에도 시간 오래걸리고, region마다 class를 구분하는데도 오래걸림.
  • Fast R-CNN : convolution feature map을 추출한 후, ROI pooling을 해준다. (ROI 후보들을 추출)
  • Faster R-CNN : IoU(교집합/합집합)을 통해 bb가 잘 만들어졌나 판별
    Anchor Box(미리 만들어 놓은 다양한 크기 비율의 bb)를 사용해서, ground truth와 IoU를 구함.
    정교한 문제들은 anchor box에서 다시 class 분류. -> 다양한 bb들을 필터링, 선별해줘야함
    Non-Maximum suppressiong 사용.
  • single stage (속도에 중점, RoI pooling X, real time)
    YOLO : bb + score / class probability map을 통해서 regression, 마지막에서 FC를 한 번해서 성능이 조금 떨어짐.
    Single Stage MultiBox Detector (SSD)
    배경에서 존재하는 수많은 anchor box에서 발생하는 class imbalance 존재 -> focal loss 사용 (CE의 확장)
    focal loss : 잘 맞춘애들은 loss 많이 줄여주고, 못 맞춘 애들은 loss 적게 감소
    RetinaNet : U-Net과 비슷. SSD보다 빠르고 성능이 좋다
    CV에서 사용되는 Transformer: DETR (vision transformer에서 봤던거처럼 endcoder/decoder 존재)

2. CNN Visualizatoin

  • filter visualization
    low level output: CNN의 초반에는 channel수가 낮아서 visualization을 통해서 역할을 확인가능.
    high level output :
    1. FC 이전 embedding vector 해석 -> clustering
    2. Dimension reduction -> t-SNE
    mid level output:
    1. hidden node activation를 통해 mask 시각화. 어떤 node가 어떤 feature를 나타내는지
    2. 어떤 node로 들어가는 receptive field를 뜯어온다.
    3. score를 높여주는 input image를 찾기. 그 중에서 regularization을 통해서 해석 가능한 이미지만 선택.
  • 모델이 특정 입력에 대해서 어떻게 반응하는지
    Saliency test
    1. Occlusion map (이미지 특정부분 patch로 가려서 확률값이 많이 감소하는 부분 채택)
    2. via backprop : 역전파된 grad의 크기를 구해서 시각화. (data dependent)
    Class activation map (CAM) : heapmap 처럼 이미지에 표현해주기. GAP 이전 공간정보를 불러오기
    CAM은 모델 뒷단 구조를 바꿔서 성능이 달라질 수 있음 -> Grad CAM : 

3. Instance segmentation

  • 같은 class여도 다른 instance이면 다르게 구분하기 -> 상위 레벨의 task : instance, panoptic 등...
  • Instance Segmentation
  • Mask R-CNN : Faster R-CNN을 개선한 모델
    RoI Align을 이용해 정교한 feature를 추출 + Mask branch를 이용해서 마지막 단에서 어떤 mask를 선택하는지..
  • YOLACT : mask를 합성할 수 있는 soft segmentation을 생성한 후(basis역할), prediction head의 정보와 결합해 object를 구분한다.
  • YolactEdge : key frame의 feature를 다음 frame으로 전달해주어 속도 향상. (real time, vidio ver YOLACT)

 

  • Panoptic Segmentation
  • UPSNet : instance가 있는 부분과 없는 부분을 구분 (이미지에서 instance위치 빼서 unknown area를 구분)
  • VPSNet : reference trame으로부터 target frame으로 image의 feature를 보내준다. (real time, video ver)

 

  • Landmark localization
  • coordinate regression -> 모든 픽셀에 대해서, 연산량 많다
  • heatmap classification ->  kernel을 사용해서 연산량 감소.
  • Hourglass Network : U-Net과 비슷한 구조. 줄였다가 늘리는 방식. receptive field를 늘리고, 복원하면서 landmark를 찾는 방식. 이런 hourglass 구조의 반복. U-Net과 다른 점이면 concat이 아니라 add를 사용한다.
  • object detection -> key point detection
    CornerNet : corner point 두개를 가지고 (왼쪽 위, 오른쪽 아래) bb 결정. (real time 위주)
    CenterNet : corner point에 중심점 포함하기 / center point에 w,h를 받아서 bb 결정

 

4. Conditional Generative Model

  • generative model에 조건을 줘서 원하는 값을 이끌어내는 model. random seed 대신 시작 값을 준다.

5. Multi modal learning

  •  서로 다른 modality 여러 개 사용. CV + text / audio 등.. -> 새로운 embedding vector, 정보 불균형 : 학습 어렵다.
  • joint embedding : image - tag 연결하기(양방향)
  • embedding vector를 더하고 빼서 출력 결과를 변경 시킬 수 있음. (개+바탕 사진에서 -개 +고양이 = 고양이+바탕)
  • 여러 modality를 사용하면 입출력 형식에 따라 다양한 방식의 model이 결합된다. (image : CNN -> text : RNN)
  • 출력 결과가 unique한지 아닌지에 따라서 모델도 선택해야함. 출력 결과가 다양한 경우 generative model을 쓴다.

6. 3D Understanding

  • 실제 인식한 2D 이미지를 바탕으로 실제 세계인 3D에 적용한다. 3D 공간에 대한 이해가 필요하다.
  • 다른 시점에서 촬영한 2개의 2D 이미지로 3D 이미지 구축가능. but, 3D 이미지는 unique하지 않다.

7. Recent Trends on Vision Transformer

  • Transformer : NLP 분야에서 먼저 사용. RNN기반 (LSTM, GRU 등)과 다르게 recurrence 없음.
    self attention : query, key, value로 구성되어있음. 문장 내 위치 정보를 고려하게 된다.
  •  ViT : 이미지를 patch 단위로 나눠서 transformer 구조 차용. spatial 정보를 고려하게 된다.
  • MaskFormer : input에 대해서 여러개의 prediction을 하고, 어떤 class에 속하는지 구분.
  • 토큰화를 잘 시키면 vision, NLP를 넘어서 다양한 분야에 통합된 모델로 쓰일 수 있음.
  • ex) image + text pair 사용. supervised data set을 사용해 encoder를 통과 -> embedding space를 통과하며 학습

2. 코테 준비

[파이썬] 프로그래머스 : 미로 탈출 (Lv.4) (tistory.com)

[파이썬] 백준 2314 : 이세계 게임 (골드3) (tistory.com)

[파이썬] 백준 17352 : 여러분의 다리가 되어 드리겠습니다! (골드5)

[파이썬] 백준 1486 : 등산 (골드2) (tistory.com)

[파이썬] 백준 4781 : 사탕가게 (골드4) (tistory.com)

[파이썬] 프로그래머스 : 지형이동 (Lv.4) (tistory.com)

[파이썬] 백준 17471 : 게리맨더링 (골드4) (tistory.com)

[파이썬] 백준 2665 : 미로만들기 (골드4) (tistory.com)

3. 코멘트

프로젝트 준비하기.........

'etc > 공부방' 카테고리의 다른 글

리트코드 문제풀이 진행 상황  (0) 2024.09.01
[네부캠] 4주차 정리  (0) 2023.11.27
[네부캠] 3주차 정리  (0) 2023.11.20
[네부캠] 2주차 정리  (0) 2023.11.17
[네부캠] 1주차 정리  (0) 2023.11.10

댓글