Vision AI on Edge Device
산업 현장의 카메라에서 시작해 YOLO, 모델 경량화, NPU, Runtime, MLOps로 이어지는 Edge Vision AI 생태계를 살펴봅니다.
오랜만입니다. 그간 바쁘기도 했고, 회사 내에서 개인의 업무와 내 커리어의 방향성에 대해서 동시에 고민해나가는 과정에서 어떤 글을 쓸지 갈피를 잡지 못했습니다.
그간 회사에서 프론트엔드를 넘어 백엔드와 실시간 영상 스트리밍을 다루게 되었고, 최근에는 Vision AI와 이를 위한 MLOps 플랫폼을 개발하고 있습니다. 자연스럽게 AI 모델 자체뿐만 아니라 모델이 실제로 어떤 환경에서 구동되고 서비스되는지에 대해서도 고민할 일이 많아졌습니다.
그 과정에서 본격적으로 접하게 된 것이 Edge AI입니다. 처음에는 단순히 AI 모델을 작은 컴퓨터에서 돌리는 정도로 생각했는데, 직접 산업용 Edge Device를 다루고 모델을 배포해보니 생각보다 꽤 큰 생태계가 만들어져 있었습니다. YOLO와 같은 경량 모델부터 GPU와 NPU, 모델 경량화, 추론 Runtime, 실시간 영상 처리, 그리고 여러 Edge Device와 모델을 관리하기 위한 MLOps까지 서로 긴밀하게 연결되어 있었습니다.
오늘은 제가 업무를 통해 접하게 된 Edge Vision AI와 그 안에서 사용되는 기술들에 대한 이야기를 해보려고 합니다.
왜 Edge AI인가
우리가 흔히 사용하는 GPT나 Claude 같은 AI 서비스는 대부분 클라우드에서 동작합니다. 강력한 컴퓨팅 자원을 중앙에 모아두고, 사용자가 데이터를 보내면 서버에서 처리한 결과를 다시 전달하는 방식입니다.
하지만 Vision AI처럼 지속적으로 영상 데이터를 처리해야 하는 경우에는 이야기가 조금 달라집니다. 수십 대의 CCTV 영상을 계속 클라우드로 전송하면 네트워크 사용량과 서버 비용이 커지고, 네트워크 상태에 따라 지연이나 장애가 발생할 수도 있습니다. 영상에는 사람이나 내부 시설처럼 외부로 전송하기 민감한 정보가 포함될 수도 있습니다.
그래서 나온 방식이 데이터가 발생하는 곳에서 바로 AI를 구동하는 Edge AI입니다.
Edge AI
Edge AI는 AI 모델을 현장에 위치한 Edge Device에 직접 배포하고 그 장치에서 모델을 구동하는 방식입니다. Vision AI에서는 보통 CCTV나 카메라와 가까운 곳에 Edge Device를 두고 영상을 직접 분석합니다.
예를 들어 공장 CCTV에서 작업자의 안전모 착용 여부를 판단한다고 하면 모든 영상을 서버로 보내는 대신 Edge Device에서 영상을 분석하고, 서버에는 “안전모 미착용 작업자가 감지되었다”와 같은 결과만 전달할 수 있습니다.
카메라는 엄청난 양의 데이터를 만들어내지만 우리가 실제로 필요한 것은 영상 자체가 아니라 영상에서 추출한 정보인 경우가 많습니다. 이런 특성 때문에 Vision AI는 Edge AI와 특히 궁합이 좋은 분야입니다.

