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系統,最後呈現的結果是: