Como pesquisadores de visão computacional, acreditamos que cada pixel pode contar uma história. No entanto, parece haver um bloqueio de escritor se instalando no campo quando se trata de lidar com imagens grandes. Imagens grandes não são mais raras — as câmeras que carregamos em nossos bolsos e aquelas que orbitam nosso planeta tiram fotos tão grandes e detalhadas que elas esticam nossos melhores modelos e {hardware} atuais até seus pontos de ruptura ao manuseá-las. Geralmente, enfrentamos um aumento quadrático no uso de memória como uma função do tamanho da imagem.
Hoje, fazemos uma de duas escolhas subótimas ao lidar com imagens grandes: down-sampling ou cropping. Esses dois métodos incorrem em perdas significativas na quantidade de informações e contexto presentes em uma imagem. Damos outra olhada nessas abordagens e apresentamos $x$T, uma nova estrutura para modelar imagens grandes de ponta a ponta em GPUs contemporâneas, ao mesmo tempo em que agrega efetivamente o contexto international com detalhes locais.
Arquitetura para o framework $x$T.
Por que se preocupar com imagens grandes?
Por que se preocupar em lidar com imagens grandes de qualquer maneira? Think about-se na frente da sua TV, assistindo ao seu time de futebol favorito. O campo está cheio de jogadores por todo lado, com a ação ocorrendo apenas em uma pequena parte da tela por vez. Você ficaria satisfeito, no entanto, se pudesse ver apenas uma pequena região ao redor de onde a bola estava atualmente? Alternativamente, você ficaria satisfeito assistindo ao jogo em baixa resolução? Cada pixel conta uma história, não importa quão distantes estejam. Isso é verdade em todos os domínios, da tela da sua TV a um patologista visualizando um slide de gigapixel para diagnosticar pequenas manchas de câncer. Essas imagens são tesouros de informações. Se não podemos explorar totalmente a riqueza porque nossas ferramentas não conseguem lidar com o mapa, qual é o sentido?
Esportes são divertidos quando você sabe o que está acontecendo.
É exatamente aí que está a frustração hoje. Quanto maior a imagem, mais precisamos simultaneamente dar zoom out para ver a imagem inteira e dar zoom in para os detalhes essenciais, tornando um desafio compreender a floresta e as árvores simultaneamente. A maioria dos métodos atuais força uma escolha entre perder a floresta de vista ou não ver as árvores, e nenhuma das opções é ótima.
Como $x$T tenta consertar isso
Think about tentar resolver um quebra-cabeça gigante. Em vez de resolver tudo de uma vez, o que seria esmagador, você começa com seções menores, dá uma boa olhada em cada peça e então descobre como elas se encaixam no quadro geral. É basicamente o que fazemos com imagens grandes com $x$T.
$x$T pega essas imagens gigantescas e as corta em pedaços menores e mais digeríveis hierarquicamente. Não se trata apenas de tornar as coisas menores, no entanto. Trata-se de entender cada pedaço por si só e, então, usando algumas técnicas inteligentes, descobrir como esses pedaços se conectam em uma escala maior. É como ter uma conversa com cada parte da imagem, aprendendo sua história e, então, compartilhando essas histórias com as outras partes para obter a narrativa completa.
Tokenização aninhada
No cerne de $x$T está o conceito de tokenização aninhada. Em termos simples, a tokenização no reino da visão computacional é semelhante a cortar uma imagem em pedaços (tokens) que um modelo pode digerir e analisar. No entanto, $x$T leva isso um passo adiante ao introduzir uma hierarquia no processo — portanto, aninhado.
Think about que você tem a tarefa de analisar um mapa detalhado da cidade. Em vez de tentar absorver o mapa inteiro de uma vez, você o divide em distritos, depois bairros dentro desses distritos e, finalmente, ruas dentro desses bairros. Essa divisão hierárquica torna mais fácil gerenciar e entender os detalhes do mapa, ao mesmo tempo em que mantém o controle de onde tudo se encaixa no quadro geral. Essa é a essência da tokenização aninhada — dividimos uma imagem em regiões, cada uma das quais pode ser dividida em outras sub-regiões, dependendo do tamanho de entrada esperado por um spine de visão (o que chamamos de codificador de região), antes de ser patchificado para ser processado por aquele codificador de região. Essa abordagem aninhada nos permite extrair recursos em diferentes escalas em um nível native.
Coordenação de codificadores de região e contexto
Uma vez que uma imagem é nitidamente dividida em tokens, $x$T emprega dois tipos de codificadores para dar sentido a essas peças: o codificador de região e o codificador de contexto. Cada um desempenha um papel distinto em juntar a história completa da imagem.
O codificador de região é um “especialista native” autônomo que converte regiões independentes em representações detalhadas. No entanto, como cada região é processada isoladamente, nenhuma informação é compartilhada pela imagem em geral. O codificador de região pode ser qualquer spine de visão de última geração. Em nossos experimentos, utilizamos transformadores de visão hierárquicos, como Nadar e Hiera e também CNNs como ConvNeXt!
Entra o codificador de contexto, o guru do panorama geral. Seu trabalho é pegar as representações detalhadas dos codificadores de região e costurá-las, garantindo que os insights de um token sejam considerados no contexto dos outros. O codificador de contexto é geralmente um modelo de sequência longa. Nós experimentamos com Transformador-XL (e nossa variante chamada Hiper) e Mambaembora você possa usar Longformer e outros novos avanços nessa área. Embora esses modelos de sequência longa sejam geralmente feitos para linguagem, demonstramos que é possível usá-los efetivamente para tarefas de visão.
A mágica de $x$T está em como esses componentes — a tokenização aninhada, codificadores de região e codificadores de contexto — se juntam. Ao primeiro dividir a imagem em partes gerenciáveis e, em seguida, analisar sistematicamente essas partes, tanto isoladamente quanto em conjunto, $x$T consegue manter a fidelidade dos detalhes da imagem unique, ao mesmo tempo em que integra o contexto de longa distância ao contexto abrangente ao mesmo tempo em que ajusta imagens massivas, de ponta a ponta, em GPUs contemporâneas.
Resultados
Avaliamos $x$T em tarefas de benchmark desafiadoras que abrangem linhas de base de visão computacional bem estabelecidas para tarefas rigorosas de imagens grandes. Particularmente, experimentamos com iNaturalista 2018 para classificação de espécies de granulação fina, xView3-SAR para segmentação dependente do contexto e MS-COCO para detecção.
Modelos de visão poderosos usados com $x$T estabelecem uma nova fronteira em tarefas posteriores, como classificação de espécies de granulação fina.
Nossos experimentos mostram que $x$T pode atingir maior precisão em todas as tarefas posteriores com menos parâmetros, usando muito menos memória por região do que as linhas de base de última geração*. Conseguimos modelar imagens de até 29.000 x 25.000 pixels em A100s de 40 GB, enquanto linhas de base comparáveis ficam sem memória em apenas 2.800 x 2.800 pixels.
Modelos de visão poderosos usados com $x$T estabelecem uma nova fronteira em tarefas posteriores, como classificação de espécies de granulação fina.
*Dependendo da sua escolha de modelo de contexto, como Transformer-XL.
Por que isso é mais importante do que você pensa
Essa abordagem não é apenas authorized; é necessária. Para cientistas que rastreiam mudanças climáticas ou médicos que diagnosticam doenças, é uma virada de jogo. Significa criar modelos que entendam a história completa, não apenas pedaços. No monitoramento ambiental, por exemplo, ser capaz de ver tanto as mudanças mais amplas em vastas paisagens quanto os detalhes de áreas específicas pode ajudar a entender o quadro geral do impacto climático. Na área da saúde, pode significar a diferença entre detectar uma doença precocemente ou não.
Não estamos afirmando ter resolvido todos os problemas do mundo de uma só vez. Esperamos que com $x$T tenhamos aberto a porta para o que é possível. Estamos entrando em uma nova period em que não precisamos comprometer a clareza ou a amplitude da nossa visão. $x$T é o nosso grande salto em direção a modelos que podem fazer malabarismos com as complexidades de imagens em larga escala sem suar a camisa.
Há muito mais terreno a cobrir. A pesquisa evoluirá e, esperançosamente, nossa capacidade de processar imagens ainda maiores e mais complexas também. Na verdade, estamos trabalhando em continuações para $x$T, o que expandirá ainda mais essa fronteira.
Para concluir
Para um tratamento completo deste trabalho, consulte o artigo em arXiv. O página do projeto contém um hyperlink para nosso código e pesos lançados. Se você achar o trabalho útil, cite-o como abaixo:
@article{xTLargeImageModeling,
title={xT: Nested Tokenization for Bigger Context in Massive Pictures},
writer={Gupta, Ritwik and Li, Shufan and Zhu, Tyler and Malik, Jitendra and Darrell, Trevor and Mangalam, Karttikeya},
journal={arXiv preprint arXiv:2403.01915},
12 months={2024}
}