数据扩充基础 python
Data augmentation basic python
我是 python 编程的初学者,当我遇到以下代码时,正在学习如何从 YouTube 编写项目代码。
完整代码在这里:https://github.com/nikhilroxtomar/Retina-Blood-Vessel-Segmentation-using-UNET-in-TensorFlow/blob/main/data.py and the YouTube where it appears is at 24:30 - https://youtu.be/tpbWZVY2dng?t=1470 )
from albumentations import HorizontalFlip
def augment_data(images, masks, save_path, augment=True):
for idx, (x, y) in tqdm(enumerate(zip(images, masks)), total=len(images)):
""" Extracting names """
name = x.split("/")[-1].split(".")[0]
""" Reading image and mask """
x = cv2.imread(x, cv2.IMREAD_COLOR)
y = imageio.mimread(y)[0]
if augment == True:
aug = HorizontalFlip(p=1.0)
augmented = aug(image=x, mask=y)
x1 = augmented["image"]
y1 = augmented["mask"]
这部分我没看懂
if augment == True:
aug = HorizontalFlip(p=1.0)
augmented = aug(image=x, mask=y)
x1 = augmented["image"]
y1 = augmented["mask"]
如何使用 aug 获取图像的输入参数? augmented 是作为字典使用的吗?你能解释一下怎么做吗?
aug
是赋值给函数对象的变量
方括号表示对象实现了__getitem__()
Python魔法方法。它可以是一个字典,但不需要是
aug
是 albumentations.augmentations.transforms.HorizontalFlip
class
的实例
然后如果你查看 the source code 你会发现它继承自
albumentations.core.transforms_interface.DualTransform
class which looking at the source code inherits from BasicTransform
class.
查看 BasicTransform
class 您可以看到它实现了 __call__()
方法。它需要可变数量的关键字参数 **kwargs
并且经过一些处理 returns kwargs
(即当您调用 aug()
时)。 kwargs
是带有您传递的参数的字典。在您的情况下,键是 image
和 mask
.
作为旁注,而不是 if augment == True:
它应该只是 if augment:
我是 python 编程的初学者,当我遇到以下代码时,正在学习如何从 YouTube 编写项目代码。
完整代码在这里:https://github.com/nikhilroxtomar/Retina-Blood-Vessel-Segmentation-using-UNET-in-TensorFlow/blob/main/data.py and the YouTube where it appears is at 24:30 - https://youtu.be/tpbWZVY2dng?t=1470 )
from albumentations import HorizontalFlip
def augment_data(images, masks, save_path, augment=True):
for idx, (x, y) in tqdm(enumerate(zip(images, masks)), total=len(images)):
""" Extracting names """
name = x.split("/")[-1].split(".")[0]
""" Reading image and mask """
x = cv2.imread(x, cv2.IMREAD_COLOR)
y = imageio.mimread(y)[0]
if augment == True:
aug = HorizontalFlip(p=1.0)
augmented = aug(image=x, mask=y)
x1 = augmented["image"]
y1 = augmented["mask"]
这部分我没看懂
if augment == True:
aug = HorizontalFlip(p=1.0)
augmented = aug(image=x, mask=y)
x1 = augmented["image"]
y1 = augmented["mask"]
如何使用 aug 获取图像的输入参数? augmented 是作为字典使用的吗?你能解释一下怎么做吗?
aug
是赋值给函数对象的变量
方括号表示对象实现了__getitem__()
Python魔法方法。它可以是一个字典,但不需要是
aug
是 albumentations.augmentations.transforms.HorizontalFlip
class
然后如果你查看 the source code 你会发现它继承自
albumentations.core.transforms_interface.DualTransform
class which looking at the source code inherits from BasicTransform
class.
查看 BasicTransform
class 您可以看到它实现了 __call__()
方法。它需要可变数量的关键字参数 **kwargs
并且经过一些处理 returns kwargs
(即当您调用 aug()
时)。 kwargs
是带有您传递的参数的字典。在您的情况下,键是 image
和 mask
.
作为旁注,而不是 if augment == True:
它应该只是 if augment: