Discussão:Página principal: mudanças entre as edições

De Caninos Loucos
Ir para navegação Ir para pesquisar
 
(12 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 7: Linha 7:
#'''PySide:''' conjunto de bibliotecas que fornecem a integração entre o ''python'' e ''Qt.4'' (e, em andamento ''Qt.5''). O ''PySide'' fornece uma cadeia completa de ferramentas para a rápida integração com qualquer hierarquia de classes ''C++'' do ''Qt''. Instalação a partir do código fonte. Necessária reinstalação por conta das atualizações impostas ao ''Qt'' para a instalação do ''VTK''.
#'''PySide:''' conjunto de bibliotecas que fornecem a integração entre o ''python'' e ''Qt.4'' (e, em andamento ''Qt.5''). O ''PySide'' fornece uma cadeia completa de ferramentas para a rápida integração com qualquer hierarquia de classes ''C++'' do ''Qt''. Instalação a partir do código fonte. Necessária reinstalação por conta das atualizações impostas ao ''Qt'' para a instalação do ''VTK''.
#'''VTK:''' software ''open source'' para manipulação e exibição de dados científicos. Inclui ferramentas de estado da arte para renderização 3D, uma suíte de widgets para interação 3D e ampla capacidade de plotagem de dados 2D. Instalação a partir do código fonte com completa reestruturação para utilização das instruções de ponto flutuante ''NEON'' e demais extensões de vetorização do ''ARM V7'' (32 bits). Também demanda a atualização do ''Qt''.
#'''VTK:''' software ''open source'' para manipulação e exibição de dados científicos. Inclui ferramentas de estado da arte para renderização 3D, uma suíte de widgets para interação 3D e ampla capacidade de plotagem de dados 2D. Instalação a partir do código fonte com completa reestruturação para utilização das instruções de ponto flutuante ''NEON'' e demais extensões de vetorização do ''ARM V7'' (32 bits). Também demanda a atualização do ''Qt''.
#'''FreeCAD:''' software ''open source'' de modelagem paramétrica 3D (''CAD''). Instalação a partir do código fonte, com reestruturação para a utilização de aceleração ''NEON'' e demais acelerações de ponto flutuante da arquitetura ''ARM V7'' (32 bits), bem como a inclusão de suporte para operações ''OpenGL'' por emulação, permitindo o uso eficiente em plataformas sem suporte para ''DRM'' (aceleração ''OpenGL'' por hardware).
#'''FreeCAD:''' software ''open source'' de modelagem paramétrica 3D (''CAD''). Instalação a partir do código fonte, com reestruturação para a utilização de aceleração ''NEON'' e demais acelerações de ponto flutuante da arquitetura ''ARM V7'' (32 bits), bem como a inclusão de suporte para operações ''OpenGL'' por emulação, permitindo o uso eficiente em plataformas sem suporte para ''DRM'' (aceleração ''OpenGL'' por hardware). No momento não foram feitas otimizações para aceleração ''OpenGL''.
No momento não foram feitas otimizações para aceleração OpenGL (por
#'''Go:''' ''Go'' é um projeto de código aberto desenvolvido pela equipe do ''Google'' e muitos contribuidores da comunidade open source. É um ambiente de programação de código aberto que faz com que seja fácil de construir software simples, confiável e eficiente. Utilizado para a construção o pacote ''Electrum''. Linguagem de desenvolvimento da Google, utilizada para compilação do Electrum. Instalação  ''vanilla'' (sem grandes configurações ou alterações/patches).
conta da ausência de drivers).
#'''Electrum:''' Plataforma blockchain para processamento - dentre outros - de carteiras ''BitCoin''. Instalação ''vanilla'' a partir do código fonte.
#'''Go'''
#'''ffmpeg:''' software de processamento de vídeo e áudio. Instalação a partir do código fonte. Reconfigurado para utilização de todas as acelerações em operações de ponto flutuante e para a adição de todos os codecs possíveis. Sem utilização de aceleração ''OpenGL''.
#'''Electrum'''
#'''coremark:''' software de benchmark escalar e ponto flutuante (''CPU benchmark''). Instalação vanilla a partir do código fonte.
#'''ffmpeg'''
#'''glmark2:''' software de benchmark de ''GPUs'' (processadores gráficos). Instalação vanilla a partir do código fonte.
#'''coremark'''
#'''burrow:''' software de carteira de moedas virtuais (particularmente aderente ao ''Ethereum''. É um projeto hospedado pela ''The Linux Foundation''. Instalação ''vanilla'' a partir do código fonte.
#'''glmark2'''
#'''burrow'''
;'''Instalações'''
;'''Instalações'''
#'''Plataforma python3'''
#'''Plataforma python3:''' completa. Todas as extensões de processamento numérico, banco de dados, interfaces gráficas, integrações com aplicativos e com demais infraestruturas de programação, processamento de vídeo e áudio, ''spyder3 SDK''.
#'''Keras'''
#'''Keras:''' front end para ''deep learning''. Instalação vanilla.
#'''Theano'''
#'''Theano:''' back end para ''deep learning''. Instalação vanilla. Contém basicamente as mesmas funcionalidades do ''tensorflow''. O desempenho de processamento em plataformas intel é menor por conta do menor número de otimizações agressivas, entretanto exatamente pela ausência dessas otimizações a portabilidade é muito maior, incluindo as plataformas ''ARM V7''. Nas plataformas ''ARM V7'' é possível habilitar as extensões ''NEON'' e demais vetorizações melhorando sensivelmente o desempenho relativo à versão vanilla.
#'''tensorflow:''' back end para ''deep learning''. Instalação altamente dependente de patches, dependente de ''bazel'' e dependente de arquitetura. Atualmente encontra-se portado em 50% e depende do desenvolvimento de patches para a arquitetura ''SoC S500''.
;'''Softwares Desenvolvidos'''
;'''Softwares Desenvolvidos'''
#'''Identificação e contagem de carros'''
#'''Identificação e contagem de carros passando por uma barreira:''' desenvolvido em python3 e utilizando OpenCV. A partir de um stream de vídeo faz a análise quadro a quadro identificando objetos movendo-se no campo. Aplica critério de identificação para determinar se o objeto é ou não um veículo. Se for veículo faz a segmentação e acompanhamento do movimento até a saída do campo visual. Na passagem pela barreira faz a contagem e gera um "snapshot" do veículo. O snapshot é armazenado como arquivo jpeg e posteriormente analizado por outro software que faz a identificação da placa do veículo. Além disso é gerado um arquivo de vídeo avi contendo todo o movimento anotado na via.
#'''Identificação de placas de licenciamento'''
#'''Identificação de placas de licenciamento:''' desenvolvido em python3 e utilizando opencv, Keras e theano. A partir de um "snapshot" contendo veículo faz a identificação da placa e a partir da identificação da placa faz o reconhecimento dos caracteres da licença.
;'''Softwares Adaptados'''
;'''Softwares Adaptados'''
#'''Identificação de faces'''
#'''Identificação de faces (rostos) em frames:''' desenvolvido em python3 e utilizando OpenCV, Keras e theano. A partir de um snapshot faz a identificação de faces, a segmentação das faces e a identificação da face contra um banco de dados de faces conhecidas. Foi adaptado levando em conta a possibilidade de integração ao software de identificação de veículos e placas. Dado que o snapshot do veículo pega o para brisas, a face do motorista e passageiro podem ser identificadas, segmentadas e comparadas contra uma base de dados de faces conhecidas com evidentes utilizações em segurança pública. Ressalto que este não é software de autoria da equipe do ''LSITEC'', mas foram feitas adaptações e customizações. No momento trabalha-se no desenvolvimento de uma versão própria e mais aderente às necessidades dos projetos do ''LSITEC''.
 
== Manual de Instalação Bazel ==
 
#Obtendo o Bazel
#Pré-requisitos
#Configuração do Ambiente
#Montando o Bazel
#Instalando o Bazel
#Testando o Bazel

Edição atual tal como às 20h40min de 11 de setembro de 2019

Softwares e Aplicações Portados Para Caninos Labrador V1.x V2.x

Softwares Portados:
  1. Bazel: ferramenta desenvolvida pela Google para desenvolvimento de software. Provê uma interface contínua e consistente para desenvolvimento de aplicações com a possibilidade de utilização de múltiplas linguagens de programação. O porte para o Labrador foi feito utilizando a metodologia de bootstrap. Como suporte para o tensoflow. Versões 0.23.2 e 0.24.1. Foram feitas adequações para a execução dos compiladores java. Adequações principais: redimensionamento dos stacks do compilador java e reparametrização para usar o openjdk.dado que a Oracle encerrou o ciclo java para ARM 32 bits no JDK 8.
  2. OpenCV: conjunto de bibliotecas e ferramentas no campo da visão computacional. Instalação a partir do código fonte. Bibliotecas Linux e suporte ao Python 3. Completa reconfiguração para autilização dos conjuntos de instruções NEON e demais extensões de ponto flutuante e vetorização do ARM V7 (32 bits). Substituição de toda a infraestrutura original OpenCV da distribuição Debian pelo código recompilado, inclusive removendo eventuais extensões OpenCV instaladas no python via pip.
  3. OpenMPI: conjunto de bibliotecas e ferramentas para o desenvolvimento de aplicações com paralelismo massivo MIMD. Foi realizada a instalação a partir do código fonte, substituindo completamente as bibliotecas da distribuição Debian. Completa reconfiguração para a utilização otimizada dos conjuntos de instruções ARM V7 (32 bits). Substituição de toda a infraestrutura original da distribuição pelo código recompilado, inclusive removendo bibliotecas locais e demais links.
  4. PySide: conjunto de bibliotecas que fornecem a integração entre o python e Qt.4 (e, em andamento Qt.5). O PySide fornece uma cadeia completa de ferramentas para a rápida integração com qualquer hierarquia de classes C++ do Qt. Instalação a partir do código fonte. Necessária reinstalação por conta das atualizações impostas ao Qt para a instalação do VTK.
  5. VTK: software open source para manipulação e exibição de dados científicos. Inclui ferramentas de estado da arte para renderização 3D, uma suíte de widgets para interação 3D e ampla capacidade de plotagem de dados 2D. Instalação a partir do código fonte com completa reestruturação para utilização das instruções de ponto flutuante NEON e demais extensões de vetorização do ARM V7 (32 bits). Também demanda a atualização do Qt.
  6. FreeCAD: software open source de modelagem paramétrica 3D (CAD). Instalação a partir do código fonte, com reestruturação para a utilização de aceleração NEON e demais acelerações de ponto flutuante da arquitetura ARM V7 (32 bits), bem como a inclusão de suporte para operações OpenGL por emulação, permitindo o uso eficiente em plataformas sem suporte para DRM (aceleração OpenGL por hardware). No momento não foram feitas otimizações para aceleração OpenGL.
  7. Go: Go é um projeto de código aberto desenvolvido pela equipe do Google e muitos contribuidores da comunidade open source. É um ambiente de programação de código aberto que faz com que seja fácil de construir software simples, confiável e eficiente. Utilizado para a construção o pacote Electrum. Linguagem de desenvolvimento da Google, utilizada para compilação do Electrum. Instalação vanilla (sem grandes configurações ou alterações/patches).
  8. Electrum: Plataforma blockchain para processamento - dentre outros - de carteiras BitCoin. Instalação vanilla a partir do código fonte.
  9. ffmpeg: software de processamento de vídeo e áudio. Instalação a partir do código fonte. Reconfigurado para utilização de todas as acelerações em operações de ponto flutuante e para a adição de todos os codecs possíveis. Sem utilização de aceleração OpenGL.
  10. coremark: software de benchmark escalar e ponto flutuante (CPU benchmark). Instalação vanilla a partir do código fonte.
  11. glmark2: software de benchmark de GPUs (processadores gráficos). Instalação vanilla a partir do código fonte.
  12. burrow: software de carteira de moedas virtuais (particularmente aderente ao Ethereum. É um projeto hospedado pela The Linux Foundation. Instalação vanilla a partir do código fonte.
Instalações
  1. Plataforma python3: completa. Todas as extensões de processamento numérico, banco de dados, interfaces gráficas, integrações com aplicativos e com demais infraestruturas de programação, processamento de vídeo e áudio, spyder3 SDK.
  2. Keras: front end para deep learning. Instalação vanilla.
  3. Theano: back end para deep learning. Instalação vanilla. Contém basicamente as mesmas funcionalidades do tensorflow. O desempenho de processamento em plataformas intel é menor por conta do menor número de otimizações agressivas, entretanto exatamente pela ausência dessas otimizações a portabilidade é muito maior, incluindo as plataformas ARM V7. Nas plataformas ARM V7 é possível habilitar as extensões NEON e demais vetorizações melhorando sensivelmente o desempenho relativo à versão vanilla.
  4. tensorflow: back end para deep learning. Instalação altamente dependente de patches, dependente de bazel e dependente de arquitetura. Atualmente encontra-se portado em 50% e depende do desenvolvimento de patches para a arquitetura SoC S500.
Softwares Desenvolvidos
  1. Identificação e contagem de carros passando por uma barreira: desenvolvido em python3 e utilizando OpenCV. A partir de um stream de vídeo faz a análise quadro a quadro identificando objetos movendo-se no campo. Aplica critério de identificação para determinar se o objeto é ou não um veículo. Se for veículo faz a segmentação e acompanhamento do movimento até a saída do campo visual. Na passagem pela barreira faz a contagem e gera um "snapshot" do veículo. O snapshot é armazenado como arquivo jpeg e posteriormente analizado por outro software que faz a identificação da placa do veículo. Além disso é gerado um arquivo de vídeo avi contendo todo o movimento anotado na via.
  2. Identificação de placas de licenciamento: desenvolvido em python3 e utilizando opencv, Keras e theano. A partir de um "snapshot" contendo veículo faz a identificação da placa e a partir da identificação da placa faz o reconhecimento dos caracteres da licença.
Softwares Adaptados
  1. Identificação de faces (rostos) em frames: desenvolvido em python3 e utilizando OpenCV, Keras e theano. A partir de um snapshot faz a identificação de faces, a segmentação das faces e a identificação da face contra um banco de dados de faces conhecidas. Foi adaptado levando em conta a possibilidade de integração ao software de identificação de veículos e placas. Dado que o snapshot do veículo pega o para brisas, a face do motorista e passageiro podem ser identificadas, segmentadas e comparadas contra uma base de dados de faces conhecidas com evidentes utilizações em segurança pública. Ressalto que este não é software de autoria da equipe do LSITEC, mas foram feitas adaptações e customizações. No momento trabalha-se no desenvolvimento de uma versão própria e mais aderente às necessidades dos projetos do LSITEC.

Manual de Instalação Bazel

  1. Obtendo o Bazel
  2. Pré-requisitos
  3. Configuração do Ambiente
  4. Montando o Bazel
  5. Instalando o Bazel
  6. Testando o Bazel