공부

YOLO란? 핵심 아이디어와 객체 탐지 데이터 흐름 쉽게 이해하기

whidam 2026. 9. 23. 13:01

안녕하세요!
사진 속 물체를 컴퓨터는 어떻게 찾아낼까요?
자동차와 사람의 위치까지 빠르게 알아내는 방법이 있습니다.

그 중심에 자주 등장하는 기술이 YOLO입니다.
이름의 뜻부터 실제 데이터 흐름까지 차근차근 살펴보겠습니다.

YOLO란 무엇일까?

YOLO는 You Only Look Once의 약자입니다.
이미지를 한 번의 신경망 처리로 분석한다는 뜻입니다.

여기서 한 번 본다는 말은 픽셀을 한 번만 읽는다는 뜻이 아닙니다.
하나의 신경망 순전파로 탐지 결과를 예측한다는 의미입니다.

순전파는 입력 데이터가 신경망의 층을 차례로 지나는 과정입니다.
그 결과 물체의 종류와 위치에 관한 숫자가 출력됩니다.

YOLO가 해결하는 대표 과제는 객체 탐지입니다.
이미지 안에서 무엇이 어디에 있는지를 함께 찾습니다.

이미지 분류와 객체 탐지의 차이

이미지 분류는 사진 전체에 하나의 이름을 붙이는 작업입니다.
강아지 사진을 보고 강아지라고 답하는 것이 한 예입니다.

객체 탐지는 사진에 있는 여러 물체를 각각 구분합니다.
강아지와 공을 찾고 각 물체의 위치까지 표시합니다.

물체의 위치는 보통 사각형으로 나타냅니다.
이 사각형을 바운딩 박스라고 부릅니다.

사진: Pexels 의 Ron Lach

YOLO의 핵심 아이디어

초기 객체 탐지 방식은 후보 영역을 먼저 골라내곤 했습니다.
그다음 각 영역을 별도로 분류하는 과정이 필요했습니다.

후보 영역이 많으면 비슷한 계산이 반복될 수 있습니다.
정확한 탐지가 가능해도 처리 시간이 길어지기 쉬웠습니다.

YOLO는 위치와 종류를 하나의 예측 문제로 묶었습니다.
이미지 전체의 특징을 공유하며 여러 물체를 동시에 찾습니다.

이를 원스테이지 탐지 방식이라고 합니다.
후보 생성과 분류를 별도 단계로 크게 나누지 않는 구조입니다.

이 설계는 반복 계산을 줄이고 병렬 처리를 활용하기 좋습니다.
그래서 YOLO 계열은 빠른 탐지 모델로 발전할 수 있었습니다.

객체 탐지 데이터는 어떻게 흐를까?

YOLO의 흐름은 카메라 사진을 정리하는 과정과 비슷합니다.
입력 준비, 특징 추출, 예측, 결과 정리 순으로 볼 수 있습니다.

1단계: 입력 이미지 준비

먼저 이미지를 모델이 요구하는 크기와 형식으로 바꿉니다.
픽셀 값의 범위를 조정하는 정규화도 수행할 수 있습니다.

크기를 바꿀 때 가로세로 비율을 유지하기도 합니다.
남는 부분에는 여백을 넣는 레터박스 방식이 자주 쓰입니다.

전처리 방법은 학습 때 사용한 설정과 맞아야 합니다.
설정이 다르면 박스 위치나 정확도에 영향을 줄 수 있습니다.

2단계: 이미지 특징 추출

신경망은 픽셀에서 선과 모서리 같은 특징을 찾습니다.
층이 깊어지면 바퀴나 얼굴처럼 복잡한 형태를 파악합니다.

이 역할을 맡는 부분을 보통 백본이라고 부릅니다.
백본은 입력 이미지를 유용한 특징 지도로 변환합니다.

특징 지도는 원본을 압축한 정보판과 비슷합니다.
위치와 형태에 관한 중요한 단서가 그 안에 담깁니다.

3단계: 크기가 다른 특징 결합

사진 속 물체의 크기는 모두 같지 않습니다.
멀리 있는 사람은 작고 가까운 자동차는 크게 보입니다.

여러 해상도의 특징을 섞는 부분을 넥이라고 부르기도 합니다.
작은 물체와 큰 물체를 함께 찾는 데 도움을 줍니다.

다만 모든 YOLO 모델 버전이 같은 넥을 쓰지는 않습니다.
세대와 구현에 따라 결합 방법과 구성 요소가 달라집니다.

4단계: 위치와 종류 예측

마지막 예측 부분은 흔히 탐지 헤드라고 부릅니다.
헤드는 물체의 위치와 종류에 관한 값을 출력합니다.

