학습 내용을 기본부터 정리
정통적인 세그멘테이션 기법 간략 정리
R-CNN
- 객체 탐지에 사용된 초기 모델
- 주요 객체들을 바운딩 박스로 표현하여 정확히 식별하는게 목표
- Selective Search를 통해 다양한 크기의 박스를 만들고 region proposal 영역 생성
- region proposal 영역을 warp하여 표준화된 크기로 변환
- AlexNet을 개량한 CNN 모델을 이용하고 마지막 층에 SVM을 통해 객체 분류
region proposal 영역을 warp를 하여 표준화된 크기로 변환하는 이유
resgion propasals 영역이 직사각형 영역일 경우가 많은데 이것을 정사각형 모양으로 변환하는 과정이다. 이는 imagenet에서 정사각형 모양을 사용하고 이때 사용하였던 CNN에서는 imagenet을 사용하였기 때문
Fast R-CNN
- R-CNN의 단점인 느린 속도를 빠른 속도로 개선
- RoI(Region of Interest) 풀링을 통해 한 이미지의 subregion에 대한 forward pass 값을 공유
- R-CNN은 CNN 모델로 image feature를 추출, SVM 모델로 분류, Regressor 모델로 bounding box를 맞추는 작업으로 분류되어 있지만, Fast R-CNN은 하나의 모델로 동작
- Top layer에 softmax layer를 둬서 CNN 결과를 class로 출력
- Box regression layer를 softmax layer에 평행하게 두어 bounding box 좌표를 출력
ROI 란?
관심 영역(ROI)이란 말 그대로 영상 내에서 관심이 있는 영역
예를 들어, 처음 이미지의 크기가 1024X1024지만 내가 선택한 영역이 300X300의 크기를 갖는 부분이라면 그 일부분이 나에게 ROI가 됨
ROI의 형태는 이와 같은 사각형(Square)외에도 원형, 타원형 또는 규칙이 없는 다각형이 될 수 있음
Faster R-CNN
- Fast R-CNN은 가능성 있는 다양한 bounding box들 즉 ROI를 생성하는 과정인 selective search가 느려 region proposer에서 병목이 발생
- 이미지 분류(classification)의 첫단계인 CNN의 forward pass를 통해 얻어진 feature들을 기반으로 영역을 제안
- CNN 결과를 selective search 알고리즘 대신 region proposal에 이용
- k개의 일반적인 비율을 지닌 anchor box를 이용하여 하나의 bounding box 및 score를 이미지의 위치별로 출력
Mask R-CNN
- Pixel 레벨의 세그멘테이션
- RoIPool에서 선택된 feature map이 원래 이미지 영역으로 약간 잘못된 정렬이 발생한 부분을 RoIAlign을 통해 조정하여 정확하게 정렬
- Mask R-CNN은 Mask가 생성되면 Faster R-CNN으로 생성된 classification과 bounding box들을 합쳐 정확한 세그멘테이션 가능
U-net 기반의 세그멘테이션
- Base라고 할수 있는 세그멘테이션 기법 중 하나
- U-net이라 불리는 인코더와 디코더를 포함한 구조는 정교한 픽셀 단위의 segmentation이 요구 되는 biomedical image segmentation taks의 핵심 요소
- 인코더 디코더 구조 또한 semantic segmentation을 위한 CNN구조로 자주 활용
- 인코더 부분에서는 점진적으로 spatial dimension을 줄여가면서 고차원의 semantic 정보를 convolution filter가 추출 해낼 수 있게 함
- Decoder 부분에서는 encoder에서 spatial dimension 축소로 인해 손실된 spatial 정보를 점진적으로 복원하여 보다 정교한 boundary segmentation을 완성
- U-net은 기본적인 인코더 디코더 구조와 달리 Spatial정보를 복원하는 과정에서 이전 encoderfeature map 중 동일 한 크기를 지닌 feature map을 가져와 prior로 활용함으로써 더 정확한 boundary segmentation이 가능하게 함
출처 : https://www.youtube.com/watch?v=sbcC6N5xfy8&t=6761s
영상을 보면서 학습을 목적으로 작성 하였습니다. 문제가 있다면 삭제하겠습니다.
'DevLog' 카테고리의 다른 글
[Tools] cv2.Canny() (0) | 2023.03.06 |
---|---|
[Troubleshooting] Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/expo-cli' (0) | 2023.01.21 |
[Tip] labelimg 설치하기 for M1 (0) | 2022.12.15 |
[TIP] Google Colab 런타임 연결 해제 방지하기 (0) | 2022.12.07 |
[Setting] InvokeAI Setting - for stable diffusion (0) | 2022.12.06 |