Модель сегментирования чего-либо (SAM). Как мне прогнозировать_торч с несколькими блоками с соответствующими точками?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель сегментирования чего-либо (SAM). Как мне прогнозировать_торч с несколькими блоками с соответствующими точками?

Сообщение Anonymous »

В настоящее время я тестирую модель сегментирования чего-либо (SAM), и для моей проблемы требуется несколько блоков с соответствующими точками для специфичности внутри блока. например box1 = [#, #, # ,#] с точками [x,y] и классом [0 или 1], а затем несколько таких точек в одном изображении.
Я сделал это, используя только несколько ограничивающих рамок, но я хочу включить точки в каждую рамку.
Это мой текущий код, я больше не понимаю, почему он выдает ошибку:
Ошибка выполнения: размеры тензоров должны совпадать, за исключением измерения 1. Ожидался размер 1, но получен размер 3 для тензора номер 1 в списке.

import numpy as np
import torch
import matplotlib.pyplot as plt

point = np.array([[330, 370]])
label = np.array([1])

input_point = torch.tensor(point, device=predictor.device)
input_point = input_point.unsqueeze(0)
transformed_point = predictor.transform.apply_coords_torch(input_point, image.shape[:2])

input_label = torch.tensor(label, device=predictor.device)
input_label = input_label.unsqueeze(0)

#yxyx-xyxy
filtered_rois_xyxy = transform_yxyx_to_xyxy(filtered_rois)
input_boxes = torch.tensor(filtered_rois_xyxy, device=predictor.device)
transformed_boxes = predictor.transform.apply_boxes_torch(input_boxes, image.shape[:2])

masks,_,_ = predictor.predict_torch(
boxes=transformed_boxes,
point_coords=transformed_point,
point_labels=input_label,
multimask_output=False
)

masks.shape

plt.figure(figsize=(10, 10))
plt.imshow(image)
for mask in masks:
show_mask(mask.cpu().numpy(), plt.gca(), random_color=True)
for box in input_boxes:
show_box(box.cpu().numpy(), plt.gca())
plt.axis('off')
plt.show()

для целей отладки это распечатки каждого входа:

print(input_boxes)
print(input_point)
print(input_label)

tensor([[330, 370, 495, 634],
[401, 168, 586, 425],
[ 1, 0, 157, 210]], dtype=torch.int32)
tensor([[[330, 370]]])
tensor([[1]])


Подробнее здесь: https://stackoverflow.com/questions/787 ... s-with-the
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»