我正在为DeepSORT - https://github.com/nwojke/deep_sort使用这种回购。
我正在尝试建立一个多摄像头的人跟踪系统。我想保存和利用从其他相机的镜头中提取的一个摄像头的特征。
在火星数据集上训练的特征提取器似乎无助于区分两个不同的人。
我编写了下面的片段来检查来自同一个人和不同人的图像之间的余弦距离。
extr = Extractor("./deep_sort_pytorch/deep_sort/deep/checkpoint/ckpt.t7")
list = glob.glob("mars/*.jpg")
features_list = []
for i in list:
im = cv2.imread(i)
im_crops = [im]
features = extr(im_crops)
features_list.append(features)
for f in features_list:
print(_cosine_distance(f, features_list[0]),"<<")
def _cosine_distance(a, b, data_is_normalized=False):
cos = nn.CosineSimilarity(dim=1, eps=1e-6)
return (1. - cos(torch.from_numpy(a), torch.from_numpy(b)))正如预期的那样,同一人的图像之间的余弦距离很小。但出乎意料的是,两种不同作物之间的余弦距离也同样低。
我以为特征提取器会帮助我区分。
我应该把潜在空间的尺寸从512增加到更大吗?
或者我误解了特征提取器的作用。
发布于 2022-03-15 14:42:01
稍微大一点的特征空间可能会有所帮助。但是您的主要问题是特性提取器的体系结构。为了匹配人并区别于冒名顶替者,相应的小局部区域(如鞋、眼镜)和全球全身区域同样重要。这不是由https://github.com/nwojke/deep_sort提供的简单特征提取器捕获的。有关此检查的更多信息:https://arxiv.org/pdf/1905.00953.pdf。我建议您尝试这里提供的任何OSNet模型:https://kaiyangzhou.github.io/deep-person-reid/MODEL_ZOO
我还可以建议您查看我的存储库:https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch。它似乎提供了您所需要的一切:多摄像机、多目标跟踪和OSNet模型。
https://stackoverflow.com/questions/70494402
复制相似问题