补全yolov5的代码
This commit is contained in:
@ -45,9 +45,9 @@ except (ImportError, AssertionError):
|
||||
|
||||
from ultralytics.utils.checks import check_requirements
|
||||
|
||||
from utils import TryExcept, emojis
|
||||
from utils.downloads import curl_download, gsutil_getsize
|
||||
from utils.metrics import box_iou, fitness
|
||||
from yolov5.utils import TryExcept, emojis
|
||||
from yolov5.utils.downloads import curl_download, gsutil_getsize
|
||||
from yolov5.utils.metrics import box_iou, fitness
|
||||
|
||||
FILE = Path(__file__).resolve()
|
||||
ROOT = FILE.parents[1] # YOLOv5 root directory
|
||||
@ -585,7 +585,7 @@ def check_dataset(data, autodownload=True):
|
||||
|
||||
def check_amp(model):
|
||||
"""Checks PyTorch AMP functionality for a model, returns True if AMP operates correctly, otherwise False."""
|
||||
from models.common import AutoShape, DetectMultiBackend
|
||||
from yolov5.models.common import AutoShape, DetectMultiBackend
|
||||
|
||||
def amp_allclose(model, im):
|
||||
"""Compares FP32 and AMP model inference outputs, ensuring they are close within a 10% absolute tolerance."""
|
||||
@ -611,6 +611,27 @@ def check_amp(model):
|
||||
return False
|
||||
|
||||
|
||||
def scale_coords(img1_shape, coords, img0_shape, ratio_pad=None):
|
||||
# Rescale coords (xyxy) from img1_shape to img0_shape
|
||||
if ratio_pad is None: # calculate from img0_shape
|
||||
gain = min(img1_shape[0] / img0_shape[0], img1_shape[1] / img0_shape[1]) # gain = old / new
|
||||
pad = (img1_shape[1] - img0_shape[1] * gain) / 2, (img1_shape[0] - img0_shape[0] * gain) / 2 # wh padding
|
||||
else:
|
||||
gain = ratio_pad[0][0]
|
||||
pad = ratio_pad[1]
|
||||
|
||||
coords[:, [0, 2]] -= pad[0] # x padding
|
||||
coords[:, [1, 3]] -= pad[1] # y padding
|
||||
coords[:, :4] /= gain
|
||||
|
||||
# Clip bounding xyxy bounding boxes to image shape (height, width)
|
||||
coords[:, 0].clamp_(0, img0_shape[1]) # x1
|
||||
coords[:, 1].clamp_(0, img0_shape[0]) # y1
|
||||
coords[:, 2].clamp_(0, img0_shape[1]) # x2
|
||||
coords[:, 3].clamp_(0, img0_shape[0]) # y2
|
||||
return coords
|
||||
|
||||
|
||||
def yaml_load(file="data.yaml"):
|
||||
"""Safely loads and returns the contents of a YAML file specified by `file` argument."""
|
||||
with open(file, errors="ignore") as f:
|
||||
|
Reference in New Issue
Block a user