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

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

首先上图,小车车身:

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

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

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

电脑端图传显示界面:

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

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

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

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

接下来是技术的介绍

主控核心:採用Altera公司的SoC芯片,结合了FPGA和一块双核Cortex-A9处理器。和Xilinx的Zynq架构上类似,开发流程也非常类似。

小车驱动板:採用双L9110S芯片的电机驱动模块。发热少,但电流小。导致小车马力不太足,但在平地上够了。

摄像头:採用OV7725摄像头,这个摄像头640*480分辨率下帧率60帧,但缺点是画质有点差,转接线稍长噪声就大。但手上仅仅有这个摄像头了。仅仅能用它。

片上系统架构。如图:

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

系统主控还是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算法,等到效果再好一些。就拍视频。

上一篇:AQS源码阅读笔记(一)


下一篇:OAuth2.0 用户验证授权标准 理解