Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix TFLite INT8 for OBB #7989

Merged
merged 5 commits into from Feb 6, 2024
Merged

Conversation

adamp87
Copy link
Contributor

@adamp87 adamp87 commented Feb 2, 2024

This PR fixes the bug when exporting OBB model for TFLite with INT8 quantization. During normalization dist2bbox is used instead of dist2rbox.

NOTE: tests have been executed using the validation set. The test set is missing the labels. TFLite quantization was set to per-channel.

Model mAP50 mAP50:95 Note
Before yolov8n-obb.pt 0.468 0.283
Before yolov8n-obb.TFLite INT8 0.375 0.245
Before yolov8n-obb.TFLite Full INT 0.305 0.175
After yolov8n-obb.pt 0.468 0.283
After yolov8n-obb.TFLite INT8 0.496 0.355 How?
After yolov8n-obb.TFLite Full INT 0.394 0.244

Reproduce tests:

yolo export model=yolov8n-obb.pt data=coco128.yaml imgsz=640 format=tflite int8
yolo val obb model=yolov8n-obb.pt data=DOTAv1.yaml device=0 imgsz=640 batch=4 split=val
yolo val obb model=yolov8n-obb_saved_model/yolov8n-obb_int8.tflite data=DOTAv1.yaml device=0 imgsz=640 int8 split=val
yolo val obb model=yolov8n-obb_saved_model/yolov8n-obb_full_integer_quant.tflite data=DOTAv1.yaml device=0 imgsz=640 int8 split=val

It is surprising to observe that the TFLite INT8, where only weights are INT8 and inference is in FP32, is performing better than the original PyTorch model. This should be further tested, but I am not familiar with the OBB neither with DOTA dataset. Theoretically the only difference is that the bbox coordinates are normalized. Could it have an influence on the bbox rotations?

πŸ› οΈ PR Summary

Made with ❀️ by Ultralytics Actions

🌟 Summary

Refactor of bounding box decoding in neural network heads to improve flexibility.

πŸ“Š Key Changes

  • decode_bboxes method now takes anchors as an argument instead of using self.anchors.
  • Bounding box decoding operation has been updated within the forward method of the network to better handle different conditions, such as when exporting models to TensorFlow Lite or Edge TPU.
  • Calls to dist2bbox and dist2rbox now directly pass calculated bounding boxes and anchors.

🎯 Purpose & Impact

  • πŸ’‘ Purpose: The changes aim to improve the stability and flexibility of bounding box decoding across different network heads and export formats.
  • πŸ” Impact: Developers will have an easier time adapting and maintaining the bounding box decoding logic for different use cases, potentially resulting in better model compatibility and performance when exporting to various platforms.
  • πŸš€ To users: These updates might lead to more accurate object detections and support for broader deployment scenarios, especially for edge computing devices.

πŸ› οΈ PR Summary

Made with ❀️ by Ultralytics Actions

🌟 Summary

Optimized bounding box decoding for model export compatibility.

πŸ“Š Key Changes

  • Modified decoding of bounding boxes in the forward function based on export conditions.
  • Added anchors as an argument to both decode_bboxes and decode_bboxes methods to clarify input requirements.
  • Applied stride normalization directly within the decode_bboxes method when not exporting.
  • Renamed variables (img_h -> grid_h, img_w -> grid_w, img_size -> grid_size) for clarity in the context of grid dimensions.

🎯 Purpose & Impact

  • The update aims to improve numerical stability for exported models, particularly those targeting platforms like TFLite and Edge TPU. πŸ€–
  • Enhances code readability and maintainability through clearer naming conventions and streamlined decoding logic. πŸ“–
  • Users targeting different deployment environments can expect more reliable model performance and easier integration with hardware accelerators. πŸš€

Copy link

sentry-io bot commented Feb 2, 2024

πŸ” Existing Issues For Review

Your pull request is modifying functions with the following pre-existing issues:

πŸ“„ File: ultralytics/nn/modules/head.py

Function Unhandled Issue
forward RuntimeError: The size of tensor a (6400) must match the size of tensor b (8400) at non-singleton dimension 2 ...
Event Count: 1

