北理工机器人队RM视觉组学习参考汇总(持续更新中)
欢迎大家有意加入北理工机器人队参与到视觉组的工作中。在大家能够正式作为队员参与到视觉组的准备工作之前,北理机器人队需要对各位进行培训。这篇文章主要面向有志于参加机器人队视觉组的同学。同时,欢迎所有对相关内容感兴趣的同学作为学习参考。由于作者能力有限,在行文过程中难免会出现用词不到、词语错误、歧义、技术说明错误等问题,希望大家在评论指出。同时如果你在学习过程中碰到了优秀的学习资源,也欢迎在评论区留言。谢谢大家。另外,我会将一些视频上传到bilibili,大家可以有空看一下。https://space.bilibili.com/227393559/favlist?fid=732358059&ftype=create
增加了思维导图。
C++
当前视觉组使用的主要程序语言是C++。C++是语言基础,也是必学内容。目前学校在大一只会教C语言内容,与C++还是有较大差距。特别是诸如类、重载等概念需要着重学习。
另外,还需要学习多线程的内容。这一部分可以自学一些,入队之后队内会进行专门培训。
相关C++视频:
https://www.bilibili.com/video/av62208475?from=search&seid=16449930857014911385
没有C语言基础
完全没有c语言基础的同学可以先去学习C语言。我校在慕课上的精品课程:
推荐看这个视频的教程,台湾的,虽然一些术语与大陆不同,但是作为入门教程,个人感觉还是很好的:
https://www.youtube.com/watch?v=yWPGumB64tM&list=PLY_qIufNHc293YnIjVeEwNDuqGo8y2Emx
https://www.bilibili.com/video/av69329388
这个在B站上讲的也挺好的,但是对英语听力十个极大的挑战。
https://www.bilibili.com/video/av68697716/?p=5
书籍资料推荐如下:
https://www.runoob.com/cplusplus/cpp-tutorial.html
《c++ primer plus》
有基础
有C语言基础的同学可以直接学习C++中有关面向对象的内容。
菜鸟教程(推荐)
Linux
linux跟Windows一样是一款操作系统。关于Linux的介绍网上有很多,不重复造轮子。
Linux的发行版本也很多,三大主流有Fedora系,Debian系,SUSE系。队内使用的是ubuntu属于Debian系。目前正在使用的是ubuntu16.04版本。正在考虑升级到18.04版本。
校园网内可访问http://mirror.bit.edu.cn/ubuntu-releases/18.04/下载,不要流量哦。
对于新手而言,推荐使用虚拟机安装Linux,尽量不要安装在物理机下。虚拟机可以使用VMware和virtualbox。推荐使用VMware。但是VMware是收费软件,需要自行百度VMware序列号,网上有很多,找到对应版本的序列号填进去就成。
学习资料
广为人知的经典Linux入门书籍就是《鸟哥的Linux私房菜》,购买书籍买基础版即可。同时也有对应的网页http://linux.vbird.org/。但是用于入门就比较困难。快速入门推荐Linux菜鸟教程和莫烦的Linux教程。
Cmake
关于cmake,这个没有必要特意去学,到时培训简单教一下就可。但是如果想要深入了解可以参阅以下内容:
编译
需要了解gcc编译的过程,gcc是如何一步步将文件编译链接成最终程序的。了解即可。
[gcc 编译过程]
OpenCV
opencv是一个开源的代码库。队内主要使用OpenCV进行图像处理。关于OpenCV的入门可以参阅队内另外一名同学写的博客。
https://waltpeter.github.io/open-cv-basic/
Git
git是一个版本控制工具。队内的协作、历史代码管理也全靠他。
这里推荐莫烦git教程
工业相机
这部分内容不会作为培训内容,但是入队后的同学必须掌握。这一部分可以参阅我的之前博客https://www.cnblogs.com/harrypotterjackson/
深度学习
目前对内并没有涉及相关深度学习的内容,今年会将其作为一个研究方向。深度学习的框架建议先学习tensorflow2或者pytorch
培训准备
1. 安装ubuntu18.04 视频:https://space.bilibili.com/227393559/favlist?fid=732358059&ftype=create
2. 注册github.com和gitee.com的账号
未来可能的技术点
深度学习
目前队内是使用OpenCV开源图像处理库进行编程,在适应性处理上不太好,需要不断调参以获取较好的效果。希望能够借助深度学习增强相关的自适应性。目前考虑使用的深度学习框架是TensorFlow2,。问题在于,队内需要非常快速的算法,需要不断对神经网络进行优化已达到快速处理并且效果不能低于目前的纯算法决策。
预瞄系统建模
目前的算法并没有对移动物体打击和小陀螺做系统建模处理。如何通过数学建模提高预测能力值得思索。这一点与图像制导技术非常相像。目前考虑是使用MATLAB中的Simulink做系统建模。
自适应算法
在数字图像处理领域,算法的自适应性有很多的研究。目前整个赛季对算法的自适应处理都不太好,如何借助相关的前沿算法研究加强队内视觉算法对光线环境的适应性值得思考。
北理工机器人队RM视觉组学习参考汇总(持续更新中)的更多相关文章
- 北理工机器人队RM视觉组ubuntu必备软件安装指南
基础软件安装 sudo apt update && sudo apt upgrade sudo apt install git curl vim gcc g++ cmake与make ...
- 痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手 ...
- 痞子衡嵌入式:史上最强ARM Cortex-M学习资源汇总(持续更新中...)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M学习资源. 类别 资源 版本 短评 官方汇总 cortex-m-resources / ARM公司专家Josep ...
- oracle学习 三(持续更新中)
关于ora 01219问题的解决 之前学习oracle的时候练习去建立表空间,建了很多之后手动删除了,之后再使用自己创建的用户名登陆数据库就会造成数据库 ORA-01031: ORACLE initi ...
- oracle学习 一 (持续更新中)
首先你需要创建一个表空间,然后,再创建一个用户名,用户名要给他指定一个表空间,并且给这个用户赋予权限, DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有 ...
- docker学习资料整理(持续更新中..)
docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...
- Kotlin教程——史上最全面、最详细的学习教程,持续更新中....
关于这个系列教程,我是从最基础的开发环境搭建到项目进阶到后面的项目开发这个过程来写的.我一直秉承从实际项目开发以及源码解析的角度去写好这个教程,并让从未接触过编程的朋友能学好kotlin这门语言.所以 ...
- LoadRunner从入门到实战学习路线(持续更新中...)
写在前面 我是一个测试工程师,从土木工程行业转行到互联网行业,目前是工作的第三年.平时主要做功能测试,性能测试接触比较少,虽然以前培训的时候学习过一些性能相关的知识,但都是入门初级的知识 ...
- HTML5学习笔记(持续更新中....)
平时的工作中,不知不觉我们应用了很多HTML5,但当正儿八经问起来你对HTML5了解多少,很多时候都有点懵. 做个简单的HTML5总结.包括简介.要学的知识点.凌乱的知识点 HMTL5简介 定义:ht ...
随机推荐
- 4-7 3D绘图
In [1]: import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D % ...
- jquery 监听不起效果的小问题汇总
在写前端页面时,因为我是用jquery添加新的html字符串来实现动态添加.删除,每次新添加都需要生成新的id,当我对新的id进行监听时,却不起作用. 思考了很多方法,开始我以为,如果将监听的语句$( ...
- React 受控组件和非受控组件
需求用户名自动获取 onChange用户状态发生改变 就获取值 就是时时获取值 使用onChange 点击按钮 获取密码 只要绑定了点击事件 就可以获取值 通过 let usercont=event. ...
- 在Ubuntu下使用nginx-rtmp-module搭建直播系统
直播系统最简单地包括推流和拉流,在这里先使用nginx-rtmp-module作为流媒体服务器. 流媒体服务器搭建 1. nginx-rtmp-module下载和安装 源码地址:https://git ...
- 201871010107-公海瑜《面向对象程序设计(java)》第十一周学习总结
201871010107-公海瑜<面向对象程序设计(java)>第十一周学习总结 项目 内容 这个作业属于 ...
- MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径
安装环境需求: 自从昨天安装了mysql 5.7,发现了一个问题,mysql5.6起,已经不支持2003系统了,如果安装了无法开启服务而且会出现在 本地计算机 无法启动 MySQL57 服务.错误 1 ...
- 12-numpy笔记-莫烦基本操作2
代码 import numpy as np A = np.arange(3,15) print('-1-') print(A) print('-2-') print(A[3]) A = np.aran ...
- Java8——Optional
/* * 一.Optional 容器类:用于尽量避免空指针异常 * Optional.of(T t) : 创建一个 Optional 实例 * Optional.empty() : 创建一个空的 Op ...
- TCP协议的粘包问题(八)
一.什么是粘包 在socket缓冲区和数据的传递过程介绍中,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发送了多少次,都会尽可能多的接收数据.也就是说,read()/re ...
- Azure产品整理
Azure的文档真是够落地,简明易懂. 计算 Linux 虚拟机:为 Ubuntu.Red Hat 等预配虚拟机 Windows 虚拟机 为 SQL Server.SharePoint 等预配虚拟机 ...