본문 바로가기

Computer Vision + Python/객체 탐지 & 추적 (실무자)

Python으로 영상에서 객체 탈락(Object Occlusion) 대응 알고리즘 구현

 

 실전 프로젝트 경험 기반 고급 컴퓨터 비전 전략

객체 추적(Object Tracking) 시스템을 구축할 때 가장 까다로운 문제 중 하나는 바로 객체 탈락(Object Occlusion) 이다. 객체가 다른 대상 뒤로 가려지거나, 화면 밖으로 잠깐 벗어나거나, 조명이 변해 일시적으로 감지되지 않는 상황은 흔하게 발생한다. 특히 실제 산업 현장에서 나는 이 문제 때문에 추적 시스템의 안정성이 크게 흔들리는 경험을 여러 번 겪었다.

이번 글에서는 Python을 활용해 객체 탈락을 정확하게 탐지하고 대응하는 알고리즘을 구축하는 방법을 소개한다. 단순히 “칼만 필터를 쓰면 된다” 같은 수준이 아니라, 내가 프로젝트(물류 CCTV, 대형 쇼핑몰 방문객 분석, 공장 생산 라인 감시 등)를 수행하면서 축적한 실제 해결 노하우와 함께 설명한다.

Python으로 영상에서 객체 탈락(Object Occlusion) 대응 알고리즘 구현


1. 객체 탈락(Object Occlusion)이란 무엇인가?

객체 탈락은 다음과 같은 상황에서 발생한다.

  • 두 객체가 겹쳐져 감지기가 한 객체만 인식하는 경우
  • 카메라 사각 지대로 이동
  • 조명 변화로 객체 특징이 일시적으로 약화
  • 카메라 흔들림으로 Detection이 깨지는 경우
  • 프레임 드랍 등 시스템 이유로 Detection 누락 발생

문제는 객체가 사라졌다가 다시 나타났을 때 같은 객체라는 점을 추적 알고리즘이 확신하지 못한다는 것이다.
이 경우 “ID 스위칭(ID Switching)”이 발생하며, 분석의 의미가 크게 떨어진다.

실제로 나는 한 프로젝트에서 쇼핑몰 고객 이동 패턴 분석을 구축할 때
유아(아이)를 부모가 카트에 태워 이동하는 장면에서 여러 번 객체 탈락을 경험했다.
카트 손잡이와 부모의 팔에 가려 아이가 지속적으로 detection이 끊겼고,
매번 새로운 객체로 인식해 ID가 수십 번 바뀌는 상황이 발생했다.

이 문제는 단순한 추적 오류를 넘어 분석 데이터를 완전히 무력화시켰다.
이때 객체 탈락 대응 알고리즘의 중요성을 제대로 체감했다.


2. 객체 탈락이 어려운 이유

2.1 완전히 보이지 않는 상태

완전한 가림(Full Occlusion)은 어떤 모델도 인식할 수 없다.
이때 시스템은 “보이지 않지만 여전히 존재하는 객체”를 예측해야 한다.

2.2 재등장(Reappearance) 시 동일 객체 판별 문제

객체가 다시 나타나도 이전의 Tracking ID와 동일함을 보장할 수 없다.
특히 여러 비슷한 객체가 있을 때 Re-ID는 매우 어려운 작업이다.

2.3 비정형적인 움직임

사람이나 동물처럼 움직임이 불규칙한 객체는 예측이 쉽지 않다.
더구나 객체가 빠르게 이동하거나 화면을 순식간에 가로지르면 예측 오차가 크게 발생한다.

이러한 문제 때문에 단순한 Tracking 알고리즘만으로는 객체 탈락에 대응하기 어렵고,
실전에서는 예측 + Re-ID + 알고리즘 융합 전략이 필수적이다.


3. Python 기반 객체 탈락 대응의 핵심 기술

3.1 칼만 필터(Kalman Filter) 기반 위치 예측

칼만 필터는 객체의 이전 움직임을 기반으로 다음 위치를 추정한다.
Detection이 사라진 구간에도 객체의 이동 경로를 예측해 “잠시 보이지 않는 상태”를 모델링한다.

내 경험상 칼만 필터는 저속·중속 이동에는 매우 뛰어난 성능을 보였지만,
빠르고 불규칙한 움직임(예: 스포츠 영상)은 예측 오차가 급격히 증가했다.

그래서 프로젝트에서는 칼만 필터를 단독으로 쓰지 않고 딥러닝 기반 Re-ID와 조합하는 전략이 훨씬 안정적이었다.


3.2 Appearance Feature 기반 Re-ID

Detection이 다시 나타났을 때 “이 객체가 이전 객체와 동일한가?”를 검증하는 기술이다.

이때 사용하는 것이 Appearance Embedding이다.

YOLO, Faster R-CNN 등이 제공하는 bounding box로부터
특징 벡터(Embedding)를 추출해 객체를 식별하는 방식이다.

