C#AI系列(3):31mb单文件exe实现姿态检测-将Yolo装进口袋

news/2025/12/1 12:12:00/文章来源:https://www.cnblogs.com/chinasoft/p/19292304

https://www.cnblogs.com/luojin765/p/19278215

 

C#使用Yolo其实简单。相较于Python方案,C# 31 MB单文件以可以单文件独立发布或以AOT编译彻底剥离解释器与运行时依赖,CPU推理性能良好。而且YOLO11n模型权重与原生推理代码一体嵌入,免除Python环境、版本冲突及数百兆依赖包部署,实现零配置、零维护、单文件分发,可以显著降低现场实施与售后成本,满足严肃场景对稳定性、一致性与封闭的刚性要求。

PoseEstimation

本文所有机器学习模型案例的代码已全部开源,关注 萤火初芒 公众号回复AISharp即可查看仓库地址。

一、环境准备

Nuget拉取 Microsoft.ML.OnnxRuntime.Managed 和 YoloDotNet,库内包含了完整所需的其他如Skia、OnnxRuntime等Native库文件。其中:
Microsoft.ML.OnnxRuntime.Managed: ONNX Runtime 是跨平台机器学习推理加速器,可兼容 PyTorch、TensorFlow/Keras 及 scikit-learn、LightGBM、XGBoost 等经典框架,通过图优化与硬件加速器协同,在异构操作系统与驱动环境下实现低成本、高吞吐、低延迟的统一部署。
YoloDotNet:基于 .NET 8、ONNX Runtime 的 C# 全栈库,把 YOLO 的检测、斜框、分割、分类、姿态、追踪能力一次打包,CUDA/TensorRT 双路 GPU 加速,开箱即跑;图片、视频、直播流全兼容,帧跳、可视化可定制,单库实现“模型到画面”的极速闭环。

二、模型准备

Yolo3-Yolo12预训练好的模型可以在https://docs.ultralytics.com/zh/models/yolo11/#supported-tasks-and-modes下载。
模型分为5大类:对象检测、图像分割、图像分类、姿态检测、目标检测(OBB)

所有模型下载后为.pt的格式,我们在C# 中使用的话需要在python中处理成.onnx格式。代码非常简单:


from ultralytics import YOLO# 加载.pt模型
model = YOLO("D:/yolo11n-pose.pt")# 输出.onnx模型
model.export(format="onnx") 

三、代码实现

示例代码可参考官方YoloDotNet中的demo文件夹,有各种实现的详细案例。以下是Yolo初始化的示例:

//初始化Yolo示例
using var yolo = new Yolo(new YoloOptions
{// 设定模型路径// 不同的任务需加载不同的模型OnnxModel = @"\yolo11n-pose.onnx",// 设定由CPU实现ExecutionProvider = new CpuExecutionProvider(),// 推理前应用的缩放模式。Proportional(等比缩放)会保持宽高比(必要时加填充);Stretch(拉伸缩放)则直接将图片resize到目标尺寸,不保持宽高比。该参数会直接影响推理结果。ImageResize = ImageResize.Proportional,// 缩放时可用的采样选项;会影响推理速度与质量。// 其他采样选项的对比示例,参见基准测试:SamplingOptions = new(SKFilterMode.Nearest, SKMipmapMode.None) // YoloDotNet default
});

YoloOptions的参数OnnxModel也可以改成OnnxModelBytes,从而直接加载字节数组,以便实现将模型内嵌。

在这里以姿态检测代码作为例子,非常简单,核心代码也就1-2行,其他部分可按需求增减:


// 用Skia加载目标图片
using var image = SKBitmap.Decode(args?[0] ?? @"d:\tt2.png");// 使用加载好模型的Yolo示例执行任务
var results = yolo.RunPoseEstimation(image, confidence: 0.25, iou: 0.7);// 绘制任务结果
image.Draw(results, _drawingOptions);// 保存绘制任务结果
var fileName = Path.Combine(_outputFolder, "PoseEstimation.jpg");
image.Save(fileName, SKEncodedImageFormat.Jpeg, 80);// 显示输出的图片
DisplayOutput(fileName);

四、发布选项

由于.Net平台的强大,我们可以任意选择我们的发布形式。以下比较了集中发布情况,所有发布的文件中均内嵌了一个11.2mb的小模型,发布后无需再外挂模型文件。

发布方式(内嵌模型资源)大小文件数量
单文件发布 47.6MB 3
单文件发布(Compression) 45.6MB 3
AOT发布 37.9MB 3
单文件发布(Compression)+Native自提取 31.0MB 1

需要注意的是。原生YoloDotNet发布Aot会报错,原因是其在某个函数传参过程中使用了Dynamic类型,我们将原库代码拔下来修改后重新编译即可支持了。

五、效果演示

Yolo的姿态模型可以识别面部头眼及四肢等多个关键点。效果展示如下(视频无加速):

output

在最后一幅图大家也发现了,有部分人物未被识别到。这其实与案例中选择的模型大小有关。当我们切换到稍大点的模型时(yolo11x-pose,224mb),主体人物均可被正常识别了。
yolo11n-pose,11.2mb:
PoseEstimation_n

yolo11x-pose,224mb:

PoseEstimation_x

六、 最后

本文借助 C# AOT 与 ONNX Runtime,可将 YOLO11 姿态模型及全部依赖压缩为 31 MB 单文件 EXE,现场部署无需 Python 环境与额外组件,显著降低实施、维护与版本漂移风险,可以将落地门槛再降一分,即插即用将AI装进了口袋。
感谢您的阅读,本案例及更加完整丰富的机器学习模型案例的代码已全部开源,关注公众号回复AISharp即可查看仓库地址。

因为里面原官方YoloDotNet库在本项目中经过修改重新编译并进行了精简,现在改为直接引用了。默认master分支用的是.Net10,如果没有.Net10的可以切换到master_NET8分支

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/982816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年全屋定制品牌制造企业选择哪家好?全屋定制品牌生产厂

TOP1 推荐:黑龙江久木家具有限公司(久木全屋定制) 推荐指数:★★★★★ 口碑评分:黑龙江本地口碑标杆全屋定制品牌 专业能力:作为深耕定制家居领域的区域龙头企业,黑龙江久木家具有限公司以全场景个性化定制+环…

[论文阅读] AI+ | GenAI重塑智慧图书馆:华东师大实践AI虚拟馆员,解放馆员聚焦高价值任务 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年黑龙江十大医疗工业改造工程公司推荐:口碑不错的改造

本榜单依托黑龙江地区医疗与工业洁净工程领域的市场调研、客户真实反馈及项目交付案例,深度筛选出十家标杆企业,为医疗机构、工业企业选型提供客观依据,助力精准匹配适配的改造工程服务伙伴。 TOP1 推荐:哈尔滨净朗…

2025年哈尔滨全屋定制公司口碑排名:久木定制,五家靠谱品牌

在哈尔滨家居市场,全屋定制已成为装修刚需——既要适配东北户型的空间利用率,又要兼顾环保与颜值,更要避开增项套路板材以次充好等坑。面对琳琅满目的品牌,如何选到靠谱的本地服务商?以下结合口碑评分、服务能力与…

详细介绍:【JUnit实战3_27】第十六章:用 JUnit 测试 Spring 应用:通过实战案例深入理解 IoC 原理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年哈尔滨全屋定制品牌十大排行榜,久木定制测评推荐

