공부

SSD(Single Shot Detector)란? 구조와 탐지 원리 쉽게 이해하기

whidam 2026. 9. 22. 23:21

안녕하세요!
사진 속 물체를 실시간으로 찾는 기술이 궁금하셨나요?
이번 글에서는 대표적인 객체 탐지 모델인 SSD를 쉽게 살펴봅니다.

이름에 들어 있는 Single Shot의 뜻부터 시작합니다.
특징 맵과 기본 박스가 어떻게 연결되는지도 차근차근 설명합니다.

SSD는 무엇을 하는 모델일까?

SSD는 Single Shot Detector의 줄임말입니다.
이미지에서 객체의 종류와 위치를 동시에 예측하는 모델입니다.

여기서 객체는 사람, 자동차, 강아지처럼 찾으려는 대상을 뜻합니다.
위치는 대상을 둘러싼 직사각형으로 표현합니다.

이 직사각형을 바운딩 박스라고 부릅니다.
모델은 박스와 함께 사람이나 자동차 같은 분류 결과도 냅니다.

이름이 같아도 저장 장치인 솔리드 스테이트 드라이브와는 다릅니다.
이 글에서 SSD는 객체 탐지 알고리즘을 가리킵니다.

왜 Single Shot이라고 부를까?

Single Shot은 신경망을 한 번 통과하며 탐지 예측을 만든다는 뜻입니다.
이미지를 여러 번 촬영한다는 의미는 아닙니다.

기존의 2단계 탐지 모델은 먼저 물체 후보 영역을 찾습니다.
그다음 각 후보의 종류와 정확한 위치를 판단합니다.

반면 SSD는 후보 생성과 최종 분류를 별도 단계로 나누지 않습니다.
한 번의 순전파에서 클래스 점수와 박스 위치를 함께 예측합니다.

단일 단계 탐지란 이런 방식을 말합니다.
영역 제안과 영역별 분류를 하나의 신경망 흐름에 통합합니다.

사진: Pexels 의 Geancarlo Peruzzolo

다만 모든 처리가 문자 그대로 한 단계에서 끝나는 것은 아닙니다.
신경망의 출력 뒤에는 겹친 박스를 정리하는 후처리가 필요합니다.

대표적인 후처리는 비최대 억제, 즉 NMS입니다.
같은 객체를 가리키는 박스 중 점수가 높은 것을 중심으로 남깁니다.

SSD의 전체 처리 흐름

먼저 입력 이미지를 백본 신경망에 넣습니다.
백본은 이미지에서 선, 질감, 형태 같은 특징을 뽑는 부분입니다.

입력이 여러 합성곱 층을 지나면 특징 맵이 만들어집니다.
특징 맵은 객체를 판단하기 좋은 정보로 바뀐 숫자 배열입니다.

SSD는 하나의 특징 맵만 사용하지 않습니다.
해상도가 서로 다른 여러 특징 맵에서 탐지를 수행합니다.

다중 크기 특징 맵이 필요한 이유

사진에는 크기가 다른 객체가 함께 등장합니다.
가까운 자동차는 크지만 멀리 있는 자동차는 작게 보입니다.

해상도가 높은 초기 특징 맵에는 촘촘한 위치 정보가 남아 있습니다.
작고 세밀한 대상을 찾는 데 비교적 유리합니다.

깊은 층의 특징 맵은 가로와 세로 크기가 더 작습니다.
대신 넓은 영역을 보며 객체의 의미를 파악하기 좋습니다.

따라서 작은 특징 맵은 큰 객체를 담당하기에 적합합니다.
큰 특징 맵은 상대적으로 작은 객체를 세밀하게 살펴봅니다.

이처럼 여러 해상도에서 예측하는 구조를 다중 크기 특징 맵이라고 합니다.
하나의 확대경 대신 배율이 다른 확대경을 함께 쓰는 셈입니다.

기본 박스는 왜 필요할까?

특징 맵만 준비했다고 바로 객체 위치를 말할 수는 없습니다.
어떤 모양의 박스를 기준으로 예측할지 출발점이 필요합니다.

SSD는 특징 맵의 각 칸에 미리 정한 후보 박스를 배치합니다.
이를 기본 박스, 영어로 default box라고 부릅니다.

기본 박스는 앵커 박스라고도 불리는 기준 틀입니다.
실제 객체의 위치를 미리 안다는 뜻은 아닙니다.

각 칸에는 크기와 가로세로 비율이 다른 박스가 놓입니다.
정사각형뿐 아니라 가로로 길거나 세로로 긴 모양도 포함됩니다.

특징 맵과 기본 박스의 연결

해상도가 높은 특징 맵에는 작은 기본 박스를 주로 배치합니다.
해상도가 낮은 특징 맵에는 더 큰 기본 박스를 연결합니다.

이 구성 덕분에 크기가 다른 객체를 한 모델에서 다룰 수 있습니다.
다중 크기 특징 맵과 default box가 함께 작동하는 핵심입니다.

모델은 각 기본 박스마다 클래스 점수를 예측합니다.
그 안에 사람이나 자동차가 있을 가능성을 계산하는 것입니다.

