|
from inference.core.env import API_KEY, API_KEY_ENV_NAMES |
|
from inference.core.exceptions import MissingApiKeyError |
|
from inference.core.models.stubs import ( |
|
ClassificationModelStub, |
|
InstanceSegmentationModelStub, |
|
KeypointsDetectionModelStub, |
|
ObjectDetectionModelStub, |
|
) |
|
from inference.core.registries.roboflow import get_model_type |
|
from inference.models import ( |
|
YOLACT, |
|
VitClassification, |
|
YOLONASObjectDetection, |
|
YOLOv5InstanceSegmentation, |
|
YOLOv5ObjectDetection, |
|
YOLOv7InstanceSegmentation, |
|
YOLOv8Classification, |
|
YOLOv8InstanceSegmentation, |
|
YOLOv8ObjectDetection, |
|
) |
|
from inference.models.yolov8.yolov8_keypoints_detection import YOLOv8KeypointsDetection |
|
|
|
ROBOFLOW_MODEL_TYPES = { |
|
("classification", "stub"): ClassificationModelStub, |
|
("classification", "vit"): VitClassification, |
|
("classification", "yolov8n"): YOLOv8Classification, |
|
("classification", "yolov8s"): YOLOv8Classification, |
|
("classification", "yolov8m"): YOLOv8Classification, |
|
("classification", "yolov8l"): YOLOv8Classification, |
|
("classification", "yolov8x"): YOLOv8Classification, |
|
("object-detection", "stub"): ObjectDetectionModelStub, |
|
("object-detection", "yolov5"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov5v2s"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov5v6n"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov5v6s"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov5v6m"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov5v6l"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov5v6x"): YOLOv5ObjectDetection, |
|
("object-detection", "yolov8"): YOLOv8ObjectDetection, |
|
("object-detection", "yolov8s"): YOLOv8ObjectDetection, |
|
("object-detection", "yolov8n"): YOLOv8ObjectDetection, |
|
("object-detection", "yolov8s"): YOLOv8ObjectDetection, |
|
("object-detection", "yolov8m"): YOLOv8ObjectDetection, |
|
("object-detection", "yolov8l"): YOLOv8ObjectDetection, |
|
("object-detection", "yolov8x"): YOLOv8ObjectDetection, |
|
("object-detection", "yolo_nas_s"): YOLONASObjectDetection, |
|
("object-detection", "yolo_nas_m"): YOLONASObjectDetection, |
|
("object-detection", "yolo_nas_l"): YOLONASObjectDetection, |
|
("instance-segmentation", "stub"): InstanceSegmentationModelStub, |
|
( |
|
"instance-segmentation", |
|
"yolov5-seg", |
|
): YOLOv5InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov5n-seg", |
|
): YOLOv5InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov5s-seg", |
|
): YOLOv5InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov5m-seg", |
|
): YOLOv5InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov5l-seg", |
|
): YOLOv5InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov5x-seg", |
|
): YOLOv5InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolact", |
|
): YOLACT, |
|
( |
|
"instance-segmentation", |
|
"yolov7-seg", |
|
): YOLOv7InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8n", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8s", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8m", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8l", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8x", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8n-seg", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8s-seg", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8m-seg", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8l-seg", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8x-seg", |
|
): YOLOv8InstanceSegmentation, |
|
( |
|
"instance-segmentation", |
|
"yolov8-seg", |
|
): YOLOv8InstanceSegmentation, |
|
("keypoint-detection", "stub"): KeypointsDetectionModelStub, |
|
("keypoint-detection", "yolov8n"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8s"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8m"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8l"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8x"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8n-pose"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8s-pose"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8m-pose"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8l-pose"): YOLOv8KeypointsDetection, |
|
("keypoint-detection", "yolov8x-pose"): YOLOv8KeypointsDetection, |
|
} |
|
|
|
try: |
|
from inference.models import SegmentAnything |
|
|
|
ROBOFLOW_MODEL_TYPES[("embed", "sam")] = SegmentAnything |
|
except: |
|
pass |
|
|
|
try: |
|
from inference.models import Clip |
|
|
|
ROBOFLOW_MODEL_TYPES[("embed", "clip")] = Clip |
|
except: |
|
pass |
|
|
|
try: |
|
from inference.models import Gaze |
|
|
|
ROBOFLOW_MODEL_TYPES[("gaze", "l2cs")] = Gaze |
|
except: |
|
pass |
|
|
|
try: |
|
from inference.models import DocTR |
|
|
|
ROBOFLOW_MODEL_TYPES[("ocr", "doctr")] = DocTR |
|
except: |
|
pass |
|
|
|
try: |
|
from inference.models import GroundingDINO |
|
|
|
ROBOFLOW_MODEL_TYPES[("object-detection", "grounding-dino")] = GroundingDINO |
|
except: |
|
pass |
|
|
|
try: |
|
from inference.models import CogVLM |
|
|
|
ROBOFLOW_MODEL_TYPES[("llm", "cogvlm")] = CogVLM |
|
except: |
|
pass |
|
|
|
try: |
|
from inference.models import YOLOWorld |
|
|
|
ROBOFLOW_MODEL_TYPES[("object-detection", "yolo-world")] = YOLOWorld |
|
except: |
|
pass |
|
|
|
|
|
def get_roboflow_model(model_id, api_key=API_KEY, **kwargs): |
|
task, model = get_model_type(model_id, api_key=api_key) |
|
return ROBOFLOW_MODEL_TYPES[(task, model)](model_id, api_key=api_key, **kwargs) |
|
|