README_Albumentations

2023-11-15

一、文档:

GitHub: https://github.com/albumentations-team/albumentations

官方文档:Albumentations Documentation

二、Installation

pip install -U albumentations

三、Keypoints augmentation Example:

1. Import the required libraries

import albumentations as A

import cv2

2. Define an augmentation pipeline.

transform = A.Compose([

    A.RandomCrop(width=330, height=330),

    A.RandomBrightnessContrast(p=0.2),

],keypoint_params=A.KeypointParams(format='xy',label_fields=['class_labels'], remove_invisible =False))

#对图片的操作放在第一个参数的列表中,可支持多种操作,p参数表示进行该操作的概率。

#A.KeypointParams()中,format参数定义ground_truth的坐标点格式,还有“yx”、“xysa”等;label_fields定义ground_truth中标签的名称,此参数是一个列表,可以设置多个标签;remove_invisible参数用来设置是否移除数据增强后超出图片范围的点,默认为True,若为True则不显示不可见的点,若为False则显示不可见的点

3. Read images, keypoints and class_labels

image = cv2.imread("/path/image.jpg")

#image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

keypoints = [

    (264, 203),

    (86, 88),

    (254, 160),

    (193, 103),

    (65, 341),

]

#关键点信息以坐标的形式放入一个列表中,格式与format参数设置的格式同步

class_labels = [

    'left_elbow',

    'right_elbow',

    'left_wrist',

    'right_wrist',

    'right_hip',

]

4. Pass an image and keypoints to the augmentation pipeline and receive augmented images and points.

#对数据进行变换

transformed = transform(image=image, keypoints=keypoints, class_labels=class_labels)  

#读取变换后的数据

transformed_image = transformed['image']

transformed_keypoints = transformed['keypoints']

transformed_class_labels = transformed['class_labels']

四、List of augmentations

1、Spatial-level transforms (空间变换)

(1)、仿射变换

  1. Affine(scale=None, translate_percent=None, translate_px=None, rotate=None, shear=None, interpolation=1, mask_interpolation=0, cval=0, cval_mask=0, mode=0, fit_output=False, always_apply=False, p=0.5) -support keypoints

#仿射变换

该变换包括Translation(移动)、Rotation(旋转)、Scaling(缩放)、Shear(剪切为梯形),其中:

scale参数,表示缩放的比例,支持数字、元组、字典;若为元组或字典,则从多个数字中等概率的取一个值对数据进行对应处理

translate_percent参数,按比例进行移动(xy轴上都进行移动)

translate_px参数,表示移动像素点的距离(xy轴上都进行移动),仅支持整数类型

rotate参数,表示旋转度数(不是弧度),范围为[-360, 360],以图像中心为旋转点

shear参数,表示以度为单位进行剪切,预期值为[-360, 360],合理值范围为[-45, 45],如果是一个数字,则只进行x轴上的剪切;如果是元组(a,b),则分别在x轴与y轴上进行剪切

cval参数,填充新创建的像素时使用的常量值

fit_output参数,是否使变换后的整个输出图像始终包含在图像平面中,默认为False:接受图像平面之外的图像,若为True的话:则只包含在图像平面中

p参数,表示应用变换的概率,默认值:0.5。

  1. Perspective(scale=(0.05, 0.1), keep_size=True, pad_mode=0, pad_val=0, mask_pad_val=0, fit_output=False, interpolation=1, always_apply=False, p=0.5) (support keypoints)

#随机四点透视变换

其中:

scale参数,表示正态分布的标准差,用于对子图像的角与完整图像的角的随机距离进行采样。默认值:(0.05, 0.1),也可自己设置范围[float,float]

keep_size参数,是否在应用透视变换后将图像调整回其原始大小。默认值:真,如果设置为 False,生成的图像可能最终具有不同的形状。

fit_output参数,如果为 True,将调整图像平面大小和位置以在透视变换后仍捕获整个图像,默认值:假。

p参数,应用变换的概率。默认值:0.5

  1. PiecewiseAffine(scale=(0.03, 0.05), nb_rows=4, nb_cols=4, interpolation=1, mask_interpolation=0, cval=0, cval_mask=0, mode='constant', absolute_scale=False, always_apply=False, keypoints_threshold=0.01, p=0.5) (support keypoints)

