본문 바로가기
AI/인공지능(CNN)

[인공지능] 딥러닝 객체 검출의 혁신, Yolo(You Only Look Once)

by Yoon_estar 2025. 10. 29.
728x90
반응형

개요

YOLO(You Only Look Once)는 실시간 객체 검출(Real-Time Object Detection) 분야를 혁신한 딥러닝 모델입니다. 기존의 객체 검출 방식들이 여러 단계를 거쳐 느리고 복잡했던 것과 달리, YOLO는 이미지 전체를 단 한 번의 신경망 연산으로 처리하여 압도적인 속도와 뛰어난 성능을 동시에 달성했습니다. 이는 자율 주행차, 지능형 CCTV, 드론 검사 등 실시간 응용 분야의 발전을 가속화하는 핵심 기술로 자리매김했습니다.

 

주제 개념

YOLO의 주제 개념은 통합 인식(Unified Detectoin) 입니다. 

 

대부분의 긱존 객체 검출 모델(Two-Stage Detector 예 : R-CNN)은 객체가 있을만한 위치를 먼저 제안(Proposal)하고, 그 후에 분류(Classification)를 수행하는 두 단계 과정을 거쳤습니다. YOLO는 이 두과정을 하나의 컨볼루션 신경망(CNN) 파이프라인으로 통합하여, 입력 이미지를 받으면 위치 정보와 클래스 정보를 동시에 출력합니다. 

 

용어 정리

  • You(당신) : 이 문맥에서는 YOLO 모델을 사용하는 사용자 또는 시스템 자체를 의미
  • Only(오직) : 단지, 오직 하나만을 의미하며, 이미지 분석 과정을 한 번만 수행한다는 점을 강조
  • Look(보다) : 이미지를 분석하고 인식하는 행위를 의미
  • Once(한 번) : 횟수를 의미하며 이미지 데이터를 신경망에 통과시키는 횟수가 단 한번이라는 것을 강조
용어 개념 설명
객체 검출(Object Detection) 이미지 내에서 특정 객체(예 : 사람, 자동차)의 위치를 경계 상자(Bounding Box)로 표시하고 종류(Class)를 식별하는 컴퓨터 비전 기술
경계 상자(Bounding Box) 이미지 속 객체의 위치와 크기를 나타내는 사각형 박스. 보통 중심 좌표(x,y), 너버(w), 높이(h)로 정의됩니다.
단일 신경망(Single Neural Network) 객체 제안(Proposal)과 분류(Classification)를 분리하지 않고, 전체 과정을 하나의 CNN 모델이 책임지는 구조입니다. (YOLO의 핵심)
실시간(Real-Time) 초당 처리할 수 있는 프레임 수(FPS)가 높아, 입력되는 비디오 스트림을 지연 없이 처리할 수 있는 속도를 의미합니다. 
비최대 억제(Non-Maximum Suppression, NMS) 하나의 객체에 대해 여러 개의 중복된 경계 상자가 예측될 때, 가정 정확도가 높은 상자 하나만을 최종 결과로 선택하는 후처리 과정입니다.

사용 사례 및 예시

사용 분야 적용 내용 예시
자율 주행차 도로 위 차량, 보행자, 신호등, 표지판 등을 실시간으로 감지하여 안전한 운행 경로를 판단합니다.  주행 중 갑자기 도로에 뛰어든 보행자를 0.01초 내에 감지하여 제동 시스템에 신호를 보냅니다. 
지능형 CCTV 특정 구역 내의 인원 수 카운트, 침입자 감지, 쓰러짐 등 위험 상황을 실시간으로 분석합니다.  공장 작업장에서 안전모를 착용하지 않은 작업자를 즉시 식별하여 경고를 보냅니다. 
드론 검사 송전탑, 풍력 발전기, 교량 등의 구조물을 촬영하며 미세한 균열이나 손상 부위를 빠르게 검출합니다. 드론이 비행하며 발전기 블레이드의 작은 손상을 실시간으로 찾아 기록합니다. 

이해를 위한 실생활 예시

YOLO를 이해하는 가장 좋은 실생활 비유는 능숙한 사람의 시야입니다.

기존 방식(R-CNN) : 책상 위의 물건(펜, 노트, 컵)을 찾을 때, 먼저 눈을 가늘게 뜨고 물건이 있을 법한 후보 영역을 여러번 제시한 다음, 그 영역을 하니씩 확대하여 이게 펜이 맞나 하고 판단하는 것과 같습니다. 

 

YOLO 방식 : 책상 위를 단 한 번에 훑어보는 순간, 당신의 뇌는 여기 펜, 저기 노트, 옆에 컵 이라고 동시에 인식하는 것과 같습니다. 뇌는 물체의 위치와 종류를 한 번의 시각 처리로 즉시 파악합니다. 

 

