ENROLLMENT OPENFOR THE ENGINEER WHO OWNS PERCEPTION

From raw pixels to metric 3D depth, with nothing hidden.

The world your robot moves through is not flat, and every decision it makes about that world starts with a camera. This course is the geometry layer under all of it, built by hand: an image as a table of numbers, colour tracking on real video, convolution, features and optical flow, then the projection model itself, camera calibration from the singular value decomposition up, and finally a stereo pair that returns a position in metres. Under three hours of video, no filler, every stage written in a notebook you keep. It is the prerequisite layer for visual odometry, SLAM and any navigation stack you intend to own rather than install. No black boxes. Real cameras, real captures, and a number you can check.

29 lessons6 chapters162 minutes of videoPython and OpenCVLevel 0 to 513 languagesNo camera requiredLifetime access
notebook · stereo pair · triangulated XYZ● REC
Your code, flying a robot
Your own depth estimate
disparity map and 3D points, in metres
29Lessons
6Chapters
6Levels
13Languages

Every robot that acts in the world has to know how far away things are. Most engineers can only call the function that answers.

Computer vision is taught at two useless extremes: tutorials that load an image, call a filter and stop, or multiple-view-geometry textbooks with no runnable code between the equations. The gap in the middle is where 3D perception actually lives, so most engineers skip it, buy a depth camera and treat the numbers it returns as truth. That works until the rig is knocked out of alignment, the focus ring moves, or the depth quietly degrades with distance, and there is no way to tell because nothing in the pipeline was ever yours to inspect.

The loop under every 3D perception system
CALIBRATEMATCHTRIANGULATE
Recover the parameters that map the 3D world onto your pixels, find the same point in two views, then solve for where it is in space. That loop is 3D vision, and you build every stage of it here instead of configuring somebody else's.
✕ THE USER

Reads depth off an SDK and tunes numDisparities until the picture looks plausible. When the measurement drifts there is nothing to check, because the intrinsics, the rectification and the matcher are all somebody else's decisions.

✓ THE ARCHITECT

Knows depth is focal length times baseline over disparity, so a longer baseline buys range and a shorter one buys close-in accuracy. Reads a reprojection error and can say whether the calibration or the matching is at fault.

What you build, and where each piece runs in the field
A colour tracker that runs on video

A colour tracker that runs on video

Threshold, clean up with erosion and dilation, find the centroid, then follow the object frame by frame in a moving crop window.

Visual servoing, object following, and the first sanity check on any camera rig
Features, descriptors and optical flow

Features, descriptors and optical flow

Convolution written by hand, then FAST corners, BRIEF and ORB descriptors, brute-force matching, and both sparse and dense flow.

The front end of every visual odometry and SLAM system
A camera projection model you wrote yourself

A camera projection model you wrote yourself

Build K from focal length and principal point, compose the extrinsic transform, and project known 3D points onto the image to check the result.

Sim-to-real validation, augmented reality, and any fusion of a camera with another sensor
A calibrated camera, distortion included

A calibrated camera, distortion included

Solve for the projection matrix by singular value decomposition, decompose it back into K, R and t, then calibrate a real lens with a checkerboard and undistort the images.

Every measurement anyone ever makes from an image
A stereo rig that returns metric XYZ

A stereo rig that returns metric XYZ

Calibrate both cameras, rectify the pair, triangulate matched points, and build a dense disparity map that converts to depth in metres.

GPS-denied navigation, obstacle avoidance and robot manipulation

Six pieces make a 3D vision system. You build exactly those six.

This is not a survey of what OpenCV can do. Perception decomposes into six pieces, and the six levels of this course build precisely those, in the order they depend on each other. The row below is the whole pipeline in miniature.

The image as data
The image as data

Rows, columns and three channels: indexing, cropping, colour spaces, masks and morphology, and the coordinate conversion that keeps a crop registered to the full frame.

taught in Level 1
Convolution and filtering
Convolution and filtering

A kernel slid by hand before filter2D is called, then edges, the bilateral filter and Canny, judged by what each one keeps and destroys.

