Nesta série de duas partes, demonstramos como rotular e treinar modelos para tarefas de detecção de objetos 3D. Na parte 1, discutimos o conjunto de dados que estamos usando, bem como quaisquer etapas de pré-processamento para entender e rotular os dados. Na parte 2, explicamos como treinar um modelo em seu conjunto de dados e implantá-lo na produção.
LiDAR (detecção de luz e alcance) é um método para determinar alcances mirando um objeto ou superfície com um laser e medindo o tempo para que a luz refletida retorne ao receptor. As empresas de veículos autônomos normalmente usam sensores LiDAR para gerar uma compreensão 3D do ambiente ao redor de seus veículos.
À medida que os sensores LiDAR se tornam mais acessíveis e econômicos, os clientes estão usando cada vez mais os dados da nuvem de pontos em novos espaços, como robótica, mapeamento de sinais e realidade aumentada. Alguns novos dispositivos móveis incluem até sensores LiDAR. A crescente disponibilidade de sensores LiDAR aumentou o interesse em dados de nuvem de pontos para tarefas de aprendizado de máquina (ML), como detecção e rastreamento de objetos 3D, segmentação 3D, síntese e reconstrução de objetos 3D e uso de dados 3D para validar a estimativa de profundidade 2D.
Nesta série, mostramos como treinar um modelo de detecção de objetos executado em dados de nuvem de pontos para prever a localização de veículos em uma cena 3D. Neste post, focamos especificamente na rotulagem de dados LiDAR. A saída padrão do sensor LiDAR é uma sequência de quadros de nuvens de pontos 3D, com uma taxa de captura típica de 10 quadros por segundo. Para rotular essa saída do sensor, você precisa de uma ferramenta de rotulagem que possa lidar com dados 3D. Verdade no solo do Amazon SageMaker facilita rotular objetos em um único quadro 3D ou em uma sequência de quadros de nuvens de pontos 3D para criar conjuntos de dados de treinamento de ML. O Ground Truth também oferece suporte à fusão de sensores de dados de câmera e LiDAR com até oito entradas de câmera de vídeo.
Os dados são essenciais para qualquer projeto de ML. Os dados 3D, em particular, podem ser difíceis de obter, visualizar e rotular. Nós usamos o conjunto de dados A2D2 nesta postagem e orientá-lo nas etapas para visualizá-lo e rotulá-lo.
A2D2 contém 40,000 quadros com segmentação semântica e rótulos de nuvem de pontos, incluindo 12,499 quadros com rótulos de caixa delimitadora 3D. Como estamos focando na detecção de objetos, estamos interessados nos 12,499 quadros com rótulos de caixa delimitadora 3D. Essas anotações incluem 14 classes relevantes para dirigir como carro, pedestre, caminhão, ônibus, etc.
A tabela a seguir mostra a lista completa de classes:
Índice | Lista de classes |
1 | animal |
2 | bicicleta |
3 | ônibus |
4 | carro |
5 | transportador de caravana |
6 | ciclista |
7 | veículo de emergência |
8 | motociclista |
9 | motocicleta |
10 | pedestre |
11 | trailer |
12 | caminhão |
13 | Veículo utilitário |
14 | van/SUV |
Treinaremos nosso detector para detectar carros especificamente, pois essa é a classe mais comum em nosso conjunto de dados (32616 do total de 42816 objetos no conjunto de dados são rotulados como carros).
Visão geral da solução
Nesta série, abordamos como visualizar e rotular seus dados com o Amazon SageMaker Ground Truth e demonstramos como usar esses dados em um trabalho de treinamento do Amazon SageMaker para criar um modelo de detecção de objeto implantado em um endpoint do Amazon SageMaker. Em particular, usaremos um bloco de anotações do Amazon SageMaker para operar a solução e iniciar qualquer trabalho de rotulagem ou treinamento.
O diagrama a seguir descreve o fluxo geral de dados do sensor desde a rotulagem até o treinamento e a implantação:
Você aprenderá como treinar e implantar um modelo de detecção de objetos 3D em tempo real com Amazon Sage Maker Ground Truth com as seguintes etapas:
- Baixe e visualize um conjunto de dados de nuvem de pontos
- Prepare os dados para serem rotulados com o Ferramenta de nuvem de pontos Amazon SageMaker Ground Truth
- Inicie um trabalho de treinamento distribuído do Amazon SageMaker Ground Truth com MMDetecção3D
- Avalie os resultados do trabalho de treinamento e crie o perfil da utilização de recursos com Depurador do Amazon SageMaker
- Implantar um assíncrono Endpoint SageMaker
- Chame o endpoint e visualize previsões de objetos 3D
Serviços da AWS usados para implementar esta solução
Pré-requisitos
O diagrama a seguir demonstra como criar uma força de trabalho privada. Para obter instruções escritas passo a passo, consulte Crie uma força de trabalho do Amazon Cognito usando a página Labeling Workforces.
Iniciar a pilha do AWS CloudFormation
Agora que você viu a estrutura da solução, implante-a em sua conta para poder executar um fluxo de trabalho de exemplo. Todas as etapas de implantação relacionadas ao pipeline de rotulagem são gerenciadas pelo AWS CloudFormation. Isso significa que o AWS Cloudformation cria sua instância de bloco de anotações, bem como quaisquer funções ou buckets do Amazon S3 para dar suporte à execução da solução.
Você pode lançar a pilha na região AWS us-east-1
no console do AWS CloudFormation usando o Pilha de Lançamento
botão. Para iniciar a pilha em uma região diferente, use as instruções encontradas no README do Repositório GitHub.
Isso leva aproximadamente 20 minutos para criar todos os recursos. Você pode monitorar o progresso na interface do usuário (IU) do AWS CloudFormation.
Depois que seu modelo do CloudFormation terminar de executar, volte para o Console AWS.
Abrindo o Caderno
As instâncias de notebook do Amazon SageMaker são instâncias de computação de ML executadas no aplicativo Jupyter Notebook. O Amazon SageMaker gerencia a criação de instâncias e recursos relacionados. Use notebooks Jupyter em sua instância de notebook para preparar e processar dados, escrever código para treinar modelos, implantar modelos na hospedagem do Amazon SageMaker e testar ou validar seus modelos.
Siga as próximas etapas para acessar o ambiente de notebook do Amazon SageMaker:
- Em serviços, procure por Amazon Sage Maker.
- Debaixo Portátil, selecione Instâncias de notebook.
- Uma instância de Notebook deve ser provisionada. Selecione Abrir JupyterLabGenericName, que está localizado no lado direito da instância de Notebook pré-provisionada em Opções.
- Você verá um ícone como este conforme a página é carregada:
- Você será redirecionado para uma nova guia do navegador semelhante ao diagrama a seguir:
- Quando estiver na IU do iniciador de instâncias de notebook do Amazon SageMaker. Na barra lateral esquerda, selecione o Git ícone conforme mostrado no diagrama a seguir.
- Selecionar Clonar um repositório opção.
- Insira o URL do GitHub (https://github.com/aws-samples/end-2-end-3d-ml) na janela pop-up e escolha clonar.
- Selecionar Navegador de Arquivos para ver a pasta GitHub.
- Abra o bloco de notas intitulado
1_visualization.ipynb.
Operando o Notebook
Visão geral
As primeiras células do notebook na seção intitulada Arquivos baixados mostra como baixar o conjunto de dados e inspecionar os arquivos dentro dele. Depois que as células são executadas, leva alguns minutos para que os dados sejam baixados.
Depois de baixado, você pode revisar a estrutura do arquivo A2D2, que é uma lista de cenas ou unidades. Uma cena é uma pequena gravação dos dados do sensor do nosso veículo. A2D2 fornece 18 dessas cenas para treinarmos, todas identificadas por datas únicas. Cada cena contém dados de câmera 2D, rótulos 2D, anotações cubóides 3D e nuvens de pontos 3D.
Você pode visualizar a estrutura do arquivo para o conjunto de dados A2D2 com o seguinte:
Configuração do sensor A2D2
A próxima seção percorre a leitura de alguns desses dados de nuvem de pontos para garantir que estamos interpretando-os corretamente e podemos visualizá-los no notebook antes de tentar convertê-los em um formato pronto para rotulagem de dados.
Para qualquer tipo de configuração de direção autônoma em que temos dados de sensores 2D e 3D, a captura dos dados de calibração do sensor é essencial. Além dos dados brutos, também baixamos cams_lidar.json
. Este arquivo contém a tradução e orientação de cada sensor em relação ao quadro de coordenadas do veículo, isso também pode ser chamado de pose do sensor ou localização no espaço. Isso é importante para converter pontos do quadro de coordenadas de um sensor para o quadro de coordenadas do veículo. Em outras palavras, é importante visualizar os sensores 2D e 3D enquanto o veículo dirige. O referencial de coordenadas do veículo é definido como um ponto estático no centro do veículo, com o eixo x na direção do movimento para frente do veículo, o eixo y denotando esquerda e direita com esquerda sendo positivo e z- eixo apontando através do teto do veículo. Um ponto (X,Y,Z) de (5,2,1) significa que este ponto está 5 metros à frente do nosso veículo, 2 metros à esquerda e 1 metro acima do nosso veículo. Ter essas calibrações também nos permite projetar pontos 3D em nossa imagem 2D, o que é especialmente útil para tarefas de rotulagem de nuvens de pontos.
Para ver a configuração do sensor no veículo, verifique o diagrama a seguir.
Os dados da nuvem de pontos em que estamos treinando são especificamente alinhados com a câmera frontal ou o centro frontal da câmera:
Isso corresponde à nossa visualização de sensores de câmera em 3D:
Esta parte do notebook valida se o conjunto de dados A2D2 corresponde às nossas expectativas sobre as posições do sensor e se somos capazes de alinhar os dados dos sensores da nuvem de pontos no quadro da câmera. Sinta-se à vontade para executar todas as células naquela intitulada Projeção de 3D para 2D para ver a sobreposição de dados da nuvem de pontos na seguinte imagem da câmera.
Conversão para o Amazon SageMaker Ground Truth
Depois de visualizar nossos dados em nosso notebook, podemos converter com confiança nossas nuvens de pontos em Amazon Formato 3D do SageMaker Ground Truth para verificar e ajustar nossos rótulos. Esta seção descreve a conversão do formato de dados do A2D2 em um Amazon Arquivo de sequência do SageMaker Ground Truth, com o formato de entrada usado pela modalidade de rastreamento de objetos.
O formato do arquivo de sequência inclui os formatos de nuvem de pontos, as imagens associadas a cada nuvem de pontos e todos os dados de posição e orientação do sensor necessários para alinhar imagens com nuvens de pontos. Essas conversões são feitas usando as informações do sensor lidas na seção anterior. O exemplo a seguir é um formato de arquivo de sequência do Amazon SageMaker Ground Truth, que descreve uma sequência com apenas um único intervalo de tempo.
A nuvem de pontos para este intervalo de tempo está localizada em s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/20180807145028_lidar_frontcenter_000000091.txt
e tem um formato de <x coordinate> <y coordinate> <z coordinate>
.
Associada à nuvem de pontos, está uma única imagem de câmera localizada em s3://sagemaker-us-east-1-322552456788/a2d2_smgt/20180807_145028_out/undistort_20180807145028_camera_frontcenter_000000091.png
. Observe que pegamos o arquivo de sequência que define todos os parâmetros da câmera para permitir a projeção da nuvem de pontos para a câmera e vice-versa.
A conversão para esse formato de entrada exige que gravemos uma conversão do formato de dados do A2D2 para formatos de dados compatíveis com o Amazon SageMaker Ground Truth. Este é o mesmo processo pelo qual qualquer pessoa deve passar ao trazer seus próprios dados para rotulagem. Explicaremos como essa conversão funciona, passo a passo. Se estiver acompanhando no caderno, observe a função chamada a2d2_scene_to_smgt_sequence_and_seq_label
.
conversão de nuvem de pontos
A primeira etapa é converter os dados de um arquivo compactado com formato Numpy (NPZ), que foi gerado com o numpy.savez método, para um formato 3D bruto aceito para Amazon SageMaker Ground Truth. Especificamente, geramos um arquivo com uma linha por ponto. Cada ponto 3D é definido por três coordenadas de ponto flutuante X, Y e Z. Quando especificamos nosso formato no arquivo de sequência, usamos a string text/xyz
para representar este formato. O Amazon SageMaker Ground Truth também oferece suporte para adicionar valores de intensidade ou pontos Red Green Blue (RGB).
Os arquivos NPZ do A2D2 contêm vários arrays Numpy, cada um com seu próprio nome. Para realizar uma conversão, carregamos o arquivo NPZ usando o Numpy's carregar método, acesse o array chamado pontos (ou seja, uma matriz Nx3, onde N é o número de pontos na nuvem de pontos) e salve como texto em um novo arquivo usando o Numpy's salvartxt método.
Pré-processamento de imagem
Em seguida, preparamos nossos arquivos de imagem. A2D2 fornece imagens PNG e Amazon SageMaker Ground Truth oferece suporte a imagens PNG; no entanto, essas imagens são distorcidas. A distorção geralmente ocorre porque a lente de captura de imagem não está alinhada paralelamente ao plano de imagem, o que faz com que algumas áreas da imagem pareçam mais próximas do que o esperado. Essa distorção descreve a diferença entre uma câmera física e uma modelo idealizado de câmera pinhole. Se a distorção não for levada em consideração, o Amazon SageMaker Ground Truth não poderá renderizar nossos pontos 3D na parte superior das visualizações da câmera, o que torna mais difícil executar a rotulagem. Para obter um tutorial sobre calibração de câmera, consulte esta documentação de OpenCV.
Embora o Amazon SageMaker Ground Truth ofereça suporte a coeficientes de distorção em seu arquivo de entrada, você também pode executar o pré-processamento antes do trabalho de rotulagem. Como o A2D2 fornece código auxiliar para realizar a desdistorção, nós o aplicamos à imagem e deixamos os campos relacionados à distorção fora do nosso arquivo de sequência. Observe que os campos relacionados à distorção incluem k1, k2, k3, k4, p1, p2 e inclinação.
Posição da câmera, orientação e conversão de projeção
Além dos arquivos de dados brutos necessários para rotulagem, o arquivo de sequência também requer informações de posição e orientação da câmera para realizar a projeção de pontos 3D nas visualizações de câmera 2D. Precisamos saber para onde a câmera está olhando no espaço 3D para descobrir como os rótulos cubóides 3D e os pontos 3D devem ser renderizados em cima de nossas imagens.
Como carregamos nossas posições de sensor em um gerenciador de transformação comum na seção de configuração do sensor A2D2, podemos consultar facilmente o gerenciador de transformação para obter as informações que desejamos. Em nosso caso, tratamos a posição do veículo como (0, 0, 0) em cada quadro porque não temos informações de posição do sensor fornecidas pelo conjunto de dados de detecção de objetos de A2D2. Portanto, em relação ao nosso veículo, a orientação e a posição da câmera são descritas pelo seguinte código:
Agora que a posição e a orientação foram convertidas, também precisamos fornecer valores para fx, fy, cx e cy, todos os parâmetros para cada câmera no formato de arquivo de sequência.
Esses parâmetros referem-se a valores na matriz da câmera. Enquanto a posição e a orientação descrevem para que lado a câmera está voltada, a matriz da câmera descreve o campo de visão da câmera e exatamente como um ponto 3D relativo à câmera é convertido em uma localização de pixel 2D em uma imagem.
A2D2 fornece uma matriz de câmera. Uma matriz de câmera de referência é mostrada no código a seguir, juntamente com a forma como nosso notebook indexa essa matriz para obter os campos apropriados.
Com todos os campos analisados do formato A2D2, podemos salvar o arquivo de sequência e usá-lo em um Amazon Arquivo de manifesto de entrada do SageMaker Ground Truth para iniciar um trabalho de rotulagem. Este trabalho de rotulagem nos permite criar rótulos de caixa delimitadora 3D para usar a jusante para treinamento de modelo 3D.
Execute todas as células até o final do notebook e certifique-se de substituir o workteam
ARN com Amazon SageMaker Ground Truth workteam
ARN você criou um pré-requisito. Após cerca de 10 minutos marcando o tempo de criação do trabalho, você poderá fazer login no portal do trabalhador e usar o rotulando a interface do usuário para visualizar sua cena.
limpar
Exclua a pilha do AWS CloudFormation que você implantou usando o Pilha de Lançamento botão chamado ThreeD
no console do AWS CloudFormation para remover todos os recursos usados nesta postagem, incluindo todas as instâncias em execução.
Custos estimados
O custo aproximado é de $ 5 por 2 horas.
Conclusão
Nesta postagem, demonstramos como obter dados 3D e convertê-los em um formulário pronto para rotulagem no Amazon SageMaker Ground Truth. Com essas etapas, você pode rotular seus próprios dados 3D para treinar modelos de detecção de objetos. Na próxima postagem desta série, mostraremos como pegar A2D2 e treinar um modelo de detector de objetos nos rótulos já existentes no conjunto de dados.
Feliz Edifício!
Sobre os autores
Isaac Privitera é Cientista de Dados Sênior na Laboratório de soluções de aprendizado de máquina da Amazon, onde desenvolve soluções personalizadas de aprendizado de máquina e aprendizado profundo para resolver os problemas de negócios dos clientes. Ele trabalha principalmente no espaço de visão computacional, com foco em capacitar os clientes da AWS com treinamento distribuído e aprendizado ativo.
Vidya Sagar Ravipati é gerente na Laboratório de soluções de aprendizado de máquina da Amazon, onde ele aproveita sua vasta experiência em sistemas distribuídos de grande escala e sua paixão pelo aprendizado de máquina para ajudar os clientes da AWS em diferentes setores da indústria a acelerar sua adoção de IA e nuvem. Anteriormente, ele foi engenheiro de aprendizado de máquina em serviços de conectividade na Amazon, que ajudou a construir plataformas de personalização e manutenção preditiva.
Jeremy Feltracco é um Engenheiro de Desenvolvimento de Software com th Laboratório de soluções de aprendizado de máquina da Amazon na Amazon Web Services. Ele usa sua experiência em visão computacional, robótica e aprendizado de máquina para ajudar os clientes da AWS a acelerar a adoção de IA.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/using-amazon-sagemaker-with-point-clouds-part-1-ground-truth-for-3d-labeling/
- :é
- $UP
- 000
- 1
- 10
- 100
- 1996
- 2D
- 3d
- 7
- 9
- a
- Capaz
- Sobre
- acima
- acelerar
- Acesso
- acessível
- Conta
- em
- ativo
- Adição
- endereço
- Adoção
- Depois de
- à frente
- AI
- alinhado
- Todos os Produtos
- permite
- já
- Amazon
- Amazon Cognito
- Amazon Sage Maker
- Verdade no solo do Amazon SageMaker
- Amazon Web Services
- e
- qualquer um
- app
- Aplicar
- apropriado
- aproximadamente
- arquitetura
- SOMOS
- áreas
- por aí
- Ordem
- AS
- associado
- At
- aumentado
- Realidade Aumentada
- Autônomo
- disponibilidade
- AWS
- Formação da Nuvem AWS
- em caminho duplo
- fundo
- BE
- Porque
- tornam-se
- antes
- ser
- abaixo
- entre
- Azul
- Caixa
- Trazendo
- navegador
- construir
- Prédio
- ônibus
- negócio
- botão
- by
- chamado
- Câmera
- CAN
- capturar
- Capturar
- carro
- carros
- casas
- Células
- Centralização de
- desafiante
- verificar
- Escolha
- classe
- aulas
- mais próximo
- Na nuvem
- adoção de nuvem
- código
- comum
- Empresas
- completar
- Computar
- computador
- Visão de Computador
- com confiança
- Conectividade
- cônsul
- não contenho
- contém
- Conversão
- conversões
- converter
- convertido
- coordenar
- Custo
- relação custo-benefício
- cobrir
- crio
- criado
- cria
- criação
- Clientes
- CX
- dados,
- cientista de dados
- conjuntos de dados
- Datas
- profundo
- deep learning
- definido
- Define
- demonstrar
- demonstraram
- demonstra
- implantar
- implantado
- desenvolvimento
- profundidade
- descreve
- descrito
- Detecção
- determinando
- Desenvolvimento
- desenvolve
- Dispositivos/Instrumentos
- diferença
- diferente
- difícil
- direção
- discutir
- distribuído
- Sistemas distribuídos
- treinamento distribuído
- documentação
- não
- download
- condução
- e
- cada
- facilmente
- permitindo
- Ponto final
- engenheiro
- garantir
- Meio Ambiente
- especialmente
- essencial
- etc.
- Mesmo
- exatamente
- exemplo
- expectativas
- esperado
- vasta experiência
- enfrentando
- poucos
- campo
- Campos
- Figura
- Envie o
- Arquivos
- acabamento
- Primeiro nome
- flutuante
- fluxo
- Foco
- focando
- seguinte
- Escolha
- formulário
- formato
- para a frente
- encontrado
- QUADRO
- Gratuito
- da
- frente
- função
- fusão
- FX
- gerar
- gerado
- ter
- gif
- Git
- GitHub
- Go
- vai
- Verde
- Solo
- Crescente
- manipular
- Ter
- ter
- Título
- ajudar
- ajudou
- útil
- hospedagem
- HORÁRIO
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- HTTPS
- i
- ÍCONE
- identificado
- imagem
- imagens
- Imagiologia
- executar
- importante
- in
- Em outra
- incluir
- inclui
- Incluindo
- aumentou
- cada vez mais
- índices
- indústria
- INFORMAÇÕES
- entrada
- instância
- instruções
- interesse
- interessado
- Interface
- IT
- ESTÁ
- Trabalho
- Empregos
- jpg
- json
- Tipo
- Saber
- O rótulo
- marcação
- Rótulos
- em grande escala
- laser
- lançamento
- APRENDER
- aprendizagem
- Deixar
- aproveita as
- leve
- como
- Lista
- carregar
- cargas
- localizado
- localização
- olhar
- procurando
- OLHARES
- máquina
- aprendizado de máquina
- manutenção
- fazer
- FAZ
- gerenciados
- Gerente
- gestão
- mapeamento
- Matriz
- significa
- medição
- método
- Minutos
- ML
- Móvel Esteira
- dispositivos móveis
- modelo
- modelos
- Monitore
- mais
- a maioria
- movimento
- múltiplo
- nome
- Nomeado
- você merece...
- Novo
- Próximo
- caderno
- número
- numpy
- objeto
- Detecção de Objetos
- objetos
- of
- on
- ONE
- aberto
- OpenCV
- operar
- Opção
- Outros
- saída
- global
- próprio
- página
- Paralelo
- parâmetros
- parte
- particular
- paixão
- caminho
- Realizar
- Personalização
- físico
- oleoduto
- pixels
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- pontos
- Portal
- posição
- abertas
- positivo
- Publique
- predizer
- Preparar
- anterior
- anteriormente
- principalmente
- privado
- problemas
- processo
- Produção
- profiling
- Progresso
- projeto
- Projeção
- fornecido
- fornece
- variando
- Taxa
- Cru
- Leia
- Leitura
- pronto
- em tempo real
- Realidade
- gravação
- Vermelho
- a que se refere
- refletida
- região
- relacionado
- relevante
- remanescente
- remover
- substituir
- representar
- requeridos
- exige
- recurso
- Recursos
- Resultados
- retorno
- rever
- RGB
- robótica
- papéis
- telhado
- LINHA
- Execute
- corrida
- s
- sábio
- mesmo
- Salvar
- cena
- Cenas
- Cientista
- Pesquisar
- Segundo
- Seção
- segmentação
- senior
- sensor
- Seqüência
- Série
- Serviços
- instalação
- Baixo
- rede de apoio social
- mostrar
- mostrando
- Shows
- lado
- Signal
- desde
- solteiro
- So
- Software
- desenvolvimento de software
- solução
- Soluções
- alguns
- fonte
- Espaço
- espaços
- especificamente
- pilha
- padrão
- começo
- Passo
- Passos
- estrutura
- supply
- ajuda
- Suportado
- suportes
- superfície
- sistemas
- mesa
- Tire
- toma
- alvejando
- tarefas
- modelo
- teste
- que
- A
- as informações
- deles
- Este
- três
- Através da
- tempo
- intitulado
- para
- ferramenta
- topo
- Total
- Rastreamento
- Trem
- Training
- Transformar
- Tradução
- tratar
- caminhão
- tutorial
- típico
- tipicamente
- ui
- para
- compreender
- compreensão
- único
- us
- usar
- Utilizador
- Interface de Usuário
- VALIDAR
- Valores
- Grande
- veículo
- Veículos
- verificar
- Verticais
- Vídeo
- Ver
- visualizações
- visão
- visualização
- Caminho..
- web
- serviços web
- BEM
- qual
- enquanto
- QUEM
- Wikipedia
- precisarão
- de
- dentro
- palavras
- trabalhador
- Força de trabalho
- trabalho
- escrever
- escrever código
- escrito
- X
- yaml
- Vocês
- investimentos
- zefirnet