Happy Coding
Google Vision API

目标

业务上需要识别出文本、图像敏感内容,降低业务风险。

调用下云服务的产品。

Google Cloud Platform

GCP上,图像识别有两个产品:

  1. Vision API 直接使用预先训练的模型
  2. AutoML 迁移学习,使用用户提交的新分类数据,训练模型。

关于文本识别的产品是类似的,也分直接使用预训练模型和迁移学习重新训练。

Vision API:图像内容识别

  1. Google Vision API的模型已经有审核内容的能力:暴力、成人内容的识别。
  2. 提供API,也提供了各个语言的SDK。
  3. 不需要开发者训练模型。

image-20200401145549783

image-20200401145658730

参考:https://cloud.google.com/vision?hl=zh-cn

试用

image-20200401142058025

安全搜索的分类说明

image-20200401144423857

  1. Adult 成人内容
  2. Spoof 恶搞,比如恶搞政治人物
  3. Medical 医疗影像
  4. Violence 暴力内容
  5. Racy 猥亵类,类似成人内容

参考:https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1?hl=zh-cn#google.cloud.vision.v1.SafeSearchAnnotation

对接流程

image-20200401143626559

参考:https://codelabs.developers.google.com/codelabs/cloud-vision-intro/index.html?index=..%2F..cloudai&hl=zh-cn&_ga=2.102874504.925825070.1585721382-1910642988.1585296097#0

注意,图像不一定需要上传到Google的云存储。

开发对接参考:检测露骨内容(安全搜索)https://cloud.google.com/vision/docs/detecting-safe-search?hl=zh-cn

DEMO

创建服务账号、创建密钥,自动下载json文件:

image-20200401160832697

image-20200401161206429

code:

https://github.com/GoogleCloudPlatform/golang-samples/blob/master/vision/detect/README.md

请求次数限制

对请求内容大小有限制外,需要注意请求配额,每分钟请求数1800,QPS也就是30。如果无法满足需求,需要在平台申请增加配额。

使用默认配额,业务上需要考虑采样数据,再调用Vision API。

参考 https://cloud.google.com/vision/quotas?hl=zh-cn

请求响应时间

请求响应时间,取决于两个因素:

上传数据大小

越大越慢。

  1. 手机拍照软件生成的图像一般3M,建议图像压缩后上传。
  2. 考虑gcloud上先存储图像文件。参考 https://medium.com/bankify-tech-blog/how-to-optimize-the-speed-of-google-vision-api-cdc5e452104b

Vision API本身

对一张249K的图像进行简单压测。

$ ll demo/trump.jpg 
-rw-r--r--  1 jiahua  staff   249K Apr  1 14:14 demo/trump.jpg

Go benchmark。

func BenchmarkDetectSafeSearchForFile(b *testing.B) {
	for i:=0;i<b.N;i++{
		result, err := DetectSafeSearchForFile("demo/trump.jpg")
		assert.Equal(b, nil, err)
		spew.Dump(result)
	}
}

识别图像大概需要1秒。实际业务中使用,建议异步处理,事后处理,不然太影响正常体验了。

$ go test -v -bench=DetectSafeSearchForFile -benchtime=30s

BenchmarkDetectSafeSearchForFile-8            33        1011378355 ns/op

Natural Language API: 文本内容识别

https://cloud.google.com/natural-language/docs/how-to?hl=zh-cn

内容分类

内容分类没有我们关注的敏感内容分类。

参考:https://cloud.google.com/natural-language/docs/categories?hl=zh-cn

通过简单的关键字过滤吧。


Last modified on 2020-04-01