A STRONG BASELINE FOR VEHICLE RE-IDENTIFICATION

February 21, 2022 ยท View on GitHub

This paper is accepted to the IEEE Conference on Computer Vision and Pattern Recognition Workshop(CVPRW) 2021

This repo is the official implementation for the paper A Strong Baseline For Vehicle Re-Identification in Track 2, 2021 AI CITY CHALLENGE.

I.INTRODUCTION

Our proposed method sheds light on three main factors that contribute most to the performance, including:

  • Minizing the gap between real and synthetic data
  • Network modification by stacking multi heads with attention mechanism to backbone
  • Adaptive loss weight adjustment.

Our method achieves 61.34% mAP on the private CityFlow testset without using external dataset or pseudo labeling, and outperforms all previous works at 87.1% mAP on the Veri benchmark.

II. INSTALLATION

  1. pytorch>=1.2.0
  2. yacs
  3. apex (optional for FP16 training, if you don't have apex installed, please turn-off FP16 training by setting SOLVER.FP16=False)
$ git clone https://github.com/NVIDIA/apex
$ cd apex
$ pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
  1. python>=3.7
  2. cv2

III. REPRODUCE THE RESULT ON AICITY 2020 CHALLENGE

Download the Imagenet pretrained checkpoint resnext101_ibn, resnet50_ibn, resnet152

1.Train

  • Prepare training data

    • Convert the original synthetic images into more realistic one, using Unit repository

    • Using Mask-RCNN (pre-train on COCO) to extract foreground (car) and background, then we swap the foreground and background between training images.

  • Vehicle ReID Train multiple models using 3 different backbones: ResNext101_ibn, Resnet50_ibn, Resnet152

    ./scripts/train.sh
  • Orientation ReID
    ./scripts/ReOriID.sh
  • Camera ReID
    ./scripts/ReCamID.sh

2. Test

    ./scripts/test.sh

IV. PERFORMANCE

1. Comparison with state-of-the art methods on VeRi776