motionNet复现

 一、配置环境

ubuntu=18.04 cuda=10.0 python=3.7 pytorch=1.1.0 (AutoDL云服务器)

1.conda环境

创建名为motionNet,python为3.7的conda基础环境,并激活环境

conda create -n motionNet python=3.7
conda activate motionNet

 2.安装pytorch与pyquaternion,Matplotlib,numpy,tqdm,cv2,PIL,sklearn,cachetools,numba依赖包,pytorch官网链接:Previous PyTorch Versions | PyTorch

注意:MGDA相关代码目前仅支持在pytorch1.1版本上运行

conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=10.0 -c pytorch
pip install pyquaternion-i https://pypi.douban.com/simple
pip install Matplotlib -i https://pypi.douban.com/simple
pip install numpy -i https://pypi.douban.com/simple
pip install tqdm -i https://pypi.douban.com/simple
pip install opencv-python -i https://pypi.douban.com/simple //cv2
pip install pillow -i https://pypi.douban.com/simple //PIL
pip install scikit-learn -i https://pypi.douban.com/simple   //sklearn
pip install cachetools -i https://pypi.douban.com/simple
pip install numba -i https://pypi.douban.com/simple

  二、分割train数据集

1.添加目录到python环境中

export PYTHONPATH=/root/autodl-tmp/MotionNet:$PYTHONPATH  //存放MotionNet项目代码的路径
export PYTHONPATH=/root/autodl-tmp/MotionNet/nuscenes-devkit/python-sdk:$PYTHONPATH

 2.生成所需要的数据

(1)先在MotionNet/data/nuscenes/下创建好preprocess_data文件夹,否则会报错

(2)修改gen_data.py文件的第24行,修改为version=‘v1.0-mini’

(3)在gen_data.py文件的第64行,65行添加如下两行代码:

if scene_idx >= len(nusc.scene):
    	    continue

(4)生成训练数据。 --root为存放nuscenesv1.0-mini数据集路径,--savepath 为存放分割后的train数据集

cd MotionNet //进入MotionNet文件夹路径下
python data/gen_data.py --root /root/autodl-fs/data/nuscenes/v1.0-mini/ --split train --savepath /root/autodl-tmp/MotionNet/data/nuscenes/preprocess_data

 

三、训练模型

python train_multi_seq.py --data /home/root123/Downloads/MotionNet/data/nuscenes/preprocess_data --batch 4 --nepoch 45 --nworker 4 --use_bg_tc --reg_weight_bg_tc 0.1 --use_fg_tc --reg_weight_fg_tc 2.5 --use_sc --reg_weight_sc 15.0 --log
python train_multi_seq_MGDA.py --data /root/autodl-tmp/MotionNet/data/nuscenes/preprocess_data/ --batch 4 --nepoch 45 --nworker 4 --use_bg_tc --reg_weight_bg_tc 0.1 --use_fg_tc --reg_weight_fg_tc 2.5 --use_sc --reg_weight_sc 15.0 --reg_weight_cls 2.0 --log --logpath ./logs

四、评估模型

(1)先按照步骤二中的方法分割test数据集

cd MotionNet //进入MotionNet文件夹路径下
python data/gen_data.py --root /root/autodl-fs/data/nuscenes/v1.0-mini/ --split test --savepath /root/autodl-tmp/MotionNet/data/nuscenes/test_data

(2)修改文件中的代码 

## nuscenes_dataloader.py 文件中修改第171行:
if os.path.isdir(os.path.join(self.dataset_root, d))]
## nuscenes_dataloader.py 文件中修改第172、173行注释放开
seq_files = [os.path.join(seq_dir, f) for seq_dir in seq_dirs for f in os.listdir(seq_dir)
if os.path.isfile(os.path.join(seq_dir, f))]
## nuscenes_dataloader.py 文件中修改第175行:
self.seq_files = seq_files

(3) 评估训练好的模型

python eval.py --data /root/autodl-tmp/MotionNet/data/nuscenes/test_data/ --model model/model.pth --split test --log . --bs 1 --net MotionNet

五、可视化 

1.先安装imageio-ffmpeg库

pip install imgaug

 2.生成.png图片格式预测结果 --modelpath为存放训练好的模型,图片保存到logs/gif文件夹中

python plots.py --data /root/autodl-fs/data/nuscenes/v1.0-mini --version v1.0-mini --modelpath model/model.pth --net MotionNet --nframe 10 --savepath logs/gif

3.合成png格式为gif或MP4格式  

// 生成gif,保存位置logs/gif文件夹下,需要优先生成.png文件
python plots.py --data /root/autodl-fs/data/nuscenes/v1.0-mini --version v1.0-mini --modelpath model/model.pth --net MotionNet --nframe 10 --savepath logs/gif --video --format gif
// 生成MP4,保存位置logs/mp4文件夹下,需要优先生成.png文件
python plots.py --data /root/autodl-fs/data/nuscenes/v1.0-mini --version v1.0-mini --modelpath autodl-tmp/MotionNet/logs/train_multi_seq/2023-06-13_20-23-25/epoch_45.pth --net MotionNet --nframe 10 --savepath logs/gif --video --format mp4

 注意1:保存gif、MP4的文件路径要与png格式图片保存的位置一致,否则无法生成(空白文件夹)

注意2:在生成gif时,报错TypeError: The keyword 'fps' is no longer supported. Use 'duration' (in ms) instead,则修改plot.py文件中第718行,将fps与duration进行换算,fps为每秒20帧时,duration为1000/20=50毫秒。

注意3:在生成MP4时,提示如下,则只需将plot.py文件中的第727行“yuvj444p”改成“yuv444p”即可

 4.成功生成gif或MP4结果如下:

 

5.gif动图结果展示

 参考文章

  https://blog.csdn.net/weixin_59961223/article/details/130954977

 非常感谢Darchan作者的工作。MotionNet 工程复现_modulenotfounderror: no module named 'pyquaternion_Darchan的博客-CSDN博客

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值