3 분 소요

강의 4

  • Semantic segmentation

    • 각 픽셀마다 어떤 카테고리에 속하는지 분류
    • instance segmentation과는 구분됨, 단지 semantic category만 다룸
    • 예를 들면 고양이 두마리 있으면 같은 클래스로 분류만 하고 여러 개체(instance) 로 분류하진 않음
    • 영상 편집 등 여러가지 방면에 응용 가능
  • Semantic segmentation architectures

    • Fully convolutional networks
      • fully connected layer가 없고 convolutional한 구조로만 아키텍처 이루어져있음
      • 임의의 사이즈 input 들어와도 출력 맞출 수 있음, 가변적으로 대응 가능
      • end to end learning 가능하게 함
      • Fully Connected Layer => 공간 정보 상실
      • Fully Convolutional Networks => 공간구조 유지한 상태로 heatmap
      • 공간에 feature map이 주어졌을 때 각 위치에 대한 feature1x1 convoluton에 적용이 되기 때문에
      • 개별적인 위치의 feature vector를 뽑아서 FCL을 통과시키는 것과 동일한 결과를 얻을 수 있다.
      • 한계: predicted score map => low-resolution, 최종적인 결과의 해상도가 떨어짐
      • solution => upsampling layer
      • Upsampling
        • 최근엔 Transposed convolution, Upsample and convolution 등의 방법이 사용됨
        • 초반 convolutioinal layer에는 Fine, low-level-detail-local 데이터들이 잘 남아있음
        • 후반엔 공간적인 데이터가 많이 손상되고 Coarse, Semantic Holistic Global한 데이터들이 남아있음
        • 초반 Convolutional Layer: 세밀한(local) 부분을 집중적으로 분석하며, 아주 작은 특징들을 잘 포착
        • 이때의 정보는 정밀하고(fine) 저수준(low-level) 정보
        • 후반 Layer: 이미지 전체(global)를 이해하려고 하며, 더 큰 패턴과 의미적(semantic)인 정보를 강조
        • 이때는 고수준(high-level) 정보가 중요해지고, 세부적인 공간 정보는 덜 중요해짐
        • 중간 feature 맵을 뽑아와서 업샘플링 수행하는 방식으로 semantic sementation 수행
    • U-Net
      • Contracting path => Downsampling, 이미지 해상도 절반으로 감소, 채널은 2배
      • Expanding path => Upsampling, 이미지 해상도 다시 높이고 원래 입력 크기로 되돌리는 과정
      • skip connection이 핵심!
        • skip connection => Concatenation을 통해 로컬 정보와 글로벌 정보 결합 => bounding box의 정교함 유지되게 함
      • input, feature size 짝수로 하기 (2의 배수)=> 대칭적 구조 유지, skip connection에서의 정확한 결합 보장
  • Object detection

    • 개별 인스턴스를 구분하는 확실한 방법
    • Classification + Box localization
  • Object detection architectures

    • R-CNN => Two-stage detector
    • One-stage detector: YOLO => Faster R-CNN에 비해 성능은 좀 떨어지지만, 속도가 굉장히 빠름
    • One-stage => Feature를 뽑고 각 feature마다 미리 anchor박스들이 정의되어있는 것에 대해서 classification, box regression
    • Two-stage => feature에서 bounding box prediction을 먼저하고
      • 각각에 뜯어진 풀링된 feature에 대해서 classification, box refinement
    • One-stage detector => Class imbalance 문제(neg anchor box > pos anchor box), neg은 쓸모없고 pos이 유용한 정보 하지만 쓸모없는게 너무 많다.
    • Focal loss => class imbalance 문제에 대응하기 위한 loss function=> 어렵거나 잘못분류된 예제에 더 큰 가중치 부여
    • RetinaNet -> one-stage network
  • Instance segmentation

    • Mask R-CNN => Faster R-CNN + Mask branch
      • Faster R-CNN과 비교
        • ROI pooling => RoIAlign으로 교체(좀더 정교한 형태의 feature extraction)
        • mask prediction하는 head추가 => 80개의 채널로 구성, 80개의 클래스를 BG vs FG(배경 vs 전경) 이냐로 이진분류함
      • DensePose R-CNN, Mesh R-CNN 이런곳에 활용
      • Mask R-CNN 통해 head만 디자인 해주면 여러가지 애플리케이션으로 확장하기 용이함을 알게됨
  • Transformer-based methods

    • DETR
      • 디텍션 구조에 Transformer 적용
      • Backbone=> conventional CNNs
      • Transformer encoder에 넣기전에 positional encoding을 해줘야함
      • encoder => cnn에서 추출된 feature map을 훨씬 더 강화된 receptive field를 고려할 수 있도록 한번 더 강화하는 모듈로써 사용
        • receptive field => 특정 뉴런이 입력 이미지의 어느 부분을 보고 있는지 의미
        • CNN은 전역적인 관계 처리하는데 한계
        • Transformer encoder는 CNN의 한계를 보완하여, 이미지의 전역적인 정보 처리, 강화된 특징 생성
        • 모델이 객체 간의 복잡한 관계 더 잘 이해하도록 도움
      • decoder => 어떤 오브젝트가 어디에 있는지 학습을 통해서 물어보는 형태의 구조로 설계 (N개의 object query)
      • FFN을 통해 class와 bounding box형태로 decoding
      • prediction 개수는 object queries 개수와 동일한 N개로 나옴
      • Bipartite matching을 통해 bounding box 매칭
        • 중복 매칭을 방지하면서 개별적으로 하나씩 매칭을 찾는 알고리즘
      • MaskFormer
        • detection 뿐만 아니라 segmentation에도 transformer가 사용되기 시작한 연구
        • Mask classification => semantic and instance-level segmentations의 두개의 서로다른 테스크를 하나의 모델에서 수행
        • Semantic segmentation과 Instance segmentation을 하나의 모델로서 표현할 수 있는 unified 모델
        • Panoptic segmentation으로 확장 가능
          • Uni-DVPS
            • Video를 아우르는 segmentation을 모두 수행하는 단일모델
  • Segmentation foundation model

    • SAM

      • segmentation prompt에 대응하는 valid mask를 prediction하는 것을 최종 아웃풋으로 함
      • Prompt encoder
        • sparse prompts, dense prompts 다루는 것 두개로 나눠짐
        • 마스크를 생성하는 과정에서 컨볼루션 레이어로 마스크에 대한 특징 추출한 후
        • 이미지 임베딩과 결합하여 최종적으로 객체에 대한 마스크를 생성하는 것
      • Data engine
    • Grounded-SAM

      • G-DINO + SAM

      • Open-Vocab, Det & Seg

      • Open-Vocab을 수행한다

        => 특정 클래스 목록에 한정되지 않고, 사용자가 입력한 텍스트와 관련된 어떤 객체든 이미지에서 찾아내고 분할할 수 있다

업데이트:

댓글남기기