Shuihui’s Home

Course

All materials of my courses are listed below:


机器学习与人工智能 - Machine Learning and Artificial Intelligence


cover

机器学习越来越多应用到飞行器、机器人等领域,其目的是通过计算模拟人类智能,从而实现各类装备的智能化、无人化。本课程旨在引导学生掌握机器学习的基本知识、典型方法与技术,通过具体应用案例激发学生对该学科的兴趣,鼓励学生能够从人工智能的角度来分析、解决各类问题与挑战。

本课程主要内容包括Python编程基础,机器学习模型,无监督学习、监督学习、深度学习等基础知识,并深入浅出讲授机器学习方法如何应用于数据分析、图像分割,目标识别、分类、跟踪等,此外通过实例和实验讲解方法和理论如何解决实际的问题,通过本课程的学习能够掌握使用机器学习的理论及其应用。课程的网站为 https://gitee.com/pi-lab/machinelearning_notebook ,课程的在线视频地址是 《B站-机器学习与人工智能》

由于本课程需要大量的编程练习才能取得比较好的学习效果,因此需要认真去完成《作业和报告》,需要自己独立思考并独立写出代码与课题报告。

In recent years, with the rapid development of drones and robots, more and more machine learning has been applied to autonomous intelligent equipment. This course is designed to guide students to understand the basic knowledge and typical techniques of machine learning, to stimulate students’ interest on this field through specific application cases.

The content of this course includes basic knowledge of Python programming, machine learning model, learning and optimal inference, and how to apply the machine learning method to image segmentation, target recognition, classification, tracking, and so on. The course website is: https://gitee.com/pi-lab/machinelearning_notebook . The video is available at: 《Mahine Learning and Artificial Intelligence - Video》

To master the core of the course, it is necessary to do programming practices. Through these practices capabilities of problem solving of self learning can be boosted. The homework and report can be found at https://gitee.com/pi-lab/machinelearning_homework



一步一步学编程 - Learn Programming


cover

本教程的主要目的是帮助大家能够快速掌握编程。编程,英语,数学是通往未来的三把主要的钥匙。其中编程是让你实现梦想,英语是让你找到通往梦想的资料,数学是让你构建路径的模型和策略。编程能力是个人非常重要的一类能力,因此建议各位同学能够脚踏实地把编程基础打扎实,克服眼高手低的问题。编程和很多其他的课程不一样,不是看看就能学会,需要不断的练习,不断的debug,不断的反思,不断的重构代码才能学好。其中各种语言是招式,相对好学;算法、程序性思维是内功,并不容易提高,内功的高低才正真决定了一个人编程能力的高低。请有志于机器学习,计算机视觉的同学脚踏实地的把基础打扎实之后再开始相关专业知识的学习。

因为主要的算法或者需要高效率实现的情况下需要通过C/C++来编写程序,因此C/C++非常重要,需要学好才能更好的完成各类任务。不过C++非常博大精深,高级、复杂的语言特性可以不用一上来就去学,可以等基本语法、常用数据结构学的比较扎实之后再着手开始。学习阶段和步骤分为5个阶段,可以同时进行两个或以上的内容同时学习和练习,从而提高整体的学习效率。和其他传统的教程不同之处,本教程的主要特点有:1) 使用Git来记录学习过程:保存学习过程的进度,能够更好的互动;2) 本教程只提供了学习的大纲,需要自己找适合自己的教程,并自己设计学习进度和安排。

课程的主页是: https://gitee.com/pi-lab/learn_programming

The main purpose of this tutorial is to help you master programming quickly. Programming, English and mathematics are the three main keys to the future. Among them, programming is to make your dreams come true; English is to find the materials that lead to your dreams; and mathematics is the models and strategies that allow you to build paths. Therefore, it is suggested that all students need to build a solid foundation and overcome the problem of having grandiose aims but puny abilities. Programming is different from many other courses. It requires lots of practice, debug, introspection, and refactoring of code. Among them, various languages are relatively easy to learn, while algorithmic thinking is internal strength which is not easy to improve. The level of internal strength really determines a person’s programming ability. It is highly recommended that students who interested in machine learning and computer vision, do the programming exercises before starting the study of relevant professional knowledge.

