본문 바로가기

Computer Vision + Python/산업 응용 & 비즈니스활용 (전문가)

실전 리테일 분석: Python과 CCTV로 고객의 숨은 니즈를 파악하는 행동 분석 시스템 구축기

1. 들어가며: POS 데이터가 말해주지 않는 고객의 '진짜' 마음

오프라인 소매점(리테일) 운영자들의 가장 큰 고민은 무엇일까요? "오늘 얼마나 팔렸나"는 POS 시스템으로 알 수 있지만, **"고객이 왜 이 상품은 그냥 지나쳤을까?", "매장의 어떤 구역이 가장 붐비지만 실속은 없을까?"**와 같은 질문에는 답을 얻기 어렵다는 점입니다.

온라인 쇼핑몰이 마우스 클릭 하나하나를 추적하듯, 오프라인 매장에서도 고객의 발걸음을 데이터화할 수 있다면 어떨까요? 이번 포스팅에서는 Python과 컴퓨터 비전 기술을 활용하여 매장 내 CCTV 영상을 분석하고, 단순한 유동인구 카운팅을 넘어 고객의 체류 시간(Dwell Time)과 관심 구역(Hotspot)을 시각화하는 소비자 행동 분석 시스템 구축 과정을 공유합니다.

2. 문제 정의 및 접근 전략: '스쳐가는 사람' vs '머무는 고객'

초기 프로젝트의 가장 큰 난관은 '단순히 지나가는 사람'과 '물건에 관심을 갖고 머무는 사람'을 구분하는 것이었습니다. 기존의 단순 객체 탐지(Object Detection) 모델만으로는 이 둘을 구별할 수 없었습니다.

진정한 의미의 행동 분석을 위해 저는 다음과 같은 3단계 파이프라인을 설계했습니다.

  1. 정확한 탐지 (Detection): 복잡한 매장 배경과 다양한 조명 환경에서도 사람을 정확히 찾아냅니다. (YOLOv8 활용)
  2. 안정적인 추적 (Tracking): 감지된 사람이 프레임이 바뀌어도 동일 인물임을 인식하고 경로를 추적합니다. (DeepSORT 활용)
  3. 행동 분석 (Analytics): 추적된 경로 데이터를 바탕으로 특정 구역 내의 '체류 시간'을 계산하고 이를 히트맵으로 시각화합니다.

아래는 분석을 위해 설정한 실제 매장의 CCTV 테스트 환경 모습입니다.

Raw CCTV footage of a retail store
(▲ 그림 1. 분석 대상이 되는 의류 매장의 실제 CCTV 원본 영상)

3. 핵심 기술 구현: YOLOv8과 DeepSORT의 만남

시스템의 핵심은 '동일 인물 추적'입니다. 사람이 잠시 진열대 뒤로 사라졌다가 다시 나타나더라도 같은 고객으로 인식해야 정확한 동선 파악이 가능하기 때문입니다. 이를 위해 객체 탐지 모델 중 가장 빠르고 정확한 YOLOv8과, 칼만 필터(Kalman Filter) 기반의 추적 알고리즘인 DeepSORT를 결합했습니다.

구현 과정에서 가장 신경 쓴 부분은 'ID 스위칭(ID Switching)' 문제 해결이었습니다. 사람이 교차해서 지나갈 때 ID가 뒤바뀌는 현상을 막기 위해 DeepSORT의 파라미터(최대 코사신 거리 등)를 매장 환경에 맞춰 세밀하게 튜닝했습니다.

아래 이미지는 시스템이 실시간으로 매장 내 고객을 감지하고, 각 고객에게 고유 ID를 부여하여 동선을 추적하는 모습입니다.

Processed video showing bounding boxes and tracking IDs
(▲ 그림 2. 실시간 객체 탐지 및 추적 결과. 각 고객에게 고유 ID가 부여되고 이동 경로가 선으로 표시된다.)

4. 데이터 분석 및 시각화: '숨은 핫플레이스'를 찾아라

추적된 데이터는 그 자체로는 의미가 없습니다. 이를 비즈니스 인사이트로 바꾸는 과정이 필요합니다. 저는 매장 도면을 격자(Grid)로 나누고, 각 고객의 좌표 데이터가 특정 격자에 머문 시간을 누적하여 '체류 시간 히트맵(Dwell Time Heatmap)'을 생성했습니다.

단순히 사람이 많이 지나간 '통로'는 파란색으로, 고객이 발걸음을 멈추고 상품을 구경한 '관심 구역'은 붉은색으로 표시되도록 로직을 구성했습니다.

Heatmap visualization of dwell time
(▲ 그림 3. 고객의 체류 시간을 분석하여 생성한 매장 히트맵. 붉은색 영역은 고객이 오래 머문 '핫스팟'을 의미한다.)

5. 결론 및 비즈니스 임팩트: 데이터 기반 매장 운영의 시작

이렇게 구축된 시스템은 리테일 매장 운영에 있어 강력한 무기가 됩니다.

  • 상품 배치 최적화: 체류 시간은 길지만 구매 전환율이 낮은 구역(Conversion Gap)을 찾아내어 상품 진열을 바꾸거나 프로모션을 진행할 수 있습니다.
  • 매장 레이아웃 개선: 고객 동선이 막히는 병목 구간이나, 발길이 닿지 않는 '죽은 공간(Dead Zone)'을 파악하여 매장 구조를 효율적으로 변경할 수 있습니다.
  • 직원 배치 효율화: 시간대별로 붐비는 구역을 예측하여 직원을 효율적으로 배치함으로써 고객 응대 서비스의 질을 높일 수 있습니다.

이번 프로젝트를 통해, Python과 컴퓨터 비전 기술이 단순히 '신기한 기술'을 넘어 실제 비즈니스 현장의 문제를 해결하고 매출 증대에 기여할 수 있는 실질적인 도구임을 확인할 수 있었습니다. 다음 단계로는 이 데이터를 실제 POS 구매 데이터와 결합하여 더욱 정교한 '구매 전환 분석 모델'로 발전시킬 계획입니다.