taught in Level 2
Features and motion
Features and motion

FAST corners, why a descriptor is needed at all, BRIEF and ORB, brute-force matching, and Lucas-Kanade against dense Farneback flow.

taught in Level 2
The projection model
The projection model

The pinhole camera, the virtual image plane, homogeneous coordinates, the intrinsic matrix K, and why the whole formulation looks the way it does.

taught in Level 3
Extrinsics and rigid transforms
Extrinsics and rigid transforms

SE(3) as one 4 by 4 matrix, composing and inverting frames, and the full camera projection matrix P assembled from K and the pose.

taught in Level 3
Calibration and triangulation
Calibration and triangulation

The direct linear transform by singular value decomposition, lens distortion, stereo calibration and rectification, then triangulation and disparity to depth.

taught in Levels 4 and 5
Projection geometry, real-lens calibration, stereo rectification and triangulation, in one connected build.
Stop reading depth.
Start measuring it.
Every parameter that turns a photograph into a measurement is derived, then estimated, then checked against something whose distance is already known. Nothing in the chain is a number you were handed and had to trust.

7 reasons this is a perception layer you own, not another OpenCV walkthrough.

POINT 01
29 lessons, none of them filler

Under three hours of video, and every lesson ends in code that runs. Setup, images as data, filtering and features, projection geometry, calibration, and metric depth, in one dependency chain where nothing appears out of nowhere.

icon — 29 lessons, none of them filler
POINT 02
The formulation is derived, not quoted

A whole lesson exists purely to answer why the intrinsic matrix looks the way it does: the pinhole model, the virtual image plane, and what homogeneous coordinates buy you. The equations stop being notation you copy.

icon — The formulation is derived, not quoted
POINT 03
Calibration twice, from both directions

First from the mathematics: stack the correspondences into A p equals zero, solve the null space by singular value decomposition, and decompose the result back into K, R and t. Then the practical route, with real lens distortion and a checkerboard.

icon — Calibration twice, from both directions
POINT 04
Real cameras, and you do not need to own one

The course is shot with a pair of manual-focus USB cameras on a 3D-printed mount with a 150 millimetre baseline, alongside a commercial stereo camera for comparison. Every capture and calibration file is supplied, so nothing has to be bought to follow along.

icon — Real cameras, and you do not need to own one
POINT 05
The estimate is checked against known distances

Objects are placed at measured ranges before the depth pipeline runs, so the final number is compared against ground truth on camera, error included, instead of a heat map that merely looks convincing.

icon — The estimate is checked against known distances
POINT 06
Simulation makes the geometry visible

Projection is taught in a game-engine scene where every world coordinate is known exactly, so the projected pixels can be verified by eye before the same code is pointed at a real lens that bends light.

icon — Simulation makes the geometry visible
POINT 07
Taught by an engineer who published on camera motion estimation

Two first-author AIAA conference papers on visual-inertial odometry and uncrewed aerial systems, a graduate thesis on monocular camera ego-motion, and a multi-camera calibration pipeline in production use today.

icon — Taught by an engineer who published on camera motion estimation

Derive it, code it, then measure something you already know.

The same three-step loop on every stage of the pipeline, so you never watch without building, and never accept a result that was not checked against something independent.

one loop
Lecture slide deriving the intrinsic matrix from the pinhole camera model, showing the virtual image plane in front of the pinhole and the focal length annotated
1 · DERIVE

Start from the geometry

Each stage opens with the picture and the equation under it: the pinhole model behind the intrinsic matrix, the rigid transform behind the extrinsics, the two equations and four unknowns that make a single camera insufficient.

Jupyter notebook showing the intrinsic matrix built from fx, fy, cx and cy and the projection of 3D world points onto a simulated camera image
2 · CODE

Write it line by line

The equation becomes a notebook you run: building K from fx, fy, cx and cy, composing the 4 by 4 transform, calling the solver with the arguments it actually wants, and drawing the result back onto the image.

Stereo photograph beside its disparity map, with the triangulated distance to an object annotated next to the tape-measured distance
3 · MEASURE

