Glenn Jocher
7bf04d9bbf
AutoShape()
models as DetectMultiBackend()
instances (#5845 )
...
* Update AutoShape()
* autodownload ONNX
* Cleanup
* Finish updates
* Add Usage
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* fix device
* Update hubconf.py
* Update common.py
* smart param selection
* autodownload all formats
* autopad only pytorch models
* new_shape edits
* stride tensor fix
* Cleanup
2021-12-04 15:00:07 +01:00
Glenn Jocher
00e308f7be
Update TorchScript suffix to *.torchscript
( #5856 )
2021-12-02 16:06:45 +01:00
imyhxy
a4207a202d
Fix TensorRT potential unordered binding addresses ( #5826 )
...
* feat: change file suffix in pythonic way
* fix: enforce binding addresses order
* fix: enforce binding addresses order
2021-11-30 13:52:22 +01:00
Glenn Jocher
fcd180d336
Refactor new model.warmup()
method ( #5810 )
...
* Refactor new `model.warmup()` method
* Add half
2021-11-27 12:29:45 +01:00
Phil2020
53349dac8e
Scope TF imports in DetectMultiBackend()
( #5792 )
...
* tensorflow or tflite exclusively as interpreter
As per bug report https://github.com/ultralytics/yolov5/issues/5709 I think there should be only one attempt to assign interpreter, and it appears tflite is only ever needed for the case of edgetpu model.
* Scope imports
* Nested definition line fix
* Update common.py
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-11-25 17:54:00 +01:00
imyhxy
7a39803476
Export, detect and validation with TensorRT engine file ( #5699 )
...
* Export and detect with TensorRT engine file
* Resolve `isort`
* Make validation works with TensorRT engine
* feat: update export docstring
* feat: change suffix from *.trt to *.engine
* feat: get rid of pycuda
* feat: make compatiable with val.py
* feat: support detect with fp16 engine
* Add Lite to Edge TPU string
* Remove *.trt comment
* Revert to standard success logger.info string
* Fix Deprecation Warning
```
export.py:310: DeprecationWarning: Use build_serialized_network instead.
with builder.build_engine(network, config) as engine, open(f, 'wb') as t:
```
* Revert deprecation warning fix
@imyhxy it seems we can't apply the deprecation warning fix because then export fails, so I'm reverting my previous change here.
* Update export.py
* Update export.py
* Update common.py
* export onnx to file before building TensorRT engine file
* feat: triger ONNX export failed early
* feat: load ONNX model from file
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-11-22 14:58:07 +01:00
Glenn Jocher
46daa7b78d
Remove .autoshape()
method ( #5694 )
2021-11-20 01:11:36 +01:00
Jirka Borovec
eb51ffdcac
Prune unused imports ( #5711 )
...
* prune unused imports
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-19 13:32:53 +01:00
Nrupatunga
0453b758e7
TFDetect dynamic anchor count assignment fix ( #5668 )
...
* fix tf.py when anchors not equal to 3
* revert the isort fix
* update the fix to use anchor attribute available already
2021-11-16 12:36:00 +01:00
Ding Yiwei
c2523be634
Replace 2 transpose()
with 1 permute
in TransformerBlock()` ( #5645 )
2021-11-15 10:06:18 +01:00
Glenn Jocher
3883261143
New DetectMultiBackend()
class ( #5549 )
...
* New `DetectMultiBackend()` class
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* pb to pt fix
* Cleanup
* explicit apply_classifier path
* Cleanup2
* Cleanup3
* Cleanup4
* Cleanup5
* Cleanup6
* val.py MultiBackend inference
* warmup fix
* to device fix
* pt fix
* device fix
* Val cleanup
* COCO128 URL to assets
* half fix
* detect fix
* detect fix 2
* remove half from DetectMultiBackend
* training half handling
* training half handling 2
* training half handling 3
* Cleanup
* Fix CI error
* Add torchscript _extra_files
* Add TorchScript
* Add CoreML
* CoreML cleanup
* New `DetectMultiBackend()` class
* pb to pt fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup
* explicit apply_classifier path
* Cleanup2
* Cleanup3
* Cleanup4
* Cleanup5
* Cleanup6
* val.py MultiBackend inference
* warmup fix
* to device fix
* pt fix
* device fix
* Val cleanup
* COCO128 URL to assets
* half fix
* detect fix
* detect fix 2
* remove half from DetectMultiBackend
* training half handling
* training half handling 2
* training half handling 3
* Cleanup
* Fix CI error
* Add torchscript _extra_files
* Add TorchScript
* Add CoreML
* CoreML cleanup
* revert default to pt
* Add Usage examples
* Cleanup val
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-09 16:45:02 +01:00
Glenn Jocher
79bca2bf64
LOGGER
consolidation (#5569 )
...
* Logger consolidation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-08 16:32:15 +01:00
Glenn Jocher
3f64ad1760
Fix save_one_box()
( #5545 )
...
* Fix `save_one_box()`
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-11-06 19:28:03 +01:00
Glenn Jocher
60c8a4f696
Fix for *.yaml emojis on load ( #5543 )
...
Fix for Colab hub error:
```python
import yaml
with open('yolov5s.yaml', errors='ignore') as f:
d = yaml.safe_load(f) # model dict
print(d)
---------------------------------------------------------------------------
ReaderError Traceback (most recent call last)
<ipython-input-8-1150b5143073> in <module>()
2
3 with open('yolov5s.yaml', errors='ignore') as f:
----> 4 d = yaml.safe_load(f) # model dict
5
6 print(d)
6 frames
/usr/local/lib/python3.7/dist-packages/yaml/reader.py in check_printable(self, data)
142 position = self.index+(len(self.buffer)-self.pointer)+match.start()
143 raise ReaderError(self.name, position, ord(character),
--> 144 'unicode', "special characters are not allowed")
145
146 def update(self, length):
ReaderError: unacceptable character #x1f680: special characters are not allowed
in "yolov5s.yaml", position 9
```
2021-11-06 16:03:14 +01:00
Glenn Jocher
fa2344cdd8
Update models/hub/*.yaml
files for v6.0n release ( #5540 )
...
* Update model yamls for v6.0
* Add python models/yolo.py --test
* Ghost fix
2021-11-06 15:07:45 +01:00
Deep Patel
336437998f
Suppress ONNX export trace warning ( #5437 )
...
Checking for `onnx_dynamic` first should suppress the warning:
```log
TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
if self.grid[i].shape[2:4] != x[i].shape[2:4] or self.onnx_dynamic
```
2021-11-05 19:31:53 +01:00
Glenn Jocher
bfacfc6b4a
Update cls bias init ( #5520 )
...
* Update cls bias init
Increased numerical precision. Returns 1.0 probability for single-class datasets now. Addresses https://github.com/ultralytics/yolov5/issues/5357
```python
torch.sigmoid(torch.tensor([math.log(0.6 / (1 - 0.99999))]))
Out[19]: tensor([1.0000])
```
* Update yolo.py
2021-11-05 13:18:46 +01:00
Jirka Borovec
0155548384
precommit: isort ( #5493 )
...
* precommit: isort
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update isort config
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update name
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-11-04 17:24:25 +01:00
Glenn Jocher
5866646cc8
Fix float zeros format ( #5491 )
...
* Fix float zeros format
* 255 to integer
2021-11-03 23:36:53 +01:00
Glenn Jocher
06bf8ef7e5
Add tf.py verification printout ( #5484 )
...
* Update tf.py with verified confirmation
* Update ci-testing.yml
* Update ci-testing.yml
2021-11-03 19:04:51 +01:00
Glenn Jocher
042f02ff9b
Fix tf.py LoadImages()
dataloader return values ( #5455 )
2021-11-02 23:04:15 +01:00
Glenn Jocher
7b1f7aec46
Update get_loggers()
( #4854 )
...
* Update `set_logging()`
* Update export.py
* pre-commit fixes
* Update LoadImages
* Update LoadStreams
* Update print_args
* Single LOGGER definition
* yolo.py fix
Co-authored-by: pre-commit <pre-commit@example.com>
2021-11-01 18:22:13 +01:00
Glenn Jocher
8c326a1edf
Meshgrid indexing='ij'
for PyTorch 1.10 ( #5309 )
...
* Meshgrid `indexing='ij'` for PyTorch 1.10
Will not merge currently as breaks backwards compatibility.
* Meshgrid `indexing='ij'` for PyTorch 1.10
Will not merge currently as breaks backwards compatibility.
* Add check_version hard argument
* Update comment
2021-11-01 14:33:08 +01:00
Glenn Jocher
5d4258fac5
Fix MixConv2d() remove shortcut + apply depthwise ( #5410 )
2021-10-30 13:38:51 +02:00
Jirka Borovec
ed887b5976
Add pre-commit CI actions ( #4982 )
...
* define pre-commit
* add CI code
* configure
* apply pre-commit
* fstring
* apply MD
* pre-commit
* Update torch_utils.py
* Update print strings
* notes
* Cleanup code-format.yml
* Update setup.cfg
* Update .pre-commit-config.yaml
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-10-28 18:35:01 +02:00
Glenn Jocher
9c31a66f5d
Update AutoShape.forward()
model.classes example ( #5324 )
2021-10-25 14:03:25 +02:00
Yoni Chechik
34da872ab6
fix tf
conversion in new v6 models ( #5153 )
...
* fix `tf` conversion in new v6 (#5147 )
* sort imports
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-10-12 08:38:54 -07:00
Glenn Jocher
956be8e642
YOLOv5 release v6.0 ( #5141 )
...
* Update P5 models
* Update P6 models
* Update with GFLOPs and Params
* Update with GFLOPs and Params
* Update README
* Update
* Update README
* Update
* Update
* Add times
* Update README
* Update results
* Update results
* Update results
* Update hyps
* Update plots
* Update plots
* Update README.md
* Add nano models to hubconf.py
2021-10-11 23:47:18 -07:00
Jebastin Nadar
9d75e42f98
Refactor Detect()
anchors for ONNX <> OpenCV DNN compatibility ( #4833 )
...
* refactor anchors and anchor_grid in Detect Layer
* fix CI failures by adding compatibility
* fix tf failure
* fix different devices errors
* Cleanup
* fix anchors overwriting issue
* better refactoring
* Remove self.anchor_grid shape check (redundant with self.grid check)
Also PEP8 / 120 line width
* Convert _make_grid() from static to dynamic method
* Remove anchor_grid.to(device)
clone() should already clone to same device as self.anchors
* fix different devices error
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-10-11 09:58:42 -07:00
Jebastin Nadar
a0e15046c3
Fix different devices bug when moving model from GPU to CPU ( #5110 )
...
* fix different devices bug
* extend _apply() instead of to() for a general fix
* Only apply if Detect() is last layer
Co-authored-by: Jebastin Nadar <njebastin10@gmail.com>
* Indent fix
* Add comment to yolo.py
* Add comment to common.py
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-10-10 14:24:05 -07:00
Glenn Jocher
070af88108
Fix yaml.safe_load()
ignore emoji errors ( #5060 )
2021-10-05 13:41:52 -07:00
Glenn Jocher
d133968b1e
Clip TTA Augmented Tails ( #5028 )
...
* Clip TTA Augmented Tails
Experimental TTA update.
* Update yolo.py
* Update yolo.py
* Update yolo.py
* Update yolo.py
2021-10-04 15:48:55 -07:00
Zhiqiang Wang
1922ddeac0
Fix pylint: do not use bare 'except' ( #5025 )
...
* Fix E722, do not use bare 'except'
* Remove used codes
* Add FileNotFoundError in LoadImagesAndLabels
* Remove AssertionError
* Ignore LoadImagesAndLabels
* Ignore downloads.py
* Ignore torch_utils.py
* Ignore train.py
* Ignore datasets.py
* Enable utils/download.py
* Fixing exception in thop
* Remove unused code
* Fixing exception in LoadImagesAndLabels
* Fixing exception in exif_size
* Fixing exception in parse_model
* Ignore exceptions in requests
* Revert the exception as suggested
* Revert the exception as suggested
2021-10-03 17:54:40 -07:00
Glenn Jocher
fb982d6030
Fix relative ROOT
Pytorch Hub custom model bug ( #4974 )
...
* Fix relative `ROOT` Pytorch Hub custom model bug
* Update yolo.py
2021-09-28 06:36:12 -07:00
Glenn Jocher
5ed28603cf
Update relative ROOT
logic ( #4955 )
...
* Update relative `ROOT` logic
* python 3.9 Path().is_relative_to() removal
2021-09-27 18:26:41 -07:00
Glenn Jocher
a820b43aca
Automatic Chinese fonts plotting ( #4951 )
...
* Automatic Chinese fonts plotting
* Default PIL=False
2021-09-27 13:48:15 -07:00
Jiacong Fang
2c2ef25f8b
TensorFlow.js export enhancements ( #4905 )
...
* Add arguments to TensorFlow NMS call
* Add regex substitution to reorder Identity_*
* Delete reorder in docstring
* Cleanup
* Cleanup2
* Removed `+ \` on string ends (not needed)
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-09-24 14:18:15 -07:00
Glenn Jocher
4d1a2ac87e
Update sys.path.append(str(ROOT))
( #4852 )
...
* Update `sys.path.append(str(ROOT))`
* Cleanup
2021-09-18 15:02:08 +02:00
Glenn Jocher
3732f9ac8a
Refactor argparser printing to print_args()
( #4850 )
...
* Refactor argparser printing to `print_args()`
* Cleanup
2021-09-18 14:16:19 +02:00
Jiacong Fang
3beb871ba4
Multiple TF export improvements ( #4824 )
...
* Add fused conv support
* Set all saved_model values to non trainable
* Fix TFLite fp16 model export
* Fix int8 TFLite conversion
2021-09-16 15:27:22 +02:00
Glenn Jocher
0dc725e3dc
Refactor forward()
method profiling ( #4816 )
2021-09-16 09:47:34 +02:00
Glenn Jocher
c3a93d783d
Add TensorFlow formats to export.py
( #4479 )
...
* Initial commit
* Remove unused export_torchscript return
* ROOT variable
* Add prefix to fcn arg
* fix ROOT
* check_yaml into run()
* interim fixes
* imgsz=(320, 320)
* Hardcode tf_raw_resize False
* Finish opt elimination
* Update representative_dataset_gen()
* Update export.py with TF methods
* SiLU and GraphDef fixes
* file_size() directory handling feature
* export fixes
* add lambda: to representative_dataset
* Detect training False default
* Fuse false for TF models
* Embed agnostic NMS arguments
* Remove lambda
* TensorFlow.js export success
* Add pb to Usage
* Add *_tfjs_model/ to ignore files
* prepend YOLOv5 to function headers
* Remove end --- comments
* parameterize tfjs export pb file
* update run() data default /ROOT
* update --include help
* update imports
* return ct_model
* Consolidate TFLite export
* pb prerequisite to tfjs
* TF modules CamelCase
* Remove exports from tf.py and cleanup
* pass agnostic NMS arguments
* CI
* CI
* ignore *_web_model/
* Add tensorflow to CI dependencies
* CI tensorflow-cpu
* Update requirements.txt
* Remove tensorflow check_requirement
* CI coreml tfjs
* export only onnx torchscript
* reorder exports torchscript first
2021-09-12 15:52:24 +02:00
Glenn Jocher
c47be26f34
Replace path.absolute()
with path.resolve()
( #4763 )
2021-09-11 22:46:33 +02:00
Jean-Baptiste Martin
1cad0ce2c7
Allow multi_label
option for NMS with PyTorch Hub ( #4728 )
...
* Allow specifying multi_label option for NMS when using torch hub
* Reformat
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-09-09 15:32:04 +02:00
ELHoussineT
0d8a184237
Add crops = results.crops()
dictionary ( #4676 )
...
* adding get cropped functionality
* Add target logic in existing functions
* Crops cleanup
* Add dictionary keys: conf, cls, box
* Bug fixes - avoid return after first image
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
2021-09-08 19:42:28 +02:00
Glenn Jocher
a2b3c71636
Add suffix checks ( #4711 )
...
* Add suffix checks
* Cleanup
* Cleanup2
* Cleanup3
2021-09-08 14:36:12 +02:00
Yukun Xia
35fe031461
Fix: add P2 layer 21 to yolov5-p2.yaml Detect()
inputs ( #4608 )
...
Layer 21 includes the information of xsmall objects
2021-08-30 15:46:33 +02:00
Glenn Jocher
e5e5ebc799
Auto-UTF handling ( #4594 )
2021-08-29 17:15:18 +02:00
Glenn Jocher
de44376d1b
Create Annotator()
class ( #4591 )
...
* Add Annotator() class
* Download Arial
* 2x for loop
* Cleanup
* tuple 2 list
* max_size=1920
* bold logging results to
* tolist()
* im = annotator.im
* PIL save in detect.py
* Smart asarray in detect.py
* revert to cv2.imwrite
* Cleanup
* Return result asarray
* Add `Profile()` profiler
* CamelCase Timeout
* Resize after mosaic
* pillow>=8.0.0
* daemon imwrite
* Add cv2 support
* Remove plot_wh_methods and plot_one_box
* pil=False for hubconf.py annotations
* im.shape bug fix
* colorstr common.py
* join daemons
* Update t.daemon
* Removed daemon saving
2021-08-29 16:46:13 +02:00
Glenn Jocher
2da6444c92
Fix for python models/yolo.py --profile
( #4541 )
...
Profiling fix copies input to Detect layer to circumvent inplace changes to the feature maps.
2021-08-25 21:23:28 +02:00