Code Monkey home page Code Monkey logo

msinet's People

Contributors

vimar-gu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

msinet's Issues

AssertionError: Error: all query identities do not appear in gallery RuntimeError: Sizes of tensors must match except in dimension 0. Expected size 256 but got size 64 for tensor number 1 in the list.

hello您好,我想复现VID的MSINet和MSINet-SAM部分 SAM部分的命令行如下python train.py --pretrained --logs-dir './logs_sam' --sam-mode pos_neg 报错RuntimeError: Sizes of tensors must match except in dimension 0. Expected size 256 but got size 64 for tensor number 1 in the list. 以及MSINet部分命令行如下 python train.py --pretrained 报错AssertionError: Error: all query identities do not appear in gallery 看到metrics.py代码里有如下remove部分# remove gallery samples that have the same pid and camid with query
order = indices[q_idx] # select one row
remove = (g_pids[order] == q_pid) & (g_camids[order] == q_camid)
keep = np.invert(remove) 不知道为什么仍然报错 希望得到您的帮助!十分感谢!

veri数据集训练相关问题

下载开源的预训练权重,训练Market1501数据集,得到训练和测试结果与您论文中结果一致。
但是使该权重训练veri数据集,得到的结果与论文差异较大,尤其是mAP值。
请问可能是哪些问题导致的呢?训练Market1501与veri数据集加载的是相同的预训练权重吗?

The test feature is normalized
=> Computing DistMat with euclidean distance
Validation Results - Epoch[299]
mAP: 46.6%
CMC curve, Rank-1 :80.9%
CMC curve, Rank-5 :88.9%
CMC curve, Rank-10 :91.8%

您好,在训练vehicleid数据集的时候出现了以下错误

