---
title: "OpenCV 5 공개, DNN 엔진 갈아엎고 ONNX 지원 80%대로 끌어올렸다"
published: 2026-06-06T06:02:28.000Z
canonical: https://jeff.news/article/3924
---
# OpenCV 5 공개, DNN 엔진 갈아엎고 ONNX 지원 80%대로 끌어올렸다

OpenCV 5는 컴퓨터 비전 라이브러리의 대형 현대화 릴리스다. 새 DNN 엔진, ONNX 연산자 지원 확대, LLM·VLM 실행, FP16·BF16 타입, 하드웨어 가속 계층, 3D 비전 모듈 개편까지 한 번에 들어갔다. 기존 API 호환성을 최대한 유지하면서도 현대 AI 비전 파이프라인에 맞게 내부 구조를 크게 바꾼 게 핵심이다.

- OpenCV 5가 나왔고, 이건 그냥 버전 숫자 하나 오른 릴리스가 아님. 20년 넘게 쌓인 컴퓨터 비전 라이브러리를 현대 AI 비전 스택에 맞춰 크게 갈아엎은 버전임
  - OpenCV는 GitHub star 8만 6천 개 이상, 하루 설치 100만 건 이상인 사실상 CV 생태계의 공용 배관 같은 라이브러리임
  - 이번 릴리스는 새 DNN 엔진, ONNX 지원 확대, 하드웨어 가속, Python 통합, 3D 비전, 문서 개편까지 범위가 큼
  - pip 버전은 6월 8일 릴리스 예정이라고 공지됨

- 제일 큰 변화는 DNN 엔진임. OpenCV 4.x에서 답답했던 “이 ONNX 왜 안 열림?” 문제가 꽤 크게 줄어듦
  - ONNX operator 지원이 4.x 시절 약 22%에서 OpenCV 5에서는 80% 이상으로 뛰었다고 함
  - 기존 엔진은 ONNX 모델을 레이어 목록처럼 처리했고, dynamic shape나 최신 연산에 약했음
  - 새 엔진은 typed operation graph, shape inference, constant folding, operator fusion을 기반으로 모델을 그래프로 이해함
  - If, Loop subgraph, symbolic shape, dynamic shape, QDQ graph 같은 최신 모델 패턴도 처리 대상으로 들어옴

> [!IMPORTANT]
> OpenCV 5의 핵심 숫자는 ONNX operator 지원 80% 이상임. 최신 모델을 OpenCV DNN에 넣었다가 operator 미지원으로 막히던 경험이 있었다면, 이 릴리스가 바로 그 부분을 겨냥함

- transformer 계열 최적화도 들어감. 이제 OpenCV가 단순 이미지 처리 라이브러리라고만 보기 어려워짐
  - MatMul → Softmax → MatMul 패턴을 감지해 fused attention operation으로 접음
  - 구현은 FlashAttention 스타일이라고 설명됨
  - 사용자는 별도 코드를 쓰지 않아도 모델을 로드하면 이 최적화를 받는 구조임
  - Qwen 2.5, Gemma 3, PaliGemma, GPT-2·GPT-4 계열 모델도 같은 `Net` API로 실행할 수 있다고 함

- 새 엔진이 들어왔지만, 업그레이드 리스크를 낮추려고 엔진 3개를 한 API 뒤에 숨김
  - 기본값 `ENGINE_AUTO`는 새 엔진을 먼저 시도하고, 안 되면 classic engine으로 fallback함
  - 명시적으로 새 graph engine을 쓰고 싶으면 `engine=cv.dnn.ENGINE_NEW`를 넘기면 됨
  - ONNX Runtime을 빌드에 포함하면 `ENGINE_ORT` 경로도 쓸 수 있음
  - 기존 `readNetFromONNX`, `setInput`, `forward` 흐름은 유지됨

```mermaid
sequenceDiagram
    participant 개발자
    participant OpenCV API
    participant 새 DNN 엔진
    participant 클래식 엔진
    participant ONNX Runtime
    개발자->>OpenCV API: ONNX 모델 로드
    OpenCV API->>새 DNN 엔진: ENGINE_AUTO로 먼저 시도
    새 DNN 엔진-->>OpenCV API: 지원 가능 여부 반환
    OpenCV API->>클래식 엔진: 미지원 모델 fallback
    OpenCV API->>ONNX Runtime: 빌드 옵션에 따라 별도 경로 선택
    OpenCV API-->>개발자: 동일한 Net API로 forward 실행
```

