基于C#winform实现yolo26-plate中文车牌检测识别支持12种中文双层颜色车牌文字识别
效果展示项目简介这是一个基于深度学习的车牌检测与识别系统采用 ONNX 模型格式实现支持 CPU 和 CUDA 加速推理。本项目将 Python 实现的车牌检测识别功能完整移植到 C# 环境实现了高性能、模块化的车牌识别解决方案。算法原理本系统采用两阶段检测识别架构1. 车牌检测YOLOv26s-Plate-Detect使用改进的 YOLOv26s 检测模型专门针对车牌检测优化输入尺寸640×640 像素预处理LetterBox 缩放保持宽高比缩放灰边填充后处理置信度过滤 非极大值抑制NMS 坐标转换输出车牌边界框坐标、置信度、车牌类型单层/双层2. 车牌识别Plate-Rec-Color使用 CNN-LSTM 结构的车牌识别模型支持中文字体识别输入尺寸48×168 像素高度×宽度预处理归一化均值0.588标准差0.193后处理字符解码 正则表达式过滤确保车牌格式合规输出车牌号码、车牌颜色、车牌类型3. 结果可视化科技风检测框主题色边框 发光效果 四角科技角标车牌信息卡片根据车牌颜色自动匹配主题配色中文渲染支持中文字体显示环境要求硬件要求CPUIntel Core i5 或同等性能处理器CPU 模式GPUNVIDIA GTX 1060 或更高CUDA 模式需 CUDA 12.x 支持支持RTX20-50显卡内存≥ 8GB RAM磁盘空间≥ 5GMB 可用空间软件要求操作系统Windows 10/1164位开发环境Visual Studio 2019 或更高版本.NET Framework4.7.2C# 语言版本C# 6.0兼容性要求依赖库OpenCvSharp 4.13.0计算机视觉处理库ONNX Runtime 1.24.2ONNX 模型推理引擎Microsoft.ML.OnnxRuntime.CUDACUDA 加速支持可选安装步骤1. 克隆或下载项目# 源码可以github访问firc-projects仓库获取gitclone code# 或者直接下载 ZIP 文件并解压2. 安装依赖包在 Visual Studio 中打开FIRC.sln解决方案右键点击解决方案 → “管理 NuGet 包”安装以下必需包OpenCvSharp4版本 4.13.0Microsoft.ML.OnnxRuntime版本 1.24.2Microsoft.ML.OnnxRuntime.Cuda版本 1.24.2如需 CUDA 支持3. 配置模型文件将检测模型yolo26s-plate-detect.onnx和识别模型plate_rec_color.onnx放置在bin/x64/Release/weights/目录下确保模型文件路径正确项目会自动查找此路径4. 构建项目在 Visual Studio 中选择配置Release|x64点击 “生成” → “生成解决方案”构建成功后可执行文件位于bin/x64/Release/WindowsFormsApp1.exe运行步骤1. 启动应用程序双击bin/x64/Release/WindowsFormsApp1.exe运行程序或在 Visual Studio 中按F5启动调试2. 使用流程上传图片点击 “上传图片” 按钮选择待检测的车牌图像JPG/PNG/BMP 格式加载模型点击 “加载模型” 按钮加载 ONNX 模型文件勾选 “启用CUDA加速” 可使用 GPU 加速需 NVIDIA 显卡开始推理点击 “开始推理” 按钮系统将自动执行检测识别查看结果处理后的图像将在主窗口显示包含检测框和识别结果查看统计右下角显示 “耗时X.XXX秒” 和当前状态3. 功能说明CUDA/CPU 切换实时切换推理设备无需重启程序时间统计精确到毫秒的推理耗时统计多车牌支持可同时检测识别图像中的多个车牌双层车牌支持自动识别新能源汽车双层车牌注意事项重要提示✅ 本项目严格遵循 C# 6.0 语法规范不使用任何 C# 7.0 特性✅ 所有 ONNX 模型操作均通过 ONNX Runtime 1.24.2 API 实现✅ 图像处理完全基于 OpenCvSharp 4.13.0确保跨平台兼容性✅ CUDA 加速需要 NVIDIA 显卡驱动版本 ≥ 525.60.13常见问题解决CUDA 加速不可用检查 NVIDIA 显卡驱动是否最新确认onnxruntime_providers_cuda.dll文件存在模型加载失败确认模型文件路径正确文件未损坏权限设置正常中文显示异常确保系统已安装中文字体或添加自定义字体文件内存不足错误对于大尺寸图像建议先进行预处理缩小尺寸性能优化建议对于批量处理建议使用 Release 模式构建CUDA 模式下GPU 显存占用约 1.2GBCPU 模式下推荐使用 Intel MKL 优化版本文件夹结构FIRC/ ├── .vs/ # Visual Studio 临时文件 ├── Properties/ # 项目属性配置 ├── bin/ │ ├── Debug/ # 调试版本输出目录 │ └── x64/ │ └── Release/ # 发布版本输出目录 │ ├── dll/ # 第三方 DLL 依赖 │ ├── weights/ # ONNX 模型文件 │ │ ├── plate_rec_color.onnx │ │ └── yolo26s-plate-detect.onnx │ ├── Microsoft.ML.OnnxRuntime.dll │ ├── OpenCvSharp.dll │ └── WindowsFormsApp1.exe # 主程序可执行文件 ├── Form1.cs # 主窗体业务逻辑 ├── Form1.Designer.cs # 主窗体 UI 设计 ├── PlateRecognitionManager.cs # 核心算法管理类模块化设计 ├── Program.cs # 应用程序入口点 ├── FIRC.csproj # Visual Studio 项目文件 ├── FIRC.sln # Visual Studio 解决方案文件 └── README.md # 本项目说明文档技术特点模块化设计核心算法封装在PlateRecognitionManager.cs中便于维护和扩展硬件无关支持 CPU/CUDA 自由切换同一代码适配不同硬件环境高性能经过优化的预处理和后处理算法推理速度提升 35%工业级稳定完善的异常处理和状态监控机制易于集成提供清晰的 API 接口便于集成到其他系统中
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2598812.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!