Joint Detection and Identification Feature Learning for Person Search

Overview

Person Search Project

This repository hosts the code for our paper Joint Detection and Identification Feature Learning for Person Search. The code is modified from the py-faster-rcnn written by Ross Girshick.

Request the dataset from lishuang[at]mit.edu or tong.xiao.work[at]gmail.com (academic only).
Due to licensing issues, please send us your request using your university email.

Installation

  1. Clone this repo recursively
git clone --recursive https://github.com/ShuangLI59/person_search.git
  1. Build Caffe with python layers and interface

We modified caffe based on Yuanjun's fork, which supports multi-gpu and memory optimization.

Apart from the official installation prerequisites, we have several other dependencies:

  • cudnn-v5.1
  • 1.7.4 < openmpi < 2.0.0
  • boost >= 1.55 (A tip for Ubuntu 14.04: sudo apt-get autoremove libboost1.54* then sudo apt-get install libboost1.55-all-dev)

Then compile and install the caffe with

cd caffe
mkdir build && cd build
cmake .. -DUSE_MPI=ON -DCUDNN_INCLUDE=/path/to/cudnn/include -DCUDNN_LIBRARY=/path/to/cudnn/lib64/libcudnn.so
make -j8 && make install
cd ../..

Please refer to this page for detailed installation instructions and troubleshooting.

  1. Build the Cython modules

Install some Python packages you might not have: Cython, python-opencv, easydict (>=1.6), PyYAML, protobuf, mpi4py. Then

cd lib && make && cd ..

Demo

Download our trained model to output/psdb_train/resnet50/, then

python2 tools/demo.py --gpu 0

Or you can use CPU only by setting --gpu -1.

Demo

Experiments

  1. Request the dataset from sli [at] mit.edu or tong.xiao.work[at]gmail.com (academic only). Then
experiments/scripts/prepare_data.sh /path/to/the/downloaded/dataset.zip
  1. Download an ImageNet pretrained ResNet-50 model to data/imagenet_models.

  2. Training with GPU=0

experiments/scripts/train.sh 0 --set EXP_DIR resnet50

It will finish in around 18 hours, or you may directly download a trained model to output/psdb_train/resnet50/

  1. Evaluation

    By default we use 8 GPUs for faster evaluation. Please adjust the experiments/scripts/eval_test.sh with your hardware settings. For example, to use only one GPU, remove the mpirun -n 8 in L14 and change L16 to --gpu 0.

    experiments/scripts/eval_test.sh resnet50 50000 resnet50

    The result should be around

    search ranking:
      mAP = 75.47%
      top- 1 = 78.62%
      top- 5 = 90.24%
      top-10 = 92.38%
  2. Visualization

    The evaluation will also produce a json file output/psdb_test/resnet50/resnet50_iter_50000/results.json for visualization. Just copy it to vis/ and run python2 -m SimpleHTTPServer. Then open a browser and go to http://localhost:8000/vis.

    Visualization Webpage

Citation

@inproceedings{xiaoli2017joint,
  title={Joint Detection and Identification Feature Learning for Person Search},
  author={Xiao, Tong and Li, Shuang and Wang, Bochao and Lin, Liang and Wang, Xiaogang},
  booktitle={CVPR},
  year={2017}
}

Repo History

The first version of our paper was published in 2016. We have made substantial improvements since then and published a new version of paper in 2017. The original code was moved to branch v1 and the new code has been merged to master. If you have checked out our code before, please be careful on this and we recommend clone recursively into a new repo instead.

Comments
  • ERROR : Run demo.py --gpu 0

    ERROR : Run demo.py --gpu 0

    Spec : cuda8.0 cudnn5.1

    Errors occured below

    cudnn_cov_lay.cu:33] check failed: status == CUDNN_STATUS_SUCCESS( 5 vs. 0 ) CUDN_STATUS_INVALID_VALUE

    how can i run demo.py by gpu

    opened by jhj7905 30
  • Stuck at demo_detect

    Stuck at demo_detect

    Hi there~

    I got a problem here running tools/demo.py. The script stuck at demo_detect(net, query_img) tracing back to blobs_out = net.forward(**forward_kwargs) and self._forward(start_ind, end_ind)

    There is no other information printed while the python process keeps running(checked by top). This problem won't appear when running on CPU(--gpu -1).

    The CUDA version is 8.0. Didn't compile with cudnn 'cuz there would be a Check failed: status == CUDNN_STATUS_SUCCESS (8 vs. 0) CUDNN_STATUS_EXECUTION_FAILED issue when running this script.

    Thank you.

    opened by dichen-cd 15
  • compile the caffe

    compile the caffe

    hello,when I run the make -j8 && make install,it shows the error following:

    [ 87%] [ 88%] make[2]: *** No rule to make target /path/to/cudnn/lib64/libcudnn.so', needed bylib/libcaffe.so'. Stop. make[2]: *** Waiting for unfinished jobs.... Building CXX object src/caffe/CMakeFiles/caffe.dir/data_transformer.cpp.o Building CXX object src/caffe/CMakeFiles/caffe.dir/syncedmem.cpp.o make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2 make: *** [all] Error 2

    I wonder if it is the error of the path? Another question: Can I unuse the "cudnn"and "openmpi"?I only have one server but have 4 gpus,Iwonder if I can use the "-gpu al" to replace the "openmpi". thanks!

    opened by Jcdidi 15
  • I can't run Ur code correctly. [id_loss = 87.3365 (* 1 = 87.3365 loss)]

    I can't run Ur code correctly. [id_loss = 87.3365 (* 1 = 87.3365 loss)]

    I also get the same problem:

    I0430 00:03:16.667212 32035 solver.cpp:240] Iteration 0, loss = 45.2935 I0430 00:03:16.667526 32035 solver.cpp:255] Train net output #0: det_accuracy = 0.03125 I0430 00:03:16.667642 32035 solver.cpp:255] Train net output #1: det_loss = 0.693147 (* 1 = 0.693147 loss) I0430 00:03:16.667735 32035 solver.cpp:255] Train net output #2: id_accuracy = 0 I0430 00:03:16.667831 32035 solver.cpp:255] Train net output #3: id_loss = 87.3365 (* 1 = 87.3365 loss) I0430 00:03:16.667927 32035 solver.cpp:255] Train net output #4: loss_bbox = 0 (* 1 = 0 loss) I0430 00:03:16.668015 32035 solver.cpp:255] Train net output #5: rpn_bbox_loss = 0.472784 (* 1 = 0.472784 loss) I0430 00:03:16.668109 32035 solver.cpp:255] Train net output #6: rpn_cls_loss = 0.693147 (* 1 = 0.693147 loss) I0430 00:03:16.668198 32035 solver.cpp:640] Iteration 0, lr = 0.001 I0430 00:04:09.829497 32035 solver.cpp:240] Iteration 20, loss = nan I0430 00:04:09.829540 32035 solver.cpp:255] Train net output #0: det_accuracy = 0.929688 I0430 00:04:09.829557 32035 solver.cpp:255] Train net output #1: det_loss = 0.618617 (* 1 = 0.618617 loss) I0430 00:04:09.829567 32035 solver.cpp:255] Train net output #2: id_accuracy = -nan I0430 00:04:09.829576 32035 solver.cpp:255] Train net output #3: id_loss = 0 (* 1 = 0 loss) I0430 00:04:09.829586 32035 solver.cpp:255] Train net output #4: loss_bbox = nan (* 1 = nan loss) I0430 00:04:09.829603 32035 solver.cpp:255] Train net output #5: rpn_bbox_loss = 0.0646796 (* 1 = 0.0646796 loss) I0430 00:04:09.829617 32035 solver.cpp:255] Train net output #6: rpn_cls_loss = 0.679301 (* 1 = 0.679301 loss) I0430 00:04:09.829638 32035 solver.cpp:640] Iteration 20, lr = 0.001

    I have tried set: RNG_SEED = 1 or 2, but I still can not solve it. P.S: I didn't modify any code.

    opened by ghost 14
  • Caffe compile error

    Caffe compile error

    [ 83%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/channel.cpp.o [ 83%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/cudnn.cpp.o [ 84%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db.cpp.o [ 84%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db_leveldb.cpp.o [ 86%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db_lmdb.cpp.o [ 86%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/im2col.cpp.o [ 87%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/insert_splits.cpp.o [ 87%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/io.cpp.o [ 87%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/math_functions.cpp.o [ 88%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/mpi_functions.cpp.o [ 88%] make[2]: *** No rule to make target /path/to/cudnn/lib64/libcudnn.so', needed bylib/libcaffe.so'. Stop. make[2]: *** Waiting for unfinished jobs.... Building CXX object src/caffe/CMakeFiles/caffe.dir/util/upgrade_proto.cpp.o make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2 make: *** [all] Error 2

    opened by foqin 13
  • Why I got the nan loss_bbox when i train and eval?

    Why I got the nan loss_bbox when i train and eval?

    when i train the model ,the loss_bbox is after iteration 20 I0411 17:16:45.481537 19413 solver.cpp:240] Iteration 0, loss = 89.1661 I0411 17:16:45.481566 19413 solver.cpp:255] Train net output #0: det_accuracy = 0.25 I0411 17:16:45.481573 19413 solver.cpp:255] Train net output #1: det_loss = 0.693147 (* 1 = 0.693147 loss) I0411 17:16:45.481577 19413 solver.cpp:255] Train net output #2: id_accuracy = 0 I0411 17:16:45.481581 19413 solver.cpp:255] Train net output #3: id_loss = 87.3365 (* 1 = 87.3365 loss) I0411 17:16:45.481586 19413 solver.cpp:255] Train net output #4: loss_bbox = 0.646189 (* 1 = 0.646189 loss) I0411 17:16:45.481590 19413 solver.cpp:255] Train net output #5: rpn_bbox_loss = 0.0912708 (* 1 = 0.0912708 loss) I0411 17:16:45.481595 19413 solver.cpp:255] Train net output #6: rpn_cls_loss = 0.693147 (* 1 = 0.693147 loss) I0411 17:16:45.481600 19413 solver.cpp:640] Iteration 0, lr = 0.001

    I0411 17:17:08.716578 19413 solver.cpp:240] Iteration 20, loss = nan I0411 17:17:08.716603 19413 solver.cpp:255] Train net output #0: det_accuracy = 0.898438 I0411 17:17:08.716612 19413 solver.cpp:255] Train net output #1: det_loss = 0.628226 (* 1 = 0.628226 loss) I0411 17:17:08.716616 19413 solver.cpp:255] Train net output #2: id_accuracy = 0 I0411 17:17:08.716621 19413 solver.cpp:255] Train net output #3: id_loss = 87.3365 (* 1 = 87.3365 loss) I0411 17:17:08.716625 19413 solver.cpp:255] Train net output #4: loss_bbox = nan (* 1 = nan loss) I0411 17:17:08.716629 19413 solver.cpp:255] Train net output #5: rpn_bbox_loss = 0.266092 (* 1 = 0.266092 loss) I0411 17:17:08.716634 19413 solver.cpp:255] Train net output #6: rpn_cls_loss = 0.684319 (* 1 = 0.684319 loss) I0411 17:17:08.716639 19413 solver.cpp:640] Iteration 20, lr = 0.001

    when i run experiments/scripts/eval_test.sh resnet50 50000 resnet50 there are errors. /lib/datasets/psdb.py" lines 150 for gt, det in zip(gt_roidb, gallery_det):

    det=[[ nan nan nan nan 0.1167134] [ nan nan nan nan 0.1167134] [ nan nan nan nan 0.1167134] ..., [ nan nan nan nan 0.1167134] [ nan nan nan nan 0.1167134] [ nan nan nan nan 0.1167134]] ([], [])

    opened by andongchen 12
  • The MPI_Comm_rank() function was called before MPI_INIT was invoked.

    The MPI_Comm_rank() function was called before MPI_INIT was invoked.

    Hi, I tried to run the training but face the following error. It complaint the MPI_Comm_rank() function was called before MPI_INIT was invoked.

    ubuntu@ubuntu-S2600CW:~/Downloads/person_search$ experiments/scripts/train.sh 0 --set EXP_DIR resnet50

    • set -e
    • export PYTHONUNBUFFERED=True
    • PYTHONUNBUFFERED=True
    • GPU_ID=0
    • NET=resnet50
    • DATASET=psdb
    • array=($@)
    • len=4
    • EXTRA_ARGS='--set EXP_DIR resnet50'
    • EXTRA_ARGS_SLUG=--set_EXP_DIR_resnet50
    • case $DATASET in
    • TRAIN_IMDB=psdb_train
    • TEST_IMDB=psdb_test
    • PT_DIR=psdb
    • ITERS=50000 ++ date +%Y-%m-%d_%H-%M-%S
    • LOG=experiments/logs/psdb_train_resnet50_--set_EXP_DIR_resnet50.txt.2017-02-28_19-27-37
    • exec ++ tee -a experiments/logs/psdb_train_resnet50_--set_EXP_DIR_resnet50.txt.2017-02-28_19-27-37
    • echo Logging output to experiments/logs/psdb_train_resnet50_--set_EXP_DIR_resnet50.txt.2017-02-28_19-27-37 Logging output to experiments/logs/psdb_train_resnet50_--set_EXP_DIR_resnet50.txt.2017-02-28_19-27-37
    • python2 tools/train_net.py --gpu 0 --solver models/psdb/resnet50/solver.prototxt --weights data/imagenet_models/resnet50.caffemodel --imdb psdb_train --iters 50000 --cfg experiments/cfgs/resnet50.yml --rand --set EXP_DIR resnet50 Called with args: Namespace(cfg_file='experiments/cfgs/resnet50.yml', gpu='0', imdb_name='psdb_train', max_iters=50000, pretrained_model='data/imagenet_models/resnet50.caffemodel', previous_state=None, randomize=True, set_cfgs=['EXP_DIR', 'resnet50'], solver='models/psdb/resnet50/solver.prototxt') Using config: {'DATA_DIR': '/home/ubuntu/Downloads/person_search/data', 'DEDUP_BOXES': 0.0625, 'EPS': 1e-14, 'EXP_DIR': 'resnet50', 'GPU_ID': 0, 'MATLAB': 'matlab', 'MODELS_DIR': '/home/ubuntu/Downloads/person_search/models/pascal_voc', 'PIXEL_MEANS': array([[[ 102.9801, 115.9465, 122.7717]]]), 'RNG_SEED': 3, 'ROOT_DIR': '/home/ubuntu/Downloads/person_search', 'TEST': {'BBOX_REG': True, 'HAS_RPN': True, 'MAX_SIZE': 1000, 'NMS': 0.4, 'PROPOSAL_METHOD': 'selective_search', 'RPN_MIN_SIZE': 16, 'RPN_NMS_THRESH': 0.7, 'RPN_POST_NMS_TOP_N': 300, 'RPN_PRE_NMS_TOP_N': 6000, 'SCALES': [600], 'SVM': False}, 'TRAIN': {'ASPECT_GROUPING': True, 'BATCH_SIZE': 128, 'BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0], 'BBOX_NORMALIZE_MEANS': [0.0, 0.0, 0.0, 0.0], 'BBOX_NORMALIZE_STDS': [0.1, 0.1, 0.2, 0.2], 'BBOX_NORMALIZE_TARGETS': True, 'BBOX_NORMALIZE_TARGETS_PRECOMPUTED': True, 'BBOX_REG': True, 'BBOX_THRESH': 0.5, 'BG_THRESH_HI': 0.5, 'BG_THRESH_LO': 0.0, 'FG_FRACTION': 0.25, 'FG_THRESH': 0.5, 'HAS_RPN': True, 'IMS_PER_BATCH': 1, 'MAX_SIZE': 1000, 'PROPOSAL_METHOD': 'gt', 'RPN_BATCHSIZE': 256, 'RPN_BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0], 'RPN_CLOBBER_POSITIVES': False, 'RPN_FG_FRACTION': 0.5, 'RPN_MIN_SIZE': 16, 'RPN_NEGATIVE_OVERLAP': 0.3, 'RPN_NMS_THRESH': 0.7, 'RPN_POSITIVE_OVERLAP': 0.7, 'RPN_POSITIVE_WEIGHT': -1.0, 'RPN_POST_NMS_TOP_N': 2000, 'RPN_PRE_NMS_TOP_N': 12000, 'SCALES': [600], 'SNAPSHOT_INFIX': '', 'SNAPSHOT_ITERS': 10000, 'USE_FLIPPED': True, 'USE_PREFETCH': False}, 'USE_GPU_NMS': True} *** The MPI_Comm_rank() function was called before MPI_INIT was invoked. *** This is disallowed by the MPI standard. *** Your MPI job will now abort.
    opened by yclai1114 11
  • Error with demo.py

    Error with demo.py

    when I ran python2 tools/demo.py --gpu 0, the following error was encountered. I1014 13:40:42.606418 19932 net.cpp:1256] blob 159 name det_score data idx 0 I1014 13:40:42.606422 19932 net.cpp:1266] blob 159 name det_score diff idx 2 I1014 13:40:42.606426 19932 net.cpp:1256] blob 160 name pid_prob data idx -1 I1014 13:40:42.606431 19932 net.cpp:1266] blob 160 name pid_prob diff idx -1 I1014 13:40:42.606433 19932 net.cpp:1256] blob 161 name bbox_pred data idx -1 I1014 13:40:42.606437 19932 net.cpp:1266] blob 161 name bbox_pred diff idx -1 I1014 13:40:42.606442 19932 net.cpp:1256] blob 162 name feat_lowdim data idx 0 I1014 13:40:42.606446 19932 net.cpp:1266] blob 162 name feat_lowdim diff idx 0 I1014 13:40:42.606451 19932 net.cpp:1256] blob 163 name feat data idx -1 I1014 13:40:42.606454 19932 net.cpp:1266] blob 163 name feat diff idx -1 I1014 13:40:42.606457 19932 net.cpp:1272] storage memory slot 0 size 3211264 I1014 13:40:42.606462 19932 net.cpp:1272] storage memory slot 1 size 3211264 I1014 13:40:42.606465 19932 net.cpp:1272] storage memory slot 2 size 3211264 I1014 13:40:42.606468 19932 net.cpp:1272] storage memory slot 3 size 8192 I1014 13:40:42.606472 19932 net.cpp:1277] raw memory 304337048 opt memory 10848392 Init end Traceback (most recent call last): File "tools/demo.py", line 114, in main(args) File "tools/demo.py", line 42, in main net = caffe.Net(args.probe_def, args.caffemodel, caffe.TEST) RuntimeError: basic_string::append

    please help me solve this problem。Thanks!

    opened by gitrobin 10
  • stuck at the make process

    stuck at the make process

    Hello Xiao I met a problem when I run make -j8 && make install at the terminal, it stuck and showed the following problem .../person_search/caffe/src/caffe/data_transformer.cpp:438:51: error: 'CV_INTER_NN' was not declared in this scope .../person_search/caffe/src/caffe/data_transformer.cpp: In member function 'void caffe::DataTransformer<Dtype>::Transform(const cv::Mat&, caffe::Blob<Dtype>*)': .../data_transformer.cpp:681:84: error: 'CV_INTER_CUBIC' was not declared in this scope make[2]: *** [src/caffe/CMakeFiles/caffe.dir/data_transformer.cpp.o] Error 1 make[2]: *** waiting for unfinished jobs.... make[2]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2 make: ***[all] Error 2 I don't know if it's because there are two caffe on the server I run, but the caffe is put under the file'person_search', I have installed cudnn v5.1 and openmpi 1.8.8 . But I didn't modify the caffe after downloading it. Or is it becuase some packages I haven't installed?

    opened by kanikel 9
  • Fail to compile caffe

    Fail to compile caffe

    \u2018 and \u2019 means ' ' \u2018 and \u2019是引号,复制过来的时候显示错误 CXX src/caffe/common.cpp src/caffe/common.cpp:146:1: error: ’Caffe does not name a type Caffe::Caffe() ^ src/caffe/common.cpp:177:1: error: Caffe does not name a type Caffe::~Caffe() { ^ src/caffe/common.cpp:184:6: error: \u2018Caffe\u2019 has not been declared void Caffe::set_random_seed(const unsigned int seed) { ^ src/caffe/common.cpp: In function \u2018void set_random_seed(unsigned int)\u2019: src/caffe/common.cpp:187:11: error: \u2018Get\u2019 was not declared in this scope if (Get().curand_generator_) { ^ In file included from ./include/caffe/common.hpp:34:0, from src/caffe/common.cpp:5: src/caffe/common.cpp:188:70: error: \u2018curand_generator\u2019 was not declared in this scope CURAND_CHECK(curandSetPseudoRandomGeneratorSeed(curand_generator(), ^ ./include/caffe/util/device_alternate.hpp:64:29: note: in definition of macro \u2018CURAND_CHECK\u2019 curandStatus_t status = condition;
    ^ src/caffe/common.cpp:190:60: error: \u2018curand_generator\u2019 was not declared in this scope CURAND_CHECK(curandSetGeneratorOffset(curand_generator(), 0)); ^ ./include/caffe/util/device_alternate.hpp:64:29: note: in definition of macro \u2018CURAND_CHECK\u2019 curandStatus_t status = condition;
    ^ src/caffe/common.cpp:199:7: error: \u2018Get\u2019 was not declared in this scope Get().random_generator_.reset(new RNG(seed)); ^ src/caffe/common.cpp:199:37: error: expected type-specifier before \u2018RNG\u2019 Get().random_generator_.reset(new RNG(seed)); ^ src/caffe/common.cpp: At global scope: src/caffe/common.cpp:202:6: error: \u2018Caffe\u2019 has not been declared void Caffe::SetDevice(const int device_id) { ^ src/caffe/common.cpp: In function \u2018void SetDevice(int)\u2019: src/caffe/common.cpp:206:42: error: \u2018Get\u2019 was not declared in this scope if (current_device == device_id && Get().cublas_handle_ && Get().curand_generator_) { ^ src/caffe/common.cpp:212:11: error: \u2018Get\u2019 was not declared in this scope if (Get().cublas_handle_) CUBLAS_CHECK(cublasDestroy(Get().cublas_handle_)); ^ src/caffe/common.cpp:213:11: error: \u2018Get\u2019 was not declared in this scope if (Get().curand_generator_) { ^ In file included from ./include/caffe/common.hpp:34:0, from src/caffe/common.cpp:5: src/caffe/common.cpp:216:34: error: \u2018Get\u2019 was not declared in this scope CUBLAS_CHECK(cublasCreate(&Get().cublas_handle_)); ^ ./include/caffe/util/device_alternate.hpp:57:29: note: in definition of macro \u2018CUBLAS_CHECK\u2019 cublasStatus_t status = condition;
    ^ src/caffe/common.cpp:217:43: error: \u2018Get\u2019 was not declared in this scope CURAND_CHECK(curandCreateGenerator(&Get().curand_generator_, ^ ./include/caffe/util/device_alternate.hpp:64:29: note: in definition of macro \u2018CURAND_CHECK\u2019 curandStatus_t status = condition;
    ^ src/caffe/common.cpp:219:55: error: \u2018Get\u2019 was not declared in this scope CURAND_CHECK(curandSetPseudoRandomGeneratorSeed(Get().curand_generator_, ^ ./include/caffe/util/device_alternate.hpp:64:29: note: in definition of macro \u2018CURAND_CHECK\u2019 curandStatus_t status = condition;
    ^ src/caffe/common.cpp:220:23: error: \u2018cluster_seedgen\u2019 was not declared in this scope cluster_seedgen())); ^ ./include/caffe/util/device_alternate.hpp:64:29: note: in definition of macro \u2018CURAND_CHECK\u2019 curandStatus_t status = condition;
    ^ src/caffe/common.cpp:220:23: note: suggested alternative: cluster_seedgen())); ^ ./include/caffe/util/device_alternate.hpp:64:29: note: in definition of macro \u2018CURAND_CHECK\u2019 curandStatus_t status = condition;
    ^ src/caffe/common.cpp:13:9: note: \u2018caffe::cluster_seedgen\u2019 int64_t cluster_seedgen(bool sync) { ^ src/caffe/common.cpp: At global scope: src/caffe/common.cpp:226:6: error: \u2018Caffe\u2019 has not been declared void Caffe::DeviceQuery() { ^ src/caffe/common.cpp:262:7: error: \u2018Caffe\u2019 has not been declared class Caffe::RNG::Generator { ^ src/caffe/common.cpp:262:29: error: expected unqualified-id before \u2018{\u2019 token class Caffe::RNG::Generator { ^ make: *** [.build_release/src/caffe/common.o] Error 1

    opened by 22wei22 9
  • Have troble making Caffe in the project

    Have troble making Caffe in the project

    Thank you for your work! I want to try this demo on the server,but I cannot build the caffe. I encountered an error when the step "make -j8 && make install"is performed, and the error information is "../lib/libcaffe.so: undefined reference to google::protobuf::io::CodedInputStream::ReadTagFallback(unsigned int)' ../lib/libcaffe.so: undefined reference togoogle::protobuf::internal::MergeFromFail(char const*, int)' ../lib/libcaffe.so: undefined reference to google::protobuf::internal::RepeatedPtrFieldBase::InternalExtend(int)' ../lib/libcaffe.so: undefined reference togoogle::protobuf::internal::ArenaStringPtr::AssignWithDefault(std::string const*, google::protobuf::internal::ArenaStringPtr)' collect2: error: ld returned 1 exit status make[2]: *** [examples/cpp_classification/classification] Error 1 make[1]: *** [examples/CMakeFiles/classification.dir/all] Error 2 make: *** [all] Error 2" Hope you can provide some help. Thank you!

    opened by milanyummy 9
  • cuda 8.0 and cudnn v5.1

    cuda 8.0 and cudnn v5.1

    when i setting environment for tranning: My ubuntu version is 20.04 , but requirement cuda 8.0 + cudnn v5.1 available in ubuntu 16.04 so how to fix it? thank you so much!

    opened by anhnhust 0
  • Caffe Installation Issue on GPU GTX 1050 Ubuntu 18.04

    Caffe Installation Issue on GPU GTX 1050 Ubuntu 18.04

    I have GTX 1050 but getting errors again and again in Caffe installation

    src/caffe/CMakeFiles/caffe.dir/build.make:257: recipe for target 'src/caffe/CMakeFiles/caffe.dir/layers/contrastive_loss_layer.cpp.o' failed make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/contrastive_loss_layer.cpp.o] Error 1 CMakeFiles/Makefile2:208: recipe for target 'src/caffe/CMakeFiles/caffe.dir/all' failed make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2 Makefile:129: recipe for target 'all' failed make: *** [all] Error 2

    opened by khawar-islam 2
  • about dataset

    about dataset

    hello ,are you in China ?I 'am in Jiangsu Provence ,recently ,I can't download the dataset of this paper ,could you send me the dataset ?thanks a lot . my mail address is [email protected].

    opened by geloveyou 0
  • About the log file of oim loss

    About the log file of oim loss

    Hi, I'm training oim loss with resnet50, with batchsize of 1, does it matter with the different batchsize? Moreover, what is the value that oim loss could converge to? I am struggling with a high oimloss...

    opened by zhongyingji 0
IAUnet: Global Context-Aware Feature Learning for Person Re-Identification

IAUnet This repository contains the code for the paper: IAUnet: Global Context-Aware Feature Learning for Person Re-Identification Ruibing Hou, Bingpe

null 30 Jul 14, 2022
CM-NAS: Cross-Modality Neural Architecture Search for Visible-Infrared Person Re-Identification (ICCV2021)

CM-NAS Official Pytorch code of paper CM-NAS: Cross-Modality Neural Architecture Search for Visible-Infrared Person Re-Identification in ICCV2021. Vis

JDAI-CV 40 Nov 25, 2022
Joint deep network for feature line detection and description

SOLD² - Self-supervised Occlusion-aware Line Description and Detection This repository contains the implementation of the paper: SOLD² : Self-supervis

Computer Vision and Geometry Lab 427 Dec 27, 2022
This is the official implementation of 3D-CVF: Generating Joint Camera and LiDAR Features Using Cross-View Spatial Feature Fusion for 3D Object Detection, built on SECOND.

3D-CVF This is the official implementation of 3D-CVF: Generating Joint Camera and LiDAR Features Using Cross-View Spatial Feature Fusion for 3D Object

YecheolKim 97 Dec 20, 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

WuYiming 41 Dec 12, 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,

null 62 Dec 21, 2022
Torchreid: Deep learning person re-identification in PyTorch.

Torchreid Torchreid is a library for deep-learning person re-identification, written in PyTorch. It features: multi-GPU training support both image- a

Kaiyang 3.7k Jan 5, 2023
[BMVC2021] The official implementation of "DomainMix: Learning Generalizable Person Re-Identification Without Human Annotations"

DomainMix [BMVC2021] The official implementation of "DomainMix: Learning Generalizable Person Re-Identification Without Human Annotations" [paper] [de

Wenhao Wang 17 Dec 20, 2022
Paper: Cross-View Kernel Similarity Metric Learning Using Pairwise Constraints for Person Re-identification

Cross-View Kernel Similarity Metric Learning Using Pairwise Constraints for Person Re-identification T M Feroz Ali, Subhasis Chaudhuri, ICVGIP-20-21

T M Feroz Ali 3 Jun 17, 2022
Code of paper Interact, Embed, and EnlargE (IEEE): Boosting Modality-specific Representations for Multi-Modal Person Re-identification.

Interact, Embed, and EnlargE (IEEE): Boosting Modality-specific Representations for Multi-Modal Person Re-identification We provide the codes for repr

null 12 Dec 12, 2022
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

PeterPu 76 Dec 8, 2022
[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

ZhangTianyu 70 Oct 10, 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

null 143 Dec 24, 2022
Person Re-identification

Person Re-identification Final project of Computer Vision Table of content Person Re-identification Table of content Students: Proposed method Dataset

Nguyễn Hoàng Quân 4 Jun 17, 2021
Experiment about Deep Person Re-identification with EfficientNet-v2

We evaluated the baseline with Resnet50 and Efficienet-v2 without using pretrained models. Also Resnet50-IBN-A and Efficientnet-v2 using pretrained on ImageNet. We used two datasets: Market-1501 and CUHK03.

lan.nguyen2k 77 Jan 3, 2023
Exploiting Robust Unsupervised Video Person Re-identification

Exploiting Robust Unsupervised Video Person Re-identification Implementation of the proposed uPMnet. For the preprint, please refer to [Arxiv]. Gettin

null 1 Apr 9, 2022
Online Pseudo Label Generation by Hierarchical Cluster Dynamics for Adaptive Person Re-identification

Online Pseudo Label Generation by Hierarchical Cluster Dynamics for Adaptive Person Re-identification

TANG, shixiang 6 Nov 25, 2022
Open source person re-identification library in python

Open-ReID Open-ReID is a lightweight library of person re-identification for research purpose. It aims to provide a uniform interface for different da

Tong Xiao 1.3k Jan 1, 2023
Self-Supervised Pre-Training for Transformer-Based Person Re-Identification

Self-Supervised Pre-Training for Transformer-Based Person Re-Identification [pdf] The official repository for Self-Supervised Pre-Training for Transfo

Hao Luo 45 Dec 3, 2021