OpenCV training using Python
Introduction to Computer Vision for Robotics
Computer vision is fast becoming a major component of a robotics system.
With the capability to process and analyse visual data, the robot is able to 'see' and perceive its surrounding, thus completing tasks that are beyond imaginable limits of non-visual robots. Incorporating computer vision is the crucial next step in advancing your robotics systems.
This course will introduce the basic principles of computer vision, with emphasis on applications in robotics. The participants will learn the theories behind how computers capture 2D images and translate them into meaningful 3D information.
Hands-on, practical exercises will be plenty, where participants will develop algorithms and control a mobile robot to perform tasks such as obstacle avoidance, ball tracking and target recognition, using no other sensors but a webcam.
Participants will be using the OpenCV library in the Python programming language. OpenCV is widely used in computer vision developments, as it hosts a large number of useful tools and algorithms.
Python is the preferred language as it is easy to learn, and has great integration with OpenCV. This combination also has a world-wide supportive online community, providing contents, guidelines and tutorials for our advantage.
The course will cover the topics below:
- A Look at Vision - Biological vs Computer
- A brief look at vision in biology, including the human and insect eyes.
- Identify some 'tips and tricks' that nature has given us in implementing vision processing.
- The first essentials - image capture, storage, manipulation, alteration.
- Understanding pixels, colour spaces, and other basic concepts.
- Common image processing techniques - histogram, filtering, erode, dilate, thresholding, grayscaling etc.
- Higher level processing on the image including edge detection, center of gravity, motion detection, blob counting, colour filtering.
- Applications of computer vision - object counting, motion detection, colour detection, object detection, facial recognition, etc.
- Interfacing to Arduino and motor controller
- Calculating 3D distances from 2D images
- Converting vision algorithm outputs into motor movement to perform ball tracking, obstacle avoidance, etc.
The topics above will give the participants a good starting point towards developing their own computer / robotics vision system.
All topics will be accompanied by the appropriate programming practices.