mirror of
https://github.com/THU-MIG/yolov10.git
synced 2025-05-23 21:44:22 +08:00
Add YOLOv8-OBB https://youtu.be/Z7Z9pHF8wJc (#7780)
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: Muhammad Rizwan Munawar <chr043416@gmail.com>
This commit is contained in:
parent
3c1170769a
commit
a2222b4283
@ -53,16 +53,19 @@ I have read the CLA Document and I sign the CLA
|
|||||||
|
|
||||||
When adding new functions or classes, please include a [Google-style docstring](https://google.github.io/styleguide/pyguide.html) to provide clear and concise documentation for other developers. This will help ensure that your contributions are easy to understand and maintain.
|
When adding new functions or classes, please include a [Google-style docstring](https://google.github.io/styleguide/pyguide.html) to provide clear and concise documentation for other developers. This will help ensure that your contributions are easy to understand and maintain.
|
||||||
|
|
||||||
Example Google-style docstring:
|
!!! Example "Example Docstrings"
|
||||||
|
|
||||||
|
=== "Google-style"
|
||||||
|
|
||||||
|
This example shows both Google-style docstrings. Note that both input and output `types` must always be enclosed by parentheses, i.e. `(bool)`.
|
||||||
```python
|
```python
|
||||||
def example_function(arg1: int, arg2: int) -> bool:
|
def example_function(arg1, arg2=4):
|
||||||
"""
|
"""
|
||||||
Example function that demonstrates Google-style docstrings.
|
Example function that demonstrates Google-style docstrings.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
arg1 (int): The first argument.
|
arg1 (int): The first argument.
|
||||||
arg2 (int): The second argument.
|
arg2 (int): The second argument. Default value is 4.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
(bool): True if successful, False otherwise.
|
(bool): True if successful, False otherwise.
|
||||||
@ -75,6 +78,38 @@ def example_function(arg1: int, arg2: int) -> bool:
|
|||||||
return False
|
return False
|
||||||
```
|
```
|
||||||
|
|
||||||
|
=== "Google-style with type hints"
|
||||||
|
|
||||||
|
This example shows both Google-style docstrings and argument and return type hints, though both are not required, one can be used without the other.
|
||||||
|
```python
|
||||||
|
def example_function(arg1: int, arg2: int = 4) -> bool:
|
||||||
|
"""
|
||||||
|
Example function that demonstrates Google-style docstrings.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
arg1: The first argument.
|
||||||
|
arg2: The second argument. Default value is 4.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
True if successful, False otherwise.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>>> result = example_function(1, 2) # returns False
|
||||||
|
"""
|
||||||
|
if arg1 == arg2:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Single-line"
|
||||||
|
|
||||||
|
Smaller or simpler functions can utilize a single-line docstring. Note the docstring must use 3 double-quotes, and be a complete sentence starting with a capital letter and ending with a period.
|
||||||
|
```python
|
||||||
|
def example_small_function(arg1: int, arg2: int = 4) -> bool:
|
||||||
|
"""Example function that demonstrates a single-line docstring."""
|
||||||
|
return arg1 == arg2
|
||||||
|
```
|
||||||
|
|
||||||
### GitHub Actions CI Tests
|
### GitHub Actions CI Tests
|
||||||
|
|
||||||
Before your pull request can be merged, all GitHub Actions [Continuous Integration](CI.md) (CI) tests must pass. These tests include linting, unit tests, and other checks to ensure that your changes meet the quality standards of the project. Make sure to review the output of the GitHub Actions and fix any issues
|
Before your pull request can be merged, all GitHub Actions [Continuous Integration](CI.md) (CI) tests must pass. These tests include linting, unit tests, and other checks to ensure that your changes meet the quality standards of the project. Make sure to review the output of the GitHub Actions and fix any issues
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
comments: true
|
comments: true
|
||||||
description: Access object detection capabilities of YOLOv8 via our RESTful API. Learn how to use the YOLO Inference API with Python or CLI for swift object detection.
|
description: Access object detection capabilities of YOLOv8 via our RESTful API. Learn how to use the YOLO Inference API with Python or cURL for swift object detection.
|
||||||
keywords: Ultralytics, YOLOv8, Inference API, object detection, RESTful API, Python, CLI, Quickstart
|
keywords: Ultralytics, YOLOv8, Inference API, object detection, RESTful API, Python, cURL, Quickstart
|
||||||
---
|
---
|
||||||
|
|
||||||
# YOLO Inference API
|
# YOLO Inference API
|
||||||
@ -44,9 +44,9 @@ print(response.json())
|
|||||||
|
|
||||||
In this example, replace `API_KEY` with your actual API key, `MODEL_ID` with the desired model ID, and `path/to/image.jpg` with the path to the image you want to analyze.
|
In this example, replace `API_KEY` with your actual API key, `MODEL_ID` with the desired model ID, and `path/to/image.jpg` with the path to the image you want to analyze.
|
||||||
|
|
||||||
## Example Usage with CLI
|
## Example Usage with cURL
|
||||||
|
|
||||||
You can use the YOLO Inference API with the command-line interface (CLI) by utilizing the `curl` command. Replace `API_KEY` with your actual API key, `MODEL_ID` with the desired model ID, and `image.jpg` with the path to the image you want to analyze:
|
You can use the YOLO Inference API with client URL (cURL) by utilizing the `curl` command. Replace `API_KEY` with your actual API key, `MODEL_ID` with the desired model ID, and `image.jpg` with the path to the image you want to analyze:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
||||||
@ -103,11 +103,11 @@ The JSON list contains information about the detected objects, their coordinates
|
|||||||
|
|
||||||
### Detect Model Format
|
### Detect Model Format
|
||||||
|
|
||||||
YOLO detection models, such as `yolov8n.pt`, can return JSON responses from local inference, CLI inference, and Python inference. All of these methods produce the same JSON response format.
|
YOLO detection models, such as `yolov8n.pt`, can return JSON responses from local inference, cURL inference, and Python inference. All of these methods produce the same JSON response format.
|
||||||
|
|
||||||
!!! Example "Detect Model JSON Response"
|
!!! Example "Detect Model JSON Response"
|
||||||
|
|
||||||
=== "Local"
|
=== "`ultralytics`"
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
@ -122,7 +122,7 @@ YOLO detection models, such as `yolov8n.pt`, can return JSON responses from loca
|
|||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "CLI"
|
=== "cURL"
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
||||||
@ -201,11 +201,11 @@ YOLO detection models, such as `yolov8n.pt`, can return JSON responses from loca
|
|||||||
|
|
||||||
### Segment Model Format
|
### Segment Model Format
|
||||||
|
|
||||||
YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses from local inference, CLI inference, and Python inference. All of these methods produce the same JSON response format.
|
YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses from local inference, cURL inference, and Python inference. All of these methods produce the same JSON response format.
|
||||||
|
|
||||||
!!! Example "Segment Model JSON Response"
|
!!! Example "Segment Model JSON Response"
|
||||||
|
|
||||||
=== "Local"
|
=== "`ultralytics`"
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
@ -220,7 +220,7 @@ YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses fr
|
|||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "CLI"
|
=== "cURL"
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
||||||
@ -342,11 +342,11 @@ YOLO segmentation models, such as `yolov8n-seg.pt`, can return JSON responses fr
|
|||||||
|
|
||||||
### Pose Model Format
|
### Pose Model Format
|
||||||
|
|
||||||
YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from local inference, CLI inference, and Python inference. All of these methods produce the same JSON response format.
|
YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from local inference, cURL inference, and Python inference. All of these methods produce the same JSON response format.
|
||||||
|
|
||||||
!!! Example "Pose Model JSON Response"
|
!!! Example "Pose Model JSON Response"
|
||||||
|
|
||||||
=== "Local"
|
=== "`ultralytics`"
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from ultralytics import YOLO
|
from ultralytics import YOLO
|
||||||
@ -361,7 +361,7 @@ YOLO pose models, such as `yolov8n-pose.pt`, can return JSON responses from loca
|
|||||||
print(results[0].tojson())
|
print(results[0].tojson())
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "CLI"
|
=== "cURL"
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
|
||||||
|
@ -18,6 +18,19 @@ The output of an oriented object detector is a set of rotated bounding boxes tha
|
|||||||
|
|
||||||
YOLOv8 OBB models use the `-obb` suffix, i.e. `yolov8n-obb.pt` and are pretrained on [DOTAv1](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/DOTAv1.yaml).
|
YOLOv8 OBB models use the `-obb` suffix, i.e. `yolov8n-obb.pt` and are pretrained on [DOTAv1](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/DOTAv1.yaml).
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<br>
|
||||||
|
<iframe width="720" height="405" src="https://www.youtube.com/embed/Z7Z9pHF8wJc"
|
||||||
|
title="YouTube video player" frameborder="0"
|
||||||
|
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||||
|
allowfullscreen>
|
||||||
|
</iframe>
|
||||||
|
<br>
|
||||||
|
<strong>Watch:</strong> Object Detection using Ultralytics YOLOv8 Oriented Bounding Boxes (YOLOv8-OBB)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Visual Samples
|
||||||
|
|
||||||
| Ships Detection using OBB | Vehicle Detection using OBB |
|
| Ships Detection using OBB | Vehicle Detection using OBB |
|
||||||
|:-------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------------:|
|
|:-------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------------:|
|
||||||
|  |  |
|
|  |  |
|
||||||
|
@ -533,7 +533,7 @@ plugins:
|
|||||||
add_desc: False
|
add_desc: False
|
||||||
add_image: True
|
add_image: True
|
||||||
add_share_buttons: True
|
add_share_buttons: True
|
||||||
default_image: https://github.com/ultralytics/ultralytics/assets/26833433/6d09221c-c52a-4234-9a5d-b862e93c6529
|
default_image: https://github.com/ultralytics/assets/blob/main/yolov8/banner-yolov8.png
|
||||||
- mkdocs-jupyter
|
- mkdocs-jupyter
|
||||||
- redirects:
|
- redirects:
|
||||||
redirect_maps:
|
redirect_maps:
|
||||||
|
@ -93,7 +93,7 @@ dev = [
|
|||||||
"mkdocstrings[python]",
|
"mkdocstrings[python]",
|
||||||
"mkdocs-jupyter", # for notebooks
|
"mkdocs-jupyter", # for notebooks
|
||||||
"mkdocs-redirects", # for 301 redirects
|
"mkdocs-redirects", # for 301 redirects
|
||||||
"mkdocs-ultralytics-plugin>=0.0.38", # for meta descriptions and images, dates and authors
|
"mkdocs-ultralytics-plugin>=0.0.40", # for meta descriptions and images, dates and authors
|
||||||
]
|
]
|
||||||
export = [
|
export = [
|
||||||
"onnx>=1.12.0", # ONNX export
|
"onnx>=1.12.0", # ONNX export
|
||||||
|
Loading…
x
Reference in New Issue
Block a user