#局部区域进行仿射变换

  1. ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.1, rotate_limit=45, interpolation=1, border_mode=4, value=None, mask_value=None, shift_limit_x=None, shift_limit_y=None, always_apply=False, p=0.5) (support keypoints)

#随机应用仿射变换:平移、缩放和旋转

其中:

shift_limit 参数,平移操作的长宽限制,默认为 (-0.0625, 0.0625)

scale_limit 参数,缩放操作的范围限制,默认为 (-0.1, 0.1)

rotate_limit 参数,旋转操作的范围限制,默认为(-45,45)

p 参数,应用此变换的概率,默认为0.5

  1. ElasticTransform #图像弹性变形

(2)、裁剪

  1. Crop(x_min=0, y_min=0, x_max=1024, y_max=1024, always_apply=False, p=1.0) (support keypoints)

#裁剪自定义区域

x_min参数:左上角x坐标

y_min参数:左上角y坐标

x_max参数:右下角x坐标

y_max参数:右下角y坐标

  1. CenterCrop(height, width, always_apply=False, p=1.0) (support keypoints)

#裁剪中心区域

height参数:裁剪的高度

width参数:裁剪的宽度

p参数:执行此操作的概率,默认为1

  1. CropAndPad(px=None, percent=None, pad_mode=0, pad_cval=0, pad_cval_mask=0, keep_size=True, sample_independently=True, interpolation=1, always_apply=False, p=1.0) (support keypoints)

#裁剪/填充

px参数,要裁剪/填充的像素数,负数为裁剪,正数为填充;

percent参数,要裁剪/填充的比例,同样负数为裁剪,正数为填充,范围为[-1,1]

keep_size 参数,表示是否保持输入图像的大小,默认为True

  1. CropNonEmptyMaskIfExists (height, width, ignore_values=None, ignore_channels=None, always_apply=False, p=1.0) (support keypoints)

#如果Mask非空,则使用掩码裁剪区域,否则进行随机裁剪

height参数:高的大小(以像素为单位)

width参数:宽的大小(以像素为单位)

  1. RandomCrop (height, width, always_apply=False, p=1.0) (support keypoints)

#根据设置的长宽随机剪裁

  1. RandomCropNearBBox(max_part_shift=(0.3,0.3), cropping_box_key='cropping_bbox', always_apply=False, p=1.0) (support keypoints)

#随机剪裁矩形框

  1. RandomResizedCrop(height, width, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=1, always_apply=False, p=1.0) (support keypoints)

#随机裁剪并调整大小为heightwidth

  1. RandomSizedCrop(min_max_height, height, width, w2h_ratio=1.0, interpolation=1, always_apply=False, p=1.0)(support keypoints)

#随机剪裁并缩放到定义大小

min_max_height参数:表示裁剪高的大小限制,格式为[intint]

height参数:剪裁并调整大小后的高

width参数:参数:剪裁并调整大小后的宽

w2h_ratio参数:剪裁比例,默认为1.0

p参数:表示应用此变换的概率,默认为1.0

(3)、翻转

  1. Flip.apply (self, img, d=0, **params) (support keypoints)

#翻转,包括水平翻转、垂直翻转、水平垂直同时进行翻转

d参数:0表示进行垂直翻转,1表示进行水平翻转,-1表示同时进行水平与垂直翻转

p参数:表示应用此变换的概率,默认为0.5

  1. HorizontalFlip (support keypoints)

#水平翻转

p参数:表示应用此变换的概率,默认为0.5

  1. VerticalFlip (support keypoints)

#垂直翻转

p参数:表示应用此变换的概率,默认为0.5

(4)、旋转

  1. RandomRotate90 (support keypoints)

#随机旋转900次或多次

p参数:表示应用此变换的概率,默认为0.5

  1. Rotate (limit=90, interpolation=1, border_mode=4, value=None, mask_value=None, always_apply=False, p=0.5)(support keypoints)

#从定义的范围中随机旋转一个角度

