图像预处理需要注意的几点问题

本文通过两个案例讨论了模型输入数据一致性对于确保机器学习模型准确性的关键作用。第一个案例涉及二分类模型,由于输入数据的通道数不一致导致实际应用中准确率下降;第二个案例关于UNet模型,因标签矩阵在调整大小过程中类型转换不当引发训练数据问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 问题

    博主训练了一个简单的二分类。为了提升模型的准确率,为所有的数据使用opencv(python)做了二值化处理:先灰度化再二值化。训练好模型以后发现在数据集的训练集和测试集上效果都很好,但是当我把模型融入项目的时候发现真实准确率极低。

1.2 解决方案:

    对项目中喂入模型之前的数据进行保存检验数据的正确性,发现数据在肉眼看起来并无错误。直接将保存好的数据送入模型进行预测发现错误率极高。仔细检查代码发现可疑处,在整体项目中数据喂入分类模型进行预测前是进行了通道融合操作(因为模型的input_shape是一个三通道),而在生成分类模型数据集的时候是直接保存单通道图为png格式,双方格式不统一。重新生成一批三通道训练数据后,训练模型问题解决。

2.1 问题

    博主在训练一个unet模型时发现一个问题。unet模型的label是一般是np.uint8类型的矩阵,其中元素是具体的图像分割像素所对应的类别,也就是说如果我们训练一个人脸、五官分割模型时这个矩阵应该是包含0,1,2,3,4,5,6七种元素(若分割图包含人脸和五官)。博主使用labelme自己标注了一部分数据进行训练,发现数据在严重过拟合的情况下训练集上有分割错误出现,怀疑是训练数据有问题。

2.2 解决方案

    博主在生成unet标签时对np.uint8类型的标签矩阵进行了resize操作,导致矩阵的元素被更改。先resize再进行生成标签的操作,完美解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值