×

处理电子产品的ESD保护项目

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-07-13

48674

分享资料个

描述

作为 Edge Impulse 专家网络的一部分,Seeed Studio 慷慨地提供了一些reComputer Jetson-10-1-H0来开发示例项目并按其步调运行硬件。

Seeed reComputer 使用 Jetson Nano 4GB 和 16GB eMMC(稍后会详细介绍),外壳非常光滑。它已经加载了 Jetpack 4.6 和 Ubuntu 18.04 LTS,基本上可以开箱即用。

对于我的项目,我自愿制作静电放电 (ESD) 风险标识符,以防止在处理电子产品时发生潜在的 ESD 故障。ESD 会导致难以识别的电子设备损坏,并可能导致未来几个月出现故障,从而导致组织需要昂贵的保修维修或召回费用。

我的项目的前提是在电子装配工的工作台上安装一个摄像头。摄像头将连接到 Seeed Studio reComputer(通过 CSI 端口或通过 RTSP 流),该计算机将运行Edge Impulse 的 FOMO对象检测架构,以识别操作员是否佩戴腕带,并识别任何异物(即戒指或手表)操作员在处理敏感电子设备时不应佩戴。

poYBAGSAftWANt4UAADTTOgxCgM974.png
需要标记训练数据(对象检测见“Labeling queue”标签
 

完成标记后,我得到了每个类别的大约 100 个样本。对于更强大的模型,我当然会推荐更多,但对于概念证明,这个数量非常有效。注意:我确实看到了区分手表和腕带的一些挑战,因为它们看起来非常相似。更多的数据和多样化的样本将有助于消除这一挑战。有时我会在测试期间看到腕带被归类为手表。

pYYBAGSAfteAInSLAAAwxMIcFK4904.png
戒指明显不同,但手表和腕带彼此靠得更近。
 

由于我的冲动,我选择了 160x160 的图像并使用了 Edge Impulse 的 FOMO。这对我的左手和右手有很好的视野。然后我可以在分类器中运行这两个图像。如果我只对一张图像进行分类,由于 FOMO 需要等维图像,图像会被挤压并且无法看到双手。

pYYBAGSAfuGAHT9aAAAPtVMXJZA315.png
调试图像显示如何将一个帧拆分为两个图像以进行推理。
 

我第一次尝试使用 FOMO 创建模型时,结果很糟糕。原来我没有足够的数据。我怎么强调都不为过,更有效的数据对模型的准确性很重要。一旦我添加了更多数据,模型的 F1 分数就会提高。

poYBAGSAfuOAf5dTAABeAaYcodg615.png
每个类别只有 100 个样本,该模型实际上表现相当不错
 

对结果感到满意后,我将模型部署为 Linux 二进制文件(.eim 文件)。我的 Edge Impulse 项目的公共版本可以在这里找到

将模型保存到 Jetson reComputer 后,我便开始编码。这两种选择对我来说都很有效。我在让相机驱动程序工作时遇到了一些小问题(nanocamera 最终为我工作)但是一旦我完成了这些,它真的很有趣而且简单。

这个项目很有趣。我已经使用 Jetson Nano 一年多了,如果你能解决驱动程序和依赖性问题(它们似乎在我使用 Nano 的每个项目中都会出现),它真的很强大而且使用起来很有趣。我什至还没有使用过 DeepStream 或任何 NVIDIA 工具,所以我期待有一天能尝试一下。

内存限制很不幸,占用了我一些时间,我希望将来能解决这个问题。我什至不得不在 Nano 上进行开发,因为我没有足够的空间来安装 VS Code(我选择的 IDE)。无论如何都不是一个阻碍,这仍然是一个非常有能力的硬件。

我认为这个项目将来可以进一步扩展。如果存在 ESD 风险,您可以添加一个 Twilio 界面来向主管发送短信。可以对不同类型的物体进行分类(也许确保穿着 ESD 工作服?)而我更兴奋的是在Edge Impulse Imagine 2022上宣布的FOMO-AD (AD 代表异常检测)它要到 2023 年才能准备就绪,但我认为有很多机会使用该技术来识别图像中的正确和错误。我很高兴能测试它的功能!

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'处理电子产品的ESD保护项目',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);