Grasp2Vec: aprendendo a representar objetos por meio da captura de autoaprendizagem



Pessoas de uma idade surpreendentemente jovem já são capazes de reconhecer seus objetos favoritos e buscá-los, apesar do fato de não serem ensinados especificamente sobre isso. De acordo com estudos sobre o desenvolvimento de habilidades cognitivas, a possibilidade de interagir com objetos do mundo ao nosso redor desempenha um papel crítico no desenvolvimento de habilidades como detectar e manipular objetos - por exemplo, captura direcionada. Interagindo com o mundo exterior, as pessoas podem aprender corrigindo seus próprios erros: sabemos o que fizemos e aprendemos com os resultados. Na robótica, esse tipo de treinamento com autocorreção de erros é estudado ativamente, pois permite que os sistemas robóticos aprendam sem uma enorme quantidade de dados de treinamento ou ajuste manual.

Nós, no Google, inspirados no conceito de persistência de objetos , oferecemos o sistema Grasp2Vec - um algoritmo simples, porém eficaz, para construir a representação de objetos. O Grasp2Vec é baseado em um entendimento intuitivo de que uma tentativa de elevar qualquer objeto nos dará algumas informações - se o robô pegar o objeto e pegá-lo, ele precisará estar neste local antes de ser capturado. Além disso, o robô sabe que, se o objeto capturado estiver em sua captura, significa que o objeto não está mais no local onde estava. Usando essa forma de auto-aprendizado, o robô pode aprender a reconhecer um objeto devido à mudança visual na cena após a captura.

Com base em nossa colaboração com a X Robotics , onde vários robôs foram treinados simultaneamente para capturar objetos domésticos usando apenas uma câmera como fonte de dados de entrada, usamos a captura robótica para capturar "inadvertidamente" objetos, e essa experiência nos permite ter uma idéia rica do objeto. Essa ideia já pode ser usada para adquirir a capacidade de "captura intencional", quando o braço do robô pode levantar objetos sob demanda.



Criando uma função de recompensa perceptiva


Em uma plataforma de aprendizado por reforço, o sucesso de uma tarefa é medido por meio de uma função de recompensa. Ao maximizar as recompensas, os robôs aprendem várias habilidades de captura do zero . Criar uma função de recompensa é fácil quando o sucesso pode ser medido com simples leituras do sensor. Um exemplo simples é um botão que transfere uma recompensa diretamente para a entrada de um robô , clicando nele.

No entanto, criar uma função de recompensa é muito mais complicado quando o critério para o sucesso depende de uma compreensão perceptiva da tarefa. Considere o problema de captura em um exemplo em que o robô recebe uma imagem do objeto desejado mantido na captura. Depois que o robô tenta capturar o objeto, ele examina o conteúdo da captura. A função de recompensa para esta tarefa depende da resposta à questão do reconhecimento de padrões: os objetos coincidem?


À esquerda, a alça segura o pincel e vários objetos são visíveis em segundo plano (um copo amarelo, um bloco de plástico azul). À direita, a alça segura o copo e o pincel está em segundo plano. Se a imagem esquerda representasse o resultado desejado, uma boa função de recompensa seria “entender” que essas duas fotos correspondem a dois objetos diferentes.

Para resolver o problema de reconhecimento, precisamos de um sistema perceptivo que extraia conceitos significativos de objetos de imagens não estruturadas (não assinadas por pessoas) e aprenda a visualizar objetos sem um professor. Essencialmente, os algoritmos de aprendizado sem professores funcionam criando suposições estruturais sobre os dados. Supõe-se frequentemente que as imagens podem ser compactadas para um espaço com menos dimensões e os quadros de vídeo podem ser previstos a partir dos anteriores . No entanto, sem suposições adicionais sobre o conteúdo dos dados, isso geralmente não é suficiente para aprender com representações não relacionadas de objetos.

E se usássemos um robô para separar fisicamente objetos durante a coleta de dados? A robótica oferece uma excelente oportunidade para aprender a representar objetos, pois os robôs podem manipulá-los, o que fornecerá os fatores de variação necessários. Nosso método é baseado na ideia de que capturar um objeto o remove da cena. O resultado é 1) uma imagem da cena antes da captura, 2) uma imagem da cena após a captura e 3) uma visão separada do objeto capturado.


Esquerda - objetos para capturar. No centro - após a captura. À direita está o objeto capturado.

Se considerarmos uma função interna que extrai um "conjunto de objetos" de imagens, ela deve preservar a seguinte relação de subtração:


objetos antes da captura - objetos após a captura = objeto capturado

Alcançamos essa igualdade com a arquitetura convolucional e um algoritmo simples de aprendizado métrico. Durante o treinamento, a arquitetura mostrada abaixo incorpora imagens antes e depois da captura em um mapa denso de propriedades espaciais . Esses mapas se transformam em vetores por meio de uma união média e a diferença entre os vetores "antes da captura" e "depois da captura" representa um conjunto de objetos. Este vetor e a representação correspondente do vetor desse objeto percebido são equacionados através da função de pares N.



Após o treinamento, nosso modelo naturalmente possui duas propriedades úteis.

1. Similaridade de objetos


O coeficiente de cosseno da distância entre as inserções vetoriais nos permite comparar objetos e determinar se eles são idênticos. Isso pode ser usado para implementar a função de recompensa por aprendizado reforçado e permite que os robôs aprendam a capturar com exemplos sem marcar dados por humanos.



2. Encontrar alvos


Podemos combinar mapas espaciais da cena e a incorporação de objetos para localizar o "objeto desejado" no espaço da imagem. Realizando a multiplicação por elementos dos mapas de características espaciais e a correspondência vetorial do objeto desejado, podemos encontrar todos os pixels no mapa espacial que correspondem ao objeto de destino.


Utilizando inlays Grasp2Vec para localizar objetos na cena. Acima à esquerda, há objetos na cesta. Parte inferior esquerda - o objeto desejado a ser capturado. O produto escalar do vetor do objeto de destino e os recursos espaciais da imagem nos fornecem um "mapa de ativação" por pixel (canto superior direito) da semelhança de uma determinada seção da imagem com o alvo. Este mapa pode ser usado para se aproximar do alvo.

Nosso método também funciona quando vários objetos correspondem ao destino, ou mesmo quando o destino consiste em vários objetos (a média de dois vetores). Por exemplo, nesse cenário, o robô identifica vários blocos laranja na cena.


O "mapa de calor" resultante pode ser usado para planejar a aproximação do robô ao (s) objeto (s) alvo (s). Combinamos a localização do Grasp2Vec e o reconhecimento de exemplos com nossa política de "capturar qualquer coisa" e obtemos sucesso em 80% dos casos durante a coleta de dados e em 59% com novos objetos que o robô não encontrou anteriormente.

Conclusão


Em nosso trabalho, mostramos como as habilidades de garras robóticas podem criar dados usados ​​para ensinar representações de objetos. Em seguida, podemos usar o treinamento de apresentação para adquirir rapidamente habilidades mais complexas, como capturar por exemplo, preservando todas as propriedades do treinamento para não professores em nosso sistema de captura autônomo.

Além do nosso trabalho, vários outros trabalhos recentes também estudaram como a interação sem um professor pode ser usada para obter representações de objetos, capturando , empurrando e outros tipos de interações com objetos no ambiente. Estamos felizes em antecipar não apenas o que o aprendizado de máquina pode dar à robótica em termos de melhor percepção e controle, mas também o que a robótica pode dar ao aprendizado de máquina em termos de novos paradigmas de autoaprendizagem.

Source: https://habr.com/ru/post/pt434898/


All Articles