zoukankan      html  css  js  c++  java
  • 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.摄像头画质实在较差,而且摄像头不能自己主动变焦。导致画面模糊的情况下easy丢失目标;2.帧率,眼下也就3~5帧的水平。

    继续优化TLD算法,等到效果再好一些。就拍视频。


  • 相关阅读:
    Delphi 与 DirectX 之 DelphiX(10): TPictureCollectionItem.StretchDraw 绘制到指定矩形
    Delphi 与 DirectX 之 DelphiX(11): TPictureCollectionItem.DrawAdd、DrawSub
    Delphi 与 DirectX 之 DelphiX(13): TPictureCollectionItem.DrawRotate
    Delphi 与 DirectX 之 DelphiX(8): 第一个简单动画
    上周热点回顾(10.2210.28)
    如果云计算
    网站已恢复正常,让大家久等了
    上周热点回顾(10.1510.21)
    10.24,今天是程序员节,祝大家节日快乐
    园豆兑换阿里云代金券 体验阿里云云服务器
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8883803.html
Copyright © 2011-2022 走看看