Did you find this useful? React with a πŸ‘ or πŸ‘Ž

@adamp87
Copy link
Contributor Author

adamp87 commented Feb 2, 2024

_I have read the CLA Document and I hereby sign the CLA_

Copy link

codecov bot commented Feb 2, 2024

Codecov Report

All modified and coverable lines are covered by tests βœ…

Comparison is base (9d35ecb) 78.78% compared to head (88b4ce1) 76.67%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7989      +/-   ##
==========================================
- Coverage   78.78%   76.67%   -2.12%     
==========================================
  Files         117      117              
  Lines       14455    14455              
==========================================
- Hits        11389    11083     -306     
- Misses       3066     3372     +306     
Flag Coverage Ξ”
Benchmarks 36.42% <100.00%> (ΓΈ)
GPU 39.33% <40.00%> (ΓΈ)
Tests 71.69% <50.00%> (-2.66%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

β˜” View full report in Codecov by Sentry.
πŸ“’ Have feedback on the report? Share it here.

@glenn-jocher
Copy link
Member

@adamp87 thank you for signing the CLA! Your contribution is greatly appreciated. 🌟 If you have any further questions or need assistance, feel free to reach out.

@glenn-jocher
Copy link
Member

@adamp87 based on the table it seems like something may be wrong in the PR, as it should not be possible to increase mAP beyond the base PyTorch model.

@Laughing-q what do you think?

@Laughing-q
Copy link
Member

Laughing-q commented Feb 4, 2024

@adamp87 Thanks for the fix!
@glenn-jocher @adamp87 The map from torch model is lower because we default use rectangle inference when doing validation with torch model, but for exported model it's square inference. The map looks fine when I manually set rect=False.

yolo val obb model=yolov8n-obb.pt data=DOTAv1.yaml device=0 imgsz=640 batch=4 split=val
                   all        458      28853      0.698       0.43      0.468      0.283
                 plane        458       2531      0.804      0.629      0.668      0.414
                  ship        458       8960      0.735      0.478      0.555      0.286
          storage tank        458       2888      0.847      0.231      0.347      0.182
      baseball diamond        458        214      0.776      0.435      0.525       0.34
          tennis court        458        760       0.91      0.883      0.912      0.704
      basketball court        458        132      0.637      0.348      0.411       0.29
    ground track field        458        144      0.585      0.361      0.391      0.272
                harbor        458       2090      0.565      0.537      0.503       0.22
                bridge        458        464      0.606      0.127      0.149     0.0507
         large vehicle        458       4387       0.76      0.767      0.784      0.471
         small vehicle        458       5438       0.66      0.496      0.545       0.33
            helicopter        458         73      0.767      0.288      0.334      0.181
            roundabout        458        179      0.617      0.128       0.16     0.0962
     soccer ball field        458        153      0.553      0.392       0.37      0.229
         swimming pool        458        440      0.646      0.344      0.363      0.175
yolo val obb model=yolov8n-obb.pt data=DOTAv1.yaml device=0 imgsz=640 batch=4 split=val rect=False
                   all        458      28853      0.729      0.447      0.496      0.356
                 plane        458       2531      0.853      0.672      0.724      0.537
                  ship        458       8960      0.766      0.494      0.574      0.351
          storage tank        458       2888      0.863      0.234      0.365      0.228
      baseball diamond        458        214      0.764       0.43      0.525      0.393
          tennis court        458        760      0.908      0.882      0.917      0.846
      basketball court        458        132      0.642      0.356       0.42      0.349
    ground track field        458        144      0.583      0.389      0.388      0.327
                harbor        458       2090       0.74      0.704       0.72      0.398
                bridge        458        464      0.658      0.137      0.166      0.058
         large vehicle        458       4387      0.793       0.79      0.819      0.608
         small vehicle        458       5438      0.676       0.49      0.551      0.358
            helicopter        458         73      0.887      0.329      0.404       0.28
            roundabout        458        179      0.644      0.123      0.156      0.112
     soccer ball field        458        153      0.507      0.346      0.365       0.31
         swimming pool        458        440      0.655      0.336      0.353      0.185

And the reason why the map is lower with rect=True I think is because most of the training samples are square images(1024x1024).

@adamp87
Copy link
Contributor Author

adamp87 commented Feb 4, 2024

@Laughing-q thanks for the clarification. It was bugging me also!
@glenn-jocher I pushed one more commit. I changed only variables names during normalization, where the normalization is done with the width and height of the grid not the input image size.

@adamp87
Copy link
Contributor Author

adamp87 commented Feb 4, 2024

@glenn-jocher one more note, OpenVINO INT8 quantization fails on main branch with nncf: list index out of range. I just pulled the repo now. The suggested solution in #7516 (comment) fixes this problem.

yolo export model=yolov8n-obb.pt data=coco128.yaml imgsz=640 format=openvino int8

Model mAP50 mAP50:95 Note
After yolov8n-obb.pt 0.468 0.283
After yolov8n-obb.pt 0.497 0.356 rect=False
After yolov8n-obb.TFLite INT8 0.496 0.355 per-channel
After yolov8n-obb.TFLite Full INT 0.394 0.244 per-channel
After yolov8n-obb.TFLite INT8 0.489 0.349 per-tensor
After yolov8n-obb.TFLite Full INT 0.394 0.244 per-tensor
OpenVINO INT8 N/A N/A Main branch fails
OpenVINO INT8 0.493 0.352 #7516 (comment)

@glenn-jocher
Copy link
Member

@adamp87 thank you for your efforts here! I've merged this into main now. I was reviewing #7516 (comment) but we can't merge this as it's failing OpenVINO Benchmarks CI on main.

Now that I've merged this to main I will re-run the CI there to see if this now passes.

@glenn-jocher glenn-jocher changed the title Fix tflite int8 for obb Fix TFLite INT8 for OBB Feb 6, 2024
@glenn-jocher glenn-jocher merged commit 70a6ef9 into ultralytics:main Feb 6, 2024
8 checks passed
@adamp87
Copy link
Contributor Author

adamp87 commented Feb 6, 2024

@glenn-jocher thanks for the update.
Im confused on the #7516 (comment) comment. Do you mean #7516 (comment) or the PR #7516? They are two different things. I havent merged #7516 (comment) into the PR its just in my own fork dangling.

Maybe lets discuss it further in #7516

@glenn-jocher
Copy link
Member

@adamp87 My apologies for the confusion. I was referring to the PR itself. Let's indeed continue this discussion in the PR thread to clarify and resolve any outstanding issues. Thank you for your contributions!

DannyCooler added a commit to ecs-enerserv/ultralytics that referenced this pull request Mar 28, 2024
* Explorer API video https://youtu.be/3VryynorQeo  (ultralytics#7838)

* Add HUB-SDK Docs reference section (ultralytics#7781)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>

* Link checks SSL insecure robustness (ultralytics#7853)

* Add new @Retry() decorator (ultralytics#7854)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add TensorRT Docs Integrations Page (ultralytics#7855)

* Cleanup Docs languages (ultralytics#7865)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add millimeters in `solutions/distance_caculation.py` + `object-cropping.md` visuals (ultralytics#7860)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.7` `USER_CONFIG_DIR` Explorer ops (ultralytics#7861)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Ultralytics Actions with OpenAI GPT-4 PR Summary (ultralytics#7867)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Bump slackapi/slack-github-action from 1.24.0 to 1.25.0 in /.github/workflows (ultralytics#7871)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add visuals in `guides/distance-calculation.md` (ultralytics#7876)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* TensorRT FP16 export with `dynamic=True` (ultralytics#7870)

* Add https://youtu.be/3VryynorQeo to README and fix `converter.py` Docs (ultralytics#7883)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.1.8` new `model.save('filename.pt')` method (ultralytics#7886)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Compress explorer image in `dataset/index.md` + description added for new `segmentation` datasets (ultralytics#7901)

* Fix OpenVINO links (ultralytics#7930)

* Add `integrations/gradio` Docs page (ultralytics#7935)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: WangQvQ <1579093407@qq.com>
Co-authored-by: Martin Pl <martin-plank@gmx.de>
Co-authored-by: Mactarvish <Mactarvish@users.noreply.github.com>

* Add https://youtu.be/96NkhsV-W1U to docs and `heatmaps` fix (ultralytics#7944)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Segment TensorRT `batch=3` fix (ultralytics#7952)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.9` replace `.size(0)` with `.shape[0]` (ultralytics#7957)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add YouTube iframe `loading="lazy"` (ultralytics#8001)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Mkdocs updates (ultralytics#8008)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Tracker: clean up GMC (ultralytics#8003)

* Bump nick-invision/retry from 2 to 3 in /.github/workflows (ultralytics#8023)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump codecov/codecov-action from 3 to 4 in /.github/workflows (ultralytics#8022)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix TFLite INT8 for OBB (ultralytics#7989)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add CoreML Docs Integrations Page (ultralytics#8063)

* Add Roboflow 100 Dataset Docs Page (ultralytics#8065)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.10` MLFlow, OBB, TFLite and INT8 fixes (ultralytics#8016)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add https://youtu.be/R42s2zFtNIY to `hub/datasets.md` and CoreML image fix (ultralytics#8085)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Roboflow segmentation Docs pages (ultralytics#8094)

* FROM pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime (ultralytics#8104)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.11` expand OpenVINO INT8 ops for improved mAP (ultralytics#7516)

Co-authored-by: AdamP <7806910+adamp87@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/q7LwPoM7tSQ to `guides/yolo-performance-metrics.md` (ultralytics#8114)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Compress docs images (ultralytics#8124)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Updated SQL Query Plot Code (ultralytics#8120)

Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Elaborate Train and Predict mode docs arguments (ultralytics#8137)

Signed-off-by: Skillnoob <78843978+Skillnoob@users.noreply.github.com>
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Skillnoob <78843978+Skillnoob@users.noreply.github.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>

* Move Google Drive to slow tests (ultralytics#8163)

* Improve Coral Edge TPU guide (ultralytics#8160)

Signed-off-by: Skillnoob <78843978+Skillnoob@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Try Apple M1 runners for Tests and Benchmarks CI (ultralytics#8162)

* Retry once for Docker CI failures (ultralytics#8164)

* `ultralytics 8.1.12` new `Results.show()` and `Results.save()` (ultralytics#8166)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix solution functions description + `integrations/openvino.md` cover image update (ultralytics#8170)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Pin `duckdb<=0.9.2` to avoid 0.10.0 errors (ultralytics#8181)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* New HUB Cloud Training docs page (ultralytics#8174)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.13` fix `yolo train time=` bug (ultralytics#8179)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Docs updates and improvements (ultralytics#8183)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Priytosh Tripathi <priytosh.revolution@live.com>

* Fix xyxyxyxyn calculation in obb result (ultralytics#8188)

* `ultralytics 8.1.14` new YOLOv8-World models (ultralytics#8054)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix PIL `show()` and `save()` (ultralytics#8202)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Remove OpenVINO INT8 RTDETRDecoder ops (ultralytics#8219)

* Fix xyxyxyxyn calculation, swap axis (ultralytics#8249)

* Improve Docs Modes tables (ultralytics#8266)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.15` add Python 3.12 compatibility (ultralytics#8210)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Johnny <johnnynuca14@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Expand `Model` method type hinting (ultralytics#8279)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.16` OBB ConfusionMatrix support (ultralytics#8299)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Move Explorer tests to scheduled CI (ultralytics#8305)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Remove JAX constraints in Exporter (ultralytics#8309)

* `Model` typehints Docker fix (ultralytics#8306)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix an issue with flatbuffer version for Raspberry Pi (ultralytics#8311)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Dockerfile for Raspberry Pi Support (ultralytics#8123)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Avoid creating `-hub` dir without processing images (ultralytics#8334)

* Added check of parameter type before setting `required_grad=True` for frozen layers (ultralytics#8318)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add `estimate_speed(region_color)` parameter (ultralytics#8285)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add simple-utilities.md Docs page (ultralytics#8269)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update `mkdocs-ultralytics-plugin>=0.0.44` (ultralytics#8347)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.17` fix `ClassificationDataset` caching (ultralytics#8358)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add missing single-line docstrings (ultralytics#8362)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Johannes Kaisinger <johannes.kaisinger@gmail.com>

* `ultralytics 8.1.18` add cmake for building onnxsim on aarch64 (ultralytics#8395)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Allow Annotator PIL.Image inputs (ultralytics#8397)

* Add Non-Maximum Suppression (NMS) `inplace` flag (ultralytics#8368)

* Compare `plt.get_backend()` in lowercase (ultralytics#8409)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Improve Docs arguments tables (ultralytics#8415)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add plot_images `conf_thresh` parameter (ultralytics#8446)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add YOLOv9 Docs page (ultralytics#8478)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Rename `model_id` to `model.id` (ultralytics#8447)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.19` PNNX `aarch64` linux fix (ultralytics#8480)

Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: Kayzwer <68285002+Kayzwer@users.noreply.github.com>

* Add TorchScript Docs Integrations Page (ultralytics#8501)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Do RTDETR file suffix check using pathlib instead of string manipulations (ultralytics#8525)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Auto-format by https://ultralytics.com/actions

* Add TFLite Docs Integrations Page (ultralytics#8522)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix undefined β€˜im_array’ bug in predict.md (ultralytics#8565)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: fang_chenfang <1217690899@qq.com>

* Add https://youtu.be/ie3vLUDNYZo and other YT videos in Docs (ultralytics#8551)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Hold failed upload metrics and upload with next upload metrics (ultralytics#8513)

Co-authored-by: hassaanfarooq01 <hassaanfarooq01@gmail.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.20` add YOLOv8x-World support (ultralytics#8539)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix device counting method to account for double-digit device IDs (ultralytics#8502)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Remove unused variables (ultralytics#8511)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add NCNN Docs Integrations Page (ultralytics#8562)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Optimize function calls to method calls (ultralytics#8507)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Replacing Images for torchscript.md (ultralytics#8596)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix cmake requirements for ARM64 (ultralytics#8589)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add https://youtu.be/rCggzXRRSRo to Speed Estimation Docs (ultralytics#8577)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add KaTeX support + updates to YOLOv9 model page (ultralytics#8531)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Replace `onnx2tf` usage from CLI to Python (ultralytics#8429)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update IoU capitalization (ultralytics#8604)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Dean Mark <2552482+deanmark@users.noreply.github.com>

* Update TFLite Docs images (ultralytics#8605)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add `distance calculation` feature in `vision-eye` (ultralytics#8616)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Muhammad Rizwan Munawar <chr043416@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.1.21` Add YOLOv8-World-v2 models (ultralytics#8580)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.1.22` HUB model `pathlib` fix (ultralytics#8621)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.23` add YOLOv9-C and E models (ultralytics#8571)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add settings `runs_dir` == `datasets_dir` warning (ultralytics#8653)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add Ultralytics HUB Cloud Training banner to Docs (ultralytics#8656)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update CITATION.cff with cffinit corrections (ultralytics#8658)

* Update Colab notebook for YOLOv8.1 (ultralytics#8660)

* `ultralytics 8.1.24` new OpenVINO 2023.3 export updates (ultralytics#8417)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* OBB: Fix when training on zip data (ultralytics#8680)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Object Counter improvements (ultralytics#8648)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Clarify triton server boolean value (ultralytics#8532)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add `model.eval()` in TensorBoad graph visualization to avoid BN stats changes (ultralytics#8629)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add domain checks to CI docs page (ultralytics#8714)

* `ultralytics 8.1.25` OpenVINO `LATENCY` and `THROUGHPUT` modes (ultralytics#8058)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Adrian Boguszewski <adekboguszewski@gmail.com>

* Add https://youtu.be/OpWpBI35A5Y to inference-api Docs (ultralytics#8717)

* OpenVino 2024.0.0 (ultralytics#8726)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix tfjs exports for ARM64 Dockerfile (ultralytics#8766)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Modify tuner best.pt logic to train first (ultralytics#8792)

* Update CI.md with CI links (ultralytics#8786)

* Add https://youtu.be/ZzUSXQkLbNw to Integration Docs (ultralytics#8793)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.25` fix `**kwargs: (dict)` warnings (ultralytics#8815)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add docs guide terminal images (ultralytics#8819)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `RTDETRDetectionModel` TorchScript, ONNX Predict and Val support (ultralytics#8818)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* New `MLFLOW_KEEP_RUN_ACTIVE` flag for enhanced MLflow run management (ultralytics#8808)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.26` `LoadImagesAndVideos` batched inference (ultralytics#8817)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update `fraction` arg to employ a random selection (ultralytics#8234)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Batch inference fixes (ultralytics#8854)

* Integrate OpenVINO `CUMULATIVE_THROUGHPUT` mode batched inference (ultralytics#8834)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add PaddlePaddle Docs Integrations Page (ultralytics#8858)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.27` batched tracking fixes (ultralytics#8842)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Faster batch `same_shapes` (ultralytics#8851)

* More robust PNNX downloads (ultralytics#8866)

* Fix `test_mlflow_keep_run_active()` (ultralytics#8868)

* Add polygon regions drawing support in `object-counting.md` and minor docs update (ultralytics#8885)

* Add TFLite Edge TPU Docs Integrations Page  (ultralytics#8900)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Docs README (ultralytics#8919)

* Fix `names` bug when exporting YOLOv8-World to ONNX (ultralytics#8941)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* New test for labels and crops (ultralytics#8861)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Optimize TFJS export on ARM64 (ultralytics#8946)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Auto-format by https://ultralytics.com/actions

* `ultralytics 8.1.28` avoid * ops on bool Tensors for RT-DETR OpenVINO export (ultralytics#8937)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add https://youtu.be/YDXKa1EljmU and https://youtu.be/5BO0Il_YYAg to Docs (ultralytics#8958)

* `ultralytics 8.1.29` improved disk space checking on correct path (ultralytics#8977)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Kayzwer <68285002+Kayzwer@users.noreply.github.com>

* Add OpenVINO Latency vs Throughput modes Docs page (ultralytics#9001)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add `brain-tumor` dataset docs page (ultralytics#9041)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Neural Magic links (ultralytics#9144)

* Updating a typo on paddlepaddle.md (ultralytics#9108)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.30` add advanced HUB train arguments (ultralytics#9110)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* fix yolo classify model loading error (ultralytics#9196)

* Add TF GraphDef Docs Integrations Page (ultralytics#9203)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.31` NCNN and CLIP updates (ultralytics#9235)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix TypeError in check_cfg() (ultralytics#9245)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add https://youtu.be/aeAX6vWpfR0 to docs & `african-wildlife` dataset docs page (ultralytics#9102)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add TF SavedModel Docs Integrations Page (ultralytics#9162)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Limit `ray<2.9.3` due to bug in `ray==2.10.0` (ultralytics#9254)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.32` fix CLIP backwards compatibility (ultralytics#9253)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Conda cv2 ImportError libEGL.so.1 fix (ultralytics#9255)

* Fix `IS_PYTHON_3_12` bug (ultralytics#9258)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Reverse IoU threshold for NMS docs descriptions (ultralytics#9151)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add `bgr` hyperparameter (ultralytics#9139)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update pyproject.toml `[tool.pytest.ini_options]` (ultralytics#9259)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix OpenVINO missing batch-size bug (ultralytics#9264)

* `ultralytics 8.1.33` fix HUB model checks (ultralytics#9153)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Discord and Contributing Guide URLs (ultralytics#9270)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add https://youtu.be/uDrn9QZJ2lk and `object_counting.py`, `ai_gym.py` updates (ultralytics#9265)

* `ultralytics 8.1.34` Inference API robust imgsz checks (ultralytics#9274)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Bump contributor-assistant/github-action from 2.3.1 to 2.3.2 in /.github/workflows (ultralytics#9279)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add https://youtu.be/u3pLlgzUeV8 to docs (ultralytics#9367)

* Fix typo in YOLOv8-Libtorch-CPP-Inference (ultralytics#9330)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Simplify metrics calculation (ultralytics#9338)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix typo in example readme (ultralytics#9306)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Specify YOLODataset task arg during INT8 calibration (ultralytics#9309)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.1.35` simplify network modules (ultralytics#9321)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

---------

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Skillnoob <78843978+Skillnoob@users.noreply.github.com>
Co-authored-by: Muhammad Rizwan Munawar <chr043416@gmail.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: Abirami Vina <abirami.vina@gmail.com>
Co-authored-by: Paula Derrenger <107626595+pderrenger@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yonghye Kwon <developer.0hye@gmail.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: WangQvQ <1579093407@qq.com>
Co-authored-by: Martin Pl <martin-plank@gmx.de>
Co-authored-by: Mactarvish <Mactarvish@users.noreply.github.com>
Co-authored-by: DieterTimmers <46112022+DieterTimmers@users.noreply.github.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>
Co-authored-by: AdamP <7806910+adamp87@users.noreply.github.com>
Co-authored-by: Youho99 <44434482+Youho99@users.noreply.github.com>
Co-authored-by: Ankan Ghosh <79740115+0xSynapse@users.noreply.github.com>
Co-authored-by: Skillnoob <78843978+Skillnoob@users.noreply.github.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: Priytosh Tripathi <priytosh.revolution@live.com>
Co-authored-by: Johannes Kaisinger <johannes.kaisinger@gmail.com>
Co-authored-by: Johnny <johnnynuca14@gmail.com>
Co-authored-by: Lakshantha Dissanayake <lakshanthad@yahoo.com>
Co-authored-by: Alexander Suslov <alexander.suslov@intel.com>
Co-authored-by: Chi <iamchi@skiff.com>
Co-authored-by: AlainSchoebi <44315825+AlainSchoebi@users.noreply.github.com>
Co-authored-by: Dean Mark <2552482+deanmark@users.noreply.github.com>
Co-authored-by: Yifei Liu <71677542+kaikai23@users.noreply.github.com>
Co-authored-by: Kayzwer <68285002+Kayzwer@users.noreply.github.com>
Co-authored-by: Robin Brown <birdcolour@users.noreply.github.com>
Co-authored-by: fang_chenfang <1217690899@qq.com>
Co-authored-by: Hassaan Farooq <103611273+hassaanfarooq01@users.noreply.github.com>
Co-authored-by: hassaanfarooq01 <hassaanfarooq01@gmail.com>
Co-authored-by: Omar Duhaiby <3omarz@gmail.com>
Co-authored-by: Andrew <ykk8j4yq@duck.com>
Co-authored-by: Sergiu Waxmann <47978446+sergiuwaxmann@users.noreply.github.com>
Co-authored-by: Adrian Boguszewski <adekboguszewski@gmail.com>
Co-authored-by: Henry <contact@henrynavarro.org>
Co-authored-by: bobyard-com <154289614+bobyard-com@users.noreply.github.com>
Co-authored-by: Mohammed Yasin <32206511+Y-T-G@users.noreply.github.com>
Co-authored-by: Finlay Morrison <57669260+finlaymorrison@users.noreply.github.com>
Co-authored-by: Massimiliano Riva <48362794+massimiliano96@users.noreply.github.com>
Co-authored-by: Jamjamjon <51357717+jamjamjon@users.noreply.github.com>
Co-authored-by: Kalen Michael <kalenmike@gmail.com>
Co-authored-by: Mo Li <82895469+DseidLi@users.noreply.github.com>
Co-authored-by: zhaoruibing <zhaoruibing@gmail.com>
Co-authored-by: Dzmitry Plashchynski <plashchynski@gmail.com>
Co-authored-by: higor-melo <115033428+higor-melo@users.noreply.github.com>
Co-authored-by: Eric Hanson <5846501+ericphanson@users.noreply.github.com>
Co-authored-by: sifan-intel <109498696+sifan-intel@users.noreply.github.com>
hmurari pushed a commit to hmurari/ultralytics that referenced this pull request Apr 17, 2024
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants