darknet yolov3 yolov4转caffe 教程
在目标检测任务中,我们常使用yolov3, yolov4作为目标检测模型,在实际部署工作中,我们很多边缘设备需要把模型转换成caffe。在次记录下转换过程。
我们需要在caffe框架中,添加所需要的层。这个转换工具可以参考github上一位大佬项目:
git clone https://github.com/ChenYingpeng/darknet2caffe.git
把大佬mish_layer文件中的mish_layer.hpp和upsample_layer文件中的upsample_layer.hpp复制到安装caffe目录下的include/caffe/layers/文件夹中。
├── mish_layer
│ ├── mish_layer.cpp
│ ├── mish_layer.cu
│ └── mish_layer.hpp
├── pooling_layer
│ └── pooling_layer.cpp
└── upsample_layer├── upsample_layer.cpp├── upsample_layer.cu└── upsample_layer.hpp
把大佬mish_layer文件中的mish_layer.cpp、mish_layer.cu 和 upsample_layer文件中的
upsample_layer.cpp、upsample_layer.cu复制到caffe目录下的/src/caffe/layers/文件夹中。
最后在caffe目录下的/src/caffe/proto/caffe.proto。打开这个文件,添加以下内容:
在423行下面添加:
optional UpsampleParameter upsample_param = 149;
optional MishParameter mish_param = 150;
在最后一行下添加如下内容:
message UpsampleParameter{optional int32 scale = 1 [default = 1];}message MishParameter {enum Engine {DEFAULT = 0;CAFFE = 1;CUDNN = 2;}optional Engine engine = 2 [default = DEFAULT];
}
然后我们重新编译一下caffe,在caffe/build目录下
sudo make clean
sudo make all -j8
sudo make pycaffe -j8
最后执行转换命令
python3 darknet2caffe.py
打印信息如下
I1030 22:34:06.650609 7437 net.cpp:202] layer1-conv does not need backward computation.
I1030 22:34:06.650612 7437 net.cpp:202] input does not need backward computation.
I1030 22:34:06.650614 7437 net.cpp:244] This network produces output layer139-conv
I1030 22:34:06.650619 7437 net.cpp:244] This network produces output layer150-conv
I1030 22:34:06.650621 7437 net.cpp:244] This network produces output layer161-conv
I1030 22:34:06.650758 7437 net.cpp:257] Network initialization done.
unknow layer type yolo
unknow layer type yolo
save prototxt to ./yolov4.protofile
save caffemodel to ./yolov4.caffemode
darknet yolov3 yolov4转caffe 教程相关推荐
- 一步一步教你如何将 yolov3/yolov4 转为 caffe 模型
实际工作中,目标检测 yolov3 或者 yolov4 模型移植到 AI 芯片中,经常需要将其先转换为 caffe1.x 模型,大家可能或多或少也有这方面的需求.例如华为海思 NNIE 只支持caff ...
- 小白教程:Ubuntu下使用Darknet/YOLOV3训练自己的数据集
小白教程:Ubuntu下使用Darknet/YOLOV3训练自己的数据集 YOLOV3官网教程:https://pjreddie.com/darknet/yolo/ 使用预训练模型进行检测 git c ...
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)
AlexeyAB DarkNet YOLOv3框架解析与应用实践(三) ImageNet分类 您可以使用Darknet为1000级ImageNet挑战赛分类图像.如果你还没有安装Darknet,你应该 ...
- alexeyab darknet 编译_【目标检测实战】Darknet—yolov3模型训练(VOC数据集)
原文发表在:语雀文档 0.前言 本文为Darknet框架下,利用官方VOC数据集的yolov3模型训练,训练环境为:Ubuntu18.04下的GPU训练,cuda版本10.0:cudnn版本7.6.5 ...
- YOLO系列:YOLOv1,YOLOv2,YOLOv3,YOLOv4,YOLOv5简介
原文链接: https://zhuanlan.zhihu.com/p/136382095 YOLO系列:YOLOv1,YOLOv2,YOLOv3,YOLOv4,YOLOv5简介 YOLO系列是基于深度 ...
- YOLO系列总结:YOLOv1, YOLOv2, YOLOv3, YOLOv4, YOLOv5, YOLOX
文章目录 YOLO系列总结:YOLOv1, YOLOv2, YOLOv3, YOLOv4, YOLOv5, YOLOX 前言 YOLO v1: You Only Look Once: Unified, ...
- TVM darknet yolov3算子优化与量化代码的配置方法
TVM darknet yolov3算子优化与量化代码的配置方法 使用以下接口函数 tvm.relay.optimize quantize.quantize 实际代码: convert nnv ...
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)
AlexeyAB DarkNet YOLOv3框架解析与应用实践(六) Tiny Darknet 听过很多人谈论SqueezeNet. SqueezeNet很酷,但它只是优化参数计数.当大多数高质量的 ...
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)
AlexeyAB DarkNet YOLOv3框架解析与应用实践(五) RNNs in Darknet 递归神经网络是表示随时间变化的数据的强大模型.为了更好地介绍RNNs,我强烈推荐Andrej K ...
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(四)
AlexeyAB DarkNet YOLOv3框架解析与应用实践(四) Nightmare 从前,在一所大学的大楼里,西蒙尼亚.维达第和齐瑟曼有一个很好的主意,几乎和你现在坐的大楼完全不同.他们想,嘿 ...
最新文章
- C++中“引用”的底层实现
- Kettle, Solr
- NSOperationQueue线程队列完毕finished状态检测
- 南京工程学院计算机组成原理第二版答案,南大__计算机组成原理第二次作业
- Oracle入门(十四.4)之在PL / SQL中使用变量
- 做一个高一致性、高性能的Flutter动态渲染,真的很难么?
- 机器学习--决策树(熵、信息增益(ID3)、C4.5、多方式源码实战)
- PyTorch中查看GPU使用情况以及一些重要函数
- 怎么用软件测试PSP硬件,PSP适用FC模拟器从安装到使用全面教程
- Solidity 教程系列2 - 地址类型介绍
- python 第一行包含一个整数n、表示行数_输入 第一行输入一个整数n(1 = n = 100)表示测试样例个数 接下来n行,一...
- IDEA-自定义常用代码块
- linux的层次结构模型,linux 设备模型(1)
- linux 笔记本电脑_购买支持Linux的笔记本电脑
- python飞机大战简单的实现
- TLS/SSL双向认证
- Python黑科技:暴力破解你的密码
- 大暑节气海报图片|大暑节气海报文案
- Windows下使用GitHub Pages搭建hexo博客详细教程以及Next主题超全配置
- Unity读取json大文件卡顿