Since most high performance required programs are still implemented through C++, it is necessary to learn C++. However, many more advanced and complex language features do not have to be learned at beginning, while they can be be learned after basic grammar and data structure have been masted. The learning stages and steps are divided into the following five stages, which can be studied and practiced with two or more contents at the same time, so as to improve the overall learning efficiency. This course have he following differences to other tutorials: 1) using Git to record the learning process: save the progress of the learning process which lead to better interaction; 2) this tutorial only provides an outline of learning, you need to find your own tutorials that suit you, and design your own learning schedule and arrangements.

The homepage of the course is: https://gitee.com/pi-lab/learn_programming



一步一步学SLAM - Learn SLAM


cover

SLAM的全称是Simultaneous Localization and Mapping,同时定位与地图构建,就是通过传感器(主要是激光和视觉等)通过扫描环境,构建环境地图并同时给自己定位。虽然经过了多年的发展,视觉SLAM取得了很大的进步,已逐步从实验室走向了应用,但是视觉SLAM仍然面临很多的挑战,例如动态环境下如何鲁棒地重建环境、如何实现语义地图、如何实现人类的认知方式完成精密三维重建等等。

本教程的主要目的是帮助大家快速掌握SLAM的原理、编程、以及应用。SLAM的实现是一类复杂的程序,包括数学、数值计算与优化、操作系统、多线程、C++、STL、C++11、CMake、大量第三方库等等,因此通过学习SLAM能够掌握复杂软件系统的编写、设计等高级技巧,有了这些能力与技巧后续做其他项目就会非常简单。因此学习SLAM对综合能力的提升有着非常显著的作用。希望大家能够脚踏实地、一步一步去学习。

课程的主页是: https://gitee.com/pi-lab/learn_slam

SLAM (Simultaneous Localization and Mapping) is to scan the environment through sensors (mainly laser and vision, etc.) for building environment map and locating itself at the same time. Although decades of development, visual SLAM has made great progress and has gradually applied in various fields, there still exists many challenges, such as how to reconstruct the environment robustly in dynamic environment, how to realize semantic map, how to realize human cognitive style to complete precise 3D reconstruction, and so on.

The main purpose of this course is to help you quickly master the theory, programming, and application of SLAM. The implementation of SLAM is a kind of complex programs, including mathematics, numerical calculation and optimization, operating system, multi-threading, C++, STL, C++ std 11, CMake, lots of third-party libraries, etc. Therefore, through learning SLAM, you can master complex software system writing, design and other advanced skills, which will make it is easy to do other projects. As a consequence, learning SLAM plays a very significant role for the improvement of comprehensive ability.

The homepage of the course is: https://gitee.com/pi-lab/learn_slam



一步一步学ROS - Learn ROS


cover

ROS的全称是Robot Operating System,即机器人操作系统。它提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。 ROS的核心就是提供了一套针对机器人应用的进程间通讯系统,使得不同功能的模块之间可以很方便的互联。 如果把机器人的操纵比作一棵大树。而ROS充当的就是实现各个模块(树干,树叶)之间互通的脉络。让各个模块之间可以更方便,更快捷的互联互通。

本教程通过多个由潜入深的步骤引导大家学习ROS的基本操作、理论、编程、开发、小项目等,通过一步一步的学习能够减少学习过程的痛苦,并提高学习的效率。

课程的主页是: https://gitee.com/pi-lab/learn_ros

ROS represents robot operating system which provides a series of libraries and tools to help software developers create robot applications. The core of ROS is to provide a set of inter-process communication system for robot applications, so that the modules with different functions can be easily interconnected. If you compare the manipulation of a robot to a big tree. ROS acts as the thread of communication between various modules (trunks and leaves). So that each module can be more convenient and faster interconnection.

