🤔 Какие есть вариации anchor-free детекторов?



Anchor-free детекторы – это модели, которые выполняют детекцию объектов без использования заранее определенных anchor box-ов. Существует несколько вариаций таких детекторов, каждая из которых использует свои методы для определения объектов на изображении.



🚩Некоторые из наиболее популярных и эффективных вариаций anchor-free детекторов:



🟠CenterNet

CenterNet определяет объекты через нахождение их центров. Основная идея заключается в том, что центр каждого объекта отображается на тепловой карте, а размеры объекта и смещения от центра предсказываются отдельно. Используется для нахождения центров объектов. Размеры (ширина и высота) и смещения от центра объекта до его границ предсказываются отдельно. Высокая точность, особенно при детекции мелких объектов.



🟠CornerNet

CornerNet детектирует объекты путем нахождения углов объектов и объединения этих углов в пары. Модель предсказывает позиции верхнего левого и нижнего правого углов объекта. Углы комбинируются для формирования полных рамок объектов. Точность и возможность детектировать объекты различных форм и размеров.



🟠FCOS (Fully Convolutional One-Stage Object Detection)

FCOS предсказывает объекты на основе каждого пикселя изображения. Для каждого пикселя предсказываются расстояния до границ объекта (слева, справа, сверху, снизу). Одновременно предсказывается вероятность того, что данный пиксель принадлежит какому-либо объекту. Простота реализации, хорошая производительность и гибкость.



🟠RepPoints (Representation Points)

RepPoints использует набор представительных точек для описания формы и положения объектов. Множество точек, которые описывают контур объекта. Модель учится предсказывать положения этих точек и их распределение. Более точное описание сложных форм объектов и высокая точность.



🟠DETR (Detection Transformer)

DETR использует архитектуру трансформеров для детекции объектов. Используется для анализа изображения и предсказания объектов. Модель обучается использовать фиксированное количество запросов для предсказания объектов. Высокая точность и возможность обработки сложных сцен.

import torch

from torchvision.models.detection import fcos_resnet50_fpn



# Загрузка модели FCOS

model = fcos_resnet50_fpn(pretrained=True)

model.eval()



# Загрузка и предобработка изображения

from PIL import Image

import torchvision.transforms as T



image = Image.open('image.jpg')

transform = T.Compose([

T.Resize((512, 512)),

T.ToTensor(),

T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),

])

image = transform(image).unsqueeze(0)



# Предсказание объектов

with torch.no_grad():

outputs = model(image)



# Вывод результатов

for box, score, label in zip(outputs[0]['boxes'], outputs[0]['scores'], outputs[0]['labels']):

print(f'Object: {label}, Score: {score}, Box: {box}')




Ставь 👍 и забирай 📚 Базу знаний