为帮黑龙江家庭高效锁定适配自身需求的全屋定制合作伙伴,避免装修走弯路,我们从板材品质(如环保等级、品牌授权)、空间设计能力(含户型适配、风格一体化)、价格透明度(增项标注、报价逻辑)及真实客户口碑(侧重…

中电金信:这个AI“专家系统”,让智能体真正懂金融、落地可控

目前,AI正以指数级速度进化,从模型走向智能体时代。智能体如雨后春笋般涌现,上千款应用正在重塑各行各业,然而,在规则严谨、流程复杂的金融领域,AI想真正落地,并不只是“部署一个模型”那么简单。一家金融机构的…

K-D Tree 相关

讲解 K-D Tree 相关。部分发表于洛谷。 简介: K-D Tree 是一种适用于 \(k\) 维空间信息处理的数据结构,一般是维护 \(n\) 个点的信息,建出平衡二叉树;在 \(k\) 比较小的 建树: 一般使用交替建树,递归的分为以下三…

TopDiag P181 Wire Finder: Effortlessly Locate Automotive Wire Breakpoints Short Circuits

Troubleshoot Electrical Woes Faster: Introducing the TopDiag P181 Wire Finder The Hidden Cost of Electrical Breakdowns For automotive mechanics and car owners, tracking down a short circuit or a hidden…

2025年最新工业冷风机性能排行榜TOP10,生产车间厂房降温/橡胶车间通风降温/车间厂房工厂通风降温工业冷风机厂商推荐榜单

行业洞察 随着工业4.0时代的深入发展,工业冷风机作为厂房车间通风降温的核心设备,其性能表现直接关系到生产环境优化与能源消耗控制。基于2024-2025年市场公开数据与产品实测表现,本文从技术参数、能效比、适用场景…

麒麟V10服务器配置网络 - 华

银河麒麟V10服务器系统默认集成network和Network Manager两种网络管理工具。network基于Shell脚本 , 通过修改/etc/sysconfig/network-scripts 目录下的配置文件来管理网络连接;Network Manager是一种较新的网络连接管…

在AI技术唾手可得的时代,挖掘安全测试新需求成为关键——某知名Web安全训练平台需求探索

本文分析了一个广泛使用的Web安全训练平台的核心功能和用户反馈,揭示了在AI技术快速发展的背景下,用户对多语言支持、容器化部署、新漏洞类型和现代化界面等方面的潜在需求,这些需求反映了安全测试工具在新时代的发…

临时文件发送工具(wormhole.app)24小时有效

临时文件发送工具(wormhole.app)24小时有效https://wormhole.app/

7.QML组件Slider

7.QML组件SliderWindow {visible: truewidth: 640height: 480title: qsTr("QML demo")Slider {id: controlvalue: 0.5background: Rectangle {x: control.leftPaddingy: control.topPadding + control.avail…

基于Matlab的压缩感知信道估计算法实现

一、压缩感知信道估计原理概述 在无线通信系统中,信道估计是接收端补偿信道衰落、恢复发送信号的关键步骤。传统方法(如最小二乘LS、最小均方误差MMSE)需密集导频,开销大。压缩感知(Compressed Sensing, CS)利用…

2025黑龙江洁净工程公司TOP5权威推荐:专业测评净朗净化

洁净工程是医疗与工业领域的隐形基石,其质量直接关乎医疗安全、产品精度与作业效率。2024年数据显示,黑龙江医疗洁净工程市场需求年增速达32%,工业洁净场景占比提升至45%,但行业投诉中60%集中在净化效率不达标、后…

2025年广州优质精装现楼厂房租赁排行榜,资质齐全/售后完善

为帮助企业快速找到适配自身发展需求的产业载体,避免因厂房选型不当导致的生产延误、运营成本超支等问题,我们从资质合规性(如产权明晰度、消防验收标准)、售后保障能力(含维修响应时效、配套服务持续性)、客户口…

ASCIIMoon

ASCIIMoon是一个展示月亮每日相位变化的网站,其最大特色是使用ASCII字符艺术来呈现月相(新月、弯月、满月)。这个网站将天文学与字符艺术巧妙结合,为用户提供了一种复古而有趣的观察月相的方式。网址:https://asc…

2025年RFID衣物洗涤标签供货厂家权威推荐榜单:酒店洗涤RFID标签‌/RFID洗涤耐高压标签‌/RFID布草智能管理‌源头厂家精选

在布草智能管理需求日益增长的2025年,RFID衣物洗涤标签已成为酒店、医院和洗涤工厂实现精准化管理的核心工具。据行业报告显示,应用RFID技术后,布草库存盘点效率可提升80%以上,人工成本显著降低。 在酒店布草、医疗…

UML进阶:深入理解类图和序列图

作为软件工程专业的学生,我们通常都会接触到统一建模语言(UML)。UML是一种标准的建模语言,用于软件工程领域中的视觉建模。在这篇文章中,我将分享一些UML的进阶知识,特别是关于类图和序列图的理解。 什么是UML?…