- 단, 지금 새 DNN 엔진은 CPU-only임. 이 부분은 실무에서 꼭 체크해야 함
  - CUDA나 OpenVINO 같은 non-CPU backend/target을 쓰려면 classic engine 쪽이 필요함
  - OpenCV 샘플들은 명령행에서 non-default backend나 target을 넘기면 `ENGINE_CLASSIC`으로 바꾸는 식으로 처리함
  - GPU 추론이 필요한 팀은 당장 OpenCV 5 새 엔진만 보고 갈아타면 안 되고, backend 구성을 확인해야 함

- 성능 비교에서는 CPU 기준으로 ONNX Runtime과 맞붙였고, 여러 모델에서 OpenCV 5가 앞선다고 주장함
  - 테스트 환경은 Intel Core i9-14900KS, Ubuntu 24.04 LTS임
  - 작은 실시간 detector인 YOLO26n부터 open-vocabulary 모델인 OWLv2까지 비교 대상으로 언급됨
  - OpenCV 쪽 메시지는 “성숙한 추론 런타임과 경쟁 가능하면서도 의존성은 하나로 줄일 수 있다”에 가까움

- OpenCV 안에서 LLM과 VLM을 돌린다는 대목은 좀 신기함. 물론 챗봇 서버를 대체하겠다는 얘기는 아님
  - native tokenizer가 라이브러리에 들어감
  - autoregressive decoding을 위한 KV-cache도 들어감
  - Qwen 2.5에 “What is OpenCV?”를 물었을 때 ONNX Runtime과 token-for-token으로 같은 출력을 냈다고 함
  - 의도한 사용처는 캡셔닝, OCR 후처리, open-vocabulary query처럼 비전 파이프라인 중간에 작은 언어·비전언어 모델을 붙이는 쪽임

- 이미지 생성·편집 계열도 DNN 안으로 들어옴
  - LaMa 기반 inpainting 예시는 이미지와 마스크를 넣고 한 번 `forward()` 해서 객체 제거 결과를 얻는 구조임
  - diffusion 기반 inpainting 샘플도 `samples/dnn/ldm_inpainting.py`로 제공된다고 함
  - 별도 런타임 없이 OpenCV 안에서 처리한다는 점이 배포 환경에서는 꽤 매력적임

- 고전 feature matching도 딥러닝 버전으로 확장됨
  - 새 Features 모듈은 기존 Features2D를 대체함
  - `cv::ALIKED`는 CNN 기반 keypoint detector와 descriptor임
  - `cv::DISK`는 wide-baseline, low-texture 장면에 강한 learned feature임
  - `cv::LightGlueMatcher`는 attention 기반 matcher로 confidence-scored match를 만들고 stitching module에도 붙음
  - SIFT, ORB, FAST, GFTT, MSER 같은 고전 detector는 그대로 남아 있음

- core도 꽤 많이 정리됨. AI 비전 워크로드에서 자주 부딪히던 타입과 차원 문제가 줄어드는 쪽임
  - FP16(`CV_16F`)과 BF16(`CV_16BF`)이 first-class type으로 들어감
  - bool, 64-bit integer 지원도 강화됨
  - `cv::Mat`이 0D scalar와 1D array를 표현할 수 있게 됨
  - broadcasting, `transposeND`, `flipND` 같은 N차원 연산도 들어감
  - 수학 워크로드에서 최대 2배 성능 개선을 보고함

- Python 개발자에게는 named argument 지원이 은근히 체감될 변화임
  - NumPy 2.x 지원이 들어감
  - C++ 알고리즘에 대해 Python에서 keyword argument를 쓸 수 있게 됨
  - 예전처럼 파라미터 순서를 외우거나 문서를 계속 뒤지는 일이 줄어듦
  - 레거시 C API는 공식적으로 deprecated됨

- 하드웨어 가속 계층(HAL) 개편은 엣지·모바일·임베디드 쪽에서 중요함
  - 모든 core function이 하나의 HAL contract를 통해 하드웨어별 최적화 커널을 탈 수 있게 설계됨
  - Intel IPP, Arm KleidiCV, Qualcomm FastCV, RISC-V Vector 경로가 언급됨
  - Arm 쪽에서는 resize, warp 같은 흔한 연산에서 3~4배 speedup을 보고함
  - 개발자는 같은 OpenCV 코드를 쓰고, 지원되는 하드웨어에서는 최적화 경로를 자동으로 타는 그림임

