GithubHelp home page GithubHelp logo

robomasters_base's Introduction

可能有些东西是文字叙述不清,若有疑问,请联系[email protected]

1使用

本程序使用的IDE是code::blocks,在ubuntu下运行可实现所有功能。具备简单的跨平台能力,只需做一些小改动就可以在VS上运行(opencv3.1或2.4皆可),但不可实现串口通信功能。

2构成

  • getConfig.h 读取与写入配置头文件
  • video.cfg 配置文件
  • opticalFlow.h 光流法头文件,用于检测无人机
  • myHead.hpp 自定义头文件,包含装甲检测和串口通信
  • main.cpp 主要功能的实现

3主要功能

  • 装甲检测,详见myHead.hpp中的装甲类Armors,每个成员函数都有注释,这是本程序最关键的一个
  • 无人机检测,主要检测定背景下运动的前景,目前还有些局限
  • 视频记录,在讲DEBUG注释掉后,每次运行都会生成avi文件,不会覆盖,请自行查看删除
  • 串口通信,检测到无人机发送0xee,检测到装甲发送0x11到0xdd,代表第几行第几列,如0x5a表示目标在第5行第10列,由于只把画面分成13行13列,故只用到0xdd。
  • 还有诸多细节请自行探索。

4未完成的工作

我想这才是最中要的。目前基本功能都能实现,但效果并不十分理想,需要改进的有如下几点:

  • 识别准确率的提高,目前在特定光照下效果比较理想,但是光线过强时目标丢失严重。
  • 预测精度的提高,目前的预测仅处于线性预测阶段,近估算出目标速度进行预测,效果基本没有。
  • 针对目标运动过快的问题,可以提升处理速度,尝试采用cuda,也可以增加某种跟踪算法。
  • 关于广角与细节的矛盾:采用广角的分辨率(本次采用的相机分辨率设置成1280x720就会变成广角模式,640x480是普通角度),视角广,但是目标变小了,识别就会变苦难(尤其是在远距离时,这个远距离也就3m远),但是为了处理速度,分辨率1280x720通常ZOOM_FACTOR参数调成0.5,这样分辨率又降下去了,所以解决方法1是采取2个普通角度相机,把图像拼起来;2是采用高分辨率广角,又不损失处理速度
  • 画面分成13行13列,还是有些粗糙,这个可以进一步细分
  • 无人机检测有待加强,这是临时加上去的,并没有仔细打磨

robomasters_base's People

Contributors

obitolee avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.