没有源发布图像

sha*_*nuo 2 opencv conv-neural-network keras tensorflow machine-learning-model

我有超过一百万张我想用作训练数据的图像。如何在不损害安全性的情况下免费提供这些数据?

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

换句话说,如何安全地开源图像?


例如,此代码生成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)
Run Code Online (Sandbox Code Playgroud)

一旦知道黑客无法使用数据并创建相同的映像,便可以共享数组x。

jla*_*rcy 6

如果您打算发布开源图片,那么一个很好的开始就是了解WikiCommons的工作方式。他们曾经并且必须面对许多这类挑战,那里有很多东西要学习。

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

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

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

无论如何,如果您在没有护理的情况下提供不适合开源的敏感材料,那么您可能会给自己和其他人带来麻烦。这不是一个好的选择。

我的建议,

  • 如果您的图片确实适合开放源代码政策,请以此为准,并且不必担心黑客,他们也是客户。
  • 如果您的图片很敏感,请不要将其用作开放源代码。取而代之的是提供一个具有一层安全性的框架并实施您必须考虑的必需法规(ToS,IP,版权,GDPR)。