Check it against something known

Projected points are compared with the simulated scene, calibration is judged by reprojection error and by the undistorted image, and the final depth estimate is compared with objects placed at measured distances.

One connected climb: Level 0 to Level 5.

Each level ends in code that runs and is the prerequisite for the next, so no part of the pipeline ever appears out of nowhere. Six chapters take you from an image as a table of numbers to a stereo pair returning a position in metres, and every parameter in that final number is one you estimated yourself.

Progression · each level unlocks the nextmastery
LEVEL 0Environment
LEVEL 1Images as data
LEVEL 2Features and flow
LEVEL 3Projection geometry
LEVEL 4Calibration
LEVEL 5Metric 3D depth
0
LEVEL 0 · CHAPTER 1

A stack that runs, on your machine

Editor, environment and course workspace installed on whichever operating system you use, so the first notebook opens and runs before any vision is attempted.

Version conflicts and a folder of papersThe first notebook running
PROJECT 01Editor and environment
Editor and environment
Lesson goal
Have a working Python environment on macOS, Ubuntu or Windows
Have every notebook in the course open and execute on your machine
Lesson process
01Installing VS Code on macOS, on Ubuntu through the App Center, and on Windows
02Downloading the course folder and creating the conda environment
03Installing the requirements and confirming the packages resolved
04Opening the first notebook and running it end to end
1
LEVEL 1 · CHAPTER 2

An image is a table you can measure

Pixels, channels and coordinates first, then the smallest complete perception loop there is: find an object by colour, clean up the mask, compute its position, and follow it through a video.

An image is a picture on screenA tracker you wrote, running on video
PROJECT 01Pixels, channels and coordinates
Pixels, channels and coordinates
Lesson goal
Read and address any pixel by row, column and channel without guessing
Crop a region and convert its local coordinates back to the full frame
Lesson process
01Loading images with OpenCV and inspecting pixel values and coordinates
02The BGR against RGB trap between OpenCV and Matplotlib, and cvtColor
03Visualizing the individual colour channels of a real photograph
04Defining a centre point, computing the crop bounds, and converting local coordinates to global
PROJECT 02Finding an object by colour
Finding an object by colour
Lesson goal
Turn a colour range into a clean binary mask instead of a noisy one
Compute the position of an object from that mask
Lesson process
01Why colour filtering is still the first tool in robot vision
02Bounds with inRange, a mask, and bitwise_and against the source image
03Erosion and dilation: removing small blobs with a 5 by 5 kernel and restoring the shape
04The centroid by mean position, drawn back onto the image
PROJECT 03Detection and tracking on video
Detection and tracking on video
Lesson goal
Refine a first guess into a stable detection using distance in colour space
Track a moving object across frames with a crop window that follows it
Lesson process
01A first guess against a better one, compared as rectangles on the frame
02A distance mask around the target colour, and recomputing the mean position and mean colour
03The video capture loop, the helper functions, and the debug view
04Per-frame processing: crop, mask, mean, draw, and move the window
2
LEVEL 2 · CHAPTER 3

Convolution, features and optical flow

The front end that every visual odometry and SLAM system starts with, built one layer at a time: a kernel slid by hand, corners that survive a viewpoint change, and pixel motion between frames.

Filters and detectors are library callsA front end you could write yourself
PROJECT 01Convolution, by hand and then by library
Convolution, by hand and then by library
Lesson goal
Explain what a kernel does to an image before calling filter2D
Choose an edge filter on evidence rather than by habit
Lesson process
01How convolution works, step by step, over the pixel grid
02A custom convolution written in Python, then the same thing with cv2.filter2D
03Vertical, horizontal and Canny edge filters compared on the same image
04The bilateral filter, and what each operation keeps and destroys
PROJECT 02Features and descriptors
Features and descriptors
Lesson goal
Say why a detector alone is not enough and a descriptor is required
Match the same physical point across two images taken from different angles
Lesson process
01Why image features matter for tracking and navigation
02The FAST detector, and what its key points actually are
03BRIEF, ORB, SIFT and SURF, and how they differ in what they encode
04Brute-force matching with BFMatcher, and reading the matches critically
PROJECT 03Optical flow, sparse and dense
Optical flow, sparse and dense
Lesson goal
Estimate pixel motion between two frames and interpret the two components
Choose between a sparse tracker and a dense field for a given task
Lesson process
01The motivation: camera velocity, and the link forward to visual odometry
02Flow theory, the u and v components, and why it is two channels
03Lucas-Kanade implemented on tracked key points
04Farneback dense flow: pyramid scale, window size, and what changes
3
LEVEL 3 · CHAPTER 4

