Datawhale 零基础入门CV-Task2 数据读取与数据扩增

首先让我们看一下本次比赛的数据集:
数据包
有三个文件夹,两个EXCEl表格和两个json文件。文件夹中是图片,包括训练的图片、验证的图片和最终比赛的图片,json文件是图片的名称、表示的数字、数字的方框。
图片由像素构成,为了显示图像的颜色,图片有RGB三个通道,所以常见的图片的像素数量为a×b×3,可以认为是三维列表。
以上我们就将图片数字化了,转换成了计算机能表达的方式。
在python中,数据读取顶顶有名的就是opencv。只要是关于图片你想操作的,opencv都可以帮你操作,简直就是个ps包。
opencv官方网站
在windows系统中,使用cmd指令调出命令行工具,然后选择包含opencv的conda环境,打开ipyhon,导入opencv的包–cv2,读取故意放在该层文件夹的图片为变量img
windows快速使用openv
让我们看一下img是什么样的
img的具体数值
可以看到img是array类型的,列表到array到torch张量,这就是我们要喂给神经网络的数据。
img的shape
img的形状为350×741×3,和之前讲的一致,RGB彩色图的形式。
那么,如何将array的img返回为图片显示呢,有一点点麻烦,具体如下:
-1是点图形框关闭后输出的
接下来就是使用torchvision,pytorch自带的图形变换包,将图像进行增广扩充。
transforms是torchvision的一个功能
为什么要进行图像的增广扩充呢,因为对于机器学习来说,图片的数量真是太少了,数据集不足很容易产生过拟合,所以要把一张图片转来转去,目的就是“不管你怎么变,我都认识你”。
接下来就是到了给神经网络喂饲料的时候了,别急,再想想,其实现在我们自己还没有理清楚一件事情。
我们让计算机去做一件事情的时候,一定要非常非常清楚的告诉他什么是什么,千万不能指望自己没有整明白就让计算机整明白。
我们现在已经可以做到的事情是把图片转成计算机能读懂的三维列表,工具是opencv[真是大材小用啊],然后用torchvision把一张图片变成多张图片,接下来是让计算机知道这一张图片的信息,那就是json中的数据。一张图片还是不够的,我们要把整个文件夹的图片和json的信息都一一对应上,这样图片就不再是单纯的图片了,而是被打过标签,有自己特征的图片。
为了实现这个功能,我们使用pytroch中的Dataset功能,顾名思义就是数据集。
Dataset就像给数据梳理,这一步完成整个训练的饲料就非常有条理了。
接下来还有一步,Dataloader,决定了怎么喂每次喂多少,这是根据计算机的cpu、gpu来定的。
至此,一套图片的机器学习完整流程就描述完了。
Dataset使用了class类方法,这是面向对象的精髓,看起来有些繁琐,用起来却很顺手

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值