Discussão:Página principal: mudanças entre as edições
Ir para navegação
Ir para pesquisar
(Criou página com 'Softwares e Aplicações: <inputbox> type=create width=100 break=no buttonlabel=Create new article default=(Article title) </inputbox>') |
(→Manual de Instalação Bazel: nova seção) |
||
(28 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Softwares e Aplicações | == Softwares e Aplicações Portados Para Caninos Labrador V1.x V2.x == | ||
;'''Softwares Portados:''' | |||
#'''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:''' 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:''' 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:''' 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''. | |||
#'''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'' é 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:''' Plataforma blockchain para processamento - dentre outros - de carteiras ''BitCoin''. Instalação ''vanilla'' a partir do código fonte. | |||
#'''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:''' software de benchmark escalar e ponto flutuante (''CPU benchmark''). Instalação vanilla a partir do código fonte. | |||
#'''glmark2:''' software de benchmark de ''GPUs'' (processadores gráficos). Instalação vanilla a partir do código fonte. | |||
#'''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''' | |||
#'''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:''' front end para ''deep learning''. Instalação vanilla. | |||
#'''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''' | |||
#'''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:''' 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''' | |||
#'''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:
- 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: 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: 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: 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.
- 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 é 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: Plataforma blockchain para processamento - dentre outros - de carteiras BitCoin. Instalação vanilla a partir do código fonte.
- 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: software de benchmark escalar e ponto flutuante (CPU benchmark). Instalação vanilla a partir do código fonte.
- glmark2: software de benchmark de GPUs (processadores gráficos). Instalação vanilla a partir do código fonte.
- 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
- 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: front end para deep learning. Instalação vanilla.
- 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
- 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: 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
- 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