物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别

这篇具有很好参考价值的文章主要介绍了物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近一段时间在研究AI技术在.Net平台的使用,目前AI绝大部分是使用Python开发,偶然一次在头条看到一篇ML.NET的介绍,是Net平台下开放源代码的跨平台机器学习框架。ML.NET详细介绍

https://dotnet.microsoft.com/zh-cn/apps/machinelearning-ai/ml-dotnet

物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别

 文章来源地址https://www.toymoban.com/news/detail-855153.html

一开始学习的是图像分类和目标检测,整个ML.NET学习过程中走了不少弯路;目标检测最开始使用VS插件ML.NET Model Builder进行数据训练,发现执行效率低下。使用Vott进行图片标注发现也有不少bug,视频文件标注导出后文件路径识别不了。最后,找到了一个效率很高的方式,使用yolo导出onnx模型,yolo数据集使用Python训练和导出onnx,最后在.Net下进行调用即可。

物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别

 

一、车牌识别实现基本步骤

1. 数据标注,可以使用LabImg或其他标注工具

2.训练数据,训练车牌样式,训练文字和颜色ORC识别

3.导出onnx格式模型

4.使用ML.NET调用模型

二、整合到IoTBrowser

IoTBrowser增加Dynamic Api插件框架,另外找了一个Yolov5Net包,默认支持Net6,后面移植到.Net Framework下。

物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别

 

C#调用代码很简单

        public AjaxResponse CarNo(string inArgs) {
            var ar = new Infrastructure.Web.AjaxResponse();
            var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(inArgs);
            var path = string.Empty;
            var beginTime = DateTime.Now;
            if (obj.path != null)
            {
                path = obj.path;
            }
            var image = System.Drawing.Image.FromFile(path);
            var predictions = yolo.Predict(image);

            if (predictions.Count < 1) {
                ar.Error("没有检测到车牌");
                return ar;
            }
            foreach (var prediction in predictions) // iterate predictions to draw results
            {
                double score = Math.Round(prediction.Score, 2);
                var labelRect = prediction.Rectangle;
                var twoLayers = (labelRect.Height / labelRect.Width) > 0.5;
                //定义截取矩形
                System.Drawing.Rectangle cropArea = new System.Drawing.Rectangle((int)labelRect.X < 0 ? 0 : (int)labelRect.X, (int)labelRect.Y < 0 ? 0 : (int)labelRect.Y, (int)labelRect.Width, (int)labelRect.Height);
                //定义Bitmap对象
                System.Drawing.Bitmap bmpImage = new System.Drawing.Bitmap(image);
                //进行裁剪
                System.Drawing.Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
                //保存成新文件
                //bmpCrop.Save(Path.Combine(path, (fileName + "_" + dtNow + num + "_clone.png")), ImageFormat.Png);

                var yoloOcrpredictions = yoloOcr.Predict(bmpCrop);
                if (yoloOcrpredictions.Length > 0)
                {
                    ar.Data = (new {carNo = yoloOcrpredictions[0] ,color = yoloOcrpredictions[1] });                    
                }
            }
            return ar;
        }
        

  

js端调用更简单

var filePath ="";
var ar = await dds.dynamic.api.exectuce({
	pluginName: "CarDetectApi",
	actionName: "CarNo",
	actionData: JSON.stringify({
		path: filePath
	})
})
if (ar.Success && ar.Data) {
	var data = ar.Data;
	self.resultInfo = data.carNo + "--" + data.color
} else {
	self.resultInfo = ar.Message;
}

  

 

三、实现效果

物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别

 

支持的格式:

1.图片绝对文件路径

2.RTMP协议取帧识别

3.Mp4或ts文件取帧识别

 

