lole-elol / tum_cv_challenge_SS23

2 stars 2 forks source link

Add preprocessing steps for better 3D reconstruction results #8

Closed danielsanjosepro closed 1 year ago

danielsanjosepro commented 1 year ago
MariusGhica commented 1 year ago

I looked at it and I tried the canny filter with the Hough transformation a little bit.

From the approach I see the following:

  1. detect features with SIFT, SURF, Harris etc.
  2. preprocess images: If necessary, preprocess images to enhance features or remove noise. This step may include operations such as image filtering, resizing or contrast adjustment.
  3. perform Hough transform
  4. match features with Hough transform results
  5. refine matches and triangulation: Refine the feature matches by applying techniques like RANSAC (Random Sample Consensus) or geometric constraints. Then, use the correspondences to perform triangulation and reconstruct the 3D structure of the scene.

In the example photo, I tested the Canny filter together with the Hough transformation. There are some threshhold values that can be optimised. The x's in the image are the start and end points of the edges that were detected.

canny_hough_trafo

lole-elol commented 1 year ago

Looks very promising

danielsanjosepro commented 1 year ago

Damn, looks good

lole-elol commented 1 year ago

@MariusGhica Have a look at https://github.com/lole-elol/tum_cv_challenge_SS23/pull/11 so we can extend the preprocessing I already started

lole-elol commented 1 year ago

we could validate that we detected (via harris) the start and end points of the line (or a feature reasonably close) in both pictures. Maybe by comparing all found start and end points of both images with their respective detected features via harris. Further we could check if we found the same lines in both pictures by comparing the length of the lines. If the euclidean movement between the to images was small enough, the lines should roughly have the same lenght (maybe relative threshold via average line length) We could then just connect the 3D projection of these two points and construct the line directly in the pointcloud.

danielsanjosepro commented 1 year ago

Completed by #36