From da0be6ce556793520d063c2f19459d36adae455d Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Tue, 31 Aug 2021 20:05:17 +0200 Subject: [PATCH] Fix 2 for Arial.ttf redownloads with hub inference (#4628) --- utils/__init__.py | 38 +++++++++++++++++++------------------- utils/plots.py | 11 ++++++++--- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/utils/__init__.py b/utils/__init__.py index 2af1466f1f1d..4a61057e8083 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -1,19 +1,19 @@ -import sys -from pathlib import Path - -import torch -from PIL import ImageFont - -FILE = Path(__file__).absolute() -ROOT = FILE.parents[1] # yolov5/ dir -if str(ROOT) not in sys.path: - sys.path.append(str(ROOT)) # add ROOT to PATH - -# Check YOLOv5 Annotator font -font = 'Arial.ttf' -try: - ImageFont.truetype(font) -except Exception as e: # download if missing - url = "https://ultralytics.com/assets/" + font - print(f'Downloading {url} to {ROOT / font}...') - torch.hub.download_url_to_file(url, str(ROOT / font)) +# import sys +# from pathlib import Path +# +# import torch +# from PIL import ImageFont +# +# FILE = Path(__file__).absolute() +# ROOT = FILE.parents[1] # yolov5/ dir +# if str(ROOT) not in sys.path: +# sys.path.append(str(ROOT)) # add ROOT to PATH +# +# # Check YOLOv5 Annotator font +# font = 'Arial.ttf' +# try: +# ImageFont.truetype(font) +# except Exception as e: # download if missing +# url = "https://ultralytics.com/assets/" + font +# print(f'Downloading {url} to {ROOT / font}...') +# torch.hub.download_url_to_file(url, str(ROOT / font)) diff --git a/utils/plots.py b/utils/plots.py index e470329f5473..9e14e765a647 100644 --- a/utils/plots.py +++ b/utils/plots.py @@ -23,6 +23,9 @@ matplotlib.rc('font', **{'size': 11}) matplotlib.use('Agg') # for writing to files only +FILE = Path(__file__).absolute() +ROOT = FILE.parents[1] # yolov5/ dir + class Colors: # Ultralytics color palette https://ultralytics.com/ @@ -55,12 +58,14 @@ def __init__(self, im, line_width=None, font_size=None, font='Arial.ttf', pil=Tr self.draw = ImageDraw.Draw(self.im) s = sum(self.im.size) / 2 # mean shape f = font_size or max(round(s * 0.035), 12) + font = Path(font) # font handling + font = font if font.exists() else (ROOT / font.name) try: - self.font = ImageFont.truetype(font, size=f) + self.font = ImageFont.truetype(str(font) if font.exists() else font.name, size=f) except Exception as e: # download if missing - url = "https://ultralytics.com/assets/" + font + url = "https://ultralytics.com/assets/" + font.name print(f'Downloading {url} to {font}...') - torch.hub.download_url_to_file(url, font) + torch.hub.download_url_to_file(url, str(font)) self.font = ImageFont.truetype(font, size=f) self.fh = self.font.getsize('a')[1] - 3 # font height else: # use cv2