limit参数:表示旋转的范围限制,范围为(-limit,limit),默认为(-90,90

p参数:表示应用此变换的概率,默认为0.5

  1. SafeRotate(limit=90, interpolation=1, border_mode=4, value=None, mask_value=None, always_apply=False, p=0.5)(support keypoints)

#从定义的范围中随机旋转一个角度

(5)、缩放

  1. LongestMaxSize(max_size=1024, interpolation=1, always_apply=False, p=1) (support keypoints)

#重新缩放图像,使最大边等于 max_size,保持初始图像的纵横比。

  1. RandomScale(scale_limit=0.1, interpolation=1, always_apply=False, p=0.5) (support keypoints)

#随机缩放

scale_limit参数:表示缩放范围,为(1-scale_limit,1+scale_limit,默认为(0.9,1.1

p参数:表示应用此变换的概率,默认为0.5

  1. Resize (height, width, interpolation=1, always_apply=False, p=1)(support keypoints)

#调整为给定的大小

  1. SmallestMaxSize(max_size=1024, interpolation=1, always_apply=False, p=1)(support keypoints)

#缩放图像,将最小边等于max_size

(6)、填充

  1. PadIfNeeded(min_height=1024, min_width=1024, pad_height_divisor=None, pad_width_divisor=None, position=<PositionType.CENTER: 'center'>, border_mode=4, value=None, mask_value=None, always_apply=False, p=1.0) (support keypoints)

#如果图片大小小于需要的大小,可以对图片进行填充

(7)、其他

  1. Lambda(image=None, mask=None, keypoint=None, bbox=None, name=None, always_apply=False, p=1.0) (support keypoints)

#可自定义的变换函数

image参数:图像变换函数

mask参数:掩码变换函数

keypoint参数:关键点变换函数

bbox参数:边框变换函数

always_apply参数:是否这个变换总是应用

p参数:应用此变换的概率,默认为1.0

  1. NoOp (support keypoints) #什么也不做
  2. Transpose (support keypoints)

#转置:交换行与列

p参数:表示应用此变换的概率,默认为0.5

(8)、不支持关键点的变换

  1. CoarseDropout
  2. GridDistortion
  3. GridDropout
  4. MaskDropout
  5. OpticalDistortion
  6. RandomGridShuffle
  7. RandomSizedBBoxSafeCrop

2、Pixel-level transforms (support any additional targets) (像素变换)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

README_Albumentations 的相关文章

随机推荐

  • cocos2d-x实例学习(8)之CCJumpTo和CCJumpBy

    CCJumpTo和CCJumpBy概念 CCJumpTo 把某一CCSprite跳到某一位置 CCJumpBy 把某一CCSprite跳起一段距离 它有一个方法reverse 它让对象按原路径返回 CCJumpTo和CCJumpBy示例 创
  • react中context的使用详解

    先说一说context是干什么的 跨层级通信 一般组件通信的方法都是通过props来传递 不过这种方法当有了第三级或往后孙孙组件的时候就显得比较繁琐 以及不好修改 这时我们可以使用context来管理这些数据 不管多少层级都能让想要使用这些
  • 线程函数不能为类成员函数_GPU编程2CUDA核函数和线程配置

    CUDA核函数 在GPU上执行的函数称为CUDA核函数 Kernel Function 核函数会被GPU上多个线程执行 我们可以在核函数中获取当前线程的ID CUDA核函数的定义 global void addKernel int c co
  • 堆栈桢的生成原理

    摘要 那么Windbg分析Dump时 会如何推理堆栈过程呢 如果每个函数都是有标准的push ebp 那么按照ebp递推就可以了 否这就只能用其他方法分析 比如看看堆栈里某个地址是不是函数返回地址 该地址属于某个模块的代码段 这样就可以确定
  • mac系统下面调用brew报错core_ext/kernel_require.rb:55:in `require': cannot load such file

    mac系统下面调用brew报错 如下所示 usr local Homebrew Library Homebrew vendor portable ruby 2 3 7 lib ruby 2 3 0 rubygems core ext ker
  • [598]Windows版InfluxDB及相关软件安装与配置

    公司在做一个工业监控系统 虽然数据采集点并不算多但是数据量积累下来也非常大 使用mysql数据库进行数据存储和查询时很慢 所以让我调研一下时序数据库 通过调研和了解时序数据库在海量数据的读取和写出都比关系型数据库和NoSql快很多 有人做过
  • 如何向 Pandas DataFrame 添加行

    您可以使用df loc 函数在Pandas DataFrame的末尾添加一行 add row to end of DataFrame df loc len df index value1 value2 value3 您可以使用df appe
  • 计算机网络基本概念相关习题(二)

    一 单项选择题 1 不是对网络模型进行分层的目标 A 提供标准语言 B 定义功能执行的方法 C 定义标准界面 D 增加功能之间的独立性 2 将用户数据分成一个个数据块传输的优点不包括 A 减少延迟时间 B 提高错误控制效率 C 使多个应用更
  • 毕业答辩模板

    毕业答辩准备工作 一 首先是开场白 各位老师 上午好 我叫 是 级 班的学生 我的论文题目是 论文是在 导师的悉心指点下完成的 在这里我向我的导师表示深深的谢意 向各位老师不辞辛苦参加我的论文答辩表示衷心的感谢 并对三年来我有机会聆听教诲的
  • 三层架构、MVC、前后分离的一些知识

    三层架构 MVC 前后分离的一些知识 三层架构模型 MVC模式 三层架构与 MVC 架构区别 前后端分离开发时的变化 一个前后端分离项目的分层 前端 MVVM 后端 Service层 Model层 Mapper映射 BLL业务逻辑层 DAL
  • FreeRTOS笔记(十)中断

    中断 当CPU在执行某一事件A时 发生另外一个更重要紧急的事件B请求CPU去处理 产生了中断 于是CPU暂时中断当前正在执行的事件A任务而对对事件B进行处理 CPU处理完事件B后再返回之前中断的位置继续执行原来的事件A 这一过程统称为中断
  • 第四章 数据的预处理与特征构建(续)

    申请评分卡模型 数据的预处理与特征构建 续 课程简介 逻辑回归模型的特征需要是数值型 因此类别型变量不能直接放入模型中去 需要对其进行编码 此外 为了获取评分模型的稳定性 建模时需要对数值型特征做分箱的处理 最终在带入模型之前 我们还需要对
  • git 拉取分支到本地文件夹!

    前言 我现在需要改项目 我把项目来下来了却发现只需要修改某个分支的项目 所以只需要拉下项目的某个分支就行了 废话不多说直接开始教程 目录 1 创建本地仓库 2 与远程仓库建立联系 3 确定你需要拉的分支名 4 本地创建的分支与远程分支相互连
  • 【java.lang.ref】当WeakReference的referent重写了finalize方法时会发生什么

    问题 question 当WeakReference的referent重写了finalize方法时会发生什么 测试代码 JVM中是存在这样的情况的 一个Java对象 重写了finalize方法 在使用的过程中又被SoftReference或
  • 阿里云服务器搭建FRP实现内网穿透-转发

    前言 1 什么是frp frp是一个专注于内网穿透的高性能的反向代理应用 支持TCP UDP HTTP HTTPS等多种协议 且支持P2P通信 可以将内网服务以安全 便捷的方式通过具有公网IP节点的中专暴露到公网 2 演示环境 一 frp软
  • 火狐插件之(1) 用ScribeFire写csdn博客(很棒)

    ScribeFire 是火狐插件 简单快速的写博客 支持CSDN博客 关键是以下地址 http blog csdn net whyacinth services metablogapi aspx 将红色部分换成你的账号 自动检测回失败 手动
  • 内存卡永久删除的文件如何恢复?

    内存卡是和机械硬盘 U盘一个性质的数据存储工具 可以说是 同行 而作用更是不必多说 就是存储文件数据 谈谈今天的主题 万一真出现了这种情况 那存储我们电脑数据的内存卡永久删除的文件怎么恢复 内存卡永久删除的文件怎么恢复 内存卡永久删除的文件
  • gitee中git不能使用http协议提交项目

    git使用https协议提交项目的时候出现以下错误 error RPC failed curl 56 GnuTLS recv error 110 The TLS connection was non properly terminated
  • mixins详解

    实现一个日志功能 组件在挂载前打印 Component will mount 组件挂载后打印 Component did mount 不能忍受的写法 var AComponent React createClass componentWil
  • README_Albumentations

    一 文档 GitHub https github com albumentations team albumentations 官方文档 Albumentations Documentation 二 Installation pip ins