tensorflow-PSENet 代码实现 (docker容器内)

tensorflow版的PSENet(github地址:https://github.com/liuheng92/tensorflow_PSENet)
首先是直接在linux环境跑这个程序,有很多环境搭建的问题,尤其是opencv的安装使得最后使用了docker,编写dockerfile, 在容器中运行。
1.配置环境

Installation

1.Any version of tensorflow version > 1.0 should be ok.

2.python 2 or 3 will be ok.

2.修改一些原github下载的文件
把pse/Makefile文件中的

第一行:(shellpythonconfigcflags)(shell python-config --cflags)改成(shell python3-config --cflags)

第二行:(shellpythonconfigldflags)(shell python-config --ldflags)改成(shell python3-config --ldflags)

eval.py :第230行
xrange 改成 range

3.从原github上下载模型文件并且解压到linux环境的同一目录下
在这里插入图片描述
之后会遇到opencv版本的问题,体现在输入运行eval.py的命令之后,显示:
ImportError: libSM.so.6: cannot open shared object file: No such file or directory
于是使用容器,首先是进入需要工作的目录,编写dockerfile文件:
FROM tensorflow/tensorflow:1.13.2-gpu-py3
run mkdir /psenet
copy . /psenet
RUN pip install -r /psenet/requirement.txt -i https://pypi.douban.com/simple
run apt-get install libsm6 -y
run apt-get install libxrender1 -y
run apt-get install libxext6 -y
workdir /psenet/

然后在该目录下生成dockerfile文件,之后运行:

docker build  -t   psenet-tensorflow-test :v2 .

执行完成后,显示:
在这里插入图片描述
表示该镜像成功生成!

然后,启动刚刚的镜像:

docker run -t -i  psenet-tensorflow-test:v2  /bin/bash

在这里插入图片描述
表示启动成功!
然后执行:# python, import cv2, 发现:在这里插入图片描述
说明安装opencv依然有问题,于是在当前容器中依次执行:

rm -rf /var/lib/dpkg/lock
rm -rf /var/cache/apt/archives/lock
apt-get update
dpkg --configure -a
apt-get install libsm6
apt-get install libxrender1
apt-get install libxext-dev

之后执行 import cv2, 显示:
即表示安装成功!
之后将要测试的图片目录images也存放在之前的工作目录下,再执行:

python eval.py

表示测试成功
并且可以在之前工作目录下找到一个results的目录文件,可以通过WinSCP上传到windows系统,最后呈现的结果是:
在这里插入图片描述在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章