-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Motivation
Standard ArUco marker detection fails when markers are partially obscured by a repeating grid pattern. This is a common problem in robotic vision, especially when the camera's line of sight is obstructed by structural elements. We need a robust method to preprocess the image to "remove" the grid, making the ArUco markers fully detectable.
The approach:
- Use Fourier image processing to identify and remove the periodic grid pattern from the image.
- Apply perspective warp to the image to magnify the grid's repeating nature, making it easier to filter in the frequency domain.
- After filtering, the markers may appear as fragmented or disconnected regions. We need to implement a routine to merge these regions into a single, coherent marker.
- Finally, apply standard OpenCV ArUco detection to the processed image to locate and identify the markers.
Requirements:
- The final output must be an image where the standard ArUco detection algorithm successfully detects the marker with correct id.
Task
- Implement Smart Filtering:
- Perspective Warp: Create a function to apply a perspective warp to the image. This will normalize the grid pattern's appearance and enhance its periodicity.
- Fourier Image Processing: Implement a routine that takes a warped image and applies a notch or band-stop filter in the frequency domain to remove the grid pattern. The output should be a processed image where the grid is suppressed.
- Aruco Marker Reconstruction:
- Region Merging: Develop a function that identifies fragmented ArUco marker regions in the filtered image and merges them to form a single, complete marker. This may involve using morphological operations like dilation or connectivity analysis.
- Integrate with ArUco Detection:
- Detection Pipeline: Create a pipeline that takes the raw camera feed, passes it through the smart filter and reconstruction steps, and then feeds the final output to a standard ArUco detection algorithm in https://github.com/vortexntnu/vortex-aruco-detection.
Suggested Workflow
- Understand the proposed solution.
- Research:
- Perspective warp
- Fourier filtering
- Aruco detection pipeline in vortex-aruco-detection
Deliverables
- The whole filter can be implemented as a filter in https://github.com/vortexntnu/vortex-image-filtering or as a separate python node if python is the chosen language.
- A module for Fourier-based filtering (specifically, a notch filter) to remove the periodic noise.
- A function to merge fragmented marker regions in the processed image.
- An end-to-end demo/test script that showcases the complete process, from a gridded image to successful ArUco marker detection.
References
- [What Is Perspective Warping?](https://pub.towardsai.net/what-is-perspective-warping-opencv-and-python-750e7a13d386)
- [OpenCV Perspective Warping](https://docs.nvidia.com/vpi/algo_persp_warp.html)
- [Notch Filter for Periodic Noise](https://stackoverflow.com/questions/29235421/find-proper-notch-filter-to-remove-pattern-from-image)
- [Removing Periodic Noise with Fourier Transform](https://paulbourke.net/miscellaneous/imagefilter/)
- [Youtube Video about Fourier Transform for Periodic Noise Removal](https://www.youtube.com/watch?v=OOu5KP3Gvx0)
Metadata
Metadata
Assignees
Labels
No labels