Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

darknet-ocr CPU版本和GPU版本docker镜像都已完成 #95

Open
GandalfLiu opened this issue May 29, 2020 · 3 comments
Open

darknet-ocr CPU版本和GPU版本docker镜像都已完成 #95

GandalfLiu opened this issue May 29, 2020 · 3 comments

Comments

@GandalfLiu
Copy link

GandalfLiu commented May 29, 2020

下载

docker pull ld1995docker/darknet-ocr:latest

gpu版本:

# 需要安装nvidia-docker
sudo docker run --gpus all -it -p 8080:8080 darknet-ocr:latest
# 进入交互模式之后更改config文件中的GPU为True
cd /cor/darknet-ocr && python app.py

cpu版本:

sudo docker run -it -p 8080:8080 darknet-ocr:latest
cd /ocr/darknet-ocr && python app.py

Dockerfile

FROM nvidia/cuda:9.0-cudnn7-devel
MAINTAINER https://github.com/chineseocr/darknet-ocr
LABEL version="1.0"
EXPOSE 8080
WORKDIR /ocr
# opencv-for-darknet中有opencv源码安装包,并且已经替换了相关文件
ADD . /ocr
RUN apt-get update && apt-get install libglib2.0 libsm6 libxrender1 libxext-dev gcc cmake sudo -y
RUN cd /ocr && sh -c '/bin/echo -e "\nyes\n\nyes" | sh Miniconda3-latest-Linux-x86_64.sh'
RUN echo -e "\ny" && /root/miniconda3/bin/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
RUN /root/miniconda3/bin/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
RUN /root/miniconda3/bin/conda config --set show_channel_urls yes
RUN /root/miniconda3/bin/conda install python=3.6
RUN echo -e "\ny" && /root/miniconda3/bin/conda install numpy
RUN cd /ocr/build-darknet-ocr/opencv-for-darknet/opencv-4.0.1 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/root/miniconda3 \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXECUTABLE=/root/miniconda3/bin/python3.6 \
-D PYTHON3_INCLUDE_PATH=/root/miniconda3/include/python3.6m \
-D PYTHON3_LIBRARIES=/root/miniconda3/lib/libpython3.6m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/root/miniconda3/lib/python3.6/site-packages/numpy/core/include .. \
&& make -j2 && sudo make install
RUN /root/miniconda3/bin/pip install pillow h5py flask requests web.py -i https://mirrors.aliyun.com/pypi/simple
RUN cd /ocr/darknet-ocr/darknet && cp  Makefile-GPU Makefile && make
#CMD /root/miniconda3/bin/python /ocr/darknet-ocr/app.py 8080
ENV LANG C.UTF-8 LC_ALL=C.UTF-8

# 注意将web.py==0.40.dev0换成web.py 不然docker里运行会报ascii的错误
# 另外我发现如果不注释掉其中CMD命令, docker run的时候会报Unsupported activation: relu in function 'ReadDarknetFromCfgStream'这个错误,怎么解决都不行, 只有通过交互模式进入启动才行。
@wenlihaoyu
Copy link
Member

dockerfile 加一个变量 ENV LANG C.UTF-8

@cometlj
Copy link

cometlj commented Sep 10, 2020

验证可用谢谢

@bzqyzzld
Copy link

bzqyzzld commented Sep 16, 2020

下载

docker pull ld1995docker/darknet-ocr:latest

gpu版本:

# 需要安装nvidia-docker
sudo docker run --gpus all -it -p 8080:8080 darknet-ocr:latest
# 进入交互模式之后更改config文件中的GPU为True
cd /cor/darknet-ocr && python app.py

cpu版本:

sudo docker run -it -p 8080:8080 darknet-ocr:latest
cd /ocr/darknet-ocr && python app.py

Dockerfile

FROM nvidia/cuda:9.0-cudnn7-devel
MAINTAINER https://github.com/chineseocr/darknet-ocr
LABEL version="1.0"
EXPOSE 8080
WORKDIR /ocr
# opencv-for-darknet中有opencv源码安装包,并且已经替换了相关文件
ADD . /ocr
RUN apt-get update && apt-get install libglib2.0 libsm6 libxrender1 libxext-dev gcc cmake sudo -y
RUN cd /ocr && sh -c '/bin/echo -e "\nyes\n\nyes" | sh Miniconda3-latest-Linux-x86_64.sh'
RUN echo -e "\ny" && /root/miniconda3/bin/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
RUN /root/miniconda3/bin/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
RUN /root/miniconda3/bin/conda config --set show_channel_urls yes
RUN /root/miniconda3/bin/conda install python=3.6
RUN echo -e "\ny" && /root/miniconda3/bin/conda install numpy
RUN cd /ocr/build-darknet-ocr/opencv-for-darknet/opencv-4.0.1 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/root/miniconda3 \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXECUTABLE=/root/miniconda3/bin/python3.6 \
-D PYTHON3_INCLUDE_PATH=/root/miniconda3/include/python3.6m \
-D PYTHON3_LIBRARIES=/root/miniconda3/lib/libpython3.6m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/root/miniconda3/lib/python3.6/site-packages/numpy/core/include .. \
&& make -j2 && sudo make install
RUN /root/miniconda3/bin/pip install pillow h5py flask requests web.py -i https://mirrors.aliyun.com/pypi/simple
RUN cd /ocr/darknet-ocr/darknet && cp  Makefile-GPU Makefile && make
#CMD /root/miniconda3/bin/python /ocr/darknet-ocr/app.py 8080
ENV LANG C.UTF-8 LC_ALL=C.UTF-8

# 注意将web.py==0.40.dev0换成web.py 不然docker里运行会报ascii的错误
# 另外我发现如果不注释掉其中CMD命令, docker run的时候会报Unsupported activation: relu in function 'ReadDarknetFromCfgStream'这个错误,怎么解决都不行, 只有通过交互模式进入启动才行。

关于#CMD /root/miniconda3/bin/python /ocr/darknet-ocr/app.py 8080 这个启动错误已经解决,
主要的问题就是启动的时候必须在 /ocr/darknet-ocr/ 这个目录之下执行才不会报错

在本镜像的基础上重新构建镜像

Dockerfile

FROM darknet-orc:latest
MAINTAINER https://github.com/chineseocr/darknet-ocr
CMD cd /ocr/darknet-ocr && /root/miniconda3/bin/python app.py 8080

此时发现可以正常运行, 如果需要改动为gpu模式, 将config.py 文件复制并且将GPU=True设置, 启动的时候挂载该文件就行

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants