`ultralytics 8.0.212` add Windows UTF-8 support (#6407)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Abirami Vina <abirami.vina@gmail.com>
pull/6431/head v8.0.212
Glenn Jocher 1 year ago committed by GitHub
parent 14c05f0dd1
commit b6baae584c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      README.md
  2. 14
      README.zh-CN.md
  3. 2
      docs/en/guides/model-deployment-options.md
  4. 2
      docs/en/guides/yolo-performance-metrics.md
  5. 2
      docs/en/integrations/comet.md
  6. 10
      docs/en/models/rtdetr.md
  7. 10
      docs/en/models/sam.md
  8. 10
      docs/en/models/yolo-nas.md
  9. 10
      docs/en/models/yolov5.md
  10. 10
      docs/en/models/yolov6.md
  11. 10
      docs/en/models/yolov8.md
  12. 20
      docs/en/quickstart.md
  13. 5
      docs/en/reference/nn/tasks.md
  14. 4
      docs/en/reference/utils/__init__.md
  15. 5
      docs/en/reference/utils/triton.md
  16. 15
      docs/update_translations.py
  17. 6
      docs/zh/quickstart.md
  18. 2
      ultralytics/__init__.py
  19. 59
      ultralytics/utils/__init__.py

@ -44,7 +44,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
</div>
</div>
## Documentation
## <div align="center">Documentation</div>
See below for a quickstart installation and usage example, and see the [YOLOv8 Docs](https://docs.ultralytics.com) for full documentation on training, validation, prediction and deployment.
@ -98,7 +98,7 @@ See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python) for more exa
</details>
## Models
## <div align="center">Models</div>
YOLOv8 [Detect](https://docs.ultralytics.com/tasks/detect), [Segment](https://docs.ultralytics.com/tasks/segment) and [Pose](https://docs.ultralytics.com/tasks/pose) models pretrained on the [COCO](https://docs.ultralytics.com/datasets/detect/coco) dataset are available here, as well as YOLOv8 [Classify](https://docs.ultralytics.com/tasks/classify) models pretrained on the [ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet) dataset. [Track](https://docs.ultralytics.com/modes/track) mode is available for all Detect, Segment and Pose models.
@ -203,7 +203,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classify/) for usag
</details>
## Integrations
## <div align="center">Integrations</div>
Our key integrations with leading AI platforms extend the functionality of Ultralytics' offerings, enhancing tasks like dataset labeling, training, visualization, and model management. Discover how Ultralytics, in collaboration with [Roboflow](https://roboflow.com/?ref=ultralytics), ClearML, [Comet](https://bit.ly/yolov8-readme-comet), Neural Magic and [OpenVINO](https://docs.ultralytics.com/integrations/openvino), can optimize your AI workflow.
@ -231,14 +231,14 @@ Our key integrations with leading AI platforms extend the functionality of Ultra
| :--------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: |
| Label and export your custom datasets directly to YOLOv8 for training with [Roboflow](https://roboflow.com/?ref=ultralytics) | Automatically track, visualize and even remotely train YOLOv8 using [ClearML](https://cutt.ly/yolov5-readme-clearml) (open-source!) | Free forever, [Comet](https://bit.ly/yolov8-readme-comet) lets you save YOLOv8 models, resume training, and interactively visualize and debug predictions | Run YOLOv8 inference up to 6x faster with [Neural Magic DeepSparse](https://bit.ly/yolov5-neuralmagic) |
## Ultralytics HUB
## <div align="center">Ultralytics HUB</div>
Experience seamless AI with [Ultralytics HUB](https://bit.ly/ultralytics_hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 model training and deployment, without any coding. Transform images into actionable insights and bring your AI visions to life with ease using our cutting-edge platform and user-friendly [Ultralytics App](https://ultralytics.com/app_install). Start your journey for **Free** now!
<a href="https://bit.ly/ultralytics_hub" target="_blank">
<img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/ultralytics-hub.png" alt="Ultralytics HUB preview image"></a>
## Contribute
## <div align="center">Contribute</div>
We love your input! YOLOv5 and YOLOv8 would not be possible without help from our community. Please see our [Contributing Guide](https://docs.ultralytics.com/help/contributing) to get started, and fill out our [Survey](https://ultralytics.com/survey?utm_source=github&utm_medium=social&utm_campaign=Survey) to send us feedback on your experience. Thank you 🙏 to all our contributors!
@ -247,14 +247,14 @@ We love your input! YOLOv5 and YOLOv8 would not be possible without help from ou
<a href="https://github.com/ultralytics/yolov5/graphs/contributors">
<img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/image-contributors.png"></a>
## License
## <div align="center">License</div>
Ultralytics offers two licensing options to accommodate diverse use cases:
- **AGPL-3.0 License**: This [OSI-approved](https://opensource.org/licenses/) open-source license is ideal for students and enthusiasts, promoting open collaboration and knowledge sharing. See the [LICENSE](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) file for more details.
- **Enterprise License**: Designed for commercial use, this license permits seamless integration of Ultralytics software and AI models into commercial goods and services, bypassing the open-source requirements of AGPL-3.0. If your scenario involves embedding our solutions into a commercial offering, reach out through [Ultralytics Licensing](https://ultralytics.com/license).
## Contact
## <div align="center">Contact</div>
For Ultralytics bug reports and feature requests please visit [GitHub Issues](https://github.com/ultralytics/ultralytics/issues), and join our [Discord](https://ultralytics.com/discord) community for questions and discussions!

@ -44,7 +44,7 @@
</div>
</div>
## 文档
## <div align="center">文档</div>
请参阅下面的快速安装和使用示例,以及 [YOLOv8 文档](https://docs.ultralytics.com) 上有关训练、验证、预测和部署的完整文档。
@ -98,7 +98,7 @@ success = model.export(format="onnx") # 将模型导出为 ONNX 格式
</details>
## 模型
## <div align="center">模型</div>
在[COCO](https://docs.ultralytics.com/datasets/detect/coco)数据集上预训练的YOLOv8 [检测](https://docs.ultralytics.com/tasks/detect),[分割](https://docs.ultralytics.com/tasks/segment)和[姿态](https://docs.ultralytics.com/tasks/pose)模型可以在这里找到,以及在[ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet)数据集上预训练的YOLOv8 [分类](https://docs.ultralytics.com/tasks/classify)模型。所有的检测,分割和姿态模型都支持[追踪](https://docs.ultralytics.com/modes/track)模式。
@ -202,7 +202,7 @@ success = model.export(format="onnx") # 将模型导出为 ONNX 格式
</details>
## 集成
## <div align="center">集成</div>
我们与领先的AI平台的关键整合扩展了Ultralytics产品的功能,增强了数据集标签化、训练、可视化和模型管理等任务。探索Ultralytics如何与[Roboflow](https://roboflow.com/?ref=ultralytics)、ClearML、[Comet](https://bit.ly/yolov8-readme-comet)、Neural Magic以及[OpenVINO](https://docs.ultralytics.com/integrations/openvino)合作,优化您的AI工作流程。
@ -230,14 +230,14 @@ success = model.export(format="onnx") # 将模型导出为 ONNX 格式
| :--------------------------------------------------------------------------------: | :----------------------------------------------------------------------------: | :----------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------: |
| 使用 [Roboflow](https://roboflow.com/?ref=ultralytics) 将您的自定义数据集直接标记并导出至 YOLOv8 进行训练 | 使用 [ClearML](https://cutt.ly/yolov5-readme-clearml)(开源!)自动跟踪、可视化,甚至远程训练 YOLOv8 | 免费且永久,[Comet](https://bit.ly/yolov8-readme-comet) 让您保存 YOLOv8 模型、恢复训练,并以交互式方式查看和调试预测 | 使用 [Neural Magic DeepSparse](https://bit.ly/yolov5-neuralmagic) 使 YOLOv8 推理速度提高多达 6 倍 |
## Ultralytics HUB
## <div align="center">Ultralytics HUB</div>
体验 [Ultralytics HUB](https://bit.ly/ultralytics_hub) ⭐ 带来的无缝 AI,这是一个一体化解决方案,用于数据可视化、YOLOv5 和即将推出的 YOLOv8 🚀 模型训练和部署,无需任何编码。通过我们先进的平台和用户友好的 [Ultralytics 应用程序](https://ultralytics.com/app_install),轻松将图像转化为可操作的见解,并实现您的 AI 愿景。现在就开始您的**免费**之旅!
<a href="https://bit.ly/ultralytics_hub" target="_blank">
<img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/ultralytics-hub.png" alt="Ultralytics HUB preview image"></a>
## 贡献
## <div align="center">贡献</div>
我们喜欢您的参与!没有社区的帮助,YOLOv5 和 YOLOv8 将无法实现。请参阅我们的[贡献指南](https://docs.ultralytics.com/help/contributing)以开始使用,并填写我们的[调查问卷](https://ultralytics.com/survey?utm_source=github&utm_medium=social&utm_campaign=Survey)向我们提供您的使用体验反馈。感谢所有贡献者的支持!🙏
@ -246,14 +246,14 @@ success = model.export(format="onnx") # 将模型导出为 ONNX 格式
<a href="https://github.com/ultralytics/yolov5/graphs/contributors">
<img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/image-contributors.png"></a>
## 许可证
## <div align="center">许可证</div>
Ultralytics 提供两种许可证选项以适应各种使用场景:
- **AGPL-3.0 许可证**:这个[OSI 批准](https://opensource.org/licenses/)的开源许可证非常适合学生和爱好者,可以推动开放的协作和知识分享。请查看[LICENSE](https://github.com/ultralytics/ultralytics/blob/main/LICENSE) 文件以了解更多细节。
- **企业许可证**:专为商业用途设计,该许可证允许将 Ultralytics 的软件和 AI 模型无缝集成到商业产品和服务中,从而绕过 AGPL-3.0 的开源要求。如果您的场景涉及将我们的解决方案嵌入到商业产品中,请通过 [Ultralytics Licensing](https://ultralytics.com/license)与我们联系。
## 联系方式
## <div align="center">联系方式</div>
对于 Ultralytics 的错误报告和功能请求,请访问 [GitHub Issues](https://github.com/ultralytics/ultralytics/issues),并加入我们的 [Discord](https://ultralytics.com/discord) 社区进行问题和讨论!

@ -1,6 +1,6 @@
---
comments: true
Description: A guide to help determine which deployment option to choose for your YOLOv8 model, including essential considerations.
description: A guide to help determine which deployment option to choose for your YOLOv8 model, including essential considerations.
keywords: YOLOv8, Deployment, PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, CoreML, TensorFlow, Export
---

@ -1,6 +1,6 @@
---
comments: true
Description: A comprehensive guide on various performance metrics related to YOLOv8, their significance, and how to interpret them.
description: A comprehensive guide on various performance metrics related to YOLOv8, their significance, and how to interpret them.
keywords: YOLOv8, Performance metrics, Object detection, Intersection over Union (IoU), Average Precision (AP), Mean Average Precision (mAP), Precision, Recall, Validation mode, Ultralytics
---

@ -133,7 +133,7 @@ You can control the number of image predictions that Comet ML logs during your e
```python
import os
os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"
```
```
### Batch Logging Interval

@ -71,11 +71,11 @@ You can use RT-DETR for object detection tasks using the `ultralytics` pip packa
### Supported Modes
| Mode | Supported |
|------------|--------------------|
| Inference | :heavy_check_mark: |
| Validation | :heavy_check_mark: |
| Training | :heavy_check_mark: |
| Mode | Supported |
|------------|-----------|
| Inference | |
| Validation | |
| Training | |
## Citations and Acknowledgements

@ -131,11 +131,11 @@ The Segment Anything Model can be employed for a multitude of downstream tasks t
## Operating Modes
| Mode | Supported |
|------------|--------------------|
| Inference | :heavy_check_mark: |
| Validation | :x: |
| Training | :x: |
| Mode | Supported |
|------------|-----------|
| Inference | |
| Validation | |
| Training | |
## SAM comparison vs YOLOv8

@ -94,11 +94,11 @@ The YOLO-NAS models are primarily designed for object detection tasks. You can d
The YOLO-NAS models support both inference and validation modes, allowing you to predict and validate results with ease. Training mode, however, is currently not supported.
| Mode | Supported |
|------------|--------------------|
| Inference | :heavy_check_mark: |
| Validation | :heavy_check_mark: |
| Training | :x: |
| Mode | Supported |
|------------|-----------|
| Inference | |
| Validation | |
| Training | |
Harness the power of the YOLO-NAS models to drive your object detection tasks to new heights of performance and speed.

@ -28,11 +28,11 @@ YOLOv5u represents an advancement in object detection methodologies. Originating
## Supported Modes
| Mode | Supported |
|------------|--------------------|
| Inference | :heavy_check_mark: |
| Validation | :heavy_check_mark: |
| Training | :heavy_check_mark: |
| Mode | Supported |
|------------|-----------|
| Inference | |
| Validation | |
| Training | |
!!! Performance

@ -85,11 +85,11 @@ You can use YOLOv6 for object detection tasks using the Ultralytics pip package.
## Supported Modes
| Mode | Supported |
|------------|--------------------|
| Inference | :heavy_check_mark: |
| Validation | :heavy_check_mark: |
| Training | :heavy_check_mark: |
| Mode | Supported |
|------------|-----------|
| Inference | |
| Validation | |
| Training | |
## Citations and Acknowledgements

@ -30,11 +30,11 @@ YOLOv8 is the latest iteration in the YOLO series of real-time object detectors,
## Supported Modes
| Mode | Supported |
|------------|--------------------|
| Inference | :heavy_check_mark: |
| Validation | :heavy_check_mark: |
| Training | :heavy_check_mark: |
| Mode | Supported |
|------------|-----------|
| Inference | |
| Validation | |
| Training | |
!!! Performance

@ -148,12 +148,13 @@ The Ultralytics command line interface (CLI) allows for simple single-line comma
Ultralytics `yolo` commands use the following syntax:
```bash
yolo TASK MODE ARGS
Where TASK (optional) is one of [detect, segment, classify]
MODE (required) is one of [train, val, predict, export, track]
ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.
```
See all ARGS in the full [Configuration Guide](usage/cfg.md) or with `yolo cfg`
- `TASK` (optional) is one of ([detect](tasks/detect.md), [segment](tasks/segment.md), [classify](tasks/classify.md), [pose](tasks/pose.md))
- `MODE` (required) is one of ([train](modes/train.md), [val](modes/val.md), [predict](modes/predict.md), [export](modes/export.md), [track](modes/track.md))
- `ARGS` (optional) are `arg=value` pairs like `imgsz=640` that override defaults.
See all `ARGS` in the full [Configuration Guide](usage/cfg.md) or with the `yolo cfg` CLI command.
=== "Train"
@ -197,11 +198,12 @@ The Ultralytics command line interface (CLI) allows for simple single-line comma
!!! warning "Warning"
Arguments must be passed as `arg=val` pairs, split by an equals `=` sign and delimited by spaces ` ` between pairs. Do not use `--` argument prefixes or commas `,` between arguments.
Arguments must be passed as `arg=val` pairs, split by an equals `=` sign and delimited by spaces between pairs. Do not use `--` argument prefixes or commas `,` between arguments.
- `yolo predict model=yolov8n.pt imgsz=640 conf=0.25` &nbsp;
- `yolo predict model yolov8n.pt imgsz 640 conf 0.25` &nbsp;
- `yolo predict --model yolov8n.pt --imgsz 640 --conf 0.25` &nbsp;
- `yolo predict model=yolov8n.pt imgsz=640 conf=0.25`
- `yolo predict model yolov8n.pt imgsz 640 conf 0.25` ❌ (missing `=`)
- `yolo predict model=yolov8n.pt, imgsz=640, conf=0.25` ❌ (do not use `,`)
- `yolo predict --model yolov8n.pt --imgsz 640 --conf 0.25` ❌ (do not use `--`)
[CLI Guide](usage/cli.md){ .md-button .md-button--primary}

@ -1,3 +1,8 @@
---
description: Dive into the intricacies of YOLO tasks.py. Learn about DetectionModel, PoseModel and more for powerful AI development.
keywords: Ultralytics, YOLO, nn tasks, DetectionModel, PoseModel, RTDETRDetectionModel, model weights, parse model, AI development
---
# Reference for `ultralytics/nn/tasks.py`
!!! note

@ -21,10 +21,6 @@ keywords: Ultralytics, Utils, utilitarian functions, colorstr, yaml_save, set_lo
## ::: ultralytics.utils.IterableSimpleNamespace
<br><br>
---
## ::: ultralytics.utils.EmojiFilter
<br><br>
---
## ::: ultralytics.utils.ThreadingLocked
<br><br>

@ -1,3 +1,8 @@
---
description: Deploy ML models effortlessly with Ultralytics TritonRemoteModel. Simplify serving with our comprehensive utils guide.
keywords: Ultralytics, YOLO, TritonRemoteModel, machine learning, model serving, deployment, utils, documentation
---
# Reference for `ultralytics/utils/triton.py`
!!! note

@ -23,10 +23,9 @@ class MarkdownLinkFixer:
self.update_links = update_links
self.update_frontmatter = update_frontmatter
self.update_iframes = update_iframes
self.md_link_regex = re.compile(r'\[([^\]]+)\]\(([^:\)]+)\.md\)')
self.front_matter_regex = re.compile(r'^(comments|description|keywords):.*$', re.MULTILINE)
self.md_link_regex = re.compile(r'\[([^]]+)]\(([^:)]+)\.md\)')
self.translations = {
'zh': ['评论', '描述', '关键词'], # Mandarin Chinese (Simplified)
'zh': ['评论', '描述', '关键词'], # Mandarin Chinese (Simplified) warning, sometimes translates as 关键字
'es': ['comentarios', 'descripción', 'palabras clave'], # Spanish
'ru': ['комментарии', 'описание', 'ключевые слова'], # Russian
'pt': ['comentários', 'descrição', 'palavras-chave'], # Portuguese
@ -44,15 +43,17 @@ class MarkdownLinkFixer:
for term, eng_key in zip(terms, english_keys):
if eng_key == 'comments':
# Replace comments key and set its value to 'true'
content = re.sub(rf'{term} *:.*', f'{eng_key}: true', content)
content = re.sub(rf'{term} *[::].*', f'{eng_key}: true', content)
else:
content = re.sub(rf'{term} *:', f'{eng_key}:', content)
content = re.sub(rf'{term} *[::] *', f'{eng_key}: ', content)
return content
def update_iframe(self, content):
@staticmethod
def update_iframe(content):
"""Update the 'allow' attribute of iframe if it does not contain the specific English permissions."""
english_permissions = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'
english_permissions = \
'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'
pattern = re.compile(f'allow="(?!{re.escape(english_permissions)}).+?"')
return pattern.sub(f'allow="{english_permissions}"', content)

@ -1,7 +1,7 @@
---
评论:真
描述:探索使用pip、conda、git和Docker安装Ultralytics的各种方法。了解如何在命令行界面或Python项目中使用Ultralytics。
关键字:Ultralytics安装,pip安装Ultralytics,Docker安装Ultralytics,Ultralytics命令行界面,Ultralytics Python接口
comments: true
description: 探索使用pip、conda、git和Docker安装Ultralytics的各种方法。了解如何在命令行界面或Python项目中使用Ultralytics。
keywords: Ultralytics安装,pip安装Ultralytics,Docker安装Ultralytics,Ultralytics命令行界面,Ultralytics Python接口
---
## 安装Ultralytics

@ -1,6 +1,6 @@
# Ultralytics YOLO 🚀, AGPL-3.0 license
__version__ = '8.0.211'
__version__ = '8.0.212'
from ultralytics.models import RTDETR, SAM, YOLO
from ultralytics.models.fastsam import FastSAM

@ -225,55 +225,36 @@ def plt_settings(rcparams=None, backend='Agg'):
def set_logging(name=LOGGING_NAME, verbose=True):
"""Sets up logging for the given name."""
rank = int(os.getenv('RANK', -1)) # rank in world for Multi-GPU trainings
level = logging.INFO if verbose and rank in {-1, 0} else logging.ERROR
logging.config.dictConfig({
'version': 1,
'disable_existing_loggers': False,
'formatters': {
name: {
'format': '%(message)s'}},
'handlers': {
name: {
'class': 'logging.StreamHandler',
'formatter': name,
'level': level}},
'loggers': {
name: {
'level': level,
'handlers': [name],
'propagate': False}}})
"""Sets up logging for the given name with UTF-8 encoding support."""
level = logging.INFO if verbose and RANK in {-1, 0} else logging.ERROR # rank in world for Multi-GPU trainings
# Configure the console (stdout) encoding to UTF-8
if WINDOWS: # for Windows
sys.stdout.reconfigure(encoding='utf-8')
def emojis(string=''):
"""Return platform-dependent emoji-safe version of string."""
return string.encode().decode('ascii', 'ignore') if WINDOWS else string
# Create and configure the StreamHandler
stream_handler = logging.StreamHandler(sys.stdout)
stream_handler.setFormatter(logging.Formatter('%(message)s'))
stream_handler.setLevel(level)
class EmojiFilter(logging.Filter):
"""
A custom logging filter class for removing emojis in log messages.
This filter is particularly useful for ensuring compatibility with Windows terminals that may not support the
display of emojis in log messages.
"""
def filter(self, record):
"""Filter logs by emoji unicode characters on windows."""
record.msg = emojis(record.msg)
return super().filter(record)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(stream_handler)
logger.propagate = False
return logger
# Set logger
set_logging(LOGGING_NAME, verbose=VERBOSE) # run before defining LOGGER
LOGGER = logging.getLogger(LOGGING_NAME) # define globally (used in train.py, val.py, detect.py, etc.)
if WINDOWS: # emoji-safe logging
LOGGER.addFilter(EmojiFilter())
LOGGER = set_logging(LOGGING_NAME, verbose=VERBOSE) # define globally (used in train.py, val.py, predict.py, etc.)
for logger in 'sentry_sdk', 'urllib3.connectionpool':
logging.getLogger(logger).setLevel(logging.CRITICAL)
def emojis(string=''):
"""Return platform-dependent emoji-safe version of string."""
return string.encode().decode('ascii', 'ignore') if WINDOWS else string
class ThreadingLocked:
"""
A decorator class for ensuring thread-safe execution of a function or method. This class can be used as a decorator

Loading…
Cancel
Save