• Nenhum resultado encontrado

CAPÍTULO 4 SISTEMA DE AUXÍLIO A NAVEGAÇÃO

4.6 Sistema para Detecção de Obstáculos

Com o mapa de disparidade gerado são aplicados filtros e métodos para a detecção do caminho livre de obstáculos. Para o sistema criado aplicaram-se duas diferentes técnicas: uma baseada nas bordas extraídas do mapa de disparidade e outra na aplicação de um limiar binário. As duas técnicas apresentaram resultados diferentes, sendo que uma delas apresentou uma saída satisfatória para os objetivos do trabalho.

A proposta para a extração do caminho livre pelo método de utilização de bordas segue o processo de navegação de robôs do RobotRealm (“Roborealm.com”, 2016). O processo se inicia com a aquisição de imagens e tem como passo principal a aplicação de detecção de bordas. No passo seguinte aplica-se um algoritmo para criar linhas verticais até a borda encontrada e em seguida é realizada uma erosão seguida de uma dilatação da imagem obtida. A seguir os dados obtidos são interpretados e apresentam como saída o caminho livre. Com base nesse método, segundo o “Roborealm.com" (2016), é possível detectar com base no pixel mais elevado da imagem o caminho livre para locomoção.

Seguindo o mesmo processo, será proposta a substituição da utilização de detecção de bordas pela técnica de thresholding.

4.6.1 Aquisição de Imagem

O processo se inicia com a aquisição das imagens da direita e esquerda. As imagens são captadas pela câmera Minoru3D e enviadas para o sistema. As matrizes de calibração são aplicadas a cada par de imagens por frame, tornando possível a retificação das imagens e extração do mapa de disparidade. O método escolhido foi o SGBM (semiglobal) com tamanho de bloco 5. Na figura 4.18 é possível observar na primeira imagem a aquisição da câmera direita e no cenário um obstáculo que é uma cadeira com possível caminho livre a esquerda. Na outra imagem segue a disparidade gerada mostrando em tons mais claros o objeto mais próximo da câmera.

Figura 4.18 – Aquisição de Imagem e Mapa de Disparidade

4.6.2 Preenchimento Vertical

A próxima etapa consiste no tratamento da disparidade gerada para a aplicação de linhas verticais indicando um possível caminho livre de obstáculos. Após o tratamento será aplicado um algoritmo para a criação de linhas verticais brancas, seguindo a premissa de que para cada pixel branco encontrado é cancelada a aplicação da linha, seguindo para a próxima coluna, partindo-se da base da imagem.

Neste tópico serão descritas duas técnicas utilizadas: uma por utilização de detecção de bordas e outra por aplicação de um thresholding. Processos estes que antecedem a aplicação do preenchimento vertical.

4.6.2.1 Detecção de Bordas

Para a detecção de bordas o método escolhido foi o de Canny (CANNY, 1986). O processo consiste em aplicar sobre o mapa de disparidade a detecção de bordas.

A aplicação da técnica de detecção de bordas neste sistema trouxe algumas falhas conforme será apresentado a seguir.

Figura 4.19 – Aplicação de Detecção de Bordas no Mapa de Disparidade

Pode-se observar na figura 4.19, que o algoritmo de criação de linhas verticais passou sobre o objeto da cena, obtendo assim um dado inconsistente sobre o possível caminho livre de obstáculos. Para o propósito deste projeto de extrair o caminho livre pelo mapa de disparidade, o método de detecção de bordas foi descartado e para substituir essa técnica foi utilizado um thresholding, conforme será descrito no próximo tópico.

4.6.2.2 Limiarização do Mapa de Profundidade

O mapa de disparidade como já descrito anteriormente é um mapa em níveis de cinza que possuem nos tons mais claros os objetos em cena mais próximos da câmera estéreo. Partindo-se desse princípio foi utilizado no sistema, como substituição da detecção de bordas, a limiarização da imagem de disparidade. A partir de um valor de nível de cinza executa-se o threshold binário, em que os pixels recebem o valor máximo. Os pixels que não possuírem valor igual ou superior são zerados, obtendo-se uma imagem binária, em que os objetos são evidenciados pela aplicação sobre o mapa de disparidade. A figura 4.20 mostra a substituição do processo de detecção de bordas pela aplicação do thresholding.

Figura 4.20 – Aplicação do Thresholding Binário sobre Mapa de Disparidade

4.6.3 Erosão

Com o preenchimento vertical aplicado na imagem tratada, é necessário aplicar a erosão para retirar de cena dados inconsistentes, bordas ou linhas atravessando objetos que possam ser considerados ruídos. Essa técnica tende a diminuir ou remover linhas que possuam uma área pequena. Na figura 4.21 pode-se observar que as linhas menores foram diminuídas ou totalmente removidas neste processo de erosão, deixando mais evidente o possível caminho livre de obstáculos.

4.6.4 Dilatação

A partir do processo de erosão para compensar a diminuição de alguns componentes da imagem, é realizada a dilatação, processo pelo qual é realizado o aumento dos objetos em cena, evidenciando mais ainda o possível caminho livre de obstáculos.

A figura 4.22 mostra o resultado da aplicação da dilatação na imagem erodida.

Figura 4.22 – Aplicação da Dilatação sobre imagem erodida

4.6.5 Interpretação e Saída

A ideia principal é encontrar a parte da imagem que possua maior área livre para locomoção. Partindo desse princípio a proposta para encontrar o caminho livre é dividir a imagem final dilatada em três imagens: esquerda, centro e direita.

4.6.5.1 Análise da Imagem Particionada

Em cada parte de imagem particionada será aplicado um algoritmo para contabilizar quantos pixels brancos, que seria o caminho livre, cada parcela possui. A parcela que contiver o maior número de pixels brancos será identificada como possível caminho livre da imagem. Outra condição implementada é a checagem dos últimos três frames com a mesma saída antes de informar ao usuário o caminho

livre. Isso foi necessário devido a possibilidade de alguns ruídos aparecerem na imagem devido a movimentação da câmera.

Outra condição para a saída do sistema é o levantamento do pixel branco mais alto na imagem, sendo ele identificado do lado esquerdo, centro ou direito, tornando-se parte da verificação antes da efetiva resposta para o usuário.

A seguir serão descritos os procedimentos utilizados no algoritmo implementado:

• A imagem dilatada é dividida em três partes iguais, esquerda, centro e direita;

• Cada parcela de imagem passa por uma contagem de pixels brancos; • A parcela com o maior número de pixels é marcada;

• Uma verificação auxiliar armazena a partição que contenha o pixel branco mais alto;

• Para a saída com o lado que contenha o caminho livre de obstáculo são analisadas as seguintes condições:

o Partição com as últimas três marcações de maior número de pixels brancos, aumentando a confiança na resposta do sistema; o A mesma partição deverá conter o pixel mais alto na imagem; o A parcela deverá conter pelo menos 30% de pixels brancos; o Caso alguma dessas condições não forem satisfeitas o sistema

o sistema informará um possível obstáculo em cena;

• O sistema terá como saída um áudio indicando os lados com caminho livre de obstáculo: esquerda, centro ou direita. Caso nenhum caminho seja identificado será informado: obstáculo.

Documentos relacionados