TransReID: Transformer-based Object Re-Identification

Python >=3.5 PyTorch >=1.0

TransReID: Transformer-based Object Re-Identification [arxiv]

The official repository for TransReID: Transformer-based Object Re-Identification achieves state-of-the-art performances on object re-ID, including person re-ID and vehicle re-ID.

Pipeline

framework

Abaltion Study of Transformer-based Strong Baseline

framework

Requirements

Installation

pip install -r requirements.txt
(we use /torch 1.6.0 /torchvision 0.7.0 /timm 0.3.2 /cuda 10.1 / 16G or 32G V100 for training and evaluation.
Note that we use torch.cuda.amp to accelerate speed of training which requires pytorch >=1.6)

Prepare Datasets

mkdir data

Download the person datasets Market-1501, MSMT17, DukeMTMC-reID,Occluded-Duke, and the vehicle datasets VehicleID, VeRi-776, Then unzip them and rename them under the directory like

data
├── market1501
│   └── images ..
├── MSMT17
│   └── images ..
├── dukemtmcreid
│   └── images ..
├── Occluded_Duke
│   └── images ..
├── VehicleID_V1.0
│   └── images ..
└── VeRi
    └── images ..

Prepare DeiT or ViT Pre-trained Models

You need to download the ImageNet pretrained transformer model : ViT-Base, ViT-Small, DeiT-Small, DeiT-Base

Training

We utilize 1 GPU for training.

python train.py --config_file configs/transformer_base.yml MODEL.DEVICE_ID "('your device id')" MODEL.STRIDE_SIZE ${1} MODEL.SIE_CAMERA ${2} MODEL.SIE_VIEW ${3} MODEL.JPM ${4} MODEL.TRANSFORMER_TYPE ${5} OUTPUT_DIR ${OUTPUT_DIR} DATASETS.NAMES "('your dataset name')"

Arguments

  • ${1}: stride size for pure transformer, e.g. [16, 16], [14, 14], [12, 12]
  • ${2}: whether using SIE with camera, True or False.
  • ${3}: whether using SIE with view, True or False.
  • ${4}: whether using JPM, True or False.
  • ${5}: choose transformer type from 'vit_base_patch16_224_TransReID',(The structure of the deit is the same as that of the vit, and only need to change the imagenet pretrained model) 'vit_small_patch16_224_TransReID','deit_small_patch16_224_TransReID',
  • ${OUTPUT_DIR}: folder for saving logs and checkpoints, e.g. ../logs/market1501

or you can directly train with following yml and commands:

# DukeMTMC transformer-based baseline
python train.py --config_file configs/DukeMTMC/vit_base.yml MODEL.DEVICE_ID "('0')"
# DukeMTMC baseline + JPM
python train.py --config_file configs/DukeMTMC/vit_jpm.yml MODEL.DEVICE_ID "('0')"
# DukeMTMC baseline + SIE
python train.py --config_file configs/DukeMTMC/vit_sie.yml MODEL.DEVICE_ID "('0')"
# DukeMTMC TransReID (baseline + SIE + JPM)
python train.py --config_file configs/DukeMTMC/vit_transreid.yml MODEL.DEVICE_ID "('0')"
# DukeMTMC TransReID with stride size [12, 12]
python train.py --config_file configs/DukeMTMC/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')"

# MSMT17
python train.py --config_file configs/MSMT17/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')"
# OCC_Duke
python train.py --config_file configs/OCC_Duke/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')"
# Market
python train.py --config_file configs/Market/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')"

Evaluation

python test.py --config_file 'choose which config to test' MODEL.DEVICE_ID "('your device id')" TEST.WEIGHT "('your path of trained checkpoints')"

Some examples:

# DukeMTMC
python test.py --config_file configs/DukeMTMC/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')"  TEST.WEIGHT '../logs/duke_vit_transreid/transformer_120.pth'
# MSMT17
python test.py --config_file configs/MSMT17/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')" TEST.WEIGHT '../logs/msmt17_vit_transreid/transformer_120.pth'
# OCC_Duke
python test.py --config_file configs/OCC_Duke/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')" TEST.WEIGHT '../logs/occ_duke_vit_transreid/transformer_120.pth'
# Market
python test.py --config_file configs/Market/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')"  TEST.WEIGHT '../logs/market_vit_transreid/transformer_120.pth'

