106. 객체 탐지 (Object Detection) 기술
⚠️ 이 문서는 인공지능이 강아지 사진을 보고 "이건 99% 강아지다!"라고 단순히 이름만 맞추는 1차원적인 분류(Classification) 놀이를 넘어, 자율주행차가 길거리를 달릴 때 **"오른쪽 위(X:100, Y:200)에 보행자가 있고, 왼쪽 아래(X:50, Y:80)에 신호등이 있다"고 사진 속 수십 개의 물체들의 종류(Class)와 그 물체가 정확히 어디 있는지 '네모난 빨간 박스(Bounding Box)'를 쳐서 1초에 60번씩 좌표를 찝어내는 시각 지능의 궁극기인 '객체 탐지(Object Detection)'**를 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 기존의 AI가 풀던 '무엇(What)'이라는 질문에, '어디에(Where)'라는 극강의 난이도 높은 퀘스트를 하나 더 추가한 하이브리드 미션이다.
- 가치: 이 기술이 없으면 테슬라 자율주행, 공항의 얼굴 인식 CCTV, 공장 컨베이어 벨트의 불량품 자동 검수 로봇은 단 한 대도 굴러가지 않는다. 현대 AI가 현실 세계 물리(Physical) 공간에 직접 개입하게 만들어 준 눈(Eye) 그 자체다.
- 기술 체계: 사진 속 모든 구역을 촘촘히 잘라 "여기 고양이 있냐?"고 무식하게 물어보는 **2-Stage 방식(R-CNN 계열, 정확하지만 굼벵이)**과, 사진을 한 방에 팍 째려보고 "저기 고양이, 저기 개!"라고 직관적으로 뱉어내는 **1-Stage 방식(YOLO 계열, 정확도는 쪼금 떨어져도 초음속)**이 세상을 양분하고 있다.
Ⅰ. 두 마리 토끼 잡기: 분류(Classification) + 위치(Localization)
이름만 맞추는 건 어린애 장난이다. 총을 쏘려면 정확한 좌표(X, Y)를 불러라.
- 기존 분류(Classification) 모델의 한계:
- 어제 배운 ResNet 같은 모델에 '강아지와 고양이가 같이 있는' 사진 1장을 넣는다.
- AI는 마지막 출력 층(Softmax)이 1개뿐이므로, 멘붕에 빠진다. "어... 개 50%? 고양이 50%?" 결국 가장 많이 차지하는 물체 1개만 답으로 내뱉고 끝난다.
- 자율주행차가 이렇게 작동하면 옆에 있는 자전거를 인식 못 해 사람을 쳐버린다.
- 객체 탐지(Object Detection)의 두 가지 출력값:
- 이 미션을 깨려면 AI의 머리(출구)를 2개로 찢어야 한다.
- 출구 1 (분류, Classification): "저 네모 박스 안의 물체는 98% 확률로 '사람'이다." (원-핫 인코딩 확률값 출력)
- 출구 2 (회귀, Bounding Box Regression): "그 사람의 위치는 모니터 좌상단 기준 X:150, Y:300이고, 네모 박스의 가로(W)는 50, 세로(H)는 120이다." (연속된 4개의 숫자 좌표값 예측)
- IoU (Intersection over Union) 평가:
- AI가 빨간 네모 박스(예측)를 그렸는데 이 박스가 정답인지 어떻게 채점할까?
- 사람이 미리 쳐둔 파란 정답 박스(Ground Truth)와 AI가 친 빨간 박스(Prediction)를 겹쳐본다. **"두 박스가 겹친 면적 $\div$ 두 박스의 전체 합집합 면적"**의 비율을 구한다. 이 IoU 점수가 0.5(50%)를 넘으면 "오, 위치 대충 잘 맞췄네!" 하고 합격(True Positive) 도장을 찍어준다.
📢 섹션 요약 비유: 기존 분류(Classification) 모델은 방 밖에서 냄새만 맡고 "이 방 안에 치킨이 있다!"라고 외치는 1차원 탐지견입니다. 객체 탐지(Object Detection) 모델은 특수 부대 스나이퍼입니다. 문을 박차고 들어가서 "치킨은 거실 탁자 위(X:10, Y:20) 좌표에 놓여있고, 피자는 냉장고 앞(X:40, Y:10) 좌표에 놓여있다. 타겟 확인!" 이라며 레이저 포인터(바운딩 박스)로 정확한 사격 위치까지 찝어주는 완벽한 시각 지능입니다.
Ⅱ. R-CNN의 진화 (2-Stage 방식): 꼼꼼하지만 느려 터진 굼벵이
사진 1장을 2,000조각으로 쪼개서 하나하나 검사하면 완벽하지만 날이 샌다.
- 무식한 시작: 슬라이딩 윈도우 (Sliding Window):
- "고양이가 어디 있는지 모르니, $10 \times 10$짜리 돋보기를 들고 사진을 1픽셀씩 1만 번 이동시키며 '여기 고양이 있냐?'를 1만 번 반복해서 물어보자!" $\rightarrow$ 컴퓨터 CPU가 불타고 사진 1장 검사하는 데 10분이 걸렸다. 폐기.
- R-CNN (Region-based CNN)의 등장 (2014):
- "무식하게 1만 번 다 찾지 말고, '물체가 있을 법한 찌꺼기 덩어리(Region Proposal)'를 먼저 2,000개만 핀셋으로 뽑아내자! (1단계)"
- 뽑아낸 2,000개의 잘린 이미지 조각을 하나하나 CNN 모델에 밀어 넣고 "이게 개냐 고양이냐?"를 판별**(2단계)** 시켰다.
- 정확도는 당시 세계 최고를 찍었지만, 여전히 사진 1장을 2,000번 CNN에 통과시키려니 사진 1장 판독에 40초나 걸렸다. 자율주행차에 달면 1미터 가다가 차가 벽에 박는다.
- Fast R-CNN과 Faster R-CNN (속도 혁명):
- "2,000개 조각을 왜 CNN에 일일이 넣어? 원본 사진 1장 전체를 통째로 CNN에 1번만 확 넣고, 거기서 나온 특징 맵(Feature Map) 위에서 2,000개 조각 위치를 찾아내서 자르자!" (Fast R-CNN)
- 한발 더 나아가, 2,000개 위치를 찾는 짓마저 별도의 딥러닝 뇌(RPN, Region Proposal Network)로 대체하여 속도를 비약적으로 끌어올렸다 (Faster R-CNN). 마침내 초당 5장(5 FPS) 처리가 가능해지며 2-Stage 방식의 황제로 군림했다.
📢 섹션 요약 비유: 월리(고양이)를 찾아라 게임입니다. 무식한 방법은 책 전체를 1제곱센티미터씩 돋보기로 다 훑는 짓(슬라이딩 윈도우)입니다. R-CNN은 대충 눈에 띄는 사람 머리통(후보군) 2,000개를 가위로 오려낸 다음, 그 2,000개 종이 조각을 하나하나 현미경으로 보며 "얘가 월리인가?" 확인하는 방식입니다. 정확하게 월리를 찾아내지만, 2,000장을 검사하느라 시간이 너무 오래 걸려 자율주행 실시간 감시용으로는 탈락(속도의 한계)하는 고성능 굼벵이입니다.
Ⅲ. 욜로(YOLO)의 혁명 (1-Stage 방식): 초음속 스나이퍼
You Only Look Once. 사진을 단 한 번만 째려보고 직관적으로 총을 쏴라.
- YOLO (You Only Look Once)의 파괴적 발상 (2015):
- 조셉 레드몬(Joseph Redmon)이 딥러닝 세상을 뒤집어 놓은 미친 논문이다.
- "후보군 2,000개를 왜 쪼개서 찾아? 그냥 인간이 사진 1장 스윽 보고 '어 저기 강아지 있네' 하는 것처럼, 사진을 딱 1번만 딥러닝 모델에 통과(Forward)시키고, 뇌세포 출구에서 분류(이름)와 바운딩 박스(위치 좌표)를 한 큐에 뱉어내라!"
- YOLO의 1단계 작동 원리 (그리드 나누기):
- 사진에 눈에 보이지 않는 $7 \times 7$ 바둑판 격자(Grid)를 투명하게 친다.
- 각 바둑판 칸(Cell) 담당자에게 지시한다. "네 칸 안에 물체의 '정중앙(Center)' 점이 들어있으면, 네가 책임지고 그 물체의 테두리 박스(Bounding Box) 좌표를 추측해서 그려내고 이름이 뭔지 맞춰!"
- 49개의 칸이 각자 박스를 2개씩 마구잡이로 쏟아내어(총 98개) 화면이 박스로 더러워진다. 마지막에 쓸데없이 겹쳐있는 박스들은
NMS(Non-Maximum Suppression)라는 지우개로 싹 지워버리고 가장 확실한 1개의 빨간 박스만 남긴다.
- 결과: 초광속(Real-time)의 시대 개막:
- 2,000번 쪼개는 짓을 안 하고 한 방에 행렬 계산을 끝내버리므로, 속도가 초당 45장(45 FPS), 가벼운 버전은 초당 155장(155 FPS)이라는 미친 빛의 속도가 나와버렸다.
- 비록 작은 물체(멀리 있는 새 무리)를 뭉개버려 정확도가 2-Stage 모델(Faster R-CNN)보다 2~3% 떨어졌지만, "일단 차가 부딪히기 전 0.1초 만에 사람을 발견해서 브레이크를 밟는다"는 자율주행의 최우선 목적에 완벽히 부합하여 현재 전 세계 산업 현장(CCTV, 로봇)의 99%를 YOLO가 장악하게 되었다. (현재 YOLOv11 이상까지 진화 중)
📢 섹션 요약 비유: YOLO의 철학은 위대합니다. "You Only Look Once (너는 오직 한 번만 본다)." R-CNN(2-Stage)이 사진을 가위로 2,000조각 잘라서 하나하나 돋보기로 보는 꼼꼼한 범죄 과학 수사대라면, YOLO(1-Stage)는 경험 많은 베테랑 사냥꾼입니다. 숲속(사진)을 딱 한 번 스윽(Once) 째려보는 그 찰나의 순간 직관적으로 뇌가 반응하여 "저기 왼쪽 나무에 멧돼지 1마리, 오른쪽 풀숲에 토끼 1마리!"라고 위치와 종류를 동시에 갈겨버리며 0.1초 만에 총을 쏘아버리는 초광속 직관의 마법입니다.