From 9dd33fd20f0f1a07762df129d2c2da2b1e9d09d7 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 18 Jul 2021 15:25:37 +0200 Subject: [PATCH] AutoShape PosixPath support (#4047) * AutoShape PosixPath support Usage example: ````python from pathlib import Path model = ... file = Path('data/images/zidane.jpg') results = model(file) ``` * Update common.py --- models/common.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/models/common.py b/models/common.py index 05372ae..41fc128 100644 --- a/models/common.py +++ b/models/common.py @@ -1,7 +1,7 @@ # YOLOv5 common modules from copy import copy -from pathlib import Path +from pathlib import Path, PosixPath import math import numpy as np @@ -232,8 +232,8 @@ class AutoShape(nn.Module): @torch.no_grad() def forward(self, imgs, size=640, augment=False, profile=False): # Inference from various sources. For height=640, width=1280, RGB images example inputs are: - # filename: imgs = 'data/images/zidane.jpg' - # URI: = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/zidane.jpg' + # filename: imgs = 'data/images/zidane.jpg' # str or PosixPath + # URI: = 'https://ultralytics.com/images/zidane.jpg' # OpenCV: = cv2.imread('image.jpg')[:,:,::-1] # HWC BGR to RGB x(640,1280,3) # PIL: = Image.open('image.jpg') # HWC x(640,1280,3) # numpy: = np.zeros((640,1280,3)) # HWC @@ -251,8 +251,8 @@ class AutoShape(nn.Module): shape0, shape1, files = [], [], [] # image and inference shapes, filenames for i, im in enumerate(imgs): f = f'image{i}' # filename - if isinstance(im, str): # filename or uri - im, f = Image.open(requests.get(im, stream=True).raw if im.startswith('http') else im), im + if isinstance(im, (str, PosixPath)): # filename or uri + im, f = Image.open(requests.get(im, stream=True).raw if str(im).startswith('http') else im), im im = np.asarray(exif_transpose(im)) elif isinstance(im, Image.Image): # PIL Image im, f = np.asarray(exif_transpose(im)), getattr(im, 'filename', f) or f