DAMO-YOLO를 활용한 실시간 스마트폰 탐지 및 WebUI AR 시각화 구현

프로젝트 개요

알리바바 다모원(DAMO Academy)에서 공개한 DAMO-YOLO 모델을 기반으로 한 스마트폰 탐지 시스템은 실시간 비디오 스트림에서 모바일 기기의 위치를 정확하게 식별하고 AR 오버레이 기술로 시각화하는 솔루션이다. 이 시스템은 경량화와 고속 처리에 초점을 맞추어 연산 자원이 제한된 엣지 디바이스 환경에 최적화되어 있다.

시험장 감시, 중요 회의 중 디바이스 사용 모니터링, 운전 중 위반 단속 등 스마트폰 사용을 감지해야 하는 다양한 실무 환경에 즉시 적용할 수 있다. TinyNAS 기반의 아키텍처 탐색을 통해 연산 복잡도와 메모리 점유율을 획기적으로 낮추었으며, 단일 이미지 처리 속도 약 3.83ms, 정확도(AP@0.5) 88.8%의 성능을 달성하여 실시간 처리 요구사항을 충족한다.

핵심 기술 원리

DAMO-YOLO 아키텍처 특징

DAMO-YOLO는 모바일 및 엣지 환경에 특화된 객체 탐지 모델이다. 기존 YOLO 계열 모델 대비 모델 크기를 약 40% 축소하면서도 추론 속도를 2~3배 향상시켰다. 이러한 성능 개선은 신경망 아키텍처 탐색(NAS)을 통한 최적화, 학습 난이도에 따른 동적 레이블 할당 전략, 그리고 다중 스케일 특징 융합을 통한 소형 객체 탐지 능력 강화에서 비롯된다.

TinyNAS 최적화 기법

TinyNAS는 타겟 하드웨어의 연산 성능과 전력 소모를 사전에 예측하는 모델을 구축하여, 주어진 자원 예산 내에서 최적의 정확도를 달성하는 네트워크 구조를 탐색한다. 실제 디바이스에서의 반복적인 측정 없이도 효율적으로 아키텍처를 결정할 수 있어 탐색 효율성이 매우 높다.

AR 오버레이 파이프라인

AR 시각화는 크게 프레임 획득, 객체 추론, 좌표 변환, 렌더링 단계로 진행된다. 카메라 입력을 받아 DAMO-YOLO가 스마트폰의 위치를 탐지하면, 모델이 출력한 정규화된 바운딩 박스 좌표를 화면의 실제 픽셀 좌표로 변환한다. 이후 탐지된 영역에 AR 마커를 렌더링하고 원본 프레임과 합성하여 사용자에게 제공한다.

환경 구성 및 배포

시스템 요구사항

  • OS: Linux (Ubuntu 20.04 이상 권장)
  • Python: 3.9 이상
  • RAM: 4GB 이상
  • Storage: 200MB 이상 (모델 가중치 및 패키지 포함)
  • Camera: UVC 지원 USB 카메라 또는 RTSP 스트림

Jetson Nano, Raspberry Pi 4 등 엣지 보드에서의 구동도 검증되어 있다.

설치 및 실행

가상 환경을 생성하고 필요한 의존성을 설치한다. 모델 가중치는 최초 실행 시 자동으로 다운로드된다.

# 가상 환경 구성
python3 -m venv damo_env
source damo_env/bin/activate

# 패키지 설치
pip install torch torchvision torchaudio
pip install opencv-contrib-python gradio Pillow
pip install modelscope

# 웹 서버 실행
python3 main_server.py

서버가 기동되면 브라우저에서 http://localhost:7860으로 접속하여 인터페이스를 확인할 수 있다.

프로세스 관리

Supervisor를 활용한 데몬 관리 스크립트는 다음과 같다.

# 상태 확인
sudo supervisorctl status damo_phone_monitor

# 서비스 제어
sudo supervisorctl start damo_phone_monitor
sudo supervisorctl stop damo_phone_monitor
sudo supervisorctl restart damo_phone_monitor

로그는 /var/log/damo_monitor/ 경로에서 확인 가능하다.

WebUI 운용 가이드

