Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 在没有图像源的情况下发布图像_Opencv_Tensorflow_Keras_Conv Neural Network_Machine Learning Model - Fatal编程技术网

Opencv 在没有图像源的情况下发布图像

Opencv 在没有图像源的情况下发布图像,opencv,tensorflow,keras,conv-neural-network,machine-learning-model,Opencv,Tensorflow,Keras,Conv Neural Network,Machine Learning Model,我有超过一百万张图片,我想用它们作为训练数据。如何在不影响安全性的情况下免费提供这些数据 我希望用户能够快速地将其用于培训目的,而不给黑客从开源数据重建图像的机会。同时,我不希望培训质量受到任何影响 换句话说,如何安全地打开源代码映像 例如,此代码生成numpy数组。在这种情况下,我只是想让从ndarray“x”重建原始图像变得非常困难 from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_

我有超过一百万张图片,我想用它们作为训练数据。如何在不影响安全性的情况下免费提供这些数据

我希望用户能够快速地将其用于培训目的,而不给黑客从开源数据重建图像的机会。同时,我不希望培训质量受到任何影响

换句话说,如何安全地打开源代码映像


例如,此代码生成numpy数组。在这种情况下,我只是想让从ndarray“x”重建原始图像变得非常困难

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
i = load_img('some_image.jpg' )
x = img_to_array(i)
x = x.reshape((1,) + x.shape)

一旦我知道黑客无法使用数据并创建相同的图像,我就可以共享阵列x。

如果你打算发布开源图片,那么了解其工作原理将是一个良好的开端。他们曾经也必须面对许多这样的挑战,从中可以学到很多东西

如果您的观众需要提供完整的图片以使他们的模型工作,那么无论您如何试图混淆包含数据的数组。有足够时间和创造力的聪明人将能够重建原始图片。这不是一个可行的解决方案,它只提供了一种虚假的安全感

如果你选择了一种破坏性的方法,不是为实际的图片服务,而是为它提供一些摘要/散列/指纹,那么你可能会降低重建原始图片的风险(请注意,有些非常聪明的人具有很强的加密技能)。但是,你的观众将无法从图片本身中学习,因此你可能无法实现你的目标

破坏性较小,可能不符合您的要求:增加噪音。它不会阻止敏感材料的泄露(人类的眼睛和大脑在某种程度上有助于分类),它是一种众所周知的技术。这也不是一个好的解决方案

无论如何,如果你不小心提供不适合开源的敏感材料,那么你可能会让你自己和其他人陷入麻烦。这不是一个好的选择

我的建议

  • 如果你的图片真的符合开源政策,那么就这样服务它们,不要担心黑客,它们也是客户
  • 如果您的图片是敏感的,那么不要将其作为开源。相反,提供一个具有安全层的框架,并实施您必须考虑的规定(ToS、IP、版权等)

如果您打算发布开源图片,了解其工作原理将是一个良好的开端。他们曾经也必须面对许多这样的挑战,从中可以学到很多东西

如果您的观众需要提供完整的图片以使他们的模型工作,那么无论您如何试图混淆包含数据的数组。有足够时间和创造力的聪明人将能够重建原始图片。这不是一个可行的解决方案,它只提供了一种虚假的安全感

如果你选择了一种破坏性的方法,不是为实际的图片服务,而是为它提供一些摘要/散列/指纹,那么你可能会降低重建原始图片的风险(请注意,有些非常聪明的人具有很强的加密技能)。但是,你的观众将无法从图片本身中学习,因此你可能无法实现你的目标

破坏性较小,可能不符合您的要求:增加噪音。它不会阻止敏感材料的泄露(人类的眼睛和大脑在某种程度上有助于分类),它是一种众所周知的技术。这也不是一个好的解决方案

无论如何,如果你不小心提供不适合开源的敏感材料,那么你可能会让你自己和其他人陷入麻烦。这不是一个好的选择

我的建议

  • 如果你的图片真的符合开源政策,那么就这样服务它们,不要担心黑客,它们也是客户
  • 如果您的图片是敏感的,那么不要将其作为开源。相反,提供一个具有安全层的框架,并实施您必须考虑的规定(ToS、IP、版权等)

所有机器学习算法都会获取真实图像并将图像转换为张量,然后分批处理(一次处理多个图像)

您可以选择以下几个选项:

  • 你可以与你的队友分享你的照片,并依靠信任
  • 您可以以某种方式将图像模糊化为一堆文件,也可以创建算法将它们转换为numpy数组(或张量),模糊化它们,并提供将它们还原回来而不会丢失的过程
但在所有这些情况下,非通缉犯都能以某种方式猜测你的程序/混淆

理想的做法是从您的图像中创建机器学习模型(如VGG、ResNet、Inception),然后您可以分发从图像中学习到计划内容的模型

总之,在ML中,您需要图像来从中学习一些东西,而不是图像本身

隐私确实是一个问题,我们可以从这篇关于版权如何导致公共数据集衰退的文章中看到这一点

这个问题没有很多解决方案,因为隐私真的很重要。然而,这一想法可能令人鼓舞

如果您不使用GANs,很难判断您需要进行哪些正确的转换才能避免隐私政策方面的担忧


仅仅尝试翻转图像、缩放图像、删除元数据、规范化图像或变换一个像素是不够的。您需要将它们与原始图像区分开来。

所有机器学习算法都会获取真实图像,并将图像转换为张量,然后分批处理(一次处理多个图像)

您可以选择以下几个选项:

  • 你可以与你的队友分享你的照片,并依靠信任
  • 您可以以某种方式将图像混淆为一堆文件,或者