一、Ubuntu16.04 (Desktop)
登陆界面死机
可能是因为 Ubuntu 自带开源显卡驱动 nouveau 与你的硬件不兼容,需要在进入系统前禁用 nouvea 。在 grub 界面(选择开机启动的界面)按 e,在 quiet splash
后面加上 nouveau.modeset=0
,按 f10 保存重启(仅在接下来的一次重启后有效)。
wifi无法使用
sudo touch /etc/modprobe.d/blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
在打开的文件中输入 blacklist ideapad_laptop
(不一定是 ideapad_laptop,因设备而异,可参考 关于ubuntu下Wi-Fi已通过硬件开关禁用的解决办法)。
sudo update-initramfs -u
二、显卡驱动
禁用自带驱动 nouveau
sudo touch /etc/modprobe.d/blacklist-nouveau.conf
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
在打开的文件中输入
blacklist nouveau
options nouveau modeset=0
sudo update-initramfs -u
reboot
重启后在终端中使用命令 lsmod | grep nouveau
查看 nouveau 是否已被禁用,命令无输出则已被禁用。
安装驱动
驱动版本和 CUDA 版本对应关系参考:CUDA 版本,显卡驱动,Ubuntu版本,GCC版本之间的对应关系。
ctrl + alt + f1 进入init3 文字模式,关闭 x-window 服务 sudo service lightdm stop
- 使用官方 ppa 源安装
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-410 –no-opengl-files #CUDA10.0要求驱动版本在410及以上
reboot
- 使用 nVidia 官方下载的 runfile 安装
sudo chmod a+x NVIDIA.run #runfile需在/home目录下
sudo ./NVIDIA.run –no-opengl-files
reboot
卸载驱动
如果安装驱动后出现循环登录等情况,可能需要卸载并更换驱动版本。
ctrl + alt + f1 进入init3 文字模式,关闭 x-window 服务 sudo service lightdm stop
- 如果驱动是 ppa 源安装的
sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
sudo apt-get install -f
reboot
- 如果是 runfile 安装的
sudo nvidia-uninstall
reboot
三、OpenPose Prerequisite
这一部分网上的教程很杂,下文的步骤都是 nVidia 和 OpenPose 官方给出的教程,强烈建议阅读官网的英文文档(见下文)。
https://github.com/CMU-Perceptual-Computing-Lab/openpose
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation.md
https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/prerequisites.md
1.Cmake - gui
sudo apt-get install cmake-qt-gui
2.CUDA10.0
下载 CUDA10.0 deb(local) CUDA10.0 官方文档
sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb #文件名需要相应修改
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub #该条语句会出现在终端的输出中,复制即可
sudo apt-get update
sudo apt-get install cuda
# 安装成功后执行下面的语句,如果是.run文件安装的,还需要额外命令,详见官方文档
echo 'export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}' >> ~/.bashrc
source ~/.bashrc
3.cuDNN7.5
下载 cuDNN7.5 cuDNN7.5 官方文档
分别下载 runtime,developer,sample and user guide 三个 deb 文件,下面的命令中的文件名需要相应更改,并且保持这三个顺序。
sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-devel_7.0.3.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb
安装完成之后在 /usr/src/cudnn_samples_v7
目录中打开终端
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN
终端显示 Test passed!
则 cuDNN 和 CUDA 已经安装成功。
4.OpenCV
sudo apt-get install libopencv-dev
5.Caffe
下载 OpenPose,解压到 /home
目录下,文件名从 openpose-master
改为 openpose
。
下载 CMU 提供的 Caffe 版本,解压到 /home/openpose/3rdparty
,删除 3rdparty 原有的空白的 caffe 文件夹,将解压的文件名称从 caffe-master
改为 caffe
。
安装依赖库 sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
(这几个库下面的 .sh 脚本中没有写,需要先手动装上)
在 caffe 文件夹中运行终端,输入 sudo ./install_caffe_if_cuda8.sh
,自动安装相应的相应的依赖库并且编译 caffe(CMU 提供的 Caffe 版本相较官方版本,已经写好了几个脚本和 makefile.config 文件,可以阅读一下 install_caffe_if_cuda8.sh
文件,caffe 的依赖库也可以在其 官方文档 中查看)。
四、编译运行 OpenPose
1.Build
Caffe 成功编译后,打开 Cmake - gui,source code
路径填 /home/openpose/
,build the binaries
填 /home/openpose/build/
。点击 configure,将下载开始配置并下载 OpenPose 的模型,成功后点击 generate。
2.Run
在 /home/openpose/build/
中打开终端,执行 sudo make -j
编译 OpenPose,成功后在 /home/openpose/
中打开终端,执行 ./build/examples/openpose/openpose.bin --video examples/media/video.avi
,运行 OpenPose 官方训练好的模型测试视频(也可以测试图片、摄像头等等,命令参见 官方 quick start 文档)。
如果最后运行时终端提示 out of memory
,可能是显存不足,watch -n 0.1 nvidia-smi(watch realtime information of graphics card
命令可以在终端中监控 gpu 使用情况(”0.1“ 为数据刷新频率,单位为s,可以更改)。
./build/examples/openpose/openpose.bin --help
命令可以查看可选命令行参数。例如,net_resolution "720x540"
为调整识别分辨率,低分辨率会降低精度但能减少显存占用,分辨率需为 16 的倍数,并且建议保持或接近原长宽比;-- display 0
为不展示窗口,配合 write_video <path/***.avi>
来存储输出的视频;-- render_pose 1
为用cpu渲染,改为 2 用 gpu 渲染,cpu 渲染可以略微加快速度。
如果显存不足,可以尝试 ./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution "256x144" --rendor_pose 1
;或者在文字模式下关闭 x-window(可以减少一百多 MB 的显存占用),再执行 ./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution "256x144" --render_pose 1 --display 0 --write_video examples/media/output.avi
,结束后会在 media 文件下产生识别并渲染过的视频。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。