您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

Python深度学习:使用Augly库进行图片数据增强

时间:2022-01-05 09:26:09  来源:  作者:熬夜学习猿

前言

AugLy是一个数据增强库,可以帮助评估和提高模型的稳健性。该库支持四种模式( 音频、视频、图像和文本 ),并且包含 100 多种执行数据增强的方法。如果正在从事使用音频、视频、图像或文本数据集的机器学习或深度学习项目,可以使用此库来增加数据并提高模型性能。

该库由 Facebook AI 的软件工程师 Joanna Bitton、FAIR 的研究工程师 Zoe Papakipos 以及 Facebook 的其他研究人员和工程师开发。

Python深度学习:使用Augly库进行图片数据增强

 

AugLy 是一个 Python/ target=_blank class=infotextkey>Python 3.6+ 库。它可以通过以下方式安装:

pip install augly

上述命令仅安装使用图像和文本模式的基本要求。对于音频和视频模式,安装所需的额外依赖项:

pip install augly[av]

文件目录

# 数据的文件夹目录
# 图片类别:0,1,2...n
augment_data
- train_data
	- 0
	- 1
	- ...
- val_data
	- 0
	- 1
	- ...
- test_data
	- 0
	- 1
	- ...
import os
from PIL import Image
from PIL import ImageFile
import augly.image as imaugs
from tqdm import tqdm
ImageFile.LOAD_TRUNCATED_IMAGES = True