到了这里,关于物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【解决方法】浏览器网页界面显示未连接到互联网

    一、问题描述 浏览器打开一个网站,显示 未连接到互联网 ,但是我的以太网已正常连接,解决方法是: 检查代理服务器地址 。 二、解决步骤 1、打开电脑 控制面板 的 网络和Internet 2、点击 Internet选项 3、选择 连接 → 局域网设置 4、将 代理服务器 中的 为LAN使用代理服务器

    2024年02月11日
    浏览(43)
  • 解决联网时自动打开浏览器转到必应msn网址的问题

    开机后或者断网重连之后,系统自动打开默认浏览器(不管是IE还是谷歌,或其他的浏览器)网址为http://go.microsoft.com/fwlink/?LinkID=219472clcid=0x409接着转到http://cn.bing.com/ 或者 https://www.msn.com/ 重置IE步骤: 关闭所有Internet Explorer窗口。 按下 WIN+R 组合键,输入框中输入 inetcpl.cpl ,

    2024年02月11日
    浏览(159)
  • 【记录日常】解决Mac电脑能联网但是浏览器显示无法连接网络的问题

    问题描述: 微信、qq等软件都能联网,但是使用Chrome、Safari打开都显示无法连接网络。 尝试后仍然没成功的方法: 1.忘记当前网络,重新连接wifi 2.重启电脑 3.重新修改dns 解决的方式: 后来是看到Chrome的提示,关闭代理,尝试后解决。 路径:选择“网络偏好设置”——“高

    2024年02月12日
    浏览(80)
  • springboot整合https使用自签名证书实现浏览器和服务器之间的双向认证

    效果描述: 本地环境  两台以上电脑  可以实现安装客户端证书的电脑可以访问springboot启动项目,没有安装客户端证书的电脑无法访问springboot启动项目 1.操作:需要安装openssl工具 工具包:Win64OpenSSL_Light-3_3_0.exe 或者Win64OpenSSL_Light-3_3_0.msi  官网:[ Downloads ] - /source/index.html

    2024年04月28日
    浏览(50)
  • 体验DIY物联网浏览器(谷歌内核兼容性好支持H264视频播放)

    一、功能及快捷键说明(说明32位兼容64位,更多版本往下看) 功能及快捷键图说明,不可多得的浏览器,支持右键自定义菜单... 说明:以上功能图快捷键是基于最新版的调整制作,如有差异以实际版本为准,其他问题请留言    二、下载安装包 2.1 100.0.230版本 9i物联网浏览

    2024年02月09日
    浏览(57)
  • 利用浏览器扩展程序搭建免费聊天机器人

    您的“关注”和“点赞”,是认可,是支持,是动力。 如意见相佐,可留言。 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。 本文首发在老羊博客网站平台。 《老羊博客》,网址:https://www.laoyangboke.com 老羊博客是一个专注于科技、信息技术和计算机

    2024年02月12日
    浏览(43)
  • 【Python & 机器学习 基础】绘制 sigmoid 函数曲线 | exp:以e为底的指数函数(科普向)| 区块链 面试题:区块链技术中的“区块链浏览器”是什么?有什么作用?

      “谁都了解生存往往比命运还残酷,只是没人愿意认输,我们都在不断赶路,忘记了出路。”     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿   🌟[3] 2022年度博客之星人工智能领域

    2024年02月06日
    浏览(47)
  • 养号自动化,指纹浏览器和RPA机器人解除烦恼

    在这个充满科技魔力的时代,社交媒体已经成为人们生活的一部分,而Facebook更是我们分享欢乐、联络亲友的重要平台。然而,随之而来的是一个棘手的问题:如何保持账号的活跃度,而又不被沉重的养号工作压垮?别担心,ClonBrowser指纹浏览器和RPA机器人将为你解除这一烦恼

    2024年02月11日
    浏览(45)
  • 9i物联网浏览器(cef_114.2.110&114.2.100支持H264视频)WinForm-CefSharp114(5735)视频版本体验

    更新:2023.6.25 版本: Cef_114.2.110和114.2.100 +chromium- 114.0.5735.134 的32位和64位 说明:支持图片,mp3,mp4(H264)多媒体 测试环境:windows server 2019(其他环境没测,一般问题.NET4.5.2+及vc++运行库问题) 测试网址:www.html5test.com 声明 :本博是交流学习的内容,应用案例定制版浏览器

    2024年02月11日
    浏览(49)
  • Python学习笔记——selenium驱动360极速浏览器

    右上角三横杠-帮助-关于360极速浏览器 (版本低可以选择更新)

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包