Skip to content

Instantly share code, notes, and snippets.

@yxiao1996
Last active January 15, 2018 05:49
Show Gist options
  • Save yxiao1996/c2905025cfe6116e4452a87d3437d5d3 to your computer and use it in GitHub Desktop.
Save yxiao1996/c2905025cfe6116e4452a87d3437d5d3 to your computer and use it in GitHub Desktop.
RoboconVision

Robocon Vision

  • notes for computer vision works in Robocon2018, Beijing Institute of Tech

  • maintainer: Yu Xiao (WeChat: 13621345985)

  • Robocon的短期任务划分

    1. 数据采集和检测器训练

    1.1 数据采集与标注 数据采集与标注是眼前最重要的任务。OpenCV物体检测器的训练需要数据,尝试迁移学习神经网络需要更多的数据,对Kinect相机的测试也需要一部分数据。因此,我建议在将任务划分给不同小组之前,大家先进行一拨数据采集。对于数据量,建议每种球正例至少需要在300个,负例至少1000个。此外,对数据进行标注也是一项体力劳动,建议大家一起完成。

    1.2 OpenCV级联分类器训练 需要熟悉级联分类器的训练流程(OpenCV tutorial),用封装好的程序训练分类器,调参。这部分工作应该不难,单人即可。

    1. Kinect2深度图信息采集与轨迹预测

    2.1 Kinect2深度信息采集 Kinect2的深度信息到底能不能用?这个问题的重要性是显著的。为了测试Kinect2深度信息的可用性,我认为应该用一些手工标注的图像来做实验。我们先连续地拍摄一段球运动的轨迹,手工标注其中球的位置,看看Kinect2中相对位置的深度信息的效果。进一步,可以尝试从中恢复运动轨迹,探索轨迹预测方法。这样可以基本确定用Kinect2进行轨迹预测效果的上限。

    2.2 轨迹预测算法 我们可以先尝试一下卡尔曼滤波器。 这两部分任务感觉工作量还不小,可能需要两三人。主要的工作点在于熟悉Kinect2,数据采集、标注,熟悉并实现滤波算法。

    1. 迁移学习物体检测实验

    3.1 用神经网络做物体检测 用OpenCV的级联分类器做物体检测可能不是最好的方法,神经网络可能提供更加的准确性。作物体检测的神经网络近年发展迅速,可以应用到Robocon的任务上。具体可以使用Darknet、Darkflow等项目中实现好的模型进行训练。

    3.2 迁移学习 迁移学习指的是用标准数据集预训练的模型做初始化,使用自己的数据精细调整模型参数的方法。一般地,迁移学习比从随机初始化开始训练模型需要更少的数据。 熟悉神经网络的各种物体检测方法,并且用迁移学习方法训练他们是工作量很大的。我感觉我们可以集中于一种物体检测方法,尝试对它进行迁移学习。这个过程中可能有不少困难,需要比较坚韧的人来完成。

Before you Start

在开始工作之前,请先为你的电脑配置工作需要的环境。

  • 我们需要Ubuntu系统

  • 我们目前的顶层代码均采用Ubuntu平台,如果要参与我们的程序开发工作,使用Ubuntu系统是几乎不可避免的。你可以采用以下2种方式中的任意一种为你的计算机配置Ubuntu操作系统。

    • 虚拟机
      1. 如果你仅是希望把Ubuntu用于本次Robocon工作,我建议你使用虚拟机,他们容易可以容易地从你的电脑中删除;
      2. 首先你需要确认你的计算机是支持并开启虚拟化的,这可以在BIOS里看到;
      3. 目前可用的虚拟化软件十分广泛,你可以选用VirtualBox, VMware等等;(我用的是VMware Player 12,它是VMware公司制作的免费软件,应该足够任务需要)
      4. Ubuntu系统的镜像文件可以容易地从官方网站获得;(建议使用16.04版本)
      https://www.ubuntu.com/download
      
    • 双系统
      1. 如果你未来的工作也有用到Ubuntu的地方(很有这种可能,如果你做我们这行的话),双系统比虚拟机更加稳定的选择;(如果你可以舍去Windows上一些功能的话,单纯的Ubuntu计算机是更好的选择)
      2. 如果你不希望用Ubuntu覆盖掉你当前的操作系统(我猜你肯定不想),你需要先为Ubuntu系统划分一块独立的硬盘空间;(建议这块空间应在60G以上,我选择了200G)
      3. 准备好一块富余的U盘,把Ubuntu系统的镜像烧写在U盘里; 关于镜像烧写软件,可以有广泛的选择。我采用的是UltraISO,你可以在这里找到它:
        https://cn.ultraiso.net/
        
      4. 通过BIOS从U盘启动计算机,安装Ubuntu双系统;(此处你可以参考网络上的很多博客文章,它们会仔细地指导你为Ubuntu设置合适的分区)
@yxiao1996
Copy link
Author

test file

  • test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment