有时我们需要将openpose的 caffe旧模型升级成新模型,但又不想安装caffe的环境,这时我们可以利用docker来进行转换,这里介绍在ubuntu16.04下如转换
一、docker安装
1,卸载旧版本docker
全新安装时,无需执行该步骤
sudo apt-get purge -y docker.iosudo apt-get autoremove -y --purge docker.iosudo apt-get autoclean
2,更新系统软件
$
sudo
apt-get update
3,安装依赖包
$
sudo
apt-get
install
\ apt-transport-https \ ca-certificates \ curl \ software-properties-common
4,添加官方密钥
执行该命令时,如遇到长时间没有响应说明网络连接不到docker网站,需要使用代理进行。
export http_proxy=192.168.1.212:1080
$ curl -fsSL https:
//download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
显示OK,表示添加成功.
5,添加仓库
$
sudo
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \ stable
"
6,再次更新软件
经实践,这一步不能够省略,我们需要再次把软件更新到最新,否则下一步有可能会报错。
$
sudo
apt-get update
7,安装docker
如果想指定安装某一版本,可使用 sudo apt-get install docker-ce= 命令,把替换为具体版本即可。
以下命令没有指定版本,默认就会安装最新版
$
sudo
apt-get
install
docker-ce
8,查看docker版本
$ docker -v
显示“Docker version 17.09.0-ce, build afdb6d4”字样,表示安装成功。
二、docker简单使用
1、拉取镜像
由于网络问题,国内拉不到dockerhub的文件,需要使用国内的docker镜像,需要在镜像名前加上:registry.docker-cn.com/
比如:docker pull registry.docker-cn.com/floydhub/dl-docker:cpu
其中"floydhub/dl-docker:cpu"就是镜像名
2、启动容器
docker run -v /root/san:/san --name test -ti floydhub/caffe:1.0-py2.20 /bin/bash
会打开一个bash,同时会将本机“
/root/san"下的目录挂载到虚拟机下的"/san"目录下,此目录作为宿主机与虚拟机之间的数据交换目录。
3、退出容器
CTRL+D
4、查看运行过的镜像
5、按名称删除镜像
三、升级caffe模型
1、下载openpose的模型:
1)coco版本的pose模型
http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel
2)mpi版本的pose模型
http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/mpi/pose_iter_160000.caffemodel
3)face模型
http://posefs1.perception.cs.cmu.edu/OpenPose/models/face/pose_iter_116000.caffemodel
4)hand模型
http://posefs1.perception.cs.cmu.edu/OpenPose/models/hand/pose_iter_102000.caffemodel
选择自己需要的模型下载
2、拉取caffe镜像,只是使用里面的升级新caffe工具,这里我们使用floydhub的caffe镜像,由于我有显卡,所以我选的是cuda版的镜像,具体的其它tag在
https://hub.docker.com/r/floydhub/caffe/tags/
,由于下载速度慢,所以采用国内镜像。
docker pull registry.docker-cn.com/floydhub/caffe:1.0-gpu.cuda8cudnn6-py3.20
3、启动docker 将本机/ncnn目录附加进去,“/ncnn”目录里放着下载好的openpose模型
docker run -v /output/ncnn:/ncnn --name test -ti floydhub/caffe:1.0-gpu.cuda8cudnn6-py3.20 /bin/bash
4、转换成新caffe模型
cd /ncnn/model/
upgrade_net_proto_text pose_deploy.prototxt pose_deploy_new.prototxt
upgrade_net_proto_binary pose_iter_116000.caffemodel pose_iter_116000_new.caffemodel