OpenCV 5.0.0

Publicado OpenCV 5.0.0 — uma grande versão da biblioteca aberta de visão computacional e processamento de imagens. O lançamento ocorreu 6 de junho de 2026 e já foi destacado como relevante no repositório do projeto no GitHub. O OpenCV é distribuído sob a licença Apache-2.0.

A essência do lançamento é a transição do OpenCV de uma "biblioteca clássica de visão computacional" para uma plataforma mais moderna para tarefas de CV/AI: o projeto limpou a antiga API, reformulou o módulo de inferência de rede neural, expandiu o suporte ao ONNX, adicionou recursos para cenários VLM/LLM e atualizou o stack 3D/calibração. Os desenvolvedores descrevem o OpenCV 5.0 como uma ramificação, agora também considerada estável, e a nova funcionalidade será adicionada principalmente a ela.

Principais mudanças

  • Novo motor de inferência DNN.
    O módulo dnn agora conta com um novo motor, que coexiste com o antigo. Ele funciona melhor com formas tensorais dinâmicas, subgrafos e recursos modernos do ONNX. A cobertura declarada é de mais 80% da especificação ONNX, enquanto no OpenCV 4.x era coberto menos de 23%.
    Essa é provavelmente a principal mudança do lançamento: o OpenCV tenta se tornar não apenas uma camada em torno de modelos, mas um verdadeiro motor de inferência embutido para redes neurais modernas.

  • Escolha do motor ao carregar o modelo.
    Na função cv::dnn::readNet() e funções relacionadas, foi adicionado o parâmetro ENGINE_AUTO. Por padrão, o OpenCV primeiro tenta o novo motor e, em caso de falha, reverte para o clássico. O comportamento também pode ser definido pela variável de ambiente OPENCV_FORCE_DNN_ENGINE: usar o motor antigo, o novo, o modo automático ou o ONNX Runtime. Projetos antigos não precisam migrar imediatamente para o novo motor, mas novos modelos podem ser gradualmente transferidos para ele.

  • Integração com ONNX Runtime.
    O OpenCV agora pode ser compilado com o ONNX Runtime conectado. Nesse caso, o OpenCV usa seu próprio parser ONNX para construir o gráfico ORT, portanto, não requer o pacote completo do ONNX. Os parâmetros de CMake para a compilação são -DWITH_ONNXRUNTIME=ON e -DDOWNLOAD_ONNXRUNTIME=ON; para GPUs NVIDIA — -DDOWNLOAD_ONNXRUNTIME_GPU=ON. Essa função será útil para aqueles que precisam de inferência em GPU já, pois o novo motor DNN do OpenCV ainda funciona apenas em CPU.

  • Suporte a modelos de visão-linguagem.
    O novo motor DNN inclui tokenizadores, camadas de atenção, blocos de decodificação, pós-processamento e cache KV, todos necessários para executar modelos VLM "prontos para uso". A biblioteca historicamente estava associada ao processamento de imagens, mas agora está se aventurando em modelos que trabalham simultaneamente com imagem e texto.

  • O suporte a GPU para o novo motor DNN ainda não está pronto.
    O novo motor no OpenCV 5.0 funciona apenas em CPU. O suporte nativo a GPU deve ser adicionado em versões futuras; por enquanto, recomenda-se usar o motor clássico ou uma versão com o ONNX Runtime e provedores de execução NVIDIA para inferência CUDA, tanto em servidores quanto em desktop. O OpenCV 5.0 ainda não substitui os runtimes especializados.

  • Os antigos parsers Darknet e Caffe foram removidos.
    Os desenvolvedores removeram os parsers Darknet e Caffe, pois a maioria dos modelos já foi convertida para ONNX. O TFLite ainda permanece com o motor clássico, enquanto a migração para o novo motor está planejada para mais tarde. O OpenCV está abandonando os antigos formatos e se concentrando no ONNX como seu formato principal de intercâmbio de modelos.

  • Uma grande limpeza da API obsoleta.
    A API C do OpenCV 1.x foi removida: funções como cvCreateMat() e antigas estruturas como CvMat não fazem mais parte da API principal. O suporte ao OpenVX também foi removido, e o módulo G-API foi transferido para o opencv_contrib, assim como o módulo clássico de ML. Essa é uma mudança disruptiva para projetos antigos, mas era há muito necessária: a biblioteca está se livrando da dívida técnica acumulada ao longo de décadas.

  • Features2D foi renomeado para Features.
    O módulo foi ampliado para os modernos vetores de características de redes neurais. No repositório principal, foram mantidos SIFT, ORB, FAST, GoodFeaturesToTrack e MSER, enquanto os detectores e descritores obsoletos foram movidos para opencv_contrib. Foram adicionados ALIKED, DISK e o correspondedor LightGlue. O OpenCV claramente está se ajustando aos modernos pipelines, onde as características da imagem são cada vez mais extraídas não por algoritmos clássicos, mas por redes neurais.

  • Novos tipos de dados no Core.
    Foram adicionados CV_16BF / cv::bfloat, CV_32U, CV_64U, CV_64S e CV_Bool. Além disso, o suporte para arrays N-dimensionais, arrays 1D e escalares 0D foi aprimorado. O LAPACK agora está sempre disponível: se não houver uma biblioteca externa, o OpenCV compila um subconjunto mínimo embutido. As mudanças são importantes para DNN, algoritmos numéricos e compatibilidade com formatos modernos de dados, onde bfloat16 e tipos estendidos estão se tornando cada vez mais comuns.

  • O processamento de imagens foi acelerado.
    Em imgproc, warpAffine, warpPerspective e remap foram aprimorados. Aumentos de desempenho variam de 10% a mais de 300%, dependendo da plataforma, tamanho da imagem, tipo de dados e sinalizadores de operação.
    Isso não se trata mais da moda do AI — tais otimizações são diretamente importantes para tarefas clássicas: fluxos de vídeo, estabilização, transformações projetivas e preparação de dados antes da inferência.

  • A saída de texto foi melhorada.
    O antigo mecanismo de renderização de texto foi substituído pelo motor TrueType baseado em STB com a fonte variável Rubik embutida. É possível conectar fontes personalizadas, e há amplo suporte para Unicode. No entanto, sistemas de escrita complexos, como árabe e devanágari, ainda são exibidos incorretamente sem Harfbuzz, e emojis coloridos não são suportados. O OpenCV se torna mais conveniente para gerar anotações, imagens de depuração e visualizações sem bibliotecas externas.

  • Atualizações em 3D e calibração de câmeras.
    calib3d foi dividido em geometry, calib, stereo e ptcloud. USAC se tornou o backend padrão para avaliação robusta de homografia, matriz essencial/fundamental, PnP e outras tarefas. Um pipeline de calibração multicanal foi adicionado, com suporte inicial para processamento de malhas e nuvens de pontos, incluindo TSDF, ICP, importação e exportação de .ply e .obj. Este é um passo importante para robótica, SLAM, AR/VR e sistemas multicâmera, onde o processamento 2D já não é mais suficiente.

  • Exemplos e documentação foram reformulados.
    Exemplos obsoletos foram removidos, os restantes foram atualizados. Para exemplos DNN, uma coleção comum de modelos pode ser baixada com o script download_models.py. Exemplos experimentais para VLM e LDM foram adicionados, e a documentação recebeu um tema moderno, busca rápida, modo claro/escuro e navegação aprimorada. Para uma biblioteca tão grande, isso não é uma mudança cosmética: uma documentação adequada e exemplos funcionais impactam diretamente se os desenvolvedores podem realmente migrar para o OpenCV 5.x.

Em suma, o OpenCV 5.0 não é apenas mais um lançamento com otimizações, mas uma atualização significativa de tudo: menos herança da era OpenCV 1.x e mais foco em ONNX, inferência neural, recursos modernos, processamento 3D e aceleração heterogênea. No entanto, a transição para projetos antigos pode exigir ajustes devido à remoção da API C e à transferência de parte dos módulos para opencv_contrib.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster