Person Re-Identification for Robot Person Following with Online Continual Learning
Hanjing Ye, Jieting Zhao, Yu Zhan, Weinan Chen, Li He and Hong Zhang
2024 IEEE Robotics and Automation Letters (RAL)
site, paper, video
- Release codes of part-based OCLReID, global-based OCLReID and part-based OCL-RPF with Reservoir-based memory manager
- Release other replay-based memory managers
- Update code with multi-threads
- Optimize code running efficiency
Create a conda environment and install OCLReID (based on mmtrack), worked on RTX3090 and RTX2060
git clone https://github.com/MedlarTea/OCLReID
cd OCLReID
conda create -n oclreid python=3.7
conda activate oclreid
conda install pytorch=1.11 cudatoolkit=11.3 torchvision=0.12.0 -c pytorch
pip install mmcv-full==1.5.3 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html
pip install mmdet==2.26.0
pip install -r requirements.txt
pip install -r requirements/build.txt
pip install -v -e .
# install orientation estimation method
cd mmtrack/models/orientation
pip install -r requirements.txt
pip install -v -e .
Download pre-trained weights for OCLReID
- Download 2d joint detection models: Google drive and put the checkpoints to
OCLReID/mmtrack/models/pose/Models/sppe
.
For running a complete RPF system, besides the above installation, some packages need to be installed:
- ROS, verified in melodic and noetic
- OpenCV == 3.4.12 (tested)
- Eigen == 3.4.0 (tested)
- Ceres == 2.1.0 (tested)
Download pre-trained weights for OCL-RPF:
- Download bounding-box detection models: yolox-s and yolox-m from Google Drive, then make directory
mono_tracking/scripts/AlphaPose/YOLOX/weights
and put the checkpoints to it. - Put the 2d joint detection checkpoints to
mono_tracking/scripts/AlphaPose/Models/sppe
.
Create and build ROS workspace:
mkdir oclrpf_ws && cd oclrpf_ws
git clone https://github.com/MedlarTea/OCL-RPF src
rosdep install --from-paths src --ignore-src -r -y
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
cd OCLReID
conda activate oclreid
python run_video.py --show_result
This would run the ./demo.mp4
.
cd oclrpf_ws
source devel/setup.bash # or devel/setup.zsh
conda activate oclreid
roslaunch mono_tracking all_mono_tracking.launch sim:=true oclreid_dir:=$YOUR_OCLReID_Path$
# if encountered: ImportError: /lib/libgdal.so.26: undefined symbol: TIFFReadRGBATileExt, version LIBTIFF_4.0. Solution: export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtiff.so.5
rosbag play -r 0.5 --clock demo_compressed.bag
@article{ye2024oclrpf,
title={Person re-identification for robot person following with online continual learning},
author={Ye, Hanjing and Zhao, Jieting and Zhan, Yu and Chen, Weinan and He, Li and Zhang, Hong},
journal={IEEE Robotics and Automation Letters},
year={2024},
publisher={IEEE}
}