diff --git a/docs/en/datasets/detect/roboflow-100.md b/docs/en/datasets/detect/roboflow-100.md index 1101cf278..af130e354 100644 --- a/docs/en/datasets/detect/roboflow-100.md +++ b/docs/en/datasets/detect/roboflow-100.md @@ -14,7 +14,7 @@ Roboflow 100, developed by [Roboflow](https://roboflow.com/?ref=ultralytics) and ## Key Features -- Includes 100 datasets across seven domains: Aerial, Videogames, Microscopic, Underwater, Documents, Electromagnetic, and Real World. +- Includes 100 datasets across seven domains: Aerial, Video games, Microscopic, Underwater, Documents, Electromagnetic, and Real World. - The benchmark comprises 224,714 images across 805 classes, thanks to over 11,170 hours of labeling efforts. - All images are resized to 640x640 pixels, with a focus on eliminating class ambiguity and filtering out underrepresented classes. - Annotations include bounding boxes for objects, making it suitable for [training](../../modes/train.md) and evaluating object detection models. @@ -24,7 +24,7 @@ Roboflow 100, developed by [Roboflow](https://roboflow.com/?ref=ultralytics) and The Roboflow 100 dataset is organized into seven categories, each with a distinct set of datasets, images, and classes: - **Aerial**: Consists of 7 datasets with a total of 9,683 images, covering 24 distinct classes. -- **Videogames**: Includes 7 datasets, featuring 11,579 images across 88 classes. +- **Video Games**: Includes 7 datasets, featuring 11,579 images across 88 classes. - **Microscopic**: Comprises 11 datasets with 13,378 images, spanning 28 classes. - **Underwater**: Contains 5 datasets, encompassing 18,003 images in 39 classes. - **Documents**: Consists of 8 datasets with 24,813 images, divided into 90 classes. @@ -45,7 +45,7 @@ For more ideas and inspiration on real-world applications, be sure to check out ## Usage -The Roboflow 100 dataset is available on both [GitHub](https://github.com/roboflow/roboflow-100-benchmark) and [Roboflow Universe](https://universe.roboflow.com/roboflow-100). +The Roboflow 100 dataset is available on both [GitHub](https://github.com/roboflow/roboflow-100-benchmark) and [Roboflow Universe](https://universe.roboflow.com/roboflow-100). You can access it directly from the Roboflow 100 GitHub repository. In addition, on Roboflow Universe, you have the flexibility to download individual datasets by simply clicking the export button within each dataset. diff --git a/docs/en/datasets/explorer/api.md b/docs/en/datasets/explorer/api.md index a6b93004b..aa24f55ed 100644 --- a/docs/en/datasets/explorer/api.md +++ b/docs/en/datasets/explorer/api.md @@ -227,7 +227,7 @@ Here are some examples of what you can do with the table: print(embeddings) ``` -### Advanced Querying with pre and post filters +### Advanced Querying with pre- and post-filters !!! Example diff --git a/docs/en/datasets/explorer/dashboard.md b/docs/en/datasets/explorer/dashboard.md index 62982b824..513e140f9 100644 --- a/docs/en/datasets/explorer/dashboard.md +++ b/docs/en/datasets/explorer/dashboard.md @@ -39,7 +39,7 @@ pip install ultralytics[explorer] Semantic search is a technique for finding similar images to a given image. It is based on the idea that similar images will have similar embeddings. In the UI, you can select one of more images and search for the images similar to them. This can be useful when you want to find images similar to a given image or a set of images that don't perform as expected. For example: -In this VOC Exploration dashboard, user selects a couple aeroplane images like this: +In this VOC Exploration dashboard, user selects a couple airplane images like this:

Explorer Dashboard Screenshot 2

diff --git a/docs/en/datasets/index.md b/docs/en/datasets/index.md index f30acc9a9..53dc2abf8 100644 --- a/docs/en/datasets/index.md +++ b/docs/en/datasets/index.md @@ -34,7 +34,7 @@ Bounding box object detection is a computer vision technique that involves detec - [VOC](detect/voc.md): The Pascal Visual Object Classes (VOC) dataset for object detection and segmentation with 20 object classes and over 11K images. - [xView](detect/xview.md): A dataset for object detection in overhead imagery with 60 object categories and over 1 million annotated objects. - [Roboflow 100](detect/roboflow-100.md): A diverse object detection benchmark with 100 datasets spanning seven imagery domains for comprehensive model evaluation. - + ## [Instance Segmentation Datasets](segment/index.md) Instance segmentation is a computer vision technique that involves identifying and localizing objects in an image at the pixel level. diff --git a/docs/en/datasets/obb/dota-v2.md b/docs/en/datasets/obb/dota-v2.md index 00a2b0dd8..403bae95d 100644 --- a/docs/en/datasets/obb/dota-v2.md +++ b/docs/en/datasets/obb/dota-v2.md @@ -68,7 +68,7 @@ Typically, datasets incorporate a YAML (Yet Another Markup Language) file detail ## Split DOTA images -To train DOTA dataset, We split original DOTA images with high-resolution into images with 1024x1024 resolution in multi-scale way. +To train DOTA dataset, we split original DOTA images with high-resolution into images with 1024x1024 resolution in multiscale way. !!! Example "Split images" diff --git a/docs/en/guides/conda-quickstart.md b/docs/en/guides/conda-quickstart.md index 21f3b8967..516322070 100644 --- a/docs/en/guides/conda-quickstart.md +++ b/docs/en/guides/conda-quickstart.md @@ -72,7 +72,7 @@ from ultralytics import YOLO model = YOLO('yolov8n.pt') # initialize model results = model('path/to/image.jpg') # perform inference -results.show() # display results +results[0].show() # display results for the first image ``` --- diff --git a/docs/en/guides/coral-edge-tpu-on-raspberry-pi.md b/docs/en/guides/coral-edge-tpu-on-raspberry-pi.md index 40840817e..90f9145dc 100644 --- a/docs/en/guides/coral-edge-tpu-on-raspberry-pi.md +++ b/docs/en/guides/coral-edge-tpu-on-raspberry-pi.md @@ -12,7 +12,7 @@ keywords: Ultralytics, YOLOv8, Object Detection, Coral, Edge TPU, Raspberry Pi, ## What is a Coral Edge TPU? -The Coral Edge TPU is a compact device that adds an Edge TPU coprocessor to your system. It enables low-power, high-performance ML inferencing for TensorFlow Lite models. Read more at the [Coral Edge TPU home page](https://coral.ai/products/accelerator). +The Coral Edge TPU is a compact device that adds an Edge TPU coprocessor to your system. It enables low-power, high-performance ML inference for TensorFlow Lite models. Read more at the [Coral Edge TPU home page](https://coral.ai/products/accelerator). ## Boost Raspberry Pi Model Performance with Coral Edge TPU @@ -37,16 +37,16 @@ This guide assumes that you already have a working Raspberry Pi OS install and h First, we need to install the Edge TPU runtime. There are many different versions available, so you need to choose the right version for your operating system. -| Raspberry Pi OS | High frequency mode | Version to download | -|-----------------|:-------------------:|------------------------------------------| -| Bullseye 32bit | No | libedgetpu1-std_ ... .bullseye_armhf.deb | -| Bullseye 64bit | No | libedgetpu1-std_ ... .bullseye_arm64.deb | -| Bullseye 32bit | Yes | libedgetpu1-max_ ... .bullseye_armhf.deb | -| Bullseye 64bit | Yes | libedgetpu1-max_ ... .bullseye_arm64.deb | -| Bookworm 32bit | No | libedgetpu1-std_ ... .bookworm_armhf.deb | -| Bookworm 64bit | No | libedgetpu1-std_ ... .bookworm_arm64.deb | -| Bookworm 32bit | Yes | libedgetpu1-max_ ... .bookworm_armhf.deb | -| Bookworm 64bit | Yes | libedgetpu1-max_ ... .bookworm_arm64.deb | +| Raspberry Pi OS | High frequency mode | Version to download | +|-----------------|:-------------------:|--------------------------------------------| +| Bullseye 32bit | No | `libedgetpu1-std_ ... .bullseye_armhf.deb` | +| Bullseye 64bit | No | `libedgetpu1-std_ ... .bullseye_arm64.deb` | +| Bullseye 32bit | Yes | `libedgetpu1-max_ ... .bullseye_armhf.deb` | +| Bullseye 64bit | Yes | `libedgetpu1-max_ ... .bullseye_arm64.deb` | +| Bookworm 32bit | No | `libedgetpu1-std_ ... .bookworm_armhf.deb` | +| Bookworm 64bit | No | `libedgetpu1-std_ ... .bookworm_arm64.deb` | +| Bookworm 32bit | Yes | `libedgetpu1-max_ ... .bookworm_armhf.deb` | +| Bookworm 64bit | Yes | `libedgetpu1-max_ ... .bookworm_arm64.deb` | [Download the latest version from here](https://github.com/feranick/libedgetpu/releases). diff --git a/docs/en/guides/hyperparameter-tuning.md b/docs/en/guides/hyperparameter-tuning.md index 75b2db7d6..4888c3405 100644 --- a/docs/en/guides/hyperparameter-tuning.md +++ b/docs/en/guides/hyperparameter-tuning.md @@ -23,7 +23,7 @@ Hyperparameters are high-level, structural settings for the algorithm. They are Hyperparameter Tuning Visual

-For a full list of augmentation hyperparameters used in YOLOv8 please refer to the [configurations page](../usage/cfg.md#augmentation). +For a full list of augmentation hyperparameters used in YOLOv8 please refer to the [configurations page](../usage/cfg.md#augmentation-settings). ### Genetic Evolution and Mutation diff --git a/docs/en/guides/instance-segmentation-and-tracking.md b/docs/en/guides/instance-segmentation-and-tracking.md index ac31ac872..558ab57d8 100644 --- a/docs/en/guides/instance-segmentation-and-tracking.md +++ b/docs/en/guides/instance-segmentation-and-tracking.md @@ -1,7 +1,7 @@ --- comments: true description: Instance Segmentation with Object Tracking using Ultralytics YOLOv8 -keywords: Ultralytics, YOLOv8, Instance Segmentation, Object Detection, Object Tracking, Segbbox, Computer Vision, Notebook, IPython Kernel, CLI, Python SDK +keywords: Ultralytics, YOLOv8, Instance Segmentation, Object Detection, Object Tracking, Bounding Box, Computer Vision, Notebook, IPython Kernel, CLI, Python SDK --- # Instance Segmentation and Tracking using Ultralytics YOLOv8 🚀 diff --git a/docs/en/guides/isolating-segmentation-objects.md b/docs/en/guides/isolating-segmentation-objects.md index 79d47692d..f8e9a7a65 100644 --- a/docs/en/guides/isolating-segmentation-objects.md +++ b/docs/en/guides/isolating-segmentation-objects.md @@ -14,12 +14,12 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab ## Recipe Walk Through -1. Begin with the necessary imports +1. Begin with the necessary imports - ```py + ```python from pathlib import Path - import cv2 as cv + import cv2 import numpy as np from ultralytics import YOLO ``` @@ -30,19 +30,19 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab *** -2. Load a model and run `predict()` method on a source. +2. Load a model and run `predict()` method on a source. - ```py + ```python from ultralytics import YOLO # Load a model model = YOLO('yolov8n-seg.pt') # Run inference - result = model.predict() + results = model.predict() ``` - ??? question "No Prediction Arguments?" + !!! question "No Prediction Arguments?" Without specifying a source, the example images from the library will be used: @@ -57,7 +57,7 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab *** -3. Now iterate over the results and the contours. For workflows that want to save an image to file, the source image `base-name` and the detection `class-label` are retrieved for later use (optional). +3. Now iterate over the results and the contours. For workflows that want to save an image to file, the source image `base-name` and the detection `class-label` are retrieved for later use (optional). ```{ .py .annotate } # (2) Iterate detection results (helpful for multiple images) @@ -81,7 +81,7 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab *** -4. Start with generating a binary mask from the source image and then draw a filled contour onto the mask. This will allow the object to be isolated from the other parts of the image. An example from `bus.jpg` for one of the detected `person` class objects is shown on the right. +4. Start with generating a binary mask from the source image and then draw a filled contour onto the mask. This will allow the object to be isolated from the other parts of the image. An example from `bus.jpg` for one of the detected `person` class objects is shown on the right. ![Binary Mask Image](https://github.com/ultralytics/ultralytics/assets/62214284/59bce684-fdda-4b17-8104-0b4b51149aca){ width="240", align="right" } @@ -98,11 +98,11 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab # Draw contour onto mask - _ = cv.drawContours(b_mask, + _ = cv2.drawContours(b_mask, [contour], -1, (255, 255, 255), - cv.FILLED) + cv2.FILLED) ``` @@ -136,7 +136,7 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab - The `tuple` `(255, 255, 255)` represents the color white, which is the desired color for drawing the contour in this binary mask. - - The addition of `cv.FILLED` will color all pixels enclosed by the contour boundary the same, in this case, all enclosed pixels will be white. + - The addition of `cv2.FILLED` will color all pixels enclosed by the contour boundary the same, in this case, all enclosed pixels will be white. - See [OpenCV Documentation on `drawContours()`](https://docs.opencv.org/4.8.0/d6/d6e/group__imgproc__draw.html#ga746c0625f1781f1ffc9056259103edbc) for more information. @@ -145,7 +145,7 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab *** -5. Next the there are 2 options for how to move forward with the image from this point and a subsequent option for each. +5. Next the there are 2 options for how to move forward with the image from this point and a subsequent option for each. ### Object Isolation Options @@ -155,10 +155,10 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab ```py # Create 3-channel mask - mask3ch = cv.cvtColor(b_mask, cv.COLOR_GRAY2BGR) + mask3ch = cv2.cvtColor(b_mask, cv2.COLOR_GRAY2BGR) # Isolate object with binary mask - isolated = cv.bitwise_and(mask3ch, img) + isolated = cv2.bitwise_and(mask3ch, img) ``` @@ -258,7 +258,7 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab *** -6. What to do next is entirely left to you as the developer. A basic example of one possible next step (saving the image to file for future use) is shown. +6. What to do next is entirely left to you as the developer. A basic example of one possible next step (saving the image to file for future use) is shown. - **NOTE:** this step is optional and can be skipped if not required for your specific use case. @@ -266,7 +266,7 @@ After performing the [Segment Task](../tasks/segment.md), it's sometimes desirab ```py # Save isolated object to file - _ = cv.imwrite(f'{img_name}_{label}-{ci}.png', iso_crop) + _ = cv2.imwrite(f'{img_name}_{label}-{ci}.png', iso_crop) ``` - In this example, the `img_name` is the base-name of the source image file, `label` is the detected class-name, and `ci` is the index of the object detection (in case of multiple instances with the same class name). @@ -278,7 +278,7 @@ Here, all steps from the previous section are combined into a single block of co ```{ .py .annotate } from pathlib import Path -import cv2 as cv +import cv2 import numpy as np from ultralytics import YOLO @@ -298,13 +298,13 @@ for r in res: # Create contour mask (1) contour = c.masks.xy.pop().astype(np.int32).reshape(-1, 1, 2) - _ = cv.drawContours(b_mask, [contour], -1, (255, 255, 255), cv.FILLED) + _ = cv2.drawContours(b_mask, [contour], -1, (255, 255, 255), cv2.FILLED) # Choose one: # OPTION-1: Isolate object with black background - mask3ch = cv.cvtColor(b_mask, cv.COLOR_GRAY2BGR) - isolated = cv.bitwise_and(mask3ch, img) + mask3ch = cv2.cvtColor(b_mask, cv2.COLOR_GRAY2BGR) + isolated = cv2.bitwise_and(mask3ch, img) # OPTION-2: Isolate object with transparent background (when saved as PNG) isolated = np.dstack([img, b_mask]) diff --git a/docs/en/guides/object-counting.md b/docs/en/guides/object-counting.md index 67728e96f..c00fbe19e 100644 --- a/docs/en/guides/object-counting.md +++ b/docs/en/guides/object-counting.md @@ -175,8 +175,8 @@ Object counting with [Ultralytics YOLOv8](https://github.com/ultralytics/ultraly | Name | Type | Default | Description | |-----------------------|-------------|----------------------------|-----------------------------------------------| | `view_img` | `bool` | `False` | Display frames with counts | -| `view_in_counts` | `bool` | `True` | Display incounts only on video frame | -| `view_out_counts` | `bool` | `True` | Display outcounts only on video frame | +| `view_in_counts` | `bool` | `True` | Display in-counts only on video frame | +| `view_out_counts` | `bool` | `True` | Display out-counts only on video frame | | `line_thickness` | `int` | `2` | Increase bounding boxes thickness | | `reg_pts` | `list` | `[(20, 400), (1260, 400)]` | Points defining the Region Area | | `classes_names` | `dict` | `model.model.names` | Dictionary of Class Names | diff --git a/docs/en/guides/object-cropping.md b/docs/en/guides/object-cropping.md index 126d3df2e..240230a8b 100644 --- a/docs/en/guides/object-cropping.md +++ b/docs/en/guides/object-cropping.md @@ -16,7 +16,6 @@ Object cropping with [Ultralytics YOLOv8](https://github.com/ultralytics/ultraly - **Reduced Data Volume**: By extracting only relevant objects, object cropping helps in minimizing data size, making it efficient for storage, transmission, or subsequent computational tasks. - **Enhanced Precision**: YOLOv8's object detection accuracy ensures that the cropped objects maintain their spatial relationships, preserving the integrity of the visual information for detailed analysis. - ## Visuals | Airport Luggage | @@ -24,7 +23,6 @@ Object cropping with [Ultralytics YOLOv8](https://github.com/ultralytics/ultraly | ![Conveyor Belt at Airport Suitcases Cropping using Ultralytics YOLOv8](https://github.com/RizwanMunawar/RizwanMunawar/assets/62513924/648f46be-f233-4307-a8e5-046eea38d2e4) | | Suitcases Cropping at airport conveyor belt using Ultralytics YOLOv8 | - !!! Example "Object Cropping using YOLOv8 Example" === "Object Cropping" diff --git a/docs/en/guides/workouts-monitoring.md b/docs/en/guides/workouts-monitoring.md index b2297803f..fd4d7e0f6 100644 --- a/docs/en/guides/workouts-monitoring.md +++ b/docs/en/guides/workouts-monitoring.md @@ -13,7 +13,7 @@ Monitoring workouts through pose estimation with [Ultralytics YOLOv8](https://gi - **Optimized Performance:** Tailoring workouts based on monitoring data for better results. - **Goal Achievement:** Track and adjust fitness goals for measurable progress. - **Personalization:** Customized workout plans based on individual data for effectiveness. -- **Health Awareness:** Early detection of patterns indicating health issues or overtraining. +- **Health Awareness:** Early detection of patterns indicating health issues or over-training. - **Informed Decisions:** Data-driven decisions for adjusting routines and setting realistic goals. ## Real World Applications @@ -109,7 +109,7 @@ Monitoring workouts through pose estimation with [Ultralytics YOLOv8](https://gi | `kpts_to_check` | `list` | `None` | List of three keypoints index, for counting specific workout, followed by keypoint Map | | `view_img` | `bool` | `False` | Display the frame with counts | | `line_thickness` | `int` | `2` | Increase the thickness of count value | -| `pose_type` | `str` | `pushup` | Pose that need to be monitored, "pullup" and "abworkout" also supported | +| `pose_type` | `str` | `pushup` | Pose that need to be monitored, `pullup` and `abworkout` also supported | | `pose_up_angle` | `int` | `145` | Pose Up Angle value | | `pose_down_angle` | `int` | `90` | Pose Down Angle value | diff --git a/docs/en/hub/cloud-training.md b/docs/en/hub/cloud-training.md index 91178ea2d..f774475a5 100644 --- a/docs/en/hub/cloud-training.md +++ b/docs/en/hub/cloud-training.md @@ -6,7 +6,7 @@ keywords: Ultralytics, HUB Models, AI model training, model creation, model trai # Cloud Training -[Ultralytics HUB](https://hub.ultralytics.com/) provides a powerful and user-friendly cloud platform to train custom object detection models. Easily select your dataset and the desired training method, then kick off the process with just a few clicks. Ultralytics HUB offers pre-built options and various model architectures to streamline your workflow. +[Ultralytics HUB](https://hub.ultralytics.com/) provides a powerful and user-friendly cloud platform to train custom object detection models. Easily select your dataset and the desired training method, then kick off the process with just a few clicks. Ultralytics HUB offers pre-built options and various model architectures to streamline your workflow. ![cloud training cover](https://github.com/ultralytics/ultralytics/assets/19519529/cbfdb3b8-ad35-44a6-afe6-61ec0b8e8b8d) diff --git a/docs/en/integrations/amazon-sagemaker.md b/docs/en/integrations/amazon-sagemaker.md index 55fd4c767..f57fc2eea 100644 --- a/docs/en/integrations/amazon-sagemaker.md +++ b/docs/en/integrations/amazon-sagemaker.md @@ -38,7 +38,7 @@ First, ensure you have the following prerequisites in place: - AWS CDK: If not already installed, install the AWS Cloud Development Kit (CDK), which will be used for scripting the deployment. Follow [the AWS CDK instructions](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) for installation. -- Adequate Service Quota: Confirm that you have sufficient quotas for two separate resources in Amazon SageMaker: one for ml.m5.4xlarge for endpoint usage and another for ml.m5.4xlarge for notebook instance usage. Each of these requires a minimum of one quota value. If your current quotas are below this requirement, it's important to request an increase for each. You can request a quota increase by following the detailed instructions in the [AWS Service Quotas documentation](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html#quota-console-increase). +- Adequate Service Quota: Confirm that you have sufficient quotas for two separate resources in Amazon SageMaker: one for `ml.m5.4xlarge` for endpoint usage and another for `ml.m5.4xlarge` for notebook instance usage. Each of these requires a minimum of one quota value. If your current quotas are below this requirement, it's important to request an increase for each. You can request a quota increase by following the detailed instructions in the [AWS Service Quotas documentation](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html#quota-console-increase). ### Step 2: Clone the YOLOv8 SageMaker Repository @@ -115,17 +115,21 @@ After creating the AWS CloudFormation Stack, the next step is to deploy YOLOv8. - Access and Modify inference.py: After opening the SageMaker notebook instance in Jupyter, locate the inference.py file. Edit the output_fn function in inference.py as shown below and save your changes to the script, ensuring that there are no syntax errors. ```python +import json + def output_fn(prediction_output, content_type): print("Executing output_fn from inference.py ...") infer = {} for result in prediction_output: - if 'boxes' in result._keys and result.boxes is not None: + if result.boxes is not None: infer['boxes'] = result.boxes.numpy().data.tolist() - if 'masks' in result._keys and result.masks is not None: + if result.masks is not None: infer['masks'] = result.masks.numpy().data.tolist() - if 'keypoints' in result._keys and result.keypoints is not None: + if result.keypoints is not None: infer['keypoints'] = result.keypoints.numpy().data.tolist() - if 'probs' in result._keys and result.probs is not None: + if result.obb is not None: + infer['obb'] = result.obb.numpy().data.tolist() + if result.probs is not None: infer['probs'] = result.probs.numpy().data.tolist() return json.dumps(infer) ``` diff --git a/docs/en/integrations/coreml.md b/docs/en/integrations/coreml.md index cbcff691c..5533da575 100644 --- a/docs/en/integrations/coreml.md +++ b/docs/en/integrations/coreml.md @@ -18,9 +18,10 @@ The CoreML export format allows you to optimize your [Ultralytics YOLOv8](https: [CoreML](https://developer.apple.com/documentation/coreml) is Apple's foundational machine learning framework that builds upon Accelerate, BNNS, and Metal Performance Shaders. It provides a machine-learning model format that seamlessly integrates into iOS applications and supports tasks such as image analysis, natural language processing, audio-to-text conversion, and sound analysis. -Applications can take advantage of Core ML without the need to have a network connection or API calls because the Core ML framework works using on-device computing. This means model inferencing can be performed locally on the user's device. +Applications can take advantage of Core ML without the need to have a network connection or API calls because the Core ML framework works using on-device computing. This means model inference can be performed locally on the user's device. ## Key Features of CoreML Models + Apple's CoreML framework offers robust features for on-device machine learning. Here are the key features that make CoreML a powerful tool for developers: - **Comprehensive Model Support**: Converts and runs models from popular frameworks like TensorFlow, PyTorch, scikit-learn, XGBoost, and LibSVM. diff --git a/docs/en/integrations/index.md b/docs/en/integrations/index.md index b52f3db9b..77a723dc1 100644 --- a/docs/en/integrations/index.md +++ b/docs/en/integrations/index.md @@ -53,7 +53,7 @@ Welcome to the Ultralytics Integrations page! This page provides an overview of - [CoreML](coreml.md): CoreML, developed by [Apple](https://www.apple.com/), is a framework designed for efficiently integrating machine learning models into applications across iOS, macOS, watchOS, and tvOS, using Apple's hardware for effective and secure model deployment. - [TFLite](tflite.md): Developed by [Google](https://www.google.com), TFLite is a lightweight framework for deploying machine learning models on mobile and edge devices, ensuring fast, efficient inference with minimal memory footprint. - + - [NCNN](ncnn.md): Developed by [Tencent](http://www.tencent.com/), NCNN is an efficient neural network inference framework tailored for mobile devices. It enables direct deployment of AI models into apps, optimizing performance across various mobile platforms. ### Export Formats diff --git a/docs/en/integrations/ncnn.md b/docs/en/integrations/ncnn.md index eadc9813f..835f8fcd9 100644 --- a/docs/en/integrations/ncnn.md +++ b/docs/en/integrations/ncnn.md @@ -6,7 +6,7 @@ keywords: Ultralytics, YOLOv8, NCNN Export, Export YOLOv8, Model Deployment # How to Export to NCNN from YOLOv8 for Smooth Deployment -Deploying computer vision models on devices with limited computational power, such as mobile or embedded systems, can be tricky. You need to make sure you use a format optimized for optimal performance. This makes sure that even devices with limited processing power can handle advanced computer vision tasks well. +Deploying computer vision models on devices with limited computational power, such as mobile or embedded systems, can be tricky. You need to make sure you use a format optimized for optimal performance. This makes sure that even devices with limited processing power can handle advanced computer vision tasks well. The export to NCNN format feature allows you to optimize your [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) models for lightweight device-based applications. In this guide, we'll walk you through how to convert your models to the NCNN format, making it easier for your models to perform well on various mobile and embedded devices. @@ -18,19 +18,19 @@ The export to NCNN format feature allows you to optimize your [Ultralytics YOLOv The [NCNN](https://github.com/Tencent/ncnn) framework, developed by Tencent, is a high-performance neural network inference computing framework optimized specifically for mobile platforms, including mobile phones, embedded devices, and IoT devices. NCNN is compatible with a wide range of platforms, including Linux, Android, iOS, and macOS. -NCNN is known for its fast processing speed on mobile CPUs and enables rapid deployment of deep learning models to mobile platforms. This makes it easier to build smart apps, putting the power of AI right at your fingertips. +NCNN is known for its fast processing speed on mobile CPUs and enables rapid deployment of deep learning models to mobile platforms. This makes it easier to build smart apps, putting the power of AI right at your fingertips. ## Key Features of NCNN Models NCNN models offer a wide range of key features that enable on-device machine learning by helping developers run their models on mobile, embedded, and edge devices: - - **Efficient and High-Performance**: NCNN models are made to be efficient and lightweight, optimized for running on mobile and embedded devices like Raspberry Pi with limited resources. They can also achieve high performance with high accuracy on various computer vision-based tasks. +- **Efficient and High-Performance**: NCNN models are made to be efficient and lightweight, optimized for running on mobile and embedded devices like Raspberry Pi with limited resources. They can also achieve high performance with high accuracy on various computer vision-based tasks. - - **Quantization**: NCNN models often support quantization which is a technique that reduces the precision of the model's weights and activations. This leads to further improvements in performance and reduces memory footprint. +- **Quantization**: NCNN models often support quantization which is a technique that reduces the precision of the model's weights and activations. This leads to further improvements in performance and reduces memory footprint. - - **Compatibility**: NCNN models are compatible with popular deep learning frameworks like [TensorFlow](https://www.tensorflow.org/), [Caffe](https://caffe.berkeleyvision.org/), and [ONNX](https://onnx.ai/). This compatibility allows developers to use existing models and workflows easily. +- **Compatibility**: NCNN models are compatible with popular deep learning frameworks like [TensorFlow](https://www.tensorflow.org/), [Caffe](https://caffe.berkeleyvision.org/), and [ONNX](https://onnx.ai/). This compatibility allows developers to use existing models and workflows easily. - - **Easy to Use**: NCNN models are designed for easy integration into various applications, thanks to their compatibility with popular deep learning frameworks. Additionally, NCNN offers user-friendly tools for converting models between different formats, ensuring smooth interoperability across the development landscape. +- **Easy to Use**: NCNN models are designed for easy integration into various applications, thanks to their compatibility with popular deep learning frameworks. Additionally, NCNN offers user-friendly tools for converting models between different formats, ensuring smooth interoperability across the development landscape. ## Deployment Options with NCNN @@ -65,7 +65,7 @@ For detailed instructions and best practices related to the installation process ### Usage -Before diving into the usage instructions, it's important to note that while all [Ultralytics YOLOv8 models]((../models/index.md)) are available for exporting, you can ensure that the model you select supports export functionality [here](../modes/export.md). +Before diving into the usage instructions, it's important to note that while all [Ultralytics YOLOv8 models](../models/index.md) are available for exporting, you can ensure that the model you select supports export functionality [here](../modes/export.md). !!! Example "Usage" @@ -103,13 +103,13 @@ For more details about supported export options, visit the [Ultralytics document After successfully exporting your Ultralytics YOLOv8 models to NCNN format, you can now deploy them. The primary and recommended first step for running a NCNN model is to utilize the YOLO("./model_ncnn_model") method, as outlined in the previous usage code snippet. However, for in-depth instructions on deploying your NCNN models in various other settings, take a look at the following resources: -- **[Android](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-android)**: This blog explains how to use NCNN models for performing tasks like object detection through Android applications. +- **[Android](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-android)**: This blog explains how to use NCNN models for performing tasks like object detection through Android applications. - - **[macOS](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-macos)**: Understand how to use NCNN models for performing tasks through macOS. +- **[macOS](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-macos)**: Understand how to use NCNN models for performing tasks through macOS. - - **[Linux](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux)**: Explore this page to learn how to deploy NCNN models on limited resource devices like Raspberry Pi and other similar devices. +- **[Linux](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux)**: Explore this page to learn how to deploy NCNN models on limited resource devices like Raspberry Pi and other similar devices. - - **[Windows x64 using VS2017](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-windows-x64-using-visual-studio-community-2017)**: Explore this blog to learn how to deploy NCNN models on windows x64 using Visual Studio Community 2017. +- **[Windows x64 using VS2017](https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-windows-x64-using-visual-studio-community-2017)**: Explore this blog to learn how to deploy NCNN models on windows x64 using Visual Studio Community 2017. ## Summary diff --git a/docs/en/integrations/neural-magic.md b/docs/en/integrations/neural-magic.md index 90e90dbef..53910972c 100644 --- a/docs/en/integrations/neural-magic.md +++ b/docs/en/integrations/neural-magic.md @@ -6,7 +6,7 @@ keywords: YOLOv8, DeepSparse Engine, Ultralytics, CPU Inference, Neural Network # Optimizing YOLOv8 Inferences with Neural Magic’s DeepSparse Engine -When deploying object detection models like [Ultralytics’ YOLOv8](https://ultralytics.com) on various hardware, you can bump into unique issues like optimization. This is where YOLOv8’s integration with Neural Magic’s DeepSparse Engine steps in. It transforms the way YOLOv8 models are executed and enables GPU-level performance directly on CPUs. +When deploying object detection models like [Ultralytics YOLOv8](https://ultralytics.com) on various hardware, you can bump into unique issues like optimization. This is where YOLOv8’s integration with Neural Magic’s DeepSparse Engine steps in. It transforms the way YOLOv8 models are executed and enables GPU-level performance directly on CPUs. This guide shows you how to deploy YOLOv8 using Neural Magic's DeepSparse, how to run inferences, and also how to benchmark performance to ensure it is optimized. diff --git a/docs/en/integrations/tensorboard.md b/docs/en/integrations/tensorboard.md index f462416a8..5e0cbf126 100644 --- a/docs/en/integrations/tensorboard.md +++ b/docs/en/integrations/tensorboard.md @@ -102,7 +102,7 @@ The Time Series feature in the TensorBoard offers a dynamic and detailed perspec #### Importance of Time Series in YOLOv8 Training -The Time Series section is essential for a thorough analysis of the YOLOv8 model's training progress. It lets you track the metrics in real time so you can promptly identify and solve issues. It also offers a detailed view of each metric's progression, which is crucial for fine-tuning the model and enhancing its performance. +The Time Series section is essential for a thorough analysis of the YOLOv8 model's training progress. It lets you track the metrics in real time to promptly identify and solve issues. It also offers a detailed view of each metric's progression, which is crucial for fine-tuning the model and enhancing its performance. ### Scalars @@ -146,7 +146,7 @@ Graphs are particularly useful for debugging the model, especially in complex ar ## Summary -This guide aims to help you use TensorBoard with YOLOv8 for visualization and analysis of machine learning model training. It focuses on explaining how key TensorBoard features can provides insights into training metrics and model performance during YOLOv8 training sessions. +This guide aims to help you use TensorBoard with YOLOv8 for visualization and analysis of machine learning model training. It focuses on explaining how key TensorBoard features can provide insights into training metrics and model performance during YOLOv8 training sessions. For a more detailed exploration of these features and effective utilization strategies, you can refer to TensorFlow’s official [TensorBoard documentation](https://www.tensorflow.org/tensorboard/get_started) and their [GitHub repository](https://github.com/tensorflow/tensorboard). diff --git a/docs/en/integrations/tensorrt.md b/docs/en/integrations/tensorrt.md index 88b3bf46f..aa8967524 100644 --- a/docs/en/integrations/tensorrt.md +++ b/docs/en/integrations/tensorrt.md @@ -16,7 +16,7 @@ By using the TensorRT export format, you can enhance your [Ultralytics YOLOv8](h TensorRT Overview

-[TensorRT](https://developer.nvidia.com/tensorrt#:~:text=NVIDIA%20TensorRT%2DLLM%20is%20an,knowledge%20of%20C%2B%2B%20or%20CUDA.), developed by NVIDIA, is an advanced software development kit (SDK) designed for high-speed deep learning inference. It’s well-suited for real-time applications like object detection. +[TensorRT](https://developer.nvidia.com/tensorrt), developed by NVIDIA, is an advanced software development kit (SDK) designed for high-speed deep learning inference. It’s well-suited for real-time applications like object detection. This toolkit optimizes deep learning models for NVIDIA GPUs and results in faster and more efficient operations. TensorRT models undergo TensorRT optimization, which includes techniques like layer fusion, precision calibration (INT8 and FP16), dynamic tensor memory management, and kernel auto-tuning. Converting deep learning models into the TensorRT format allows developers to realize the potential of NVIDIA GPUs fully. @@ -40,7 +40,7 @@ TensorRT models offer a range of key features that contribute to their efficienc ## Deployment Options in TensorRT -Before we look at the code for exporting YOLOv8 models to the TensorRT format, let’s understand where TensorRT models are normally used. +Before we look at the code for exporting YOLOv8 models to the TensorRT format, let’s understand where TensorRT models are normally used. TensorRT offers several deployment options, and each option balances ease of integration, performance optimization, and flexibility differently: @@ -52,7 +52,7 @@ TensorRT offers several deployment options, and each option balances ease of int - **Standalone TensorRT Runtime API**: Offers granular control, ideal for performance-critical applications. It's more complex but allows for custom implementation of unsupported operators. -- **NVIDIA Triton Inference Server**: An option that supports models from various frameworks. Particularly suited for cloud or edge inferencing, it provides features like concurrent model execution and model analysis. +- **NVIDIA Triton Inference Server**: An option that supports models from various frameworks. Particularly suited for cloud or edge inference, it provides features like concurrent model execution and model analysis. ## Exporting YOLOv8 Models to TensorRT diff --git a/docs/en/integrations/tflite.md b/docs/en/integrations/tflite.md index 805e8a338..03fe1565b 100644 --- a/docs/en/integrations/tflite.md +++ b/docs/en/integrations/tflite.md @@ -6,17 +6,17 @@ keywords: Ultralytics, YOLOv8, TFLite Export, Export YOLOv8, Model Deployment # A Guide on YOLOv8 Model Export to TFLite for Deployment +

+ TFLite Logo +

+ Deploying computer vision models on edge devices or embedded devices requires a format that can ensure seamless performance. The TensorFlow Lite or TFLite export format allows you to optimize your [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) models for tasks like object detection and image classification in edge device-based applications. In this guide, we'll walk through the steps for converting your models to the TFLite format, making it easier for your models to perform well on various edge devices. ## Why should you export to TFLite? -

- TFLite Logo -

- -Introduced by Google in May 2017 as part of their TensorFlow framework, [TensorFlow Lite](https://www.tensorflow.org/lite/guide), or TFLite for short, is an open-source deep learning framework designed for on-device inference, also known as edge computing. It gives developers the necessary tools to execute their trained models on mobile, embedded, and IoT devices, as well as traditional computers. +Introduced by Google in May 2017 as part of their TensorFlow framework, [TensorFlow Lite](https://www.tensorflow.org/lite/guide), or TFLite for short, is an open-source deep learning framework designed for on-device inference, also known as edge computing. It gives developers the necessary tools to execute their trained models on mobile, embedded, and IoT devices, as well as traditional computers. TensorFlow Lite is compatible with a wide range of platforms, including embedded Linux, Android, iOS, and MCU. Exporting your model to TFLite makes your applications faster, more reliable, and capable of running offline. @@ -38,15 +38,15 @@ Before we look at the code for exporting YOLOv8 models to the TFLite format, let TFLite offers various on-device deployment options for machine learning models, including: - - **Deploying with Android and iOS**: Both Android and iOS applications with TFLite can analyze edge-based camera feeds and sensors to detect and identify objects. TFLite also offers native iOS libraries written in [Swift](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/swift) and [Objective-C](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/objc). The architecture diagram below shows the process of deploying a trained model onto Android and iOS platforms using TensorFlow Lite. +- **Deploying with Android and iOS**: Both Android and iOS applications with TFLite can analyze edge-based camera feeds and sensors to detect and identify objects. TFLite also offers native iOS libraries written in [Swift](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/swift) and [Objective-C](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/objc). The architecture diagram below shows the process of deploying a trained model onto Android and iOS platforms using TensorFlow Lite.

- Architecture + Architecture

- - **Implementing with Embedded Linux**: If running inferences on a [Raspberry Pi](https://www.raspberrypi.org/) using the [Ultralytics Guide](../guides/raspberry-pi.md) does not meet the speed requirements for your use case, you can use an exported TFLite model to accelerate inference times. Additionally, it's possible to further improve performance by utilizing a [Coral Edge TPU device]((https://coral.withgoogle.com/)). +- **Implementing with Embedded Linux**: If running inferences on a [Raspberry Pi](https://www.raspberrypi.org/) using the [Ultralytics Guide](../guides/raspberry-pi.md) does not meet the speed requirements for your use case, you can use an exported TFLite model to accelerate inference times. Additionally, it's possible to further improve performance by utilizing a [Coral Edge TPU device](https://coral.withgoogle.com/). - - **Deploying with Microcontrollers**: TFLite models can also be deployed on microcontrollers and other devices with only a few kilobytes of memory. The core runtime just fits in 16 KB on an Arm Cortex M3 and can run many basic models. It doesn't require operating system support, any standard C or C++ libraries, or dynamic memory allocation. +- **Deploying with Microcontrollers**: TFLite models can also be deployed on microcontrollers and other devices with only a few kilobytes of memory. The core runtime just fits in 16 KB on an Arm Cortex M3 and can run many basic models. It doesn't require operating system support, any standard C or C++ libraries, or dynamic memory allocation. ## Export to TFLite: Converting Your YOLOv8 Model @@ -69,7 +69,7 @@ For detailed instructions and best practices related to the installation process ### Usage -Before diving into the usage instructions, it's important to note that while all [Ultralytics YOLOv8 models]((../models/index.md)) are available for exporting, you can ensure that the model you select supports export functionality [here](../modes/export.md). +Before diving into the usage instructions, it's important to note that while all [Ultralytics YOLOv8 models](../models/index.md) are available for exporting, you can ensure that the model you select supports export functionality [here](../modes/export.md). !!! Example "Usage" @@ -107,11 +107,11 @@ For more details about the export process, visit the [Ultralytics documentation After successfully exporting your Ultralytics YOLOv8 models to TFLite format, you can now deploy them. The primary and recommended first step for running a TFLite model is to utilize the YOLO("model.tflite") method, as outlined in the previous usage code snippet. However, for in-depth instructions on deploying your TFLite models in various other settings, take a look at the following resources: - - **[Android](https://www.tensorflow.org/lite/android/quickstart)**: A quick start guide for integrating TensorFlow Lite into Android applications, providing easy-to-follow steps for setting up and running machine learning models. +- **[Android](https://www.tensorflow.org/lite/android/quickstart)**: A quick start guide for integrating TensorFlow Lite into Android applications, providing easy-to-follow steps for setting up and running machine learning models. - - **[iOS](https://www.tensorflow.org/lite/guide/ios)**: Check out this detailed guide for developers on integrating and deploying TensorFlow Lite models in iOS applications, offering step-by-step instructions and resources. +- **[iOS](https://www.tensorflow.org/lite/guide/ios)**: Check out this detailed guide for developers on integrating and deploying TensorFlow Lite models in iOS applications, offering step-by-step instructions and resources. - - **[End-To-End Examples](https://www.tensorflow.org/lite/examples)**: This page provides an overview of various TensorFlow Lite examples, showcasing practical applications and tutorials designed to help developers implement TensorFlow Lite in their machine learning projects on mobile and edge devices. +- **[End-To-End Examples](https://www.tensorflow.org/lite/examples)**: This page provides an overview of various TensorFlow Lite examples, showcasing practical applications and tutorials designed to help developers implement TensorFlow Lite in their machine learning projects on mobile and edge devices. ## Summary diff --git a/docs/en/integrations/torchscript.md b/docs/en/integrations/torchscript.md index 76a8c9bda..f050986c2 100644 --- a/docs/en/integrations/torchscript.md +++ b/docs/en/integrations/torchscript.md @@ -8,7 +8,7 @@ keywords: Ultralytics, YOLOv8, Export to Torchscript, Model Optimization, Deploy Deploying computer vision models across different environments, including embedded systems, web browsers, or platforms with limited Python support, requires a flexible and portable solution. TorchScript focuses on portability and the ability to run models in environments where the entire Python framework is unavailable. This makes it ideal for scenarios where you need to deploy your computer vision capabilities across various devices or platforms. -Export to Torchscript to serialize your [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) models for cross-platform compatibility and streamlined deployment. In this guide, we'll show you how to export your YOLOv8 models to the TorchScript format, making it easier for you to use them across a wider range of applications. +Export to Torchscript to serialize your [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) models for cross-platform compatibility and streamlined deployment. In this guide, we'll show you how to export your YOLOv8 models to the TorchScript format, making it easier for you to use them across a wider range of applications. ## Why should you export to TorchScript? @@ -16,7 +16,7 @@ Export to Torchscript to serialize your [Ultralytics YOLOv8](https://github.com/ Developed by the creators of PyTorch, TorchScript is a powerful tool for optimizing and deploying PyTorch models across a variety of platforms. Exporting YOLOv8 models to [TorchScript](https://pytorch.org/docs/stable/jit.html) is crucial for moving from research to real-world applications. TorchScript, part of the PyTorch framework, helps make this transition smoother by allowing PyTorch models to be used in environments that don't support Python. -The process involves two techniques: tracing and scripting. Tracing records operations during model execution, while scripting allows for the definition of models using a subset of Python. These techniques ensures that models like YOLOv8 can still work their magic even outside their usual Python environment. +The process involves two techniques: tracing and scripting. Tracing records operations during model execution, while scripting allows for the definition of models using a subset of Python. These techniques ensure that models like YOLOv8 can still work their magic even outside their usual Python environment. ![TorchScript Script and Trace](https://github.com/ultralytics/ultralytics/assets/26833433/ea9ea24f-a3a9-44bb-aca7-9c358d7490d7) @@ -24,7 +24,7 @@ TorchScript models can also be optimized through techniques such as operator fus ## Key Features of TorchScript Models -TorchScript, a key part of the PyTorch ecosystem, provides powerful features for optimizing and deploying deep learning models. +TorchScript, a key part of the PyTorch ecosystem, provides powerful features for optimizing and deploying deep learning models. ![TorchScript Features](https://github.com/ultralytics/ultralytics/assets/26833433/44c7c5e3-1146-42db-952a-9060f070fead) @@ -32,11 +32,11 @@ Here are the key features that make TorchScript a valuable tool for developers: - **Static Graph Execution**: TorchScript uses a static graph representation of the model’s computation, which is different from PyTorch’s dynamic graph execution. In static graph execution, the computational graph is defined and compiled once before the actual execution, resulting in improved performance during inference. - - **Model Serialization**: TorchScript allows you to serialize PyTorch models into a platform-independent format. Serialized models can be loaded without requiring the original Python code, enabling deployment in different runtime environments. +- **Model Serialization**: TorchScript allows you to serialize PyTorch models into a platform-independent format. Serialized models can be loaded without requiring the original Python code, enabling deployment in different runtime environments. - - **JIT Compilation**: TorchScript uses Just-In-Time (JIT) compilation to convert PyTorch models into an optimized intermediate representation. JIT compiles the model’s computational graph, enabling efficient execution on target devices. +- **JIT Compilation**: TorchScript uses Just-In-Time (JIT) compilation to convert PyTorch models into an optimized intermediate representation. JIT compiles the model’s computational graph, enabling efficient execution on target devices. - - **Cross-Language Integration**: With TorchScript, you can export PyTorch models to other languages such as C++, Java, and JavaScript. This makes it easier to integrate PyTorch models into existing software systems written in different languages. +- **Cross-Language Integration**: With TorchScript, you can export PyTorch models to other languages such as C++, Java, and JavaScript. This makes it easier to integrate PyTorch models into existing software systems written in different languages. - **Gradual Conversion**: TorchScript provides a gradual conversion approach, allowing you to incrementally convert parts of your PyTorch model into TorchScript. This flexibility is particularly useful when dealing with complex models or when you want to optimize specific portions of the code. @@ -73,7 +73,7 @@ For detailed instructions and best practices related to the installation process ### Usage -Before diving into the usage instructions, it's important to note that while all [Ultralytics YOLOv8 models]((../models/index.md)) are available for exporting, you can ensure that the model you select supports export functionality [here](../modes/export.md). +Before diving into the usage instructions, it's important to note that while all [Ultralytics YOLOv8 models](../models/index.md) are available for exporting, you can ensure that the model you select supports export functionality [here](../modes/export.md). !!! Example "Usage" diff --git a/docs/en/models/rtdetr.md b/docs/en/models/rtdetr.md index 4224b918d..844356e2f 100644 --- a/docs/en/models/rtdetr.md +++ b/docs/en/models/rtdetr.md @@ -27,7 +27,7 @@ The Ultralytics Python API provides pre-trained PaddlePaddle RT-DETR models with ## Usage Examples -This example provides simple RT-DETRR training and inference examples. For full documentation on these and other [modes](../modes/index.md) see the [Predict](../modes/predict.md), [Train](../modes/train.md), [Val](../modes/val.md) and [Export](../modes/export.md) docs pages. +This example provides simple RT-DETR training and inference examples. For full documentation on these and other [modes](../modes/index.md) see the [Predict](../modes/predict.md), [Train](../modes/train.md), [Val](../modes/val.md) and [Export](../modes/export.md) docs pages. !!! Example diff --git a/docs/en/models/yolov9.md b/docs/en/models/yolov9.md index d1e9f1361..adc578f0c 100644 --- a/docs/en/models/yolov9.md +++ b/docs/en/models/yolov9.md @@ -59,11 +59,11 @@ The performance of YOLOv9 on the [COCO dataset](../datasets/detect/coco.md) exem **Table 1. Comparison of State-of-the-Art Real-Time Object Detectors** | Model | size
(pixels) | APval
50-95 | APval
50 | APval
75 | params
(M) | FLOPs
(B) | -|----------|:---------------------:|:-------------------:|:----------------:|:----------------:|:------------------:|:-----------------:| -| YOLOv9-S | 640 | 46.8 | 63.4 | 50.7 | 7.2 | 26.7 | -| YOLOv9-M | 640 | 51.4 | 68.1 | 56.1 | 20.1 | 76.8 | -| YOLOv9-C | 640 | 53.0 | 70.2 | 57.8 | 25.5 | 102.8 | -| YOLOv9-E | 640 | 55.6 | 72.8 | 60.6 | 58.1 | 192.5 | +|----------|-----------------------|---------------------|------------------|------------------|--------------------|-------------------| +| YOLOv9-S | 640 | 46.8 | 63.4 | 50.7 | 7.2 | 26.7 | +| YOLOv9-M | 640 | 51.4 | 68.1 | 56.1 | 20.1 | 76.8 | +| YOLOv9-C | 640 | 53.0 | 70.2 | 57.8 | 25.5 | 102.8 | +| YOLOv9-E | 640 | 55.6 | 72.8 | 60.6 | 58.1 | 192.5 | YOLOv9's iterations, ranging from the smaller S variant to the extensive E model, demonstrate improvements not only in accuracy (AP metrics) but also in efficiency with a reduced number of parameters and computational needs (FLOPs). This table underscores YOLOv9's ability to deliver high precision while maintaining or reducing the computational overhead compared to prior versions and competing models. diff --git a/docs/en/modes/val.md b/docs/en/modes/val.md index 82eb4d96d..0c77425a1 100644 --- a/docs/en/modes/val.md +++ b/docs/en/modes/val.md @@ -91,7 +91,7 @@ When validating YOLO models, several arguments can be fine-tuned to optimize the | `max_det` | `int` | `300` | Limits the maximum number of detections per image. Useful in dense scenes to prevent excessive detections. | | `half` | `bool` | `True` | Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy. | | `device` | `str` | `None` | Specifies the device for validation (`cpu`, `cuda:0`, etc.). Allows flexibility in utilizing CPU or GPU resources. | -| `dnn` | `bool` | `False` | If `True`, uses OpenCV's DNN module for ONNX model inference, offering an alternative to PyTorch inference methods. | +| `dnn` | `bool` | `False` | If `True`, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods. | | `plots` | `bool` | `False` | When set to `True`, generates and saves plots of predictions versus ground truth for visual evaluation of the model's performance. | | `rect` | `bool` | `False` | If `True`, uses rectangular inference for batching, reducing padding and potentially increasing speed and efficiency. | | `split` | `str` | `val` | Determines the dataset split to use for validation (`val`, `test`, or `train`). Allows flexibility in choosing the data segment for performance evaluation. | diff --git a/docs/en/tasks/obb.md b/docs/en/tasks/obb.md index c91690981..aa75d5160 100644 --- a/docs/en/tasks/obb.md +++ b/docs/en/tasks/obb.md @@ -49,7 +49,7 @@ YOLOv8 pretrained OBB models are shown here, which are pretrained on the [DOTAv1 | [YOLOv8l-obb](https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov8l-obb.pt) | 1024 | 80.7 | 1278.42 | 11.83 | 44.5 | 433.8 | | [YOLOv8x-obb](https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov8x-obb.pt) | 1024 | 81.36 | 1759.10 | 13.23 | 69.5 | 676.7 | -- **mAPtest** values are for single-model multi-scale on [DOTAv1 test](https://captain-whu.github.io/DOTA/index.html) dataset.
Reproduce by `yolo val obb data=DOTAv1.yaml device=0 split=test` and submit merged results to [DOTA evaluation](https://captain-whu.github.io/DOTA/evaluation.html). +- **mAPtest** values are for single-model multiscale on [DOTAv1 test](https://captain-whu.github.io/DOTA/index.html) dataset.
Reproduce by `yolo val obb data=DOTAv1.yaml device=0 split=test` and submit merged results to [DOTA evaluation](https://captain-whu.github.io/DOTA/evaluation.html). - **Speed** averaged over DOTAv1 val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance.
Reproduce by `yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu` ## Train diff --git a/docs/en/usage/cfg.md b/docs/en/usage/cfg.md index f029ed398..4b8b29177 100644 --- a/docs/en/usage/cfg.md +++ b/docs/en/usage/cfg.md @@ -194,7 +194,7 @@ The val (validation) settings for YOLO models involve various hyperparameters an | `max_det` | `int` | `300` | Limits the maximum number of detections per image. Useful in dense scenes to prevent excessive detections. | | `half` | `bool` | `True` | Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy. | | `device` | `str` | `None` | Specifies the device for validation (`cpu`, `cuda:0`, etc.). Allows flexibility in utilizing CPU or GPU resources. | -| `dnn` | `bool` | `False` | If `True`, uses OpenCV's DNN module for ONNX model inference, offering an alternative to PyTorch inference methods. | +| `dnn` | `bool` | `False` | If `True`, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods. | | `plots` | `bool` | `False` | When set to `True`, generates and saves plots of predictions versus ground truth for visual evaluation of the model's performance. | | `rect` | `bool` | `False` | If `True`, uses rectangular inference for batching, reducing padding and potentially increasing speed and efficiency. | | `split` | `str` | `val` | Determines the dataset split to use for validation (`val`, `test`, or `train`). Allows flexibility in choosing the data segment for performance evaluation. | diff --git a/docs/en/usage/python.md b/docs/en/usage/python.md index d62ec0c3e..db4fd2ede 100644 --- a/docs/en/usage/python.md +++ b/docs/en/usage/python.md @@ -249,7 +249,7 @@ Benchmark mode is used to profile the speed and accuracy of various export forma ## Explorer -Explorer API can be used to explore datasets with advanced semantic, vector-similarity and SQL search among other features. It also searching for images based on their content using natural language by utilizing the power of LLMs. The Explorer API allows you to write your own dataset exploration notebooks or scripts to get insights into your datasets. +Explorer API can be used to explore datasets with advanced semantic, vector-similarity and SQL search among other features. It also enabled searching for images based on their content using natural language by utilizing the power of LLMs. The Explorer API allows you to write your own dataset exploration notebooks or scripts to get insights into your datasets. !!! Example "Semantic Search Using Explorer" diff --git a/docs/en/usage/simple-utilities.md b/docs/en/usage/simple-utilities.md index b07284dc9..c170f5198 100644 --- a/docs/en/usage/simple-utilities.md +++ b/docs/en/usage/simple-utilities.md @@ -20,7 +20,7 @@ The `ultralytics` package comes with a myriad of utilities that can support, enh ### Auto Labeling / Annotations -Dataset annotation is an _extremely_ resource heavy and time consuming process. If you have a YOLO object detection model trained on a reasonable amount of data, you can use it and [SAM](../models/sam.md) to auto-annotate additional data (segmentation format). +Dataset annotation is a very resource intensive and time-consuming process. If you have a YOLO object detection model trained on a reasonable amount of data, you can use it and [SAM](../models/sam.md) to auto-annotate additional data (segmentation format). ```{ .py .annotate } from ultralytics.data.annotator import auto_annotate @@ -211,7 +211,7 @@ boxes.bboxes See the [`Bboxes` reference section](../reference/utils/instance.md#ultralytics.utils.instance.Bboxes) for more attributes and methods available. !!! tip - Many of the following functions (and more) can be accessed using the [`Bboxes` class](#bounding-box-horizontal-instances) but if you prefer to work with the functions directly, see the next sub-sections on how to import these independently. + Many of the following functions (and more) can be accessed using the [`Bboxes` class](#bounding-box-horizontal-instances) but if you prefer to work with the functions directly, see the next subsections on how to import these independently. ### Scaling Boxes @@ -385,7 +385,7 @@ for obb in obb_boxes: image_with_obb = ann.result() ``` -See the [`Annotator` Reference Page](../reference/utils/plotting.md#ultralytics.utils.plotting.Annotator) page for additional insight. +See the [`Annotator` Reference Page](../reference/utils/plotting.md#ultralytics.utils.plotting.Annotator) for additional insight. ## Miscellaneous diff --git a/examples/tutorial.ipynb b/examples/tutorial.ipynb index 62b05a6f7..3b74d6d49 100644 --- a/examples/tutorial.ipynb +++ b/examples/tutorial.ipynb @@ -357,7 +357,7 @@ "| [TF Edge TPU](https://coral.ai/docs/edgetpu/models-intro/) | `edgetpu` | `yolov8n_edgetpu.tflite` | âś… | `imgsz` |\n", "| [TF.js](https://www.tensorflow.org/js) | `tfjs` | `yolov8n_web_model/` | âś… | `imgsz` |\n", "| [PaddlePaddle](https://github.com/PaddlePaddle) | `paddle` | `yolov8n_paddle_model/` | âś… | `imgsz` |\n", - "| [ncnn](https://github.com/Tencent/ncnn) | `ncnn` | `yolov8n_ncnn_model/` | âś… | `imgsz`, `half` |\n" + "| [NCNN](https://github.com/Tencent/ncnn) | `ncnn` | `yolov8n_ncnn_model/` | âś… | `imgsz`, `half` |\n" ], "metadata": { "id": "nPZZeNrLCQG6" diff --git a/ultralytics/engine/predictor.py b/ultralytics/engine/predictor.py index 38b9641a3..e925902fe 100644 --- a/ultralytics/engine/predictor.py +++ b/ultralytics/engine/predictor.py @@ -26,6 +26,7 @@ Usage - formats: yolov8n.tflite # TensorFlow Lite yolov8n_edgetpu.tflite # TensorFlow Edge TPU yolov8n_paddle_model # PaddlePaddle + yolov8n_ncnn_model # NCNN """ import platform diff --git a/ultralytics/engine/validator.py b/ultralytics/engine/validator.py index db9d07607..41be54c19 100644 --- a/ultralytics/engine/validator.py +++ b/ultralytics/engine/validator.py @@ -17,6 +17,7 @@ Usage - formats: yolov8n.tflite # TensorFlow Lite yolov8n_edgetpu.tflite # TensorFlow Edge TPU yolov8n_paddle_model # PaddlePaddle + yolov8n_ncnn_model # NCNN """ import json