首先介绍一下shuffle()函数,很简单就是将序列中的所有元素随机排序:如下所示
import random
a=list(range(6))
random.shuffle(a)
print(a)
随机排序后输出为[1, 5, 4, 0, 3, 2],接着如下简单的使用,在ReID中常用的代码块,随机排序后随机快速的遍历到与该索引号对应行人相同的id。
def serch_pos(self, index):
path, target, cam = self.imgs[index]
img = self.loader(path)
if self.true_pair:#找到和该图片一个行人id的,不一定是同一张图片,即pos对
img = self.transform(img)
random_index = list(range(self.len))
random.shuffle(random_index)#将序列中的所有元素随机排序
for i in random_index:
tpath, ttarget, tcam = self.imgs[i]
if ttarget == target:
timg = self.loader(tpath)
timg = self.transform(timg)
return img, target, path, cam, timg, tcam
#随机排序后遍历到同一行人id标签的图像 ,返回图像,personID,路径,cam id,以及同id变换后的图像和cam id