컴퓨터 비전 라이브러리 'OpenCV 5' 정식 출시...DNN 엔진 새로 짜 ONNX 80% 넘기고 LLM·VLM까지 직접 구동
OpenCV가 새 딥러닝 엔진과 대형 모델 지원을 담은 5.0을 내놨다.
[한국정보기술신문] 전 세계에서 가장 널리 쓰이는 오픈소스 컴퓨터 비전 라이브러리 'OpenCV'가 5번째 주요 버전인 OpenCV 5를 내놨다. 이번 5.0은 딥러닝 엔진을 처음부터 다시 만들고, 인공지능(AI) 시대에 맞춰 라이브러리 전반의 구조를 현대화한 대규모 개편으로, 2009년 2.x 이후 가장 큰 변화로 꼽힌다. 컴퓨터 비전이란 컴퓨터가 사진이나 영상을 분석해 사물을 알아보고 그 의미를 파악하도록 하는 기술을 말한다. OpenCV는 로봇, 산업용 검사, 의료 영상, 자율주행 연구, 증강·가상현실(AR·VR) 등 카메라로 세상을 인식하는 거의 모든 분야에서 20여 년간 핵심 도구로 쓰여 왔으며, 깃허브(GitHub)에서 별 8만6천여 개를 받았고 하루 내려받기가 100만 건을 넘는다. 새 버전의 가장 큰 변화는 심층신경망(DNN)을 구동하는 엔진을 새로 만들어, 대형 AI 모델까지 직접 돌릴 수 있게 한 점이다.

새 DNN 엔진, ONNX 호환율 22%에서 80%로
이번 개편의 중심에는 새로 만든 DNN 엔진이 있다. DNN은 사람의 신경망을 본떠 여러 층으로 쌓은 인공신경망을 가리키는 말로, 오늘날 이미지 인식과 생성형 AI의 바탕이 되는 기술이다. OpenCV는 다른 도구로 학습시킨 신경망 모델을 불러와 실행하는 기능을 제공해 왔는데, 이때 가장 널리 쓰이는 표준 형식이 'ONNX(오닉스)'다. ONNX는 서로 다른 AI 프로그램끼리 모델을 주고받을 수 있도록 정한 공통 규격을 말한다.
기존 4.x 버전은 이 ONNX 규격의 22% 안팎만 지원했지만, 5.0의 새 엔진은 80% 이상으로 호환 범위를 크게 넓혔다. 개발진에 따르면 4.x에서는 입력 크기가 정해지지 않고 그때그때 바뀌는 모델을 불러올 때 오류가 나곤 했는데, 새 엔진은 이런 모델도 다룰 수 있다. 새 엔진은 모델을 한 층씩 차례로 처리하던 기존 방식 대신, 모델 전체를 자료형이 정의된 하나의 연산 그래프로 표현하도록 다시 설계됐다. 이렇게 하면 엔진이 모델의 구조를 미리 분석해 불필요한 계산을 줄이고 여러 연산을 묶어 처리할 수 있어, 속도와 효율이 함께 올라간다. 메모리도 층마다 따로 쓰던 방식에서 벗어나 하나의 저장 공간을 여러 단계가 돌려 쓰도록 바꿔, 같은 모델을 더 적은 메모리로 돌릴 수 있게 됐다. 조건에 따라 일부만 실행하거나 같은 계산을 반복하는 모델 구조도 다룰 수 있어, 그만큼 더 다양한 최신 모델을 불러올 수 있다.
큰 변화인 만큼 기존 프로그램이 멈추지 않도록, 이용자는 네 가지 엔진 방식 가운데 골라 쓸 수 있다. 옛 방식을 그대로 쓰는 '클래식' 엔진, 새 그래프 방식의 '뉴' 엔진, 새 엔진을 먼저 시도하고 안 되면 옛 엔진으로 돌아가는 기본값 '오토' 엔진, 그리고 외부의 'ONNX 런타임'을 끌어 쓰는 방식이다. 다만 새 엔진은 아직 중앙처리장치(CPU)에서만 작동하며, 그래픽처리장치(GPU) 가속은 개발이 진행 중이다.