CCTV 영상을 현장 가까이에서 처리하는 Edge AI 구성 개념도. 이 글을 위해 제작한 이미지입니다.
Edge Vision AI는 무엇을 하나요?
Vision AI라고 해서 모두 같은 일을 하는 것은 아닙니다. 이미지나 영상을 어떤 방식으로 분석하느냐에 따라 여러 종류의 Task가 존재합니다.
가장 기본적인 것은 Classification입니다. 이미지 전체가 어떤 종류인지 판단하는 방식으로, 사진을 보고 고양이인지 강아지인지 분류하는 것이 대표적인 예입니다. 반면 Object Detection은 이미지 안에 어떤 물체가 존재하는지뿐만 아니라 그 물체가 어디에 있는지까지 찾아냅니다. CCTV 영상 속 사람, 차량, 안전모, 화재 등을 사각형 영역인 Bounding Box로 표시하는 방식입니다.
조금 더 정밀한 영역이 필요한 경우에는 Segmentation을 사용할 수도 있습니다. Bounding Box가 물체 주변을 사각형으로 감싼다면 Segmentation은 실제 물체가 차지하는 영역을 픽셀 단위로 구분합니다.
실제 산업 현장에서는 목적에 따라 이러한 기술들이 사용됩니다. 공장에서는 제품의 불량을 검사하거나 작업자의 안전장비 착용 여부를 확인할 수 있고, 물류센터에서는 사람과 차량의 이동을 감지할 수 있습니다. 화재나 연기, 침입자, 위험구역 진입처럼 CCTV를 이용한 실시간 이벤트 감지 역시 대표적인 활용 사례입니다.

이미지: MTheiler, CC BY-SA 4.0. 크기 조정 및 WebP 변환.

이미지: B.Palac, CC BY-SA 4.0. 크기 조정 및 WebP 변환.
그리고 이런 Object Detection 분야에서 가장 자주 접하게 되는 모델 중 하나가 YOLO입니다.
YOLO
제가 Vision AI를 다루면서 가장 많이 접하게 된 모델 역시 YOLO였습니다.
YOLO는 대표적인 실시간 Object Detection 모델입니다. 이미지 한 장을 입력하면 이미지 안에 어떤 물체가 존재하는지와 그 물체가 어디에 있는지를 한 번의 추론 과정에서 찾아냅니다. 빠른 처리 속도 덕분에 CCTV와 같이 영상이 지속적으로 들어오는 환경에서 널리 사용됩니다.

