
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.