The camera projection model

The heart of the course. How a 3D point becomes a pixel, why the formulation looks the way it does, and how the camera's pose enters the same matrix, verified in a simulated scene where every coordinate is known.

P equals K times R and t is a formula you copyA projection you built and verified
PROJECT 01Intrinsics, first the picture then the code
Intrinsics, first the picture then the code
Lesson goal
Build the intrinsic matrix K from focal length and principal point
Project a known 3D point to the pixel it lands on, and check it against the render
Lesson process
01A simulated scene with boxes, a camera, and an explicit coordinate convention
02Projecting a 3D box onto the image, by hand first
03Defining fx, fy, cx and cy and assembling K in NumPy
04The projection function itself, K applied to a 3D point, and the points drawn back on the image
PROJECT 02Why the formulation looks like that
Why the formulation looks like that
Lesson goal
Explain the intrinsic matrix from the pinhole model rather than reciting it
Move between Euclidean and homogeneous coordinates without hesitation
Lesson process
01The pinhole camera, the upside-down image, and the virtual image plane that replaces it
02Image coordinates, focal length, and where each term of K comes from
03What homogeneous coordinates buy, and the intuition for the extra dimension
04Converting back to Euclidean, and the three-step projection workflow in summary
PROJECT 03Extrinsics: the camera in the world
Extrinsics: the camera in the world
Lesson goal
Compose and invert rigid transforms as one 4 by 4 matrix without guessing the order
Assemble the full projection matrix for a left and a right camera
Lesson process
01Angular and linear position, the homogeneous transformation, and SE(3)
02Rigid transforms against the other matrix categories, and a worked body-to-world example
03Separate rotation and translation against a single transform matrix, in code
04A right camera placed by translation, inverting the transform, and projecting through both
05Adding a five degree tilt, and the radians mistake that catches everyone once
4
LEVEL 4 · CHAPTER 5

Camera calibration, from the null space to a real lens

In the field nobody hands you fx, fy, cx and cy. You estimate them: first from the mathematics on synthetic data, then from a real checkerboard on a real lens that bends light, then across two cameras at once.

You are handed the camera parametersYou measure them, and check them
PROJECT 01Calibration as a null-space problem
Calibration as a null-space problem
Lesson goal
Derive the calibration as A p equals zero and solve it by singular value decomposition
Recover K, R and t back out of an estimated projection matrix
Lesson process
01The rig: manual-focus USB cameras, a 3D-printed mount with a 150 millimetre baseline, and a commercial stereo camera for comparison
02The projection matrix in x over w form, and stacking correspondences into A
03The direct linear transform without normalization, solved through the null space
04Decomposing the result by RQ factorization, reconstructing the translation, and verifying the estimate
05The limitations that motivate a distortion model
PROJECT 02A real lens, with distortion
A real lens, with distortion
Lesson goal
Model barrel and pincushion distortion and know which coefficients matter
Calibrate a physical camera from your own checkerboard captures and undistort its images
Lesson process
01Radial distortion with k1, k2 and k3, and tangential distortion with p1 and p2
02Generating a checkerboard, board shape and square size, and capturing a usable set
03Detecting corners, looping over the images, and seeding an initial camera matrix
04calibrateCamera with a fixed k3 and an intrinsic guess, and what those flags change
05Undistorting the result and judging it by eye and by error
PROJECT 03Two cameras, one rig
Two cameras, one rig
Lesson goal
Calibrate a stereo pair and recover the transform between the two cameras
Rectify and remap both images so a match becomes a search along one row
Lesson process
01Refactoring the work into a reusable calibrator, then running it per camera
02stereoCalibrate, and what it estimates beyond the two monocular results
03stereoRectify, the undistortion maps, and cv2.remap
04A first triangulation on the rectified pair as the check that it worked
5
LEVEL 5 · CHAPTER 6