실제 작동 원리 및 예시

YOLO의 작동 원리는 이미지를 일련의 격자(Grid)로 나누고, 각 격자가 객체를 책임지도록 하는 것입니다. 

 

  • 입력 이미지 : 448 X 448 크기의 이미지를 입력으로 받습니다. 
  • 격자 분할(Gridding) : 이미지를 7 X 7 과 같이 S X S 크기의 격자로 나눕니다. 
  • 예측 수행(Prediction) : 각 격자 셀은 다음 정보를 포함하는 벡트를 출력합니다. 
    • 경계 상자 정보(B Box) : B개의 경계 상자(x,y,w,h)와 각 상자의 신뢰도 점수(Confidence Score)
    • 크래스 정보(Classed) : C 개의 클래스에 대한 조건부 확률(C차원)
    • 결과적으로 S X S X (B X 5 + C) 차원의 텐서(Tensor)가 출력됩니다. 
  • 최종 결과 도출 출력된 텐서에 NMS(비최대 억제)를 적용하여 중복된 상자를 제거하고 최종 객체 검출 결과를 도출합니다.

왜?

왜 사용하는가?

YOLO는 속도와 정확도의 균형(Speed-Accuracy Trade-off)이 매우 뛰어나기 때문에 사용합니다. 특히 실시간 처리가 필수적인 분야에서 다른 모델들보다 압도적인 성능을 제공합니다. 낮은 계산 자원으로도 높은 성능을 낼 수 있어 임베디드 시스템에서도 활용이 용이합니다. 

왜 필요한가?

현대 AI 응용 프로그램은 지연없는 의사 결정을 요구합니다. 자율 주행차에서 객체 인식이 1초만 지연되어도 치명적인 사고로 이어질 수 있습니다. YOLO는 이러한 시간 민감성(Time-sensitive) 요구사항을 충족시키기 때문에 필수적입니다.

언제 사용하는가?

  • 실시간 비디오 분석 : CCTV, 드론, 생산 라인 검사 등
  • 임베디드 장치 : GPU 자원이 제한적인 소형 장치(엣지 디바이스)에서 객체 검출을 해야할 때
  • 빠른 프로토타이핑 : 객체 검출 시스템을 빠르게 구현하고 테스트해야할 때

어떻게 사용할 것인가?

YOLO는 주로 파이토치(PyTorch)나 텐서플로우(TensorFlow)와 같은 딥러닝 프레임워크를 통해 구현되며, 미리 학습된(Pre-trained) 가중치를 사용하거나 사용자 정의 데이터셋으로 추가 학습(Fine-tuning)하여 사용합니다. 

YOLO

YOLO의 등장은 객체 검출 패러다임을 2단계(Two-Stage)에서 1단계(One-Stage)로 전환시킨 기념비적인 사건입니다. 

 

기존 2단계 모델이 정확도에 중점을 두었다면, YOLO는 속도와 효율성에 초점을 맞추면서도 준수한 정확도를 확보했습니다. 특히, YOLO는 객체를 검출할 때 이미지 전체를 보기 때문에, R-CNN 계열 모델이 저지르기 쉬운 배경 오인식(False Positive)을 줄이는 데 효과적입니다. 

이러한 효율성 덕분에 YOLO는 연구실을 넘어 실제 산업 현장에 가장 많이 적용된 객체 검출 모델 중 하나로 평가받고 있습니다.

버전별 특징

버전 출시 연도 주요 특징
YOLO v1 2016 최초 단일 신경망 기반 One-Stage Detector. 빠른 속도가 장점이나, 작은 객체 검출과 인접한 객체 검출에 취약함
YOLO v3 2018 Darknet-53 백본 네트워크 도입. FPN(Feature Pyramid Network) 개념을 도입하여 다양한 스케일의 객체 검출 능력이 향상됨. 객체 분류 손실 함수를 이진 교차 엔트로피(BCE)로 변경. 산업계에서 가장 널리 사용된 안정적인 버전 중 하나
YOLO v5 2020 PyTorch 기반으로 구현되어 사용 편의성이 대폭 향상됨. 다양한 모델 크기(s, m, l, x) 제공으로 자원 효율성을 높임. 빠른 학습 및 추론 속도를 보이며 인기를 얻음
YOLO v8 2023 Anchor-Free 구조 도입. 이전 버전보다 더 빠른 속도와 높은 정확도 제공. 객체 검출 외에도 세그멘테이션(Segmentation) 및 포즈 추정(Pose Estimation) 기능까지 통합하여 범용성이 극대화됨

 

반응형