2019.1.21更新。不需要安装太多依赖库
pip install -r requirements.txt 即可。其中有(但我的torch安装不上)
torch==0.4.0
torchvision
visdom
nibabel
pandas
tqdm
matplotlib
opencv-python
ntpath
有些安装ntpath出问题,这是用于视频演示的,而且不是必要项。作者回应可以根据#153需要还原它。
那不然可以试试单独安装试试看:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/ntpath/
走了好多弯路啊~~~
1.alphapose
1)Get the code.
git clone -b pytorch https://github.com/MVIG-SJTU/AlphaPose.git
2)Install pytorch 源码安装(命令行安装见2)
chmod +x install.sh
./install.sh
3)Download the models manually: duc_se.pth (Google Drive | Baidu pan), yolov3.weights(Google Drive | Baidu pan). Place them into ./models/sppe
and ./models/yolo
respectively.
2.PyTorch
一定要是0.4.0版本,因为'no_grad'是后来才添加的。 module 'torch' has no attribute 'no_grad'
#查看版本
import torch
print(torch.__version__)
注意:这里可选择CPU版本还是GPU版本,GPU要安装CUDA,CUDNN。见pytorch各个版本安装指令
2.1可以直接用conda安装,建议用这种方法:
conda install pytorch==0.4.0 torchvision cuda80 -c pytorch
执行命令后可以看到对应的版本说明。要把各个版本一致。
cuda80: 1.0-h205658b_0 pytorch
cudatoolkit: 8.0-3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
ninja: 1.8.2-py36h6bb024c_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
pytorch: 0.4.1-py36_cuda8.0.61_cudnn7.1.2_1 pytorch [cuda80]
torchvision: 0.2.1-py36_1 pytorch
## Package Plan ##
environment location: /home/vivian/anaconda3/envs/py36_torch4.0
added / updated specs:
- cuda80
- pytorch==0.4.0
- torchvision
The following packages will be downloaded:
package | build
---------------------------|-----------------
cudatoolkit-8.0 | 3 322.4 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
pytorch-0.4.0 |py36_cuda8.0.61_cudnn7.1.2_1 390.8 MB pytorch
------------------------------------------------------------
Total: 713.2 MB
The following NEW packages will be INSTALLED:
blas: 1.0-mkl defaults
cffi: 1.11.5-py36he75722e_1 defaults
cuda80: 1.0-h205658b_0 pytorch
cudatoolkit: 8.0-3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
freetype: 2.9.1-h8a8886c_1 defaults
intel-openmp: 2019.1-144 defaults
jpeg: 9b-h024ee3a_2 defaults
libgfortran-ng: 7.3.0-hdf63c60_0 defaults
libpng: 1.6.36-hbc83047_0 defaults
libtiff: 4.0.10-h2733197_1001 defaults
mkl: 2019.1-144 defaults
mkl_fft: 1.0.10-py36ha843d7b_0 defaults
mkl_random: 1.0.2-py36hd81dba3_0 defaults
ninja: 1.8.2-py36h6bb024c_1 defaults
numpy: 1.15.4-py36h7e9f1db_0 defaults
numpy-base: 1.15.4-py36hde5b4d6_0 defaults
olefile: 0.46-py36_0 defaults
pillow: 5.4.1-py36h34e0f95_0 defaults
pycparser: 2.19-py36_0 defaults
pytorch: 0.4.0-py36_cuda8.0.61_cudnn7.1.2_1 pytorch
six: 1.12.0-py36_0 defaults
torchvision: 0.2.1-py_2 pytorch
2.21
pip install http://download.pytorch.org/whl/cu80/torch-0.4.0-cp36-cp36m-linux_x86_64.whl (462MB)
pip install torchvision
到所在文件夹pip install torch-0.4.0-cp36-cp36m-linux_x86_64.whl
出现错误:torch-0.4.0-cp35-cp35m-linux_x86_64.whl is not a supported wheel on this platform.
解决方法:python -m pip install --upgrade pip
解决方法2:
- AMD64
import pip._internal
print(pip._internal.pep425tags.get_supported())
- WIN32
import pip
print(pip.pep425tags.get_supported())
[('cp35', 'cp35m', 'manylinux1_x86_64'), ('cp35', 'cp35m', 'linux_x86_64'), ('cp35', 'abi3', 'manylinux1_x86_64'), ('cp35', 'abi3', 'linux_x86_64'), ('cp35', 'none', 'manylinux1_x86_64'), ('cp35', 'none', 'linux_x86_64'), ('cp34', 'abi3', 'manylinux1_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'manylinux1_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'manylinux1_x86_64'), ('cp32', 'abi3', 'linux_x86_64'), ('py3', 'none', 'manylinux1_x86_64'), ('py3', 'none', 'linux_x86_64'), ('cp35', 'none', 'any'), ('cp3', 'none', 'any'), ('py35', 'none', 'any'), ('py3', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
过这里可以发现上面下载的文件名格式是不支持的,修改为:torch-0.4.0-cp35-none-linux_x86_64.whl
2.22
先下载,https://conda.anaconda.org/pytorch/linux-64/pytorch-0.4.0-py36_cuda8.0.61_cudnn7.1.2_1.tar.bz2 (391MB)
conda install --use-local pytorch-0.4.0-py36_cuda8.0.61_cudnn7.1.2_1.tar.bz2
tar.bz2源代码包安装方式:
1、找到相应的软件包,比如soft.tar.bz2,下载到本机某个目录;
2、打开一个终端,su -成root用户;
3、cd soft.tar.bz2所在的目录;
4、tar -xjvf soft.tar.bz2 //一般会生成一个soft目录
5、cd soft
6、./configure
7、make
8、make install
conda install numpy pyyaml mkl mkl-include setuptools cmake cffi typing
# Add LAPACK support for the GPU if needed
conda install -c pytorch magma-cuda80
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py build
sudo python setup.py install
2.4CPU版本如图
3.torchsample
``bash
$ pip install -e git+https://github.com/ncullen93/torchsample.git#egg=torchsample
```
Or install a tagged release
```bash
$ pip install https://github.com/ncullen93/torchsample/archive/v0.1.3.tar.gz
```
# 然后
$ pip install visdom
$ pip install nibabel
$ pip install h5py # this will be removed in the formal version
4.tqdm
先下载:https://anaconda.org/conda-forge/tqdm
.whl文件是通过Python的pip命令进行安装的。 pip install **.whl
# pull and install in the current directory:
pip install -e git+https://github.com/tqdm/tqdm.git@master#egg=tqdm
# Latest Conda release
conda install -c conda-forge tqdm
5.pandas ,matplotlib
- pip install pandas,matplotlib
-
pip install numpy pyyaml mkl setuptools cmake gcc cff
-
pip install numpy pyyaml mkl mkl-include setuptools cmake cffi typing
-
pip install -c mingfeima mkldnn
6.opencv
6.1.dlopen: cannot load any more object with static TLS:看网上解决方法,尝试import torch,cv2是否成功。
故先安装opencv:
sudo -s #我安装遇到权限问题,都是这样解决的,目前理解是,此指令到达用户root层。不知对不对
conda install -c menpo opencv3 (网上说这种方法会避免读取图片有问题等等)
6.2有种错误,也是opencv的原因:ImportError: No module named 'cv2'
pip install opencv-python
7.hdf5
sudo apt-get install libhdf5-serial-dev hdf5-tools
sudo apt-get install luarocks
luarocks install hdf5 #这句好像不能用
libreadline.so.6: undefined symbol: PC
8.此处几条条权当记录:GPU控制
因为我不知道怎么才能控制要不要跑cuda版本,所以我看到就记在这里,看能不能得到答案
FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
进入解压好的文件夹,执行cmake -D WITH_CUDA=OFF .
(darknet安装说明)Once you have CUDA installed, change the first line of the Makefile
in the base directory to read:
GPU=1
现在您可以使项目和CUDA将被启用。默认情况下,它将在系统的第0张显卡上运行网络(如果正确安装CUDA,则可以使用nvida -smi列出显卡)。如果你想改变card Darknet的使用,你可以给它一个可选的命令行标志-i ,比如:
./darknet -i 1 imagenet test cfg/alexnet.cfg alexnet.weights
如果您使用CUDA进行编译,但是想要执行CPU计算,无论出于什么原因,您都可以使用-nogpu来代替CPU:
./darknet -nogpu imagenet test cfg/alexnet.cfg alexnet.weights
以下是安装步骤,如果更改,重新make一下。
git clone https://github.com/pjreddie/darknet.git
cd darknet
make
9.关于vs文档配置
ConfigurationName | 配置名字,通常是Debug或者Release |
IntDir | 编译器使用的中间目录,产出obj文件 |
OutDir | 链接器使用的输出目录 |
ProjectDir | 项目目录 |
ProjectName | 项目名字 |
SolutionDir | 解决方案目录 |
TargetDir | 目标输出文件所在的目录 |
TargetExt | 目标输出的扩展名 |
TargetFileName | 目标输出文件名,包括扩展名 |
TargetName | 目标输出名,不包括扩展名 |
TargetPath | 目标输出文件的全路径名 |
10.cuda
CUDA是要配置的,因为pytorch需要使用;
- cudnn version 5
- Tensorflow >= 1.2 AND < 1.3 (if you build tensorflow from source the cudnn version isn't as important. installing from pip it becomes VERY important)
- Input and output directories for
./run.sh
must be relative to the CWD. Absolute paths do not work!
11.说明
11.1路径:这里是相对路径才可以。eg:python3 demo.py --indir ${img_directory} --outdir examples/res
实际操作为:python3 demo.py --indir examples/demo/ --outdir examples/results/ --vis (可参见/doc/run.md的说明和例子)
12.opencv-python
Try re-install opencv-python
with version >= 3.3.1.11 by
pip uninstall opencv_python
pip install opencv_python --user
Many people meet this problem at https://github.com/opencv/opencv/issues/8471. The solution I use is
sudo cp <path to opencv source repo>/home/helloworld/anaconda3/lib/python3.6/site-packages/cv2.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/python3.5/dist-packages/cv2/cv2.cpython-35m-x86_64-linux-gnu.so
13.运行出现的非常麻烦的错误:
13.1Cannot initialize CUDA without ATen_cuda library........ because you are trying to use some CUDA functionality
解决办法:https://github.com/zdevito/ATen/issues/216
即:加入LD_LIBRARY_PATH路径。具体见https://blog.csdn.net/m0_37644085/article/details/81837410的g)~h)
14.关于pyhton
之前安装最新版的3.6的anaconda,但需要3.6的,以防后面补坑,现改为py3.5
conda create -n py35 python=3.5 anaconda
# To activate this environment, use:
# > source activate py35
# To deactivate an active environment, use:
# > source deactivate
error:python3.5/multiprocessing/semaphore_tracker.py:129: UserWarning: semaphore_tracker: There appear to be 3 leaked semaphores to clean up at shutdown
解决方法:我还没解决 这不是个错误~~
https://github.com/jhfjhfj1/autokeras/issues/118
I figured it out for myself. The docker container I was using was 2G memory. I increased it to 16G and restarted the docker image by adding --shm-size 16G when running docker run. It solved my problems.
15py3.5版本的虚拟环境老是出问题。pip list 老是系统的pip,无奈,virtualenv 方法创建虚拟环境
virtualenv /home/vivian/HelloWorld/helloworld/AlphaPose1.20n
虚拟环境就创建成功了,以及激活命令如下:
vivian@vivian-Super-Server:~$ virtualenv /home/vivian/HelloWorld/helloworld/AlphaPose1.20n
Using base prefix '/home/vivian/anaconda3'
New python executable in /home/vivian/HelloWorld/helloworld/AlphaPose1.20n/bin/python
Installing setuptools, pip, wheel...done.
vivian@vivian-Super-Server:~/HelloWorld$ source /home/vivian/HelloWorld/helloworld/AlphaPose1.20n/bin/activate
关闭虚拟环境
deactivate
注意:虚拟环境的路径中不能有中文
16.论文阅读:
人体关键点检测对于描述人体姿态,预测人体行为至关重要。因此人体关键点检测是诸多计算机视觉任务的基础。其在动作分类,异常行为检测,以及人机交互等领域有着很广阔的应用前景,是计算机视觉领域中一个既具有研究价值、同时又极具挑战性的热门课题。针对这一问题,上海交大MVIG组提出RMPE的两步法框架(ICCV 2017论文RMPE),并基于此开发了AlphaPose这一人体关键点检测系统。
RMPE(regional multi-person pose estimation)框架采用自顶向下的方法,先检测人,再去做姿态估计。该框架有三个主要组成部分,首先是对称空间变换网络STN(Symmetric Spatial Transformer Network),用于解决传统两步法中的主要问题,即imperfect proposal的问题。对于质量较差的人体检测结果,symmetric STN能够自动调整proposal的位置,将refine过后的结果输入单人姿态估计网络,并将输出映射回原空间,从而使得在人体检测框不准确的情况下,姿态估计网络依然能够有良好的效果。【论文笔记】Spatial Transformer Networks 【论文笔记】Spatial Transformer Networks
第二个组成部件为由姿态引导的样本生成器PGPG(Pose-guided Proposals Generator),该部件能够根据不同人体姿态生成额外的detection proposal用于训练姿态估计网络,从而获得大量符合真实测试场景数据分布的训练数据。
第三个组成部件为参数化的姿态非极大值抑制器PNMS(Parametric Pose NMS)。传统的两步法中,人体定位框会有较多的冗余检测。作者通过使用新的姿态距离度量来比较姿态相似性,来消除冗余姿态。