1. Region proposal Networks(RPN)
RPN의 목적: object가 있을 법한 영역만 찾는 방법
RPN은 Faster R-CNN에서 활용되었는데, Faster R-CNN의 목표는 selective search 없이 RPN을 학습하는 구조로 모델을 만드는 것RPN은 feature map을 input으로, RP를 output으로 하는 네트워크라고 할 수 있고, selective search의 역할을 온전히 대체
RPN(Region Proposal Networks)은 크기에 상관없이 이미지 전체를 입력 받고 영역 추정 경계 박스를 반환한다.
각 경계 박스는 객체가 있는지의 여부를 점수로 나타낸다. RPN은 영역 추정 경계 박스를 만들기 위해, 슬라이딩 윈도우 방식을 적용한다.
즉, RPN의 input 값은 이전 CNN 모델에서 뽑아낸 feature map이다. Region proposal을 생성하기 위해 feature map위에 nxn window를 sliding window시킨다.
요약하자면,
- 다양한 사이즈의 이미지를 입력 값으로 object score과 obeject proposal을 출력
- Fast r-cnn과 합성곱 신경망을 공유
- feature map의 마지막 conv 층을 작은 네트워크가 sliding하여 저차원으로 매핑
- Regression과 classification을 수행
selective search
object 인식이나 검출을 위한 가능한 후보 영역을 알아낼 수 있는 방법을 제공하는 것이 목표
[과정]
- 입력 영상에 대해 segmentation을 실시해서 이를 기반으로 후보 영역을 찾기 위한 seed를 설정
- 초기에 엄청나게 많은 후보들이 만들어진다.
- 이를 적절하게 통합해 나가면,이 segmentation은 후보 영역의 개수가 줄어들고, 결과적으로 이를 바탕으로 box의 후보 개수도 줄어든다.
[단점]
- region proposal 과정이 실제 object detection CNN과 별도로 이루어지기 때문에, selective search를 사용하면 end-to-end로 학습이 불가능하고, 실시간 적용에도 어려움이 있음
2. Object Detection
이미지 내 다수의 사물이 있을 때 각각의 사물의 위치와 클래스를 분류하는 작업
- 2- stage vs 1-stage
- 2-Stage Detector : 위치를 찾는 문제와 분류 문제를 순차적으로 해결
- 1-Stage Detector: 위치를 찾는 문제와 분류 문제를 한번에 해결
- 2-Stage Detector 보다 빠르게 동작하지만 정확도는 더 낮다 예시) YOLO
- 정확도 측정 → average precision
3. R-CNN
R-CNN 프로세스
• Region Proposal :"Object가 있을법한 영역"을 찾는 모듈로 기존의 Sliding window방식의 비효율성 극복했다.
• CNN: 각각의 영역으로부터 고정된 크기의 Feature Vector를 뽑아낸다. 이때 고정된 크기의 output을 얻기위해 warp작업을 통해 동일 input size로 만들고 CNN에 넣는다.
• SVM: Classification을 위한 선형 지도학습 모델로 CNN모델로부터 feature가 추출되면 Linear SVM을 통해 classification을 진행한다.
단점
selective search로 2000개의 region proposal을 뽑고 각 영역마다 CNN을 수행하기 때문에 수행시간이 매우 느리며 CNN, SVM, Bounding Box Regression 총 세가지의 모델이 multi-stage pipelines으로 한 번에 학습되지 않는다. 또한 region proposal 에 대해 ConvNet forward pass를 실행할 때 연산을 공유하기 않기 때문에 end-to-end의 방식으로 학습할 수 없다.
4. Fast R-CNN
동일한 Region Proposal을 이용하되 이미지를 한 번만 CNN에 넣어 Feature Map을 생성
- Rol Projection: feature map을 거친 각 RoI들은 모델을 통과하며 줄어든 크기의 비율을 따져 좌표만 변경시킴
- Rol Pooling: 각 Rol 영역에 대해 max pooling을 이용 → 고정된 크기의 벡터를 생성
- Regression Bounding Box
- R-CNN의 문제점: CNN(feature extraction), SVM(분류), Bounding Reg Box 단계를 따로 학습 → 분류와 회귀 단계에서 학습한 결과를 feature extraction 단계에 반영 X
- Fast R-CNN: CNN, Softmax(분류), Bounding Reg Box 과정을 통합→ 한 번에 학습 가능한 구조로 변경
5. Faster R-CNN
RPN + Fast R-CNN
- RPN(Region Proposal Network) : 후보 영역을 추출하기 위해 사용되는 selective serch 알고리즘 CPU 상에서 동작하고 이로 인해 네트워크에서 병목 현상이 발생 → 이러한 문제를 해결하기 위해 후보 영역 추출 작업을 수행하는 네트워크인 Region Proposal Network을 도입, 가로세로비를 가지는 bounding box인 anchor box 사용해 RPN에서 위치와 객체의 class 예측 → 결론: 모델의 전체과정이 GPU에서 동작하여 병목현상이 일어나지 않으며 end-to-end 네트워크로 학습하는 것이 가능해짐
- 전체적인 동작
- 원본 이미지를 pre-trained된 CNN 모델에 입력해 feature map을 얻음
- frature map은 RPN에 전달되어 적절한 region proposals 산출
- region proposals와 feature map을 통헤 Rol pooling을 수행하고 고정된 크기의 feature map을 얻음
- Fast R-CNN 모델에 고정된 크기의 feature map을 입력하여 Classificaion과 Bounding box regeression을 수행
https://www.youtube.com/watch?v=jqNCdjOB15s&list=PLRx0vPvlEmdADpce8aoBhNnDaaHQN1Typ&index=5
'AI' 카테고리의 다른 글
Gemma sprint 후기 (0) | 2024.10.04 |
---|---|
[프롬프트] 생성형 AI 입문 완성강의 후기_(이론 및 기능 활용법) (0) | 2024.03.27 |
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (0) | 2024.03.14 |
Human-level Control Through Deep Reinforcement (1) | 2024.03.08 |
Attention is All You Need (0) | 2024.02.22 |