To get started with this exercise, I begin by checking the initial state of the system, which means capturing images from the stereo cameras (left and right), and visualizing them.
We can observe images of the scene, which appear noticeably dark (this is interesting to keep in mind for the feature extraction process). I also noticed that because the robot is placed far away, the objects in the image seem elevated. I'm not sure if this will affect the final 3D reconstruction.
Additionally, the output from the image capture functions is an image in OpenCV format (numpy.ndarray
).
Next, I’m implementing a first version to extract feature points that I will use later as a base to find correspondences and reconstruct the 3D space.
I chose to use a Canny edge detector, since edges are more abundant than other types of interest points and are useful for generating a high number of features.
For this, I first convert the images to grayscale. I also apply a Gaussian filter to smooth the image and reduce noise, which helps avoid false edge detections. Finally, I apply the Canny algorithm with thresholds 50 and 150.
Looking at these results, we can see that many edges are not being detected, but for now this is more than enough to move on to the core of the task. However, in the future, I plan to explore the following aspects: