tensorflow - 如何在 tensorflow tf.data.Dataset 中使用 cv2 图像增强功能?
问题描述
我tf.data.Dataset
用来创建我的数据集并使用 keras 训练 CNN。我需要在图像上应用蒙版,蒙版取决于图像的形状,没有预定义的像素坐标。
在网上寻找答案时,我发现在 TensorFlow 中有两种访问图像形状的方法(在训练时):
使用急切执行(在我的情况下默认情况下未启用,我使用的是 tf v 12.0)
使用会话
我不想使用急切执行,因为它会减慢训练速度,并且不能使用会话,因为我使用 Keras 训练和测试 CNN(我将数据提供给model.train()
使用 的迭代器tf.data.Dataset
)。
结果,我无法知道图像的形状,因此无法访问特定像素以进行数据增强。
我使用应用掩码的 OpenCV (cv2) 编写了一个函数。有没有办法将它与 TensorFlow 数据管道集成?
编辑:我找到了解决方案。我使用tf.py_func来包装 python 函数
解决方案
注意:由于您需要图像增强,我想提供一些有关各种图像增强库的信息。这不会向您展示如何将 OpenCV 函数添加到您的 tfdata 管道中。但是,如果您的要求足够标准,您可以使用以下之一:
tf.keras.preprocessing.image.ImageDataGenerator
imaug
albumentations
Python中的数据增强
包: 库: url:Python库
albumentations
externalalbumentations
包::
imaug
星:
库:external
url:Pythonimaug
库包: 库: url:Pyhon - TensorFlow库
tf.keras.preprocessing.image.ImageDataGenerator
externalImageDataGenerator
例子
示例/使用
albumentations
。示例/使用
imaug
。- url:深度学习的数据增强 :star::page_facing_up::heavy_check_mark: 很棒的文章
- url:python 中的数据增强技术
示例/使用
tf.keras.preprocessing.image.ImageDataGenerator
。
推荐阅读
- python - DLL 加载失败:找不到指定的模块。视觉工作室代码
- filepond - 如何在同一页面上设置多个 FilePond 文件输入元素?
- c# - 为什么 ConcurrentDictionary 的第一次访问时间比后续访问时间长得多?
- excel - 按完全匹配过滤单元格
- java - 获取模型尚未初始化。请先 buildModel 进行改造 api 调用
- reactjs - 反应将新项目添加到表中
- python - Python Kivy:如何全局存储文本输入的值?
- ios - 如何在字典中获取结构的值
- ipfs - 通过前导位查找 IPFS 哈希
- javascript - 如何在不重新加载页面的情况下刷新 div?