diff --git a/docs/en/guides/vision-eye.md b/docs/en/guides/vision-eye.md
index 16314a82e6..300177235e 100644
--- a/docs/en/guides/vision-eye.md
+++ b/docs/en/guides/vision-eye.md
@@ -12,10 +12,10 @@ keywords: Ultralytics, YOLOv8, Object Detection, Object Tracking, IDetection, Vi
## Samples
-| VisionEye View | VisionEye View With Object Tracking |
-|:------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
-|  |  |
-| VisionEye View Object Mapping using Ultralytics YOLOv8 | VisionEye View Object Mapping with Object Tracking using Ultralytics YOLOv8 |
+| VisionEye View | VisionEye View With Object Tracking | VisionEye View With Distance Calculation |
+|:------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
+|  |  |  |
+| VisionEye View Object Mapping using Ultralytics YOLOv8 | VisionEye View Object Mapping with Object Tracking using Ultralytics YOLOv8 | VisionEye View with Distance Calculation using Ultralytics YOLOv8 |
!!! Example "VisionEye Object Mapping using YOLOv8"
@@ -105,6 +105,63 @@ keywords: Ultralytics, YOLOv8, Object Detection, Object Tracking, IDetection, Vi
cap.release()
cv2.destroyAllWindows()
```
+
+ === "VisionEye with Distance Calculation"
+
+ ```python
+ import cv2
+ import math
+ from ultralytics import YOLO
+ from ultralytics.utils.plotting import Annotator, colors
+
+ model = YOLO("yolov8s.pt")
+ cap = cv2.VideoCapture("Path/to/video/file.mp4")
+
+ w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
+
+ out = cv2.VideoWriter('visioneye-distance-calculation.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
+
+ center_point = (0, h)
+ pixel_per_meter = 10
+
+ txt_color, txt_background, bbox_clr = ((0, 0, 0), (255, 255, 255), (255, 0, 255))
+
+ while True:
+ ret, im0 = cap.read()
+ if not ret:
+ print("Video frame is empty or video processing has been successfully completed.")
+ break
+
+ annotator = Annotator(im0, line_width=2)
+
+ results = model.track(im0, persist=True)
+ boxes = results[0].boxes.xyxy.cpu()
+
+ if results[0].boxes.id is not None:
+ track_ids = results[0].boxes.id.int().cpu().tolist()
+
+ for box, track_id in zip(boxes, track_ids):
+ annotator.box_label(box, label=str(track_id), color=bbox_clr)
+ annotator.visioneye(box, center_point)
+
+ x1, y1 = int((box[0] + box[2]) // 2), int((box[1] + box[3]) // 2) # Bounding box centroid
+
+ distance = (math.sqrt((x1 - center_point[0]) ** 2 + (y1 - center_point[1]) ** 2))/pixel_per_meter
+
+ text_size, _ = cv2.getTextSize(f"Distance: {distance:.2f} m", cv2.FONT_HERSHEY_SIMPLEX,1.2, 3)
+ cv2.rectangle(im0, (x1, y1 - text_size[1] - 10),(x1 + text_size[0] + 10, y1), txt_background, -1)
+ cv2.putText(im0, f"Distance: {distance:.2f} m",(x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 1.2,txt_color, 3)
+
+ out.write(im0)
+ cv2.imshow("visioneye-distance-calculation", im0)
+
+ if cv2.waitKey(1) & 0xFF == ord('q'):
+ break
+
+ out.release()
+ cap.release()
+ cv2.destroyAllWindows()
+ ```
### `visioneye` Arguments
diff --git a/docs/en/reference/models/yolo/model.md b/docs/en/reference/models/yolo/model.md
index 742685f8c3..6df6b73db3 100644
--- a/docs/en/reference/models/yolo/model.md
+++ b/docs/en/reference/models/yolo/model.md
@@ -14,3 +14,7 @@ keywords: Ultralytics YOLO, YOLO, YOLO model, Model Training, Machine Learning,
## ::: ultralytics.models.yolo.model.YOLO
+
+## ::: ultralytics.models.yolo.model.YOLOWorld
+
+
diff --git a/docs/en/reference/nn/modules/block.md b/docs/en/reference/nn/modules/block.md
index f8b1e58162..cd2c146bd9 100644
--- a/docs/en/reference/nn/modules/block.md
+++ b/docs/en/reference/nn/modules/block.md
@@ -86,3 +86,23 @@ keywords: YOLO, Ultralytics, neural network, nn.modules.block, Proto, HGBlock, S
## ::: ultralytics.nn.modules.block.ResNetLayer
+
+## ::: ultralytics.nn.modules.block.MaxSigmoidAttnBlock
+
+
+
+## ::: ultralytics.nn.modules.block.C2fAttn
+
+
+
+## ::: ultralytics.nn.modules.block.ImagePoolingAttn
+
+
+
+## ::: ultralytics.nn.modules.block.ContrastiveHead
+
+
+
+## ::: ultralytics.nn.modules.block.BNContrastiveHead
+
+
diff --git a/docs/en/reference/nn/modules/head.md b/docs/en/reference/nn/modules/head.md
index 00a5ea6a74..6dc3e442e9 100644
--- a/docs/en/reference/nn/modules/head.md
+++ b/docs/en/reference/nn/modules/head.md
@@ -31,6 +31,10 @@ keywords: Ultralytics, YOLO, Detection, Pose, RTDETRDecoder, nn modules, guides
+## ::: ultralytics.nn.modules.head.WorldDetect
+
+
+
## ::: ultralytics.nn.modules.head.RTDETRDecoder
diff --git a/docs/en/reference/nn/tasks.md b/docs/en/reference/nn/tasks.md
index d7908f566c..66d2e0e1bc 100644
--- a/docs/en/reference/nn/tasks.md
+++ b/docs/en/reference/nn/tasks.md
@@ -39,6 +39,10 @@ keywords: Ultralytics, YOLO, nn tasks, DetectionModel, PoseModel, RTDETRDetectio
+## ::: ultralytics.nn.tasks.WorldModel
+
+
+
## ::: ultralytics.nn.tasks.Ensemble
diff --git a/ultralytics/engine/exporter.py b/ultralytics/engine/exporter.py
index 23b5caca34..9dae52789c 100644
--- a/ultralytics/engine/exporter.py
+++ b/ultralytics/engine/exporter.py
@@ -107,7 +107,7 @@ def export_formats():
["TensorFlow Edge TPU", "edgetpu", "_edgetpu.tflite", True, False],
["TensorFlow.js", "tfjs", "_web_model", True, False],
["PaddlePaddle", "paddle", "_paddle_model", True, True],
- ["ncnn", "ncnn", "_ncnn_model", True, True],
+ ["NCNN", "ncnn", "_ncnn_model", True, True],
]
return pandas.DataFrame(x, columns=["Format", "Argument", "Suffix", "CPU", "GPU"])