Skip to content

Conversation

@MadsJJ
Copy link
Member

@MadsJJ MadsJJ commented Nov 14, 2025

Issue

Changes

  • Add yolo implementation
  • Add yolo node publishing both the seg mask and bbox with confidence

Additional info

Testing

  • Tested by using a using the debug topic in foxglove on the tacc2024 pipeline rosbag, using a minimal locally trained model.
  • Mask topic is also tested in foxglove.
  • Bbox topic has not been tested visually

MadsJJ added 30 commits October 22, 2025 13:55
…t downloads. This allows for simple gitignore for all datasets
@MadsJJ MadsJJ requested a review from gardeg November 14, 2025 19:55
@MadsJJ MadsJJ self-assigned this Nov 14, 2025
@MadsJJ MadsJJ added the enhancement New feature or request label Nov 14, 2025
@MadsJJ MadsJJ linked an issue Nov 14, 2025 that may be closed by this pull request
5 tasks
MadsJJ and others added 3 commits November 28, 2025 16:17
- Reorder Dockerfile to create the non-root user before copying source code.
- Add `chown` to workspace files to ensure the non-root user has write access.
- Remove redundant `--user` flag in run.sh to rely on the image's configured user.
Copy link
Contributor

@kluge7 kluge7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall be consistent if deciding to use type hints. Also look at feedback in the other pull requests: (#29 and #31). Also fix conflicts with main branch so that it can be merged in (to get updated CI checks)

@MadsJJ MadsJJ requested a review from kluge7 January 6, 2026 16:11
@MadsJJ MadsJJ marked this pull request as ready for review January 7, 2026 12:04
@codecov
Copy link

codecov bot commented Jan 7, 2026

Codecov Report

❌ Patch coverage is 0% with 161 lines in your changes missing coverage. Please review.
✅ Project coverage is 0.00%. Comparing base (8ca393d) to head (8618fa5).

Files with missing lines Patch % Lines
...ntation/vortex_image_segmentation/yolo_seg_node.py 0.00% 131 Missing ⚠️
...segmentation/vortex_image_segmentation/yolo_seg.py 0.00% 26 Missing ⚠️
vortex_image_segmentation/setup.py 0.00% 4 Missing ⚠️
Additional details and impacted files
@@          Coverage Diff          @@
##           main     #32    +/-   ##
=====================================
  Coverage      0   0.00%            
=====================================
  Files         0       3     +3     
  Lines         0     161   +161     
  Branches      0      14    +14     
=====================================
- Misses        0     161   +161     
Flag Coverage Δ
unittests 0.00% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
vortex_image_segmentation/setup.py 0.00% <0.00%> (ø)
...segmentation/vortex_image_segmentation/yolo_seg.py 0.00% <0.00%> (ø)
...ntation/vortex_image_segmentation/yolo_seg_node.py 0.00% <0.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@MadsJJ MadsJJ requested a review from jorgenfj January 9, 2026 13:44
Copy link

@jorgenfj jorgenfj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job.
Future improvements: Support different image operations, like resizing and scaling.
Also add a short README for the seg node

Comment on lines +8 to +9
pkg_share = get_package_share_directory('vortex_image_segmentation')
yolo_params = os.path.join(pkg_share, 'params', 'yolo_params.yaml')
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ehh, actually. 🤓
We don't need the intermediate pkg_share variable here

Comment on lines +18 to +19
compile: True
retina_masks: False # We dont need high res masks
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Me no understand...
Explain these parameters 🧙

Comment on lines +50 to +57
node_params = self.load_node_params()
self.input_topic: str = node_params.input_topic
self.output_bbox_topic: str = node_params.output_bbox_topic
self.output_mask_topic: str = node_params.output_mask_topic
self.debug_topic: str = node_params.debug_topic
self.pub_bbox: bool = node_params.pub_bbox
self.pub_mask: bool = node_params.pub_mask
self.pub_debug: bool = node_params.pub_debug
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could just keep the struct as the only member variable

Comment on lines +68 to +70
self.debug_publisher: Optional[Publisher] = None
self.bbox_pub: Optional[Publisher] = None
self.mask_pub: Optional[Publisher] = None
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this. Just guard with if whenever we use the publishers

Comment on lines +66 to +67
# compile=self.params.compile,
)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh yes.. Important param

Comment on lines +105 to +107
self.publish_bboxes_and_confidences(result, msg.header)
self.publish_masks(result, msg.header)
self.publish_debug_image(result, msg.header)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prefer guarding outside the function instead of inside the function call

Comment on lines +144 to +145
if getattr(self, "mask_pub", None) is None:
return
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These can be removed if we guard outside the function

*.swo
node_modules/
bags/
rosbags/
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not ignore both?

Comment on lines -176 to +188
data/
rosbags/
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not ignore both?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

YOLO node for instance segmentation

4 participants