Closed Scarabyte closed 6 years ago
I think the objective of this task is to crop the image so we don't get 'distracted' by unimportant features like trees on the side of the road or clouds in the sky. However, will this be handled by the image filtering routines? Do we need a separate issue? (From the filtered image, we still have to focus on the parts that we're interested in.)
Yes, this will be covered in image filtering and edge detection stories.
This may require calibration to determine the extent of the image to crop. Initially, we can make an assumption based on empirical evidence. But a full product, due to the different geometries in camera lenses, will need to be user-adjustable.
Another aspect to consider is whether the cropped area needs to be adjusted to "look into" the direction the vehicle is turning while driving around a bend in a road.
Seems like this is part of converting the image to 'sky view' #46
There are two ways of doing this: either a fixed portion of the image, or dynamically determined from the road horizon. To start, we should use the fixed portion which would be simpler to implement, and then consider using the dynamic approach later on.
Initial research shows the following options: 1) Take only the bottom part of the image as the area of interest, or try and find horizontal horizon line and crop everything above that 2) Create a polygon of some sort (encompassing line starts at the bottom of the image and ending at a single point beyond the horizon 3) Instead of cropping the image to areas of interest, filter the image for only colors that matter (in this case, yellow and white)
See the Bird’s-Eye-View Transform Example in the textbook. Also, this example uses fixed points for the transformation area https://www.programcreek.com/java-api-examples/?code=hgs1217/Paper-Melody/Paper-Melody-master/app/src/main/java/com/papermelody/core/calibration/Calibration.java (See the "public static TransformResult" section of the file.)
I have been trying to use this as a context to implement this story https://medium.com/@gruby/opencv-for-lane-detection-carnd-f9d58d077ee2
The steps seem to be: 1) Create a mask with an empty image 2) Create the polygon (area of interest) 3) And the mask with the image This will create only the lane highlighted, and all other objects in the image are removed.
I think perhaps for our first attempt we could consider this resolved with commit 7ad1bb31eed084569ea1fdaa09341ee8148232e5 which was based on some articles @rakshithv gave me
https://medium.com/@ldesegur/a-lane-detection-approach-for-self-driving-vehicles-c5ae1679f7ee
https://towardsdatascience.com/advanced-lane-finding-using-computer-vision-techniques-7f3230b6c6f2
We might try to improve it later, but the Fit Curves task in Issue #47 will modify it anyway.
Closing this because area of interest has been incorporated by commit 7ad1bb3 as part of sky/view
From an image of a road, identify the area and features of interest (i.e. locate the lane markings)