This course through a number of deep steps to guide you to learn the basic operation of ROS, theory, programming, development, small projects, etc., through step-by-step learning can reduce the pain of the learning process and improve the efficiency of learning.

The homepage of the course is: https://gitee.com/pi-lab/learn_ros



一步一步学硬件 - Learn Hardware


cover

本教程引导大家一步一步学习如何画电路图、PCB、三维结构件、Arduino、嵌入式编程等,从而让大家能够独立自主制作硬件及其程序开发。虽然我们实验室主要从事算法、软件的研究,但是无人机、机器人强烈依赖硬件、动手能力。如果自己能自己完成硬件的制作、集成,则极大的加快自己研究、实验的速度。缺少真实实验的研究成果一般不会被专家认可,如果有很漂亮、很酷的实验,则会给论文极大的加分。大家觉得硬件很难、很花时间,其实如果掌握门道,目前的工具的智能化程度很高,并不用花很多时间就能达到可用的水平。



90分钟学Python - Learn Python in 90min


cover

Python 是一门上手简单、功能强大、通用型的脚本编程语言。Python 类库极其丰富,这使得 Python 几乎无所不能,网站开发、软件开发、大数据分析、网络爬虫、机器学习等都不在话下。Python最主要的优点是使用人类的思考方式来编写程序,大多数情况下使用封装好的库能够快速完成给定的任务,虽然执行的效率不一定很高,但是极大的缩短了程序设计、编写、调试的时间,因此非常适合快速学习、尝试、试错。

由于Python强大的功能与易用的特性,因此非常适合开发机器学习的程序,建议各位同学认真学习Python编程。不仅仅学会Python,而且还需要刻意学习如何在很短的时间内掌握一个新的技能。

Python is a simple, powerful and universal scripting language. Python has various libraries, which makes it suitable for website development, software development, big data analysis, web crawlers, machine learning and so on. The main advantage of Python is writing programs using human way of thinking. In most cases, encapsulated libraries can be used to quickly complete a given task. Although the execution efficiency is not necessarily very high, it greatly shortens the time of program design, writing and debugging, so it is very suitable for rapid learning, trial and error.

Because of the powerful functions and easy-to-use features of Python, it is very suitable for the development of machine learning programs. I suggest you learn Python programming. Not only to learn Python, but you also need to learn how to master a new skill quickly.



智能系统实验室入门(暑期)课程 - PI-Lab Summer Camp


cover

本实验室致力于研究面向无人装备的机器学习和计算机视觉方法,该研究需要比较多的背景知识、技能,仅仅依靠大家自学,学习速度已经远远满足不了研究能力的要求。从个人的学习过程分析,学习可以分成两类,第一类是听别人的讲解,被动的接收知识;第二类是,通过自己的理解,把知识讲授给其他人,这样的学习是主动式学习。本课程主要的特点是让学生在学习过程扮演两种角色,每位学生准备一部分教程,同时也听别的同学讲解其他教程,通过这样的学习过程,让各位同学快速掌握大量的知识,可能学的过程比较快并没有掌握,但是通过这样的学习能够知道那些知识去哪里找,知识的特点是什么,怎么快速应用等等。课程的主页是: https://gitee.com/pi-lab/SummerCamp 。 课程的视频在:《PI-Lab Summer Camp》

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

本课程与传统的课程有很大的不同之处在于需要认真的完成相应的作业才能有效的提高分析问题、分解问题、解决问题,编程,Debug等多方面的能力。课程作业的网址: https://gitee.com/pi-lab/SummerCampHomework

