Hi头像

Hi头像

  • 网站首页
  • 技术博客
  • 教程小册

›4-实战开发

标题

  • 《从0到1开发一个智能头像识别小程序》

1-前言

  • 1.1 产品需求设计、页面流程图及项目规划
  • 1.2 技术选型的依据

2-项目配置

  • 2.1 小程序开启云开发模式
  • 2.2 人脸五官分析的环境配置

3-知识储备

  • 3.1 图片裁剪、模糊、保存、分享的技巧
  • 3.2 Canvas绘制技巧,包含小程序与 Web 端
  • 3.2 云开发图像处理的使用方法

4-实战开发

  • 4.1.1 上篇:借助云存储和图像处理扩展人脸智能裁剪
  • 4.1.2 下篇:图像识别流程——图片裁剪、图片压缩、base64转换
  • 4.2 云开发必备——图像安全审核
  • 4.3 通过五官分析实现为人脸佩戴贴纸
  • 4.4 人脸贴纸移动技巧
  • 4.5 头像绘制和图片保存弹窗
  • 4.6【未写】海报分享页面
  • 4.7 CMS扩展实战-节日主题贴纸放在云开发
  • 4.8 【第二期】个人中心的制作
  • 4.9【第二期】小程序与Web端的账户体系摸索

云开发-公众号外发

  • 图片识别加速,从10秒变为1秒,是怎么做到的呢?
  • 简单几步,让微信小程序变身 H5 网页
  • 【草稿】借助云存储,让大图识别转换真正加速
  • 云开发CMS实战-Hi头像节日主题贴纸大升级
  • 小程序云开发环境部署静态网站托管的实战
  • Web 云开发实战之盲水印添加工具(核心版)
  • Web 云开发实战之盲水印添加工具(步骤版)

更多探索

  • 【草稿】深色模式在Web端的适配技巧,附带小程序侧的思考
  • 【草稿】小程序框架:Taro 2.0与Taro 3.0的核心分析

4.2 云开发必备——图像安全审核

知识点

  • 图像安全审核-来自云开发扩展能力
  • 更多的比较
    • imgSecCheck来自开放能力
    • imgSecCheck来自服务市场
    • 违规内容识别
    • T-Sec 天御图片内容安全

图像安全审核-来自云开发扩展能力

这是云开发最新推出的非常好用的人工智能能力,能够完成对图片安全审核的大部分需求。

图像安全审核提供鉴黄、鉴政、鉴暴恐等多种类型的敏感内容审核服务,有效识别违禁图片,规避违规风险。

名称额度数据类型
图片安全审核
云开发扩展能力
2000张/日云存储fileId中图片绝对地址

接口文档:https://docs.cloudbase.net/extension/abilities/image-examination.html

使用方法

v2 版中已使用微信服务市场的优图服务来实现,具体可以看 taro/src/utils/image-safe-check.js

export const getResCode = (res) => {
 ...
}

const getCheckResult =(data) => {
  const { Suggestion, PoliticsResult = {}, PornResult = {}, TerrorismResult = {} } = data

  let result = {}

  if (Suggestion === 'PASS') {
    result.status = 0
    result.data = { isSuccess: true }
    result.message = ''
  } else if (PoliticsResult.Suggestion !== 'PASS' || PornResult.Suggestion !== 'PASS' || TerrorismResult.Suggestion !== 'PASS') {
    result.status = -87014
    result.message = '存在违禁图片'
  } else {
    result.status = -1002
    result.message = '请求失败'
  }

  if (result.status) {
    throw result
  }
  return result
}

/**
 * 图像安全审核
 * @param {string} base64Main
 */
export const imgSecCheck = async (base64Main) => {
  try {
    const res = await wx.serviceMarket.invokeService({
      service: 'wxee446d7507c68b11',
      api: 'imgSecCheck',
      clientMsgId: 'id' + parseInt(Math.random() * 10000),
      data: {
        Action: 'ImageModeration',
        Scenes: ['PORN', 'POLITICS', 'TERRORISM'],
        ImageBase64: base64Main,
        Config: '',
        Extra: ''
      }
    })

    let data = getResCode(res)
    let result = getCheckResult(data)
    return result
  } catch (error) {
    console.log('error2 :', error)
    throw {
      status: 87014,
      message: '图中包含违规内容,请更换'
    }
  }
}

完整的使用示例,请参照 https://github.com/hi-our/hi-face/blob/1.x-stable/cloud/functions/image-safe-check/index.js

对比更多的腾讯云图像安全审核服务

图片审核前,可以先用wx.compressImage进行图片压缩。

这里为了方便,均已云开发中的云调用来作为基础,大部分功能其实也支持HTTP API的调用。

名称额度数据类型
imgSecCheck
开放能力
免费Buffer
imgSecCheck
服务市场
365天内免费10000次ImageUrl、ImageBase64
违规内容识别每月10000次(估计)ImageUrl、ImageBase64
图片内容安全
T-Sec 天御
30天内免费10000次ImageUrl、ImageBase64

开放能力 imgSecCheck

接口文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html

在实际使用中发现的大问题,图片Buffer大小超过100k,可能就报图片太大的错误了。有的小伙伴说,10k都可能会报。

服务市场 imgSecCheck

接口文档:https://developers.weixin.qq.com/community/servicemarket/detail/000a246b6fca70b76a896e6a25ec15

根据 返回值及示例 请见 https://cloud.tencent.com/document/api/865/35473#3.-.E8.BE.93.E5.87.BA.E5.8F.82.E6.95.B0可以看出,其功能是基于T-Sec 天御 图片内容安全进行的封装,但允许试用1年。

违规内容识别

这个功能不仅支持图片地址,还支持图片Base64数据,也就是说无需将图片上传到图片服务即可进行识别。

这也是我目前在使用的方案,因为我的图片不大,并且当用户在确认需要保存图片后,我才会将图片上传到云存储上。

我的步骤为

  1. 选择图片后,图片会被裁剪为600x600
  2. 使用 wx.compressImage()将图片的质量从 100 降为 10
  3. 将图片数据格式转换为Base64
  4. 使用违规内容识别进行图片安全审核

PS:腾讯云是将这个功能给雪藏了,我自己扩展了其tencentcloud-sdk-nodejs来做到的。

T-Sec 天御图片内容安全

接口文档:https://cloud.tencent.com/product/ims

这个的花费是最大的,我这里就不多讲了。

← 4.1.2 下篇:图像识别流程——图片裁剪、图片压缩、base64转换4.3 通过五官分析实现为人脸佩戴贴纸 →
  • 图像安全审核-来自云开发扩展能力
    • 使用方法
  • 对比更多的腾讯云图像安全审核服务
    • 开放能力 imgSecCheck
    • 服务市场 imgSecCheck
    • 违规内容识别
    • T-Sec 天御图片内容安全
Hi头像
文档
开篇介绍
相关资源
云开发 CloudBaseTaro
关于
联系我们GitHub主页Star
Copyright © 2020. All Rights Reserved.
沪ICP备2022023998号