最近刚刚完毕了一个追踪功能的小车。大体功能例如以下:小车能通过网线给电脑传图(抱歉。临时没搞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作品——视觉追踪小车介绍的更多相关文章

  1. (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍

          首页 视界智尚 算法技术 每日技术 来打我呀 注册     SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...

  2. MicroPython教程之TPYBoard开发板DIY红外寻迹小车

    智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下寻迹小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言 ...

  3. DDOS与DDOS追踪的介绍

    我很早前研究anti-DDOS,其中就有追踪一块,可以在这里介绍一些,但是实际上只有很少技术被投入使用了,大多数都还是依然是实验室的东西,已经投入实用的我单独提出来. 追踪技术有: ·链级测试 (Li ...

  4. WIFI实时监控追踪小车演示视频——安卓端、小车

    文章由@超人爱因斯坦出品,转载请注明出处.         文章链接:          http://hpw123.net/a/qingsongyike/yingyinqu/2014/1019/59 ...

  5. TurnipBit之DIY无线遥控智能小车

    一.准备工作 TurnipBit 开发板 2块 TurnipBit 扩展板 1块 数据线 1条 智能小车器件 1套 电机驱动模块(L298N) 1个 在线可视化编程 点击进入   二.思路设计   2 ...

  6. DIY 作品 及 维修 不定时更新

    手机电池DIY充电宝 2块,优质手机电池加一个升压ic ,焊上一个 usb 母头.比买的强多了. 还能调压,最高调到24V 可以带白光焊台. 更换手机 SIM/SD 卡二合一 贴上高温胶带,吹下来. ...

  7. Blazor Bootstrap 组件库地理定位/移动距离追踪组件介绍

    地理定位/移动距离追踪组件 通过浏览器 API 获取定位信息 DEMO https://www.blazor.zone/geolocations 小提示 注意: 出于安全考虑,当网页请求获取用户位置信 ...

  8. 我的DIY作品

    工欲善其事必先利其器~呵呵~我自己体会从无到有的乐趣~0~ 从Visio到CAD再到Autodesk,你妹的~只有自己才懂~哎~感谢兄弟朋友们的支持! Visio图: CAD图: Autodesk图:

  9. 最新Dashboard设计实例、技巧和资源集锦,视觉和功能两不误,妥妥的!

    Dashboard设计,尽管设计师们叫法各不相同(例如:“数据面板设计”, “控制面板设计”, “仪表盘设计”或“后台界面设计”等等).但,此类设计的最终目都是力求以最直观.最简洁的方式呈现各种信息和 ...

随机推荐

  1. Spring使用注解方式注入多例的方式

    目前Spring+Netty的开发方式这么火热,想把Netty注册成Spring组件就一定得用多例的方式,我不由得想吐槽明明这么常见的需求网上相关博客都少的很,这里给出Spring使用注解注入多例的方 ...

  2. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  3. Android ListView理解之BaseAdapter

    ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组 成: 1.View,用于展示列表,通常是一个xml所指定的. ...

  4. PHP-FPM 不完全指南

    fpm工作流程 fpm全名是FastCGI进程管理器(FastCGI是啥?了解下cgi和fastcgi). fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php ...

  5. Revit API批量布置函数doc.Create.NewFamilyInstances();

    start ] ;);                 if (xyzStart.X > pb.Max.X || xyzStart.Y < pb.Max.Y)                ...

  6. Nginx rewrite URL examples with and without redirect address

    原文地址: http://www.claudiokuenzler.com/blog/436/nginx-rewrite-url-examples-with-without-redirect-addre ...

  7. Java 数组的 12 个最佳方法

    1.  声明一个数组 String[] aArray = new String[5]; String[] bArray = {"a","b","c&q ...

  8. 【JVM】linux上tomcat中部署的web服务,时好时坏,莫名其妙宕机,报错:There is insufficient memory for the Java Runtime Environment to continue.

    =========================================================================================== 环境: linu ...

  9. OAuth:Access to shared resources via web applications

    A web application which wants to gain access to shared resources should redirect the user to a page ...

  10. java基础之static(静态)

    静态的属性.方法等属于类而不是对象. 静态的方法能够由类直接调用,不须要将类实例化. 本篇主要说明:1.态的代码.成员变量要比构造方法先运行. 2. 子类的构造方法会默认去调用父类的不带參数的构造方法 ...