Trained Models and logs (Size 256)

framework

Model MSMT17 Market Duke OCC_Duke VeRi VehicleID
baseline(ViT) model | log model | log model | log model | log TBD TBD
TransReID^*(ViT) model | log model | log model | log model | log TBD TBD
TransReID^*(DeiT) model | log model | log model | log model | log TBD TBD

(We reorganize the code. Now we are running each experiment one by one to make sure that you can reproduce the results in our paper. We will gradually upload the logs and models after training in the following weeks. Thanks for your attention.)

Acknowledgement

Codebase from reid-strong-baseline , pytorch-image-models

Citation

If you find this code useful for your research, please cite our paper

@article{he2021transreid,
  title={TransReID: Transformer-based Object Re-Identification},
  author={He, Shuting and Luo, Hao and Wang, Pichao and Wang, Fan and Li, Hao and Jiang, Wei},
  journal={arXiv preprint arXiv:2102.04378},
  year={2021}
}

Contact

If you have any question, please feel free to contact us. E-mail: [email protected] , [email protected]

Owner
Comments
  • Question on performance

    Question on performance

    Hi, thanks for your awesome work. I met some problem when trying to reproduce the results of vit-base on MSMT17. all default settings were not changed. I only got 58.2% mAP and 78.8% Rank1 that results is far lower than your reported, 61% mAP and 81% Rank1.

    In addition, could you provide the config file that is used for ResNet50 to achieve 51.3% mAP?

  • Change Backbone to Swin Transformer

    Change Backbone to Swin Transformer

    Hello, first of all thank you guys for your excellent work. Have you ever tried to replace the backbone network of TransReID with Swin Transformer, because Swin seems to surpass ViT and DeiT in various fields of computer vision. I don’t know if Swin is in the re-identification field will also perform better. I look forward to your reply, thank you.

  • stays at

    stays at "transreid.train INFO: start training "

    Hi,

    Your work regarding Reid using Transformers is really appreciated.

    I am trying to train the "Market" dataset using the terminal command: python train.py --config_file configs/Market/vit_transreid_stride.yml MODEL.DEVICE_ID "('0')" Model is initiallized but it remains in the state "transreid.train INFO: start training" and do not proceed further for training. While trying to debug, I found that program enters in the main loop of epochs but doesn't enters in the nested loop as shown below:
    https://github.com/heshuting555/TransReID/blob/5901746360fc5c02b415f4dafb191d8d20d6e1c2/processor/processor.py#L43-L50 I don't know how to resolve this issue. Meanwhile i also looked into this but this didn't help me out. I shall be thankful for the fruitful response.

    Kind Regards,

  • 请问训练ID增加之后训练效果越来越差怎么回事呢

    请问训练ID增加之后训练效果越来越差怎么回事呢

    我用market的数据训练的结果还是不错的,map能到89。但是换成我自己的数据总共2w多ID,训练的精度越来越低怎么回事呢?

    训练log简略如下

    `2021-06-04 00:48:20,521 transreid.train INFO: Epoch[20] Iteration[9650/9664] Loss: 0.258, Acc: 0.990, Base Lr: 7.47e-03 2021-06-04 00:48:23,076 transreid.train INFO: Epoch 20 done. Time per batch: 0.479[s] Speed: 200.2[samples/s] 2021-06-04 00:57:57,701 transreid.train INFO: Validation Results - Epoch: 20 2021-06-04 00:57:57,702 transreid.train INFO: mAP: 81.2% 2021-06-04 00:57:57,702 transreid.train INFO: CMC curve, Rank-1 :87.8% 2021-06-04 00:57:57,702 transreid.train INFO: CMC curve, Rank-5 :94.9% 2021-06-04 00:57:57,702 transreid.train INFO: CMC curve, Rank-10 :96.7%

    2021-06-05 02:08:35,194 transreid.train INFO: Epoch[40] Iteration[9650/9664] Loss: 0.222, Acc: 0.992, Base Lr: 6.00e-03 2021-06-05 02:08:37,790 transreid.train INFO: Epoch 40 done. Time per batch: 0.465[s] Speed: 206.2[samples/s] 2021-06-05 02:25:14,449 transreid.train INFO: Validation Results - Epoch: 40 2021-06-05 02:25:14,449 transreid.train INFO: mAP: 75.3% 2021-06-05 02:25:14,449 transreid.train INFO: CMC curve, Rank-1 :83.8% 2021-06-05 02:25:14,449 transreid.train INFO: CMC curve, Rank-5 :92.7% 2021-06-05 02:25:14,449 transreid.train INFO: CMC curve, Rank-10 :95.0%

    2021-06-06 03:36:32,438 transreid.train INFO: Epoch[60] Iteration[9650/9664] Loss: 0.192, Acc: 0.994, Base Lr: 4.01e-03 2021-06-06 03:36:34,616 transreid.train INFO: Epoch 60 done. Time per batch: 0.477[s] Speed: 201.5[samples/s] 2021-06-06 03:44:21,223 transreid.train INFO: Validation Results - Epoch: 60 2021-06-06 03:44:21,224 transreid.train INFO: mAP: 73.8% 2021-06-06 03:44:21,224 transreid.train INFO: CMC curve, Rank-1 :82.6% 2021-06-06 03:44:21,224 transreid.train INFO: CMC curve, Rank-5 :92.1% 2021-06-06 03:44:21,224 transreid.train INFO: CMC curve, Rank-10 :94.8%

    2021-06-07 05:17:49,856 transreid.train INFO: Epoch[80] Iteration[9650/9664] Loss: 0.163, Acc: 0.996, Base Lr: 2.01e-03 2021-06-07 05:17:52,963 transreid.train INFO: Epoch 80 done. Time per batch: 0.475[s] Speed: 202.1[samples/s] 2021-06-07 05:23:11,936 transreid.train INFO: Validation Results - Epoch: 80 2021-06-07 05:23:11,937 transreid.train INFO: mAP: 76.2% 2021-06-07 05:23:11,937 transreid.train INFO: CMC curve, Rank-1 :84.0% 2021-06-07 05:23:11,937 transreid.train INFO: CMC curve, Rank-5 :92.9% 2021-06-07 05:23:11,937 transreid.train INFO: CMC curve, Rank-10 :95.3%

    2021-06-08 07:02:58,814 transreid.train INFO: Epoch[100] Iteration[9650/9664] Loss: 0.132, Acc: 0.997, Base Lr: 5.51e-04 2021-06-08 07:03:02,568 transreid.train INFO: Epoch 100 done. Time per batch: 0.481[s] Speed: 199.7[samples/s] 2021-06-08 07:13:33,157 transreid.train INFO: Validation Results - Epoch: 100 2021-06-08 07:13:33,158 transreid.train INFO: mAP: 77.5% 2021-06-08 07:13:33,158 transreid.train INFO: CMC curve, Rank-1 :84.7% 2021-06-08 07:13:33,158 transreid.train INFO: CMC curve, Rank-5 :93.0% 2021-06-08 07:13:33,158 transreid.train INFO: CMC curve, Rank-10 :95.4%

    2021-06-09 09:06:40,634 transreid.train INFO: Epoch[120] Iteration[9650/9664] Loss: 0.114, Acc: 0.998, Base Lr: 1.60e-05 2021-06-09 09:06:44,437 transreid.train INFO: Epoch 120 done. Time per batch: 0.482[s] Speed: 199.3[samples/s] 2021-06-09 09:10:12,020 transreid.train INFO: Validation Results - Epoch: 120 2021-06-09 09:10:12,021 transreid.train INFO: mAP: 77.3% 2021-06-09 09:10:12,021 transreid.train INFO: CMC curve, Rank-1 :84.3% 2021-06-09 09:10:12,021 transreid.train INFO: CMC curve, Rank-5 :92.9% 2021-06-09 09:10:12,021 transreid.train INFO: CMC curve, Rank-10 :95.1%`

    训练配置如下

    `MODEL: PRETRAIN_CHOICE: 'imagenet' PRETRAIN_PATH: '/home/tiantong/.cache/torch/hub/checkpoints/jx_vit_base_p16_224-80ecf9dd.pth' METRIC_LOSS_TYPE: 'triplet' IF_LABELSMOOTH: 'off' IF_WITH_CENTER: 'no' NAME: 'transformer' NO_MARGIN: True DEVICE_ID: ('2') TRANSFORMER_TYPE: 'vit_base_patch16_224_TransReID' STRIDE_SIZE: [12, 12] SIE_CAMERA: True SIE_COE: 3.0 JPM: True RE_ARRANGE: True

    INPUT: SIZE_TRAIN: [256, 128] SIZE_TEST: [256, 128] PROB: 0.5 # random horizontal flip RE_PROB: 0.5 # random erasing PADDING: 10 PIXEL_MEAN: [0.5, 0.5, 0.5] PIXEL_STD: [0.5, 0.5, 0.5]

    DATASETS: NAMES: ('yintai3') ROOT_DIR: ('../../data')

    DATALOADER: SAMPLER: 'softmax_triplet' NUM_INSTANCE: 4 NUM_WORKERS: 8

    SOLVER: OPTIMIZER_NAME: 'SGD' MAX_EPOCHS: 120 BASE_LR: 0.008 IMS_PER_BATCH: 96 WARMUP_METHOD: 'linear' LARGE_FC_LR: False CHECKPOINT_PERIOD: 10 # 120 LOG_PERIOD: 50 EVAL_PERIOD: 20 # 120 WEIGHT_DECAY: 1e-4 WEIGHT_DECAY_BIAS: 1e-4 BIAS_LR_FACTOR: 2

    TEST: EVAL: True IMS_PER_BATCH: 256 RE_RANKING: False WEIGHT: '' NECK_FEAT: 'before' FEAT_NORM: 'yes'

    OUTPUT_DIR: 'logs/market_vit_transreid_stride'

    2021-06-02 23:19:55,969 transreid INFO: Running with config: DATALOADER: NUM_INSTANCE: 4 NUM_WORKERS: 8 SAMPLER: softmax_triplet DATASETS: NAMES: yintai3 ROOT_DIR: ../../data INPUT: PADDING: 10 PIXEL_MEAN: [0.5, 0.5, 0.5] PIXEL_STD: [0.5, 0.5, 0.5] PROB: 0.5 RE_PROB: 0.5 SIZE_TEST: [256, 128] SIZE_TRAIN: [256, 128] MODEL: ATT_DROP_RATE: 0.0 COS_LAYER: False DEVICE: cuda DEVICE_ID: 2 DEVIDE_LENGTH: 4 DIST_TRAIN: False DROP_OUT: 0.0 DROP_PATH: 0.1 ID_LOSS_TYPE: softmax ID_LOSS_WEIGHT: 1.0 IF_LABELSMOOTH: off IF_WITH_CENTER: no JPM: True LAST_STRIDE: 1 METRIC_LOSS_TYPE: triplet NAME: transformer NECK: bnneck NO_MARGIN: True PRETRAIN_CHOICE: imagenet PRETRAIN_PATH: /home/tiantong/.cache/torch/hub/checkpoints/jx_vit_base_p16_224-80ecf9dd.pth RE_ARRANGE: True SHIFT_NUM: 5 SHUFFLE_GROUP: 2 SIE_CAMERA: True SIE_COE: 3.0 SIE_VIEW: False STRIDE_SIZE: [12, 12] TRANSFORMER_TYPE: vit_base_patch16_224_TransReID TRIPLET_LOSS_WEIGHT: 1.0 OUTPUT_DIR: logs/market_vit_transreid_stride_0602_231955 SOLVER: BASE_LR: 0.008 BIAS_LR_FACTOR: 2 CENTER_LOSS_WEIGHT: 0.0005 CENTER_LR: 0.5 CHECKPOINT_PERIOD: 10 COSINE_MARGIN: 0.5 COSINE_SCALE: 30 EVAL_PERIOD: 20 GAMMA: 0.1 IMS_PER_BATCH: 96 LARGE_FC_LR: False LOG_PERIOD: 50 MARGIN: 0.3 MAX_EPOCHS: 120 MOMENTUM: 0.9 OPTIMIZER_NAME: SGD SEED: 1234 STEPS: (40, 70) WARMUP_EPOCHS: 5 WARMUP_FACTOR: 0.01 WARMUP_METHOD: linear WEIGHT_DECAY: 0.0001 WEIGHT_DECAY_BIAS: 0.0001 TEST: DIST_MAT: dist_mat.npy EVAL: True FEAT_NORM: yes IMS_PER_BATCH: 256 NECK_FEAT: before RE_RANKING: False WEIGHT: `

  • Pretraining matters?

    Pretraining matters?

    Many thanks for you breakthrough work of introducing transformer into Person Re-id. I have tried your code locally and it works well as expected. However, I just find that the pretraining models from imagenet may have a significant influence on the downstream reid performance. The vit-base model was pretrained on imagenet21k and finetuned on imagenet 1k afterwards, while other cnn-based networks were mostly pretrained on imagenet 1k directly instead. So in fair, I think we have to compare these models by using the pretrained model from the same data scale. I have also replaced the vit with the swin architecture which provides 1k pretrained model as well as 22k. The experiments with 22k pretrained models on market1501 and msmt17 outperforms those with 1k greatly. I suppose if using vit models pretrained on 1k imagenet dataset, the gap between TransReID and other cnn-based networks could be narrowed. Anyway, transformer benefits a lot from dataset scale which can also be considered as a trick for downstream works like person reid. If you have also tried some experiments over such pretraining issues, I would appreciate if you can share some findings with me.

  • 增加卷积层性能下降

    增加卷积层性能下降

    您好! 很抱歉打扰到您,我想请问一下为什么我在PatchEmbed_overlap块增加convolution了以后性能大幅下降,我没有更改其他代码,只是将卷积层增加到了四层。这是我的部分代码: self.conv1 = nn.Conv2d(in_chans, 128, kernel_size=7, stride=2, padding=3, bias=False)
    self.bn1 = nn.BatchNorm2d(128) self.relu = nn.ReLU(inplace=True) self.proj = nn.Conv2d(128, embed_dim, kernel_size=new_patch_size, stride=new_patch_size) def forward(self, x): x = self.conv1(x) x = self.bn1(x) x = self.relu(x)

  • Test method for vehicleid dataset

    Test method for vehicleid dataset

    Since the vehicleid dataset is different from other datasets, an error will be reported if the vehicleid dataset is tested according to the test method of other datasets.

  • base.sie_embed

    base.sie_embed

    Hello, I have a problem now. This problem is that when I use the trained model to test, a keyError:'base.sie_embed' appears. Where should I start to solve this? I look forward to your reply.

  • 关于Jigsaw Branch的问题

    关于Jigsaw Branch的问题

    罗博士,您好。 关于您的代码中Global Branch和Jigsaw Branch部分,是不是在原有vit的基础上增加了一个block呢? block = self.base.blocks[-1] layer_norm = self.base.norm self.b1 = nn.Sequential( copy.deepcopy(block), copy.deepcopy(layer_norm))

  • RuntimeError: The size of tensor a (173) must match the size of tensor b (160) at non-singleton dimension 0

    RuntimeError: The size of tensor a (173) must match the size of tensor b (160) at non-singleton dimension 0

    想问一下,我自己写了veri wild 的数据读入部分,我想直接用在veri数据集上训练的模型测试一下在veri wild上的结果,然后报错了,请问还要修改哪里呢? 完整的报错信息是这样的: Traceback (most recent call last): File "test.py", line 53, in model.load_param(cfg.TEST.WEIGHT) File "E:\Win_Pycharm_Project\TransReID-main\TransReID-main\model\make_model.py", line 376, in load_param self.state_dict()[i.replace('module.', '')].copy_(param_dict[i]) RuntimeError: The size of tensor a (173) must match the size of tensor b (160) at non-singleton dimension 0

    麻烦大佬了~~~

  •  How to use multiple GPUs to train and test the network?

    How to use multiple GPUs to train and test the network?

    I used two GPUs to train the network, and was an error: ValueError: Error initializing torch.distributed using env:// rendezvous: environment variable RANK expected, but not set

  • Merge different entities!!!

    Merge different entities!!!

    Hi, Thanks for sharing your great work, as I see, you trained the model based on specific datasets which is used for specific entity, like human and vehicle. so, I want to know, what would happen if we combine these datasets and train a single model? Does the performance drop too bad? I'm looking forward to your answer eagerly, Thanks

  • Patch Shuffle Operation

    Patch Shuffle Operation

        try:
            x = x.view(batchsize, group, -1, dim)
        except:
            x = torch.cat([x, x[:, -2:-1, :]], dim=1)
            x = x.view(batchsize, group, -1, dim)
    

    Could you please help me understand how this part carry out shuffle operation? I thought there's just a concat...

  • how to get the feature of one image?

    how to get the feature of one image?

    Hi, I tried to use your model to extract feature of any image, it works and I get the feature; however, the feature value is related to camera id and view, but I don't know the camera id and view, can we directly get the feature? can I get the feature of any image? thanks.

  • 对ViT骨干网络细微改动后性能大幅下降

    对ViT骨干网络细微改动后性能大幅下降

    您好!抱歉打扰您。我最近尝试对您提出的Baseline进行改进,例如在PatchEmbed_overlap中加入卷积,但性能都大幅下降。

    我看到您之前的回答 : “最根本的原因在于你新加的conv层没有预训练而是随机初始化,而vit的其他层全部都是ImageNet预训练的,导致网络输入全部错乱了,因此产生了掉点”

    我想请问一下“网络输入全部错乱”指的是什么意思?以及如何解决这个问题?(目前的实验条件不支持我重新在ImageNet上重新预训练模型)

  • Hello!! AssertionError: Error: all query identities do not appear in gallery

    Hello!! AssertionError: Error: all query identities do not appear in gallery

    When I test it with my own dataset ,but it told me AssertionError: Error: all query identities do not appear in gallery

    and this model is trained by my own dataset ,