- 3D 비전 쪽도 모듈 구조가 정리됨
  - 기존 `calib3d`가 `3d`, `calib`, `stereo`로 나뉨
  - multi-camera calibration, pairwise extrinsics, hand-eye calibration, robot-world calibration이 강화됨
  - point cloud와 mesh I/O는 OBJ, PLY를 다루는 `loadPointCloud`, `savePointCloud`, `loadMesh`, `saveMesh`로 제공됨
  - TSDF, HashTSDF, ColorTSDF 기반 dense RGB-D fusion과 visual odometry도 언급됨

- 앞으로의 로드맵은 “모델만 빠르게”가 아니라 “전체 비전 파이프라인을 가속기 위에 올리기”임
  - native DNN engine의 GPU 지원은 5.x 사이클에서 예정됨
  - non-CPU HAL은 resize, color conversion, normalization, NMS, mask resizing 같은 전후처리를 GPU·NPU에서 처리하는 방향임
  - 실제 비전 시스템에서는 inference보다 전처리·후처리와 데이터 복사가 병목이 되는 경우가 많아서 이 방향이 꽤 현실적임

- 결론적으로 OpenCV 5는 호환성을 버리고 새로 시작한 릴리스가 아니라, 낡은 배관을 유지한 채 안쪽을 현대식으로 갈아넣은 버전에 가까움
  - 새 DNN 엔진이 안 되면 classic engine으로 fallback됨
  - 고전 feature detector도 계속 남아 있음
  - 기존 `Net` API도 유지됨
  - 그래서 “OpenCV는 쓰고 싶은데 최신 ONNX 모델 때문에 포기했던” 팀이라면 다시 테스트해볼 만함

---

## 기술 맥락

- OpenCV 5가 새 DNN 엔진을 그래프 기반으로 만든 이유는 최신 모델이 더 이상 단순한 레이어 나열이 아니기 때문이에요. dynamic shape, control flow, attention 같은 패턴을 이해하려면 모델을 실행 순서가 아니라 계산 그래프로 봐야 하거든요.

- `ENGINE_AUTO`를 기본값으로 둔 건 대형 오픈소스 라이브러리다운 선택이에요. OpenCV는 연구 코드뿐 아니라 공장 검사, 로봇, 의료 영상, 임베디드 장비에도 박혀 있어서, “새 엔진이 빠르니 다 바꾸세요”가 현실적으로 불가능해요.

- 새 엔진이 CPU-first인 것도 꽤 실용적인 판단이에요. GPU부터 붙이면 성능 데모는 화려할 수 있지만, CPU에서 shape inference와 fusion이 안정적으로 맞아야 엣지 장비나 서버 배포에서 예측 가능한 결과가 나와요.

- HAL 개편은 모델 추론보다 더 넓은 문제를 건드려요. 비전 파이프라인에서는 resize, 색공간 변환, normalization, 후처리 때문에 CPU와 가속기 사이를 왔다 갔다 하는 비용이 크거든요. OpenCV가 이걸 공통 계층으로 정리하면, 벤더 최적화와 앱 코드가 서로 덜 엉키게 돼요.

- LLM과 VLM 지원은 OpenCV가 챗봇 플랫폼이 되겠다는 뜻은 아니에요. 이미지 입력을 보고 짧은 설명을 만들거나, OCR 결과를 정리하거나, open-vocabulary detection을 붙이는 식으로 비전 파이프라인 안에서 작은 언어 모델을 부품처럼 쓰려는 쪽에 가까워요.

## 핵심 포인트

- OpenCV 5의 ONNX 연산자 지원은 4.x의 약 22%에서 80% 이상으로 늘었다.
- 새 DNN 엔진은 typed operation graph, shape inference, constant folding, operator fusion을 기반으로 동작한다.
- Qwen 2.5, Gemma 3, PaliGemma 같은 LLM·VLM을 OpenCV DNN 안에서 실행할 수 있다.
- 새 엔진은 현재 CPU-only이며, GPU 추론은 기존 backend나 ONNX Runtime 경로가 필요하다.
- Hardware Acceleration Layer 개편으로 Intel, Arm, Qualcomm, RISC-V 최적화 경로를 더 깔끔하게 붙일 수 있게 됐다.

## 인사이트

OpenCV 5는 “낡았지만 어디에나 있는 라이브러리”가 현대 AI 비전 스택에 다시 끼어들 수 있게 만든 릴리스다. 특히 ONNX 모델을 별도 런타임 없이 OpenCV 안에서 돌리고 싶은 팀에게는 의존성, 배포, 엣지 환경 운영 측면에서 꽤 큰 변화다.
