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