def fun_files(path):
    fileArray = []     
    for root, dirs, files in os.walk(path):     
        for fn in files:
            eachpath = str(root + '\' + fn)
            fileArray.Append(eachpath)
    # print(fileArray)
    return fileArray

def fun_dirs(path):      
    dirArray = []      
    for root, dirs, files in os.walk(path):    
        for dir in dirs:
            eachpath = str(root + '\' + dir)
            dirArray.append(eachpath)
    # print(dirArray)
    return dirArray

def augmentation(augment_dirpath):
    datalist = fun_dirs(augment_dirpath)
    # print(dirlist)
    print("datalist", len(datalist))
    for dir in datalist:
        dirlist = fun_dirs(dir)
        for each in tqdm(dirlist):
            dirname = each.split("\")[-1]
            filelist = fun_files(each)
            for i in range(len(filelist)):
                try:
                    im = Image.open(filelist[i])
                except:
                    print("cannot identify image file", filelist[i])
                else:
                    basename = os.path.basename(filelist[i])
                    imgformat = basename.split(".")[-1]
                    aug_image = im.convert('RGB')
                    # 图像模糊
                    output_path = each + '\' + dirname + "_" + str(i) + "_" + "blur" + "." + imgformat
                    imaugs.blur(aug_image, output_path=output_path)
                    # 图像亮度
                    output_path = each + '\' + dirname + "_" + str(i) + "_" + "brightness" + "." + imgformat
                    imaugs.brightness(aug_image, factor=1.5, output_path=output_path)
                    # 对比度
                    output_path = each + '\' + dirname + "_" + str(i) + "_" + "contrast" + "." + imgformat
                    imaugs.contrast(aug_image, factor=1.5, output_path=output_path)
                    # 灰度
                    output_path = each + '\' + dirname + "_" + str(i) + "_" + "grayscale" + "." + imgformat
                    imaugs.grayscale(aug_image, output_path=output_path)
                    # 水平翻转
                    output_path = each + '\' + dirname + "_" + str(i) + "_" + "hflip" + "." + imgformat
                    imaugs.hflip(aug_image, output_path=output_path)
                    # 随机噪声
                    output_path = each + '\' + dirname + "_" + str(i) + "_" + "random_noise" + "." + imgformat
                    imaugs.random_noise(aug_image, output_path=output_path)


if __name__ == '__main__':
    augment_dirpath = "augment_data"
    if not os.path.exists(augment_dirpath):
        os.mkdir(augment_dirpath)
    augmentation(augment_dirpath)

增强结果

Python深度学习:使用Augly库进行图片数据增强

 

原文链接:
https://blog.csdn.NET/qq_45538469/article/details/122217323



Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1、让我们一起来看下吧,直接上图。 第一眼看到是不是觉得很高逼格,暗黑画风,这很大佬。其实它就是------AidLearning。一个运行在安卓平台的linux系统,而且还包含了许多非常强大...【详细内容】
2022-07-15  Tags: Python  点击:(2)  评论:(0)  加入收藏
真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天说的这个软件是一款基于Python+vue的自动化运维、完全开源的云管理平台。二、实现功能 基于RBAC权限系统 录像回放 ...【详细内容】
2022-07-14  Tags: Python  点击:(3)  评论:(0)  加入收藏
前言今天笔者想和大家来聊聊python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧。 一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,P...【详细内容】
2022-07-11  Tags: Python  点击:(19)  评论:(0)  加入收藏
aiohttp什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。安装pip install aiohttpaiohttp 和 r...【详细内容】
2022-07-11  Tags: Python  点击:(15)  评论:(0)  加入收藏
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...【详细内容】
2022-07-06  Tags: Python  点击:(34)  评论:(0)  加入收藏
继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基...【详细内容】
2022-07-06  Tags: Python  点击:(25)  评论:(0)  加入收藏
点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文1553字,阅读约需4分钟 Hi,大家好,我是CoCo。在上一篇Python自动化测试系列文章:Python自动化测试之P...【详细内容】
2022-07-05  Tags: Python  点击:(27)  评论:(0)  加入收藏
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...【详细内容】
2022-07-05  Tags: Python  点击:(19)  评论:(0)  加入收藏
什么是python类的多态python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。用比喻的方式理解python类的多态比如,同一个苹果(统一的接口)在孩子的眼里(类实...【详细内容】
2022-07-04  Tags: Python  点击:(28)  评论:(0)  加入收藏
假设某日我开了一家空调公司,暂且就叫他天强空调安装设备公司吧,假装自己有公司,接了一单大生意,就是给甘肃省的各个高校安装空调(其实这边的气候基本用不到空调,就是假想一下),那么...【详细内容】
2022-07-01  Tags: Python  点击:(33)  评论:(0)  加入收藏
▌简易百科推荐
近几年 Web3 被炒得火热,但是大部分人可能还不清楚什么是 Web3,今天就让w3cschool编程狮小师妹带你了解下 Web3 是什么?与我们熟知的 Web1 和 Web2 又有什么区别呢?web3.0什么是...【详细内容】
2022-07-15  编程狮W3Cschool    Tags:Web3.0   点击:(2)  评论:(0)  加入收藏
1、让我们一起来看下吧,直接上图。 第一眼看到是不是觉得很高逼格,暗黑画风,这很大佬。其实它就是------AidLearning。一个运行在安卓平台的linux系统,而且还包含了许多非常强大...【详细内容】
2022-07-15  IT智能化专栏    Tags:AidLearning   点击:(2)  评论:(0)  加入收藏
真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天说的这个软件是一款基于Python+vue的自动化运维、完全开源的云管理平台。二、实现功能 基于RBAC权限系统 录像回放 ...【详细内容】
2022-07-14  菜鸟程序猿    Tags:Python   点击:(3)  评论:(0)  加入收藏
前言今天笔者想和大家来聊聊python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧。 一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,P...【详细内容】
2022-07-11  测试架构师百里    Tags:python   点击:(19)  评论:(0)  加入收藏
aiohttp什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。安装pip install aiohttpaiohttp 和 r...【详细内容】
2022-07-11  VT漫步    Tags:aiohttp   点击:(15)  评论:(0)  加入收藏
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...【详细内容】
2022-07-06  VT漫步    Tags:Python Queue   点击:(34)  评论:(0)  加入收藏
继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基...【详细内容】
2022-07-06  至尊小狸子    Tags:python   点击:(25)  评论:(0)  加入收藏
点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文1553字,阅读约需4分钟 Hi,大家好,我是CoCo。在上一篇Python自动化测试系列文章:Python自动化测试之P...【详细内容】
2022-07-05  CoCo的软件测试小栈    Tags:Python   点击:(27)  评论:(0)  加入收藏
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...【详细内容】
2022-07-05  独钓寒江雪之IT    Tags:Python request   点击:(19)  评论:(0)  加入收藏
什么是python类的多态python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。用比喻的方式理解python类的多态比如,同一个苹果(统一的接口)在孩子的眼里(类实...【详细内容】
2022-07-04  写小说的程序员    Tags:python类   点击:(28)  评论:(0)  加入收藏
站内最新
站内热门
站内头条