问题
使用opencv dnn 模块调用darknet模型时候出错,报错信息为 不支持relu激活函数
cv2.dnn.readNetFromDarknet error: (-212:Parsing error) Unsupported activation: relu in function 'cv::dnn::darknet::ReadDarknetFromCfgStream'
解决办法
优化opencv,使得opencv支持 CNN “relu” 和 maxpool “VALID”。
complie
- get opencv
#wget https://codeload.github.com/opencv/opencv/zip/4.0.1
wget http://www.chineseocr.com:9990/static/models/opencv/opencv.4.0.1.zip
unzip opencv.4.0.1.zip && \
cp darknet_io.cpp opencv-4.0.1/modules/dnn/src/darknet && \
cp layers_common.cpp opencv-4.0.1/modules/dnn/src/layers && \
cp all_layers.hpp opencv-4.0.1/modules/dnn/include/opencv2/dnn/
mac
cd opencv-4.0.1 && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXCUTABLE=~/anaconda3/envs/chineseocr/bin/python3 \
-D PYTHON3_INCLUDE_DIR=~/anaconda3/envs/chineseocr/include/python3.6m \
-D PYTHON3_LIBRARY=~/anaconda3/envs/opencv/lib/libpython3.6m.dylib \
-D PYTHON_NUMPY_PATH=~/anaconda3/envs/opencv/lib/python3.6/site-packages/numpy/core/include .. \
&& make -j2 && make install
ubuntu
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXCUTABLE=/usr/bin/python \
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.6m \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-D PYTHON_NUMPY_PATH=/usr/local/lib/python3.6/dist-packages/numpy/ .. \
&& make -j2 && make install
本文详细介绍了在使用OpenCV的DNN模块调用Darknet模型时遇到的错误,即不支持ReLU激活函数的问题,并提供了解决方案,通过优化OpenCV使其支持CNN的ReLU和maxpool的VALID模式。
6231

被折叠的 条评论
为什么被折叠?



