Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Visao computacional em sistemas embarcados - Andre Silva

Neste Webinar será apresentado como é feito o desenvolvimento de uma aplicação de visão computacional para sistemas embarcados partindo do básico até a seleção da região de interesse de uma imagem para input de um sistema de Inteligência Artificial ou Machine Learning.

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Visao computacional em sistemas embarcados - Andre Silva

  1. 1. Visão Computacional
  2. 2. 2/32
  3. 3. Qual a diferença ? Visão Computacional ou Processamento de Imagens ?
  4. 4. Visão Computacional • Ciência e Tecnologia de como as máquinas “enxergam” • Detecção • Identificação • Reconhecimento  • Inteligência Artificial e Aprendizagem de Máquina (ML) • Aplicações • Biometria:  Reconhecimento de face, íris e digitais • Trânsito: Reconhecimento de placas, vias e sinais de trânsito • Indústria: Classificação de objetos e padrões (forma, tamanho, cor)  • Etc...
  5. 5. Visão Computacional
  6. 6. Processamento de Imagens • Manipulação de dados mínimos da imagem (pixels) • Conversão do espaço de cor • Escalonamento e Rotação • Recorte de áreas de interesse • Ajuste de Contraste, Brilho e Equalização de Histograma • Aplicações • Segmentação de imagem baseada em cor, histograma, fundo, etc.. • Filtros baseados em morfologia matemática (erosão, dilatação, abertura e fechamento)  • Filtro de ruídos (passa alta e passa baixa = detecção de borda/suavização) • Processamento de Imagem é um bloco essencial dentro da Visão Computacional como  um todo.
  7. 7. Processamento de Imagens Conversão de espaço de cor Filtro passa baixa / passa alta Segmentação de regiões Morfologia Matemática – Dilatação e Erosão
  8. 8. Processamento de Imagens Entrada (base de dados ou câmera) Entrada (base de dados ou câmera) Pré-processamento (Processamento de Imagem) Pré-processamento (Processamento de Imagem) Extração de Características (formas, contornos, ROIs) Extração de Características (formas, contornos, ROIs) Pós-Processamento (interface de usuário com informações úteis da solução) Pós-Processamento (interface de usuário com informações úteis da solução) Solução do Problema (detecção, reconhecimento, classificação, etc..) Solução do Problema (detecção, reconhecimento, classificação, etc..)
  9. 9. Biblioteca para Visão Computacional Existe alguma ferramenta ou biblioteca realmente boa para trabalhar com visão  computacional e processamento de imagens ? • SIM !!! OpenCV ! E muitas outras,  mas OpenCV (Open Computer Vision Library) é a mais  usada atualmente. • Gratuita tanto para uso educacional quanto comercial (exceto para alguns modelos de dados  já treinados por terceiros, nesse caso, licenças especiais são necessárias para uso comercial) • OpenCV é multiplataforma, o que significa que o mesmo código pode ser compilado sem  alterações para Desktop: Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD, e  Embarcados: Linux, Android, iOS,  Maemo, Blackberry 10.
  10. 10. Principais características da OpenCV • Código Aberto sob a licença BSD (gratuita tanto para uso acadêmico e comercial) • Linguagens de programação suportadas: C/C++, Python and Java • Eficiência Computacional e com forte foco em aplicações RT. • Escrita em C/C++ otimizado e com vantagem do use de processamento multi‐core se habilitado (Multi  Threading – TBB) • Aceleração de Hardware (OpenCL, OpenVX) • Grande suporte pela comunidade (47+K users)
  11. 11. Estrutura da OpenCV (Módulos Principais) • cv – Funcionalidade básica • imgproc – Processamento de Imagens • videoio – Mídia I/O • Highgui – Interface de usuário de alto nível (display output, keyboard/mouse input, etc..) • features2D – framework para extração de características 2D • Objdetect – Detecção de objeto • ml – Machine Learning
  12. 12. OpenCV – Aplicação HelloWorld
  13. 13. Processador Multimídia i.MX6Q 
  14. 14. i.MX6Q: Aceleração de HW em CV • Aceleração com GPU utilizando OpenCL (Open Compute Language) e  OpenVX • OpenCL 2.0 (Full Profile) é necessária para aceleração interna da OpenCV (pode  haver problemas de performance devido a otimizações específicas de hardware).  Não disponível no i.MX6Q • OpenCL 1.x (Embedded Profile): é recomendado que você crie seus próprios kernels  de OpenCL otimizados para processar os buffers da OpenCV, dessa forma extraindo o  máximo de eficiência e performance
  15. 15. i.MX6Q – Suporte de OpenCL • Open Computing Language (OpenCL) é um framework para escrita de programas que  executam em de plataformas heterogêneas, consistindo de CPUs, GPUs, DSPs, FPGs e  outros processadores • OpenCL inclui uma linguagem baseada em C99 para escrita de Kernels (funções que  rodam no dispositivo com OpenCL), e APIs para definicões e controle das plataformas. • OpenCL provê computação paralela baseada em paralelismo de processamento de  dados e tarefas. • OpenCL é um padrão aberto mantido pelo consórcio de tecnologia sem fins lucrativos Khronos Group, que já foi adotada pela Apple, Intel, Qualcomm, Advanced Micro  Devices (AMD), Nvidia, Altera, Samsung, Vivante e ARM Holdings.
  16. 16. i.MX6Q: OpenCL + OpenCV 2D CL Kernel Global Workgroup[2] = {cvMat().width, cvMat().height} Size_2d = globalWorkgroup[0] * globalWorkgroup[1] clEnqueueWrite/Read (..., size_2d, cvMat().data)
  17. 17. i.MX6Q: exemplo de OpenCL + OpenCV
  18. 18. i.MX6Q: Tutorial sobre OpenCL • https://www.embarcados.com.br/imx6qd‐opencl‐embedded‐profile/
  19. 19. Demo – Rastreamento de objetos utilizando CAMshift Filtro Gaussiano Se habilitado Captura de Imagem pela Câmera Inicialização da porta Serial Inicializacão das variáveis do CAMShift Janela de rastreamento ajustada ? Saída para o display Imagem para debug (overlay) Controle do motor STOP - RUN Calcular o CAMShift Calcular o centro da imagem e do centro do objeto Atualizar as variáveis de controle
  20. 20. Resultado
  21. 21. Contato www.sightvision.com.br https://www.linkedin.com/company/sightvision/ https://www.linkedin.com/in/‐andre‐silva/ andre@sightvision.com.br
  22. 22. Obrigado 22/32

    Soyez le premier à commenter

Neste Webinar será apresentado como é feito o desenvolvimento de uma aplicação de visão computacional para sistemas embarcados partindo do básico até a seleção da região de interesse de uma imagem para input de um sistema de Inteligência Artificial ou Machine Learning.

Vues

Nombre de vues

249

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

212

Actions

Téléchargements

1

Partages

0

Commentaires

0

Mentions J'aime

0

×