TL;DR
엣지 산업용으로 GPU 없이 결정적이고 초저지연인 비주얼 트래커를 구현하기 위해 YOLOX-nano 기반의 Global Search와 LightGBM 기반의 ROI Refinement로 구성된 두 단계 캐스케이드를 사용했다. 런타임은 Intel OpenVINO와 ONNX Runtime v1.24.1의 MULTI device profile 및 strict LATENCY hint를 적용해 최적화했으며, 결과로 Stage 1 약 37 FPS(약 27ms)와 ROI 단위 5–7ms를 달성해 국소 추적에서 120–180 FPS를 유지했다. 힙 할당을 3.42 MB로 고정하고 24/7 테스트에서 0.00% 메모리 누수를 보고했으며, 좌표는 EMA로 스무딩되어 Arduino Nano가 50 Hz로 서보를 인터폴레이션해 팬·틸트 장치를 정중앙에 유지했다.
주요 논점
GPU 없이도 실시간 산업용 추적을 달성할 수 있다는 주장이 핵심이었다. 구현은 YOLOX-nano로 전체 프레임을 스캔한 뒤 256×256 ROI에 대해 LightGBM으로 정밀 추적하는 두 단계 캐스케이드를 사용하고, OpenVINO/ONNX Runtime 설정으로 레이턴시를 최적화하는 방식이었다. 제출된 수치(약 37 FPS, 27ms; ROI 추적 5–7ms; 힙 3.42 MB; 바이너리 약 2.0 MB)는 CPU 전용으로도 결정적 성능과 장기 안정성을 확보할 수 있다는 근거가 된다.
하드웨어 BOM과 펌웨어는 공개했으나 핵심 런타임은 컴파일된 평가용 데모로만 배포되어 상업적 사용 시 라이선스가 필요하다는 점이 논쟁의 소지가 있었다. 이 구조는 재현 가능한 하드웨어 복제는 가능하게 하지만 런타임 내부 최적화 재현은 제한된다는 의미를 가진다. 공개된 구성 요소와 폐쇄형 바이너리의 병존은 재현성과 상업적 이용성 사이의 균형 문제를 야기한다고 볼 수 있다.
합의점 vs 논쟁점
논쟁점
- 핵심 런타임을 컴파일된 평가 데모 형태로만 제공하고 하드웨어 설계와 펌웨어만 오픈 소스로 공개한 결정이 논란의 핵심이었다. 이 선택은 개발자가 성능과 라이선스를 통제하려는 의도로 보이지만, 연구나 산업적 재현을 시도하는 이용자 입장에서는 동일한 추론 파이프라인을 완전히 재현하기 어렵게 만든다. 따라서 실용성은 인정되지만 재현 가능성과 상업화 허가 문제에서 의견이 갈릴 여지가 있다.
실용적 조언
- 엣지 CPU 환경에서 추적 성능을 높이려면 전체 프레임을 매번 처리하는 대신 두 단계로 계산을 분리하는 것이 유효하다. 먼저 640×640 입력으로 YOLOX-nano 같은 경량 검출기로 후보를 빠르게 찾고, 그 결과에 따라 동적 256×256 ROI를 잘라서 경량 분류기(LightGBM)를 돌리면 평균 레이턴시를 크게 낮출 수 있다. 이 방식은 국소화된 고빈도 추적에서 처리량과 정밀도를 동시에 확보하는 방법이다.
- 런타임 최적화 측면에서는 ONNX Runtime v1.24.1을 OpenVINO와 결합해 MULTI device profile과 strict LATENCY hint를 적용하면 장치별 실행 분배와 레이턴시 목표 달성이 용이하다. 또한 힙 할당을 고정하고 메모리 사용을 엄격히 제한하면 장시간 연속 가동 중 메모리 증식 위험을 줄일 수 있다. 이러한 조합은 24/7 가동 환경에서 결정적 동작을 확보하는 데 중요한 실무적 팁이다.
- 물리적 제어 루프에서는 센서 좌표에 EMA 필터를 적용해 입력 잡음을 완화한 뒤 마이크로컨트롤러 측에서 50 Hz로 인터폴레이션된 경로를 실행하는 것이 안정적이다. USB-Serial로 좌표를 전달하고 Arduino Nano에서 PCA9685 12-bit PWM을 통해 MG996R 서보를 구동하면 실시간 중심 유지가 가능하다. 이 흐름은 소프트웨어의 스무딩과 MCU의 일정 주기 제어가 결합되어 관성 있는 물체 추적에 효과적이다.
섹션별 상세
용어 해설
- 비주얼 트래킹(Visual tracking)
- — 엣지 환경에서 연속 프레임을 받아 특정 객체의 위치를 실시간으로 추적하는 작업으로, 입력 영상에서 후보를 검출하고 위치를 갱신하는 루프를 반복한다. 본 사례는 전체 프레임에서 목표를 빠르게 찾는 Global Search와 탐지된 영역에 대해 경량 분류/보정으로 위치 정밀도를 높이는 방식으로 동작한다. 초저지연·결정성 요구가 있는 산업용 시스템에서 GPU 없이 CPU만으로 동작시키기 위한 아키텍처 선택과 최적화가 핵심이다.
- 두 단계 캐스케이드(Two-stage cascade)
- — 전체 프레임을 스캔해 대략적 위치를 찾는 1단계와, 그 결과를 기준으로 더 작은 ROI를 잘라 상세 분류·정밀화하는 2단계로 구성된 아키텍처 패턴이다. 입력으로는 640×640 텐서를 사용한 YOLOX-nano의 Global Search가 들어가고, 출력된 박스를 기준으로 동적 256×256 서브리전을 LightGBM으로 정밀 추적하는 식으로 처리량과 정확도를 균형시킨다. 계산량을 국소화해 CPU 환경에서 지속적이고 저지연인 추적을 구현할 때 유리한 설계이다.
- 지수 이동 평균 필터(EMA smoothing filter)
- — 연속 좌표 신호의 잡음을 줄이기 위해 최신 관측치에 더 큰 가중치를 두고 이전 값들을 지수적으로 감소시켜 누적하는 필터이다. 본 시스템에서는 검출된 중심 좌표에 EMA를 적용해 서보 명령의 급격한 변동을 완화하고, 이후 USB-Serial을 통해 전송되는 인터폴레이션 경로가 더 매끄럽게 계산되도록 입력을 정규화한다. 이 방식은 끝점 진동을 줄이고 제어 루프에서의 안정성을 높이는 데 유용하다.
- Intel OpenVINO
- — 모델 최적화와 엣지 추론을 위해 설계된 도구 모음으로, ONNX Runtime v1.24.1을 MULTI device profile과 strict LATENCY hint로 구동하는 형태로 사용되었다. 소스 모델을 변환·푸시다운하고 런타임에서 디바이스별 분산 실행을 조정해 CPU 환경에서 레이턴시 목표를 맞추는 역할을 한다. 본 게시물에서는 OpenVINO 기반 파이프라인이 GPU 없는 환경에서 두 단계 캐스케이드를 실시간으로 유지하는 핵심 수단이었다.
언급된 도구
전체 프레임에서 빠른 물체 후보 검출
동적 ROI에 대해 경량 분류·정밀화 수행
모델 최적화와 엣지 추론 파이프라인 구성
런타임에서 MULTI device profile과 strict LATENCY hint로 실행 제어
USB-Serial로 받은 좌표를 50 Hz로 인터폴레이션해 서보 구동
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.