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系統,最後呈現的結果是:
在這裏插入圖片描述在這裏插入圖片描述

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