Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segment task #30

Open
NSonTung463 opened this issue May 25, 2024 · 4 comments
Open

Segment task #30

NSonTung463 opened this issue May 25, 2024 · 4 comments

Comments

@NSonTung463
Copy link

When will team release task segmentation?

@alexkutsan
Copy link

Waiting for this feature as well.

@TheYoungBeast
Copy link

It seems YOLOv10 supports segmentation

Thanks for your interest! Achieving the task of rotating target detection and segmentation is valuable. While there are no corresponding pre-trained weights yet, YOLOv10 can support these tasks like YOLOv8.

Originally posted by @jameslahm in #4 (comment)

@lijoe123
Copy link

lijoe123 commented Jun 4, 2024

It seems YOLOv10 supports segmentation

Thanks for your interest! Achieving the task of rotating target detection and segmentation is valuable. While there are no corresponding pre-trained weights yet, YOLOv10 can support these tasks like YOLOv8.

Originally posted by @jameslahm in #4 (comment)

Hey bro @TheYoungBeast ! Do you know how to use the yolov10 segmentation?

@TheYoungBeast
Copy link

It seems YOLOv10 supports segmentation

Thanks for your interest! Achieving the task of rotating target detection and segmentation is valuable. While there are no corresponding pre-trained weights yet, YOLOv10 can support these tasks like YOLOv8.

Originally posted by @jameslahm in #4 (comment)

Hey bro @TheYoungBeast ! Do you know how to use the yolov10 segmentation?

It is not implemented in ultralytics yet, I think.
For example - there is only a loss function for detect task in YOLOv10 (https://github.com/THU-MIG/yolov10/blob/main/ultralytics/utils/loss.py#L717)
You would have to implement v8SegmentationLoss function equivalent for YOLOv10 and override task_map method to return 'segment' task.
You can try to reuse the v8 methods:

class YOLOv10(Model, ....)
 @property
    def task_map(self):
        """Map head to model, trainer, validator, and predictor classes."""
        return {
            "detect": {
                "model": YOLOv10DetectionModel,
                "trainer": YOLOv10DetectionTrainer,
                "validator": YOLOv10DetectionValidator,
                "predictor": YOLOv10DetectionPredictor,
            },
            "segment": {
                "model": SegmentationModel,
                "trainer": yolo.segment.SegmentationTrainer,
                "validator": yolo.segment.SegmentationValidator,
                "predictor": yolo.segment.SegmentationPredictor,
            },  
        }

It will start the training process for segmentation (task), although it will crash during the validation process (because v8 loss function seems to be not compatible with v10)

I might be wrong on this topic, I have little to no experience with this framework/library...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants