Merge pull request #1704 from roboflow/fix/from_inference_to_support_deployed_roboflow_results

from_inference now supports roboflow results without json()
This commit is contained in:
LinasKo 2024-12-04 12:36:14 +02:00 committed by GitHub
commit c416474b63
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 5 deletions

View File

@ -1,6 +1,5 @@
from __future__ import annotations
from contextlib import suppress
from dataclasses import dataclass, field
from typing import Any, Dict, Iterator, List, Optional, Tuple, Union
@ -606,8 +605,10 @@ class Detections:
detections = sv.Detections.from_inference(result)
```
"""
with suppress(AttributeError):
if hasattr(roboflow_result, "dict"):
roboflow_result = roboflow_result.dict(exclude_none=True, by_alias=True)
elif hasattr(roboflow_result, "json"):
roboflow_result = roboflow_result.json()
xyxy, confidence, class_id, masks, trackers, data = process_roboflow_result(
roboflow_result=roboflow_result
)

View File

@ -1,6 +1,5 @@
from __future__ import annotations
from contextlib import suppress
from dataclasses import dataclass, field
from typing import Any, Dict, Iterable, Iterator, List, Optional, Tuple, Union
@ -204,9 +203,10 @@ class KeyPoints:
"You can retrieve it like so: inference_result = model.infer(image)[0]"
)
with suppress(AttributeError):
if hasattr(inference_result, "dict"):
inference_result = inference_result.dict(exclude_none=True, by_alias=True)
elif hasattr(inference_result, "json"):
inference_result = inference_result.json()
if not inference_result.get("predictions"):
return cls.empty()