Skip to content

能量机关识别与预测

任务书

这里是 RoboMaster 视觉组第三次任务任务书,旨在通过本任务,锻炼组员对于实际目标的图像检测能力,并自学拟合相关任务。

在给出的文件中(见群文件),可以直接找到 main.cpp,在其中可以被看到被标注为程序区的部分,其中给出了 src,为 OpenCV 的 cv::Mat 类型,是一张图片。

组员可以直接编译程序:

bash
mkdir build
cd build
cmake ..
make
./task

并看到通过 OpenCV 的 imshow 显示的图像画面。

组员需要完成以下内容:

  • 关注图中 R 标以及五个扇页中不同的一个(为方便辨识,称之为锤子)。
  • 识别 R 标以及锤子,并使用 cv::circle 绘制在 R 标以及锤头(长方形)中心点,将此图片作为结果展示加入在 README 中。绘制 circle 在后续说明中并不要求,即,尽在此处临时作为可视化需求进行展示。
  • 风车的转速为 A\cos{(\omega t + \phi)} + b,这四个数字的真值均可以在 windmill.cpp 中找到。
  • 组员需要使用任意方法对风车转速进行拟合,即,通过之前识别的结果,进一步确认风车的旋转情况,并标定上述公式中的四个未知数。
  • 对于任何方法,涉及迭代或类似情况,求解的初始值需要与真值的绝对值差距在 1 以上。
  • 对于任何方法,为了符合现实情况,一切图像处理操作均需要应用在每一帧(详细分析在末尾表述),禁止跳帧。
  • 组员需要自行写判断程序以及计时程序,当拟合值与真值的差值绝对值在真值 5% 以内时视为收敛。
    • 计时起始在获得第一帧图片之前开始,计时结束在判断收敛之后结束,此为一次计时。
    • 程序最外侧需要再包裹一个循环,循环十次,即,统计十次计时的平均值,并在终端中输出,除此之外不要求任何输出或信息。
  • 组员需要确保自身程序可以直接运行,不上传 build 文件夹,且如有使用除 OpenCV 以外库,均需要在 README 中详细给出安装方法,如无法安装,即要求组员执行运行程序并录制视频证明运行时间。一般情况下组长电脑配置优于大多数同学的配置。

对于拟合相关,推荐使用 ceres 1.14 版本库进行安装,需要前置安装 eigen3。

ceres 库为编译安装。编译安装的基本操作为:

bash
mkdir build
cd build
cmake ..
make
sudo make install

相关内容进一步说明将在一天后发布。

附加说明

Ceres 库安装

Ceres 库统一使用 1.14 版本,在编译安装之前需要安装依赖:

bash
sudo apt update
sudo apt install -y libgoogle-glog-dev libgflags-dev libatlas-base-dev libeigen3-dev libsuitesparse-dev

淘汰机制

本次任务采用刷榜机制,根据上述耗时,在识别准确的情况下进行排序,排名二十名以后的同学将被淘汰。

在不出意外的情况下排行每天更新一次,具体时间视组长时间而定,提交方式仍为发送邮件,邮件标题严格为:RMV03-姓名-月份(两位数)-日期(两位数),不满足标题不计入任何考核成绩,不支持任何形式的拖延或者借口,最终在 10 月 06 日北京时间 23:59 截止,按照最终成绩计算结果。

关于提问与咨询

不要因任何原因以任何形式向任何组员咨询任务完成方式,不要过度打扰组长,组长要休息。

对于跳帧的说明

本任务涉及比较完成速度,对于任何拟合算法,均涉及,在一定程度上,已知点在时间轴上分布得越广,求解越精准。因此存在一种策略,可以每隔若干帧进行一次图像处理,这样一方面降低了图像处理的耗时,而另一方面则更快地到达了一定时间之后的位置,使得拟合算法的效果可以更好。为了符合实际情况,以及速度的考虑因素尽可能仅包含图像处理速度+拟合所需点数,禁止这一操作执行。

Released under the MIT License.