Ultralytics YOLO
Real-time object detection
로고마크: Ultralytics 공식 Assets 저장소.
흥미로운 점은 YOLO가 하나의 크기로만 존재하지 않는다는 것입니다. 같은 세대에서도 Nano, Small, Medium, Large처럼 여러 크기의 모델이 제공됩니다. Nano 모델은 작고 빠르지만 상대적으로 정확도가 낮을 수 있고, 큰 모델은 높은 정확도를 기대할 수 있는 대신 더 많은 연산 능력과 메모리를 요구합니다.
처음 AI 모델을 접하면 자연스럽게 “성능이 가장 좋은 모델을 사용하면 되는 것 아닌가?”라는 생각을 하게 됩니다. 하지만 Edge 환경에서는 그렇지 않습니다. Edge Device는 데이터센터의 GPU 서버처럼 많은 연산 자원을 사용할 수 없고, 전력과 발열, 메모리에 제한이 있으며 하나의 장치가 여러 대의 카메라를 동시에 분석해야 하는 경우도 많습니다.
따라서 정확도가 조금 더 높은 모델보다 동일한 하드웨어에서 훨씬 많은 영상을 처리할 수 있는 모델이 실제 제품에서는 더 좋은 선택이 될 수도 있습니다. 이 때문에 Edge AI에서는 정확도뿐만 아니라 FPS, Latency, Memory, 소비전력, 동시에 처리할 수 있는 영상 Stream 수를 함께 보게 됩니다.
Edge에서는 정확도가 전부가 아닙니다
예를 들어 CCTV가 30FPS로 영상을 보내고 있다고 생각해보겠습니다. 그렇다고 AI 모델 역시 반드시 초당 30장의 이미지를 모두 분석해야 하는 것은 아닙니다.
안전모 미착용이나 화재처럼 상태가 일정 시간 유지되는 상황을 감지하는 것이 목적이라면 초당 몇 장만 분석해도 충분할 수 있습니다. 30개의 모든 Frame을 AI에 넣는 대신 필요한 Frame만 추출하면 훨씬 적은 연산량으로 같은 목적을 달성할 수 있습니다.
모델의 크기도 마찬가지입니다. 매우 높은 정확도를 가진 모델 하나로 두 개의 카메라를 처리하는 것보다 정확도를 조금 양보한 경량 모델로 열 개의 카메라를 처리하는 것이 실제 서비스에서는 더 합리적일 수 있습니다.
결국 Edge AI에서 중요한 것은 가장 정확한 모델이 아니라, 주어진 자원 안에서 목적을 만족하는 모델입니다.
그리고 여기서 모델 경량화가 중요한 기술로 등장합니다.
모델 경량화
모델을 가볍게 만드는 가장 단순한 방법은 처음부터 작은 모델을 선택하는 것입니다. YOLO의 Nano나 Small 모델을 사용하는 것이 대표적입니다. 하지만 이미 만들어진 모델 자체를 더 효율적으로 실행하기 위한 다양한 최적화 기술도 존재합니다.
대표적인 것이 Quantization(양자화)입니다. AI 모델의 Weight와 연산에는 FP32와 같은 부동소수점 데이터가 사용되는데, 이를 FP16이나 INT8처럼 더 작은 데이터 타입으로 변환하는 방식입니다. 숫자를 표현하는 정밀도를 낮추는 대신 필요한 메모리와 연산량을 줄여 더 빠르고 효율적으로 모델을 실행할 수 있습니다.
FP32에서 FP16, INT8로 내려갈수록 하나의 값을 표현하기 위해 필요한 데이터 크기가 줄어들고, 이를 지원하는 하드웨어에서는 한 번에 더 많은 연산을 처리할 수 있습니다. 물론 정밀도를 낮추는 만큼 모델 정확도에 영향을 줄 수 있기 때문에 실제로는 성능 향상과 정확도 손실을 함께 비교해야 합니다.
이외에도 중요도가 낮은 Weight나 연산을 제거하는 Pruning, 큰 모델이 학습한 정보를 작은 모델에 전달하는 Knowledge Distillation 같은 방법이 있습니다. 입력 이미지의 Resolution을 낮추는 것 역시 실무에서는 매우 직접적인 최적화 방법입니다.
결국 모델 경량화는 단순히 모델 파일의 크기를 줄이는 작업이 아닙니다. 모델이 요구하는 계산량과 메모리를 줄여 제한된 하드웨어에서도 현실적인 성능을 얻는 과정에 가깝습니다.
그리고 NPU
모델을 충분히 가볍게 만들었다면 다음으로 중요한 것은 어떤 하드웨어에서 이 연산을 처리할 것인가입니다.
기본적으로 AI 모델은 CPU에서도 실행할 수 있습니다. 하지만 Neural Network는 대량의 행렬 연산을 반복적으로 수행하기 때문에 이런 병렬 계산에서는 GPU가 훨씬 효율적입니다. NVIDIA의 GPU가 AI 분야에서 널리 사용되는 것도 이런 이유입니다.
그리고 최근에는 여기에 NPU(Neural Processing Unit)가 빠르게 추가되고 있습니다. NPU는 Neural Network의 연산을 효율적으로 처리하도록 설계된 전용 프로세서로, Apple의 Neural Engine을 비롯해 Qualcomm, Intel, AMD 등 여러 회사에서 NPU를 적극적으로 탑재하고 있습니다.
Edge 환경에서 NPU가 특히 중요한 이유는 전력 대비 성능입니다. 데이터센터에서는 수백 W를 사용하는 GPU를 사용할 수 있지만 현장에 설치되는 작은 Edge Device에서는 발열과 소비전력, 제품 크기를 함께 고려해야 합니다. 따라서 Edge AI에서는 단순한 최대 연산 성능보다 얼마나 적은 전력으로 필요한 AI 연산을 처리할 수 있는가가 중요합니다.

