Skip to content

Latest commit

 

History

History
130 lines (81 loc) · 9.55 KB

README.md

File metadata and controls

130 lines (81 loc) · 9.55 KB

Robotic Vision (A) stream

This set of three lectures will introduce you to important foundational concepts in computer vision. This are "classical" topics but which we believe are important to understand, even in the modern deep-learning era.

There are four sets of learning resources for each topic that I cover, described in a bit more detail below.

I teach general principles but to put the ideas into practice we need to write code. There are myriad choices of language and library/package/toolbox to choose from. In the past I've done a lot in MATLAB but now I'm working with Python, and Python is what we will use for the summer school.

Lectures

The PDFs of my lecture slides are provided in advance. Feel free to load them into your tablet to annotate as we go along.

Book

The material that I present is covered in more detail in my book Robotic, Vision & Control, 3rd edition 2023. There are two versions of this book:

The books are very similar in chapter structure and content, the first is based on Python code and open-source packages, the second is based on MATLAB and propietrary toolboxes that you need to licence from MathWorks (most universities will give you the required licences). It's just a matter of personal preference.

If you are studying at a university it is highly likely that you can download - for free - the chapters of this book from the links above. For this course, just grab the indicated chapters (11, 12, 13, 15) from the latter part of the book

download vision chapters

download visual motion chapters

Feel free to grab any other chapters that might take your fancy. Chapter 2 is a good (I think) introduction to representing position and orientation in 3D space, Appendix B is a convise refresher on linear algebra and geometry.

Videos

There are a set of free online video resources (the QUT Robot Academy) that might be useful as a refresher.

Code examples in these videos are done with MATLAB, but underneath each video is a code tab, and below that is a tab that allows you to select a "translation" of the code used in the video to different languages and toolboxes.

language options for Robot Academy videos

I will mention other, lecture-specific, Robot Academy videos below.

Jupyter Notebooks

I provide a selection of Jupyter/Python notebooks that will help to embed knowledge from each lecture. You can run them on Google Colab, with zero install, by clicking the Open In Colab button below.

Alternatively, you can run them locally on your laptop, and that requires that you first install the Machine Vision Toolbox for Python

pip install machinevisiontoolbox

Python 3.9 or newer is recommended. This will install all the required dependencies (including OpenCV) as well as example images for the exercises.

I would highly recommend that you use Miniconda and create an environment for your RVSS code.

conda create -n RVSS python=3.10
conda activate RVSS
pip install machinevisiontoolbox

Lecture resources

Lecture A1 Image Processing

This lecture introduces the fundamentals of image processing. Topics include pixels and images, image arithmetic, spatial operations such as convolution, and operations on images to find motion, simple blob objects, and image features.

Lecture A2 Camera imaging and geometry

This lecture introduces the process of image formation, how the 3D world is projected into a 2D image. Topics include central projection model, homographies, and camera calibration.

Lecture A3

This lecture is concerned with the relationship between motion of a camera and the corresponding changes in the image. This can provide information about the 3D nature of the world, and can also be inverted to determine how a camera should move in order to create the desired change in an image.

  • Lecture PDF file

  • Robotics, Vision & Control: Chapter 15

  • Robot Academy video masterclasses (each is a collection of short videos, ~1h total run time)

  • Jupyter/Python Notebooks

    • image-motion.ipynb, extension, finding the pose and identity of ArUco (QR codes) in an image Open In Colab
    • fiducials.ipynb, extension, finding the pose and identity of ArUco (QR codes) in an image Open In Colab