Obra-prima de código aberto Meta AI | SiLK: Você realmente precisa de um extrator de ponto-chave de imagem tão complexo?

Título: SiLK:
Documento de pontos-chave aprendidos simples: arxiv.org/pdf/2304.06…
Código: github.com/facebookres…

guia

A detecção de pontos-chave e os descritores são técnicas fundamentais para tarefas de visão computacional, como correspondência de imagens, reconstrução 3D e odometria visual. Durante décadas, métodos projetados à mão, como os descritores Harris corners, SIFT e HOG, foram usados; nos últimos anos, tornou-se uma tendência introduzir aprendizado profundo para melhorar a detecção de pontos-chave. No entanto, um olhar mais atento revela que os resultados dos métodos baseados em aprendizagem são muitas vezes difíceis de interpretar ; os métodos recentes baseados em aprendizagem usaram uma ampla variedade de configurações experimentais e opções de design: os resultados empíricos geralmente usam diferentes modelos, protocolos, conjuntos de dados, tipos de supervisão ou tarefa a relatar. Uma vez que essas diferenças são frequentemente correlacionadas, isso levanta uma questão natural de que tipo de método de detecção de ponto-chave baseado em aprendizado é bom . Neste trabalho, o artigo redesenha cada componente, desconstruindo a metodologia dos métodos existentes de detecção de pontos-chave e identificando os componentes-chave, e propõe um método de ponto-chave (SiLK) totalmente diferenciável, leve e flexível . Apesar de sua simplicidade, o SiLK alcançou um novo desempenho SOTA nas tarefas de repetibilidade de detecção e estimativa de homografia de HPatches , desempenho competitivo na tarefa de registro de nuvem de pontos 3D de ScanNet e alcançou um novo desempenho de última geração no 2022 Image Matching Challenge e ScanNet alcançam desempenho comparável aos métodos de última geração em termos de estimativa de pose de câmera.

contribuir

As principais contribuições do artigo são:

  1. Depois de revisar muitos métodos alternativos, o artigo propõe o método Simple Learned Keypoints (SiLK), que visa aprender a extrair pontos-chave discriminativos de dados de imagem arbitrários com o método auto-supervisionado mais simples sob a estrutura tradicional de "detecção e descrição". pontos . Apesar da simplicidade do método SiLK, ele iguala ou supera o desempenho do estado da arte na maioria dos casos.
  2. Usando o protocolo de treinamento simples de um estágio do SiLK e a arquitetura modular, o método do artigo permite experimentos em diferentes dimensões de desempenho para diferentes tarefas . Em particular, ao buscar desempenho em tempo real, são identificadas as tarefas que requerem apenas uma arquitetura de rede de backbone extremamente leve para atender aos requisitos.

método

O SiLK é treinado para detectar pontos-chave de uma única imagem em escala de cinza e gerar descritores de ponto-chave. Especificamente, o artigo usa a imagem de origem e a cópia transformada, define a probabilidade de transição do local de origem para o local transformado extraindo descritores e calculando a semelhança entre eles e otimiza os descritores maximizando a consistência do ciclo, ou seja, para maximizar a probabilidade de uma viagem circular da imagem de origem para sua posição transformada e depois de volta à imagem de origem (sentido visual de superponto...). Enquanto isso, um classificador binário é usado para identificar os pontos-chave que satisfazem os critérios de correspondência, e um ponto e sua contraparte transformada são considerados positivos quando são vizinhos mútuos mais próximos no sentido da probabilidade de transição e negativos caso contrário . Um pseudocódigo simples é fornecido na Figura 2.

Arquitetura

A arquitetura do SiLK (Figura 3) foi inspirada na arquitetura "detectar e descrever" originalmente proposta pelo SuperPoint. Primeiro, uma imagem é alimentada em uma rede de backbone do codificador para extrair um mapa de recursos denso. Em seguida, passe o mapa de recursos compartilhado para duas cabeças (cabeçalho chave e cabeçalho descritor):

  • A cabeça do ponto-chave extrai os logits usados ​​para calcular as probabilidades densas do ponto-chave.
  • A cabeça do descritor extrai um mapa descritor denso, que é posteriormente usado para calcular a similaridade dos pontos-chave.

Alta probabilidade de correspondência define pontos-chave

键点概率估计预测了一个像素正确匹配的概率(即能够完成往返的概率),具有最高匹配概率的点正是选择作为关键点的点。SiLK使用基于单元格的方法来预测关键点的概率,其中每个像素的概率由一个局部sigmoid函数计算。与传统的基于单元格的方法相比,SiLK使用固定的单元格大小为1,从而简化了模型并避免了额外的参数调整。SiLK还不使用非极大值抑制(NMS)来排除重复的关键点,因为经验证明SiLK在关键点的选择上表现良好。

Descriptors Define Matching Probability

论文使用双重softmax建模循环匹配的概率:

其中, P i j P_{i \rightarrow j} 是从图像 I EU 中的第i个描述符匹配到图像 I EU' 中的第j个描述符的概率, P i j P_{i \leftarrow j} 表示相反方向的概率。这两个概率都通过对描述符余弦相似性进行softmax处理得到

训练

自监督训练

在训练过程中,需要获得像素级的对应关系。为此,论文将随机变换(单应性变换)应用于图像,以获取密集的方向性对应关系。然后,论文将这些对应关系进行离散化处理,丢弃超出边界或非一对一对应的关系。

正负样本选择

关键点的一个重要属性是独特性,即该点可以可靠地与其他点区分开来。在本文的方法中,这意味着该点可以在匹配算法中可靠地识别,因此,论文将通过当前训练的描述符进行正确匹配的关键点被标记为正样本,否则标记为负样本

