ultralytics 8.0.206__tar.gz → 8.0.207__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- {ultralytics-8.0.206/ultralytics.egg-info → ultralytics-8.0.207}/PKG-INFO +1 -1
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/__init__.py +1 -1
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/exporter.py +10 -13
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/track.py +3 -3
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/checks.py +17 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/downloads.py +5 -1
- {ultralytics-8.0.206 → ultralytics-8.0.207/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.0.206 → ultralytics-8.0.207}/CONTRIBUTING.md +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/LICENSE +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/MANIFEST.in +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/README.md +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/README.zh-CN.md +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/requirements.txt +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/setup.cfg +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/setup.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/tests/conftest.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/tests/test_cli.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/tests/test_cuda.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/tests/test_engine.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/tests/test_integrations.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/tests/test_python.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/DOTAv2.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/base.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/build.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.0.206 → ultralytics-8.0.207}/ultralytics.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.0.
|
|
3
|
+
Version: 8.0.207
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Home-page: https://github.com/ultralytics/ultralytics
|
|
6
6
|
Author: Ultralytics
|
|
@@ -69,7 +69,7 @@ from ultralytics.nn.modules import C2f, Detect, RTDETRDecoder
|
|
|
69
69
|
from ultralytics.nn.tasks import DetectionModel, SegmentationModel
|
|
70
70
|
from ultralytics.utils import (ARM64, DEFAULT_CFG, LINUX, LOGGER, MACOS, ROOT, WINDOWS, __version__, callbacks,
|
|
71
71
|
colorstr, get_default_args, yaml_save)
|
|
72
|
-
from ultralytics.utils.checks import check_imgsz, check_requirements, check_version
|
|
72
|
+
from ultralytics.utils.checks import check_imgsz, check_is_path_safe, check_requirements, check_version
|
|
73
73
|
from ultralytics.utils.downloads import attempt_download_asset, get_github_assets
|
|
74
74
|
from ultralytics.utils.files import file_size, spaces_in_path
|
|
75
75
|
from ultralytics.utils.ops import Profile
|
|
@@ -450,12 +450,9 @@ class Exporter:
|
|
|
450
450
|
f = Path(str(self.file).replace(self.file.suffix, f'_ncnn_model{os.sep}'))
|
|
451
451
|
f_ts = self.file.with_suffix('.torchscript')
|
|
452
452
|
|
|
453
|
-
|
|
454
|
-
if
|
|
455
|
-
|
|
456
|
-
elif (ROOT / pnnx_filename).is_file():
|
|
457
|
-
pnnx = ROOT / pnnx_filename
|
|
458
|
-
else:
|
|
453
|
+
name = Path('pnnx.exe' if WINDOWS else 'pnnx') # PNNX filename
|
|
454
|
+
pnnx = name if name.is_file() else ROOT / name
|
|
455
|
+
if not pnnx.is_file():
|
|
459
456
|
LOGGER.warning(
|
|
460
457
|
f'{prefix} WARNING ⚠️ PNNX not found. Attempting to download binary file from '
|
|
461
458
|
'https://github.com/pnnx/pnnx/.\nNote PNNX Binary file must be placed in current working directory '
|
|
@@ -465,12 +462,12 @@ class Exporter:
|
|
|
465
462
|
asset = [x for x in assets if system in x][0] if assets else \
|
|
466
463
|
f'https://github.com/pnnx/pnnx/releases/download/20230816/pnnx-20230816-{system}.zip' # fallback
|
|
467
464
|
asset = attempt_download_asset(asset, repo='pnnx/pnnx', release='latest')
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
465
|
+
if check_is_path_safe(Path.cwd(), asset): # avoid path traversal security vulnerability
|
|
466
|
+
unzip_dir = Path(asset).with_suffix('')
|
|
467
|
+
(unzip_dir / name).rename(pnnx) # move binary to ROOT
|
|
468
|
+
shutil.rmtree(unzip_dir) # delete unzip dir
|
|
469
|
+
Path(asset).unlink() # delete zip
|
|
470
|
+
pnnx.chmod(0o777) # set read, write, and execute permissions for everyone
|
|
474
471
|
|
|
475
472
|
ncnn_args = [
|
|
476
473
|
f'ncnnparam={f / "model.ncnn.param"}',
|
|
@@ -38,13 +38,13 @@ def on_predict_start(predictor, persist=False):
|
|
|
38
38
|
predictor.trackers = trackers
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
def on_predict_postprocess_end(predictor):
|
|
41
|
+
def on_predict_postprocess_end(predictor, persist=False):
|
|
42
42
|
"""Postprocess detected boxes and update with object tracking."""
|
|
43
43
|
bs = predictor.dataset.bs
|
|
44
44
|
path, im0s = predictor.batch[:2]
|
|
45
45
|
|
|
46
46
|
for i in range(bs):
|
|
47
|
-
if predictor.vid_path[i] != str(predictor.save_dir / Path(path[i]).name): # new video
|
|
47
|
+
if not persist and predictor.vid_path[i] != str(predictor.save_dir / Path(path[i]).name): # new video
|
|
48
48
|
predictor.trackers[i].reset()
|
|
49
49
|
|
|
50
50
|
det = predictor.results[i].boxes.cpu().numpy()
|
|
@@ -67,4 +67,4 @@ def register_tracker(model, persist):
|
|
|
67
67
|
persist (bool): Whether to persist the trackers if they already exist.
|
|
68
68
|
"""
|
|
69
69
|
model.add_callback('on_predict_start', partial(on_predict_start, persist=persist))
|
|
70
|
-
model.add_callback('on_predict_postprocess_end', on_predict_postprocess_end)
|
|
70
|
+
model.add_callback('on_predict_postprocess_end', partial(on_predict_postprocess_end, persist=persist))
|
|
@@ -463,6 +463,23 @@ def check_yaml(file, suffix=('.yaml', '.yml'), hard=True):
|
|
|
463
463
|
return check_file(file, suffix, hard=hard)
|
|
464
464
|
|
|
465
465
|
|
|
466
|
+
def check_is_path_safe(basedir, path):
|
|
467
|
+
"""
|
|
468
|
+
Check if the resolved path is under the intended directory to prevent path traversal.
|
|
469
|
+
|
|
470
|
+
Args:
|
|
471
|
+
basedir (Path | str): The intended directory.
|
|
472
|
+
path (Path | str): The path to check.
|
|
473
|
+
|
|
474
|
+
Returns:
|
|
475
|
+
(bool): True if the path is safe, False otherwise.
|
|
476
|
+
"""
|
|
477
|
+
base_dir_resolved = Path(basedir).resolve()
|
|
478
|
+
path_resolved = Path(path).resolve()
|
|
479
|
+
|
|
480
|
+
return path_resolved.is_file() and path_resolved.parts[:len(base_dir_resolved.parts)] == base_dir_resolved.parts
|
|
481
|
+
|
|
482
|
+
|
|
466
483
|
def check_imshow(warn=False):
|
|
467
484
|
"""Check if environment supports image displays."""
|
|
468
485
|
try:
|
|
@@ -159,7 +159,11 @@ def unzip_file(file, path=None, exclude=('.DS_Store', '__MACOSX'), exist_ok=Fals
|
|
|
159
159
|
return path
|
|
160
160
|
|
|
161
161
|
for f in TQDM(files, desc=f'Unzipping {file} to {Path(path).resolve()}...', unit='file', disable=not progress):
|
|
162
|
-
|
|
162
|
+
# Ensure the file is within the extract_path to avoid path traversal security vulnerability
|
|
163
|
+
if '..' in Path(f).parts:
|
|
164
|
+
LOGGER.warning(f'Potentially insecure file path: {f}, skipping extraction.')
|
|
165
|
+
continue
|
|
166
|
+
zipObj.extract(f, extract_path)
|
|
163
167
|
|
|
164
168
|
return path # return unzip dir
|
|
165
169
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.0.
|
|
3
|
+
Version: 8.0.207
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Home-page: https://github.com/ultralytics/ultralytics
|
|
6
6
|
Author: Ultralytics
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|