Skip to content

Commit

Permalink
👋 initial commit (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
SkalskiP authored Mar 14, 2023
1 parent 53274a3 commit 06575a8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ fire
ultralytics>=8.0.43,<8.0.44
sahi>=0.11.11,<0.12.0
pandas
roboflow>= 0.2.32
30 changes: 30 additions & 0 deletions ultralyticsplus/roboflow_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import re

from roboflow import Roboflow

from ultralyticsplus.ultralytics_utils import LOGGER


def extract_roboflow_metadata(url: str) -> tuple:
match = re.search(r'https://(?:app|universe)\.roboflow\.com/([^/]+)/([^/]+)(?:/dataset)?/([^/]+)', url)
if match:
workspace_name = match.group(1)
project_name = match.group(2)
project_version = match.group(3)
return workspace_name, project_name, project_version
else:
raise ValueError(f"Invalid Roboflow dataset url ❌ "
f"Expected: https://universe.roboflow.com/workspace_name/project_name/project_version. "
f"Given: {url}")


def push_to_roboflow_universe(
exp_dir: str,
roboflow_url: str,
roboflow_token: str
):
workspace_name, project_name, project_version = extract_roboflow_metadata(url=roboflow_url)
rf = Roboflow(api_key=roboflow_token)
project_version = rf.workspace(workspace_name).project(project_name).version(int(project_version))
LOGGER.info(f"Uploading model from local: {exp_dir} to Roboflow: {project_version.id}")
project_version.deploy(model_type="yolov8", model_path=exp_dir)

0 comments on commit 06575a8

Please sign in to comment.