描述符和关键点损失函数

描述符损失是应用于正向往返路径(从点i到其在变换后的图像中的位置i',再返回i)的匹配概率的负对数似然损失

关键点损失是应用于logistic sigmoid函数的简单二元交叉熵损失,它被训练用于识别具有成功往返匹配(通过互相最近邻定义)的关键点,并区分其他所有关键点(不成功的)。

实验

HPatches Homography Estimation

SiLK在重复性、单应性准确度和单应性估计方面优于其他方法(表2)。尤其是在小误差阈值下,SiLK表现出明显的优势。在某些指标上略有不足,但与LoFTR相比,SiLK在单应性估计AUC上表现出强大的性能,而在单应性准确度上具有竞争力。这对于上下文聚合的必要性提出了质疑(在表3中使用了密集特征和上下文聚合)。

IMC 2022 outdoor pose estimation

在IMC 2022挑战赛中,SiLK表现出色,明显优于DISK,并与SuperGlue相比取得了有利的结果。尽管SiLK使用的试验次数较LoFTR少,但经过对任务进行了适当调整后,SiLK仍然展现出了其有效性。

ScanNet: Indoor Pose & Point Clouds

ScanNet是一个包含大量室内场景的数据集,用于评估相机相对姿态估计和点云配准任务。相对姿态估计任务通过匹配图像中的点对来估计相机之间的姿态变换。点云配准任务则使用真实深度信息来对齐点云数据。在评估过程中,论文使用不同的指标如姿态误差、Chamfer距离等来衡量算法的性能。这些任务和指标有助于推动室内场景中的相机定位和三维重建等计算机视觉任务的发展。

Relative pose estimation

如表5所示,SiLK在使用互相最近邻匹配时显著优于D2-Net(+12.7)和SuperPoint(+8.6)。此外,尽管SiLK没有使用上下文聚合等复杂设计,但它仍然优于之前的SOTA稀疏方法SuperGlue。SiLK的性能与在MegaDepth数据集上训练的LoFTR相似。在只使用ScanNet数据集进行评估时,SiLK仅次于在ScanNet上训练的LoFTR。

Pairwise 3D point-cloud registration

如表6所示,SiLK在所有指标上都取得了新的SOTA结果,特别是在较小的阈值下表现出很高的精度。与使用真实相机姿态进行训练的方法相比,SiLK仍然表现出色,证明了不需要真实的3D监督即可训练出优秀的关键点特征。此外,SiLK也在与先前的SOTA方法URR的性能比较中取得了显著优势。需要注意的是,SuperPoint在这种密集评估方式下表现出了竞争力,与在稀疏特征评估中的结果有所不同。

什么是好的关键点检测算法?

通过SiLK的灵活性,论文进行了大量的实验,研究了模型架构和图像分辨率等设计选择对性能的影响。令人惊讶的是,减小模型规模、计算成本和训练输入尺寸对于Homography估计、相机姿态估计和点云配准的性能影响较小。这对于许多重要的应用程序,如设备上的推理,非常有益。

对backbone不可知

现有方法使用不同的backbone网络(如表1所示),但其对关键点模型的影响尚不清楚。论文发现,尽管一些网络具有更大的参数量,但在关键点问题上并没有明显的性能提升(表7)。另外,论文通过简化模型结构,如减少卷积块和通道数,可以获得轻量级模型,而性能下降并不明显。这表明对于关键点提取问题,并不需要过于复杂的网络架构。然而,在关键点匹配任务中,性能下降较为显著,可能是因为深层模型具有更大的感受野,而在单应性估计任务中,模型性能仍然较为竞争。这提示我们,对于不同的任务,选择适合的模型结构是至关重要的。

对小图像的快速训练

SiLK使用默认的146x146描述子特征图分辨率进行训练。令人惊讶的是,在训练过程中改变分辨率对性能的影响很小。较小的特征图尺寸(82x82)在HPatches和ScanNet上仍然具有竞争力,并且训练时间较短。这使得SiLK适用于一些应用,如测试时间微调、设备上的微调和快速实验迭代。

对训练数据的稳健性

不同的方法使用不同的训练集,论文观察到在不同数据集上存在泛化性能较差的情况。SiLK对于训练集的变化具有相当好的鲁棒性,但在ScanNet数据集上性能下降较大。SiLK的性能下降与LoFTR的下降方向一致,但幅度要小得多。SiLK使用COCO数据集进行比较,而LoFTR需要不同的训练数据才能取得较好的性能。

总结

Este artigo apresenta o SiLK, uma estrutura de descrição e detecção de ponto-chave simples, porém flexível. Projetado com base nos princípios de singularidade e invariância, o SiLK atinge ou excede os níveis de SOTA nas principais tarefas de baixo nível da percepção visual 3D. A simplicidade do SiLK questiona se mecanismos complexos são necessários para uma boa detecção de ponto-chave em aplicativos de baixo nível. Além disso, extensos experimentos de ablação mostram a robustez do SiLK ao backbone, dados de treinamento e tamanhos de entrada de treinamento. Essas descobertas levam a uma versão pequena do SiLK que é leve, precisa e rápida de treinar. O artigo acredita que esse modo "minúsculo e aprendido" é muito promissor em aplicações em que o tempo de execução e/ou o consumo de energia são críticos. Os pesquisadores esperam que o SiLK chame a atenção do campo e estimule o desenvolvimento de soluções mais robustas.

Acho que você gosta

Origin juejin.im/post/7266310505920528396
Recomendado
Clasificación