windows下基于Tensorflow的深度学习目标检测算法的C++实现(不依赖于python环境)

该博客介绍了如何在Windows环境下使用Tensorflow 1.4-GPU版本进行深度学习目标检测的C++实现,无需依赖Python环境。主要内容包括选择CUDA8.0和Tensorflow 1.4的原因,编译Tensorflow.dll的注意事项(如使用VS2015 Update3),以及官方示例代码的参考。文章提到了几个关键接口函数,并提醒读者注意GPU内存分配方式以及不同平台Tensorflow版本的兼容性问题。
摘要由CSDN通过智能技术生成

之前一段时间,由于项目需求,将深度学习框架从Caffe切换到Tensorflow,从ubuntu下模型训练到模型移植到windows端推理,即从
Caffe:Ubuntu下训练,windows端推理,采用C++调用python的方式工程化
切换为:
Tensorflow:Ubuntu下训练,windows端推理,采用Tensorflow C++接口的方式工程化(不依赖于python环境)

Tensorflow版本选择
笔者选择Tensorflow版本主要是项目用的是CUDA8.0,所以选择最高支持CUDA8.0的tensorflow1.4-gpu版本,可参考Tensorflow官网版本:
在这里插入图片描述本文不介绍windows下编译tensorflow.dll的过程,有需要编译tensorflow.dll的童鞋,一定要参考上面的编译器版本和编译工具版本,即:
VS版本一定要选择 VS2015 update3的版本,选错VS版本编译会有很多坑(非常重要)
科学上网(编译过程中需要下载,否则编译不成功)

关于编译tensorflow.dll成功以后,tensorflow-1.4源码下有调用的案例,即官方案例:
下载tensorflow-1.4源码以后,官方案例在tensorflow-1.4.0/tensorflow/examples目录下,笔者参考的是目标检测的官方案例之一:multibox_detector,可以参考tensorflow-1.4.0/tensorflow/examples/multibox_detector/main.cc的代码,笔者这边由于测试时用到的图像有bmp格式的,所以读取图像部分做了一定修改(用opencv读取图像),以下是tensorflow训练faster_rcnn的模型在windows下工程化代码:

#include <io.h>
#include <sstream>
#include <map>

// windows下运行需要添加
#define COMPILER_MSVC
#define NOMINMAX
#define PLATFORM_WINDOWS

#include <fstream>
#include <utility>

// 这里包含tensorflow头文件
#include "tensorflow/cc/ops/const_op.h"
#include "tensorflow/cc/ops/image_ops.h"
#include "tensorflow/cc/ops/standard_ops.h"
#include "tensorflow/core/framework/graph.pb.h"
#include "tensorflow/core/framework/tensor.h"
#include "tensorflow/core/graph/default_device.h"
#include "tensorflow/core/graph/graph_def_builder.h"
#include "tensorflow/core/lib/core/errors.h"
#include "tensorflow/core/lib/core/stringpiece.h"
#include "tensorflow/core/lib/core/threadpool.h"
#include "tensorflow/core/lib/io/path.h"
#include "tensorflow/core/lib/strings/stringprintf.h"
#include "tensorflow/core/platform/env.h"
#include "tensorflow/core/platform/init_main.h"
#include "tensorflow/core/platform/logging.h"
#include "tensorflow/core/platform/types.h"
#include "tensorflow/core/public/session.h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值