Week4 03
강의 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
이 주어졌을 때 각 위치에 대한feature
가1x1 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에서의 정확한 결합 보장
- Contracting path =>
- Fully convolutional networks
-
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 regressionTwo-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만 디자인 해주면 여러가지 애플리케이션으로 확장하기 용이함을 알게됨
- Faster R-CNN과 비교
-
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을 모두 수행하는 단일모델
- Uni-DVPS
- 디텍션 구조에
- DETR
-
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을 수행한다
=> 특정 클래스 목록에 한정되지 않고, 사용자가 입력한 텍스트와 관련된 어떤 객체든 이미지에서 찾아내고 분할할 수 있다
-
-
댓글남기기