繁体   English   中英

Google Cloud Vision API 将所有图像检测为不当

[英]Google Cloud Vision API detects all images as inappropriate

我实施了这个 google cloud function 示例来调整上传到 firebase 存储的图像: LINK但是我有一个问题,这个 function 检测到我上传的几乎所有图像,如果它们不合适,即使它们显然不合适,这是代码function:

exports.blurOffensiveImages = functions.storage.object().onFinalize(async (object) => {
  if (object.name.startsWith(`${BLURRED_FOLDER}/`)) {
    console.log(`Ignoring upload "${object.name}" because it was already blurred.`);
    return null;
  }
  
  const visionClient = new vision.ImageAnnotatorClient();
  const data = await visionClient.safeSearchDetection(
    `gs://${object.bucket}/${object.name}`
  );

  const safeSearch = data[0].safeSearchAnnotation;
  console.log('SafeSearch results on image', safeSearch);


  if (
    safeSearch.adult !== VERY_UNLIKELY ||
    safeSearch.spoof !== VERY_UNLIKELY ||
    safeSearch.medical !== VERY_UNLIKELY ||
    safeSearch.violence !== VERY_UNLIKELY ||
    safeSearch.racy !== VERY_UNLIKELY
  ) {
    console.log('Offensive image found. Blurring.');
    //DO SOME STUFF
  }

  return null;
});

我经历过同样的行为。

该接口有点误导,在 typescript 定义中,我注意到属性(例如 google.cloud.vision.v1.ISafeSearchAnnotation.adult)的类型定义为:vision.protos.google.cloud.vision.v1.Likelihood | “未知” | “非常不喜欢” | “不太可能” | “可能” | “可能” | “非常喜欢” | null | 不明确的。

因此他们可以返回 Likelihood 枚举或值的字符串。 当我更改条件以检查字符串“VERY_UNLIKELY”而不是枚举时,我得到了预期的结果。

如果返回枚举,我很可能会同时检查枚举和字符串以防止将来发生更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM