EVA의 대규모 카메라 수용을 위한 인프라 최적화 기술
EVA는 하나의 서버에서 100대 이상의 카메라에 AI 서비스를 제공하기 위해, GPU 성능에만 의존하지 않고 서버 전체 자원을 효율적으로 활용하는 구조로 발전해왔습니다.
대규모 카메라 환경에서는 단순히 더 높은 성능의 GPU를 사용하는 것만으로는 충분하지 않습니다. 모든 카메라의 스트리밍을 안정적으로 유지해야 하고, 여러 카메라에서 동시에 발생하는 AI 추론 요청을 제한된 CPU, 메모리, 네트워크, GPU 자원 안에서 처리해야 합니다.
특히 AI 파이프라인이 특정 카메라나 특정 모델에 치우치면 일부 카메라는 정상적으로 분석되지 못하거나, 이벤트 발생 후 알람까지의 지연 시간이 증가할 수 있습니다. 따라서 EVA는 영상 수집부터 AI 추론, 스트리밍 송출까지 전체 파이프라인을 기준으로 인프라를 최적화하고 있습니다.
이번 글에서는 EVA가 대규모 카메라 환경을 안정적으로 수용하기 위해 적용한 주요 인프라 최적화 기술을 소개합니다.
1. VM·VLM 분리 아키텍처
EVA는 모든 영상을 고비용 VLM으로 분석하지 않습니다. 먼저 VM(Vision Model)이 객체 존재 여부와 기본 조건을 확인하고, 실제 판단이 필요한 경우에만 VLM(Vision Language Model)을 수행합니다.
예를 들어 보호구 미착용 탐지의 경우, 사람이 존재하지 않거나 탐지 대상과 관련 없는 프레임은 초기 단계에서 제외됩니 다. 실제로 사람이 확인되고 보호구 착용 여부 판단이 필요한 경우에만 후속 VLM 추론을 수행합니다.
| 항목 | 내용 |
|---|---|
| 최적화 대상 | GPU |
| 주요 방식 | VM 기반 선별 후 필요한 경우에만 VLM 수행 |
| 효과 | 동일 서버 기준 수용 가능 카메라 수 약 20대 → 최대 100대 수준 향상 |
초기 구조에서는 모든 프레임을 VLM 중심으로 처리했기 때문에 GPU 연산량이 빠르게 증가했습니다. 반면 현재 구조는 VM이 먼저 판단 대상을 선별함으로써 VLM 호출 횟수를 크게 줄입니다.
이 구조를 통해 EVA는 동일 서버 환경에서 수용 가능한 카메라 수를 약 20대 수준에서 최대 100대 수준까지 향상시켰습니다. 해당 수치는 동일 서버 환경에서 모든 프레임을 VLM 중심으로 처리하던 초기 구조와, VM 기반 선별 후 필요한 경우에만 VLM을 수행하는 현재 구조를 비교한 내부 검증 기준입니다.
2. 작업 분해 및 GPU 병렬 처리
EVA는 여러 카메라에서 동시에 발생하는 추론 요청을 하나의 큰 작업으로 처리하지 않습니다. 대신 탐지 단계 판단, 예외 상황 검사, 이미지 설명 생성, 벡터화 등 여러 개의 작은 작업으로 분해하여 수행합니다.
분해된 작업은 여러 추론 인스턴스에 분산·병렬 처리됩니다. 이를 통해 다수의 카메라에서 동시에 요청이 발생하더라도 특정 작업이 전체 파이프라인을 막지 않도록 설계했습니다.
| 항목 | 내용 |
|---|---|
| 최적화 대상 | GPU |
| 주요 방식 | 시나리오 판단 과정을 작은 작업 단위로 분해 후 병렬 처리 |
| 효과 | 시간당 시나리오 처리량 360건 → 1,192건으로 3배 이상 향상 |
이 방식의 핵심은 불필요한 추론을 조기에 종료하는 것입니다. 초기 단계에서 알람 조건에 해당하지 않는다고 판단되면 후속 VLM 호출이나 이미지 설명 생성, 벡터화 작업을 수행하지 않습니다.
그 결과 GPU 자원을 실제 판단이 필요한 작업에 집중할 수 있었고, 실제 운영 환경에서 시간당 시나리오 처리량을 360건에서 1,192건으로 3배 이상 향상시켰습니다.
3. 탐지 모드 기반 추론 최적화
모든 시나리오를 동일한 방식으로 처리하면 불필요한 GPU 사용량이 증가합니다. EVA는 사용자가 작성한 시나리오의 특성을 분석하여 가장 적합한 탐지 방식을 자동으로 선택합니다.
단순 객체 존재 여부만 확인하면 되는 시나리오는 VM 중심으로 처리하고, 복합적인 상황 판단이 필요한 경우에만 VLM 기반 추론을 수행합니다.
| 탐지 모드 | 주요 역할 |
|---|---|
| Simple Mode | 사람, 차량, 장비 등 단순 객체 존재 여부를 VM 기반으로 탐지 |
| Default Mode | 다양한 시나리오를 탐지 단계와 예외 상황으로 분리하여 판단 |
| PPE Mode | 작업자 단위로 보호장비 착용 여부를 정밀하게 확인 |
| Thinking Mode | 화재, 쓰러짐, 위험 행동 등 복합적인 상황을 맥락 기반으로 판단 |
예를 들어 “사람이 보이면 알려줘”와 같은 시나리오는 고비용 VLM을 사용할 필요가 없으므로 VM만으로 처리할 수 있습니다. 반면 “작업자가 안전모를 착용하지 않고 위험구역에 진입”과 같은 시나리오는 객체 존재 여부뿐 아니라 보호구 착용 여부와 공간적 맥락까지 함께 판단해야 하므로 추가적인 추론 단계가 필요합니다.
이처럼 EVA는 시나리오 특성에 따라 필요한 수준의 모델만 사용함으로써 GPU 사용량을 줄이면서도 탐지 성능을 유지합니다.
4. 모델별 Worker 동적 할당
EVA는 사용 중인 모델과 카메라 수에 따라 Worker를 동적으로 할당합니다.
예를 들어 특정 시점에 OMDet을 사용하는 카메라가 많다면 해당 모델에 더 많은 Worker를 배정하고, 사용량이 적은 모델은 최소 자원만 사용하도록 조정합니다. 이를 통해 GPU 자원이 특정 모델에 과도하게 집중되는 것을 방지하고, 전체 GPU 활용률을 안정적으로 유지할 수 있습니다.
| 항목 | 내용 |
|---|---|
| 최적화 대상 | GPU, 메모리 |
| 주요 방식 | 모델별 카메라 수와 요청량에 따라 Worker 수 조정 |
| 운영 지표 | 100대 카메라 기준 내부 부하 테스트에서 프레임 드랍률 10% 이내 관리 |
Worker를 고정적으 로 배치하면 실제 사용량과 무관하게 특정 모델이 자원을 점유하거나, 반대로 요청이 많은 모델의 처리량이 부족해질 수 있습니다.
EVA는 모델별 요청량을 기준으로 Worker를 조정하여 처리 지연으로 인해 AI 추론 대상 프레임이 누락되는 비율을 10% 이내로 관리하고 있습니다. 해당 수치는 100대 카메라 기준의 내부 부하 테스트 환경에서, AI 추론 요청이 동시에 발생하는 상황을 기준으로 관리하는 운영 지표입니다.
5. 우선순위 큐 기반 요청 스케줄링
대규모 카메라 환경에서는 일부 카메라에서 일시적으로 많은 요청이 발생할 수 있습니다. 이때 요청을 단순 FIFO 방식으로 처리하면 특정 카메라가 시스템 자원을 과도하게 점유하고, 다른 카메라의 분석이 지연될 수 있습니다.
EVA는 카메라별 추론 요청을 우선순위 큐로 관리하여 모든 카메라가 균등하게 AI 파이프라인을 사용할 수 있도록 설계했습니다.
| 스케줄링 기준 | 처리 방식 |
|---|---|
| 요청 수가 적은 카메라 | 우선 처리 |
| 동일 조건의 요청 | 먼저 들어온 요청부터 처리 |
| 큐가 가득 찬 경우 | 요청이 과도하게 누적된 카메라의 오래된 요청 우선 제거 |
| 처리 시점이 지난 프레임 | 후속 추론 대상에서 제외 |
이 구조를 통해 일부 카메라에서 요청이 폭증하더라도 다른 카메라의 AI 추론 이 지연되지 않도록 제어합니다. 또한 오래된 프레임이 뒤늦게 처리되어 잘못된 알람으로 이어지는 것을 방지하고, 실시간성이 필요한 AI 파이프라인의 안정성을 유지합니다.
6. 운영 상태 기반 동적 FPS 제어
EVA는 카메라의 운영 상태에 따라 영상 수집 및 처리 빈도를 동적으로 조정합니다.
단순 연결 상태, AI 추론이 수행 중인 상태, 사용자가 실시간 스트리밍 화면을 시청하는 상태는 요구되는 처리 수준이 서로 다릅니다. 따라서 모든 카메라를 동일한 FPS로 처리하면 불필요한 CPU, GPU, 네트워크 사용량이 증가합니다.
| 항목 | 내용 |
|---|---|
| 최적화 대상 | CPU, GPU, 네트워크 |
| 주요 방식 | 카메라 운영 상태에 따라 수집·분석·스트리밍 FPS를 동적으로 조정 |
| 효과 | Monitoring On 상태의 카메라 50대 연결 시 CPU 사용률 약 35% 절감 |
예를 들어 단순 연결 상태에서는 최소한의 프레임만 수집하여 연결 상태를 유지합니다. AI 추론이 필요한 경우에는 분석에 필요한 프레임만 선별하여 처리하고, 사용자가 실시간 영상을 시청하는 경우에만 높은 FPS의 스트리밍 처리를 수행합니다.
특히 EVA는 수집된 모든 프레임을 디코딩하거나 AI 분석에 사용하지 않습니다. 추론에 필요한 프레임만 선택적으로 추출하여 파이프라인을 수행함으로써 불필요한 영상 수집, 디코딩, 전처리, 추론 작 업을 최소화합니다.
내부 검증 결과, 동일 서버 스펙에서 Monitoring On 상태의 카메라 50대 연결 시 CPU 사용률을 100% 수준에서 약 65% 수준까지 낮춰 약 35%의 CPU 리소스 절감 효과를 확인했습니다.
7. 멀티 사용자 스트리밍 최적화
관제 환경에서는 하나의 카메라 영상을 여러 사용자가 동시에 모니터링하는 경우가 많습니다.
일반적인 구조에서는 사용자 수가 증가할수록 동일 영상에 대한 디코딩, 전처리, 인코딩 작업이 반복 수행되어 CPU와 메모리 사용량이 크게 증가할 수 있습니다. EVA는 이러한 문제를 줄이기 위해 동일 카메라에 대한 영상 처리 작업을 공유하는 구조를 적용했습니다.
| 항목 | 내용 |
|---|---|
| 최적화 대상 | CPU, 메모리, 네트워크 |
| 주요 방식 | 동일 카메라의 디코딩, 전처리, 인코딩을 1회 수행 후 여러 사용자에게 공유 |
| 효과 | 사용자 수 증가 시 CPU·메모리 사용량의 선형 증가 방지 |
EVA는 동일 카메라에 대해 디코딩, 전처리, 인코딩 작업을 한 번만 수행하고, 이후 생성된 스트림을 여러 사용자에게 공유합니다. 이를 통해 사용자가 증가하더라도 추가 비용은 주로 네트워크 전송 수준으로 제한됩니다.
결과적으로 다수의 사용자가 동시에 영상을 모니터링하는 환경에서도 안정적인 스트리밍 품질을 유지하면서 서버 자원 소모를 최소화할 수 있 습니다.
마치며
EVA의 인프라 효율성은 단일 GPU 성능에만 의존하지 않습니다. 영상 수집, 프레임 선별, AI 추론, 요청 스케줄링, 스트리밍 송출까지 전체 파이프라인을 함께 최적화한 결과입니다.
EVA는 다음과 같은 기술을 결합하여 동일 서버 환경에서 더 많은 카메라를 안정적으로 수용할 수 있도록 설계되었습니다.
| 최적화 기술 | 주요 효과 |
|---|---|
| VM·VLM 분리 | 고비용 VLM 호출 최소화 |
| 작업 분해 및 병렬 처리 | 시간당 시나리오 처리량 3배 이상 향상 |
| 탐지 모드 기반 최적화 | 시나리오 특성에 맞는 모델 사용 |
| Worker 동적 할당 | 모델별 요청량에 따른 GPU·메모리 효율화 |
| 우선순위 큐 | 카메라별 추론 기회 균등화 |
| 동적 FPS 제어 | CPU·GPU·네트워크 사용량 절감 |
| 멀티 사용자 스트리밍 최적화 | 중복 디코딩·인코딩 제거 |
결국 EVA의 대규모 카메라 수용 능력은 하나의 최적화 기술만으로 만들어진 것이 아닙니다. 제한된 서버 자원을 더 효율적으로 사용하기 위해, AI 모델 구조와 시스템 인프라를 함께 설계한 결과입니다.
앞으로도 EVA는 더 많은 카메라, 더 복잡한 시나리오, 더 다양한 운영 환경을 안정적으로 지원하기 위해 인프라 최적화 기술을 지속적으로 고도화해 나갈 예정입니다.



