In processROIs, armor coordinates are converted to global image
coordinates before calling correctCorners. However, the function was
incorrectly receiving roi_gray (ROI local image) instead of the full
input image, causing coordinate system mismatch in findSymmetryAxis.
This fixes corner refinement accuracy when using fitLine-based light
detection in ROI-cached detection modes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add detector_mode parameter for mode selection:
- HYBRID_SYNC (0): YOLO runs every frame (original behavior)
- HYBRID_ROI_CACHE (1): YOLO runs every N frames, detection every frame
- Add roi_update_interval parameter (default 5) for ROI cache mode
- Add detector_mode.hpp for mode definitions
- Add AsyncDetector class skeleton for future async mode
- Add debug ROI visualization (blue rectangles)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use YOLO to detect armor ROI regions instead of full image
- Expand ROI by configurable pixels (default 75) for light detection
- Apply traditional binary + light detection within ROI
- Keep YOLO's number classification result
- Use LightCornerCorrector for corner refinement
- Add debug visualization for ROI regions (blue rectangles)
- Compatible input/output with armor_detector node
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>