File "train.py", line 107, in
main(args)
File "train.py", line 53, in main
do_train(args, model, criterion, train_loader, test_loader,
File "/home/sj4057/mzs/MSINet-main/reid/engine/trainer.py", line 59, in do_train
cmc, mAP, _, _, _, _, _ = evaluator.compute()
File "/home/sj4057/mzs/MSINet-main/reid/utils/metrics.py", line 134, in compute
cmc, mAP = eval_func(distmat, q_pids, g_pids, q_camids, g_camids)
File "/home/sj4057/mzs/MSINet-main/reid/utils/metrics.py", line 80, in eval_func
assert num_valid_q > 0, "Error: all query identities do not appear in gallery"
AssertionError: Error: all query identities do not appear in gallery

硬件询问

作者大大可以告诉我论文模型运行在什么硬件上吗

代码

什么时候可以公开完全的代码呀?

euclidean and cosine distance

您好,我看了一下代码里面计算损失的部分既有euclidean distance也有cosine distance,请问是使用euclidean distance的效果更好么。

Could not get accuracy that is mentioned in paper

I am using pre trained weights to get embedding and then calculating difference to ReID of images. But I am not geting results as I was expection and mentioned in paper. Please let me know do I need to train on my own dataset first. secondly please review code that I am using to get embedding .

`import os
import sys
import torch
import random
import numpy as np
import csv
import matplotlib.pyplot as plt
from PIL import Image
from torchvision import transforms
from torch.backends import cudnn
from reid.utils.logging import Logger
from reid.models.msinet import msinet_x1_0
from reid.utils.serialization import copy_state_dict
def count_parameters(model):
return np.sum(np.fromiter((np.prod(v.size()) for name, v in model.named_parameters() if 'classifier' not in name), dtype=np.float32)) / 1e6
def preprocess_image(image_path, height, width):
transform = transforms.Compose([
transforms.Resize((height, width)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
image = Image.open(image_path).convert('RGB')
image = transform(image)
image = image.unsqueeze(0) # Add batch dimension
return image
def extract_embedding(model, image_tensor):
model.eval()
with torch.no_grad():
embedding = model(image_tensor.cuda())
return embedding.cpu().numpy()
def euclidean_distance(embedding1, embedding2):
return np.linalg.norm(embedding1 - embedding2)
class Args:
def init(self):
# data
self.source_dataset = 'market1501'
self.target_dataset = 'none'
self.batch_size = 64
self.test_batch_size = 128
self.workers = 4
self.height = 256
self.width = 256
self.num_instance = 4
# model
self.arch = 'resnet50'
self.pretrained = False
self.reset_params = False
self.genotypes = 'msmt'
# loss
self.margin = 0.3
self.sam_mode = 'none'
self.sam_ratio = 2.0
# optimizer
self.optim = 'sgd'
self.lr = 0.065
self.weight_decay = 5e-4
self.momentum = 0.9
self.milestones = [150, 225, 300]
self.warmup_step = 10
# training configs
self.resume = ''
self.evaluate = False
self.epochs = 350
self.seed = 0
self.print_freq = 100
self.eval_interval = 40
# misc
self.data_dir = './data'
self.logs_dir = './logs'
self.pretrain_dir = './pretrained'
def main():
args = Args()
seed = args.seed
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
cudnn.deterministic = True
cudnn.benchmark = True
sys.stdout = Logger(os.path.join(args.logs_dir, 'log.txt'))
print('Running with:\n{}'.format(args))
num_classes = 751 # Set number of classes according to your dataset
model = msinet_x1_0(args, num_classes)
print('Model Params: {}'.format(count_parameters(model)))
model = model.cuda()

pretrained_weights = os.path.join(args.pretrain_dir, 'msinet_msmt.pth.tar')
if os.path.isfile(pretrained_weights):
    checkpoint = torch.load(pretrained_weights)
    copy_state_dict(checkpoint['state_dict'], model)
else:
    print(f"No pretrained weights found at {pretrained_weights}")

# Ask user for input image
 input_image_path = "./bb/0031_c1s1_002576_04.jpg"
# Load input image and extract its embedding
input_image_tensor = preprocess_image(input_image_path, args.height, args.width)
input_embedding = extract_embedding(model, input_image_tensor)
# Directory containing images
image_directory = './bb'  # Change this to your image directory
# Load other images and extract embeddings
image_paths = [os.path.join(image_directory, f) for f in os.listdir(image_directory) if f.endswith('.jpg')]
embeddings = []
for image_path in image_paths:
    image_tensor = preprocess_image(image_path, args.height, args.width)
    embedding = extract_embedding(model, image_tensor)
    embeddings.append((embedding, image_path))
# Calculate Euclidean distances between input embedding and other embeddings
distances = [(i, euclidean_distance(input_embedding, embedding[0])) for i, embedding in enumerate(embeddings)]
# Sort distances
distances.sort(key=lambda x: x[1])
# Display top 20 images
fig, axes = plt.subplots(5, 4, figsize=(15, 15))
for i in range(5):
    for j in range(4):
        if i == 0 and j == 0:
            # Display input image
            img = Image.open(input_image_path).convert('RGB')
            axes[i, j].imshow(img)
            axes[i, j].set_title("Input Image")
        else:
            # Display other images
            idx = i * 4 + j - 1
            if idx < len(distances):
                img = Image.open(image_paths[distances[idx][0]]).convert('RGB')
                axes[i, j].imshow(img)
                axes[i, j].set_title(f"Rank {idx + 1}\nDistance: {distances[idx][1]:.2f}")
            axes[i, j].axis('off')
plt.tight_layout()
plt.show()

if name == 'main':
main()`

Congratulations!

Your paper has been accepted by CVPR2023, when will the code be published? :)

IDM+MSINet代码咨询

尊敬的作者您好:
我看您实验中有将IDM与MSINet进行一个结合,但是我自己尝试将这两者进行结合后发现达不到您论文上的精度,您方便提供一下IDM+MSINet的相关代码吗?

Error during training

I tried python train.py --pretrained with Market-1501-v15.09.15, but it came up with error in comput 'feats'
微信截图_20230415141606

here is the Traceback

File "E:\ReID\MSINet\train.py", line 107, in
main(args)
File "E:\ReID\MSINet\train.py", line 53, in main
do_train(args, model, criterion, train_loader, test_loader,
File "E:\ReID\MSINet\reid\engine\trainer.py", line 59, in do_train
cmc, mAP, _, _, _, _, _ = evaluator.compute()
File "E:\ReID\MSINet\reid\utils\metrics.py", line 110, in compute
feats = torch.cat(self.feats, dim=0)
RuntimeError: torch.cat(): expected a non-empty list of Tensors

Many thx!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.