OpenCV 5.0.0

1000px.jpg

Опубликован OpenCV 5.0.0 — крупный выпуск открытой библиотеки компьютерного зрения и обработки изображений. Релиз состоялся 6 июня 2026 года и уже отмечен как актуальный в репозитории проекта на GitHub. OpenCV распространяется под лицензией Apache-2.0.

Суть релиза — переход OpenCV от «классической библиотеки компьютерного зрения» к более современной платформе для CV/AI-задач: проект вычистил старое API, переработал модуль нейросетевого инференса, расширил поддержку ONNX, добавил задел для VLM/LLM-сценариев и обновил 3D/калибровочный стек. Разработчики описывают OpenCV 5.0 как ветку, теперь тоже считающуюся стабильной, а новая функциональность будет попадать преимущественно туда.

Основные изменения

  • Новый движок DNN-инференса. В модуле dnn появился новый движок, который сосуществует со старым. Он лучше работает с динамическими формами тензоров, подграфами и современными возможностями ONNX. Заявлено покрытие более 80% спецификации ONNX, тогда как в OpenCV 4.x покрывалось менее 23%. Это, вероятно, главное изменение выпуска: OpenCV пытается стать не просто обвязкой вокруг моделей, а полноценным встроенным движком инференса для современных нейросетей.

  • Выбор движка при загрузке модели. В cv::dnn::readNet() и родственных функциях появился параметр ENGINE_AUTO. По умолчанию OpenCV сначала пробует новый движок, а при неудаче откатывается на классический. Поведение также можно задавать через переменную окружения OPENCV_FORCE_DNN_ENGINE: использовать старый движок, новый, автоматический режим или ONNX Runtime. Старые проекты не обязаны сразу полностью переходить на новый движок, но новые модели можно постепенно переводить на него.

  • Интеграция с ONNX Runtime. OpenCV теперь можно собрать с подключённым ONNX Runtime. При этом OpenCV использует собственный ONNX-парсер для построения графа ORT, поэтому не требует полного пакета ONNX. Для сборки предусмотрены параметры CMake -DWITH_ONNXRUNTIME=ON и -DDOWNLOAD_ONNXRUNTIME=ON; для NVIDIA GPU — -DDOWNLOAD_ONNXRUNTIME_GPU=ON. Функция будет полезна тем, кому нужен GPU-инференс уже сейчас, потому что новый DNN-движок OpenCV пока работает только на CPU.

  • Поддержка vision-language models. Новый DNN-движок включает токенизаторы, слои внимания, блоки декодирования, постобработку и KV-кеш, необходимые для запуска VLM-моделей «из коробки». Библиотека исторически ассоциировалась с обработкой изображений, а теперь заходит в область моделей, которые одновременно работают с изображением и текстом.

  • GPU-поддержка нового DNN-движка пока не готова. Новый движок в OpenCV 5.0 работает только на CPU. Нативную поддержку GPU обещают добавить в следующих выпусках; пока для GPU рекомендуется использовать классический движок или сборку с ONNX Runtime и NVIDIA execution providers. Для серверного или десктопного CUDA-инференса OpenCV 5.0 сам по себе ещё не заменяет специализированные рантаймы.

  • Удалены старые парсеры Darknet и Caffe. Разработчики убрали парсеры Darknet и Caffe, так как большинство моделей уже переведено в ONNX. TFLite пока остаётся через классический движок, а перенос на новый движок запланирован позже. OpenCV отказывается от старых форматов фокусируется на ONNX как основном обменном формате моделей.

  • Большая чистка устаревшего API. Удалён C API OpenCV 1.x: функции вроде cvCreateMat() и старые структуры типа CvMat больше не входят в основной API. Также удалена поддержка OpenVX, модуль G-API перенесён в opencv_contrib, туда же отправлен классический ML-модуль. Ломающее изменение для старых проектов, но оно давно напрашивалось: библиотека избавляется от технического долга, накопленного за десятилетия.

  • Features2D переименован в Features. Модуль расширен под современные векторы признаков из нейросетей. В основной репозиторий оставлены SIFT, ORB, FAST, GoodFeaturesToTrack и MSER, а устаревшие детекторы и дескрипторы перенесены в opencv_contrib. Добавлены ALIKED, DISK и сопоставитель LightGlue. OpenCV явно подстраивается под современные пайплайны, где признаки изображения всё чаще извлекаются не классическими алгоритмами, а нейросетями.

  • Новые типы данных в Core. Добавлены CV_16BF / cv::bfloat, CV_32U, CV_64U, CV_64S и CV_Bool. Также улучшена поддержка N-мерных массивов, 1D-массивов и 0D-скаляров. LAPACK теперь всегда доступен: если внешней библиотеки нет, OpenCV собирает встроенное минимальное подмножество. Изменения важны для DNN, численных алгоритмов и совместимости с современными форматами данных, где bfloat16 и расширенные типы встречаются всё чаще.

  • Ускорена обработка изображений. В imgproc переработаны warpAffine, warpPerspective и remap. Улучшения производительности заявлены в диапазоне от 10% до более чем 300% в зависимости от платформы, размера изображения, типа данных и флагов операции. Это уже не про AI-моду — такие оптимизации напрямую важны для классических задач: видеопотоков, стабилизации, проекционных преобразований и подготовки данных перед инференсом.

  • Улучшен вывод текста. Старый механизм рендеринга текста заменён STB-based TrueType-движком со встроенным вариативным шрифтом Rubik. Можно подключать пользовательские шрифты, появилась широкая поддержка Unicode. При этом сложные письменности вроде арабского и деванагари пока отображаются некорректно без Harfbuzz, а цветные emoji не поддерживаются. OpenCV становится удобнее для генерации аннотаций, отладочных изображений и визуализаций без внешних библиотек.

  • Обновлены 3D и калибровка камер. calib3d разделён на geometry, calib, stereo и ptcloud. USAC стал стандартным бэкендом для устойчивой оценки гомографии, essential/fundamental matrix, PnP и других задач. Добавлен пайплайн многокамерной калибровки, начальная поддержка обработки сеток и облаков точек, включая TSDF, ICP, импорт и экспорт .ply и .obj. Это важный шаг для робототехники, SLAM, AR/VR и многокамерных систем, где одной 2D-обработки уже давно недостаточно.

  • Переработаны примеры и документация. Устаревшие примеры удалены, оставшиеся обновлены. Для DNN-примеров используется общая коллекция моделей, которую можно скачать скриптом download_models.py. Добавлены экспериментальные примеры для VLM и LDM, а документация получила современную тему, быстрый поиск, светлый/тёмный режим и улучшенную навигацию. Для такой большой библиотеки это не косметическое изменение: нормальная документация и рабочие примеры напрямую влияют на то, смогут ли разработчики реально перейти на OpenCV 5.x.

В итоге OpenCV 5.0 — это не просто очередной релиз с оптимизациями, а значительное обновление всего: меньше наследия из эпохи OpenCV 1.x и больше ориентации на ONNX, нейросетевой инференс, современные признаки, 3D-обработку и гетерогенное ускорение. При этом переход для старых проектов может потребовать правок из-за удаления C API и переноса части модулей в opencv_contrib.

>>> Источник

©  Linux.org.ru