3D depth: triangulation and disparity

The payoff. Two views, one physical point, and a position in metres, computed two different ways and compared against objects placed at distances measured in advance.

Depth is a number an SDK returnsDepth you triangulated and can check
PROJECT 01Triangulation, point by point
Triangulation, point by point
Lesson goal
Explain in one sentence why a single camera cannot recover metric depth
Triangulate a real 3D point from a matched pair and state its error
Lesson process
01Four unknowns and two equations from one camera, and what a second camera adds
02The system as A x equals zero again, and its null-space solution
03Loading a real stereo capture with its intrinsic parameters, and building A
04cv2.triangulatePoints on hand-picked points, then on every ORB match
05Filtering the resulting 3D points and checking one against its measured distance
PROJECT 02Disparity, for every pixel
Disparity, for every pixel
Lesson goal
Build a dense disparity map and convert it to depth with the stereo formula
Recover the XYZ of any pixel you click on
Lesson process
01Disparity against triangulation: dense pixel-wise depth rather than selected points
02Stereo geometry, the definition of disparity, and depth as focal length times baseline over disparity
03StereoSGBM, and what tuning the number of disparities actually changes
04From a depth map to XYZ for a single pixel, and the commercial-camera shortcut for the same thing

You finish with a perception layer you wrote, a calibration you can redo on any camera you are handed, and a clear view of the line where 3D vision ends and visual odometry, visual navigation and SLAM begin.

Is this course for you?

✕  Not for you if…

The complete beginner
Python is still new to you and a matrix is unfamiliar territory. Nothing here is cruel, but nothing here slows down for a first programming language either.
The SDK reader
You want the two lines that return a depth image, and you have no intention of ever opening the layer underneath them.
The deep-learning-only engineer
You are looking for a monocular depth network to fine-tune. This course is classical geometry, and it argues on camera for why that is the right tool for real-time robotics.
The tutorial collector
You want a follow-along you can finish tonight, not a derivation of why the intrinsic matrix has the shape it has.
The person who wants a finished product
You are after a repository to clone and deploy. What is here is the understanding underneath one, built in pieces you assemble yourself.

✓  This IS for you if…

The engineer starting perception work
A camera has just become your responsibility, and calling it done when the image looks fine is not an option.
The founder who has to own calibration
Your product measures the world with cameras, and that measurement has to be yours to correct, defend and repeat on new hardware.
The researcher entering 3D vision
You can read the geometry but have never implemented it, and you want the runnable version that sits under the papers.
The engineer heading for visual odometry
Feature matching, optical flow and projection matrices are the front end of VO and SLAM, and you would rather not meet all three for the first time inside a pipeline that is already failing.
The one-person R&D department
There is no senior perception team behind you, so anything you cannot derive is something you cannot fix at three in the morning.

Prerequisites: comfortable Python and NumPy, and enough linear algebra to be unbothered by matrix multiplication and an inverse. Singular value decomposition and homogeneous coordinates are explained where they are used. You need a laptop running macOS, Ubuntu or Windows, and chapter 1 installs the environment with you. No camera is required: the captures, the checkerboard images and the calibration files are supplied, though a webcam and a printed board are enough if you want to calibrate your own.

The system you can draw by the end.

By Level 5 you can explain a 3D perception system from a raw image pair to a point in metres, and say which stage a bad number came from. Here is the exact stack you build, box by box. Every box is your own code.

