原标题:Tensorflow的C语言接口部署DeeplabV3+语义分割模型
微信公众号:OpenCV学堂
投稿作者:小黄弟,
来自:中国电科智慧城市建模仿真与智能技术重点实验室
文字编辑:gloomyfish
前言概述
tensorflow框架一般都是基于Python调用,但是有些时候跟应用场景,我们希望调用tensorflow C语言的接口,在C++的应用开发中使用它。要这么干,首先需要下载tensorflow源码,完成编译,然后调用相关的API函数实现C语言版本的调用,完成模型的加载、前向推理预测与解析。
本文主要讲DeeplabV3+语义分割模型的tensorflow C接口部署,不涉及到模型的训练过程,训练过程可以参考:
https://github.com/tensorflow/models/tree/master/research/deeplab.
官方提供了PASCAL VOC 2012,Cityscapes,ADE20K不同数据集上预训练好的模型,同时还有基于ImageNet预训练好的不同backbone网络, 包括mobilenetv2,xception,resnet,我们可以根据自己的需求来选择合适的backbone。本文不涉及tensorflow C版本的编译,只是讲解如何通过API调用预训练模型进行前向推理预测,模型的导出文件为:
frozen_inference_graph.pb
Mat转Tensor
在tensorflow中,输入数据格式为Tensor格式,有专门的函