pytorch 实现yolo3详细理解(三) 数据集处理

 

本章详细讲解数据的处理问题,将coco数据集读取,以及之后自定义数据集的处理,

数据预处理思想

yolo3的数据集处理也是一大亮点,由于yolo3对数据集的输入有要求,指定的照片输入大小必须是416,所有对于不满足照片的大小有一系列的操作,如果直接resize操作,将直接损失照片信息,网络在学习分类的过程还要适应照片尺寸的问题,导致训练效果不佳,在yolo3中是先进行高和宽的调整一样大,在进行上采样的resize,同时要修改label的坐标位置,随机水平翻转,再一次随机变化大小,之后再变化到416的大小尺寸作为输入。

代码

class ListDataset(Dataset):  #继承Dataset
    def __init__(self, list_path, img_size=416, augment=True, multiscale=True, normalized_labels=True):
        with open(list_path, "r") as file:
            self.img_files = file.readlines()

        self.label_files = [
            path.replace("images", "labels").replace(".png", ".txt").replace(".jpg", ".txt") #这一步是生成labels的位置
            for path in self.img_files
        ]
        self.img_size = img_size
        self.max_objects = 100
        self.augment = augment
        self.multiscale = multiscale
        self.normalized_labels = normalized_labels
        self.min_size = self.img_size - 3 * 32
        self.max_size = self.img_size + 3 * 32
        self.batch_count = 0

    def __getitem__(self, index):

        # ---------
        #  Image
        # ---------

        img_path = self.img_files[index % len(self.img_files)].rstrip()   #按照索引的方式找到对应的路径

        # Extract
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值