사진: RetroEditor, CC BY 4.0. 크기 조정 및 WebP 변환.
NPU가 있다고 바로 사용할 수 있는 것은 아닙니다
여기까지 알아보고 나면 하나의 의문이 생깁니다. NPU가 들어 있는 컴퓨터에서 YOLO를 실행하면 자동으로 NPU를 사용하는 것일까요?
실제로는 그렇지 않습니다.
PyTorch로 학습한 YOLO 모델을 그대로 NPU에 전달한다고 해서 NPU가 알아서 실행해주는 것은 아닙니다. 모델을 해당 하드웨어가 처리할 수 있는 형태로 변환하고 실제 연산 장치에 연결해주는 소프트웨어 계층이 필요합니다.
여기서 Runtime과 Compiler가 등장합니다.
NVIDIA 환경에서는 TensorRT가 대표적이고, Intel에서는 OpenVINO, Apple에서는 Core ML이 이러한 역할을 담당합니다. 다양한 AI Framework 사이에서 모델을 교환하기 위한 중간 포맷으로 ONNX 역시 자주 사용됩니다.
구조를 단순화하면 다음과 같습니다.
PyTorch Model → Export / Optimization → Runtime → CPU / GPU / NPU
같은 YOLO 모델이라고 하더라도 PyTorch 상태로 CPU에서 실행하는 것과 TensorRT Engine으로 변환해 NVIDIA GPU에서 실행하는 것, Core ML 모델로 변환해 Apple Silicon에서 실행하는 것은 성능 특성이 크게 달라질 수 있습니다.
또한 NPU가 모델의 모든 연산을 지원하는 것도 아닙니다. 모델 내부에 NPU가 지원하지 않는 Operator가 존재하면 일부 연산은 CPU나 GPU에서 실행될 수 있습니다. 결국 Edge AI에서는 NPU의 TOPS 같은 숫자만 보는 것이 아니라 내가 사용하려는 모델을 어떤 Runtime으로 실행할 수 있고, 그 Runtime이 하드웨어를 얼마나 잘 활용할 수 있는지까지 함께 봐야 합니다.
실제 시스템에서는 모델만 돌아가는 것이 아닙니다
여기까지는 주로 AI 모델 자체에 대한 이야기였습니다. 하지만 실제 CCTV 기반 Vision AI 시스템을 개발해보면 모델 추론은 전체 과정의 일부에 불과합니다.
카메라는 일반적으로 H.264나 H.265로 압축된 영상을 RTSP 같은 프로토콜을 통해 전달합니다. Edge Device에서는 먼저 영상을 Decode해야 하고, AI 모델의 Input Size에 맞게 Resize하거나 필요한 전처리를 수행해야 합니다. 이후 Detection 결과가 나오면 NMS와 같은 후처리를 거치고, 필요한 경우 Object Tracking을 이용해 같은 사람이나 차량을 여러 Frame에 걸쳐 추적합니다.
전체 구조를 단순화하면 다음과 같습니다.
Camera → Decode → Preprocess → AI Model → Postprocess → Tracking / Logic → Event
여러 대의 CCTV를 동시에 연결하면 문제는 더 복잡해집니다. Decode와 AI Inference를 어떻게 병렬화할 것인지, 각 카메라에서 몇 FPS를 분석할 것인지, 여러 영상의 Frame을 어떤 순서로 모델에 전달할 것인지, GPU나 NPU의 사용률을 어떻게 높일 것인지까지 고민해야 합니다.
실제로는 모델의 Inference Time을 몇 ms 줄이는 것보다 영상 Decode나 데이터 복사 과정에서 발생하는 병목을 해결하는 것이 전체 성능에 더 큰 영향을 주는 경우도 있습니다. 결국 Edge Vision AI에서 중요한 것은 무조건 가장 강력한 하드웨어를 사용하는 것이 아니라, 제한된 연산 자원을 얼마나 효율적으로 사용하는가에 있습니다.
Edge AI와 MLOps
Edge Device에서는 만들어진 모델을 현장에서 구동하지만, 모델을 새롭게 학습하는 과정까지 Edge에서 처리하기에는 아직 현실적인 제약이 많습니다. 대량의 Dataset과 높은 연산 성능이 필요한 Training은 GPU 서버나 Cloud 환경을 사용하는 것이 일반적입니다.
이 과정에서 MLOps가 모델의 학습과 관리, 그리고 Edge Device로의 배포를 연결해줍니다. Dataset으로 모델을 학습하고 성능을 평가한 뒤, 필요하다면 Quantization이나 Runtime 변환 같은 최적화를 거쳐 Edge Device에 배포합니다. Device가 많아지면 어떤 모델이 어떤 장치에 배포되어 있는지, 새로운 모델을 어떻게 업데이트할 것인지와 같은 관리도 필요합니다.
즉 Cloud가 Edge AI를 다시 중앙으로 가져가는 것이 아니라, Cloud는 모델을 만들고 관리하는 역할을 담당하고 실제 AI 연산은 데이터가 발생하는 Edge에서 수행하는 형태에 가깝습니다.