위치는 바운딩 박스의 좌표나 크기로 표현됩니다.
구체적인 좌표 표현법은 모델 설계에 따라 달라집니다.

종류 예측에는 클래스 확률 또는 클래스 점수가 사용됩니다.
예를 들어 사람, 자전거, 자동차의 가능성을 계산합니다.

클래스 점수와 실제 확률은 엄밀히 다를 수 있습니다.
활성화 함수와 학습 방식에 따라 해석이 달라지기 때문입니다.

일부 구조는 물체가 존재할 가능성도 따로 예측합니다.
이를 객체성 점수 또는 오브젝트니스라고 부릅니다.

5단계: 겹치는 예측 정리

모델은 같은 물체 주변에 여러 박스를 만들 수 있습니다.
따라서 겹친 후보를 정리하는 후처리가 필요합니다.

대표적인 방법은 비최대 억제, 즉 NMS입니다.
점수가 높은 박스를 남기고 많이 겹친 후보를 줄입니다.

일부 최신 설계는 후처리 의존성을 줄이기도 합니다.
그러므로 NMS가 모든 YOLO에 필수라고 단정할 수는 없습니다.

최종 결과에는 박스 좌표와 클래스 이름이 포함됩니다.
신뢰도 점수도 함께 표시되는 경우가 많습니다.

쉬운 예시로 전체 흐름 연결하기

도로 사진 한 장이 YOLO 모델에 들어간다고 가정하겠습니다.
사진에는 보행자 한 명과 자동차 두 대가 있습니다.

먼저 사진의 크기와 픽셀 값이 입력 형식에 맞춰집니다.
다음으로 백본이 도로와 사람, 차량의 특징을 추출합니다.

여러 크기의 특징이 결합된 뒤 탐지 헤드로 전달됩니다.
헤드는 물체별 바운딩 박스와 클래스 점수를 예측합니다.

겹치는 박스를 정리하면 세 개의 주요 결과가 남습니다.
보행자 한 명과 자동차 두 대의 위치가 표시됩니다.

이 과정은 한 번의 신경망 실행 안에서 함께 처리됩니다.
이것이 YOLO라는 이름에 담긴 핵심 생각입니다.

YOLO는 왜 빠른가?

첫 번째 이유는 원스테이지 방식의 단순한 흐름입니다.
영역마다 별도의 분류기를 반복 실행할 필요가 적습니다.

두 번째 이유는 이미지 전체의 특징을 공유하기 때문입니다.
한 번 만든 특징 지도로 여러 물체를 함께 예측합니다.

세 번째 이유는 연산 장치에 맞춘 구조 개선입니다.
합성곱과 행렬 연산은 GPU에서 병렬로 처리하기 좋습니다.

모델 경량화와 연산량 조절도 속도에 영향을 줍니다.
작은 모델은 자원이 제한된 기기에서 유리할 수 있습니다.

추론 속도를 볼 때 주의할 점

추론은 학습된 모델로 실제 예측을 만드는 과정입니다.
추론 속도는 YOLO 모델을 고를 때 중요한 기준입니다.

하지만 모델 이름만 보고 속도를 비교하면 곤란합니다.
입력 크기와 장치, 정밀도 설정이 결과를 크게 바꿉니다.

한 장씩 처리하는지 묶어서 처리하는지도 확인해야 합니다.
전처리와 후처리를 측정에 포함했는지도 중요합니다.

FPS는 1초에 처리한 프레임 수를 뜻합니다.
지연 시간은 한 입력의 결과가 나올 때까지 걸린 시간입니다.

두 수치는 관련이 있지만 같은 개념은 아닙니다.
실시간 서비스는 평균뿐 아니라 지연의 흔들림도 봐야 합니다.

모든 YOLO가 같은 구조는 아니다

YOLO는 단 하나의 고정된 설계도를 뜻하지 않습니다.
시간이 흐르면서 여러 연구팀과 개발자가 계열을 확장했습니다.

초기 YOLO는 이미지를 격자 형태로 나누어 설명했습니다.
각 영역이 박스와 클래스 정보를 예측하는 방식이었습니다.

이 설명은 기본 아이디어를 이해하는 데 여전히 유용합니다.
다만 모든 후속 모델에 그대로 적용해서는 안 됩니다.

세대가 바뀌면서 앵커 박스를 사용한 구조가 등장했습니다.
앵커는 박스의 초기 모양을 돕는 기준 틀입니다.

이후에는 앵커 없이 위치를 예측하는 방식도 널리 쓰였습니다.
이를 앵커 프리 탐지라고 부릅니다.

분류와 박스 예측을 한 헤드에서 처리하기도 합니다.
반대로 두 경로를 나눈 디커플드 헤드도 사용됩니다.

