opencv:DNN模块加载机器学习模型

DNN模块

从OpenCV 3.3开始,dnn模块加入到主仓库中,目前支持Caffe、TensorFlow、Torch、PyTorch等深度学习框架。

protobuf

Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。protobuf是一种灵活高效的独立于语言平台的结构化数据表示方法,类似json/xml。

TensoFlow模型

1. 模型文件
	a. 二进制的protobuf格式描述文件:.pb
	b. protobuf格式文本文件:.pbtxt
2. 加载训练好的模型:readNetFromTensorflow
dnn::Net net = cv::dnn::readNetFromTensorflow("xxx.pb");
3. 读取图像,并把图像转换
Mat img = imread("1.jpg", 1);
Mat inputBlob = dnn::blobFromImage(img, 0.00390625f, Size(256, 256), Scalar(), false,false); 
4. 把图像作为模型输入
net.setInput(inputBlob, "data");     
5. 前向传播(预测)
Mat pred = net.forward("fc2/prob");
6. 取出预测值最大

Caffe模型

1. 模型文件
	a. 模型文件.caffemodel
	b. 描述文件.prototxt
2. 加载模型:readNetFromCaffe

剩下的流程和tensorflow一样

加载网络模型

Net readNetFromTensorflow(const String &model, const St

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值