/ Модель

Характеристики

Архитектура
superpoint · dense
Опубликована
20 сен 2023

superpoint

Классификация и разметка3 профессии

SuperPoint обнаруживает характерные точки на изображениях и вычисляет их дескрипторы для сопоставления изображений и задач геометрии нескольких видов.

237скачиваний за 30 дней2лайкавеса обновлены5 сен 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

SuperPoint — полностью свёрточная модель компьютерного зрения для обнаружения характерных точек на изображениях и вычисления дескриптора для каждой точки. Модель основана на работе Дэниела ДеТоуна, Томаша Малишевича и Эндрю Рабиновича «SuperPoint: Self-Supervised Interest Point Detection and Description»; карточка описывает обучение с самоконтролем.

Модель обрабатывает изображение за один проход и предназначена для извлечения признаков, пригодных для сопоставления изображений и оценки гомографии. Она выявляет точки, повторяемые при гомографических преобразованиях. Репозиторий использует PyTorch и формат safetensors; лицензия в предоставленных данных не указана.

Сценарии применения

  • поиск соответствующих точек между двумя изображениями
  • сопоставление изображений при изменении перспективы
  • извлечение локальных признаков для оценки гомографии

Ограничения

Самостоятельное применение модели ограничено: для сопоставления изображений и оценки гомографии её признаки обычно используют в составе более крупного конвейера.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

SuperPoint

Overview

The SuperPoint model was proposed in SuperPoint: Self-Supervised Interest Point Detection and Description by Daniel DeTone, Tomasz Malisiewicz and Andrew Rabinovich.

This model is the result of a self-supervised training of a fully-convolutional network for interest point detection and description. The model is able to detect interest points that are repeatable under homographic transformations and provide a descriptor for each point. The use of the model in its own is limited, but it can be used as a feature extractor for other tasks such as homography estimation, image matching, etc.

The abstract from the paper is the following:

This paper presents a self-supervised framework for training interest point detectors and descriptors suitable for a large number of multiple-view geometry problems in computer vision. As opposed to patch-based neural networks, our fully-convolutional model operates on full-sized images and jointly computes pixel-level interest point locations and associated descriptors in one forward pass. We introduce Homographic Adaptation, a multi-scale, multi-homography approach for boosting interest point detection repeatability and performing cross-domain adaptation (e.g., synthetic-to-real). Our model, when trained on the MS-COCO generic image dataset using Homographic Adaptation, is able to repeatedly detect a much richer set of interest points than the initial pre-adapted deep model and any other traditional corner detector. The final system gives rise to state-of-the-art homography estimation results on HPatches when compared to LIFT, SIFT and ORB.

SuperPoint overview. Taken from the original paper.

Usage tips

Here is a quick example of using the model to detect interest points in an image:

from transformers import AutoImageProcessor, SuperPointForKeypointDetection
import torch
from PIL import Image
import requests

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

processor = AutoImageProcessor.from_pretrained("magic-leap-community/superpoint")
model = SuperPointForKeypointDetection.from_pretrained("magic-leap-community/superpoint")

inputs = processor(image, return_tensors="pt")
outputs = model(**inputs)

The outputs contain the list of keypoint coordinates with their respective score and description (a 256-long vector).

You can also feed multiple images to the model. Due to the nature of SuperPoint, to output a dynamic number of keypoints, you will need to use the mask attribute to retrieve the respective information :

from transformers import AutoImageProcessor, SuperPointForKeypointDetection
import torch
from PIL import Image
import requests

url_image_1 = "http://images.cocodataset.org/val2017/000000039769.jpg"
image_1 = Image.open(requests.get(url_image_1, stream=True).raw)
url_image_2 = "http://images.cocodataset.org/test-stuff2017/000000000568.jpg"
image_2 = Image.open(requests.get(url_image_2, stream=True).raw)

images = [image_1, image_2]

processor = AutoImageProcessor.from_pretrained("magic-leap-community/superpoint")
model = SuperPointForKeypointDetection.from_pretrained("magic-leap-community/superpoint")

inputs = processor(images, return_tensors="pt")
outputs = model(**inputs)
image_sizes = [(image.size[1], image.size[0]) for image in images]
outputs = processor.post_process_keypoint_detection(outputs, image_sizes)

for output in outputs:
    keypoints = output["keypoints"]
    scores = output["scores"]
    descriptors = output["descriptors"]

You can then print the keypoints on the image of your choice to visualize the result:

import matplotlib.pyplot as plt

plt.axis("off")
plt.imshow(image)
plt.scatter(
    keypoints[:, 0],
    keypoints[:, 1],
    c=scores * 100,
    s=scores * 50,
    alpha=0.8
)
plt.savefig(f"output_image.png")

image/png

This model was contributed by stevenbucaille. The original code can be found here.

Resources

A list of official Hugging Face and community (indicated by 🌎) resources to help you get started with SuperPoint. If you're interested in submitting a resource to be included here, please feel free to open a Pull Request and we'll review it! The resource should ideally demonstrate something new instead of duplicating an existing resource.

  • A notebook showcasing inference and visualization with SuperPoint can be found here. 🌎

SuperPointConfig

[[autodoc]] SuperPointConfig

SuperPointImageProcessor

[[autodoc]] SuperPointImageProcessor

  • preprocess
  • post_process_keypoint_detection

SuperPointForKeypointDetection

[[autodoc]] SuperPointForKeypointDetection

  • forward

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · keypoint-detection

Можно запустить

Подбираем GPU…

Класс архитектуры
SuperPointForKeypointDetection
Ревизия весов
d1495a7

0 моделей