×

如何使用DSP和FPGA实现相融合图像处理技术的智能相机

消耗积分:0 | 格式:rar | 大小:2.99 MB | 2020-08-03

分享资料个

  智能相机是近年来机器视觉发展的一个新方向,其所具有的潜力注定智能相机将是未来视觉检测方案的主流。然而在国内,智能相机的发展方兴未艾,关键技术基本处于探索阶段,同国外的大公司,如Cognex,Matrox,Basler 等相比,国内为数不多的智能相机研发商,如大恒,凌云,视觉龙,嘉恒中自等都鲜有自己的智能相机产品,更多的是代理推销国外的产品,市场也基本被国外公司所垄断。本文在研究了智能相机国内外的发展状况下,综合前期的研究成果,在充分研究了目前的两款主流处理芯片DSP 和FPGA 做数字信号处理所具有的各自特点的基础上,提出了一种基于DSP+FPGA 相融合图像处理技术的智能相机方案,并设计了系统原理图,制作了样机。针对图像预处理中应用极为广泛的邻域算法,详细地讲解了其FPGA 实现的数据流程控制方法,并以具体的sobel 边缘检测算法为例,给出了其检测的实验效果图。针对芯片定位的应用,在实验室条件下搭建了二维机械臂模拟系统,并对系统进行了静态标定。同时深入研究了芯片定位的图像预处理算法和高级检测算法,并通过实验对系统的误差进行了分析。本文的主要工作内容如下:

  (1) 研究了机器视觉国内外的发展状况,分析了作为机器视觉两大支柱的在线视觉检测系统和智能相机所具有的各自特点,总结了智能相机的优势,进而深入分析了智能相机实现的关键技术要求。

  (2) 在实验室前期研究成果的基础上,研究了图像处理算法的特点,分析了现有视觉方案的优缺点。在充分研究了DSP 和FPGA 所具有的各自特点情况下,提出了一种基于DSP 和FPGA 分层图像处理技术的视觉方案,并设计了系统原理图,制作了样机。

  (3) 针对图像预处理中应用极为广泛的邻域算法,编程实现了其FPGA 数据流程控制,并针对具体的sobel 边缘检测算法,详细介绍了每个模块的功能和状态图,并给出了实验检测的效果图,同时对这种图像数据流的控制方法进行了速度测试和评估。

  (4) 研究了FPGA 的多级图像预处理方法,分析了按行处理的图像处理算法的局限性。针对芯片定位的应用,研究了其图像预处理和高级图像处理算法,并通过Matlab、OpenCV 等工具对算法进行了仿真实验。研究了DSP 和FPGA 多级流水线结构。

  (5) 在实验室条件下搭建了芯片定位机械臂模拟系统,并对系统坐标系进行了静态标定,在实验的基础上对系统的误差进行了分析。

  机器视觉的发展从最早的基于PC 的视觉系统到现在的智能相机概念的提出,体现了其发展的两个大方向。但无论是哪种检测系统,整体的结构都具有相似性,系统都包括光源、光学成像系统,图像采集单元、图像处理单元、图像处理软件库、人机交互界面和输入输出口[9]。只是前者采用基于计算机的图像处理技术,而智能相机则应用了最新的处理器及大容量存储技术,具有更高的集成度。如图1-1 所示是机器视觉系统的系统框图。以下将对系统各部分功用做简要介绍。

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

评论(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:'如何使用DSP和FPGA实现相融合图像处理技术的智能相机',//标题 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);