【数据增强】90°、180°和270°翻转图片(*4)

简介: 【数据增强】90°、180°和270°翻转图片(*4)

前言


       参加了“智蔗见智·向新而生”广西第二届人工智能大赛,但是他给的数据集只有不到100张,对于语义分割模型的训练来说实在是杯水车薪,我们队的处理方案是:先按照十字架方式裁剪图片,之后再进行3个角度的翻转,一系列数据增强的操作了数据集的数量是原来的4*4=16倍,已经可以满足模型的训练要求!而本文正是记录旋转这个数据增强的方式。


记录按十字架裁剪图片方式如下链接:

image.png


效果展示


旋转之前的图片:


旋转之后的图片:


90°


b001cd2dd849a60e17405f7ed5f145b8.jpeg


180°


b001cd2dd849a60e17405f7ed5f145b8.jpeg


270°


dfaf404f84e4f41c22e52d789819ff09.jpeg


成品库

'''
@param:im_path,图片路径,例如:img/test.png
@param:im_name,图片名称,例如:test.png
@param:save_path,保存路径,默认为工作路径
'''


import os
import shutil
from PIL import Image
'''
@param:im_path,图片路径,例如:img/test.png
@param:im_name,图片名称,例如:test.png
@param:save_path,保存路径,默认为工作路径
'''
def strong_dataset(im_path, im_name, save_path=''):
   im = Image.open(im_path)
   part1_im = im.transpose(Image.ROTATE_90)
   part1_im.save(os.path.join(save_path, '90_'+im_name))
   part2_im = im.transpose(Image.ROTATE_180)
   part2_im.save(os.path.join(save_path, '180_'+im_name))
   part3_im = im.transpose(Image.ROTATE_270)
   part3_im.save(os.path.join(save_path, '270_'+im_name))


1.单张图片处理代码:


import os
import shutil
from PIL import Image
def strong_dataset(im_path, im_name, save_path=''):
   im = Image.open(im_path)
   part1_im = im.transpose(Image.ROTATE_90)
   part1_im.save(os.path.join(save_path, '90_'+im_name))
   part2_im = im.transpose(Image.ROTATE_180)
   part2_im.save(os.path.join(save_path, '180_'+im_name))
   part3_im = im.transpose(Image.ROTATE_270)
   part3_im.save(os.path.join(save_path, '270_'+im_name))
if __name__ == "__main__":
    strong_dataset('img/test.png', 'test.png', save_path='img')


2.遍历目录图片代码:



import os
import shutil
from PIL import Image
def strong_dataset(im_path, im_name, save_path=''):
   im = Image.open(im_path)
   part1_im = im.transpose(Image.ROTATE_90)
   part1_im.save(os.path.join(save_path, '90_'+im_name))
   part2_im = im.transpose(Image.ROTATE_180)
   part2_im.save(os.path.join(save_path, '180_'+im_name))
   part3_im = im.transpose(Image.ROTATE_270)
   part3_im.save(os.path.join(save_path, '270_'+im_name))
if __name__ == '__main__':
    # 遍历一个文件夹所有的图片进行旋转,并且保存
    ori_path = r'VOCdevkit\VOC2007\JPEGImages'
    for ori_name in os.listdir(ori_path):
        temp = os.path.join(ori_path, ori_name)
        strong_dataset(temp, ori_name, save_path=ori_path)


3.输出说明


'''
假设:你有这样一张图片 test.png
那么裁剪后将保存为
90_test.png 
180_test.png 
270_test.png 
原图片不会删除!
'''


完毕!


如果大家觉得有用,欢迎三连~  


相关文章
|
机器学习/深度学习 网络安全 算法框架/工具
在本地利用服务器显卡跑代码
在本地利用服务器显卡跑代码
1342 0
|
3月前
|
人工智能 JavaScript
生成式人工智能(GAI)认证:2025最值得考的AI证书!
生成式人工智能(GAI)认证由全球教育巨头 Pearson 推出,融合技术原理、实战应用与伦理合规的三维培养框架。该项目与 AI 领域领先企业合作开发,涵盖提示优化、基础提示工程及社会影响等核心内容,助力学习者全面掌握 GAI 技能。中文版认证已落地中国,由达内教育与恒利联创战略合作推广,深度融合本土 AI 平台。作为高含金量的全球认可证书,GAI 认证可提升职业竞争力,满足行业对复合型 AI 人才的需求,为个人和企业开辟数字时代新机遇。
|
自然语言处理 JavaScript 前端开发
Duktape:一个新的小巧的超精简可嵌入式JavaScript引擎
Duktape是一个可嵌入的Javascript引擎,主要关注便携性和精简及紧凑性。 Duktape很容易集成到C/C++项目: 添加duktape.c和duktape.h到您的build中,并使用Duktape API从C代码中,调用ECMAScript代码的功能,反之亦然。
1858 0
|
12月前
|
存储 自然语言处理 编译器
深度解密 Python 的字节码
深度解密 Python 的字节码
475 8
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
【10月更文挑战第10天】深入理解深度学习中的卷积神经网络(CNN)
386 0
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
1020 4
全网首发:gstreamer如何接入RTSP流(IP摄像头)的代码范例
全网首发:gstreamer如何接入RTSP流(IP摄像头)的代码范例
1663 0
|
机器学习/深度学习 自然语言处理
彻底改变语言模型:全新架构TTT超越Transformer,ML模型代替RNN隐藏状态
【7月更文挑战第25天】近年来,NLP领域取得显著进展但也面临挑战,如长上下文建模与计算效率的平衡。为此,研究人员提出Test-Time Training (TTT) 模型架构。TTT由多机构合作开发,旨在解决长上下文建模难题及提高计算效率。通过将隐藏状态视为可学习更新的模型,TTT能随输入增长提升表示能力;采用自监督学习更新规则确保线性计算复杂度的同时保持高性能。实验显示TTT在多种NLP任务中表现优秀,尤其在长上下文处理方面超越Transformer。尽管如此,TTT仍面临训练资源需求高及自监督学习鲁棒性等挑战。[论文](https://arxiv.org/abs/2407.04620)
330 5
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记二:基于YOLOV5的CPU版本部署openvino
本文档详细记录了YOLOv5模型在CPU环境下的部署流程及性能优化方法。首先,通过设置Python虚拟环境并安装PyTorch等依赖库,在CPU环境下成功运行YOLOv5模型的示例程序。随后,介绍了如何将PyTorch模型转换为ONNX格式,并进一步利用OpenVINO工具包进行优化,最终实现模型在CPU上的高效运行。通过OpenVINO的加速,即使是在没有GPU支持的情况下,模型的推理速度也从约20帧每秒提高到了50多帧每秒,显著提升了性能。此文档对希望在资源受限设备上部署高性能计算机视觉模型的研究人员和工程师具有较高的参考价值。
1033 0
|
机器学习/深度学习 传感器 算法
【航迹】基于MN逻辑算法实现航迹关联和卡尔曼滤波外推附matlab代码
【航迹】基于MN逻辑算法实现航迹关联和卡尔曼滤波外推附matlab代码