동시에 기본 박스를 얼마나 옮기고 늘릴지도 예측합니다.
이 보정값을 적용하면 실제 객체에 가까운 박스가 만들어집니다.

학습할 때는 정답과 어떻게 연결할까?

학습 데이터에는 정답 객체의 종류와 박스가 표시되어 있습니다.
SSD는 기본 박스와 정답 박스가 얼마나 겹치는지 비교합니다.

겹침 정도는 보통 IoU라는 값으로 측정합니다.
두 박스의 교집합을 합집합으로 나눈 비율입니다.

정답과 잘 겹치는 기본 박스는 해당 객체의 학습 대상으로 연결됩니다.
나머지 다수는 배경 후보로 처리될 수 있습니다.

배경 박스가 지나치게 많으면 학습이 한쪽으로 치우칩니다.
원래 SSD는 어려운 배경 예시를 골라 사용하는 방법을 적용합니다.

SSD가 빠른 이유

SSD의 속도는 단순히 층이 적어서 나오는 결과가 아닙니다.
가장 큰 이유는 별도의 영역 제안 단계를 생략한 구조입니다.

이미지 전체에서 만든 특징을 합성곱 연산으로 공유합니다.
수많은 후보 영역을 하나씩 다시 계산할 필요가 줄어듭니다.

각 위치의 박스와 클래스 예측도 병렬로 처리하기 좋습니다.
그래서 실시간 처리가 중요한 작업의 후보가 될 수 있습니다.

실제 속도는 입력 크기와 백본, 하드웨어에 따라 달라집니다.
후처리 방식과 구현 최적화도 측정 결과에 영향을 줍니다.

작은 객체 탐지에서 생기는 한계

SSD는 여러 특징 맵을 사용하지만 모든 크기에 똑같이 강하지 않습니다.
특히 작은 객체를 놓치거나 위치를 부정확하게 잡을 수 있습니다.

신경망은 층을 지나며 특징 맵의 해상도를 줄입니다.
원본에서 몇 픽셀뿐인 객체 정보는 이 과정에서 약해질 수 있습니다.

초기 특징 맵은 위치 정보는 풍부하지만 의미 정보가 약할 수 있습니다.
작은 물체와 복잡한 배경을 구별하기 어려운 이유입니다.

정답 박스가 매우 작으면 기본 박스와 충분히 겹치기도 어렵습니다.
그러면 학습에 사용할 좋은 양성 예시가 부족해질 수 있습니다.

입력 해상도를 높이면 작은 대상의 정보가 더 남을 수 있습니다.
하지만 연산량과 메모리 사용량이 늘어나는 대가가 따릅니다.

작은 객체가 포함된 이미지를 확대해 학습하는 방법도 있습니다.
여러 층의 특징을 결합하는 개선 구조도 활용할 수 있습니다.

어떤 방법이 항상 최선이라고 단정할 수는 없습니다.
정확도와 속도, 장비 제한을 함께 보고 선택해야 합니다.

짧은 예시로 탐지 과정 따라가기

사람과 자동차가 있는 도로 사진을 SSD에 넣었다고 가정해 봅시다.
백본은 먼저 사진을 여러 단계의 특징 맵으로 바꿉니다.

각 특징 맵의 칸에는 다양한 기본 박스가 놓여 있습니다.
모델은 모든 박스의 클래스 점수와 위치 보정값을 출력합니다.

점수가 낮은 예측은 기준값에 따라 제거합니다.
그다음 NMS로 같은 대상을 가리키는 중복 박스를 정리합니다.

마지막에는 사람 박스와 자동차 박스가 남습니다.
각 박스에는 예측한 종류와 신뢰 점수가 함께 표시됩니다.

직접 확인하는 짧은 연습

종이에 큰 격자와 작은 격자를 하나씩 그려 보세요.
큰 격자에는 작은 박스, 작은 격자에는 큰 박스를 배치합니다.

그 위에 작은 컵과 큰 가방이 있다고 상상해 봅니다.
어느 격자와 박스가 각 물체에 더 잘 맞는지 골라 보세요.

컵에는 촘촘한 격자의 작은 박스가 잘 맞을 가능성이 큽니다.
가방에는 성긴 격자의 큰 박스가 더 자연스럽게 대응합니다.

이 연습이 SSD의 핵심 구조를 단순화한 모습입니다.
실제 모델은 이 작업을 많은 위치와 비율에서 동시에 수행합니다.


핵심 정리

SSD는 한 번의 신경망 순전파로 분류와 위치를 함께 예측합니다.
그래서 Single Shot Detector라는 이름이 붙었습니다.

다중 크기 특징 맵은 크기가 다른 객체를 나누어 담당합니다.
기본 박스는 각 위치에서 박스 예측을 시작할 기준을 제공합니다.

별도의 영역 제안과 반복 계산이 적어 속도에 유리합니다.
다만 작은 객체는 정보 손실과 박스 연결 문제로 놓치기 쉽습니다.

따라서 SSD를 선택할 때는 속도만 보면 안 됩니다.
대상 크기와 요구 정확도, 실행 장비까지 함께 확인해야 합니다.


일부 이미지는 Pexels에서 제공되었습니다.