코딩 및 기타/이미지
Faster R-CNN
정지홍
2025. 1. 24. 11:10
Faster R-CNN
- R-CNN계열이다. Fast R-CNN의 단점을 보완하며 실시간 처리 성능을 향상시킨 모델이다.
- 장점
- RPN( Region Proposal Network )의 도입으로 기존의 selective search 기반 모델보다 정밀한 Region Proposal을 생성.
이를 통하여 Bounding box의 위치와 클래스 분류의 정확도가 높아짐. - region proposal과 객체 분류를 통합해서 End-to-End 방식으로 학습이 가능하다.
- 이전의 R-CNN 계열 모델은 region proposal과 객체 탐지를 별도로 했으나, faster r-cnn은 통합적으로 학습함.
- RPN과 detection network가 backbone network를 공유하니, feature map을 재사용해서 계산 효율성이 높아짐.
- R-CNN에서는 각 region proposal마다 독립적으로 CNN을 수행했으나, faster R-CNN은 단일 CNN Forward pass로 모든 feature를 추출함.
- Anchor Box를 사용하여, 다양한 크기와 모양의 물체를 탐지가능
- RPN( Region Proposal Network )의 도입으로 기존의 selective search 기반 모델보다 정밀한 Region Proposal을 생성.
- 단점
- 속도가 느리며, 구조가 복잡함.
- 작은 물체 탐지에는 한계가 존재하며, anchor box에 의존한다.
- Faster R-CNN의 구조
- 1. feature extraction
- backbone network : 주로 resnet , vgg 등 사전에 학습된 cnn기반 모델을 사용하여 이미지를 처리하고, 다양한 scale과 공간적 정보를 포함한 feature map을 추출한다.
추출한 feature map은 물체의 위치와 클래스 예측에 사용한다.
- backbone network : 주로 resnet , vgg 등 사전에 학습된 cnn기반 모델을 사용하여 이미지를 처리하고, 다양한 scale과 공간적 정보를 포함한 feature map을 추출한다.
- 2. region proposal network ( RPN )
- Faster R-CNN의 핵심중 하나이며, 이전 모델들에서 사용한 selective search와 같은 느린 알고리즘을 대체함. ( RPN은 효율적으로 잠재적인 region proposal을 생성)
- 2-1. sliding window 방식을 사용하여, 각 위치에서 다양한 크기와 비율을 가지는 Anchor box 를 생성함.
- anchor box를 이용하여, 해당 박스가 물체를 포함하는지 여부와 박스를 객체 위치에 맞게 조정함.
- ex) 각 위치에서 3개의 크기[ 128 , 256 , 512 ]와 3개의 비율 [ 1:1 , 1:1.5 , 1:2 ]의 anchor box를 생성한다. 이러면 3 x 3 = 9라서 9개의 anchor box가 만들어진다.
- 2-2. anchor box가 실제 물체를 포함할 확률을 예측합니다.
- 2-3. bounding box regression
- anchor box를 물체의 정확한 경계로 조정하기 위해서 4개의 좌표값을 예측함. ( x , y , w , h )
- 2-4. 손실 함수
- RPN은 2가지의 손실을 최적화 한다.
- 2-4-1. classification Loss : objectness score을 학습
- 2-4-2. regression Loss : bounding box좌표를 학습
- 3. object detection head
- RPN에서 나온 ROI를 고정된 크기로 변환. 초기에는 roi pooling을 사용했으냐 요즘에는 roi align을 사용
( roi pooling 설명 -> fast R-CNN ( Fast Region-based Convolutional Neural Network ) )
- RPN에서 나온 ROI를 고정된 크기로 변환. 초기에는 roi pooling을 사용했으냐 요즘에는 roi align을 사용
- 4. detection network
- 입력: roi pooling ( roi align )을 거친 고정된 크기의 특징 맵
- 출력: 물체의 클래스 및 위치를 예측
- 손실함수 : detection network도 classification loss와 regression loss를 사용한다.
- 5. faster r-cnn의 학습
- 5-1. multi-task learning
- faster r-cnn은 RPN과 Detection network를 공유된 backbone을 통하여 동시에 학습함.
- 5-2. anchor box matching
- anchor box를 ground truth와 비교해서 positive , negative로 분류
- 5-1. multi-task learning
- 1. feature extraction
- 전체적 흐름
- 1. 입력 이미지를 CNN으로 처리하여 feature map 생성
- 2. RPN이 feature map에서 물체가 있을 법한 region proposal을 생성
- 3. ROI Align으로 region proposal을 고정된 크기로 변환
- 4. detection head가 변환된 roi를 물체 클래스와 경계 상자로 예측