如何解决Dockerfile安装openvino和opencv,opencv不使用dockerfile构建后端/即
有一个项目已经可以单独在机器上工作了。现在,我尝试构建Dockerfile来自动执行安装。
该项目使用openvino和opencv。 Opencv不是来自openvino。我从源代码4.3.0使用opencv。
首先,我完全运行Dockerfile。当我运行python项目时,出现错误:
layerOutputs = self.net.forward(self.ln) cv2.error: OpenCV(4.3.0-openvino) /opt/intel/openvino_2020.3.194/opencv/modules/dnn/src/dnn.cpp:1138: error: (-213:The function/feature is not implemented) Unknown backend identifier in function 'wrapMat'
我注意到了错误。它说没有后端标识符。
我通过注释Dockerfile中的opencv,openvino安装行来手动确定安装步骤。我以交互方式连接Docker容器。我手动运行安装命令。我的项目正在运作。
在那之后,我只评论opencv安装行。只需安装openvino,然后手动安装opencv。而且它再次起作用。因此,我决定搜索opencv构建文件。
现在让我们考虑两个容器。第一个容器完全由Dockerfile构建。它有一个错误。在opencv安装之前,第二个容器由Dockerfile构建。 Opencv安装是手工完成的。
我检查每个文件夹中的/ home / foo / opencv / build文件夹大小。
在第一个容器中,文件夹的大小为535652。 在第二个容器中,文件夹的大小为542172。
我看到了区别。而且我进行了深入的搜索。
在每个容器中,我列出了具有大小的build文件夹的所有子目录。之后,我将它们复制为单独的txt文件,然后为它们运行diff命令。我看到文件夹不同:
diff first-container.txt second-container.txt
1007c1007
< 92956 opencv/build/lib
---
> 94008 opencv/build/lib
1129c1129
< 28660 opencv/build/bin
---
> 28676 opencv/build/bin
1151c1151
< 960 opencv/build/CMakeFiles
---
> 968 opencv/build/CMakeFiles
1184c1184
< 8 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir/src/backends/ie
---
> 528 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir/src/backends/ie
1189c1189
< 3964 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir/src/backends
---
> 4484 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir/src/backends
1193c1193
< 8508 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir/src
---
> 9028 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir/src
1196,1198c1196,1198
< 10188 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir
< 20828 opencv/build/modules/gapi/CMakeFiles
< 20972 opencv/build/modules/gapi
---
> 10740 opencv/build/modules/gapi/CMakeFiles/opencv_gapi.dir
> 21380 opencv/build/modules/gapi/CMakeFiles
> 21524 opencv/build/modules/gapi
1282c1282
< 12868 opencv/build/modules/python3
---
> 12872 opencv/build/modules/python3
1362c1362
< 152 opencv/build/modules/dnn_objdetect
---
> 156 opencv/build/modules/dnn_objdetect
1368c1368
< 540 opencv/build/modules/dnn_superres
---
> 544 opencv/build/modules/dnn_superres
1405c1405
< 3228 opencv/build/modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers
---
> 5520 opencv/build/modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers
1418c1418
< 6956 opencv/build/modules/dnn/CMakeFiles/opencv_dnn.dir/src
---
> 10704 opencv/build/modules/dnn/CMakeFiles/opencv_dnn.dir/src
1424,1428c1424,1428
< 12784 opencv/build/modules/dnn/CMakeFiles/opencv_dnn.dir
< 1112 opencv/build/modules/dnn/CMakeFiles/opencv_perf_dnn.dir/perf
< 1240 opencv/build/modules/dnn/CMakeFiles/opencv_perf_dnn.dir
< 14036 opencv/build/modules/dnn/CMakeFiles
< 14428 opencv/build/modules/dnn
---
> 19096 opencv/build/modules/dnn/CMakeFiles/opencv_dnn.dir
> 1132 opencv/build/modules/dnn/CMakeFiles/opencv_perf_dnn.dir/perf
> 1260 opencv/build/modules/dnn/CMakeFiles/opencv_perf_dnn.dir
> 20368 opencv/build/modules/dnn/CMakeFiles
> 20760 opencv/build/modules/dnn
1670,1671c1670,1671
< 204432 opencv/build/modules
< 534344 opencv/build
---
> 211328 opencv/build/modules
> 542320 opencv/build
2074,2076c2074,2076
我注意到后端/文件夹不同。我运行python项目时出现的错误与之相关。
我不从Docker等待它。手动或Dockerfile有什么区别?
我的dockerfile:
FROM ubuntu:18.04
ARG DOWNLOAD_LINK=http://registrationcenter-download.intel.com/akdlm/irc_nas/16612/l_openvino_toolkit_p_2020.2.120.tgz
ENV INSTALLDIR /opt/intel/openvino
# openvino download
RUN curl -LOJ "${DOWNLOAD_LINK}"
# opencv download
RUN wget -O opencv.zip https://github.com/opencv/opencv/archive/4.3.0.zip && \
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.3.0.zip
RUN apt-get -y install sudo
# openvino installation
RUN tar -xvzf ./*.tgz && \
cd l_openvino_toolkit_p_2020.2.120 && \
sed -i 's/decline/accept/g' silent.cfg && \
./install.sh -s silent.cfg && \
# rm -rf /tmp/* && \
sudo -E $INSTALLDIR/install_dependencies/install_openvino_dependencies.sh
WORKDIR /home/sa
RUN /bin/bash -c "source /opt/intel/openvino/bin/setupvars.sh" && \
echo "source /opt/intel/openvino/bin/setupvars.sh" >> /home/sa/.bashrc && \
echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc && \
$INSTALLDIR/deployment_tools/model_optimizer/install_prerequisites/install_prerequisites.sh && \
$INSTALLDIR/deployment_tools/demo/demo_squeezenet_download_convert_run.sh
RUN bash
# opencv installation
RUN unzip opencv.zip && \
unzip opencv_contrib.zip && \
# rm opencv.zip opencv_contrib.zip && \
mv opencv-4.3.0 opencv && \
mv opencv_contrib-4.3.0 opencv_contrib && \
cd ./opencv && \
mkdir build && \
cd build && \
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_INF_ENGINE=ON -D ENABLE_CXX11=ON -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=OFF -D INSTALL_C_EXAMPLES=OFF -D ENABLE_PRECOMPILED_HEADERS=OFF -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=/home/sa/opencv_contrib/modules -D PYTHON_EXECUTABLE=/usr/bin/python3 -D WIDTH_GTK=ON -D BUILD_TESTS=OFF -D BUILD_DOCS=OFF -D WITH_GSTREAMER=OFF -D WITH_FFMPEG=ON -D BUILD_EXAMPLES=OFF .. && \
make && \
make install && \
ldconfig
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。