Image to correspondences (Levels 1 and 2)
image
rows, columns, channels
mask and morphology
threshold, erode, dilate
convolution
edges, blur, Canny
FAST corners
detect
BRIEF and ORB
describe
match and flow
BFMatcher, Lucas-Kanade
Geometry, forward and backward (Levels 3 and 4)
world point
extrinsic transform
intrinsic matrix K
pixel u and v
checkerboard corners
calibrateCamera
distortion coefficients
stereoCalibrate and rectify
Correspondences to metric depth (Level 5)
rectified pair
matched points
triangulatePoints
StereoSGBM disparity
depth from focal length and baseline
XYZ in metres

This is the real workspace, not a brochure diagram: ch1_a_image_structure.ipynb through ch2_d_optical_flow.ipynb in the first code pack, and ch1_a_camera_intrinsics.ipynb, ch1_c_camera_extrinsics.ipynb, ch2_c_camera_calibration_stereo.ipynb, ch3_a_stereo_camera_triangulation.ipynb, ch3_b_stereo_camera_depth_map.ipynb, RotationUtils.py and calib_data_stereo.json in the second.

Six chapters, one path from pixels to metric depth.

6 chapters · 29 lessons · 162 minutes · 13 languages
Module 01
Introduction
4 lessons
  • 01Course Intro
  • 02VSCode Installation
  • 03Conda Installation
  • 04Course Environment Setup in Conda
Module 02
ch2. Key Concepts of CV for Robotics
5 lessons
  • 01Image as Data
  • 02Cropping The Image
  • 03Filtering the RED
  • 04Detecting the RED
  • 05Tracking the RED
Module 03
ch3. Extracting 2D Spatial Information
3 lessons
  • 01The First Image Processing
  • 02Feature Descriptors and Feature Matching
  • 03Optical Flow
Module 04
ch4. Image Formation and Camera Parameters
5 lessons
  • 01Camera Intrinsics Quick Dive
  • 02Camera Intrinsics Python Code
  • 03Camera Intrinsics Deeper Dive
  • 04Camera Extrinsic Parameters
  • 05Camera Extrinsic Parameters Python Code
Module 05
ch5. Camera Calibration
6 lessons
  • 01Introduction
  • 02Camera Calibration Simple Concept
  • 03Camera Calibration Simple Concept in Python
  • 04Camera Calibration with Distortion
  • 05Camera Calibration using OpenCV Python
Module 06
ch6. 3D Depth Estimation
5 lessons
  • 013D Depth Estimation - Triangulation
  • 023D Depth Estimation - Triangulation Code
  • 033D Depth Estimation - Disparity
  • 043D Depth Estimation - Disparity Code
  • 05Outro

Chapter order matches the produced course, and the lesson list is pulled live from the course itself. Chapters 1 to 3 are image processing in Python and OpenCV; chapters 4 to 6 are the 3D geometry, calibration and stereo depth.

Taught by an engineer who publishes on camera motion estimation and calibrates cameras for a living.

Every claim below is checkable: a paper number, a thesis, or a pipeline in use.

Published

Two first-author AIAA conference papers, on visual-inertial odometry for a UAV using deep learning (AIAA 2019-1410) and on an uncrewed aerial system framework for human-robot interaction (AIAA 2018-2984).

Built

An automated multi-camera calibration pipeline using Kalibr and OpenCV, supporting checkerboard, ChArUco and AprilGrid targets, with multi-lens intrinsics validated by reprojection-error checks.

Education

B.S. in Computer Science and Engineering with an artificial intelligence specialization, and an M.S. in Aeronautical and Astronautical Engineering at The Ohio State University, fully funded, with a thesis on estimating monocular camera ego-motion.

Elliot Lee, aerospace autonomy engineer.

Founder of Ubicoders Cameras have been his instrument since 2014, when his undergraduate research at Ohio State navigated a multirotor indoors from vision alone. His graduate thesis estimated a monocular camera's ego-motion and its uncertainty, published first-author at AIAA. Today he runs a multi-camera calibration pipeline and an indoor positioning lab that localizes drones from fiducial boards, which is the same geometry this course starts from.

The world isn't flat. It is a rich three-dimensional space for robots and autonomous vehicles to move through it safely and intelligently.

In real life, no one is going to give us the corresponding numeric values. Therefore, we'll need to estimate them ourselves.

verbatim, from the course

Instructor portrait

A real person answers.

Ask in the discussion thread on the lesson itself, or in the Discord forum. The instructor is notified for every post and answers there himself. A calibration question that arrives with the board, the capture set and the reprojection error attached gets a far better answer than one without, so bring the numbers.

Discord forum thread showing a student question about a poor calibration result, with the checkerboard capture attached and the instructor's reply underneath

Proof of skill, not attendance.

A verifiable Certificate of Completion recording that you implemented the camera projection model, calibrated a real lens and a stereo pair, and recovered metric 3D depth by triangulation and by disparity. It is not a licence and it is not a degree. It is a statement of what you built, which is the only thing this audience checks anyway.

Certificate of Completion for the Computer Vision course, showing the learner's name and a verification code

The questions everyone asks first.

Why not just buy a depth camera and read the numbers?
EL
Buy one, and use it. The problem starts the day the rig takes a knock, the focus ring moves, or the depth quietly degrades with range, and nobody on your team can say whether the fault is the calibration, the rectification or the matcher. This course is for that day. It is also the reason the same commercial stereo camera appears in the course as a comparison rather than as the answer.
Why classical geometry instead of a monocular depth network?
EL
Because on a robot the geometry still wins. Single-camera depth networks are impressive and are covered everywhere, but they are computationally heavy and not accurate enough for real-time robotic use, and the course says so on camera rather than pretending the choice does not exist. Two cameras and the geometry give a metric number you can derive, check and defend.
Do I need the cameras, the checkerboard or any hardware?
EL
No. Every capture is supplied: the checkerboard sets, the stereo pairs and the calibration files. A webcam and a printed board are enough if you want to calibrate your own camera afterwards, and the course shows you how to generate the board.

Answering the catch.

What background do I really need?+
Comfortable Python and NumPy, and linear algebra to the level of matrix multiplication and an inverse. Homogeneous coordinates, the singular value decomposition and RQ factorization are explained where they are used, not assumed. If Python itself is new, start with Robotics 101 and come back.
Is under three hours of video enough for a subject this size?+
Which tools and libraries does it use?+
Do I get the code, or is it only shown on screen?+
Does this cover visual odometry or SLAM?+
Does it cover deep learning for vision?+
How long do I have access, and in what languages?+

One payment. The whole geometry layer. Yours for good.

Everything needed to build 3D perception you own, from a pixel index to a position in metres.

29 video lessons across 6 chapters, from images as data to stereo depth, with subtitles in 13 languages
Both notebook workspaces: the image-processing pack and the geometry, calibration and stereo pack
The captures used in the lessons, including checkerboard sets, stereo pairs and calibration files
Runs on macOS, Ubuntu or Windows with conda, and needs no camera to follow
Course discussion threads and the Discord forum, answered by the instructor
A verifiable certificate of completion
Lifetime access, at your own pace

Own the measurement.

You can reach this on your own, the way the instructor did: a textbook, a stack of OpenCV documentation and a lens that refuses to agree with either. This is that path compressed into six chapters, with the derivations, the real captures and the checks against known distances included, and the choice is entirely yours.

29 lessons6 chapters162 minutes of videoPython and OpenCVLevel 0 to 513 languagesNo camera requiredLifetime access
One-time payment

Full lifetime access

  • Lifetime access — learn entirely at your pace
  • Every video lesson, from first principles to mastery
  • All source code & course projects
$190+ taxone-time

Applicable sales tax / VAT is calculated at checkout based on your location.

AccessLifetime
FormatSelf-paced video
Secure viaPaddle.com

Secure checkout via Paddle.com

What this unlocks.

3D vision is the layer the rest of visual navigation stands on. Once projection, calibration and triangulation are yours, the things that used to read as research projects become the next build.

Visual odometryVisual SLAMA custom navigation stack on embedded hardwareYour own uncrewed systems lab
Not ready today?
Get the next course and the next build when they ship.
Visit ubicoders.com
Lifetime access13 subtitle languagesNo camera required