cv2.dnn.readNetFromDarknet error: Unsupported activation: relu

本文详细介绍了在使用OpenCV的DNN模块调用Darknet模型时遇到的错误,即不支持ReLU激活函数的问题,并提供了解决方案,通过优化OpenCV使其支持CNN的ReLU和maxpool的VALID模式。

问题

使用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

参考

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值