caffe-yolo,C++实现yolo模型目标检测算法

本文详述了将YOLO目标检测模型移植到Caffe框架并在Ubuntu上训练模型的过程,以及在Windows环境下使用Visual Studio 2013编译C++预测程序。介绍了模型训练、配置步骤和C++预测代码实现,最终测试模型在544*375尺寸图片上的检测速度约为563ms/张,计划寻找更快的检测算法。
摘要由CSDN通过智能技术生成

这篇文章的主要目的是想把yolo转到caffe框架上去做检测,训练检测模型用的是github上https://github.com/yeahkun/caffe-yolo 的框架,训练了一个试卷中教师批注分数位置检测的模型,然后在用c++实现预测功能。
环境配置
ubuntu16.04上训练caffe-yolo模型
windows操作系统实现预测功能
编译工具
Visual Studio 2013
参考深度学习框架
这里的作者有介绍详细的模型训练和测试过程,只需要修改适合自己检测模型的参数即可
caffe-yolo模型训练
参考原作者即可,这里省略略。。。
C++实现预测目标位置
项目结构
yolo_predict项目可以建在和caffe同一层级下,在这个项目里同样用到了caffe中实现的层;
1.yolo_predict.cpp

// yolo_predict.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "yolo_predict.h"

#include <string>
#include <vector>
#include "head.h"
#include<windows.h>

#include "boost/algorithm/string.hpp"
#include "google/protobuf/text_format.h"
#include <opencv2/opencv.hpp>

#include "caffe/blob.hpp"
#include "caffe/layer.hpp"
#include "caffe/common.hpp"
#include "caffe/net.hpp"
#include "caffe/proto/caffe.pb.h"
#include "caffe/util/db.hpp"
#include "caffe/util/format.hpp"
#include "caffe/util/io.hpp"
#include <stdio.h>
#include <malloc.h>
#include <fstream>
#include <boost/progress.hpp>

#include <boost/math/special_functions/next.hpp>
#include <boost/random.hpp>

#include <limits>

#include "caffe/common.hpp"
#include "caffe/util/math_functions.hpp"
#include "caffe/util/rng.hpp"

/*argv[1]网络的prototxt
argv[2]权重文件(如果编译时候使用的是loadweight,argv[2]对应的是txt文件夹,如果使用的是CopyTrainedLayersFromBinaryProto,argv[2]对应的是caffemodel)
argv[3]图片文件*/
//#include "caffe/util/math_functions.hpp"
using namespace caffe;
using caffe::Blob;
using caffe::Caffe;
using caffe::Datum;
using caffe::Net;
using caffe::Layer;
using std::string;
namespace db = caffe::db;

void loaddata(boost::shared_ptr<Net<float> >& net, std::string image_path);
void getbox(std::vector<float> result, float* pro_obj, int* idx_class, std::vector<std::vector<float> >& bboxs, float thresh, cv::Mat image);
void nms(s
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,针对你的问题,这里简单介绍一下如何使用caffe-ssd预训练模型进行目标检测caffe-ssd是基于caffe实现的单阶段目标检测算法,使用预训练模型可以加快模型训练的速度,同时也可以提高模型检测精度。下面是使用预训练模型目标检测的步骤: 1. 下载预训练模型 caffe-ssd官方提供了一些预训练模型,可以在这里下载:https://github.com/weiliu89/caffe/tree/ssd#models。选择适合自己数据集的模型进行下载。 2. 准备数据集 准备自己的数据集,包括训练集、验证集和测试集。数据集需要满足SSD数据格式要求,即每个样本需要有对应的标注文件,标注文件格式为:类别id、xmin、ymin、xmax、ymax(例如:0 0.1 0.2 0.3 0.4,表示类别为0,左上角坐标为(0.1, 0.2),右下角坐标为(0.3, 0.4))。 3. 修改配置文件 修改caffe-ssd的配置文件,将模型路径、数据路径、类别数等参数配置正确。其中,模型路径需要指定为下载的预训练模型路径。 4. 训练模型 使用修改后的配置文件训练模型。训练过程中可以调整学习率、迭代次数等参数,以达到更好的效果。 5. 测试模型 使用测试集对训练好的模型进行测试,并计算模型在测试集上的精度和召回率等指标。 以上就是使用caffe-ssd预训练模型目标检测的基本步骤。需要注意的是,使用预训练模型虽然可以加速模型训练过程,但是如果数据集和预训练模型的差异较大,仍然需要进行微调。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值