精华内容
下载资源
问答
  • 感谢开源 我在转成darknet官方的yolov3.cfg yolov3.weights时出错:Check failed: ExactNumBottomBlobs() == bottom.size() (2 vs. 1) Upsample Layer takes 2 bottom blob(s) as input.环境windows10 ...
  • <p>For <a href="https://github.com/eric612/MobileNet-YOLO/blob/master/models/yolov3_coco/mobilenet_yolov3_test.prototxt">Mobilenet YOLOv3 on coco, <p>Output feature map size of conv15 is 1x1024x13x13....
  • yolov3-tiny

    2020-12-29 09:11:10
    YOLOV3_TINY; config_v3.file_model_cfg = "../configs/yolov3-tiny.cfg"; config_v3.file_model_weights = "../configs/yolov3-tiny.weights"; config_v3.calibration_image_list_file_...
  • 前提:默认已经配置好caffe 1、caffe配置:加入unsample层 ... 其中的upsample_layer.hpp放入...upsample_layer.cpp与upsample_layer.cu放在src/caffe/layers下面。 修改相应的caffe.proto文件,src/caffe/proto/caf
                                               darknet原版检测结果                                          转化后模型检测结果

     

    前提:默认已经配置好源码版caffe

    配置caffe步骤:

    首先配置opencv

    注意一些和caffe的版本兼容问题

    然后配置caffe

    配置成功后在进行下面的配置

    1、caffe配置:加入upsample层

    由于caffe缺少yolo的upsample层

    需要加入相应的信息

    可从如下地址进行下载

    https://pan.baidu.com/s/13GpoYoqKSCeFX0m0ves_fQ#list/path=%2F 密码:bwrd

    其中的upsample_layer.hpp放入include/caffe/layers下面;

    upsample_layer.cpp与upsample_layer.cu放在src/caffe/layers下面。

    修改相应的caffe.proto文件,src/caffe/proto/caffe.proto中的LayerParameter的最后一行加入加入:

    message LayerParameter {
    
        .....
    
        optional UpsampleParameter upsample_param = 149;
    
    }

    注意149为新层的ID号,该ID号请根据个人的caffe.proto文件指定即可。

    然后再caffe.proto中添加upsample层的参数,可以放到最后:

    message UpsampleParameter{
    
        optional int32 scale = 1 [default = 1];
    
    }

    重新编译Caffe:

    make clean
    make all -j16
    make test -j16
    make runtest -j16
    make pycaffe -j16

    2、yolov3转caffe

    github.com/ChenYingpeng/darknet2caffe 增加了对yolov3的支持

    模型转换:

    python darknet2caffe.py ../models/yolov3.cfg ../models/yolov3.weights yolov3.prototxt  yolov3.caffemodel

    yolov3.prototxt 和yolov3.caffemodel为转换结果

    3、转换后模型验证

    github.com/ChenYingpeng/caffe-yolov3

    不用clone,直接下载

    (1)修改CMakefile.txt文件,将里面所有的caffe路径改为本机caffe安装路径并验证路径能否打开

    (2)根据自己的yolov3模型修改参数

       yolo_layer.h

       const int classes = 80; // 这里修改为自己的类数

      detector.h

      int m_classes = 80; //改为自己的类数

      yolo_layer.cpp

      修改anchors:

    //yolov3
    float biases[18] = {10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326};
    

    如果是对于tiny网络,在设置float biases_tiny的同时打开yolov3或者yolov4下面的float biases任何一个即可

    对于剪枝网络按照原始网络情况设置

    (anchor值和原始yolov3.cfg文件一致)

    (3)编译

    mkdir build
    cmake ..
    make -j16

    (4)测试

    ./x86_64/bin/demo ../../models_transfer/yolov3.prototxt ../../models_transfer/yolov3.caffemodel ../../models_transfer/test.jpg

    4、报错解决

    (1)caffe/blob.hpp:9:34: fatal error: caffe/proto/caffe.pb.h: 没有那个文件或目录

    解决方法:

    转到caffe目录下, 运行以下代码:

    protoc src/caffe/proto/caffe.proto --cpp_out=.
    mkdir include/caffe/proto
    mv src/caffe/proto/caffe.pb.h include/caffe/proto

    (2)缺少libgflags.so.2的问题

    git clone https://github.com/gflags/gflags
    cmake .
    make -j16
    sudo make install
    cd /usr/lib/x86_64-linux-gnu
    sudo ln -s /usr/lib/x86_64-linux-gnu/libgflags.so libgflags.so.2
    

    (3)缺少libGLEW.so.2.0.0的问题

    sudo apt-get install glew-utils
    cd /usr/lib/x86_64-linux-gnu/
    ls libGLEW.so.2.0.0
    sudo ln -s libGLEW.so.2.0.0 libGLEW.so.1.13
    

     

    refer:

    https://zhuanlan.zhihu.com/p/95882397

    https://blog.csdn.net/e3399/article/details/106058700

     

     

    展开全文
  • 下面这部分将着重讲一下如何实现从darknet向yolov3的转换,首先这一过程要感谢chenyingpeng提供的代码,博客在这里。 1.加入upsample层并编译Caffe upsample层的代码在这里,密码bwrd。 其中的upsample_layer.hp....

    https://blog.csdn.net/watermelon1123/article/details/82083522

    下面这部分将着重讲一下如何实现从darknet向yolov3的转换,首先这一过程要感谢chenyingpeng提供的代码,博客在这里。

    1.加入upsample层并编译Caffe

    upsample层的代码在这里,密码bwrd。

    其中的upsample_layer.hpp放入include/caffe/layers下面;upsample_layer.cpp与upsample_layer.cu放在src/caffe/layers下面。

    修改相应的caffe.proto文件,src/caffe/proto/caffe.proto中的LayerParameter的最后一行加入加入:

        message LayerParameter {
            .....
            optional UpsampleParameter upsample_param = 149;
        }

    注意149为新层的ID号,该ID号请根据个人的caffe.proto文件指定即可。

    然后再caffe.proto中添加upsample层的参数:

        message UpsampleParameter{
          optional int32 scale = 1 [default = 1];
        }

    紧接着重新编译Caffe,这样就完成了在Caffe中添加upsample层。更多信息请参考caffe中添加新层教程。

    上面说过转换到Caffe后只包含推理过程,因此我们需要将训练好的模型(.cfg)和权重文件(.weights)转换到对应Caffe下的.proto和.caffemodel,代码可以借鉴github上的模型转换工具。注意该工具需要pytorch支持请自行安装。且该工具应用于Yolov2,因为我们在Caffe中加入了相应的upsample层并且yolov3和v2的网络结构有变化,因此需要替换相应的darknet2caffe.py,代码在这里,密码:i6y2。

    至此我们的准备工作就结束了,这样通过Caffe我们就能得到相应的blobs,这些blobs里包含的信息和darknet输入给yolo层的信息是一样的。我们只需要通过yolo layer将blobs的信息进行解析就能够得到目标的位置和类别信息。因为私人原因,这部分代码不能开放,但是可以参考chenyingpeng的代码,在这里。经测试是同样可用的,只需要注意因为我们的yolo layer的检测过程是在Caffe外部实现的,因此yolo layer层的相应信息作者以硬编码的形式加入到代码中,使用的时候需要根据个人yolo layer的参数进行修改(比如我测试的时候yolo_layer.cpp中的函数get_detections中的类别数目没有修改就发生了难以言表的结果...)。

       yolov3从darknet转Caffe的整个过程就结束了,其中关于yolov3的原理并没有详细解释特别多,本文主要着重于和转到Caffe框架相关的内容,具体yolov3的原理性文章推荐大家看这篇,里面关于yolov1~v3讲解的很详细(来自一群还在上大一的学生的论文解读,不禁让人感叹长江后浪推前浪,前浪我已GG)。关于yolov3的训练代码,推荐大家去看darknet的源码,尤其是关于Yolo layer的代码,里面有许多作者文章里没有讲清楚的内容,感兴趣的可以仔细钻研一下。
     

     

     

    【代码使用】YOLOv3以及Gaussian YOLOv3模型转caffe的使用指南https://blog.csdn.net/weixin_38715903/article/details/103695844

    yolov3的caffe使用
    1)转成caffe模型

    前提:刚刚训练得到了相应的weights,准备好yolo需要的layer--upsample_layer.cpp,upsample_layer.cu,upsample_layer.h

    参考:https://blog.csdn.net/watermelon1123/article/details/82083522

    将新的layer添加进去,完成caffe的准备工作。然后还要安装好pytorch。

        clone 转换工具:

    git clone https://github.com/marvis/pytorch-caffe-darknet-convert

        开始转换:最后会得到 yolov3.prototxt yolov3.caffemodel

        python2.7 darknet2caffe.py cfg/yolov3-voc.cfg yolov3-voc.weights yolov3.prototxt yolov3.caffemodel
         
         
        将yolov3-voc.weights放在文件夹下
         
        然后将yolov3-voc.cfg放在./cfg文件夹下面
         
        yolov3.prototxt yolov3.caffemodel是要生成的caffe模型和pro文件命名

    2)使用caffe模型:

        clone使用工具:

        git clone https://github.com/ChenYingpeng/caffe-yolov3
         
        cd caffe-yolov3

        将生成的caffemodel和prototxt放在./caffemodel和./prototxt文件下【没有就建一个】
        修改cmakelist.txt

        """全部都要改成自己的caffe路径"""
        # build C/C++ interface
        include_directories(${PROJECT_INCLUDE_DIR} ${GIE_PATH}/include)
        include_directories(${PROJECT_INCLUDE_DIR}
            /home/ubuntu247/liliang/caffe-ssd/include
            /home/ubuntu247/liliang/caffe-ssd/build/include
        )
         
         
        file(GLOB inferenceSources *.cpp *.cu )
        file(GLOB inferenceIncludes *.h )
         
        cuda_add_library(yolov3-plugin SHARED ${inferenceSources})
        target_link_libraries(yolov3-plugin
            /home/ubuntu247/liliang/caffe-ssd/build/lib/libcaffe.so  
            /usr/lib/x86_64-linux-gnu/libglog.so  
            /usr/lib/x86_64-linux-gnu/libgflags.so.2
                /usr/lib/x86_64-linux-gnu/libboost_system.so  
            /usr/lib/x86_64-linux-gnu/libGLEW.so.1.13  
        )

        如果你在训练中使用的是自己的anchors值,要修改anchors的值(yolo.cpp中),再进行编译;还有yolo.h中的classes数

        /*
         * Company:    Synthesis
         * Author:     Chen
         * Date:    2018/06/04
         */
         
        #include "yolo_layer.h"
        #include "blas.h"
        #include "cuda.h"
        #include "activations.h"
        #include "box.h"
        #include <stdio.h>
        #include <math.h>
         
        //yolov3
        //float biases[18] = {10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326};
        float biases[18] = {7, 15, 16, 18, 22, 32, 9, 40, 20, 71, 37, 39, 52, 65, 70, 110, 105, 208};

        /*
         * Company:    Synthesis
         * Author:     Chen
         * Date:    2018/06/04    
         */
         
        #ifndef __YOLO_LAYER_H_
        #define __YOLO_LAYER_H_
        #include <caffe/caffe.hpp>
        #include <string>
        #include <vector>
         
        using namespace caffe;
         
         
        const int classes = 3;
        const float thresh = 0.5;
        const float hier_thresh = 0.5;
        const float nms_thresh = 0.5;
        const int num_bboxes = 3;
        const int relative = 1;

        编译

        mkdir build
        cd build
        cmake ..
        make -j12

        运行:

     ./x86_64/bin/detectnet ../prototxt/yolov3.prototxt ../caffemodel/yolov3.caffemodel ../images/dog.jpg

     

    展开全文
  • 【Hi3519A】yolov3-to-caffe

    2020-05-07 19:53:34
    编译支持upsample layer的caffe 将yolov3转成caffemodel caffemodel转wk文件 在Hi3519A上进行测试 转自 https://blog.csdn.net/avideointerfaces/article/details/89111955 1. 下载拓展 下载code ...

    整个路线:

    1. darknet训练yolov3
    2. 编译支持upsample layer的caffe
    3. 将yolov3转成caffemodel
    4. caffemodel转wk文件
    5. 在Hi3519A上进行测试

    转自 https://blog.csdn.net/avideointerfaces/article/details/89111955

    1. 为caffe编译upsample拓展

    2. 遇到的问题

    • Makefile:594: recipe for target ‘.build_release/src/caffe/layers/upsample_layer.o’ failed
      upsample_layer添加不成功,怀疑是caffe版本和参考博客的不一样
      解决:
    error: ‘class caffe::LayerParameter’ has no member named ‘upsample_param’
    

    原来是upsample_param参数的位置写错了。

    3. yolov3 - 2- caffe

    python darknet2caffe.py cfg/yolov3-voc_person.cfg cfg/yolov3-voc_person_900.weights output/yolov3.prototxt output/yolov3.caffemodel
    
    • 结果
      在这里插入图片描述

    4. 测试

    展开全文
  • 一、yolov3转caffemodel由于项目中使用的是yolov3模型,而RuyiStudio中用的是caffemodel,需要首先对其进行转换。1、caffe配置:加入unsample层其中的upsample_layer.hpp放入include/caffe/layers下面;upsample_...

    一、yolov3转caffemodel

    由于项目中使用的是yolov3模型,而RuyiStudio中用的是caffemodel,需要首先对其进行转换。

    1、caffe配置:加入unsample层

    其中的upsample_layer.hpp放入include/caffe/layers下面;upsample_layer.cpp与upsample_layer.cu放在src/caffe/layers下面。

    修改相应的caffe.proto文件,src/caffe/proto/caffe.proto中的LayerParameter的最后一行加入加入:

    message LayerParameter {

    .....

    optional UpsampleParameter upsample_param = 149;

    }

    注意149为新层的ID号,该ID号请根据个人的caffe.proto文件指定即可。

    然后再caffe.proto中添加upsample层的参数:

    message UpsampleParameter{

    optional int32 scale = 1 [default = 1];

    }

    重新编译Caffe:

    make clean

    make all -j8

    make pycaffe -j8

    2、yolov3转caffe

    模型转换:python darknet2caffe.py cfg/yolov3.cfg weights/yolov3.weights prototxt/yolov3.prototxt caffemodel/yolov3.caffemodel

    二、转换后模型验证

    (1)修改CMakefile.txt文件,改为本机caffe安装路径

    (2)根据自己的yolov3模型修改参数

    yolo_layer.h

    yolo_layer.cpp(anchor值见yolov3.cfg文件)

    (2)编译

    mkdir build

    cmake ..

    make -j8

    (3)测试

    ./x86_64/bin/detectnet ../prototxt/yolov3.prototxt ../caffemodel/yolov3.caffemodel ../images/dog.jpg

    三、可能的问题

    转换与测试过程中遇到了两个问题:

    1、caffe/blob.hpp:9:34: fatal error: caffe/proto/caffe.pb.h: 没有那个文件或目录

    解决方法:

    转到caffe目录下, 运行以下代码:

    protoc src/caffe/proto/caffe.proto --cpp_out=.

    mkdir include/caffe/proto

    mv src/caffe/proto/caffe.pb.h include/caffe/proto

    2、cmke …时,出现 error: identifier “nullptr” is undefined, expected a ";"等错误

    解决方法:

    这个应该C++11版本的问题,修改CMakeLists.txt文件

    12-16行为新添加的内容, 12-15行可以选择添加, 添加-std=c++11解决问题

    参考资料:

    展开全文
  • <div><p>I try to run the yolov3_onnx sample. When I run python yolov3_to_onnx.py. It denotes Layer of type yolo not supported, skipping ONNX node generation. Layer of type yolo not supported, ...
  • 可以参考原作者:... 一、环境 Python2.7 Caffe ...1. caffe_layers/mish_layer/mish_layer.hpp,caffe_layers/upsample_layer/upsample_layer.hpp into include/caffe/layers/. 2. Copy caffe_layers/m.
  • 我想使用u版的yolov3剪层后网络结构进行tensorrt加速, (https://github.com/wang-xinyu/tensorrtx/blob/5d879b5886895bdf7f052e708794261679cd10db/yolov3/yolov3.cpp#L235) 是否从这里并根据自己剪层后的网络结构...
  • init plugin proto: yolov3.prototxt caffemodel: yolov3.caffemodel Begin parsing model... [libprotobuf ERROR google/protobuf/text_format.cc:298] Error parsing text-format ditcaffe.NetParameter: 2267:18:...
  • layer filters size input output 0 conv 32 3 x 3 / 2 416 x 416 x 3 -> 208 x 208 x 32 0.075 BFLOPs 1 conv 64 3 x 3 / 2 208 x 208 x 32 -> 104 x 104 x 64 0.399 BFLOPs 2 conv 64 3 x 3 / 1 104 x ...
  • yolo layer is implemented as a plugin, see yolov3 in branch trt4. yolo layer v2 three yolo layers implemented in one plugin, see yolov3-spp. upsample replaced by a deconvolution layer, see yolov3....
  • [upsample] stride=4 <p>your implementation is stride=2 (2) layer 141 [convolutional] batch_normalize=1 size=3 stride=4 pad=1 filters=256 activation=leaky <p>your ...
  • File does not exist : ../configs/yolov4-kFLOAT-batch4.engine Loading pre-trained weights... Loading complete! layer inp_size out_size weightPtr (1) conv-bn-mish 3 x 416 x 416 32 x 416 x 416 992 (2) ...
  • Inference Time Issue

    2021-01-03 09:16:04
    init plugin proto: ./yolov3_lite_mod.prototxt caffemodel: ./yolov3_lite_mod.caffemodel <p>Begin parsing model... could not parse layer type Upsample ERROR: ssd_error_log: Fail to parse Segmentation ...
  • 5、想把yolov3的模型转换为caffe 使用工具:pytorch-caffe-darknet-convert 注意事项: caffe中必须已经添加了 upsample_layer.cpp upsample_layer.cu upsample_layer.hpp message UpsampleParameter{ ...
  • I had made change in default yolov3.cfg file. Final layer consist of 24 filters instead if 255. <code>my.cfg</code></p> <p>layer filters size input output 74 Shortcut Layer: 71 75 conv 512 1 x 1 / ...
  • I build and install caffe pycaffe</li><li>Secondly, I convert <code>darknet2caffe.py ....</code> to <code>python3 version</code></li><li>Finally, I run <code>python darknet2caffe.py yolov3-custom.cfg...
  • <div><p>$ python3 yolov3_to_onnx.py Layer of type yolo not supported, skipping ONNX node generation. Layer of type yolo not supported, skipping ONNX node generation. Layer of type yolo not supported, ...
  • <div><p>Hi everyone, <p>Can anyone tell me, for upsample_layer function(in layer_util.py), why should we use resize_nearest_neighbor method instead of upsampling ...wizyoung/YOLOv3_TensorFlow</p></div>
  • <div><p>I was trying using XportDNN to convert my prototxt of yolov3 to quantization mode. But there is an error when i run the script like this: However, i have added the upsample layer to my caffe....
  • yolov3_to_onnx.py", in the beginning, it told me "Layer of type yolo not supported, skipping ONNX node generation Layer of type yolo not supported, skipping ONNX node generation Layer of type...
  • width_multiple: 0.50 # layer channel multiple # anchors anchors: - [10,13, 16,30, 33,23] # P3/8 - [30,61, 62,45, 59,119] # P4/16 - [116,90, 156,198, 373,326] # P5/32 # YOLOv5 backbone backbone: ...
  • 我最近在用一些自己的数据训练Yolov3_lite,然后进行测试。因为数据图像的尺度(1280*1280)固定,目标尺寸大小固定,所以我重新更改了网络结构,并用 <p>It is very strange ...
  • * /darknet_ros/yolo_model/weight_file/name: yolov3.weights * /rosdistro: kinetic * /rosversion: 1.12.13 NODES / darknet_ros (darknet_ros/darknet_ros) ROS_MASTER_URI=http://hsrb.local:11311 ...
  • <div><p>libtorch 1.0,cuda9.0, <p>torch::Tensor Darknet::forward(torch::Tensor x) { int module_count = module_list.size(); <pre><code>std::vector<...walktree/libtorch-yolov3</p></div>
  • how to edit cfg file.

    2021-01-02 21:31:43
    (head) yolov3_tiny to detect objects. Everything going well until ~ 1000 iters (avg loss ~ 8.0) but it gets a nan after that. Does anyone have any ideas? Thank you. here is my layer information. ...
  • yolov3-darknet <p>darknet2onnx环境: onnx==1.2.1 python==2.7 <p>darknet2onnx的过程: (darknet2onnx) qian:~/mayilong3/模型转换/darknet2onnx$ python2 yolov3_to_onnx.py Layer of ...
  • [ 2019-04-25 16:05:32,070 ] [ DEBUG ] [ main:148 ] Output model name would be yolov3_manual_np_tile{.xml, .bin} Model Optimizer arguments: Common parameters: - Path to the Input Model: /home/wd-ai/...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

layerupsampleyolov3