OpenCV 5 Is Here: The Biggest Leap in Years for Computer Vision
개요
OpenCV 5는 20년 이상 컴퓨터 비전 분야의 근간을 이루어온 OpenCV 라이브러리의 역사상 가장 중요한 릴리스 중 하나로, 새로운 DNN 엔진, 향상된 ONNX 지원, 하드웨어 가속 개선, 더 나은 Python 통합 등 대대적인 현대화를 이루었습니다.
주요 내용
* 새로운 DNN 엔진: OpenCV 5는 ONNX 연산자 지원을 약 22%에서 80% 이상으로 크게 확장하고, 동적 형태(dynamic shapes), 제어 흐름(If, Loop) 지원, 연산자 퓨전(fusion) 기능 등을 갖춘 완전히 새로운 그래프 기반 DNN 엔진을 도입했습니다.
* 다중 엔진 지원 및 호환성: 단일 DNN API 아래에서 기존 엔진, 새로운 그래프 엔진, ONNX Runtime 래퍼를 선택적으로 사용할 수 있어 이전 버전과의 호환성을 유지하면서도 새로운 기능을 활용할 수 있습니다. 기본적으로는 새로운 엔진을 먼저 시도하고 실패 시 기존 엔진으로 전환합니다.
* 성능 향상: 새로운 DNN 엔진은 ONNX Runtime과 비교했을 때 CPU에서 다양한 최신 모델에 대해 경쟁력 있거나 더 나은 성능을 보여주며, XFeat, YOLOv8n, DINOv2 small 등 여러 모델에서 속도 향상이 확인되었습니다.
* LLM 및 VLM 지원: 라이브러리 내에 네이티브 토크나이저와 KV-캐시를 포함하여 별도의 런타임 없이 Qwen 2.5, Gemma 3, PaliGemma, GPT-2/GPT-4 계열의 LLM 및 VLM을 직접 실행할 수 있게 되었습니다.
* 최신 기능 지원: LaMa를 이용한 인페인팅(inpainting)과 확산 모델(diffusion models)을 DNN 엔진 내에서 직접 실행하며, CNN 기반의 ALIKED, DISK, LightGlueMatcher와 같은 딥러닝 기반의 최신 특징점 검출 및 매칭 기능이 추가되었습니다.
* 코어 및 API 현대화: FP16, BF16, bool, 64비트 정수 등 새로운 데이터 타입 지원, 0D/1D 텐서(스칼라 및 1D 배열) 지원, N-차원 배열 연산 강화, C++17 표준 채택, Python에서의 네임드(키워드) 인수 지원 등으로 코어 기능이 빠르고 간결해졌습니다.
* 하드웨어 가속 레이어(HAL) 개선: Intel IPP, Arm KleidiCV, Qualcomm FastCV, RISC-V Vector 등 다양한 하드웨어 벤더의 최적화된 커널을 자동으로 활용할 수 있는 새로운 HAL 구조를 도입하여, 개발자가 코드를 변경하지 않고도 지원되는 하드웨어에서 자동으로 성능을 향상시킬 수 있습니다.
* 3D 비전 기능 강화: 기존의 단일 calib3d 모듈을 3D, calib, stereo 세 가지 모듈로 분리하여 구조화하고, 다중 카메라 캘리브레이션, 포인트 클라우드/메시 입출력, RGB-D 융합, USAC 프레임워크 개선 등 3D 비전 관련 기능을 대폭 강화했습니다.
* 문서 개선: Sphinx + Doxygen 기반의 새로운 문서 시스템을 도입하여 탐색하기 쉬운 좌측 네비게이션 패널, 튜토리얼과 API 레퍼런스의 통합, Python/C++ 시그니처 병기 등 사용자 편의성을 크게 향상시켰습니다.
시사점
OpenCV 5는 기존 라이브러리의 방대한 사용자 기반을 유지하면서도, 최신 딥러닝 모델의 지원 확대, 성능 최적화, 다양한 하드웨어 통합, 사용자 경험 개선 등을 통해 컴퓨터 비전 개발의 복잡성을 줄이고 효율성을 높여 실무 적용 가능성을 크게 확장했습니다.
댓글
GitHub Discussions