diy作品——视觉追踪小车介绍
最近刚刚完毕了一个追踪功能的小车。大体功能例如以下:小车能通过网线给电脑传图(抱歉。临时没搞wifi驱动)。并在电脑端通过鼠标选中待跟踪的目标,然后小车就開始追踪。由于追踪框有缩放功能。所以也能推断物体离的远近(否则也就不能实现追踪了)。
首先上图,小车车身:
电脑端图传显示界面:
鼠标选中待跟踪区域后,显示了一个跟踪框:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
小车运动后。方框仍然追踪先前选中的物体:
接下来是技术的介绍
主控核心:採用Altera公司的SoC芯片,结合了FPGA和一块双核Cortex-A9处理器。和Xilinx的Zynq架构上类似,开发流程也非常类似。
小车驱动板:採用双L9110S芯片的电机驱动模块。发热少,但电流小。导致小车马力不太足,但在平地上够了。
摄像头:採用OV7725摄像头,这个摄像头640*480分辨率下帧率60帧,但缺点是画质有点差,转接线稍长噪声就大。但手上仅仅有这个摄像头了。仅仅能用它。
片上系统架构。如图:
系统主控还是ARM端,它嵌了Linux操作系统。上电首先载入VDMA的驱动(实际上就是分配可用的DDR缓存区)。FPGA部分採集摄像头的初始像素。完毕RGB像素的拼接,经过ST模块转换成ST总线,经过图像缩小、灰度化,进入到VDMA。此处的VDMA就是一个ST总线转MM(memory map),由于ARM端的DDR控制器和FPGA端的接口就是MM总线。FPGA端和ARM端通过VDMA能够共用一片内存。这样FPGA预处理后的图像就能够给ARM端接着处理。
Linux部分跑了一个TLD的追踪算法,关于TLD的算法原理本人水平有限,只是多介绍。推荐看这人的博客:http://blog.csdn.net/zouxy09/article/details/14222605。TLD的框架就是追踪、检測、学习三者一体。对于长时间的目标追踪,效果非常好,缺点就是速度慢。本人在TLD的代码里,将检測窗体数量。以及学习样本库的数量做了些限制,达到了一定程度上提高帧率的目的。
Linux端通过网线给电脑传输图像,而且电脑也能够通过鼠标画框。将框的信息发给ARM。协议是UDP。
终于。小车追踪效果比预想的差一点,主要原因有两个:1.摄像头画质实在较差,而且摄像头不能自己主动变焦。导致画面模糊的情况下easy丢失目标;2.帧率,眼下也就3~5帧的水平。
继续优化TLD算法,等到效果再好一些。就拍视频。
diy作品——视觉追踪小车介绍的更多相关文章
- (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍
首页 视界智尚 算法技术 每日技术 来打我呀 注册 SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...
- MicroPython教程之TPYBoard开发板DIY红外寻迹小车
智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下寻迹小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言 ...
- DDOS与DDOS追踪的介绍
我很早前研究anti-DDOS,其中就有追踪一块,可以在这里介绍一些,但是实际上只有很少技术被投入使用了,大多数都还是依然是实验室的东西,已经投入实用的我单独提出来. 追踪技术有: ·链级测试 (Li ...
- WIFI实时监控追踪小车演示视频——安卓端、小车
文章由@超人爱因斯坦出品,转载请注明出处. 文章链接: http://hpw123.net/a/qingsongyike/yingyinqu/2014/1019/59 ...
- TurnipBit之DIY无线遥控智能小车
一.准备工作 TurnipBit 开发板 2块 TurnipBit 扩展板 1块 数据线 1条 智能小车器件 1套 电机驱动模块(L298N) 1个 在线可视化编程 点击进入 二.思路设计 2 ...
- DIY 作品 及 维修 不定时更新
手机电池DIY充电宝 2块,优质手机电池加一个升压ic ,焊上一个 usb 母头.比买的强多了. 还能调压,最高调到24V 可以带白光焊台. 更换手机 SIM/SD 卡二合一 贴上高温胶带,吹下来. ...
- Blazor Bootstrap 组件库地理定位/移动距离追踪组件介绍
地理定位/移动距离追踪组件 通过浏览器 API 获取定位信息 DEMO https://www.blazor.zone/geolocations 小提示 注意: 出于安全考虑,当网页请求获取用户位置信 ...
- 我的DIY作品
工欲善其事必先利其器~呵呵~我自己体会从无到有的乐趣~0~ 从Visio到CAD再到Autodesk,你妹的~只有自己才懂~哎~感谢兄弟朋友们的支持! Visio图: CAD图: Autodesk图:
- 最新Dashboard设计实例、技巧和资源集锦,视觉和功能两不误,妥妥的!
Dashboard设计,尽管设计师们叫法各不相同(例如:“数据面板设计”, “控制面板设计”, “仪表盘设计”或“后台界面设计”等等).但,此类设计的最终目都是力求以最直观.最简洁的方式呈现各种信息和 ...
随机推荐
- Spark RDD的fold和aggregate为什么是两个API?为什么不是一个foldLeft?
欢迎关注我的新博客地址:http://cuipengfei.me/blog/2014/10/31/spark-fold-aggregate-why-not-foldleft/ 大家都知道Scala标准 ...
- 一个例子来看C#泛型是如何登场的
有这样一个有关汽车的类. public class Car { public int ID { get; set; } public string Make { get; set; } } 现在,在客 ...
- concat函數 函數concat 可以用來合拼兩個或以上的字串。
12. “Mexico 墨西哥”的首都是”Mexico City”. 顯示所有國家名字,其首都是國家名字加上”City”. concat函數 函數concat 可以用來合拼兩個或以上的字串. : SE ...
- poi workbook转成流
try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); workbook.write(bos); byte[] barray = ...
- Swift:playground
在介绍Playground之前,我先罗列一些本人认为有点重要然而零碎的知识点. 1. Swift语法.每句话之后不用加分号.但也能够加分号.但假设写在一行的话.必须加分号. 2. Swift严格要求变 ...
- iOS开发UI篇章 15-项目中的常见文件
iOS开发UI篇-常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products目录:主要用于mac电脑开发的可运行文件.ios开发用不到这个文件 2.frameworks目录主要用来 ...
- Linux 内核网络协议栈 ------sk_buff 结构体 以及 完全解释 (2.6.16)
转自:http://blog.csdn.net/shanshanpt/article/details/21024465 在2.6.24之后这个结构体有了较大的变化,此处先说一说2.6.16版本的sk_ ...
- 转换java keytools的keystore证书到OPENSSL的PEM格式文件
背景:原先业务使用的前端为haproxy,直接端口转发至tomcat,后端进行ssl连接,所以当时生成的步骤如下 ? 1 2 •生成密钥对:keytool -genkey -alias tomcat- ...
- dwz 分页 bug (选回 combox 第一个值时不执行 onchange)
先看一下官方的测试: 官方的演示有两个 bug 一个是combox数字一直不变,二是当选回第一个值时不执行 onchange 事件. 经过firebug调试,这是一个bug,传到后台的参数没有得到及时 ...
- Android之greenDao,一个orm的使用
转自:http://blog.csdn.net/krislight/article/details/9391455 greenDaoMaster的学习研究 分类: 心得笔记 2013-07-20 16 ...