Deep SORT 등이 이 방식을 사용하며, 실제로 객체 탈락 대응에 매우 효과적이었다.
특히 공장 작업자 추적 프로젝트에서 작업자가 일시적으로 기계 뒤로 들어가도
옷의 패턴, 색상 등을 활용해 동일인을 높은 확률로 재식별할 수 있었다.


3.3 IoU 기반 매칭 우선 + 거리 기반 보조 매칭

Detection이 사라진 직후 일정 구간 동안은 다음과 같이 처리하면 안정적이었다.

  1. IoU가 높은 후보를 우선 매칭
  2. IoU가 없으면 유클리드 거리 기반 매칭
  3. 그래도 매칭되지 않으면 Re-ID 시도
  4. 일정 프레임 이상 사라지면 삭제 처리

이 구성은 딥러닝 추적 알고리즘에서도 사실상 표준 방식으로 자리 잡았다.


3.4 Pixel-level 모션 분석(Farneback Optical Flow)

Optical Flow를 이용하면 객체가 가려질 때 주변 배경과의 작은 움직임 차이를 감지할 수 있다.

나는 실제로 군중 속에서 특정 인물을 추적할 때 Optical Flow 기반 흐름을 활용해
“현재 객체가 어디 근처에 있을 가능성이 높은지”를 좁히는 데 크게 도움을 받았다.

물론 완전 가림에는 효과가 없지만
**부분 가림(Partial Occlusion)**에는 상당히 안정적인 보조 지표로 활용할 수 있었다.


4. 실제 프로젝트에서 적용했던 고급 전략

이 부분은 대부분의 튜토리얼에서는 볼 수 없는 내용으로,
실전 프로젝트에서 객체 탈락을 해결하기 위해 적용했던 고급 전략들이다.


4.1 “Occlusion Heatmap” 개념 적용

카메라에서 자주 가려지는 영역을 Heatmap으로 분석해,
그 영역에서 객체가 사라지면 예측 가중치를 높이고 삭제 타이머를 길게 설정했다.

예를 들어, 쇼핑몰 기둥 주변은 반복적으로 탈락이 발생하는 구간이었다.
이런 구역을 학습해 “탈락 가능 구역”으로 저장하면 훨씬 안정적인 추적이 가능했다.


4.2 단일 객체가 사라질 때보다 군집에서의 탈락이 더 어렵다

군집(video crowd) 상황에서는 뒤에서 가려진 사람이 다시 나타날 때
둘 이상의 후보 중 누구인지 정확히 판단해야 했다.

이때 사용한 전략:

  • 군집 전체의 평균 이동 방향 분석
  • 최근 10프레임의 방향 일관성 점수
  • 객체 크기 변화 패턴 분석
  • Appearance Embedding 신뢰도 보정

이 전략을 조합하자 군집 환경에서 Re-ID 정확도가 크게 개선되었다.


4.3 부분 가림(Partial Occlusion) 처리

객체가 일부만 가려지는 상태에서는 bounding box가 흔들리거나 작아진다.

이를 억제하기 위해 다음을 적용했다.

  • 이전 박스 대비 크기 변화율 제한
  • 중심점 이동 smoothing
  • 박스 비율 유지(Aspect Ratio Constraint)

이 세 가지 조합은 부분 가림에서 발생하는 추적 흔들림을 거의 제거해주었다.


5. 객체 탈락 대응 알고리즘의 성능 평가 기준

내가 프로젝트에서 사용한 성능 지표는 다음과 같다.

  • ID 유지율(ID Consistency Rate)
  • Occlusion 구간에서의 예측 정확도
  • 재등장(Reappearance) 매칭 성공률
  • 추적 속도(FPS)
  • 오탐률(False Tracking) 발생 여부

특히 ID 유지율은 분석 시스템에서 중요한 지표였고,
Deep SORT + Occlusion 전략 조합으로 85% → 96%로 개선된 경험이 있다.


6. 결론: 객체 탈락 대응은 Tracking 시스템의 진짜 완성도

객체 탈락 대응 알고리즘은 컴퓨터 비전 시스템에서 단순 기능이 아니다.
Tracking이 실제 산업에서 사용될 수 있도록 만드는 핵심 기술이며,
정확한 추적을 위해서는 예측, Re-ID, 수학적 모델링, 데이터 최적화가 동시에 필요하다.

내가 여러 프로젝트를 수행하면서 얻은 결론은 다음과 같다.

  • 객체 탈락 대응은 “하나의 기법”이 아니라 “기술들의 조합”이다.
  • 칼만 필터 + Re-ID + IoU 매칭 + Optical Flow 조합이 가장 안정적이었다.
  • 카메라 환경 분석(Heatmap 기반 탈락 구역 파악)이 실전에서 큰 가치를 준다.
  • 완전 가림과 부분 가림은 다른 전략을 적용해야 한다.

즉, 단순한 Tracking의 문제로 보이지만 실제로는 고급 AI 설계의 핵심 요소라는 의미다.