Top Qs
Linha do tempo
Chat
Contexto

OpenCV

Open Source Computer Vision Library Da Wikipédia, a enciclopédia livre

OpenCV
Remove ads

O OpenCV (abreviação de Open Source Computer Vision Library) é uma biblioteca livre e multi-plataforma (uso acadêmico e comercial),[1] criada pela pela empresa Intel em 2000, para o desenvolvimento de aplicativos na área de visão computacional (sistema que interpreta informação visual)[1][2] e também usada nas áreas de inteligência artificial (IA) e aprendizagem de máquina.[2]

Factos rápidos

O OpenCV possui módulos de processamento de imagens e video,[2] Estrutura de dados, Álgebra Linear, GUI (Interface Gráfica do Usuário) básica com sistema de janelas independentes, controle de mouse e teclado, e mais de 350 ferramentas e algoritmos de visão computacional como: filtros de imagem, calibração de câmera, reconhecimento de objetos, análise estrutural. O seu processamento das imagens ocorre em tempo real.[2]

Esta biblioteca foi desenvolvida nas linguagens de programação C/C++. Também, dá suporte a programadores que utilizem Java, Python e Visual Basic e desejam incorporar a biblioteca a seus aplicativos. A versão 1.0 foi lançada no final de 2006 e a 2.0 foi lançada em setembro de 2009.

Remove ads

História

Oficialmente lançado em 1999, o projeto OpenCV foi uma proposta da Intel Research de melhorar aplicações de uso intensivo de processamento, sendo parte de uma série de projetos que incluíam Ray tracing e monitores 3D. Os principais contribuidores do projeto eram da Intel Russia, assim como o time de desempenho de bibliotecas da Intel. No início do projeto, os objetivos foram definidos como:

  • Avançar a pesquisa em visão computacional por prover não apenas código aberto mas otimizado para tarefas básicas de visão, de modo que o código pudesse ser prontamente lido e transferível.
  • Avançar aplicações baseadas em visão computacional por fazer código portátil e otimizado disponível de graça, com uma licença que não requer que a aplicação seja de código aberto.
Remove ads

Características

Resumir
Perspectiva

O OpenCV trabalha com análise visual em tempo real na inteligência artificial (IA) e no aprendizado de máquina (ou aprendizagem automática ML), fazendo o pré-processamento de imagens ou vídeos antes de introduzir nos modelos de aprendizagem de máquina e nos modelos de aprendizagem profunda (DL).[2] O pré-processamento do OpenCV inclui: o redimensionamento, a conversão do espaço de cores (como BGR para RGB), a redução de ruído da imagem, melhoria da qualidade da imagem para extrair caraterísticas relevantes (algoritmos SIFT, SURF, FAST que identificam pontos-chave na imagem), processamento em tempo real de fluxos de vídeo (fluxo ótico), subtração de fundo, inferência para detecção de objetos (como ferramenta cascatas Haar para deteção de rosto), entender a geometria da câmara, calibrar a câmera, compreender cenas, reconstruir cenas 3D, algoritmos clássicos de aprendizagem profunda como Support Vetor Machines (SVM) e K-Nearest Neighbors (KNN).[2]

O OpenCV cria aplicações de visão computacional usando as bibliotecas de aprendizagem de máquina PyTorch e TensorFlow; enquanto essas bibliotecas fazem a construção e o treinamento de redes neurais, o OpenCV trabalha com a entrada/saída, a manipulação e, o pós-processamento de dados visuais (como o desenho de caixas delimitadoras ou máscaras de segmentação previstas por modelos).[2]

Remove ads

Uso real

Resumir
Perspectiva

o OpenCV é versátil em inúmeras aplicações de inteligência artificial e aprendizado de máquina:

Veículos autónomos: nos carros autónomos e nos assistentes de condução (ADAS) o OpenCV é usado para o processamento inicial de dados da câmera e do LiDAR: deteção de faixas, o reconhecimento de obstáculos (correspondência de caraterísticas), deteção de contornos, o reconhecimento de sinais de trânsito (alimentando um classificador com imagens processadas), a costura de imagens para sistemas de visão surround.[2] Os fotogramas brutos da câmera são processados no OpenCV (correção de distorção e ajuste de brilho) para serem usados no YOLOv8 (modelo de aprendizagem profunda que detecta carros e peões).[2]

Análise de imagens médicas: o OpenCV faz tratamento de vários formatos de imagens de exames médicos (como o DICOM): melhora o contraste da imagem para melhor visibilidade das anomalias, segmenta regiões de interesse (tumores ou órgãos) usando algoritmo de limiarização ou de bacias hidrográficas, regista imagens tiradas em momentos diferentes.[2] Os dados visuais pré-processados são analisados por modelos de aprendizado de máquina especializados para diagnóstico (IA em Radiologia - RSNA).

Outras áreas: Robótica com a Integrating Computer Vision in Robotics,[2] Vigilância com a Security Alarm Systems,[2] Realidade aumentada: no controle da saúde de lantas na agricultura, Realidade virtual, Humano-Computador Interface (HCI), Sistema de reconhecimento facial, Reconhecimento de movimentos, Robôs móveis, Reconstrução 3D, Opentoonz usa o OpenCV para determinadas funcionalidades de visão computacional.

Plataformas compatíveis

Esta biblioteca multi-plataforma funciona com: Android,[3] BlackBerry 10,[4] FreeBSD, iOS,[5] Linux, Maemo,[6] OpenBSD, OS X e, Windows.

Estrutura

  • cv — Módulo das principais funcionalidades e algoritmos de Visão Computacional do OpenCV.
  • cvaux — Módulo com algoritmos de Visão, ainda está em fase experimental.
  • cxcore — Módulo de Estrutura de Dados e Álgebra Linear.
  • highgui — Módulo de Controle de Interface e dispositivos de entrada.
  • ml — Módulo de “Machine Learning” é um módulo processador de imagem que utiliza algoritmos com aprendizagem de maquina.
  • dnn — Módulo de “Deep Learning” é um módulo processador de imagem que utiliza algoritmos com aprendizagem de máquina profundo.
  • ed — Manual de estrutura de dados e operações.
Remove ads

Linguagem de programação

O OpenCV é escrito em C++ e sua interface principal é em C++, mas ainda mantém uma interface C mais antiga, menos abrangente, embora extensa. Todos os novos desenvolvimentos e algoritmos aparecem na interface C++. Existem ligações em Python (por exemplo, métodos OpenCV cv.line,[7] OpenCV cv2.cvtcolor,[8] OpenCV cv2.circle[9]), Java e, MATLAB/OCTAVE. A API para essas interfaces pode ser encontrada na documentação online.[10]

Wrappers em várias linguagens de programação foram desenvolvidos para incentivar a adoção por um público mais amplo. Na versão 3.4, as ligações JavaScript para um subconjunto selecionado de funções OpenCV foram lançadas como OpenCV.js, para serem usadas em plataformas da web.[11]

Remove ads

Limitações

A complexidade de alguns algoritmos que a biblioteca usa, pode exigir um conhecimento avançado em matemática e programação.[1] E a performance pode variar dependendo do hardware usado, e da complexidade da análise realizada.[1]

Ligações externas

Referências

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads