OpenCV 5.0: Значне оновлення популярної бібліотеки комп’ютерного зору
OpenCV 5.0: Значне оновлення популярної бібліотеки комп’ютерного зору
OpenCV 5.0 вийшла як масштабне оновлення для широко використовуваної бібліотеки комп’ютерного зору з відкритим вихідним кодом. Вона містить перепроектований двигун глибоких нейронних мереж, розширену підтримку моделей ONNX, вбудовану підтримку мовно-візуальних моделей та величезну очистку застарілих API.
Що таке OpenCV?
OpenCV — це програмна бібліотека, яка допомагає застосункам “бачити” та обробляти зображення чи відео. Її використовують в робототехніці, промисловій інспекції, медичній візуалізації, виявленні об’єктів, доповненій реальності, дослідженнях в області автономного водіння та аналізу зображень за допомогою штучного інтелекту.
Основні зміни в DNN модулі
Найбільша зміна торкнулася модуля DNN, який отримав своє найбільше оновлення з моменту виходу OpenCV 4.x. OpenCV 5.0 містить новий двигун виводу, що працює поряд зі звичним, забезпечуючи набагато кращу підтримку динамічних форм, підграфів та сучасних можливостей ONNX. Згідно з інформацією проекту, новий двигун покриває понад 80% специфікації ONNX, у порівнянні з менш ніж 23% у OpenCV 4.x.
Параметри використання нового двигуна
Новий двигун DNN за замовчуванням вибирається автоматично, з можливістю повернення до класичного двигуна при необхідності. Розробники також можуть контролювати поведінку через новий параметр двигуна або середовищну змінну OPENCV_FORCE_DNN_ENGINE. OpenCV 5.0 також може бути зібрана з підтримкою ONNX Runtime, включаючи постачальників виконання GPU NVIDIA при використанні відповідних варіантів збірки.
Підтримка мультимодальних моделей
Ще однією важливою добавкою є підтримка мультимодальних моделей. OpenCV 5.0 містить токенізатори та компоненти, необхідні для VLM виводу, включаючи шари уваги, блоки декодування, постобробку та підтримку KV-кешу. Це дозволяє OpenCV запускати моделі, які поєднують розуміння зображення з мовним виходом, такі як опис зображення або відповіді на питання про візуальний зміст.
Вдосконалення продуктивності та нові типи даних
Щодо продуктивності, проект стверджує, що новий двигун DNN забезпечує конкурентоспроможну продуктивність виводу на CPU, що може зрівнятися або перевершити ONNX Runtime на деяких протестованих моделях. В обробці зображень також було досягнуто поліпшень, включаючи переписані реалізації warpAffine, warpPerspective та remap з прискоренням, що залежить від платформи, розміру зображення, типу та параметрів операцій.
OpenCV 5.0 також додає нові типи даних у модулі Core, включаючи bfloat16, uint32, uint64, int64 і підтримку булевих матриць. Також покращена підтримка 0D та 1D масивів, що важливо для виводу DNN.
Зміни в системних вимогах
Базові вимоги також змінилися. OpenCV 5.0 тепер потребує C++17, а підтримка Python 2 повністю скасована. Тепер проект вимагає Python 3.6 або новіший та виключно будує та розподіляє прив’язки Python 3.
Для отримання додаткових деталей можна ознайомитися з анонсом випуску.




