英语 语义分割_Padlex数据处理-语义分割-分段变换,PaddleX,segtransforms
Compose
類將圖像預處理/增強操作進行組合。
0. Compose類
paddlex.seg.transforms.Compose(transforms)
根據數據預處理/數據增強列表對輸入數據進行操作。
使用示例
參數
transforms (list)
: 數據預處理/數據增強列表。
1. RandomHorizontalFlip類 隨機水平翻轉
paddlex.seg.transforms.RandomHorizontalFlip(prob=0.5)
以一定的概率對圖像進行水平翻轉,模型訓練時的數據增強操作。
參數
prob (float)
: 隨機水平翻轉的概率。默認值為0.5。
2. RandomVerticalFlip類 隨機垂直翻轉
paddlex.seg.transforms.RandomVerticalFlip(prob=0.1)
以一定的概率對圖像進行垂直翻轉,模型訓練時的數據增強操作。
參數
prob (float)
: 隨機垂直翻轉的概率。默認值為0.1。
3. Resize類 調整圖像大小
paddlex.seg.transforms.Resize(target_size, interp='LINEAR')
調整圖像大小(
resize
)。
當目標大小(
target_size
)類型為
int
時,根據插值方式, 將圖像
resize
為
[target_size, target_size]
。
當目標大小(
target_size
)類型為
list
或
tuple
時,根據插值方式, 將圖像
resize
為
target_size
,
target_size
的輸入應為
[w, h]
或
(w, h)
。
參數
target_size (int|list|tuple)
: 目標大小
interp (str)
:
resize
的插值方式,與
opencv
的插值方式對應, 可選的值為
[‘NEAREST’, ‘LINEAR’, ‘CUBIC’, ‘AREA’, ‘LANCZOS4’]
,默認為
”LINEAR”
。
4. ResizeByLong類
paddlex.seg.transforms.ResizeByLong(long_size)
對圖像長邊
resize
到固定值,短邊按比例進行縮放。
參數
long_size (int)
:
resize
后圖像的長邊大小。
5. ResizeRangeScaling類
paddlex.seg.transforms.ResizeRangeScaling(min_value=400, max_value=600)
對圖像長邊隨機
resize
到指定范圍內,短邊按比例進行縮放,模型訓練時的數據增強操作。
參數
min_value (int)
: 圖像長邊
resize
后的最小值。默認值400。
max_value (int)
: 圖像長邊
resize
后的最大值。默認值600。
6. ResizeStepScaling類
paddlex.seg.transforms.ResizeStepScaling(min_scale_factor=0.75, max_scale_factor=1.25, scale_step_size=0.25)
對圖像按照某一個比例
resize
,這個比例以
scale_step_size
為步長,在
[min_scale_factor, max_scale_factor]
隨機變動,模型訓練時的數據增強操作。
參數
min_scale_factor(float)
,
resize
最小尺度。默認值0.75。
max_scale_factor (float)
,
resize
最大尺度。默認值1.25。
scale_step_size (float)
,
resize
尺度范圍間隔。默認值0.25。
7. Normalize類 對圖像進行標準化
paddlex.seg.transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
對圖像進行標準化。
1.圖像像素歸一化到區間
[0.0, 1.0]
。
2.對圖像進行減均值除以標準差操作。
參數
mean (list)
: 圖像數據集的均值。默認值
[0.5, 0.5, 0.5]
。
std (list)
: 圖像數據集的標準差。默認值
[0.5, 0.5, 0.5]
。
8. Padding類
paddlex.seg.transforms.Padding(target_size, im_padding_value=[127.5, 127.5, 127.5], label_padding_value=255)
對圖像或標注圖像進行
padding
,
padding
方向為右和下。根據提供的值對圖像或標注圖像進行
padding
操作。
參數
target_size (int|list|tuple)
:
padding
后圖像的大小。
im_padding_value (list)
: 圖像
padding
的值。默認為
[127.5, 127.5, 127.5]
。
label_padding_value (int)
: 標注圖像
padding
的值。默認值為255(僅在訓練時需要設定該參數)。
9. RandomPaddingCrop類 隨機裁剪
paddlex.seg.transforms.RandomPaddingCrop(crop_size=512, im_padding_value=[127.5, 127.5, 127.5], label_padding_value=255)
對圖像和標注圖進行隨機裁剪,當所需要的裁剪尺寸大于原圖時,則進行
padding
操作,模型訓練時的數據增強操作。
參數
crop_size(int|list|tuple)
: 裁剪圖像大小。默認為512。
im_padding_value (list)
: 圖像
padding
的值。默認為
[127.5, 127.5, 127.5]
。
label_padding_value (int)
: 標注圖像
padding
的值。默認值為255。
10. RandomBlur類
paddlex.seg.transforms.RandomBlur(prob=0.1)
以一定的概率對圖像進行高斯模糊,模型訓練時的數據增強操作。
參數
prob (float)
: 圖像模糊概率。默認為0.1。
11. RandomRotate類
paddlex.seg.transforms.RandomRotate(rotate_range=15, im_padding_value=[127.5, 127.5, 127.5], label_padding_value=255)
對圖像進行隨機旋轉, 模型訓練時的數據增強操作。
在旋轉區間
[-rotate_range, rotate_range]
內,對圖像進行隨機旋轉,當存在標注圖像時,同步進行, 并對旋轉后的圖像和標注圖像進行相應的
padding
。
參數
rotate_range (float)
: 最大旋轉角度。默認為15度。
im_padding_value (list)
: 圖像
padding
的值。默認為
[127.5, 127.5, 127.5]
。
label_padding_value (int)
: 標注圖像
padding
的值。默認為255。
12. RandomScaleAspect類
paddlex.seg.transforms.RandomScaleAspect(min_scale=0.5, aspect_ratio=0.33)
裁剪并
resize
回原始尺寸的圖像和標注圖像,模型訓練時的數據增強操作。
按照一定的面積比和寬高比對圖像進行裁剪,并
reszie
回原始圖像的圖像,當存在標注圖時,同步進行。
參數
min_scale (float)
:裁取圖像占原始圖像的面積比,取值
[0,1]
,為0時則返回原圖。默認為0.5。
aspect_ratio (float)
: 裁取圖像的寬高比范圍,非負值,為0時返回原圖。默認為0.33。
13. RandomDistort類
paddlex.seg.transforms.RandomDistort(brightness_range=0.5, brightness_prob=0.5, contrast_range=0.5, contrast_prob=0.5, saturation_range=0.5, saturation_prob=0.5, hue_range=18, hue_prob=0.5)
以一定的概率對圖像進行隨機像素內容變換,模型訓練時的數據增強操作。
1.對變換的操作順序進行隨機化操作。
2.按照1中的順序以一定的概率對圖像在范圍
[-range, range]
內進行隨機像素內容變換。
【注意】該數據增強必須在數據增強
Normalize
之前使用。
參數
brightness_range (float)
: 明亮度因子的范圍。默認為0.5。
brightness_prob(float)
: 隨機調整明亮度的概率。默認為0.5。
contrast_range (float)
: 對比度因子的范圍。默認為0.5。
contrast_prob (float)
: 隨機調整對比度的概率。默認為0.5。
saturation_range (float)
: 飽和度因子的范圍。默認為0.5。
saturation_prob (float)
: 隨機調整飽和度的概率。默認為0.5。
hue_range (int)
: 色調因子的范圍。默認為18。
hue_prob (float)
: 隨機調整色調的概率。默認為0.5。
14. ComposedSegTransforms類
paddlex.det.transforms.ComposedSegTransforms(mode, train_crop_shape=[769, 769], mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
語義分割
DeepLab
和
UNet
模型中已經組合好的數據處理流程,開發者可以直接使用
ComposedSegTransforms
,簡化手動組合
transforms
的過程, 該類中已經包含了
RandomHorizontalFlip
、
ResizeStepScaling
、
RandomPaddingCrop
3種數據增強方式,你仍可以通過
add_augmenters函數接口
添加新的數據增強方式。
ComposedSegTransforms
共包括以下幾個步驟:
訓練階段:
隨機對圖像以0.5的概率水平翻轉
按不同的比例隨機
Resize
原圖
從原圖中隨機
crop
出大小為
train_crop_size
大小的子圖,如若
crop
出來的圖小于
train_crop_size
,則會將圖
padding
到對應大小
圖像歸一化
預測階段:
圖像歸一化
參數
mode (str)
:
Transforms
所處的階段,包括
‘train’
,
‘eval’
或
‘test’
train_crop_size (list)
: 訓練過程中隨機
Crop
和
Resize
后(驗證或預測過程中不需配置該參數,自動使用原圖大小),輸入到模型中圖像的大小(與原圖大小無關,根據上述幾個步驟,會將原圖處理成相應大小輸入給模型訓練), 默認
[769, 769]
。
mean (list)
: 圖像均值, 默認為
[0.485, 0.456, 0.406]
。
std (list)
: 圖像方差,默認為
[0.229, 0.224, 0.225]
。
添加數據增強方式
ComposedSegTransforms.add_augmenters(augmenters)
參數
augmenters(list)
: 數據增強方式列表
使用示例
import paddlex as pdx
from paddlex.seg import transforms
train_transforms = transforms.ComposedSegTransforms(mode='train', train_crop_size=[512, 512])
eval_transforms = transforms.ComposedSegTransforms(mode='eval')
# 添加數據增強
import imgaug.augmenters as iaa
train_transforms.add_augmenters([
transforms.RandomDistort(),
iaa.blur.GaussianBlur(sigma=(0.0, 3.0))
])
上面代碼等價于
import paddlex as pdx
from paddlex.det import transforms
train_transforms = transforms.Composed([
transforms.RandomDistort(),
iaa.blur.GaussianBlur(sigma=(0.0, 3.0)),
# 上面2行為通過add_augmenters額外添加的數據增強方式
transforms.RandomHorizontalFlip(prob=0.5),
transforms.ResizeStepScaling(),
transforms.PaddingCrop(crop_size=[512, 512]),
transforms.Normalize()
])
eval_transforms = transforms.Composed([
transforms.Normalize()
])
總結
以上是生活随笔為你收集整理的英语 语义分割_Padlex数据处理-语义分割-分段变换,PaddleX,segtransforms的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yshon对讲机如何调频率_99%的人都
- 下一篇: 用python实现todolist_So