인터페이스 구성

Gradio 기반의 웹 인터페이스는 세 가지 영역으로 나뉜다. 좌측은 파일 업로드, 드래그 앤 드롭, 클립보드 붙여넣기, 샘플 이미지 선택이 가능한 입력부이다. 중앙은 AR 오버레이가 적용된 탐지 결과 이미지를 출력하고, 우측은 탐지된 객체 수와 신뢰도 등의 통계 정보를 표시한다. 상단의 설정 패널에서 신뢰도 임계값과 AR 시각화 스타일을 실시간으로 조정할 수 있다.

실시간 탐지 workflow

웹 브라우저에서 서비스 주소에 접속한 후, 이미지 탐지는 파일을 업로드하면 즉시 실행된다. 실시간 비디오 탐지를 위해서는 '카메라 활성화' 버튼을 클릭하여 브라우저에 카메라 권한을 부여하면 된다. 시스템은 자동으로 프레임을 처리하고 빨간색 AR 바운딩 박스와 신뢰도 수치를 화면에 오버레이한다. 오탐지가 잦다면 임계값을 높이고, 누락이 발생하면 임계값을 낮추는 방식으로 파라미터를 튜닝한다.

성능 평가 및 분석

정적 이미지 테스트

책상 위에 놓인 두 대의 스마트폰이 담긴 이미지에서 각각 96.1%, 94.3%의 신뢰도로 탐지에 성공했다. 손에 쥐어져 일부가 가려진 상황에서도 89.5%의 신뢰도를 기록하여 부분 오클루전에 대한 강건성을 확인했다. 반면 화면 내 비율이 매우 작은 원거리 스마트폰의 경우 78.2%로 신뢰도가 하락하여, 입력 해상도 확보의 중요성을 시사한다.

실시간 비디오 스트림 테스트

카메라 모드에서는 디바이스를 들어 올리는 즉시 탐지가 이루어지며 AR 마커가 지연 없이 객체를 추적한다. 다중 인원 환경에서 최대 5~6대의 스마트폰을 동시에 안정적으로 탐지할 수 있었다. 조명 조건에 따라 실내 표준 조명에서 최적의 성능을 보였고, 극단적인 역광이나 저조도 환경에서는 정확도가 소폭 저하되었으나 서비스 가능한 수준을 유지했다.

벤치마크 수치

  • 정확도: AP@0.5 기준 88.8%
  • 추론 속도: CPU 환경 15~20ms, GPU 환경 3~5ms (최대 60FPS 처리 가능)
  • 리소스 점유: RAM 500MB~1GB, CPU 사용률 30~50%

기술적 이슈 및 해결 방안

실시간 처리 병목 해결

모바일 환경의 제한된 컴퓨팅 자원을 극복하기 위해 모델 가지치기(Pruning)와 양자화(Quantization)를 적용하여 연산량을 줄였다. 비디오 스트림 처리 시에는 프레임 스킵과 비동기 파이프라이닝을 도입하여 UI 지연 없이 처리 속도를 유지했으며, 동적 메모리 할당 기법을 통해 전체 메모리 사용량을 최소화했다.

탐지 정확도 향상

다양한 환경에 대응하기 위해 무작위 크롭, 색상 변조, 모션 블러 등의 데이터 증강 기법을 적용했다. 또한, 여러 구조의 탐지 모델을 앙상블하여 다수결 투표 방식으로 오탐지율을 낮추었고, 밀집된 객체의 탐지 누락을 방지하기 위해 NMS(Non-Maximum Suppression) 알고리즘의 IoU 임계값 파라미터를 세밀하게 조정했다.

크로스 플랫폼 호환성 확보

CPU, GPU, NPU 등 다양한 하드웨어 가속기를 지원하도록 추론 엔진을 추상화했다. Windows, Linux, Android 운영체제를 모두 지원하며, 클라이언트 사이드 인터페이스는 Chrome, Firefox, Safari 등 최신 브라우저에서 호환되도록 표준 웹 기술로 구현되었다.

태그: DAMO-YOLO TinyNAS Gradio object-detection Augmented-Reality

10월 3일 08:23에 게시됨