본문으로 건너뛰기
피드

OpenCV 5 공개, DNN 엔진 갈아엎고 ONNX 지원 80%대로 끌어올렸다

open-source 약 13분
vote
0
댓글
북마크

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

  • 1

    OpenCV 5의 ONNX 연산자 지원은 4.x의 약 22%에서 80% 이상으로 늘었다.

  • 2

    새 DNN 엔진은 typed operation graph, shape inference, constant folding, operator fusion을 기반으로 동작한다.

  • 3

    Qwen 2.5, Gemma 3, PaliGemma 같은 LLM·VLM을 OpenCV DNN 안에서 실행할 수 있다.

  • 4

    새 엔진은 현재 CPU-only이며, GPU 추론은 기존 backend나 ONNX Runtime 경로가 필요하다.

  • 5

    Hardware Acceleration Layer 개편으로 Intel, Arm, Qualcomm, RISC-V 최적화 경로를 더 깔끔하게 붙일 수 있게 됐다.

  • 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 같은 최신 모델 패턴도 처리 대상으로 들어옴

중요

> 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 흐름은 유지됨
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 비전 쪽도 모듈 구조가 정리됨

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

댓글

댓글

댓글을 불러오는 중...

open-source

펜타시스템, EDB 손잡고 국내 엔터프라이즈 PostgreSQL 시장 공략

펜타시스템이 PostgreSQL 전문 기업 EDB와 파트너 계약을 맺고 국내 엔터프라이즈 오픈소스 데이터 플랫폼 시장을 공략한다. 핵심은 상용 DBMS 비용 증가와 라이선스 정책 변화 속에서 PostgreSQL 기반 대안 DBMS 수요를 잡겠다는 전략이다.

open-source

청주대, 오픈소스 프로젝트 경진대회 열고 27개 팀 성과 공유

청주대학교가 2026학년도 1학기 오픈소스 프로젝트 경진대회를 열었다. 인공지능, 로봇 제어, 정보보안, 데이터 분석 등 다양한 분야에서 총 27개 팀이 참여했고, 7개 팀이 본선에 올랐다.

open-source

난독화 C 코드 대회 IOCCC 2025 수상작 공개, 올해도 정신 나간 작품들이 나옴

제29회 국제 난독화 C 코드 대회(IOCCC) 2025 수상작이 공개됨. 2020-2024년 공백 이후 두 번째 대회인데도 제출량과 품질이 높은 수준을 유지했고, Game Boy 에뮬레이터, Subleq 컴퓨터, patch/diff quine, 바다 소리 생성기 같은 작품들이 수상작에 포함됨.

open-source

러스트로 만든 오픈소스 NTSC·VHS 영상 효과 도구, ntsc-rs

ntsc-rs는 아날로그 TV와 VHS 특유의 노이즈, 색 번짐, 신호 왜곡을 실제 NTSC 전송·VHS 인코딩 모델에 가깝게 흉내 내는 오픈소스 영상 효과 도구다. Rust로 작성됐고 멀티스레딩과 SIMD 가속을 활용해 실제 NTSC보다 훨씬 높은 해상도에서도 실시간 처리를 노린다.

open-source

수파베이스, 5억 달러 투자 유치…AI 에이전트가 DB 만드는 시대 제대로 탐

수파베이스가 GIC 주도 시리즈F에서 5억 달러를 유치하며 포스트머니 기업가치 105억 달러를 기록했다. 지난 1년간 신규 데이터베이스 생성은 600퍼센트 늘었고, 신규 DB의 60퍼센트 이상이 AI 도구에 의해 배포된다는 점이 핵심이다. 수파베이스는 오픈소스 Postgres 기반 백엔드 플랫폼에서 에이전틱 인프라 레이어로 포지션을 넓히고 있다.