Ultralytics Platform의 모델 비교 화면. 이미지: Ultralytics 공식 Assets 저장소.

Roboflow의 Vision AI 프로젝트 생성 화면. 이미지: Roboflow 공식 문서.
제가 최근 MLOps 플랫폼을 개발하면서도 이 구조를 자주 접하고 있습니다. 결국 중요한 것은 Cloud 자체가 아니라, 만들어진 AI 모델을 얼마나 쉽게 최적화하고 다양한 Edge Device에 전달할 수 있는가였습니다.
AI는 점점 더 작아지고 있습니다
최근 AI 산업의 관심은 대부분 거대한 LLM에 집중되어 있습니다. GPT나 Claude 같은 모델은 놀라운 성능을 보여주고 있지만 최상위 모델을 만들기 위해 필요한 컴퓨팅 자원과 비용 역시 막대한 수준으로 커지고 있습니다. 최전선의 Foundation Model을 직접 개발하는 경쟁은 이미 소수의 대형 기업과 연구기관을 중심으로 이루어지고 있습니다.
그런데 Edge AI를 접하면서 저는 그 반대 방향의 발전도 상당히 중요하다고 느꼈습니다.
AI를 계속 크게 만드는 것이 아니라, 같은 일을 더 작은 모델과 더 적은 연산으로 처리하는 방향입니다.
YOLO에서 Nano와 Small 같은 작은 모델들이 존재하는 것도 같은 맥락입니다. Quantization을 통해 더 낮은 Precision으로 모델을 실행하고, Knowledge Distillation을 통해 큰 모델의 지식을 작은 모델에 전달합니다. 알고리즘뿐 아니라 하드웨어에서도 NPU처럼 Neural Network를 적은 전력으로 빠르게 처리하기 위한 전용 연산 장치가 빠르게 발전하고 있습니다.
각각을 따로 보면 단순한 최적화 기술처럼 보이지만 이 기술들이 동시에 발전한다는 점이 중요합니다. 모델은 같은 성능을 내면서 점점 작아지고, 하드웨어는 같은 전력으로 더 많은 연산을 처리할 수 있게 됩니다. Runtime과 Compiler 역시 발전하면서 과거에는 고성능 GPU가 필요했던 AI 기능을 훨씬 작은 장치에서 구동할 수 있는 영역이 계속 넓어지고 있습니다.
더 큰 AI와 더 가까운 AI
LLM의 발전은 여전히 굉장히 흥미롭지만 그 최전선에 참여하기 위한 진입장벽은 계속 높아지고 있습니다. 더 좋은 Foundation Model을 만들기 위해서는 막대한 GPU 인프라와 데이터, 학습 비용이 필요하고, 일정 수준 이상에서는 더 많은 자원을 투입할 수 있는지가 경쟁력과 직접적으로 연결됩니다.
반대로 Edge AI는 기술이 발전할수록 오히려 우리에게 가까워지는 방향으로 움직입니다. 같은 정확도를 내는 모델이 더 작아지고 NPU의 성능이 높아지면, 이전에는 서버가 필요했던 AI를 더 저렴한 장치에서도 실행할 수 있게 됩니다. 하드웨어 가격이 낮아지고 소비전력이 줄어들수록 AI를 적용할 수 있는 제품과 산업 역시 자연스럽게 늘어납니다.
저는 이 차이가 앞으로의 AI 산업에서 상당히 중요한 흐름이 될 것이라고 생각합니다.
Cloud AI가 더 많은 컴퓨팅 자원을 사용해 더 범용적이고 강력한 AI를 만드는 방향이라면, Edge AI는 더 적은 자원으로 특정한 목적을 효율적으로 해결하는 방향입니다.
산업 현장에서는 후자가 훨씬 현실적인 문제인 경우가 많습니다. CCTV 한 대를 분석하기 위해 지속적인 Cloud GPU 비용을 지불하는 것보다 저렴한 Edge Device를 현장에 설치해 필요한 정보를 바로 얻는 것이 적합할 수 있습니다. 자동차와 로봇, 드론, 스마트폰, 공장 설비처럼 애초에 빠른 판단과 독립적인 동작이 필요한 제품에서는 Edge가 더욱 중요합니다.

