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文件中的
第一行:(shell python3-config --cflags)
第二行:(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系统,最后呈现的结果是: