• Marina Daumas

Visão Computacional e Carros Autônomos

Os desafios da aplicação de tecnologias de inteligência artificial em veículos autônomos


Visão computacional é um campo da inteligência artificial que busca desenvolver técnicas para fazer com que computadores sejam capazes de analisar, interpretar e entender imagens ou vídeos. Essa tecnologia está presente em várias aplicações e é uma das ferramentas que mais cresce no mercado atualmente. Ensinar para computadores esse tipo de tarefa que, muitas vezes, é trivial para um humano é mais difícil do que se imagina. Isso acontece, em parte, porque não sabemos como o nosso próprio cérebro faz para interpretar aquilo que nós vemos. Mesmo com tal barreira, existem algoritmos que conseguem simular, e, até mesmo, superar a capacidade humana para certas tarefas.


Existem diversas aplicações de visão computacional, por exemplo reconstrução 3D de cenários, localização, reconhecimento facial, etc. No AUV (Veículo Autônomo Submarino) da UFRJ Nautilus, utilizamos uma rede neural convolucional (YOLOv3 tiny) para detecção de objetos. Esse tipo de rede nos dá, não apenas quais objetos estão no campo de visão do robô, mas também as coordenadas dele na imagem. Isso nos permite encontrar as tarefas que devem ser realizadas na RoboSub ®, competição internacional de AUVs, como portão e boias, e determinar uma trajetória até elas.


Resultado da Nossa Rede Neural na Detecção das boias da RoboSub 2019. Visão Computacional
Nossa Rede Neural Detectando as Boias na RoboSub, 2019

Redes neurais convolucionais são algoritmos compostos de várias camadas, utilizados principalmente na análise de imagens. Assim como redes neurais simples, as redes convolucionais tentam copiar a forma como o sistema nervoso funciona. Diversas camadas interligadas recebem um input, da camada anterior, realizam algum tipo de processamento e passam o resultado para a próxima camada. Esse mesmo tipo de rede é utilizado em carros autônomos.

Rede Neural Convolucional para Identificar Números
Rede Neural Convolucional para Identificar Números

Apesar dos grandes avanços nesse tipo de tecnologia, estamos em 2020 e, contra todas as previsões, ainda não temos carros autônomos andando por aí. Diversas empresas têm projetos de carros autônomos, algumas como a Uber ® e Tesla ® chegaram a colocar nas ruas seus carros semi autônomos. Esses veículos possuem piloto automático, mas precisam de um motorista como backup, para tomar o controle em caso de uma falha. Assim como o nosso AUV, esses carros possuem redes neurais para detecção de objetos e outros sensores para obter dados dos arredores. No caso do carro, as redes são treinadas para localizar outros carros, placas, pedestres e obstáculos. Porém, uma grande diferença entre entre eles é a segurança, uma vez que, enquanto nosso robô pode ser considerado bom tendo uma acurácia de 94%, um carro que reconhece um pedestre com essa mesma acurácia está longe de ser seguro.

Detecção de objetos em uma rua. Rede Neural e VIsão Computacional
Detecção de Objetos na Rua

Em 2018, um dos carros semi autônomos da Uber ® no Arizona falhou em acionar os freios quando uma mulher atravessou a estrada com uma bicicleta na frente do carro causando um acidente fatal. Foi uma falha do sistema e também da motorista de segurança, que deveria estar o tempo todo monitorando o carro. Os testes com veículos autônomos foram encerrados logo depois disso e retomados apenas 2 anos depois. Carros da Tesla ® também já causaram acidentes em situações em que o motorista não estava atento.

Baixa luminosidade, luzes coloridas, neblina fina, chuva, refração causada pelo calor, etc. existe uma gama enorme de fatores que podem afetar as imagens recebidas pela rede neural. Apesar de praticamente não afetarem a forma como nós humanos somos capazes de entender aquilo que estamos vendo (uma pessoa continua sendo uma pessoa mesmo se ela estiver plantando bananeira debaixo de uma luz verde), essas mudanças podem reduzir seriamente a performance de uma rede neural. Normalmente, a solução simples para esse problema é aumentar a quantidade de exemplos que você usa para treinar a rede. Se ela erra em imagens com neblina adicione mais imagens com neblina, se o problema é para identificar animais na estrada adicione mais fotos de animais. Entretanto, garantir que um sistema esteja preparado para todas as condições possíveis é uma tarefa praticamente impossível.


Além de todas essas preocupações relacionadas à confiabilidade da visão, existem outras barreiras, talvez ainda maiores. Lugares onde o sinal do GPS fosse ruim estariam totalmente fora de cogitação para carros autônomos. Existem também questões éticas relacionadas ao uso dessa tecnologia. Todo sistema autônomo toma decisões o tempo todo. Em uma situação comum seriam coisas do tipo o quanto acelerar ou frear, quando fazer uma curva, quando parar totalmente, etc. Porém, no dia a dia, pode acontecer todo tipo de situação inusitada, e o carro deveria ter uma pré programação para lidar com cada uma delas. Se, por exemplo, o carro estivesse vindo em alta velocidade, aparecesse uma criança na rua e não houvesse tempo de frear, o carro deveria dar prioridade ao passageiro ao custo de atingir a criança, ou deveria desviar da criança de qualquer forma, mesmo que jogando o carro contra um poste, arriscando a vida do motorista? Esse tipo de questão não tem resposta certa, e se nós não temos uma resposta não temos como fazer o carro saber o que fazer.


Esses são alguns dos desafios enfrentados por aqueles que estão tentando criar os carros totalmente autônomos que há muito tempo existem na ficção. Mesmo que esses carros nunca cheguem a ser vendidos no mercado, como muitos acreditam, carros semi autônomos já são uma grande ajuda. A maior parte dos acidentes de trânsito hoje em dia são causados por erro humano, e esses veículos semi autônomos podem reduzir este número. Contanto que o motorista permaneça atento durante todo o tempo em que o carro está se dirigindo, esses carros podem ser bem mais seguros do que um motorista tradicional.


Escrito por Marina Daumas



0 comments

Recent Posts

See All