VSR-Transformer - This paper proposes a new Transformer for video super-resolution (called VSR-Transformer).
VSR-Transformer - This paper proposes a new Transformer for video super-resolution (called VSR-Transformer).

VSR-Transformer By Jiezhang Cao, Yawei Li, Kai Zhang, Luc Van Gool This paper proposes a new Transformer for video super-resolution (called VSR-Transf

Nov 13, 2022
This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows" on Object Detection and Instance Segmentation.

Swin Transformer for Object Detection This repo contains the supported code and configuration files to reproduce object detection results of Swin Tran

Nov 30, 2022
Nov 17, 2022
Tools to create pixel-wise object masks, bounding box labels (2D and 3D) and 3D object model (PLY triangle mesh) for object sequences filmed with an RGB-D camera.
Tools to create pixel-wise object masks, bounding box labels (2D and 3D) and 3D object model (PLY triangle mesh) for object sequences filmed with an RGB-D camera.

Tools to create pixel-wise object masks, bounding box labels (2D and 3D) and 3D object model (PLY triangle mesh) for object sequences filmed with an RGB-D camera. This project prepares training and testing data for various deep learning projects such as 6D object pose estimation projects singleshotpose, as well as object detection and instance segmentation projects.

Nov 28, 2022
Implementation of "Learning Multi-Granular Hypergraphs for Video-Based Person Re-Identification"

hypergraph_reid Implementation of "Learning Multi-Granular Hypergraphs for Video-Based Person Re-Identification" If you find this help your research,

Nov 19, 2022
Builds a LoRa radio frequency fingerprint identification (RFFI) system based on deep learning techiniques
Builds a LoRa radio frequency fingerprint identification (RFFI) system based on deep learning techiniques

This project builds a LoRa radio frequency fingerprint identification (RFFI) system based on deep learning techiniques.

Nov 25, 2022
App for identification of various objects. Based on YOLO v4 tiny architecture

Object_detection Repository containing trained model yolo v4 tiny, which is capable of identification 80 different classes Default feed is set to be a

Jun 22, 2022
Rethinking Transformer-based Set Prediction for Object Detection

Rethinking Transformer-based Set Prediction for Object Detection Here are the code for the ICCV paper. The code is adapted from Detectron2 and AdelaiD

Nov 29, 2022
ViDT: An Efficient and Effective Fully Transformer-based Object Detector
ViDT: An Efficient and Effective Fully Transformer-based Object Detector

ViDT: An Efficient and Effective Fully Transformer-based Object Detector by Hwanjun Song1, Deqing Sun2, Sanghyuk Chun1, Varun Jampani2, Dongyoon Han1,

Nov 7, 2022
TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-Captured Scenarios
TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-Captured Scenarios

TPH-YOLOv5 This repo is the implementation of "TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-Captured

Nov 25, 2022
offical implement of our Lifelong Person Re-Identification via Adaptive Knowledge Accumulation in CVPR2021
offical implement of our Lifelong Person Re-Identification via Adaptive Knowledge Accumulation in CVPR2021

LifelongReID Offical implementation of our Lifelong Person Re-Identification via Adaptive Knowledge Accumulation in CVPR2021 by Nan Pu, Wei Chen, Yu L

Oct 22, 2022
Differentiable simulation for system identification and visuomotor control
Differentiable simulation for system identification and visuomotor control

gradsim gradSim: Differentiable simulation for system identification and visuomotor control gradSim is a unified differentiable rendering and multiphy

Dec 3, 2022
[TIP2020] Adaptive Graph Representation Learning for Video Person Re-identification

Introduction This is the PyTorch implementation for Adaptive Graph Representation Learning for Video Person Re-identification. Get started git clone h

Sep 15, 2022
This repo is developed for Strong Baseline For Vehicle Re-Identification in Track 2 Ai-City-2021 Challenges
This repo is developed for Strong Baseline For Vehicle Re-Identification in Track 2 Ai-City-2021 Challenges

A STRONG BASELINE FOR VEHICLE RE-IDENTIFICATION This paper is accepted to the IEEE Conference on Computer Vision and Pattern Recognition Workshop(CVPR

Sep 30, 2022
The 1st place solution of track2 (Vehicle Re-Identification) in the NVIDIA AI City Challenge at CVPR 2021 Workshop.

AICITY2021_Track2_DMT The 1st place solution of track2 (Vehicle Re-Identification) in the NVIDIA AI City Challenge at CVPR 2021 Workshop. Introduction

Nov 15, 2022
[CVPR-2021] UnrealPerson: An adaptive pipeline for costless person re-identification
[CVPR-2021]  UnrealPerson: An  adaptive pipeline  for  costless person re-identification

UnrealPerson: An Adaptive Pipeline for Costless Person Re-identification In our paper (arxiv), we propose a novel pipeline, UnrealPerson, that decreas

Oct 10, 2022
Repo for "Event-Stream Representation for Human Gaits Identification Using Deep Neural Networks"

Summary This is the code for the paper Event-Stream Representation for Human Gaits Identification Using Deep Neural Networks by Yanxiang Wang, Xian Zh

Nov 15, 2022
Unsupervised Pre-training for Person Re-identification (LUPerson)

LUPerson Unsupervised Pre-training for Person Re-identification (LUPerson). The repository is for our CVPR2021 paper Unsupervised Pre-training for Per

Nov 15, 2022