35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
||
|
|
||
|
from pathlib import Path
|
||
|
|
||
|
from ultralytics.engine.model import Model
|
||
|
|
||
|
from .predict import FastSAMPredictor
|
||
|
from .val import FastSAMValidator
|
||
|
|
||
|
|
||
|
class FastSAM(Model):
|
||
|
"""
|
||
|
FastSAM model interface.
|
||
|
|
||
|
Example:
|
||
|
```python
|
||
|
from ultralytics import FastSAM
|
||
|
|
||
|
model = FastSAM('last.pt')
|
||
|
results = model.predict('ultralytics/assets/bus.jpg')
|
||
|
```
|
||
|
"""
|
||
|
|
||
|
def __init__(self, model='FastSAM-x.pt'):
|
||
|
"""Call the __init__ method of the parent class (YOLO) with the updated default model."""
|
||
|
if str(model) == 'FastSAM.pt':
|
||
|
model = 'FastSAM-x.pt'
|
||
|
assert Path(model).suffix not in ('.yaml', '.yml'), 'FastSAM models only support pre-trained models.'
|
||
|
super().__init__(model=model, task='segment')
|
||
|
|
||
|
@property
|
||
|
def task_map(self):
|
||
|
"""Returns a dictionary mapping segment task to corresponding predictor and validator classes."""
|
||
|
return {'segment': {'predictor': FastSAMPredictor, 'validator': FastSAMValidator}}
|