diy作品——视觉追踪小车介绍

近期刚刚完成了一个追踪功能的小车。大体功能如下:小车能通过网线给电脑传图(抱歉,暂时没搞wifi驱动),并在电脑端通过鼠标选中待跟踪的目标,然后小车就开始追踪。由于追踪框有缩放功能,所以也能判断物体离的远近(否则也就不能实现追踪了)。

首先上图,小车车身:









电脑端图传显示界面:





鼠标选中待跟踪区域后,显示了一个跟踪框:




小车运动后,方框仍然追踪先前选中的物体:



接下来是技术的介绍

主控核心:采用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.摄像头画质实在较差,并且摄像头不能自动变焦,导致画面模糊的情况下容易丢失目标;2.帧率,目前也就3~5帧的水平。继续优化TLD算法,等到效果再好一些,就拍视频。


  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值