系列文章目录
文章目录
前言
源代码连接https://github.com/eriklindernoren/PyTorch-YOLOv3
当前代码用到的数据集为coco2014,这里提供官网地址https://cocodataset.org/
数据读取类datasets.py
根据传入的index索引值,去读取数据中的图像和标签,图像进行简单的预处理过程
import glob
import random
import os
import sys
import numpy as np
from PIL import Image
import torch
import torch.nn.functional as F
from utils.augmentations import horisontal_flip
from torch.utils.data import Dataset
import torchvision.transforms as transforms
# 图像填充为等宽等高
def pad_to_square(img, pad_value):
c, h, w = img.shape
dim_diff = np.abs(h - w)
# (upper / left) padding and (lower / right) padding # 高宽之差为2的整数倍时
pad1, pad2 = dim_diff // 2, dim_diff - dim_diff // 2 # 两边填充等长宽度,不同时右边比左边多一个
# Determine padding
pad = (0, 0, pad1, pad2) if h <= w else (pad1, pad2, 0, 0) # 选择填充高或宽
# Add padding
img = F.pad(img, pad, "constant&#