【玩转yolov5】来自茱丽叶的letterbox

本文介绍了如何在深度学习模型中使用letterbox技术,避免长方形图片在resize为正方形时的失真问题。通过实例展示了如何将BDD100k图片进行不失真的resize,并且填充灰色边界以适应模型的正方形输入。

   数据集中的图片一般为长方形,当模型输入为正方形时直接将长方形图片resize为正方形会使得图片失真,采用letterbox(啥意思?邮箱盒子!)通过填充边界(通常是灰色填充)的方式来保持原始图片的长宽比例,同时又满足模型正方形输入的需要。这里以我做训练时使用的一张bdd100k中的图片为例直观感受一下即可。

import cv2 
import matplotlib as plt
import numpy as np


img_size = 640 #yolov5默认输入图片尺寸640x640
augment = True #代码中会要用到的增量参数
path = path="/home/zw/zuosi/projects/yolov5-v4.0/diamond_20210119/images/train/20e2659a-2e3fb6de.jpg" #我选择的一张bdd100k的图片

先调用yolov5中的load_image函数加载图片。

def load_image(path):
    img = cv2.imread(path)  # BGR
    assert img is not None, 'Image Not Found ' + path
    h0, w0 = img.shape[:2]  # orig hw
    #5/10 py2:0, py3:0.2
    #python3中数字的除法运算默认使用浮点数运算,如果notebook用的py2得强制转换一下
    r = img_size / float(max(h0, w0))  # resize image to img_size
    if r != 1:  # always resize down, only resize up if training with augmentation
        interp = cv2.INTER_AREA if r < 1 and not augment else cv2.INTER_LINEAR
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值