代码地址:GitHub - AI-Zhpp/HAT
Market1501:http://www.liangzheng.org/Project/project_reid.html 或者:DukeMTMC-reID :https://github.com/layumi/DukeMTMC-reID_evaluation
pip install yacs
pip install pytorch-ignite==0.1.2
pip install einops
pytorch-ignite一定要0.1.2不然会报错。
https://download.pytorch.org/models/resnet50-19c8e357.pth
configs\softmax_triplet.yml中PRETRAIN_PATH改为你的resnet50-19c8e357.pth路径
MODEL:
PRETRAIN_CHOICE: 'imagenet'
PRETRAIN_PATH: 'D:/HAT/resnet50-19c8e357.pth'
tools\train.py中也要更改路径,把
parser.add_argument( "--config_file", default="D:/HAT/configs/softmax_triplet.yml", help="path to config file", type=str ) 这里面的default改为你的configs/softmax_triplet.yml的路径
def main():
# 新建一个ArgumentParser类对象,然后来添加若干个参数选项
parser = argparse.ArgumentParser(description="ReID Baseline Training")
# 给属性名之前加上“- -”,就能将之变为可选参数.这里的config_file是一个可选参数,返回给args的是 args.config_file
parser.add_argument(
"--config_file", default="D:/HAT/configs/softmax_triplet.yml", help="path to config file", type=str
)
parser.add_argument("opts", help="Modify config options using the command-line", default=None, # help中的内容说明了参数的意义
nargs=argparse.REMAINDER)
# 属性给与args实例: parser中增加的属性内容都在args实例中
args = parser.parse_args()
然后就可以train了。
更改softmax_triplet.yml中的test里weight的路径,把train好的模型放入。
TEST:
IMS_PER_BATCH: 1
RE_RANKING: 'no'
WEIGHT: "D:/HAT/tools/output/resnet50_model_150.pth"
NECK_FEAT: 'after'
FEAT_NORM: 'yes'
OUTPUT_DIR: "./output"
inference.py中去掉attribute,否则报错。
def _inference(engine, batch):
model.eval()
with torch.no_grad():
data, pids, camids, attribute = batch 改为 data, pids, camids = batch
test中也要个更改config_file的路径,把default中内容改为softmax_triplet.yml的路径
def main():
parser = argparse.ArgumentParser(description="ReID Baseline Inference")
parser.add_argument(
"--config_file", default="D:/HAT/configs/softmax_triplet.yml", help="path to config file", type=str
)
parser.add_argument("opts", help="Modify config options using the command-line", default=None,
nargs=argparse.REMAINDER)
args = parser.parse_args()
然后就可以test了。