From 2eb00ed8dd2f803ba8809e90c08e7263449a0fd8 Mon Sep 17 00:00:00 2001 From: almaz Date: Wed, 20 Nov 2024 19:14:21 +0100 Subject: [PATCH 01/12] test sdk branch --- serve/requirements.txt | 7 +++++++ train/requirements.txt | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 serve/requirements.txt create mode 100644 train/requirements.txt diff --git a/serve/requirements.txt b/serve/requirements.txt new file mode 100644 index 0000000..f4275fd --- /dev/null +++ b/serve/requirements.txt @@ -0,0 +1,7 @@ +# supervisely[model-benchmark]==6.73.232 + +# ultralytics==8.2.26 +# --extra-index-url https://download.pytorch.org/whl/cu113 +# torch==1.10.1+cu113 +# torchvision==0.11.2+cu113 +git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file diff --git a/train/requirements.txt b/train/requirements.txt new file mode 100644 index 0000000..f4275fd --- /dev/null +++ b/train/requirements.txt @@ -0,0 +1,7 @@ +# supervisely[model-benchmark]==6.73.232 + +# ultralytics==8.2.26 +# --extra-index-url https://download.pytorch.org/whl/cu113 +# torch==1.10.1+cu113 +# torchvision==0.11.2+cu113 +git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file From 96c66ce777cfd62fc37011a71ad6caf14d4c2b85 Mon Sep 17 00:00:00 2001 From: almaz Date: Mon, 25 Nov 2024 23:43:45 +0100 Subject: [PATCH 02/12] small changes --- train/src/main.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/train/src/main.py b/train/src/main.py index 0b1029e..bdd6114 100644 --- a/train/src/main.py +++ b/train/src/main.py @@ -2217,9 +2217,6 @@ def get_image_infos_by_split(split: list): sly.logger.info( f"Predictions project name: {bm.dt_project_info.name}. Workspace_id: {bm.dt_project_info.workspace_id}" ) - sly.logger.info( - f"Differences project name: {bm.diff_project_info.name}. Workspace_id: {bm.diff_project_info.workspace_id}" - ) except Exception as e: sly.logger.error(f"Model benchmark failed. {repr(e)}", exc_info=True) creating_report_f.hide() @@ -2228,8 +2225,6 @@ def get_image_infos_by_split(split: list): try: if bm.dt_project_info: api.project.remove(bm.dt_project_info.id) - if bm.diff_project_info: - api.project.remove(bm.diff_project_info.id) except Exception as e2: pass # ----------------------------------------------- - ---------------------------------------------- # @@ -3171,6 +3166,8 @@ def get_image_infos_by_split(split: list): dataset_name, image_names, ) in image_names_per_dataset.items(): + if "/" in dataset_name: + dataset_name = dataset_name.split("/")[-1] ds_info = ds_infos_dict[dataset_name] image_infos.extend( api.image.get_list( @@ -3236,6 +3233,7 @@ def get_image_infos_by_split(split: list): # 4. Evaluate bm._evaluate(gt_project_path, dt_project_path) + bm._dump_eval_inference_info(bm._eval_inference_info) # 5. Upload evaluation results eval_res_dir = get_eval_results_dir_name( @@ -3266,9 +3264,6 @@ def get_image_infos_by_split(split: list): sly.logger.info( f"Predictions project name: {bm.dt_project_info.name}. Workspace_id: {bm.dt_project_info.workspace_id}" ) - sly.logger.info( - f"Differences project name: {bm.diff_project_info.name}. Workspace_id: {bm.diff_project_info.workspace_id}" - ) except Exception as e: sly.logger.error(f"Model benchmark failed. {repr(e)}", exc_info=True) creating_report_f.hide() @@ -3277,8 +3272,6 @@ def get_image_infos_by_split(split: list): try: if bm.dt_project_info: api.project.remove(bm.dt_project_info.id) - if bm.diff_project_info: - api.project.remove(bm.diff_project_info.id) except Exception as e2: pass # ----------------------------------------------- - ---------------------------------------------- # From 2d5441c5cfcc9d6c9dcefb178a9e5ff1cdbdbbb0 Mon Sep 17 00:00:00 2001 From: almaz Date: Tue, 26 Nov 2024 18:04:16 +0100 Subject: [PATCH 03/12] add onnxruntime --- serve/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/serve/requirements.txt b/serve/requirements.txt index f4275fd..ee9895b 100644 --- a/serve/requirements.txt +++ b/serve/requirements.txt @@ -4,4 +4,5 @@ # --extra-index-url https://download.pytorch.org/whl/cu113 # torch==1.10.1+cu113 # torchvision==0.11.2+cu113 -git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file +git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark +onnxruntime==1.18.0 \ No newline at end of file From cb5246205d828c89d52c7d3e92e2de19733f8e96 Mon Sep 17 00:00:00 2001 From: Almaz <79905215+almazgimaev@users.noreply.github.com> Date: Tue, 26 Nov 2024 19:21:55 +0100 Subject: [PATCH 04/12] add type field --- export_weights/config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/export_weights/config.json b/export_weights/config.json index beba6d6..181d3eb 100644 --- a/export_weights/config.json +++ b/export_weights/config.json @@ -1,5 +1,6 @@ { "name": "Export YOLOv8 weights", + "type": "app", "description": "to TorchScript and ONNX formats", "categories": [ "neural network", From 054e55dd896fc915f4556f2eeca2043a6080e007 Mon Sep 17 00:00:00 2001 From: almaz Date: Tue, 26 Nov 2024 19:27:30 +0100 Subject: [PATCH 05/12] change onnxruntime to onnxruntime-gpu --- serve/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serve/requirements.txt b/serve/requirements.txt index ee9895b..a5b4a74 100644 --- a/serve/requirements.txt +++ b/serve/requirements.txt @@ -4,5 +4,5 @@ # --extra-index-url https://download.pytorch.org/whl/cu113 # torch==1.10.1+cu113 # torchvision==0.11.2+cu113 -git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark -onnxruntime==1.18.0 \ No newline at end of file +onnxruntime-gpu==1.18.0 +git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file From f9bdaff86aa3c5852ccb8f9152b9b898416734ae Mon Sep 17 00:00:00 2001 From: almaz Date: Tue, 26 Nov 2024 19:35:33 +0100 Subject: [PATCH 06/12] add tensorrt --- serve/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/serve/requirements.txt b/serve/requirements.txt index a5b4a74..9e7da05 100644 --- a/serve/requirements.txt +++ b/serve/requirements.txt @@ -5,4 +5,5 @@ # torch==1.10.1+cu113 # torchvision==0.11.2+cu113 onnxruntime-gpu==1.18.0 +tensorrt==10.6.0.post1 git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file From 757c08f09ca0977ba3787418e4bc881a4c0b912b Mon Sep 17 00:00:00 2001 From: almaz Date: Tue, 26 Nov 2024 23:02:47 +0100 Subject: [PATCH 07/12] set task type for runtimes --- serve/src/yolov8.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/serve/src/yolov8.py b/serve/src/yolov8.py index cc70bae..ccdeb2f 100644 --- a/serve/src/yolov8.py +++ b/serve/src/yolov8.py @@ -578,7 +578,14 @@ def _load_runtime(self, weights_path: str, format: str, **kwargs): self._dump_yaml_checkpoint_info(model, os.path.dirname(weights_path)) else: exported_weights_path = weights_path - model = YOLO(exported_weights_path) + + task_type_map = { + "object detection": "detect", + "instance segmentation": "segment", + "pose estimation": "pose", + } + + model = YOLO(exported_weights_path, task=task_type_map[self.task_type]) return model def _load_onnx(self, weights_path: str): From 7b64c5533455f799c3df8a25cb2596927749694b Mon Sep 17 00:00:00 2001 From: almaz Date: Tue, 26 Nov 2024 23:19:43 +0100 Subject: [PATCH 08/12] test with latest sly release --- serve/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serve/requirements.txt b/serve/requirements.txt index 9e7da05..06e507f 100644 --- a/serve/requirements.txt +++ b/serve/requirements.txt @@ -6,4 +6,4 @@ # torchvision==0.11.2+cu113 onnxruntime-gpu==1.18.0 tensorrt==10.6.0.post1 -git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file +# git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file From 21394c03728e75b09640097535d6352aea948ac8 Mon Sep 17 00:00:00 2001 From: almaz Date: Tue, 26 Nov 2024 23:44:13 +0100 Subject: [PATCH 09/12] sdk branch --- serve/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serve/requirements.txt b/serve/requirements.txt index 06e507f..9e7da05 100644 --- a/serve/requirements.txt +++ b/serve/requirements.txt @@ -6,4 +6,4 @@ # torchvision==0.11.2+cu113 onnxruntime-gpu==1.18.0 tensorrt==10.6.0.post1 -# git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file +git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file From 1364d319c3fc737505995ca34aa16d213d9d07c2 Mon Sep 17 00:00:00 2001 From: almaz Date: Wed, 27 Nov 2024 10:58:54 +0100 Subject: [PATCH 10/12] test docker image --- serve/config.json | 2 +- serve/requirements.txt | 5 +++-- train/config.json | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/serve/config.json b/serve/config.json index 9a952cc..c610a55 100644 --- a/serve/config.json +++ b/serve/config.json @@ -21,7 +21,7 @@ "deployed_nn" ], "community_agent": false, - "docker_image": "supervisely/yolov8:1.0.35", + "docker_image": "supervisely/yolov8:1.0.36", "instance_version": "6.12.5", "entrypoint": "python3 -m uvicorn src.main:m.app --app-dir ./serve --host 0.0.0.0 --port 8000 --ws websockets", "port": 8000, diff --git a/serve/requirements.txt b/serve/requirements.txt index 9e7da05..182f327 100644 --- a/serve/requirements.txt +++ b/serve/requirements.txt @@ -4,6 +4,7 @@ # --extra-index-url https://download.pytorch.org/whl/cu113 # torch==1.10.1+cu113 # torchvision==0.11.2+cu113 -onnxruntime-gpu==1.18.0 -tensorrt==10.6.0.post1 + +# onnxruntime-gpu==1.18.0 +# tensorrt==10.6.0.post1 git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file diff --git a/train/config.json b/train/config.json index f3af406..c228b09 100644 --- a/train/config.json +++ b/train/config.json @@ -11,7 +11,7 @@ "train" ], "description": "Dashboard to configure, start and monitor YOLOv8 | v9 | v10 | v11 training", - "docker_image": "supervisely/yolov8:1.0.35", + "docker_image": "supervisely/yolov8:1.0.36", "instance_version": "6.12.5", "entrypoint": "python3 -m uvicorn src.main:app --app-dir ./train --host 0.0.0.0 --port 8000 --ws websockets", "task_location": "workspace_tasks", From 38246ae8b9f66625995a9712ad9f73fafd9df02a Mon Sep 17 00:00:00 2001 From: almaz Date: Thu, 28 Nov 2024 13:09:43 +0100 Subject: [PATCH 11/12] parse architecture yolo11 --- serve/src/yolov8.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/serve/src/yolov8.py b/serve/src/yolov8.py index ccdeb2f..8f38d9c 100644 --- a/serve/src/yolov8.py +++ b/serve/src/yolov8.py @@ -691,7 +691,10 @@ def parse_model_name(checkpoint_name: str): def get_arch_from_model_name(model_name: str): # yolov8n-det - p = r"yolov(\d+)" + if "11" in model_name: + p = r"yolo(\d+)" + else: + p = r"yolov(\d+)" match = re.match(p, model_name.lower()) if match: return f"YOLOv{match.group(1)}" From 0d3ca9545c349c70f848c00f2eeb8ac4b69904a9 Mon Sep 17 00:00:00 2001 From: almaz Date: Thu, 28 Nov 2024 18:35:04 +0100 Subject: [PATCH 12/12] update dependencies --- docker/Dockerfile | 10 ++++++++-- serve/config.json | 2 +- serve/requirements.txt | 10 ---------- train/config.json | 2 +- train/dev_requirements.txt | 2 +- train/requirements.txt | 7 ------- 6 files changed, 11 insertions(+), 22 deletions(-) delete mode 100644 serve/requirements.txt delete mode 100644 train/requirements.txt diff --git a/docker/Dockerfile b/docker/Dockerfile index d5811e0..10b9212 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,12 +3,15 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt update && apt install python3-pip -y RUN apt-get install -y git +RUN pip3 install nvidia-cudnn-cu11==8.9.4.25 --no-cache-dir +RUN pip3 install --pre --extra-index-url https://pypi.nvidia.com/ tensorrt==9.0.1.post11.dev4 --no-cache-dir + RUN pip3 install networkx==2.8.8 RUN pip3 install torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu121 RUN pip3 install protobuf==3.20.1 RUN pip3 install onnx==1.12.0 -RUN apt-get install ffmpeg libgeos-dev libsm6 libxext6 libexiv2-dev libxrender-dev libboost-all-dev -y +RUN apt update && apt-get install ffmpeg libgeos-dev libsm6 libxext6 libexiv2-dev libxrender-dev libboost-all-dev -y RUN pip3 install requests==2.28.2 urllib3==1.26.15 RUN pip3 install packaging==21.3 @@ -16,7 +19,10 @@ RUN pip3 install dill==0.3.8 RUN pip3 install ruamel.yaml==0.17.21 RUN pip3 install ultralytics==8.3.15 -RUN python3 -m pip install supervisely[tracking,model-benchmark]==6.73.232 +RUN pip3 install onnxruntime-gpu==1.18.0 +RUN pip3 install dill==0.2.8.2 tf2onnx==1.16.1 skl2onnx==1.17.0 +RUN pip3 uninstall -y nvidia-cudnn-cu11 +RUN python3 -m pip install supervisely[tracking,model-benchmark]==6.73.239 RUN python3 -c "from supervisely.nn.tracker import *" LABEL python_sdk_version=6.73.232 diff --git a/serve/config.json b/serve/config.json index c610a55..48d837e 100644 --- a/serve/config.json +++ b/serve/config.json @@ -21,7 +21,7 @@ "deployed_nn" ], "community_agent": false, - "docker_image": "supervisely/yolov8:1.0.36", + "docker_image": "supervisely/yolov8:1.0.38", "instance_version": "6.12.5", "entrypoint": "python3 -m uvicorn src.main:m.app --app-dir ./serve --host 0.0.0.0 --port 8000 --ws websockets", "port": 8000, diff --git a/serve/requirements.txt b/serve/requirements.txt deleted file mode 100644 index 182f327..0000000 --- a/serve/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -# supervisely[model-benchmark]==6.73.232 - -# ultralytics==8.2.26 -# --extra-index-url https://download.pytorch.org/whl/cu113 -# torch==1.10.1+cu113 -# torchvision==0.11.2+cu113 - -# onnxruntime-gpu==1.18.0 -# tensorrt==10.6.0.post1 -git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file diff --git a/train/config.json b/train/config.json index c228b09..8b0703b 100644 --- a/train/config.json +++ b/train/config.json @@ -11,7 +11,7 @@ "train" ], "description": "Dashboard to configure, start and monitor YOLOv8 | v9 | v10 | v11 training", - "docker_image": "supervisely/yolov8:1.0.36", + "docker_image": "supervisely/yolov8:1.0.38", "instance_version": "6.12.5", "entrypoint": "python3 -m uvicorn src.main:app --app-dir ./train --host 0.0.0.0 --port 8000 --ws websockets", "task_location": "workspace_tasks", diff --git a/train/dev_requirements.txt b/train/dev_requirements.txt index 5208e87..5b8fa35 100644 --- a/train/dev_requirements.txt +++ b/train/dev_requirements.txt @@ -1 +1 @@ -supervisely[model-benchmark]==6.73.232 +supervisely[model-benchmark]==6.73.239 diff --git a/train/requirements.txt b/train/requirements.txt deleted file mode 100644 index f4275fd..0000000 --- a/train/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -# supervisely[model-benchmark]==6.73.232 - -# ultralytics==8.2.26 -# --extra-index-url https://download.pytorch.org/whl/cu113 -# torch==1.10.1+cu113 -# torchvision==0.11.2+cu113 -git+https://github.com/supervisely/supervisely.git@sem_seg_benchmark \ No newline at end of file