ultralytics-opencv-headless 8.3.242__py3-none-any.whl
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.
- tests/__init__.py +23 -0
- tests/conftest.py +59 -0
- tests/test_cli.py +131 -0
- tests/test_cuda.py +216 -0
- tests/test_engine.py +157 -0
- tests/test_exports.py +309 -0
- tests/test_integrations.py +151 -0
- tests/test_python.py +777 -0
- tests/test_solutions.py +371 -0
- ultralytics/__init__.py +48 -0
- ultralytics/assets/bus.jpg +0 -0
- ultralytics/assets/zidane.jpg +0 -0
- ultralytics/cfg/__init__.py +1026 -0
- ultralytics/cfg/datasets/Argoverse.yaml +78 -0
- ultralytics/cfg/datasets/DOTAv1.5.yaml +37 -0
- ultralytics/cfg/datasets/DOTAv1.yaml +36 -0
- ultralytics/cfg/datasets/GlobalWheat2020.yaml +68 -0
- ultralytics/cfg/datasets/HomeObjects-3K.yaml +32 -0
- ultralytics/cfg/datasets/ImageNet.yaml +2025 -0
- ultralytics/cfg/datasets/Objects365.yaml +447 -0
- ultralytics/cfg/datasets/SKU-110K.yaml +58 -0
- ultralytics/cfg/datasets/VOC.yaml +102 -0
- ultralytics/cfg/datasets/VisDrone.yaml +87 -0
- ultralytics/cfg/datasets/african-wildlife.yaml +25 -0
- ultralytics/cfg/datasets/brain-tumor.yaml +22 -0
- ultralytics/cfg/datasets/carparts-seg.yaml +44 -0
- ultralytics/cfg/datasets/coco-pose.yaml +64 -0
- ultralytics/cfg/datasets/coco.yaml +118 -0
- ultralytics/cfg/datasets/coco128-seg.yaml +101 -0
- ultralytics/cfg/datasets/coco128.yaml +101 -0
- ultralytics/cfg/datasets/coco8-grayscale.yaml +103 -0
- ultralytics/cfg/datasets/coco8-multispectral.yaml +104 -0
- ultralytics/cfg/datasets/coco8-pose.yaml +47 -0
- ultralytics/cfg/datasets/coco8-seg.yaml +101 -0
- ultralytics/cfg/datasets/coco8.yaml +101 -0
- ultralytics/cfg/datasets/construction-ppe.yaml +32 -0
- ultralytics/cfg/datasets/crack-seg.yaml +22 -0
- ultralytics/cfg/datasets/dog-pose.yaml +52 -0
- ultralytics/cfg/datasets/dota8-multispectral.yaml +38 -0
- ultralytics/cfg/datasets/dota8.yaml +35 -0
- ultralytics/cfg/datasets/hand-keypoints.yaml +50 -0
- ultralytics/cfg/datasets/kitti.yaml +27 -0
- ultralytics/cfg/datasets/lvis.yaml +1240 -0
- ultralytics/cfg/datasets/medical-pills.yaml +21 -0
- ultralytics/cfg/datasets/open-images-v7.yaml +663 -0
- ultralytics/cfg/datasets/package-seg.yaml +22 -0
- ultralytics/cfg/datasets/signature.yaml +21 -0
- ultralytics/cfg/datasets/tiger-pose.yaml +41 -0
- ultralytics/cfg/datasets/xView.yaml +155 -0
- ultralytics/cfg/default.yaml +130 -0
- ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +17 -0
- ultralytics/cfg/models/11/yolo11-cls.yaml +33 -0
- ultralytics/cfg/models/11/yolo11-obb.yaml +50 -0
- ultralytics/cfg/models/11/yolo11-pose.yaml +51 -0
- ultralytics/cfg/models/11/yolo11-seg.yaml +50 -0
- ultralytics/cfg/models/11/yolo11.yaml +50 -0
- ultralytics/cfg/models/11/yoloe-11-seg.yaml +48 -0
- ultralytics/cfg/models/11/yoloe-11.yaml +48 -0
- ultralytics/cfg/models/12/yolo12-cls.yaml +32 -0
- ultralytics/cfg/models/12/yolo12-obb.yaml +48 -0
- ultralytics/cfg/models/12/yolo12-pose.yaml +49 -0
- ultralytics/cfg/models/12/yolo12-seg.yaml +48 -0
- ultralytics/cfg/models/12/yolo12.yaml +48 -0
- ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +53 -0
- ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +45 -0
- ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +45 -0
- ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +57 -0
- ultralytics/cfg/models/v10/yolov10b.yaml +45 -0
- ultralytics/cfg/models/v10/yolov10l.yaml +45 -0
- ultralytics/cfg/models/v10/yolov10m.yaml +45 -0
- ultralytics/cfg/models/v10/yolov10n.yaml +45 -0
- ultralytics/cfg/models/v10/yolov10s.yaml +45 -0
- ultralytics/cfg/models/v10/yolov10x.yaml +45 -0
- ultralytics/cfg/models/v3/yolov3-spp.yaml +49 -0
- ultralytics/cfg/models/v3/yolov3-tiny.yaml +40 -0
- ultralytics/cfg/models/v3/yolov3.yaml +49 -0
- ultralytics/cfg/models/v5/yolov5-p6.yaml +62 -0
- ultralytics/cfg/models/v5/yolov5.yaml +51 -0
- ultralytics/cfg/models/v6/yolov6.yaml +56 -0
- ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +48 -0
- ultralytics/cfg/models/v8/yoloe-v8.yaml +48 -0
- ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +28 -0
- ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +28 -0
- ultralytics/cfg/models/v8/yolov8-cls.yaml +32 -0
- ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +58 -0
- ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +60 -0
- ultralytics/cfg/models/v8/yolov8-ghost.yaml +50 -0
- ultralytics/cfg/models/v8/yolov8-obb.yaml +49 -0
- ultralytics/cfg/models/v8/yolov8-p2.yaml +57 -0
- ultralytics/cfg/models/v8/yolov8-p6.yaml +59 -0
- ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +60 -0
- ultralytics/cfg/models/v8/yolov8-pose.yaml +50 -0
- ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +49 -0
- ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +59 -0
- ultralytics/cfg/models/v8/yolov8-seg.yaml +49 -0
- ultralytics/cfg/models/v8/yolov8-world.yaml +51 -0
- ultralytics/cfg/models/v8/yolov8-worldv2.yaml +49 -0
- ultralytics/cfg/models/v8/yolov8.yaml +49 -0
- ultralytics/cfg/models/v9/yolov9c-seg.yaml +41 -0
- ultralytics/cfg/models/v9/yolov9c.yaml +41 -0
- ultralytics/cfg/models/v9/yolov9e-seg.yaml +64 -0
- ultralytics/cfg/models/v9/yolov9e.yaml +64 -0
- ultralytics/cfg/models/v9/yolov9m.yaml +41 -0
- ultralytics/cfg/models/v9/yolov9s.yaml +41 -0
- ultralytics/cfg/models/v9/yolov9t.yaml +41 -0
- ultralytics/cfg/trackers/botsort.yaml +21 -0
- ultralytics/cfg/trackers/bytetrack.yaml +12 -0
- ultralytics/data/__init__.py +26 -0
- ultralytics/data/annotator.py +66 -0
- ultralytics/data/augment.py +2801 -0
- ultralytics/data/base.py +435 -0
- ultralytics/data/build.py +437 -0
- ultralytics/data/converter.py +855 -0
- ultralytics/data/dataset.py +834 -0
- ultralytics/data/loaders.py +704 -0
- ultralytics/data/scripts/download_weights.sh +18 -0
- ultralytics/data/scripts/get_coco.sh +61 -0
- ultralytics/data/scripts/get_coco128.sh +18 -0
- ultralytics/data/scripts/get_imagenet.sh +52 -0
- ultralytics/data/split.py +138 -0
- ultralytics/data/split_dota.py +344 -0
- ultralytics/data/utils.py +798 -0
- ultralytics/engine/__init__.py +1 -0
- ultralytics/engine/exporter.py +1574 -0
- ultralytics/engine/model.py +1124 -0
- ultralytics/engine/predictor.py +508 -0
- ultralytics/engine/results.py +1522 -0
- ultralytics/engine/trainer.py +974 -0
- ultralytics/engine/tuner.py +448 -0
- ultralytics/engine/validator.py +384 -0
- ultralytics/hub/__init__.py +166 -0
- ultralytics/hub/auth.py +151 -0
- ultralytics/hub/google/__init__.py +174 -0
- ultralytics/hub/session.py +422 -0
- ultralytics/hub/utils.py +162 -0
- ultralytics/models/__init__.py +9 -0
- ultralytics/models/fastsam/__init__.py +7 -0
- ultralytics/models/fastsam/model.py +79 -0
- ultralytics/models/fastsam/predict.py +169 -0
- ultralytics/models/fastsam/utils.py +23 -0
- ultralytics/models/fastsam/val.py +38 -0
- ultralytics/models/nas/__init__.py +7 -0
- ultralytics/models/nas/model.py +98 -0
- ultralytics/models/nas/predict.py +56 -0
- ultralytics/models/nas/val.py +38 -0
- ultralytics/models/rtdetr/__init__.py +7 -0
- ultralytics/models/rtdetr/model.py +63 -0
- ultralytics/models/rtdetr/predict.py +88 -0
- ultralytics/models/rtdetr/train.py +89 -0
- ultralytics/models/rtdetr/val.py +216 -0
- ultralytics/models/sam/__init__.py +25 -0
- ultralytics/models/sam/amg.py +275 -0
- ultralytics/models/sam/build.py +365 -0
- ultralytics/models/sam/build_sam3.py +377 -0
- ultralytics/models/sam/model.py +169 -0
- ultralytics/models/sam/modules/__init__.py +1 -0
- ultralytics/models/sam/modules/blocks.py +1067 -0
- ultralytics/models/sam/modules/decoders.py +495 -0
- ultralytics/models/sam/modules/encoders.py +794 -0
- ultralytics/models/sam/modules/memory_attention.py +298 -0
- ultralytics/models/sam/modules/sam.py +1160 -0
- ultralytics/models/sam/modules/tiny_encoder.py +979 -0
- ultralytics/models/sam/modules/transformer.py +344 -0
- ultralytics/models/sam/modules/utils.py +512 -0
- ultralytics/models/sam/predict.py +3940 -0
- ultralytics/models/sam/sam3/__init__.py +3 -0
- ultralytics/models/sam/sam3/decoder.py +546 -0
- ultralytics/models/sam/sam3/encoder.py +529 -0
- ultralytics/models/sam/sam3/geometry_encoders.py +415 -0
- ultralytics/models/sam/sam3/maskformer_segmentation.py +286 -0
- ultralytics/models/sam/sam3/model_misc.py +199 -0
- ultralytics/models/sam/sam3/necks.py +129 -0
- ultralytics/models/sam/sam3/sam3_image.py +339 -0
- ultralytics/models/sam/sam3/text_encoder_ve.py +307 -0
- ultralytics/models/sam/sam3/vitdet.py +547 -0
- ultralytics/models/sam/sam3/vl_combiner.py +160 -0
- ultralytics/models/utils/__init__.py +1 -0
- ultralytics/models/utils/loss.py +466 -0
- ultralytics/models/utils/ops.py +315 -0
- ultralytics/models/yolo/__init__.py +7 -0
- ultralytics/models/yolo/classify/__init__.py +7 -0
- ultralytics/models/yolo/classify/predict.py +90 -0
- ultralytics/models/yolo/classify/train.py +202 -0
- ultralytics/models/yolo/classify/val.py +216 -0
- ultralytics/models/yolo/detect/__init__.py +7 -0
- ultralytics/models/yolo/detect/predict.py +122 -0
- ultralytics/models/yolo/detect/train.py +227 -0
- ultralytics/models/yolo/detect/val.py +507 -0
- ultralytics/models/yolo/model.py +430 -0
- ultralytics/models/yolo/obb/__init__.py +7 -0
- ultralytics/models/yolo/obb/predict.py +56 -0
- ultralytics/models/yolo/obb/train.py +79 -0
- ultralytics/models/yolo/obb/val.py +302 -0
- ultralytics/models/yolo/pose/__init__.py +7 -0
- ultralytics/models/yolo/pose/predict.py +65 -0
- ultralytics/models/yolo/pose/train.py +110 -0
- ultralytics/models/yolo/pose/val.py +248 -0
- ultralytics/models/yolo/segment/__init__.py +7 -0
- ultralytics/models/yolo/segment/predict.py +109 -0
- ultralytics/models/yolo/segment/train.py +69 -0
- ultralytics/models/yolo/segment/val.py +307 -0
- ultralytics/models/yolo/world/__init__.py +5 -0
- ultralytics/models/yolo/world/train.py +173 -0
- ultralytics/models/yolo/world/train_world.py +178 -0
- ultralytics/models/yolo/yoloe/__init__.py +22 -0
- ultralytics/models/yolo/yoloe/predict.py +162 -0
- ultralytics/models/yolo/yoloe/train.py +287 -0
- ultralytics/models/yolo/yoloe/train_seg.py +122 -0
- ultralytics/models/yolo/yoloe/val.py +206 -0
- ultralytics/nn/__init__.py +27 -0
- ultralytics/nn/autobackend.py +958 -0
- ultralytics/nn/modules/__init__.py +182 -0
- ultralytics/nn/modules/activation.py +54 -0
- ultralytics/nn/modules/block.py +1947 -0
- ultralytics/nn/modules/conv.py +669 -0
- ultralytics/nn/modules/head.py +1183 -0
- ultralytics/nn/modules/transformer.py +793 -0
- ultralytics/nn/modules/utils.py +159 -0
- ultralytics/nn/tasks.py +1768 -0
- ultralytics/nn/text_model.py +356 -0
- ultralytics/py.typed +1 -0
- ultralytics/solutions/__init__.py +41 -0
- ultralytics/solutions/ai_gym.py +108 -0
- ultralytics/solutions/analytics.py +264 -0
- ultralytics/solutions/config.py +107 -0
- ultralytics/solutions/distance_calculation.py +123 -0
- ultralytics/solutions/heatmap.py +125 -0
- ultralytics/solutions/instance_segmentation.py +86 -0
- ultralytics/solutions/object_blurrer.py +89 -0
- ultralytics/solutions/object_counter.py +190 -0
- ultralytics/solutions/object_cropper.py +87 -0
- ultralytics/solutions/parking_management.py +280 -0
- ultralytics/solutions/queue_management.py +93 -0
- ultralytics/solutions/region_counter.py +133 -0
- ultralytics/solutions/security_alarm.py +151 -0
- ultralytics/solutions/similarity_search.py +219 -0
- ultralytics/solutions/solutions.py +828 -0
- ultralytics/solutions/speed_estimation.py +114 -0
- ultralytics/solutions/streamlit_inference.py +260 -0
- ultralytics/solutions/templates/similarity-search.html +156 -0
- ultralytics/solutions/trackzone.py +88 -0
- ultralytics/solutions/vision_eye.py +67 -0
- ultralytics/trackers/__init__.py +7 -0
- ultralytics/trackers/basetrack.py +115 -0
- ultralytics/trackers/bot_sort.py +257 -0
- ultralytics/trackers/byte_tracker.py +469 -0
- ultralytics/trackers/track.py +116 -0
- ultralytics/trackers/utils/__init__.py +1 -0
- ultralytics/trackers/utils/gmc.py +339 -0
- ultralytics/trackers/utils/kalman_filter.py +482 -0
- ultralytics/trackers/utils/matching.py +154 -0
- ultralytics/utils/__init__.py +1450 -0
- ultralytics/utils/autobatch.py +118 -0
- ultralytics/utils/autodevice.py +205 -0
- ultralytics/utils/benchmarks.py +728 -0
- ultralytics/utils/callbacks/__init__.py +5 -0
- ultralytics/utils/callbacks/base.py +233 -0
- ultralytics/utils/callbacks/clearml.py +146 -0
- ultralytics/utils/callbacks/comet.py +625 -0
- ultralytics/utils/callbacks/dvc.py +197 -0
- ultralytics/utils/callbacks/hub.py +110 -0
- ultralytics/utils/callbacks/mlflow.py +134 -0
- ultralytics/utils/callbacks/neptune.py +126 -0
- ultralytics/utils/callbacks/platform.py +73 -0
- ultralytics/utils/callbacks/raytune.py +42 -0
- ultralytics/utils/callbacks/tensorboard.py +123 -0
- ultralytics/utils/callbacks/wb.py +188 -0
- ultralytics/utils/checks.py +998 -0
- ultralytics/utils/cpu.py +85 -0
- ultralytics/utils/dist.py +123 -0
- ultralytics/utils/downloads.py +529 -0
- ultralytics/utils/errors.py +35 -0
- ultralytics/utils/events.py +113 -0
- ultralytics/utils/export/__init__.py +7 -0
- ultralytics/utils/export/engine.py +237 -0
- ultralytics/utils/export/imx.py +315 -0
- ultralytics/utils/export/tensorflow.py +231 -0
- ultralytics/utils/files.py +219 -0
- ultralytics/utils/git.py +137 -0
- ultralytics/utils/instance.py +484 -0
- ultralytics/utils/logger.py +444 -0
- ultralytics/utils/loss.py +849 -0
- ultralytics/utils/metrics.py +1560 -0
- ultralytics/utils/nms.py +337 -0
- ultralytics/utils/ops.py +664 -0
- ultralytics/utils/patches.py +201 -0
- ultralytics/utils/plotting.py +1045 -0
- ultralytics/utils/tal.py +403 -0
- ultralytics/utils/torch_utils.py +984 -0
- ultralytics/utils/tqdm.py +440 -0
- ultralytics/utils/triton.py +112 -0
- ultralytics/utils/tuner.py +160 -0
- ultralytics_opencv_headless-8.3.242.dist-info/METADATA +374 -0
- ultralytics_opencv_headless-8.3.242.dist-info/RECORD +298 -0
- ultralytics_opencv_headless-8.3.242.dist-info/WHEEL +5 -0
- ultralytics_opencv_headless-8.3.242.dist-info/entry_points.txt +3 -0
- ultralytics_opencv_headless-8.3.242.dist-info/licenses/LICENSE +661 -0
- ultralytics_opencv_headless-8.3.242.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# Ultralytics YOLOv8 object detection model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov8
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/detect
|
|
6
|
+
|
|
7
|
+
# Parameters
|
|
8
|
+
nc: 80 # number of classes
|
|
9
|
+
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
|
|
10
|
+
# [depth, width, max_channels]
|
|
11
|
+
n: [0.33, 0.25, 1024] # YOLOv8n summary: 129 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPS
|
|
12
|
+
s: [0.33, 0.50, 1024] # YOLOv8s summary: 129 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPS
|
|
13
|
+
m: [0.67, 0.75, 768] # YOLOv8m summary: 169 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPS
|
|
14
|
+
l: [1.00, 1.00, 512] # YOLOv8l summary: 209 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPS
|
|
15
|
+
x: [1.00, 1.25, 512] # YOLOv8x summary: 209 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPS
|
|
16
|
+
|
|
17
|
+
# YOLOv8.0n backbone
|
|
18
|
+
backbone:
|
|
19
|
+
# [from, repeats, module, args]
|
|
20
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
21
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
22
|
+
- [-1, 3, C2f, [128, True]]
|
|
23
|
+
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
|
|
24
|
+
- [-1, 6, C2f, [256, True]]
|
|
25
|
+
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
|
|
26
|
+
- [-1, 6, C2f, [512, True]]
|
|
27
|
+
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
|
|
28
|
+
- [-1, 3, C2f, [1024, True]]
|
|
29
|
+
- [-1, 1, SPPF, [1024, 5]] # 9
|
|
30
|
+
|
|
31
|
+
# YOLOv8.0n head
|
|
32
|
+
head:
|
|
33
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
34
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
35
|
+
- [-1, 3, C2f, [512]] # 12
|
|
36
|
+
|
|
37
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
38
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
39
|
+
- [-1, 3, C2f, [256]] # 15 (P3/8-small)
|
|
40
|
+
|
|
41
|
+
- [-1, 1, Conv, [256, 3, 2]]
|
|
42
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
43
|
+
- [-1, 3, C2f, [512]] # 18 (P4/16-medium)
|
|
44
|
+
|
|
45
|
+
- [-1, 1, Conv, [512, 3, 2]]
|
|
46
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
47
|
+
- [-1, 3, C2f, [1024]] # 21 (P5/32-large)
|
|
48
|
+
|
|
49
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9c-seg instance segmentation model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/segment
|
|
6
|
+
# 380 layers, 27897120 parameters, 159.4 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
14
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
15
|
+
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 1]] # 2
|
|
16
|
+
- [-1, 1, ADown, [256]] # 3-P3/8
|
|
17
|
+
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 1]] # 4
|
|
18
|
+
- [-1, 1, ADown, [512]] # 5-P4/16
|
|
19
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 6
|
|
20
|
+
- [-1, 1, ADown, [512]] # 7-P5/32
|
|
21
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 8
|
|
22
|
+
- [-1, 1, SPPELAN, [512, 256]] # 9
|
|
23
|
+
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
26
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
27
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 12
|
|
28
|
+
|
|
29
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
30
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
31
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 1]] # 15 (P3/8-small)
|
|
32
|
+
|
|
33
|
+
- [-1, 1, ADown, [256]]
|
|
34
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
35
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 18 (P4/16-medium)
|
|
36
|
+
|
|
37
|
+
- [-1, 1, ADown, [512]]
|
|
38
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
39
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
|
|
40
|
+
|
|
41
|
+
- [[15, 18, 21], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9c object detection model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/detect
|
|
6
|
+
# 358 layers, 25590912 parameters, 104.0 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
|
|
14
|
+
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
|
|
15
|
+
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 1]] # 2
|
|
16
|
+
- [-1, 1, ADown, [256]] # 3-P3/8
|
|
17
|
+
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 1]] # 4
|
|
18
|
+
- [-1, 1, ADown, [512]] # 5-P4/16
|
|
19
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 6
|
|
20
|
+
- [-1, 1, ADown, [512]] # 7-P5/32
|
|
21
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 8
|
|
22
|
+
- [-1, 1, SPPELAN, [512, 256]] # 9
|
|
23
|
+
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
26
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
27
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 12
|
|
28
|
+
|
|
29
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
30
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
31
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 1]] # 15 (P3/8-small)
|
|
32
|
+
|
|
33
|
+
- [-1, 1, ADown, [256]]
|
|
34
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
35
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 18 (P4/16-medium)
|
|
36
|
+
|
|
37
|
+
- [-1, 1, ADown, [512]]
|
|
38
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
39
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
|
|
40
|
+
|
|
41
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9e-seg instance segmentation model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/segment
|
|
6
|
+
# 743 layers, 60512800 parameters, 248.4 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, nn.Identity, []]
|
|
14
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
|
15
|
+
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
|
16
|
+
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
|
17
|
+
- [-1, 1, ADown, [256]] # 4-P3/8
|
|
18
|
+
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 5
|
|
19
|
+
- [-1, 1, ADown, [512]] # 6-P4/16
|
|
20
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
|
21
|
+
- [-1, 1, ADown, [1024]] # 8-P5/32
|
|
22
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
|
23
|
+
|
|
24
|
+
- [1, 1, CBLinear, [[64]]] # 10
|
|
25
|
+
- [3, 1, CBLinear, [[64, 128]]] # 11
|
|
26
|
+
- [5, 1, CBLinear, [[64, 128, 256]]] # 12
|
|
27
|
+
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
|
28
|
+
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
|
29
|
+
|
|
30
|
+
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
|
31
|
+
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
|
32
|
+
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
|
33
|
+
- [[11, 12, 13, 14, -1], 1, CBFuse, [[1, 1, 1, 1]]] # 18
|
|
34
|
+
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 19
|
|
35
|
+
- [-1, 1, ADown, [256]] # 20-P3/8
|
|
36
|
+
- [[12, 13, 14, -1], 1, CBFuse, [[2, 2, 2]]] # 21
|
|
37
|
+
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 22
|
|
38
|
+
- [-1, 1, ADown, [512]] # 23-P4/16
|
|
39
|
+
- [[13, 14, -1], 1, CBFuse, [[3, 3]]] # 24
|
|
40
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 25
|
|
41
|
+
- [-1, 1, ADown, [1024]] # 26-P5/32
|
|
42
|
+
- [[14, -1], 1, CBFuse, [[4]]] # 27
|
|
43
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
|
44
|
+
- [-1, 1, SPPELAN, [512, 256]] # 29
|
|
45
|
+
|
|
46
|
+
# GELAN head
|
|
47
|
+
head:
|
|
48
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
49
|
+
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
|
50
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 32
|
|
51
|
+
|
|
52
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
53
|
+
- [[-1, 22], 1, Concat, [1]] # cat backbone P3
|
|
54
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 2]] # 35 (P3/8-small)
|
|
55
|
+
|
|
56
|
+
- [-1, 1, ADown, [256]]
|
|
57
|
+
- [[-1, 32], 1, Concat, [1]] # cat head P4
|
|
58
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 38 (P4/16-medium)
|
|
59
|
+
|
|
60
|
+
- [-1, 1, ADown, [512]]
|
|
61
|
+
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
|
62
|
+
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
|
63
|
+
|
|
64
|
+
- [[35, 38, 41], 1, Segment, [nc, 32, 256]] # Segment (P3, P4, P5)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9e object detection model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/detect
|
|
6
|
+
# 721 layers, 58206592 parameters, 193.0 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, nn.Identity, []]
|
|
14
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
|
|
15
|
+
- [-1, 1, Conv, [128, 3, 2]] # 2-P2/4
|
|
16
|
+
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 3
|
|
17
|
+
- [-1, 1, ADown, [256]] # 4-P3/8
|
|
18
|
+
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 5
|
|
19
|
+
- [-1, 1, ADown, [512]] # 6-P4/16
|
|
20
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
|
21
|
+
- [-1, 1, ADown, [1024]] # 8-P5/32
|
|
22
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
|
23
|
+
|
|
24
|
+
- [1, 1, CBLinear, [[64]]] # 10
|
|
25
|
+
- [3, 1, CBLinear, [[64, 128]]] # 11
|
|
26
|
+
- [5, 1, CBLinear, [[64, 128, 256]]] # 12
|
|
27
|
+
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
|
28
|
+
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
|
29
|
+
|
|
30
|
+
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
|
31
|
+
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
|
32
|
+
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
|
33
|
+
- [[11, 12, 13, 14, -1], 1, CBFuse, [[1, 1, 1, 1]]] # 18
|
|
34
|
+
- [-1, 1, RepNCSPELAN4, [256, 128, 64, 2]] # 19
|
|
35
|
+
- [-1, 1, ADown, [256]] # 20-P3/8
|
|
36
|
+
- [[12, 13, 14, -1], 1, CBFuse, [[2, 2, 2]]] # 21
|
|
37
|
+
- [-1, 1, RepNCSPELAN4, [512, 256, 128, 2]] # 22
|
|
38
|
+
- [-1, 1, ADown, [512]] # 23-P4/16
|
|
39
|
+
- [[13, 14, -1], 1, CBFuse, [[3, 3]]] # 24
|
|
40
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 25
|
|
41
|
+
- [-1, 1, ADown, [1024]] # 26-P5/32
|
|
42
|
+
- [[14, -1], 1, CBFuse, [[4]]] # 27
|
|
43
|
+
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 28
|
|
44
|
+
- [-1, 1, SPPELAN, [512, 256]] # 29
|
|
45
|
+
|
|
46
|
+
# GELAN head
|
|
47
|
+
head:
|
|
48
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
49
|
+
- [[-1, 25], 1, Concat, [1]] # cat backbone P4
|
|
50
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 32
|
|
51
|
+
|
|
52
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
53
|
+
- [[-1, 22], 1, Concat, [1]] # cat backbone P3
|
|
54
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 2]] # 35 (P3/8-small)
|
|
55
|
+
|
|
56
|
+
- [-1, 1, ADown, [256]]
|
|
57
|
+
- [[-1, 32], 1, Concat, [1]] # cat head P4
|
|
58
|
+
- [-1, 1, RepNCSPELAN4, [512, 512, 256, 2]] # 38 (P4/16-medium)
|
|
59
|
+
|
|
60
|
+
- [-1, 1, ADown, [512]]
|
|
61
|
+
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
|
62
|
+
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
|
63
|
+
|
|
64
|
+
- [[35, 38, 41], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9m object detection model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/detect
|
|
6
|
+
# 348 layers, 20216160 parameters, 77.9 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, Conv, [32, 3, 2]] # 0-P1/2
|
|
14
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P2/4
|
|
15
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 1]] # 2
|
|
16
|
+
- [-1, 1, AConv, [240]] # 3-P3/8
|
|
17
|
+
- [-1, 1, RepNCSPELAN4, [240, 240, 120, 1]] # 4
|
|
18
|
+
- [-1, 1, AConv, [360]] # 5-P4/16
|
|
19
|
+
- [-1, 1, RepNCSPELAN4, [360, 360, 180, 1]] # 6
|
|
20
|
+
- [-1, 1, AConv, [480]] # 7-P5/32
|
|
21
|
+
- [-1, 1, RepNCSPELAN4, [480, 480, 240, 1]] # 8
|
|
22
|
+
- [-1, 1, SPPELAN, [480, 240]] # 9
|
|
23
|
+
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
26
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
27
|
+
- [-1, 1, RepNCSPELAN4, [360, 360, 180, 1]] # 12
|
|
28
|
+
|
|
29
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
30
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
31
|
+
- [-1, 1, RepNCSPELAN4, [240, 240, 120, 1]] # 15
|
|
32
|
+
|
|
33
|
+
- [-1, 1, AConv, [180]]
|
|
34
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
35
|
+
- [-1, 1, RepNCSPELAN4, [360, 360, 180, 1]] # 18 (P4/16-medium)
|
|
36
|
+
|
|
37
|
+
- [-1, 1, AConv, [240]]
|
|
38
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
39
|
+
- [-1, 1, RepNCSPELAN4, [480, 480, 240, 1]] # 21 (P5/32-large)
|
|
40
|
+
|
|
41
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9s object detection model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/detect
|
|
6
|
+
# 544 layers, 7318368 parameters, 27.6 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, Conv, [32, 3, 2]] # 0-P1/2
|
|
14
|
+
- [-1, 1, Conv, [64, 3, 2]] # 1-P2/4
|
|
15
|
+
- [-1, 1, ELAN1, [64, 64, 32]] # 2
|
|
16
|
+
- [-1, 1, AConv, [128]] # 3-P3/8
|
|
17
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 4
|
|
18
|
+
- [-1, 1, AConv, [192]] # 5-P4/16
|
|
19
|
+
- [-1, 1, RepNCSPELAN4, [192, 192, 96, 3]] # 6
|
|
20
|
+
- [-1, 1, AConv, [256]] # 7-P5/32
|
|
21
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 3]] # 8
|
|
22
|
+
- [-1, 1, SPPELAN, [256, 128]] # 9
|
|
23
|
+
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
26
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
27
|
+
- [-1, 1, RepNCSPELAN4, [192, 192, 96, 3]] # 12
|
|
28
|
+
|
|
29
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
30
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
31
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 15
|
|
32
|
+
|
|
33
|
+
- [-1, 1, AConv, [96]]
|
|
34
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
35
|
+
- [-1, 1, RepNCSPELAN4, [192, 192, 96, 3]] # 18 (P4/16-medium)
|
|
36
|
+
|
|
37
|
+
- [-1, 1, AConv, [128]]
|
|
38
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
39
|
+
- [-1, 1, RepNCSPELAN4, [256, 256, 128, 3]] # 21 (P5/32-large)
|
|
40
|
+
|
|
41
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4 P5)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# YOLOv9t object detection model with P3/8 - P5/32 outputs
|
|
4
|
+
# Model docs: https://docs.ultralytics.com/models/yolov9
|
|
5
|
+
# Task docs: https://docs.ultralytics.com/tasks/detect
|
|
6
|
+
# 544 layers, 2128720 parameters, 8.5 GFLOPs
|
|
7
|
+
|
|
8
|
+
# Parameters
|
|
9
|
+
nc: 80 # number of classes
|
|
10
|
+
|
|
11
|
+
# GELAN backbone
|
|
12
|
+
backbone:
|
|
13
|
+
- [-1, 1, Conv, [16, 3, 2]] # 0-P1/2
|
|
14
|
+
- [-1, 1, Conv, [32, 3, 2]] # 1-P2/4
|
|
15
|
+
- [-1, 1, ELAN1, [32, 32, 16]] # 2
|
|
16
|
+
- [-1, 1, AConv, [64]] # 3-P3/8
|
|
17
|
+
- [-1, 1, RepNCSPELAN4, [64, 64, 32, 3]] # 4
|
|
18
|
+
- [-1, 1, AConv, [96]] # 5-P4/16
|
|
19
|
+
- [-1, 1, RepNCSPELAN4, [96, 96, 48, 3]] # 6
|
|
20
|
+
- [-1, 1, AConv, [128]] # 7-P5/32
|
|
21
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 8
|
|
22
|
+
- [-1, 1, SPPELAN, [128, 64]] # 9
|
|
23
|
+
|
|
24
|
+
head:
|
|
25
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
26
|
+
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
|
|
27
|
+
- [-1, 1, RepNCSPELAN4, [96, 96, 48, 3]] # 12
|
|
28
|
+
|
|
29
|
+
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
|
|
30
|
+
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
|
|
31
|
+
- [-1, 1, RepNCSPELAN4, [64, 64, 32, 3]] # 15
|
|
32
|
+
|
|
33
|
+
- [-1, 1, AConv, [48]]
|
|
34
|
+
- [[-1, 12], 1, Concat, [1]] # cat head P4
|
|
35
|
+
- [-1, 1, RepNCSPELAN4, [96, 96, 48, 3]] # 18 (P4/16-medium)
|
|
36
|
+
|
|
37
|
+
- [-1, 1, AConv, [64]]
|
|
38
|
+
- [[-1, 9], 1, Concat, [1]] # cat head P5
|
|
39
|
+
- [-1, 1, RepNCSPELAN4, [128, 128, 64, 3]] # 21 (P5/32-large)
|
|
40
|
+
|
|
41
|
+
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# BoT-SORT tracker defaults for mode="track"
|
|
4
|
+
# Docs: https://docs.ultralytics.com/modes/track/
|
|
5
|
+
|
|
6
|
+
tracker_type: botsort # (str) Tracker backend: botsort|bytetrack; choose botsort to enable BoT-SORT features
|
|
7
|
+
track_high_thresh: 0.25 # (float) First-stage match threshold; raise for cleaner tracks, lower to keep more
|
|
8
|
+
track_low_thresh: 0.1 # (float) Second-stage threshold for low-score matches; balances recovery vs drift
|
|
9
|
+
new_track_thresh: 0.25 # (float) Start a new track if no match ≥ this; higher reduces false tracks
|
|
10
|
+
track_buffer: 30 # (int) Frames to keep lost tracks alive; higher handles occlusion, increases ID switches risk
|
|
11
|
+
match_thresh: 0.8 # (float) Association similarity threshold (IoU/cost); tune with detector quality
|
|
12
|
+
fuse_score: True # (bool) Fuse detection score with motion/IoU for matching; stabilizes weak detections
|
|
13
|
+
|
|
14
|
+
# BoT-SORT specifics
|
|
15
|
+
gmc_method: sparseOptFlow # (str) Global motion compensation: sparseOptFlow|orb|none; helps moving camera scenes
|
|
16
|
+
|
|
17
|
+
# ReID model related thresh
|
|
18
|
+
proximity_thresh: 0.5 # (float) Min IoU to consider tracks proximate for ReID; higher is stricter
|
|
19
|
+
appearance_thresh: 0.8 # (float) Min appearance similarity for ReID; raise to avoid identity swaps
|
|
20
|
+
with_reid: False # (bool) Enable ReID model use; needs extra model and compute
|
|
21
|
+
model: auto # (str) ReID model name/path; "auto" uses detector features if available
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
# ByteTrack tracker defaults for mode="track"
|
|
4
|
+
# Docs: https://docs.ultralytics.com/modes/track/
|
|
5
|
+
|
|
6
|
+
tracker_type: bytetrack # (str) Tracker backend: botsort|bytetrack; choose bytetrack for the classic baseline
|
|
7
|
+
track_high_thresh: 0.25 # (float) First-stage match threshold; raise for cleaner tracks, lower to keep more
|
|
8
|
+
track_low_thresh: 0.1 # (float) Second-stage threshold for low-score matches; balances recovery vs drift
|
|
9
|
+
new_track_thresh: 0.25 # (float) Start a new track if no match ≥ this; higher reduces false tracks
|
|
10
|
+
track_buffer: 30 # (int) Frames to keep lost tracks alive; higher handles occlusion, increases ID switches risk
|
|
11
|
+
match_thresh: 0.8 # (float) Association similarity threshold (IoU/cost); tune with detector quality
|
|
12
|
+
fuse_score: True # (bool) Fuse detection score with motion/IoU for matching; stabilizes weak detections
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
from .base import BaseDataset
|
|
4
|
+
from .build import build_dataloader, build_grounding, build_yolo_dataset, load_inference_source
|
|
5
|
+
from .dataset import (
|
|
6
|
+
ClassificationDataset,
|
|
7
|
+
GroundingDataset,
|
|
8
|
+
SemanticDataset,
|
|
9
|
+
YOLOConcatDataset,
|
|
10
|
+
YOLODataset,
|
|
11
|
+
YOLOMultiModalDataset,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__all__ = (
|
|
15
|
+
"BaseDataset",
|
|
16
|
+
"ClassificationDataset",
|
|
17
|
+
"GroundingDataset",
|
|
18
|
+
"SemanticDataset",
|
|
19
|
+
"YOLOConcatDataset",
|
|
20
|
+
"YOLODataset",
|
|
21
|
+
"YOLOMultiModalDataset",
|
|
22
|
+
"build_dataloader",
|
|
23
|
+
"build_grounding",
|
|
24
|
+
"build_yolo_dataset",
|
|
25
|
+
"load_inference_source",
|
|
26
|
+
)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
from ultralytics import SAM, YOLO
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def auto_annotate(
|
|
11
|
+
data: str | Path,
|
|
12
|
+
det_model: str = "yolo11x.pt",
|
|
13
|
+
sam_model: str = "sam_b.pt",
|
|
14
|
+
device: str = "",
|
|
15
|
+
conf: float = 0.25,
|
|
16
|
+
iou: float = 0.45,
|
|
17
|
+
imgsz: int = 640,
|
|
18
|
+
max_det: int = 300,
|
|
19
|
+
classes: list[int] | None = None,
|
|
20
|
+
output_dir: str | Path | None = None,
|
|
21
|
+
) -> None:
|
|
22
|
+
"""Automatically annotate images using a YOLO object detection model and a SAM segmentation model.
|
|
23
|
+
|
|
24
|
+
This function processes images in a specified directory, detects objects using a YOLO model, and then generates
|
|
25
|
+
segmentation masks using a SAM model. The resulting annotations are saved as text files in YOLO format.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
data (str | Path): Path to a folder containing images to be annotated.
|
|
29
|
+
det_model (str): Path or name of the pre-trained YOLO detection model.
|
|
30
|
+
sam_model (str): Path or name of the pre-trained SAM segmentation model.
|
|
31
|
+
device (str): Device to run the models on (e.g., 'cpu', 'cuda', '0'). Empty string for auto-selection.
|
|
32
|
+
conf (float): Confidence threshold for detection model.
|
|
33
|
+
iou (float): IoU threshold for filtering overlapping boxes in detection results.
|
|
34
|
+
imgsz (int): Input image resize dimension.
|
|
35
|
+
max_det (int): Maximum number of detections per image.
|
|
36
|
+
classes (list[int], optional): Filter predictions to specified class IDs, returning only relevant detections.
|
|
37
|
+
output_dir (str | Path, optional): Directory to save the annotated results. If None, creates a default directory
|
|
38
|
+
based on the input data path.
|
|
39
|
+
|
|
40
|
+
Examples:
|
|
41
|
+
>>> from ultralytics.data.annotator import auto_annotate
|
|
42
|
+
>>> auto_annotate(data="ultralytics/assets", det_model="yolo11n.pt", sam_model="mobile_sam.pt")
|
|
43
|
+
"""
|
|
44
|
+
det_model = YOLO(det_model)
|
|
45
|
+
sam_model = SAM(sam_model)
|
|
46
|
+
|
|
47
|
+
data = Path(data)
|
|
48
|
+
if not output_dir:
|
|
49
|
+
output_dir = data.parent / f"{data.stem}_auto_annotate_labels"
|
|
50
|
+
Path(output_dir).mkdir(exist_ok=True, parents=True)
|
|
51
|
+
|
|
52
|
+
det_results = det_model(
|
|
53
|
+
data, stream=True, device=device, conf=conf, iou=iou, imgsz=imgsz, max_det=max_det, classes=classes
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
for result in det_results:
|
|
57
|
+
if class_ids := result.boxes.cls.int().tolist(): # Extract class IDs from detection results
|
|
58
|
+
boxes = result.boxes.xyxy # Boxes object for bbox outputs
|
|
59
|
+
sam_results = sam_model(result.orig_img, bboxes=boxes, verbose=False, save=False, device=device)
|
|
60
|
+
segments = sam_results[0].masks.xyn
|
|
61
|
+
|
|
62
|
+
with open(f"{Path(output_dir) / Path(result.path).stem}.txt", "w", encoding="utf-8") as f:
|
|
63
|
+
for i, s in enumerate(segments):
|
|
64
|
+
if s.any():
|
|
65
|
+
segment = map(str, s.reshape(-1).tolist())
|
|
66
|
+
f.write(f"{class_ids[i]} " + " ".join(segment) + "\n")
|