用于tensorflow的图像增强库。所有操作都实现为纯tensorflow图操作。

tfAugmentor的Python项目详细描述


仍在建设中,即将推出

t增强器

用于tensorflow的图像增强库。所有操作都实现为纯tensorflow图操作。因此,tfaugmentor可以很容易地与任何tensorflow图(如tf.data)组合,用于实时数据增强。 对于cosurse,您还可以离线使用它来生成增强的数据集。

安装

tfaugment是用python编写的,可以通过以下方式轻松安装:

pipinstalltfAugmentor

要正确运行tfaugment,还应安装以下库:

  • Tensorflow(在TF 1.12下开发)
  • numpy(根据numpy 1.15开发)

快速启动

tfaugmentor的目标是将图像增强作为一个tensorflow图来实现,以便与其他tensorflow组件(如tf.data)无缝地结合使用。 但你也可以把它单独用作离线增强工具。

首先,实例化一个Augmentor对象并向其传递一个张量字典。这些张量应该具有相同的[batch, height, width, channels]的四维形状。

为了保持标签/分段映射的一致性,应该将相应的dict键作为列表传递给label

importtfAugmentorastfatensor_list={'images':image_tensor,'segmentation_mask':mask_tensor}aug1=tfa.Augmentor(tensor_list,label=['segmentation_mask'])

添加增强并获取输出张量:

aug1.flip_left_right(probability=0.5)# apply left right flip with probability 0.5out1=aug1.out

可以合并具有相同结构的多个增强函数,这意味着您可以并行多个管道

aug2=tfa.Augmentor(tensor_list,label=['segmentation_mask'])# another augmentor with the same input as aug1aug2.flip_up_down(probability=0.5)# apply up down flip this timeaug3=tfa.Augmentor(tensor_list,label=['segmentation_mask'])aug3.elastic_deform(probability=0.5,strength=1,scale=30)# elastic deformationout=aug1.merge([aug2,aug3])

tf.data

的示例

使用tf.data和tfaugment导入数据的示例:

ds=tf.data.TFRecordDataset([...])ds=ds.map(extract_fn)ds=ds.shuffle(buffer_size=500)ds=ds.batch(batch_size)iterator=dataset.make_one_shot_iterator()next_element=iterator.get_next()defextract_fn(sample):# parse the tfrecord example of your dataset....# assume the dataset contains three tensors: image, weight_map, seg_mask# instantiate an Augmentorinput_list={'img':image,'weight':weight_map,'mask':seg_mask}a=tfa.Augmentor(input_list,label=['segmentation_mask'])a.flip_left_right(probability=0.5)# apply left right flipa.random_rotate(probability=0.6)# apply random rotationa.elastic_deform(probability=0.2,strength=200,scale=20)# apply elastic deformation# dictionary of the augmented images, which has the same keys as input_listaugmented=a.out# return tensors in a form you needreturnaugmented['img'],augmented['weight'],augmented['mask']

主要功能

镜像

a.flip_left_right(probability)# flip the image left right  a.flip_up_down(probability)# flip the image up down

旋转

a.rotate90(probability)# rotate by 90 degree clockwisea.rotate180(probability)# rotate by 180 degree clockwisea.rotate270(probability)# rotate by 270 degree clockwisea.rotate(probability,angle)# rotate by *angel* degree clockwisea.random_rotate(probability)# randomly rotate the image

裁剪并调整大小

a.random_crop_resize(probability,scale_range=(0.5,0.8))# randomly crop a sub-image and resize to the same size of the original imagea.crop(probability,size)# randomly crop a sub-image of a certain size

弹性变形

a.elastic_deform(probability, strength, scale)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓活动中添加地图?   Android上的java Sqlite:如何创建Sqlite dist db函数,以便在应用程序中使用lat、long进行距离计算   java Netbeans和Hibernate,导入pojo和hbm。xml   在spring引导应用程序中使用@bean的java声明bean   java Apache POI异常   java我可以为不同接口中的不同方法使用相同的名称吗?   java JavaFX如何从其他阶段控制器访问控制器?   java ActivityResultLauncher为空   java这两个通用函数之间有什么区别?   java在AEM 6.2中,自定义注释组件不适用于发布实例,但适用于作者实例   java HTTP 500作为使用Spring控制器对HTTP Post请求的响应   JavaGmailapi在Android上获取消息   如何使用绝对路径从Java运行Python文件?   java NPhard算法