OpenCV 4.0 e 4.1 - o que há de novo?



Voltamos à história sobre a biblioteca de código aberto de visão computacional OpenCV . O projeto vive e se desenvolve, conduzido por uma equipe de desenvolvedores que trabalham na Intel, além de suporte permanente da comunidade. No final de 2018, a primeira versão estável do ramo 4.x foi lançada e, há apenas um mês, uma nova atualização foi lançada - versão 4.1. Pedimos aos autores da biblioteca que listassem brevemente o que essas novas versões trouxeram para a funcionalidade OpenCV.

Opencv 4.0


O lançamento do OpenCV 4.0 completou o ciclo de vida da versão 3.x - para corrigir erros e pequenas melhorias, foi criada uma ramificação 3.4, a partir da qual as versões menores 3.4.x já serão criadas (semelhante ao 2.4.x).

Opencv 4.0 final

  • O OpenCV agora é uma biblioteca C ++ 11 e requer um compilador compatível com C ++ 11;
  • Muitas funções da obsoleta API C (do OpenCV 1.0) foram removidas, constantes antigas e declarações de função foram movidas para arquivos de cabeçalho separados ( imgproc_c.h ) e agora devem ser incluídas explicitamente pelo usuário ( #include <opencv / imgproc / imgproc_c.h> );
  • Todos os módulos CUDA foram portados para o repositório opencv_contrib ;
  • A API de persistência para gravar e ler dados em um arquivo foi reescrita em C ++, as funções antigas foram removidas;
  • Um novo módulo G-API foi adicionado, o que permite criar gráficos a partir das operações nas imagens e aplicar várias otimizações a elas;
  • Adicionado suporte ao Deep Learning Deployment Toolkit (incluindo versões de código aberto ) ao módulo dnn , incluindo o uso do Intel Movidius Neural Compute Stick ou Intel Neural Compute Stick 2 no Raspberri Pi 3 ;
  • O suporte para redes no formato ONNX (Open Neural Network Exchange) foi adicionado ao módulo dnn ;
  • Adicionado suporte experimental para cálculos via Vulkan no módulo dnn;
  • Foi adicionada a implementação do algoritmo em tempo real para o processamento de cenas / modelos 3D do KinectFusion (com otimização para CPU e GPU / OpenCL);
  • O suporte para detecção e decodificação de códigos QR foi adicionado ao módulo objdetect (o decodificador usa a biblioteca QUirc) - neste verão, como parte do estágio de verão, será feito um trabalho para melhorar a qualidade e, possivelmente, o modo de decodificação de detecção simultânea de mais de um código QR na imagem será adicionado.
  • Um algoritmo de fluxo óptico DIS muito eficiente e ao mesmo tempo de alta precisão foi transferido de opencv_contrib para o módulo de vídeo do repositório principal.

Opencv 4.1


  • Adicionadas implementações otimizadas de despacho de muitos algoritmos nos módulos core e imgproc ;
  • Melhorias no módulo dnn :
    • Suporte implementado para o lançamento de redes no Intel Neural Compute Stick 2 (usando DLDT);
    • Consumo máximo de memória reduzido, suporte introduzido para muitas redes novas do TensorFlow
  • O módulo Videoio adiciona suporte à API NDK do Android Media para ler arquivos / fluxos de vídeo em dispositivos Android a partir do código C ++ (útil para testar algoritmos);
  • Um novo módulo para analisar a qualidade da imagem ( opencv_contrib / quality ) foi adicionado . Ele implementa algoritmos básicos (PSNR, SSIM) e novos algoritmos especializados (como o algoritmo de avaliação da qualidade sem usar as imagens BRISQUE originais - Avaliador de qualidade espacial de imagem cega / sem referência);
  • Implementou vários novos algoritmos: Fluxo óptico local robusto, Quasi Dense Stereo, calibração da câmera acoplada ao manipulador (Hand-Eye);

Mais informações sobre a biblioteca podem ser encontradas no site do projeto, que mudou além do reconhecimento.

O número de patches de 4.0.0 a 4.1.0: 462 (cerca de 5,3 patches por dia, excluindo fins de semana e feriados). Existem muitas mudanças, como você vê, e são significativas. Se você tiver dúvidas sobre a funcionalidade incorporada ou, inversamente, a não implementada, bem-vindo aos comentários, os desenvolvedores do OpenCV tentarão respondê-las.

Source: https://habr.com/ru/post/pt452790/


All Articles