* clean_str() function addition * cleanup * add euro symbol € * add closing exclamation (spanish) * cleanup5.0
@@ -81,12 +81,13 @@ def detect(save_img=False): | |||
# Process detections | |||
for i, det in enumerate(pred): # detections per image | |||
if webcam: # batch_size >= 1 | |||
p, s, im0, frame = Path(path[i]), '%g: ' % i, im0s[i].copy(), dataset.count | |||
p, s, im0, frame = path[i], '%g: ' % i, im0s[i].copy(), dataset.count | |||
else: | |||
p, s, im0, frame = Path(path), '', im0s, getattr(dataset, 'frame', 0) | |||
p, s, im0, frame = path, '', im0s, getattr(dataset, 'frame', 0) | |||
save_path = str(save_dir / p.name) | |||
txt_path = str(save_dir / 'labels' / p.stem) + ('' if dataset.mode == 'image' else f'_{frame}') | |||
p = Path(p) # to Path | |||
save_path = str(save_dir / p.name) # img.jpg | |||
txt_path = str(save_dir / 'labels' / p.stem) + ('' if dataset.mode == 'image' else f'_{frame}') # img.txt | |||
s += '%gx%g ' % img.shape[2:] # print string | |||
gn = torch.tensor(im0.shape)[[1, 0, 1, 0]] # normalization gain whwh | |||
if len(det): |
@@ -19,7 +19,7 @@ from PIL import Image, ExifTags | |||
from torch.utils.data import Dataset | |||
from tqdm import tqdm | |||
from utils.general import xyxy2xywh, xywh2xyxy | |||
from utils.general import xyxy2xywh, xywh2xyxy, clean_str | |||
from utils.torch_utils import torch_distributed_zero_first | |||
# Parameters | |||
@@ -267,7 +267,7 @@ class LoadStreams: # multiple IP or RTSP cameras | |||
n = len(sources) | |||
self.imgs = [None] * n | |||
self.sources = sources | |||
self.sources = [clean_str(x) for x in sources] # clean source names for later | |||
for i, s in enumerate(sources): | |||
# Start the thread to read frames from the video stream | |||
print('%g/%g: %s... ' % (i + 1, n, s), end='') |
@@ -2,6 +2,7 @@ | |||
import glob | |||
import logging | |||
import math | |||
import os | |||
import platform | |||
import random | |||
@@ -11,7 +12,6 @@ import time | |||
from pathlib import Path | |||
import cv2 | |||
import math | |||
import numpy as np | |||
import torch | |||
import torchvision | |||
@@ -97,6 +97,11 @@ def make_divisible(x, divisor): | |||
return math.ceil(x / divisor) * divisor | |||
def clean_str(s): | |||
# Cleans a string by replacing special characters with underscore _ | |||
return re.sub(pattern="[|@#!¡·$€%&()=?¿^*;:,¨´><+]", repl="_", string=s) | |||
def labels_to_class_weights(labels, nc=80): | |||
# Get class weights (inverse frequency) from training labels | |||
if labels[0] is None: # no labels loaded |