YoloSharp:训练 Yolo 模型,轻松实现物体检测

项目介绍

YoloSharp 是一个开源项目,它允许用户在 C# 环境中使用 TorchSharp 库来训练 Yolo 模型。这个项目免去了将 .pt 模型转换为 onnx 格式的繁琐步骤,用户可以轻松地在 C# 环境中训练自己的模型。目前支持 Yolov5、Yolov5u、Yolov8、Yolov11 和 Yolov12 等版本的模型,并且支持预测和分割功能。

项目技术分析

YoloSharp 采用 C# 语言编写,利用了 TorchSharp 库来实现深度学习模型的训练和预测。TorchSharp 是一个 .NET 的深度学习框架,它提供了对 PyTorch 模型的支持,可以将 PyTorch 模型直接导入到 .NET 环境中使用。

项目主要包含以下功能:

  • 支持 Yolov5、Yolov5u、Yolov8、Yolov11 和 Yolov12 等版本的模型训练和预测。
  • 支持 n/s/m/l/x 不同大小的模型。
  • 支持 LetterBox 和 Mosaic4 方法进行图像预处理。
  • 支持 GPU 加速的非极大值抑制(NMS)。
  • 支持加载从 ultralytics/yolov5/yolov8/yolo11 和 yolov12 转换的预训练模型。

项目技术应用场景

YoloSharp 可以应用于多种场景,以下是一些典型的应用案例:

  1. 实时物体检测:在视频监控、无人驾驶等领域,实时检测画面中的物体位置和类别是至关重要的。通过训练 YoloSharp 模型,可以实现高效准确的物体检测。

  2. 工业检测:在工业生产过程中,需要对产品进行质量检测,例如检测产品上的瑕疵、缺陷等。YoloSharp 可以对图像进行实时分析,帮助提高生产效率。

  3. 医学图像分析:在医学领域,对医学图像进行自动识别和分析可以帮助医生更快地诊断疾病。YoloSharp 可以应用于医学图像的检测和识别,辅助医生进行诊断。

  4. 人脸识别:在安防、金融等领域,人脸识别技术得到了广泛应用。通过训练 YoloSharp 模型,可以实现对人脸的实时检测和识别。

项目特点

  1. 纯 C# 编写,易于集成和使用。
  2. 支持多种 Yolo 版本的模型训练和预测。
  3. 支持图像预处理和 GPU 加速,提高训练和预测效率。
  4. 提供预训练模型,方便用户快速入门和使用。

以下是 YoloSharp 项目中提供的一些预训练模型:

| 模型 | n | s | m | l | x | | --- | ----------- | ----------- | ----------- | ----------- | ----------- | | yolov5 | yolov5n | yolov5s | yolov5m | yolov5l | yolov5x |

使用 YoloSharp 进行预测的示例代码如下:

Bitmap inputBitmap = new Bitmap(predictImagePath);

// 创建预测器
Predictor predictor = new Predictor(sortCount, yoloType: yoloType, deviceType: deviceType, yoloSize: yoloSize, dtype: dtype);

// 加载模型
predictor.LoadModel(preTraindModelPath);
predictor.Train(trainDataPath, valDataPath, outputPath: outputPath, batchSize: batchSize, epochs: epochs);

// 预测图像
predictor.LoadModel(Path.Combine(outputPath, "best.bin"));
var results = predictor.ImagePredict(inputBitmap, predictThreshold, iouThreshold);

通过以上介绍,相信您已经对 YoloSharp 有了初步的了解。如果您正在寻找一个易于使用且功能强大的 C# 深度学习库,YoloSharp 将是一个不错的选择。欢迎您尝试使用 YoloSharp,并在项目中发挥其强大的物体检测能力。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