# VisualIdentity **Repository Path**: shunnet/VisualIdentity ## Basic Information - **Project Name**: VisualIdentity - **Description**: 应用于工业物联网项目上基础视觉识别服务,使用 .net Core 与 Yolo 识别服务开发的 WebApi 服务 ,开箱即用 - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 3 - **Created**: 2025-10-24 - **Last Updated**: 2026-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
基于 .NET 10 Yolo 多模型智能识别平台
高效 · 灵活 · 易部署
## 🌟 项目简介 在 **AI 应用落地** 的过程中,**模型管理** 与 **多任务识别** 一直是开发者的痛点。 无论是 **检测、分类、分割、姿态估计、定向检测**,往往都需要同时部署多个模型,传统方案在 **效率** 和 **易用性** 上总会遇到瓶颈。 **VisualIdentity** 正是为了解决这一系列问题而生。 它结合了 **.NET 10** 的现代化能力、[YoloDotNet](https://github.com/NickSwardh/YoloDotNet) 的高性能推理、以及 **SQLite** 的轻量级管理,为开发者提供一个 **开箱即用** 的智能识别平台。 ✅ 多模型管理 ✅ 单机多任务识别 ✅ 跨平台部署 ## 🎯 应用场景 - 🏭 **工业质检**:瑕疵检测、异物识别 - 🛒 **零售分析**:顾客行为、货架检测 - 🛡️ **智能安防**:异常行为、姿态识别 - 🎓 **科研教育**:多模型实验平台 - 🌐 **边缘计算**:轻量化部署到嵌入式或服务器 ## 💡 ONNX 模型导出要求 - 对于**YOLOv26**,导出时 opset=18 - 对于**YOLOv5u–YOLOv12**,导出时 opset=17 > [!重要] > 使用正确的作集确保与 ONNX 运行时的最佳兼容性和性能。 > 有关如何将模型导出到 ONNX 的更多信息,请参见 https://docs.ultralytics.com/modes/export/ **示例导出命令(Ultralytics CLI):** ```bash # For YOLOv5u–YOLOv12 (opset 17) yolo export model=yolov8n.pt format=onnx opset=17 # For YOLOv26 (opset 18) yolo export model=yolo26n.pt format=onnx opset=18 ``` ## 📦 NuGet 安装 ```bash dotnet add package Snet.Yolo.Server (选择下方一项) # CPU dotnet add package YoloDotNet.ExecutionProvider.Cpu # 硬件 dotnet add package YoloDotNet.ExecutionProvider.Cuda dotnet add package YoloDotNet.ExecutionProvider.OpenVino dotnet add package YoloDotNet.ExecutionProvider.CoreML dotnet add package YoloDotNet.ExecutionProvider.DirectML ``` ### 💡 调用示例 ```csharp using SkiaSharp; using Snet.Model.data; using Snet.Yolo.Server; using Snet.Yolo.Server.handler; using Snet.Yolo.Server.models.data; using Snet.Yolo.Server.models.@enum; using YoloDotNet.ExecutionProvider.Cpu; using YoloDotNet.Extensions; using YoloDotNet.Models; namespace Snet.Yolo.Test { internal class Program { static async Task Main(string[] args) { //????? 为对应数据 // 原始图片路径 string imagePath = "?????"; //模型路径 string onnxModel = "?????"; //识别类型 OnnxType onnxType = OnnxType.ObjectDetection; //直接调用库来进行本地识别操作 using SKImage image2 = SKImage.FromEncodedData(imagePath); // 调用识别 OperateResult operateResult = await IdentityOperate.Instance(new Yolo.Server.models.data.IdentityData { Hardware = new CpuExecutionProvider(onnxModel), //使用CPU进行运算 IdentifyType = onnxType, SN = $"{onnxType}{onnxModel}" }).RunAsync(new ObjectDetectionData { Confidence = 0.23, Iou = 0.7, File = image2.Encode().ToArray() }); // 转换结果 List
|
|