news 2026/5/1 9:33:34

Labview结合Yolov5与TensorRT(Wangxingyu版)实现快速并行推理,d...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Labview结合Yolov5与TensorRT(Wangxingyu版)实现快速并行推理,d...

labview yolov5 tensorrt(wangxingyu版)推理,封装dll, labview调用dll,支持同时加油多个模型并行推理,识别视频和图片,速度6ms内,模型需要pt->wts->engine, 由于不同电脑和平台需要重新wts->engine,所以包含一个wts模型转engine软件,只需要替换模型的engin和nameclass即可

这次折腾的是LabVIEW结合YOLOv5和TensorRT的高性能推理方案。别看LabVIEW长得像儿童编程玩具,配合C++ DLL玩起多模型并行推理,速度直接干到6ms以内,摄像头实时处理完全没压力。

模型转换踩坑记

YOLOv5的pt模型转TensorRT engine是个技术活。wangxingyu版的转换脚本比官方方案更适配LabVIEW环境,不过要注意模型输出层的命名规范。举个栗子:

with open('yolov5s.wts', 'w') as f: f.write('{}\n'.format(len(model.state_dict().keys()))) for k, v in model.state_dict().items(): vr = v.reshape(-1).cpu().numpy() f.write('{} {} '.format(k, len(vr))) f.write(' '.join(['%f' % x for x in vr]) + '\n')

这段代码把PyTorch的权重拍平成文本格式,注意reshape(-1)可能会改变某些层的维度顺序,遇到推理异常先检查这里。

DLL封装那些事儿

C++侧用了双缓冲+内存共享的黑科技处理多模型并行。核心推理函数长这样:

__declspec(dllexport) void InferParallel( unsigned char* img_data, int model_index, Result* results) { auto& context = g_contexts[model_index]; // 不同模型实例隔离 cudaMemcpy(context.input_buffer, img_data, INPUT_SIZE, cudaMemcpyHostToDevice); context.stream->infer(); // 异步流执行 post_process(context.output_buffer, results); // 零拷贝结果回传 }

重点在于每个模型有自己的cuda流和内存空间,避免多线程打架。LabVIEW调用时通过模型索引切换,实测开4个模型也能稳定在15ms内。

LabVIEW调教指南

前面板放个多线程队列处理器,配合DLL的异步接口直接起飞:

While循环(并行) Dequeue获取图像数据 调用库函数节点(DLL路径, "InferParallel") 结果分析Cluster解包 图像标注叠加 End循环

注意设置执行选项为"在UI线程外运行",否则前面板会卡成PPT。视频流处理建议用生产者-消费者结构,DMA传输能省30%时间。

手搓转换工具

由于TensorRT engine和CUDA版本强相关,我们搞了个傻瓜式转换器(C# WinForm)。核心转换命令:

trtexec --onnx=yolov5s.onnx --saveEngine=yolov5s.engine --fp16 --workspace=4096

工具自动替换模型名称和类别文件,支持拖拽操作。实测不同显卡生成engine速度差异极大,RTX4090转换比1060快8倍你敢信?

整套方案在工业质检场景跑了三个月,日均处理20万张图片没翻车。要说遗憾就是LabVIEW的异常处理比较蠢,C++侧得自己加内存泄漏检测。最近在研究用OpenVINO替代TensorRT,等有进展再来唠。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 1:38:12

GPU共享调度方案:多个租户共用一张卡运行HunyuanOCR实例

GPU共享调度方案:多个租户共用一张卡运行HunyuanOCR实例 在AI服务大规模落地的今天,一个现实问题日益凸显:高端GPU价格居高不下,而大量推理任务却属于轻量级场景——比如文档识别、卡证扫描、字幕提取等OCR类应用。这类任务对算力…

作者头像 李华
网站建设 2026/5/1 1:39:45

HuggingFace镜像站也能用!腾讯HunyuanOCR模型下载与部署技巧

HuggingFace镜像站也能用!腾讯HunyuanOCR模型下载与部署技巧 在企业文档自动化、跨境内容处理和智能客服系统中,OCR能力正从“辅助功能”演变为“核心引擎”。然而,传统OCR方案的级联架构常带来推理延迟高、多语言支持弱、部署复杂等痛点。最…

作者头像 李华
网站建设 2026/5/1 1:39:45

中文排版复杂文档识别哪家强?HunyuanOCR实战测评来了

中文排版复杂文档识别哪家强?HunyuanOCR实战测评来了 在当今企业数字化转型的浪潮中,每天都有成千上万的合同、发票、证件、讲义被扫描、上传、归档。然而,真正让这些“纸质记忆”活起来的,并不是简单的图像存储,而是能…

作者头像 李华
网站建设 2026/5/1 1:39:47

科研文献数字化第一步:HunyuanOCR批量识别PDF扫描件

科研文献数字化第一步:HunyuanOCR批量识别PDF扫描件 在高校图书馆的档案室里,成堆泛黄的学术期刊静静躺在柜中;研究生的硬盘里,数百份扫描版PDF论文堆积如山——这些承载着数十年科研积累的资料,却因缺乏可编辑、可检索…

作者头像 李华
网站建设 2026/5/1 2:50:20

HunyuanOCR创业项目灵感:基于该模型的SaaS服务商业模式探讨

HunyuanOCR创业项目灵感:基于该模型的SaaS服务商业模式探讨 在企业数字化转型加速推进的今天,文档自动化早已不再是大公司的专属能力。越来越多的中小企业开始面临发票识别、合同解析、多语言内容处理等实际需求——但传统OCR方案要么精度不够&#xff0…

作者头像 李华
网站建设 2026/5/1 2:47:07

【Swagger技术栈演进史:从Springfox到Knife4j的完整进化路径】

Swagger技术栈演进史&#xff1a;从Springfox到Knife4j的完整进化路径 &#x1f5fa;️ 一、技术演进路线图 Springfox 2.x (2014-2020) → Springfox 3.0 (2020) → Springdoc OpenAPI (2020) → Knife4j (增强UI)二、OpenAPI2规范&#xff08;Swagger 2.0&#xff09; <de…

作者头像 李华