Our laboratory focus on the research of machine learning and computer vision methods for unmanned equipment. This research field requires strong background knowledge and skills. Traditional self learning can not meet the requirements for the research. The learning procedure can be divided into two categories: the first is to listen to others’ explanation and receive knowledge passively; the second is to teach knowledge to others through their own understanding, which is active learning. The main feature of this course is to let students play two roles in the learning process. Each student prepares some tutorials and listens to other students to explain other tutorials. Through this learning process, students can quickly master most of the specified knowledge. Maybe someone can not mast all knowledge well, but they know where to find detailed explanation, what are the characteristics of the knowledge, and how to apply it quickly, and so on. The home page of the course is: https://gitee.com/pi-lab/SummerCamp , The video of the course at 《PI-Lab Summer Camp》.

The course is aimed to improve the following abilities:

The difference between this course and the traditional course is that the home work need to be finished for improving the capability of problem analysis, problem decomposition, problem solving, programming, Debug and so on. Website for course home is: https://gitee.com/pi-lab/SummerCampHomework



学习成功之道 - Tao of Success


cover

学习不仅仅是时间的积累,不仅仅是学会了一些知识、技能,更多的是学会让大脑思考,在学习过程不断改造自己的思想、认识、格局。请仔细看下面的教程并不多反思、总结学习、思考的方法。

更多详细的内容请访问课程在线地址 《学习成功之道》



如何研究- How to Do Research


cover

研究生阶段的学习、研究是人生中重要的一个提升能力的阶段,在这段时间通过开展一个研究课题学会如何去学习知识、如何去思考问题、如何分解问题、如何解决问题、如何评估问题、如何总结工作等等,通过综合练习达到批判性思维、系统性思维等多种思维、工作方法的培养,从而为后续的工作奠定能力基础。希望大家能够认真思考、主动去做,真真切切在这段宝贵的时间达到自己的目标。

本课程主要包含的内容有:研究的心法、研究计划、论文写作、思维工作方法等内容。

更多详细的内容请访问课程在线地址 《如何研究》

Postgraduate study and research is an important stage of ability improvement in you life. During this period, through carrying out a research project to master how to learn knowledge, how to think about problems, how to decompose problems, how to solve problems, how to evaluate problems, how to introduce your work, and so on. Through comprehensive practice to achieve critical thinking, systematic thinking and other working methods. Therefore, it is important for everyone can seriously think about the methodology, working hard to following your heart. And finally achieve your goal.

The main contents of this course are: methodology, research plan, paper writing, thinking/working methods and so on. For more details, please visit the online address of the course: 《How to Do Research》



一步一步学写作 - Learn Writing


cover

通过写作将自己的知识、经验表达成文字,从而让其他人能快速理解并掌握你的思路、想法、知识是一项研究生阶段需要培养的一类重要技能。一般来说写作是一件非常痛苦的事情,因此巨大的困难、挫折会让人退缩。为了降低痛苦程度,需要采用循环、迭代的策略,核心思想是不要一上来就追求完美,先不管三七二十一把每个部分的文字、描述的东西先堆砌起来,然后通过不断的修改、完善,最终使得所写的材料达到可接受的程度。这种思维就是抛砖引玉,在思维混乱、不知所措的时候,把基本的思路写出来,然后逐步改进,从而完成各种类型材料的写作。课程的网址: https://gitee.com/pi-lab/Wiki/tree/master/tips/learn_writting/README.md

Writing is an important skill that needs to be developed during the period of master’s study. Writing is organize words or expression to express your knowledge and experience, therefore, others can quickly understand and master your ideas. Generally, writing is a very painful thing, so great difficulties exist. In order to reduce the degree of difficulty, it is necessary to adopt an iterative strategy. The core idea is not to write perfectly once, but to pile up the text and description of each part first, and then through constant revision and improvement. Website for course home is: https://gitee.com/pi-lab/Wiki/tree/master/tips/learn_writting/README.md



跟海龟学Python和数学


cover

学习Python最好的方式就是把最基本的语法学会之后,通过一个一个练习题牵引,从简单的程序开始编程,在练习的过程不断加深对Python编程的理解。最终实现Python语法、算法、程序的掌握,并具备一定的解决问题能力。几何不仅仅是数学中非常重要的一个内容,而且是编程中非常有用、有趣的一类知识和技能。为了更好的学习几何,可以使用几何软件例如 Geogebra,另外通过Python Turtle绘图,或者Processing绘图增加对几何的理解,并强化兴趣。课程的网址:https://gitee.com/pi-lab/python_turtle



智能图像图形处理 - Intelligent Image and Graphics Processing


cover

本课程介绍了图形和图像机器学习的基本原理和方法,以及在无人机智能导航和制导中的应用。主要内容包括机器学习、最优推理模型,机器学习在分割中的应用,图形和图像的目标识别/跟踪/分类,以及三维重建等,并举例说明方法和理论在解决实际问题中的应用。本课程的包括理论学习、系统设计讨论和应用与实验。

This course introduces the basic principles and methods of machine learning for graphics and images, the applications for intelligent navigation and guidance of unmanned aerial vehicle. The main contents include models of machine learning, learning, and optimal inference, application of machine learning for segmentation, target identification/tracking/classification for graphics and images, and 3D reconstruction, etc. In addition, examples are provided for better understanding the application of method and theory to solve practical problems. The teaching methods of this course include theoretical teaching, discussion of system design and experiments.



无人机实时地图 - Realtime Map for UAV


cover

随着人工智能的飞速发展,利用视觉SLAM与机器学习技术实时生成的2D、3D、语义地图等能够为智能设备带来类人的环境认知能力。本报告简要介绍视觉SLAM的原理和最新进展,分析目前视觉SLAM发展所面临的主要问题,并引入无人机实时地图系统,该系统通过综合多个模块能够为无人装备提供态势感知、卫导拒止下的导航定位等提供支持。报告的PPT下载地址为:无人机实时地图 - ppt,报告的视频:无人机实时地图 - 视频

With the rapid development of artificial intelligence, 2D, 3D, semantic maps generated in real time using visual SLAM and machine learning technology can provide human-like environmental cognition capabilities to smart devices. This report briefly introduces the principle and latest progress of visual SLAM, analyzes the main problems of visual SLAM, and introduces the UAV real-time map system, which can provide support for unmanned equipment through the integration of multiple modules, such as situational awareness, navigation and positioning under GNSS-denied environment. The report can be found at: Realtime Map for UAV - PPT, the video of the report can be found at: Realtime Map for UAV - Video.



视觉SLAM与RTMapper - Visual SLAM and RTMapper


cover

本专题课程介绍视觉SLAM和RTMapper(实时地图)。第一部分简要介绍了本研究的背景和基本原理。第二部分介绍了最新研究工作,包括RTMapper、无人机/机器人平台、MapFusion、基于深度学习的自动数据处理。最后一部分讨论了该领域的问题和未来的研究方向。

课程的各个版本与资料:

This special course introduces visual SLAM and RTMapper (realtime mapper). The first section gives a brief introduction of research background and basic principle. The second section introduces our recent research works, including RTMapper, UAV/Robot platform, MapFusion, Deep Learning based automatic data processing. The last part discusses limitations and future works for this field.

The slide of this course can be downloaded at:



视觉SLAM与应用 - Visual SLAM and Applications


cover

本专题课程介绍可视化SLAM及其应用。第一部分简要介绍了本研究的背景和基本原理。第二部分介绍了研究工作,包括实时地图生成、半直接跟踪测绘和场景识别。最后一部分讨论了该领域的问题和未来的研究方向。本课程的资料可以在下面网址下载得到: http://www.adv-ci.com/download/VisualSLAM_Applications.pdf

This special course introduces visual SLAM and applications. The first section gives a brief introduction of research background and basic principle. The second section introduces our recent research works, including real-time mapping, semi-direct tracking and mapping, and place recognition. The last part discusses limitations and future works for this field. The slide of this course can be downloaded at: http://www.adv-ci.com/download/VisualSLAM_Applications.pdf