• Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    C++
  • Created about 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

智能系统实验室-2018新人暑期培训计划

智能系统实验室-2018新人暑期培训计划

1. 课程目标

随着团队扩大和节奏加快,目前依靠大家自学的方式学习速度已经远远满足不了需求,根据之前的共识和这段时间的思考,我们整理了本方案,计划在明年研究生入学前开展学前强化学习班,旨在快速引导新生入门相关领域,同时也给其后续学习提供系统性的资料。 而在这之前,我们需要号召高年级学生系统性地整理相关资料,通过协作方式完善后试讲,确认OK后整理到一个统一的文件体系中。

协作gitlab:http://192.168.1.3/PI_LAB/SummerCamp2018

课程针对学员,有针对性地提升以下能力:

  • 基础能力:所有人了解基础的编程知识,注意事项,了解常用工具的使用方法;
  • SLAM :学习SLAM的基础知识,并带领学员一步一步自己实现一个简单的ORBSLAM;
  • AI :学习AI相关的基本知识,并通过一些实例让大家自己实现常见的功能;

2. 课程列表

所有的课程被归类成以下几个Topic:

  • tool : 包含常用的环境,工具
  • cpp : 包含C++程序入门的一些课程
  • python : 包括python基本使用教程
  • slam : SLAM入门课程
  • ai : AI入门课程

每个Topic都被分成约3个学时Lessons,每个Lesson可以是Lecture,Tutorial或Lab:

  • Lecture : 演讲课,主讲者进行演讲而学员以听为主,课程应尽量生动易懂,同时建议学员根据自身情况预习并在Lecture课程中做好记录;
  • Tutorial: 讨论课,课程建议包含约一小时的内容讲述和两小时的学员实践练习讨论,建议学员根据自身情况预习;
  • Lab : 实验课,包含少量内容介绍,主体为操作学习的课程;

Lesson中途可以适当休息,或者安排其他活动。以下是全部Lessons的列表和简要说明:

课程文件夹 课程描述 课程类型 主讲人
tool/linux Linux入门,常用工具介绍,Bash命令ShellToolkit,cd,ls,echo,apt,ssh,dpkg,locate等,Bash编程实践 Tutorial
tool/git git工具介绍和协作开发实践 Lab 张咪
tool/markdown markdown语言介绍和使用实验课程 Lab 马文科
tool/notebook ipython notebook介绍和使用实验课程 Lab 冷鹏宇
tool/cmake 介绍编译原理,引入CMake,并练习使用cmake进行编译,介绍PICMake,练习使用PICMake进行编译,Linux下编写简单包含三方库本地库的工程,并分别用Makefile,qmake,CMake编译 Lab 王伟
tool/latex latex语言介绍和学习实践 Lab 张咪
tool/docmanage mendeley等文档管理软件 Lab 张咪
tool/docker docker入门介绍 Lab 赵勇
cpp/helloc C语言入门回顾,这里主要介绍与C语言重叠的部分,包含宏定义,变量,函数,循环体,指针,函数指针,数组,结构体,联合体等部分,编写简单函数库,并使用Makefile进行编译 Tutorial 杨君
cpp/hellocpp C++语言入门回顾,介绍引用,重载,类成员函数,继承多态,编写简单函数库,并使用Makefile进行编译,引入qmake,Debug Tutorial 贺宇
cpp/stl STL介绍,引入模板类,介绍vector,list,map,set等,练习编写自己的list实现 Tutorial 程诚
cpp/cpp11 C++11标准介绍,引入多线程,智能指针,原子锁,信号量等概念,练习多线程中使用智能指针,原子锁,信号量等 Tutorial
cpp/style 介绍GoogleCppStyle,强调编程风格,练习自己实现一个智能指针模板类,大家讨论各自的代码中存在什么问题 Tutorial 马文科
cpp/qt 介绍基本的Qt界面编程,并带着学员实现一个简单的界面程序 Tutorial 王伟
cpp/ros 介绍ROS机器人操作系统,并带着学员实现一个简单的ROS通信程序,课程要求学员预习并提前安装ROS库 Tutorial 马文科
cpp/opengl 课程介绍基本的OpenGL操作,并实践显示简单的模型元素 Tutorial
cpp/effectivecpp 介绍EffectiveC++中的部分内容,并带着学员反思之前程序中存在的问题 Tutorial
python/hellopython 编程语言特性,程序结构,基础技术框架,编程风格,对象特性,核心数据类型,字符串,列表,元祖,字典,表达式与运算符 Tutorial 李清
python/more if,while,for,迭代器,生成器,文件对象,os模块,os模块常用接口,函数,类,继承,重载 Tutorial 李清
python/module 模块基础,模块机制,异常处理,常用科学计算模块 Tutorial 王磊
slam/summary 初识SLAM,什么是SLAM,SLAM研究包含什么内容,如何开展SLAM研究,SLAM的未来 Lecture 张咪
slam/cv 图像处理相关,opencv入门介绍 Tutorial 王伟
slam/geo2d3d 二维,三维中的点,线,面和线性变换,思考题讨论 Tutorial
slam/opt_linear 线性优化入门及实例,利用SVD分解和Eigen库求解最小二乘问题实验,并引入Ransac提升拟合效果 Tutorial 程诚
slam/match 图像匹配,光流,特征点匹配,并求解二维对应warp Tutorial 程诚
slam/camera 介绍各种传感器,相机模型,畸变模型和标定工具 Tutorial 杨君
slam/liegroup 三维中的李群和李代数,此章理论有深度,建议预习 Lecture 范帝凯
slam/opt_nolinear 非线性优化入门及实例,Ceres实例求解标定参数 Tutorial
slam/orbslam ORBSLAM代码结构解析 Lecture
slam/gorbslam ORBSLAM的GSLAM实现,将在后续的课程中带着大家逐步完善它 Tutorial
slam/initialize 两帧重建介绍及实验,完成GSLAM-ORBSLAM中的初始化并显示 Tutorial
slam/pnp PnP方法介绍和代码实现 Tutorial 程诚
slam/triangulate 地图生成和三角化 Tutorial
slam/dataassociation 地图数据关联 Tutorial
slam/ba BundleAdjust方法介绍和代码实现 Tutorial 程诚
slam/loopdetect 回环检测介绍和代码实现 Tutorial
slam/icp ICP方法和代码实现 Tutorial 王伟
slam/posegraph 位姿图优化 Tutorial
slam/direct 直接法 Lecture
slam/vio VIO Lecture 范帝凯
slam/vins VINS代码解析 Lecture
slam/mapfusion 讲解MapFusion框架,并实践编写一个最简单的Map2DFusion插件 Tutorial 王伟
slam/dense 讲解稠密重建的方法,并时间编写一个最简单的稠密重建程序 Tutorial 杨君
slam/mesher 讲解如何构建三角网格模型并进行纹理贴图 Tutorial 张咪
ai/summary 初识人工智能,什么是人工智能,如何开展人工智能研究,人工智能的未来 Tutorial 童品模
ai/mlbasic 机器学习基础,机器学习涉及的基本点 Tutorial 王磊
ai/probability 机器学习中涉及的统计概率以及信息论相关知识点 Tutorial 韩鹏程
ai/nn 神经网络基本介绍 Tutorial 童品模
ai/bp 神经网络反向传播算法,简要包括随机梯度下降法等优化方法 Tutorial 李清
ai/tricks 关于神经网络的一些技巧包括激活函数、dropput、正则化、loss函数定义选择 Tutorial 冷鹏宇
ai/optimizer 深度模型中的优化介绍 Tutorial 冷鹏宇
ai/caffe 使用教程,简单源码分析,部分API接口讲解,python接口说明 Tutorial 韩鹏程
ai/tensorflow 使用教程,简单源码分析,部分API接口讲解 Tutorial 王磊
ai/cnn CNN介绍和实验 Tutorial 冷鹏宇
ai/lstmRNN lstm以及rnn序列神经网络介绍 Tutorial 王磊
ai/svmPCA SVM介绍和实验,线性因子模型介绍 Tutorial 李清
ai/dlcore 自编码器,表示学习,结构化概率模型,蒙特卡罗方法,配分函数,近似推断 Tutorial 韩鹏程
ai/rbmDBN 无监督深度学习技术DBN原理介绍,生成模型介绍 Tutorial 王磊
ai/GANs GANs基本原理和应用介绍 Tutorial 韩鹏程
ai/ReforceLearning 强化学习基本原理介绍 Tutorial 李清
ai/yoloFastRCNN yolo原理与实验,FastRcnn经典框架及技术要点介绍 Tutorial 冷鹏宇
ai/largeScaleLearning 大规模深度学习涉及的技术点,GPU,分布式,模型压缩,动态结构,FPGA硬件 Tutorial 韩鹏程

3. 学习课表(2018-07-08月)

学习课表是根据情况从课程列表选择一部分课程进行讲述,对于未开课课程请学员根据自身情况自学。以下课程中的基础类为必修,对于SLAM方向学员来说AI为选修,对于AI方向学员来说SLAM为选修。

日期 上午(09:00 - 12:00) 下午( 14:30 - 17:30) 晚上(19:00 - 22:00)
1 tool/linux tool/git
2 tool/markdown cpp/helloc tool/notebook
3 slam/summary cpp/hellocpp tool/cmake
4 ai/summary cpp/stl python/hellopython
5 slam/geo2d3d cpp/cpp11 python/more
6 ai/mlbasic cpp/style python/module
7 slam/opt_linear ai/probability
8 slam/match ai/nn
9 slam/camera ai/bp
10 slam/liegroup ai/tricks
11 slam/opt_nolinear ai/optimizer
12 slam/orbslam ai/caffe
13 slam/gorbslam ai/tensorflow
14 slam/initialize ai/cnn
15 slam/pnp ai/lstmRNN
16 slam/triangulate ai/svmPCA
17 slam/ba ai/dlcore
18 slam/loopdetect ai/rbmDBN
19 slam/icp ai/GANs
20 slam/posegraph ai/ReforceLearning
21 slam/direct ai/yoloFastRCNN
22 slam/vio ai/largeScaleLearning
23 slam/vins cpp/effectivecpp
24 tool/latex tool/docmanage

