FastDeploy 安装教程

【2023-2-22】FastDeploy 安装编译教程

该测试 FastDeploy CPU版本。

在这里插入图片描述

1. fastDeploy库编译

1.1 官方预编译库下载

预编译库下载安装

1.2 自定义CPU版本库编译

  • 官方编译FastDeploy教程

CMakeGUI + VS 2019 IDE编译FastDeploy

  • 本人编译教程
  1. CMAKE_CONFIGURATION_TYPES 属性设置为Release

  2. 请不要勾选WITH_GPUENABLE_TRT_BACKEND

  3. 开启ENABLE_PADDLE_BACKEND ENABLE_OPENVINO_BACKEND ENABLE_VISION

  4. 指定CMAKE_INSTALL_PREFIX 安装路径

  5. 生成fastdeploy.sln解决方案文件选择Release版本,生成编译,点击"INSTALL"->右键点击"生成"将编译好的SDK安装到先前指定的目录步骤⑤。
    在这里插入图片描述
    在这里插入图片描述

1.3 自定义GPU版本库编译

  • 官方编译FastDeploy教程

CMakeGUI + VS 2019 IDE编译FastDeploy

  • 本人编译教程
  1. CMAKE_CONFIGURATION_TYPES 属性设置为Release

  2. 勾选WITH_GPUENABLE_TRT_BACKEND

  3. 开启ENABLE_ORT_BACKEND ENABLE_PADDLE_BACKEND ENABLE_TRT_BACKEND ENABLE_OPENVINO_BACKEND ENABLE_VISION ENABLE_TEXT

  4. 设置CUDA TensorRT路径

CUDA_DIRECTORY            : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2
TRT_DRECTORY              : D:/Program Files/TensorRT-8.4.3.1
  1. 指定CMAKE_INSTALL_PREFIX 安装路径

  2. 生成fastdeploy.sln解决方案文件选择Release版本,生成编译,点击"INSTALL"->右键点击"生成"将编译好的SDK安装到先前指定的目录步骤⑤。
    请添加图片描述
    请添加图片描述

1.4 样例测试

picodet_l_320_coco_lcnet 模型下载

/*
 * @Description: 
 * @Version: 0.0.1
 * @Author: chccc
 * @Date: 2023-02-19 00:19:22
 * @LastEditors: chccc
 * @LastEditTime: 2023-02-20 17:23:21
 * @FilePath: \cpp\infer.cpp
 */
#include <iostream>
#include "fastdeploy/vision.h"

void PicoDetGpuInfer(const std::string& model_dir, const std::string& image_file)
{

	std::string model_file = "picodet_l_320_coco_lcnet/model.pdmodel";
	std::string params_file ="picodet_l_320_coco_lcnet/model.pdiparams";
	std::string config_file ="picodet_l_320_coco_lcnet/infer_cfg.yml";;

	auto option = fastdeploy::RuntimeOption();
	option.UseGpu(0);
	fastdeploy::vision::detection::PicoDet model = fastdeploy::vision::detection::PicoDet(model_file, params_file, config_file, option);
	std::cout<<typeid(model).name()<<std::endl;
	if (!model.Initialized()) {
		printf("[%s][%d] Error: fastdeploy::vision::detection::PicoDet initialized failed !\n", __func__, __LINE__);
		return;
	}

	auto im = cv::imread(image_file);
	auto im_bak = im.clone();

	auto start = std::chrono::system_clock::now();

	fastdeploy::vision::DetectionResult result;
	if (!model.Predict(&im, &result)) {
		printf("[%s][%d] Error: Failed to predict !\n", __func__, __LINE__);
		return;
	}
	//std::cout << res.Str() << std::endl;

	auto end = std::chrono::system_clock::now();
	auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
	double costTime = double(duration.count()) * std::chrono::microseconds::period::num / std::chrono::microseconds::period::den;
	//printf("[%s][%d] model.Predict success, cost time: %lf s \n", __func__, __LINE__, costTime);

	std::cout << "==========================================================================" << std::endl;

    float score_thereshold = 0.8;
	int line_size = 2;
	float font_size = 1;
	auto vis_image = fastdeploy::vision::Visualize::VisDetection(im_bak, result, score_thereshold, line_size, font_size);
	std::string vis_image_path = "./images/vis_result.jpg";
	cv::imwrite(vis_image_path, vis_image);
	printf("[%s][%d] Visualized result saved in %s !\n", __func__, __LINE__, vis_image_path.c_str());
}

int main()
{
	std::cout << "=============== TEST ===============" << std::endl;

	std::string model_dir = "./models/";;
	std::string image_file = "./images/1.jpg";

	//计时
	auto start = std::chrono::system_clock::now();

	PicoDetGpuInfer(model_dir, image_file);

	//计时
	auto end = std::chrono::system_clock::now();
	auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
	double costTime = double(duration.count()) * std::chrono::microseconds::period::num / std::chrono::microseconds::period::den;

	printf("[%s][%d] Model infer success, cost time: %lf s \n", __func__, __LINE__, costTime);

	std::cout << "=============== Finished ===============" << std::endl;
}

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热衷技术的尼古拉斯

您的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值