손실 함수와 학습용 데이터 배정 방식도 발전했습니다.
작은 물체와 겹친 물체를 다루는 방법 역시 달라졌습니다.

따라서 특정 최신 모델 버전의 구조를 배웠다고 해서
그 구조가 YOLO 전체를 대표한다고 보면 안 됩니다.

모델 버전을 고를 때 확인할 항목

같은 YOLO 이름 아래에도 서로 다른 구현이 존재합니다.
먼저 공식 문서와 코드 저장소의 출처를 확인해야 합니다.

지원하는 작업과 입력 형식도 살펴봐야 합니다.
탐지 외에 분할이나 자세 추정을 지원할 수도 있습니다.

정확도 수치는 같은 데이터와 조건에서 비교해야 합니다.
평가 데이터나 이미지 크기가 다르면 공정한 비교가 아닙니다.

배포 환경에서 지원되는 변환 형식도 중요합니다.
사용 목적에 맞는 라이선스인지도 반드시 확인해야 합니다.

YOLO는 어떻게 학습할까?

학습에는 물체의 종류와 위치가 표시된 자료가 필요합니다.
이처럼 정답을 붙인 자료를 라벨 데이터라고 합니다.

각 물체에는 클래스 이름과 바운딩 박스가 기록됩니다.
모델은 자신의 예측을 이 정답과 비교합니다.

예측 차이는 손실이라는 숫자로 계산됩니다.
학습 과정은 손실이 줄어드는 방향으로 가중치를 바꿉니다.

사진을 뒤집거나 색을 바꾸는 증강도 활용할 수 있습니다.
다양한 상황을 만들어 과도한 암기를 줄이는 방법입니다.

좋은 모델 구조만으로 높은 성능이 보장되지는 않습니다.
라벨 품질과 데이터 구성이 실제 결과를 크게 좌우합니다.

YOLO의 장점과 한계

주요 장점

YOLO는 빠른 속도와 비교적 단순한 흐름이 강점입니다.
영상 분석과 실시간 감시에 활용하기 좋은 조건입니다.

자율주행 보조와 로봇 시각에도 적용할 수 있습니다.
공장에서는 제품이나 결함 후보를 찾는 데 쓰이기도 합니다.

다양한 크기의 모델이 제공되는 경우도 많습니다.
정확도와 처리 비용 사이에서 선택하기 편리합니다.

알아둘 한계

아주 작은 물체나 서로 심하게 겹친 물체는 어려울 수 있습니다.
어두운 환경과 흔들린 영상도 탐지에 영향을 줍니다.

학습 자료에 없던 환경에서는 성능이 낮아질 수 있습니다.
훈련과 현실 환경의 차이를 도메인 차이라고 부릅니다.

신뢰도 점수가 높다고 항상 정답인 것은 아닙니다.
중요한 분야에서는 사람이 확인하는 절차도 필요합니다.

얼굴이나 차량을 분석하면 개인정보 문제가 생길 수 있습니다.
기술 성능과 함께 법률 및 윤리 기준도 살펴야 합니다.

따라 해보는 짧은 연습

책상 위 사진을 한 장 떠올려 보세요.
컵, 휴대전화, 연필이 놓여 있다고 가정합니다.

먼저 탐지할 클래스 세 개를 종이에 적습니다.
각 물체의 바깥을 감싸는 사각형도 그려 봅니다.

그 사각형이 학습용 바운딩 박스가 됩니다.
컵이나 연필이라는 이름은 클래스 라벨이 됩니다.

이제 모델이 비슷한 박스를 여러 개 냈다고 생각해 보세요.
어떤 박스를 남길지 점수와 겹침 정도로 판단합니다.

마지막으로 처리 시간을 직접 비교해 봅니다.
입력 크기와 장치를 같게 해야 의미 있는 비교가 됩니다.

핵심 정리

YOLO는 위치와 종류를 한 흐름에서 예측하는 객체 탐지 계열입니다.
공유된 이미지 특징으로 여러 물체를 동시에 처리합니다.

입력 이미지는 전처리와 특징 추출을 거칩니다.
이후 헤드가 바운딩 박스와 클래스 확률 관련 값을 냅니다.

빠른 추론 속도는 원스테이지 설계와 연산 공유에서 나옵니다.
다만 실제 속도는 장치와 입력 조건을 함께 봐야 합니다.

YOLO의 모델 버전은 하나의 고정 구조가 아닙니다.
앵커와 헤드, 후처리 방식은 세대에 따라 변해 왔습니다.

버전 이름을 외우기보다 데이터 흐름을 먼저 이해해 보세요.
그러면 새로운 구조가 나와도 달라진 이유를 파악하기 쉽습니다.


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