4. 课程准备说明

每个课程都包含:

  • doc
  • README.md (包含课程介绍,[说明],[大作业])

注意事项:

  • 请控制每个Lesson上课时间不多于3小时

5. TODO

5.1. 文档整理方式&规则

  • 如何更容易上手?

5.2. 上课模式?

按课表进行上课or(每天固定时间答疑)or每周固定时间答疑

5.3. README模板

# 课程名称
## 1. 本课程介绍
README是用来给读者准备的课程说明

## 2. 如何学本课程?
可以参考示例/cpp/stl课程的写法.
每个README都应包含且仅包含四个标题.

## 3. 课程目录

## 4. 课程作业
无

More Repositories

1

GSLAM

A General Simultaneous Localization and Mapping Framework which supports feature based or direct method and different sensors including monocular camera, RGB-D sensors or any other input types can be handled.
C++
908
star
2

Map2DFusion

This is an open-source implementation of paper: Real-time Incremental UAV Image Mosaicing based on Monocular SLAM.
C++
295
star
3

Svar

A Tiny Modern C++ Header Brings Unified Interface for Different Languages
C++
136
star
4

PICMake

你还在学CMake的过程中毫无头绪吗?你还在为复杂程序库依赖发愁吗?你是否觉得原生CMake的编写冗余而低效?那就快来学习和使用PICMake吧!只需要一行,无论是可执行,动态库还是静态库,轻松搞定!同时高效支持多目标,复杂库的编译安装,从此告别大量冗余CMake代码,专注开发核心应用程序,编译不再愁! 例如下面是使用PICMake编译一个依赖OpenGL的可执行文件,只需要一行!
C++
80
star
5

RTMapperSDK

RTMapperSDK is the c++ sdk for application development like RTMapper. It handle images captured with UAVs and outputs ortho mosaic at realtime.
C
28
star
6

highstitch

Code for paper: HighStitch: High Altitude Georeferenced Aerial Images Stitching for Rocking Telephoto Lens
C++
16
star
7

GSLAM-TheiaSfM

C++
7
star
8

synergy

Free version of synergy for ubuntu and windows
Shell
7
star
9

svar_rosbridge

A C++11 based cross-language (C++/Python/Node-JS) rosbridge client with CBOR support.
C++
7
star
10

VideoCompare

This application is designed to find the differences between two videos. The reference video is indexed with BoWs and so that the second video is able to find the best match keyframe from reference video very fast.
C++
7
star
11

GSLAM-VINS

The VINS-Mobile implementation plugin for GSLAM
C++
5
star
12

EICAM

The EICAM is the a part of PIL library, which includes some pretty useful tools for C++ programing espesially in the areas of moblile robotics and CV (computer vision). Since cameras projection and unprojection actions are often needed in CV or other area such as Robot localization like SLAM (simultaneous localization and mapping), we provided EICAM for efficient implimentation of different camera models including PinHole, ATAN, OpenCV, OCAM .etc.
C++
5
star
13

PIL

The PIL library includes some pretty useful tools for C++ programing espesially in the areas of moblile robotics and CV (computer vision), includes ThreadBase,Svar,TImer,SE3 in PI_Base and hardwares support like Cameras, GPS and so on.
C++
3
star
14

highstitch-dataset

The NPU HighStitch Dataset
3
star
15

phantom3-village-kfs

A sample sequence for Map2DFusion.
3
star
16

GSLAM_OptimizerPBA

An optimizer plugin base on PBA for GSLAM later then version 2.1.0, which implement parallel bundle adjust with GPU or multi-core CPU.
C++
3
star
17

svar_nsq

C++
3
star
18

ShellToolkit

This package is aim to help Linux/UNIX users to collect their own bash shells and got better experience. You can doing a lot of things easily by this tool, such as ‘cd’ to a folder faster, automatically config your Makefile environment, help you remember program history thing and complete your parameters later, and so on. Enjoy it!
Shell
3
star
19

svar_monitor

Small c++ svar module to monitor the CPU, Memory and IO usages.
C
2
star
20

Messenger

An alternative option to replace ROS message transfering with single header from GSLAM.
CMake
2
star
21

GSLAM-JS

The Javascript wapper of GSLAM.
C++
1
star
22

EssentialTracker

C++
1
star
23

DatasetNetwork

C++
1
star
24

GBoW

GSLAM implementation of DBoW, with only headers and removed dependency of OpenCV.
C++
1
star
25

fengniao

1
star
26

svar_messenger

A svar module implemented ros like pub/sub.
C++
1
star