Desde a invenção do automóvel, os fabricantes de rastreamento de veiculos adicionaram constantemente mais recursos de segurança e melhoraram o design do carro ao longo do tempo, com o objetivo de manter os motoristas mais seguros na estrada. Os fabricantes de automóveis gastaram milhões de dólares pesquisando melhorias de segurança para cintos de segurança, pneus e praticamente todas as peças ou peças de carros imagináveis. Apesar de todo esse investimento, a direção permanece substancialmente mais fatal do que alternativas como viagens aéreas em 2019. Segundo o Conselho Nacional de Segurança, aproximadamente 40.000 pessoas morreram em acidentes de automóvel apenas nos Estados Unidos em 2018. De fato, houve um total de ~ 500 mortes resultantes de acidentes de avião registradas globalmente em 2018 – isso é 80 vezes menos mortes quando comparadas às mortes de acidentes de carro apenas nos EUA.

rastreamento de veiculos,rastreador veicular, rastreamento moto
Há muitos fatores que provavelmente contribuem para essa diferença drástica, como a dificuldade de treinamento e certificação para pilotos comerciais com , em comparação com os motoristas de veículos automotores e a quantidade de carros na estrada versus aviões. Apesar disso, a diferença de mortalidade permanece, na minha opinião, bastante impressionante.

Hoje, empresas como Tesla, Volvo e muitas outras estão investindo em tecnologias como rastreador veicular, que procura corrigir a causa raiz do problema e a que ignoramos anteriormente – o desempenho humano ao volante.
Talvez o avanço mais emocionante na tecnologia automotiva desde a invenção do próprio carro seja o nascimento de veículos autônomos ou autônomos. Uma vez que o tópico de ficção científica, carros autônomos foram possíveis graças ao poder das redes neurais convolucionais (CNNs) e outras técnicas de modelagem. Mas, antes de entregarmos as chaves inteiramente, há três grandes desafios que devemos superar.

Para destacar uma pequena fatia dos desafios tecnológicos enfrentados por empresas como a Tesla em trazer carros autônomos ao público, focaremos exclusivamente em uma aplicação simplificada da etapa 2, processando dados de imagem para determinar o que somos ” olhando para”. Para atingir esse objetivo, usei um conjunto de dados contendo 100.000 imagens de 43 tipos de placas de rua rotuladas para criar modelos supervisionados de aprendizado profundo que utilizavam CNNs e eram capazes de classificar novas imagens de placas de rua de maneira bastante confiável (mais sobre isso mais tarde). Para um ótimo resumo do que tudo isso significa, confira esta série de artigos de Dhanoop Karunakaran.

Ao discutir esse tipo de tecnologia, é importante observar as possíveis ramificações de um erro. No caso de carros autônomos, um sinal de parada ou pedestre mal identificado pode facilmente custar uma vida. Em um estudo formal, a importância de classificar incorretamente cada sinal pode ser avaliada e ter um peso. Dessa maneira, um novo modelo pode ser treinado para “errar por precaução” ao classificar placas de rua mais “críticas”. E embora tudo isso pareça ótimo no papel, a ética por trás desses tipos de escolhas também deve ser avaliada com seriedade.

Se nossas entradas ponderadas fizessem nosso novo modelo cometer menos erros ao classificar os sinais de parada, por exemplo, mas apresentassem um desempenho um pouco pior ao classificar os sinais de travessia de pedestres, isso seria “aceitável”? Com tudo isso dito, para os fins deste post, focaremos mais a própria tecnologia.

rastreamento de veiculos,rastreador veicular, rastreamento moto
Então, como você ensina um computador a identificar objetos diferentes? Para falar sobre isso, começaremos com um exemplo simples. Como seres humanos, quando olhamos para a foto abaixo, vemos um cachorro fofo com pêlo preto e cinza em pé sobre um tapete manchado.

Sem pensar, sabemos que o assunto da imagem não é um cavalo, carro ou gato. Mesmo ao ver um exemplo de uma foto muito editada que tirei do mesmo cachorro, como seres humanos, ainda não temos dificuldade em identificar que o assunto da imagem é um cachorro, mesmo sendo azul. Dê uma olhada:

Os computadores, sem surpresa, não têm noção do que é um cachorro, muito menos do que se parece. Em vez disso, os computadores veem as imagens como matrizes agrupadas chamadas tensores. Em cada matriz, cada número corresponde a um pixel específico na imagem.

Usando redes neurais convolucionais, somos capazes de treinar modelos para extrair recursos de imagem como bordas, formas e cores para uso na classificação de imagens. Usando modelos de aprendizado supervisionado, podemos passar milhares de imagens de cães através de um modelo rastreamento moto para “ensinar ao computador” como é um cachorro. Portanto, enquanto um computador pode não apreciar o quão fofo é o meu cachorro Oliver, ao aplicar filtros diferentes ao seu retrato, ele pode determinar que a estrutura facial, cor e forma de Oliver compartilham semelhanças com outros cães e é muito provável que ele seja um cachorro também.

As mesmas técnicas descritas podem ser usadas para classificar qualquer número de classes-alvo, como placas de rua. Para ilustrar esse processo, usaremos uma CNN extremamente “leve” (leia-se: fraca) que eu criei usando a biblioteca Keras em Python como exemplo para explicar um pouco mais sobre o que está acontecendo “sob o capô” durante o processo de classificação de imagem. Se você deseja ver o código que eu usei para gerar esses exemplos, ou ver exemplos de CNNs mais robustas que eu treinei, além de dar uma olhada em alguns dos outros processos necessários para treinar CNNs, como pré-processamento de imagem, análise exploratória de dados, etc., verifique meu código aqui.

rastreamento de veiculos,rastreador veicular, rastreamento moto

Neste post, no entanto, usaremos a CNN muito básica resumida na imagem abaixo para lançar alguma luz sobre a maneira como um computador é capaz de “ver” e “aprender”.

Então o que isso quer dizer? Por que estamos fazendo isso e como isso nos ajuda a ensinar um computador a classificar as placas de rua?
Primeiro, temos nossas imagens de entrada, todas com dimensões de 32x32x3, ou mais simplesmente, imagens com 32 pixels de altura e largura, com 3 canais de cores (vermelho, verde e azul). Como essas entradas diferem das de outras redes neurais, onde as entradas do modelo são vetores, precisamos massagear nossas imagens de entrada para classificá-las de maneira confiável usando o Deep Learning. Para este exemplo, selecionei uma imagem aleatória no conjunto de dados. Vamos dar uma olhada no exemplo e mostrar como a imagem é avaliada pelo nosso modelo:
# Selecionando uma imagem de exemplo
exemplo = plt.imshow (dados [‘x_train’] [2,:,::])

Como os humanos vêem isso
Como mencionei anteriormente, os computadores “veem” imagens como matrizes agrupadas chamadas tensores. Vamos dar uma olhada usando a mesma imagem de exemplo:
# Exibindo tensor de imagem
how_the_computer_sees_it = data [‘x_train’] [2]
exibição (how_the_computer_sees_it)

Agora que examinamos as entradas do modelo, vamos analisar mais de perto o processo:

Seguindo a figura acima, a primeira camada aplicada à imagem de entrada é uma camada convolucional. Nesta etapa, aplicamos um kernel convolucional à nossa imagem, deslizando efetivamente um filtro de 3×3 pixels menor sobre a imagem de entrada, avaliando seus produtos de ponto. No caso acima, optamos por aplicar 32 filtros nesta etapa convolucional, redimensionando a dimensionalidade da saída da camada.

Em seguida, uma camada de pool é aplicada para reduzir a dimensionalidade (e, portanto, os parâmetros) do modelo usando um filtro 2×2 deslizante, selecionando o valor máximo para cada “janela” ou “pedaço” de nossa imagem analisada.

Por fim, para massagear nossa entrada de imagem em um formato vetorizado compatível com as camadas densas de nossa rede neural que usaremos para classificar nossas imagens, aplainamos a entrada de imagem em uma matriz.
Embora possamos ver o destaque das bordas e formas na imagem acima, nossas saídas não parecem muito “claras” para o olho humano. Apesar disso, mesmo esta CNN muito simples classificou imagens de placas de rua do banco de dados relativamente bem (~ 80%). Após a criação e avaliação deste modelo de linha de base, treinei CNNs adicionais e afinadas e avaliei seu desempenho com uma precisão de> 94%. Você pode conferir o meu código e conclusões verificando este link.

Em um contexto do mundo real, a tarefa em questão é muito mais complexa do que simplesmente classificar sinais. No contexto da condução autônoma, objetos de vários tipos, de vários ângulos, devem ser todos processados, classificados e agidos com extrema confiabilidade em altas velocidades, tudo com vidas humanas pendentes na balança.

Entre os fatores mais significativos a serem lembrados ao considerar os resultados de nosso experimento, e outros que usam redes neurais para classificar dados de imagem, está a qualidade da imagem usada para treinar nossos modelos. Embora o uso de imagens muito pequenas reduz bastante o tempo / recursos necessários para treinar modelos de aprendizado profundo, também pode muito provavelmente prejudicar o desempenho da classificação. Esse mesmo desafio é bastante ampliado quando os modelos precisam ser responsáveis ​​por muitos outros fatores, enquanto controlam um veículo em movimento em alta velocidade. Esse detalhe destaca os imensos desafios enfrentados por empresas como a Tesla e o significado de sua recente aquisição da DeepScale, uma empresa focada em reduzir os recursos necessários para classificar dados de imagem obtidos de sensores em carros autônomos.

Fonte