python读取多张图片_python批量读入图片、处理并批量输出(可用于深度学习训练集的制作)...

本文介绍了如何使用Python的PIL库处理图片,包括读取多张图片、分割大图成小图、进行角度旋转,用于创建深度学习训练集。作者通过实例详细解释了处理过程,涉及图像分割策略和文件管理方式。
摘要由CSDN通过智能技术生成

最近工作实在是太忙了,白浪花的项目没有及时跟进,很多知识也没有自学。好了,趁着现在等领导回复微信的时间,我把上周趁着零散时间做的工作总结一下。内容依然小白,但是却很重要。

项目情况简单描述一下,最终要用深度学习自学做一个白浪花的图像分割。项目背景是船在海上跑的时候会激起来很多白沫还有白浪花,我的兴趣在于运用深度学习的方法提取这些白浪花。好了具体情况先不多说,等我具体搞出来我会专门写一篇来总结这个事儿。

训练集情况

前段时间我用PS软件处理了接近4000张不同时间的图片,图片标号其实是用程序随机抽取的,包含不同的时段(目的是把不同光照条件的白浪花图片包括进来,因为不同光照条件下会产生大量不规则耀斑,会干扰白浪花的分割,这个情况必须让机器学会)的白浪花情况。

所以现在的情况是训练集拥有4000张1280*720的RGB白浪花输入图像和4000张对应的1280*720的BW二值标签。他们就是我训练集的全部数据。我要使用的网络是U-Net网络,输入大小是572*572(原论文中的输入就是572*572,作为一个小白,我先不创新了哈),由于传统的U-Net网络卷积是valid卷积,即不padding,所以每次卷积之后图片大小会缩小,最终输出大小为388*388。

分割图的策略

这里其实有两个策略,一个是按照原文的overlap策略,主要是我认为边缘的分割效果是不好的,因为毕竟边缘部分总会不稳定,所以我每次的分割结果都只采用中间的部分,所以最后输出是388*388的部分我认为是分割好的。那么对于一张大图来讲,比如1280*720,我要把它完全用网络分割完得到1280*720的分割图,我就必须先把这张大图分成388*388(这里仅仅举例,真正还要先预算尺寸)的部分,然后再取其周围的572*572的部分输入网络得到这一部分的输出。那么下一个部分以此类推,边缘采用镜像的办法(因为镜像了,所以总还是中间是稳定的)。说白了就相当于移动着来输出,重叠部分就不管了,我每次只认为大图的中间部分的分割是可信的,最终满足一张大图的分割,同时这种分割是十分有效的。第二个是我在卷积的时候给他padding,让他最终的输出不改变图片的大小,但是我在取的时候还是取中间的一小部分,这一小部分其实还是取388*388或者这块中间区域的附近区域,但是我目前自学到的知识来看,一般还都是padding使输出大小不改变,我觉得可能是方便把。。。(也可能不是。。。)

好了说多了,这里简单说了下我训练集图片的情况。我还是采用论文原文中的策略,输入572*572,输出388*388。我现在有1280*720的4000张RGB输入和对应标签,他们的编号是随机的,但是每100张是连着的,也就是说他们有40组,每组是100张连续的图片,分散在40个文件夹里。这就非常奇葩,因为我的大库是分开的,他们都是从大库中随机抽取的,分成8个文件夹,大库一共8个文件夹,其实是代表8个时间段船航行的时候采集的,不要问我为啥,我也不知道他为啥这么分!所以我其实是每个大库文件夹中随机采500张然后每100张为一个连续单位放到文件夹里。(好了,如果你问我为啥不直

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值