하나의 Edge AI 구조가 제조, 교통과 물류, 리테일 등 여러 산업 현장으로 확장되는 모습. 이 글을 위해 제작한 이미지입니다.
무엇보다 모든 문제에 거대한 범용 모델이 필요한 것도 아닙니다. 작업자의 안전모를 확인하고, 불량품을 검사하고, 화재를 감지하고, 차량을 구분하는 문제라면 그 목적을 충분히 잘 수행하는 작은 모델이 오히려 훨씬 효율적입니다.
Edge AI는 더 가까워질 것입니다
물론 현재의 Edge AI에도 한계는 많습니다. 작은 모델은 거대한 모델보다 할 수 있는 일이 제한적이고, NPU마다 지원하는 연산도 다르며, 모델을 각각의 하드웨어에 맞게 최적화하는 과정도 아직 복잡합니다.
하지만 제가 Edge AI의 미래를 긍정적으로 보는 이유는 이러한 한계 중 상당수가 기술이 발전할수록 완화되는 방향에 있기 때문입니다.
모델 압축 기술이 발전하면 동일한 하드웨어에서도 더 좋은 모델을 실행할 수 있습니다. NPU의 성능과 전력 효율이 높아지면 작은 Device가 처리할 수 있는 AI의 범위도 넓어집니다. Runtime과 Compiler가 발전하면 개발자가 하드웨어마다 직접 최적화해야 하는 영역 역시 점차 줄어들 것입니다.
결국 시간이 흐를수록 같은 가격과 전력으로 할 수 있는 AI의 범위가 계속 넓어지는 것입니다.
저는 앞으로 AI 산업이 단순히 더 거대한 LLM을 만드는 경쟁만으로 성숙하지는 않을 것이라고 생각합니다. 오히려 AI가 실제 산업과 일상 속으로 더 깊게 들어오는 과정에서는 저비용과 고효율을 추구하는 Edge AI가 훨씬 큰 역할을 하게 될 가능성이 있다고 봅니다.
거대한 Cloud AI의 최전선은 갈수록 막대한 자본과 컴퓨팅 자원을 요구하는 영역이 되어가고 있습니다. 반면 Edge AI는 기술이 성숙할수록 더 저렴한 하드웨어에서 더 높은 성능을 낼 수 있고, 그만큼 더 많은 개발자와 기업이 접근할 수 있는 영역이 됩니다.
모델은 계속 작아지고 있고 NPU는 계속 빨라지고 있습니다. 그 두 가지가 만나는 지점에서 지금은 서버가 필요했던 AI가 자동차와 카메라, 로봇, 스마트폰 그리고 수많은 작은 Device 안으로 들어가게 될 것입니다.
가장 거대한 AI가 아니라, 필요한 일을 가장 적은 비용과 전력으로 처리하는 AI.
제가 최근 Edge Vision AI를 다루면서 가장 크게 느낀 가능성은 바로 여기에 있었습니다.
어쩌면 우리가 앞으로 가장 자주 만나게 될 AI는 가장 똑똑한 AI가 아니라, 필요한 곳에 이미 들어가 있는 AI일지도 모르겠습니다.