制作数据集时的图像裁剪

由于发布的图像数据集分辨率大小不一,并且图像存在大黑边,这样会导致图像在输入进网络之前有各种尺寸的图像,并且resize之后关注的区域会被压缩或者拉伸。因此,我们考虑到将图像进行裁剪以尽可能地保证输入图像为同一类型的尺寸输入

这里图像比较特殊,背景几乎为全0。这里,我们使用了阈值分割来提取图像的坐标

import pandas as pd
from PIL import image
from pylab import *
from skimage import transform
import scipy.misc

def crop_and_resize(img, rows, cols):
    #输入前的转为array
    # Image crop
    image_gray = np.mean(img, 2) #转为灰度图
    img_coord = np.where(img_gray>0) #找到前景区域内不为0的坐标保存在img_coord里面
    img_row = img_coord[0] #保存x值的array
    img_col = img_coord[1] #保存y值的array
    row_lo = np.min(img_row)
    row_hi = np.max(img_row)
    col_lo = np.min(img_col)
    col_hi = np.max(img_col)

    img_crop = img[row_lo:row_hi,col_lo:col_hi,:]
    
    ######   Image resize
    ## 这里用了transform来调整array尺寸
    img_crop_resize = transform.resize(img_crop,(rows,cols))
    
    return img_crop_resize
    
    

通过这样一种简单的方法实现数据集图像的裁剪和resize

后面将处理之后的图像保存在本地供访问

在保存图的时候又调用了另一个库scipy.misc

scipy.misc.imsave('path',img_crop_resize)

后面再从文件夹里面读取数据就行了。

应该还有更好的方法,这里只是作为可以实现的一种方案。 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作一个ResNet图像分类的数据集,你需要遵循以下步骤: 1. 确定你的图像分类任务:决定你要训练模型来识别哪些类别的图像。例如,你可以选择动物、食物、车辆等类别。 2. 收集图像数据:收集大量属于各个类别的图像。你可以从互联网上搜索并下载图像,或者使用开放的图像数据库(如ImageNet、COCO等)。 3. 数据预处理:对收集到的图像进行预处理,以便与ResNet模型的输入要求相匹配。常见的预处理步骤包括:调整图像大小、归一化图像像素值、剪裁或填充图像等。 4. 数据标注:为每个图像分配正确的类别标签。标签应该与你在第一步中确定的类别一致。 5. 数据集划分:将数据集划分为训练集、验证集和测试集。通常,大部分数据用于训练,一小部分用于验证和测试。划分比例取决于你的数据集规模和任务要求。 6. 数据增强(可选):为了增加数据样本的多样性和模型鲁棒性,你可以应用一些数据增强技术,如旋转、翻转、裁剪、缩放等。 7. 数据加载:使用适当的库(如PyTorch、TensorFlow等)来加载和处理数据集。这些库可以帮助你以批处理的方式高效地加载数据。 8. 模型训练:使用ResNet模型或其变种,将数据集用于训练。你可以使用已有的预训练模型作为起点,或者从头开始训练一个新模型。 9. 模型评估:使用验证集对训练的模型进行评估,并根据性能指标(如准确率、精确率、召回率等)选择最佳模型。 10. 模型测试:使用测试集对最佳模型进行最后的性能评估。可以计算模型在测试集上的准确率或其他指标,以衡量其在真实环境中的表现。 11. 模型部署:将经过训练和测试的模型部署到实际应用中,如移动应用、网站或其他系统,以进行实图像分类任务。 总之,制作一个ResNet图像分类的数据集需要收集、处理、标注和划分数据,并在训练和测试过程中使用适当的技术和工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值