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

De Caninos Loucos
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(26 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Softwares e Aplicações:
<inputbox>
type=create
width=100
break=no
buttonlabel=Create new article
default=(Article title)
</inputbox>
== Softwares e Aplicações Portados Para Caninos Labrador V1.x V2.x ==
== Softwares e Aplicações Portados Para Caninos Labrador V1.x V2.x ==


;'''Softwares Portados'''
;'''Softwares Portados:'''
#'''Bazel'''
#'''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.
#'''OpenCV'''
#'''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''.
#'''OpenMPI'''
#'''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.
#'''PySide'''
#'''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'''
#'''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'''
#'''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''.
#'''Go'''
#'''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).
#'''Electrum'''
#'''Electrum:''' Plataforma blockchain para processamento - dentre outros - de carteiras ''BitCoin''. Instalação ''vanilla'' a partir do código fonte.
#'''ffmpeg'''
#'''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''.
#'''coremark'''
#'''coremark:''' software de benchmark escalar e ponto flutuante (''CPU benchmark''). Instalação vanilla a partir do código fonte.
#'''glmark2'''
#'''glmark2:''' software de benchmark de ''GPUs'' (processadores gráficos). Instalação vanilla a partir do código fonte.
#'''burrow'''
#'''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'''
;'''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