안녕하세요!
사진 속 여러 물건을 컴퓨터가 찾아내는 일은 생각보다 복잡합니다.
물건의 종류뿐 아니라 화면 속 위치와 크기까지 알아야 하기 때문입니다.
객체 탐지는 무엇이 어려웠을까?
이미지 분류는 사진 전체를 보고 하나의 답을 고르는 작업입니다.
예를 들어 사진 전체가 고양이인지 개인지를 판단하는 방식입니다.
반면 객체 탐지는 사진 안의 물체를 모두 찾아야 합니다.
각 물체가 무엇인지와 어디에 있는지를 함께 알려 줘야 합니다.
자동차 사진에 사람, 자전거, 신호등이 함께 있을 수 있습니다.
물체는 겹치거나 작게 보이고, 배경에 섞여 있을 수도 있습니다.
R-CNN은 이런 객체 탐지 문제를 단계별로 풀어낸 대표적인 초기 방법입니다.
이름은 Region-based Convolutional Neural Network의 줄임말입니다.

R-CNN의 핵심 흐름 한눈에 보기
R-CNN은 한 장의 사진을 바로 전부 판단하지 않습니다.
먼저 물체가 있을 법한 작은 영역을 여러 개 골라냅니다.
그 뒤 각 영역에서 이미지 특징을 뽑고, 물체 종류를 판별합니다.
흐름은 후보 영역 생성 → CNN 특징 추출 → 객체 분류입니다.
마지막에는 예측 상자가 실제 물체 경계에 더 가까워지도록 조정합니다.
따라서 R-CNN은 종류와 위치를 함께 예측할 수 있습니다.
1. 후보 영역: 살펴볼 곳을 먼저 고르기
후보 영역은 물체가 있을 가능성이 있는 사각형 영역입니다.
영어로는 region proposal이라고 부릅니다.
초기 R-CNN은 선택적 탐색이라는 방법으로 후보를 만들었습니다.
색, 질감, 크기가 비슷한 부분을 묶어 사각형을 제안하는 방식입니다.
예를 들어 강아지 사진이라면 귀, 몸통, 주변 배경까지 다양한 상자가 나옵니다.
이 중 일부는 강아지를 잘 담고, 일부는 배경만 담게 됩니다.
중요한 점은 처음부터 정답 상자 하나만 고르려 하지 않는다는 것입니다.
놓치는 물체를 줄이기 위해 보통 많은 후보 영역을 준비합니다.
2. CNN 특징 추출: 그림을 숫자로 이해하기
후보 영역마다 크기가 다르므로 R-CNN은 입력 크기를 맞춥니다.
그다음 CNN에 넣어 특징 추출을 수행합니다.
CNN은 합성곱 신경망이라는 뜻입니다.
이미지에서 모서리, 무늬, 눈처럼 유용한 모양 단서를 단계적으로 찾습니다.
처음 층은 단순한 선과 색 변화에 반응할 수 있습니다.
깊은 층으로 갈수록 얼굴이나 바퀴 같은 복잡한 형태를 구분합니다.
3. 객체 분류와 상자 위치 보정
CNN이 만든 숫자 표현을 특징 벡터라고 합니다.
이 벡터를 바탕으로 각 후보가 무엇인지 판단하는 과정이 객체 분류입니다.
분류기는 후보 영역에 사람, 자동차, 강아지 등이 있는지 점수를 냅니다.
어떤 물체도 없다고 판단하는 배경 클래스도 함께 다룹니다.
또한 후보 상자는 물체를 조금 넓게 잡거나 일부를 놓칠 수 있습니다.
R-CNN은 경계 상자 회귀를 이용해 상자의 위치와 크기를 보정합니다.
비슷한 상자가 여러 개 남으면 같은 물체를 중복 검출할 수 있습니다.
이때 점수가 낮은 겹친 상자를 줄이는 후처리도 필요합니다.
짧은 예시로 따라가기
고양이와 소파가 있는 사진을 떠올려 보겠습니다.
후보 영역 생성 단계는 사진 곳곳에 수많은 사각형을 만듭니다.
그중 고양이 몸을 포함한 상자는 CNN을 통과합니다.
특징 추출 결과에는 귀 모양, 털 질감, 눈 주변 같은 단서가 담길 수 있습니다.
객체 분류 단계는 이 상자에 고양이 점수가 높다고 판단합니다.
상자 보정은 고양이 몸에 더 잘 맞도록 경계를 조금 옮깁니다.
반대로 소파 천 일부만 담긴 상자는 배경으로 처리될 수 있습니다.
이런 반복 판단을 통해 최종 검출 결과가 만들어집니다.
R-CNN의 한계는 무엇일까?
R-CNN은 객체 탐지 성능을 크게 발전시킨 중요한 모델입니다.
하지만 실제로 빠르게 사용하기에는 처리 과정이 무거웠습니다.
가장 큰 문제는 후보 영역마다 CNN을 따로 실행한다는 점입니다.
한 이미지에서 수천 개 후보가 나오면 비슷한 계산을 수천 번 반복합니다.
후보 영역을 만드는 선택적 탐색도 시간이 오래 걸렸습니다.
이 단계는 CNN과 별개로 동작해 전체 학습과 추론을 복잡하게 했습니다.
학습 과정 역시 여러 단계로 나뉘어 있었습니다.
CNN 학습, 분류기 학습, 상자 보정을 따로 준비해야 했습니다.
Fast R-CNN과 Faster R-CNN은 왜 나왔을까?
Fast R-CNN은 같은 이미지에 CNN을 한 번만 적용하는 방향을 택했습니다.
먼저 전체 이미지의 특징 맵을 만든 뒤 후보별로 필요한 부분을 꺼냅니다.
특징 맵은 CNN이 이미지 전체에서 미리 뽑아 둔 특징 지도입니다.
중복된 CNN 계산을 줄여 R-CNN보다 훨씬 효율적이었습니다.
다만 Fast R-CNN도 후보 영역 생성에는 선택적 탐색을 사용했습니다.
따라서 후보를 만드는 속도 문제가 여전히 남아 있었습니다.
Faster R-CNN은 후보 영역 생성까지 신경망 안으로 가져왔습니다.
RPN이라는 후보 영역 네트워크가 특징 맵에서 후보를 직접 제안합니다.
즉 Faster R-CNN은 특징 추출과 후보 생성의 계산을 공유합니다.
R-CNN의 느린 후보 생성 문제를 크게 줄인 이유가 여기에 있습니다.
핵심 정리
R-CNN은 이미지를 후보 영역으로 나눈 뒤 각 영역을 분석하는 객체 탐지 모델입니다.
후보 영역, CNN 기반 특징 추출, 객체 분류가 핵심 구성 요소입니다.
이 방법은 물체의 종류와 위치를 함께 찾는 길을 보여 주었습니다.
다만 후보마다 CNN을 반복 실행해 속도와 학습 절차에 부담이 있었습니다.
Fast R-CNN은 중복 특징 계산을 줄였고, Faster R-CNN은 후보 생성도 학습하게 했습니다.
세 모델을 이 흐름으로 비교하면 발전 과정이 훨씬 분명해집니다.
일부 이미지는 Pexels에서 제공되었습니다.
'공부' 카테고리의 다른 글
| Faster R-CNN이란? R-CNN 병목부터 RPN 데이터 흐름까지 (0) | 2026.09.22 |
|---|---|
| 배치 노멀라이제이션(Batch Normalization)이란? 학습과 추론의 차이까지 쉽게 이해하기 (0) | 2026.09.22 |
| AI 논문을 잘 읽는 방법: 연구 질문부터 Figure·Method까지 실전 순서 (0) | 2026.09.17 |
| YOLO를 공부하기 전에 알아야 할 상식과 기초 지식 2편: IoU부터 mAP와 NMS까지 (0) | 2026.09.17 |
| YOLO 공부 전 필수 기초 1편: 이미지 픽셀, 바운딩 박스, 클래스, 학습 데이터 이해하기 (0) | 2026.09.16 |