OpenCV | Workshop on OpenCV using Python
OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision. The library is cross-platform and free for use under the open-source BSD license.
Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.
Topics to be Covered during Workshop
- Applying Geometric Transformations to Images
- Installing OpenCV-Python
- Windows
- Mac OS X
- Linux (for Ubuntu)
- Reading, displaying, and saving images
- What just happened?
- Loading and saving an image
- Image color spaces
- Converting between color spaces
- What just happened?
- Image translation
- What just happened?
- Image rotation
- What just happened?
- Image scaling
- What just happened?
- Affine transformations
- What just happened?
- Projective transformations
- What just happened?
- Image warping
- Summary
Detecting Edges and Applying Image Filters
- 2D convolution
- Blurring
- The size of the kernel versus the blurriness
- Edge detection
- Motion blur
- Under the hood
- Sharpening
- Understanding the pattern
- Embossing
- Erosion and dilation
- Afterthought
- Creating a vignette filter
- What's happening underneath?
- How do we move the focus around?
- Enhancing the contrast in an image
- How do we handle color images?
- Summary
Cartoonizing an Image
- Accessing the webcam
- Under the hood
- Keyboard inputs
- Interacting with the application
- Mouse inputs
- What's happening underneath?
- Interacting with a live video stream
- How did we do it?
- Cartoonizing an image
- Deconstructing the code
- Summary
Detecting and Tracking Different Body Parts
- Using Haar cascades to detect things
- What are integral images?
- Detecting and tracking faces
- Understanding it better
- Fun with faces
- Under the hood
- Detecting eyes
- Afterthought
- Fun with eyes
- Positioning the sunglasses
- Detecting ears
- Detecting a mouth
- It's time for a moustache
- Detecting a nose
- Detecting pupils
- Deconstructing the code
- Summary
Extracting Features from an Image
- Why do we care about keypoints?
- What are keypoints?
- Detecting the corners
- Good Features To Track
- Scale Invariant Feature Transform (SIFT)
- Speeded Up Robust Features (SURF)
- Features from Accelerated Segment Test (FAST)
- Binary Robust Independent Elementary Features (BRIEF)
- Oriented FAST and Rotated BRIEF (ORB)
- Summary
Creating a Panoramic Image
- Matching keypoint descriptors
- How did we match the keypoints?
- Understanding the matcher object
- Drawing the matching keypoints
- Creating the panoramic image
- Finding the overlapping regions
- Stitching the images
- What if the images are at an angle to each other?
- Why does it look stretched?
- Summary
- Seam Carving
- Why do we care about seam carving?
- How does it work?
- How do we define "interesting"?
- How do we compute the seams?
- Can we expand an image?
- Can we remove an object completely?
- How did we do it?
- Summary
Detecting Shapes and Segmenting an Image
- Contour analysis and shape matching
- Approximating a contour
- Identifying the pizza with the slice taken out
- How to censor a shape?
- What is image segmentation?
- How does it work?
- Watershed algorithm
- Summary
Object Tracking
- Frame differencing
- Colorspace based tracking
- Building an interactive object tracker
- Feature based tracking
- Background subtraction
- Summary
Object Recognition
- Object detection versus object recognition
- What is a dense feature detector?
- What is a visual dictionary?
- What is supervised and unsupervised learning?
- What are Support Vector Machines?
- What if we cannot separate the data with simple straight lines?
- How do we actually implement this?
- What happened inside the code?
- How did we build the trainer?
- Summary
Stereo Vision and 3D Reconstruction
- What is stereo correspondence?
- What is epipolar geometry?
- Why are the lines different as compared to SIFT?
- Building the 3D map
- Summary
Augmented Reality
- What is the premise of augmented reality?
- What does an augmented reality system look like?
- Geometric transformations for augmented reality
- What is pose estimation?
- How to track planar objects?
- What happened inside the code?
- How to augment our reality?
- Mapping coordinates from 3D to 2D
- How to overlay 3D objects on a video?
Duration: The duration of this workshop will be two consecutive days, with eight hour session each day in a total of sixteen hours properly divided into theory and hands on sessions.
Certification Policy:
- Certificate of Participation for all the workshop participants.
- At the end of this workshop, a small competition will be organized among the participating students and winners will be awarded with a 'Certificate of Excellence'.
- Certificate of Coordination for the coordinators of the campus workshops.
Eligibility: There are no prerequisites. Anyone interested, can join this workshop.