A segmentação de imagens desempenha um papel crucial na identificação e delineamento preciso de objetos de interesse em uma imagem. Na direção autônoma, algoritmos de visão computacional são aplicados para resolver a tarefa de segmentação da superfície da estrada. Esta tarefa é desafiadora porque você não pode confiar apenas em um tipo de imagem – tanto as câmeras quanto os LiDARs têm seus pontos fortes e fracos. Por exemplo, os LiDARs fornecem informações precisas de profundidade, mas normalmente geram nuvens de pontos esparsas e, portanto, não conseguem segmentar com precisão os objetos na cena. E podem produzir nuvens distorcidas quando enfrentam superfícies transparentes ou reflexivas. As câmeras não capturam a profundidade, mas fornecem informações completas sobre a forma, textura e cor dos objetos. Isso nos leva a uma ideia simples de que uma fusão eficaz de nuvens de pontos e imagens no treinamento de segmentação de estradas 2D pode aproveitar as vantagens de cada domínio de dados. O problema é que tal fusão requer anotação trabalhosa de ambos os conjuntos de dados. Então, podemos tornar a anotação de dados mais eficiente para aproveitar os benefícios de uma configuração multissensor para segmentação de estradas?
Atualmente trabalho em
Neste post, descreverei nossa abordagem passo a passo e mostrarei alguns resultados de testes. Se você quiser se aprofundar em nosso trabalho, na pesquisa de outros métodos e nos resultados de nossos testes, consulte nosso artigo
O pipeline geral de nossa abordagem consiste em quatro partes principais: anotação de estradas em nuvem de pontos, preparação de dados, perda mascarada e o próprio modelo de segmentação.
Primeiramente, obtemos os dados com anotações rodoviárias no domínio da nuvem de pontos. Depois disso, projetamos pontos usando transformações homogêneas e parâmetros de câmera. Então, usando os pontos projetados, obtemos a máscara verdadeira da estrada para cálculo de perdas com ruído aleatório adicionado. As imagens da câmera são processadas pelo modelo de segmentação. As previsões e máscaras da etapa anterior são utilizadas pela perda mascarada, que permite treinar o modelo usando dados esparsos de verdade. Finalmente, após o treinamento do modelo, obtemos uma imagem com uma estrada segmentada. O procedimento de treinamento, bem como a perda mascarada, permitem misturar a verdade do terreno projetada com as máscaras 2D tradicionais, o que torna a abordagem flexível em termos de dados.
Agora vamos examinar atentamente cada uma das partes.
Anotação de dados em nuvem de 1 ponto
Para usar dados lidar durante o treinamento, precisamos de anotações de segmentação semântica para nuvens de pontos. Isso pode ser feito manualmente usando uma ferramenta de anotação de nuvem de pontos de código aberto, como
2 Preparação de dados
Uma nuvem de pontos obtida é projetada no plano da imagem usando transformações homogêneas para obter uma máscara de segmentação de imagem com o rótulo de classe que necessitamos, no nosso caso é uma estrada. Para tal projeção, utilizamos câmera sincronizada e quadros lidar, acompanhados de parâmetros de câmera, e uma matriz de transformação de lidar para quadro de câmera. Para projetar o ponto homogêneo x = (x, y, z, 1)ᵀ
nas coordenadas do quadro lidar para o ponto y = (u, v, 1)ᵀ
em um plano de imagem, usamos a equação:
Após a transformação, obtemos pontos na imagem como uma máscara de pixels, tanto para a classe da estrada quanto para todos os outros pontos da varredura lidar. Precisamos de outros pontos de varredura lidar, porque os pontos lidar estão localizados principalmente na parte inferior da imagem e a parte superior da imagem não tem nenhum ponto, levando potencialmente a previsões imprecisas nessa área. Para eliminar este efeito, adicionamos pontos aleatórios na metade superior da máscara (classe negativa) para equilibrar a distribuição dos pontos onde calcularemos a perda.
3 Perda mascarada
Um componente crucial do nosso método é a aplicação de uma função de perda mascarada durante o treinamento do modelo. Essa abordagem elimina a dispersão inerente às máscaras de verdade derivadas do lidar. Ao contrário das funções de perda convencionais, que consideram todas as máscaras da imagem para calcular os erros, a perda mascarada concentra-se apenas nas regiões onde os pontos lidar estão presentes. Este cálculo de perda direcionado garante que o aprendizado do modelo esteja concentrado em regiões relevantes, aproveitando as informações fornecidas pelo lidar para aumentar a precisão da segmentação de estradas. Em outras palavras, forçamos o modelo a aprender a segmentação de estradas medindo o erro das previsões em uma grade de pontos. Isso pode ser comparado a olhar a imagem usando óculos obturadores (cortinas de obturador).
A perda mascarada para cada imagem pode ser formulada desta forma:
A perda mascarada é realizada aplicando uma máscara binária às imagens de treinamento. Esta máscara delineia as áreas onde os pontos lidar estão localizados e são projetados no plano da imagem. Durante a fase de treinamento, a perda é calculada apenas para os pixels que estão sob a máscara, ignorando efetivamente grandes partes não anotadas da imagem. Este método não só melhora a eficiência do processo de treinamento, mas também atenua os problemas representados pela natureza esparsa dos dados lidar.
4 Treinamento de modelo
A etapa final envolve treinar o modelo de segmentação no conjunto de dados criado. O processo de treinamento pode ser adequado para qualquer modelo de segmentação, e em nossa pesquisa utilizamos o PSPNet. Nesta fase, tudo depende da qualidade dos seus dados, da sua quantidade e do poder computacional disponível.
Testamos nossa abordagem em vários conjuntos de dados, incluindo os de código aberto, como o Perception Waymo Open Dataset e o conjunto de dados KITTI-360. Cada vez, conduzimos um conjunto de três experimentos: usando apenas informações básicas de estradas 2D, apenas pontos projetados como informações básicas e uma mistura desses tipos de informações básicas. E os resultados da segmentação de estradas (% de IoU) parecem promissores:
Experimentar | Treinado no conjunto de dados KITTI-360 | Treinado no conjunto de dados Waymo |
---|---|---|
Somente 2D (linha de base) | 92,3 | 96,1 |
Apenas projetado em 3D | 89,6 | 94,7 |
misturar 2D + 3D projetado | 92,7 | 96,3 |
Esses números significam que se você possui apenas segmentação lidar e não deseja gastar recursos adicionais em anotações de imagens 2D, está tudo bem. A queda na qualidade em comparação com o treinamento apenas em máscaras de imagem 2D pode ser insignificante. Se você tiver recursos para anotar dados de ambos os sensores, basta combinar esses dois tipos de anotações durante o processo de treinamento e obter um aumento nas métricas.
Em suma, os benefícios da abordagem que observamos durante a pesquisa são: