【问题标题】:Coremltools: How to subtract mean value of image from input image?Coremltools:如何从输入图像中减去图像的平均值?
【发布时间】:2019-04-02 01:45:50
【问题描述】:

我正在使用 swift 运行我的模型,该模型是从 keras 转换而来的,不幸的是,在 swift 上运行时结果非常糟糕,所以我考虑可能会在我的预处理中运行一些东西。然后我发现 coremltools 可以在以下代码中使用特定值(如 255 和 -1)缩放和减去输入:

coremltools.converters.keras.convert(model,image_scale=255,red_bias=-1,green_bias=-1,blue_bias=-1) 

但是,如果我需要从图像中减去输入图像的平均值并进行归一化,我该怎么办? 我应该使用 coremltools 还是 swift?

【问题讨论】:

    标签: average normalization mean subtraction coreml


    【解决方案1】:

    我不确定是否有简单的方法可以做到这一点,但 Core ML 模型确实支持从输入图像中减去平均图像的“NeuralNetworkMeanImage”操作。这是模型的“NeuralNetworkPreprocessing”部分的一部分。

    当您使用image_scalered_bias 等时,NeuralNetworkPreprocessing 使用 NeuralNetworkImageScaler 操作。但是您想改用 NeuralNetworkMeanImage 操作。

    coremltools.converters.keras.convert() 似乎不允许您选择这种平均图像操作。因此解决方案是编写一个新脚本来加载转换后的 mlmodel 并用 NeuralNetworkMeanImage 替换预处理操作。这需要熟悉 protobuf 格式。

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 2017-11-18
      • 2017-11-30
      • 2017-07-03
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多