비전 라이브러리가 거대언어모델까지 돌린다
이름의 'CV'가 컴퓨터 비전을 뜻하지만, OpenCV 5는 거대언어모델(LLM)과 시각언어모델(VLM)도 DNN 모듈 안에서 직접 구동한다. LLM은 챗GPT처럼 사람의 말을 이해하고 글을 만들어 내는 AI 모델을, VLM은 여기에 이미지까지 함께 이해하는 모델을 말한다. 이전에는 이런 모델을 돌리려면 별도의 실행 프로그램이 필요했지만, 5.0은 글을 잘게 쪼개 처리하는 도구와 이전 계산 결과를 저장해 두는 장치를 내장해 추가 프로그램 없이도 작동하도록 했다. 개발진은 알리바바의 큐원 2.5, 구글의 젬마 3와 팰리젬마, 오픈AI의 GPT 계열 모델이 사물 탐지 모델을 돌릴 때와 같은 방식으로 작동한다고 밝혔다. 이로써 사물 탐지·영역 분할은 물론 시각언어, 생성형 AI 모델까지 하나의 라이브러리에서 다룰 수 있게 됐다.
성능도 양호한 편이다. 개발진이 인텔 코어 i9 프로세서와 우분투 환경에서 측정한 결과, 새 DNN 엔진은 여러 모델에서 마이크로소프트의 ONNX 런타임보다 4~37% 빠른 처리 속도를 보였다. 다만 이 수치는 개발진이 자체 실험으로 제시한 것으로, 다양한 환경에서의 폭넓은 검증은 앞으로의 과제로 남아 있다.

새 자료형·다차원 지원 등 기반도 손질
딥러닝 외에 라이브러리의 기반 기능도 개선됐다. 적은 메모리로 계산할 수 있는 절반 정밀도 실수(FP16·BF16) 같은 새 자료형이 더해졌고, 참·거짓 값과 64비트 정수 등도 다룰 수 있게 됐다. 자료형이란 컴퓨터가 숫자를 저장하는 형식을 말하며, 정밀도를 적절히 낮추면 같은 작업을 더 빠르고 가볍게 처리할 수 있다. 또 하나의 값이나 1차원·다차원 배열을 자유롭게 다루는 기능이 추가됐고, 수학 계산 작업에서 최대 2배까지 성능이 빨라졌다고 개발진은 설명했다.
프로그래밍 언어 측면에서는 오래된 C 방식의 옛 기능들이 공식적으로 폐기됐고, C++17 표준이 권장 기준이 됐다. 파이썬에서는 널리 쓰이는 수치 계산 도구 넘파이(NumPy) 2.x를 지원하고, 함수에 값을 넣을 때 순서를 외우지 않고 이름을 지정해 넣을 수 있게 돼 한층 쓰기 편해졌다.

인텔·암·퀄컴·리스크파이브 폭넓은 가속
OpenCV 5는 하드웨어 가속 계층을 다시 설계해, 한 번 짠 코드가 여러 종류의 칩에서 최적의 방식으로 작동하도록 했다. 가속이란 특정 칩의 특성을 활용해 같은 계산을 더 빠르게 처리하는 것을 말한다. 인텔(Intel) 칩에서는 영상 필터와 색 변환 등에 최적화된 경로를, 암(Arm) 기반 칩에서는 영상 처리와 DNN 연산에서 최대 3~4배 빨라지는 가속을 지원한다. 또 퀄컴(Qualcomm)의 스냅드래곤 칩과, 최근 주목받는 개방형 반도체 설계 방식인 리스크파이브(RISC-V) 칩에 대한 가속도 담겼다. OpenCV는 실행되는 하드웨어에 맞춰 가장 빠른 처리 방식을 알아서 고른다.
3차원 영상 처리 기능도 강화됐다. 여러 대의 카메라를 함께 보정하는 기능, 점들의 집합으로 입체 공간을 표현하는 점구름(포인트 클라우드)을 읽고 쓰는 기능, 깊이 정보를 합성하는 기능 등이 더해졌다. 개발진은 이번 개선이 흩어진 사진들로 입체 구조를 복원하거나 로봇 분야에서 일하는 이들에게 의미 있는 진전이라고 설명했다. 자율주행 차량이 주변 환경을 입체로 파악하거나, 의료 영상에서 장기의 3차원 형태를 다루는 작업에도 보탬이 될 것으로 보인다.
OpenCV 5의 소스 코드는 깃허브에서 내려받을 수 있으며, 문서 사이트도 새로 단장됐다. 다만 파이썬 이용자가 간편하게 설치하는 방식(pip)으로는 8일부터 제공될 예정이었으나 아직 반영이 더뎌, 당분간은 소스 코드를 직접 빌드해 써야 할 수 있다. 20여 년간 컴퓨터 비전의 토대 역할을 해 온 OpenCV가 대형 모델까지 끌어안으면서, 고전적 영상 처리와 최신 딥러닝을 한데 묶으려는 이번 개편이 현장에 어떻게 자리 잡을지 주목된다.
한국정보기술신문 인공지능분과 박연호 기자 news@kitpa.org











