环境配置
1.下载anaconda的虚拟环境(由于此程序运用的是python2.7所以这里着重讲python2.7环境的配置)
参考博客:
这里是引用地址https://blog.csdn.net/qxqsunshine/article/details/82899744
*①获取anaconda的安装文件(直接使用终端命令):*
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-4.2.0-Linux-x86_64.sh
②安装下载的anaconda
bash Anaconda2-4.2.0-Linux-x86_64.sh
③加入环境变量
vim ~/.bashrc
export PATH=/root/anaconda2/bin:$PATH
④使命令生效
source ~/.bashrc
⑤验证是否安装成功
输入python
会出现如下信息
Python 2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul 2 2016, 17:42:40) 则表示安装成功
2.anaconda 里面创建一个新的虚拟环境
①`创建python相应版本的虚拟环境
conda create -n py2 python=2.7
其中 py2是创建的虚拟环境的名称,可以随意命名,比如:
conda create -n python2.7 python=2.7
最后面的python= 数字 是python的版本号
②激活anaconda环境
conda activate py2
py2是虚拟环境的名称
3.安装tensorflow 1.10.0 --cpu版本(任意cpu版本都是如此照搬)
①首先使用anaconda 配置tensorflow环境
conda install tensorflow==1.10.0
②安装后进行测试
同样,先输入python进入python2的界面,然后
import tensorflow
tensorflow.__version__
如果显示版本号就代表安装成功
4.安装 tensorflow 1.10.0 --gpu版本 (任意gpu版本都如此照搬)
①使用anaconda配置tensorflow-gpu环境
conda install tensorflow-gpu==1.10.0
②查看环境列表
conda list
一般安装tensorflow-gpu会附带安装cudnn 和 cudatoolkit的相关版本,但是不能保证一些被阉割过的镜像版本的tensorflow会有附带安装,所以应该查看一下,因为如果要使用gpu来运行程序,需要如下依赖:
tensorflow-gpu, cudatoolkit, cudnn, tensorflowbase
不同的 tensorflow 版本对应的cudatoolkit 和cudnn的版本可以参考以下文章:
https://blog.csdn.net/Kaicore/article/details/87867317
https://www.cnblogs.com/ranjiewen/p/8933050.html
运行代码
详细步骤可以参照开源的源码地址
https://github.com/google/next-prediction
此代码是基于2019年CVPR 李飞飞的:
Peeking into the Future: Predicting Future Person Activities and Locations in Videos
文章的实现
本文章不照搬实现程序的过程,只是对于复现代码的过程中各个步骤容易出现的问题给予提醒和着重强调
依赖环境:Python 2.7; TensorFlow == 1.10.0 (Should also work on 1.14+)
1.下载数据和模型
工程文件中的scripts 文件夹中有两个.sh文件用于下载模型和数据
download_prepared_data.sh download_single_models.sh
进入next-prediciton-master 文件夹中打开终端,注意不要进入再下一级目录
输入命令:
bash scripts/download_single_models.sh
model 的文件夹会下载到next-prediciton-master的目录下,与code文件夹是同一级,这里很重要,注意不要搞错了路径和文件夹
同样地进入next-prediciton-master 文件夹中打开终端,注意不要进入再下一级目录
输入命令:
bash scripts/download_prepared_data.sh
data 的文件夹会下载到next-prediciton-master的目录下,与code文件夹是同一级,不要搞错了路径和文件夹
2.预训练过程–ActEv
python code/preprocess.py next-data/final_annos/actev_annos/virat_2.5fps_resized_allfeature/ \
actev_preprocess --obs_len 8 --pred_len 12 --add_kp --kp_path next-data/final_annos/actev_annos/anno_kp/ \
--add_scene --scene_feat_path next-data/final_annos/actev_annos/ade20k_out_36_64/ \
--scene_map_path next-data/final_annos/actev_annos/anno_scene/ \
--scene_id2name next-data/final_annos/actev_annos/scene36_64_id2name_top10.json \
--scene_h 36 --scene_w 64 --video_h 1080 --video_w 1920 --add_grid \
--add_person_box --person_box_path next-data/final_annos/actev_annos/anno_person_box/ \
--add_other_box --other_box_path next-data/final_annos/actev_annos/anno_other_box/ \
--add_activity --activity_path next-data/final_annos/actev_annos/anno_activity/ \
--person_boxkey2id_p next-data/final_annos/actev_annos/person_boxkey2id.p
3.测试预训练模型–ActEv
python code/test.py actev_preprocess next-models/actev_single_model model --runId 1 \
--load_best --is_actev --add_kp --add_activity \
--person_feat_path next-data/actev_personboxfeat --multi_decoder
注意!!!!以上所有代码都是再进入next-prediction-master 目录进行,而不是再其他子文件夹下进行,不要cd 到 script 或者 code 文件夹里面进行
4.预训练过程–ETH/UCY
for dataset in {eth,hotel,univ,zara1,zara2};
do
python code/preprocess.py next-data/final_annos/ucyeth_annos/original_trajs/${dataset}/ ethucy_exp/preprocess_${dataset} \
--person_boxkey2id next-data/final_annos/ucyeth_annos/${dataset}_person_boxkey2id.p \
--obs_len 8 --pred_len 12 --min_ped 1 --add_scene \
--scene_feat_path next-data/final_annos/ucyeth_annos/ade20k_e10_51_64/ \
--scene_map_path next-data/final_annos/ucyeth_annos/scene_feat/ \
--scene_id2name next-data/final_annos/ucyeth_annos/scene51_64_id2name_top10.json \
--scene_h 51 --scene_w 64 --video_h 576 --video_w 720 --add_grid --add_person_box \
--person_box_path next-data/final_annos/ucyeth_annos/person_box/ --add_other_box \
--other_box_path next-data/final_annos/ucyeth_annos/other_box/ \
--feature_no_split --reverse_xy --traj_pixel_lst \
next-data/final_annos/ucyeth_annos/traj_pixels.lst ;
done
5测试预训练模型–ETH/UCY
for dataset in {eth,hotel,univ,zara1,zara2};
do
python code/test.py ethucy_exp/preprocess_${dataset} next-models/ethucy_single_model/${dataset}/ model \
--runId 1 --load_best --person_feat_path next-data/ethucy_personboxfeat/${dataset}/ \
--scene_h 51 --scene_w 64 ;
done
未完待续