Hi头像

Hi头像

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

›2-项目配置

标题

  • 《从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的核心分析

2.1 小程序开启云开发模式

本文知识点:

  • 小程序切换成云开发模式的简要步骤
  • hi-face 项目的主要文件结构

小程序项目配置 project.config.json

普通模式

  • miniprogramRoot 是小程序代码目录,此处写的是Taro编译后的dist目录
  • appid 微信小程序的appid
{
  "miniprogramRoot": "taro/dist/",
  "appid": "testappid"
}

开通云开发模式

开通云环境

  • 在微信开发者工具控制台上,点击“云开发”按钮,就可以新建云开发环境。最多支持两个
  • 建好之后,就可以看到你的云环境的名称,如下图

云环境配置说明

  • cloudfunctionRoot 云开发的云函数所在的目录
  • cloudfunctionTemplateRoot 云开发的云函数测试数据模板所在的目录
{
  "miniprogramRoot": "taro/dist/",
  "cloudfunctionRoot": "cloud/functions/",
  "cloudfunctionTemplateRoot": "cloud/template/",
  "appid": "testappid"
}

hi-face 是基于 Taro 的,可以使用其 taro-cli 中的云开发模板来初始化一个新的小程序项目,观察里面的文件目录设置来以作为参考。

云开发模式配置及使用

  1. 小程序启动时,初始化云环境
  2. 在需要调用云函数或云存储的地方,调用对应的 callFunction 等方法即可
// taro/src/pages/app.js
Taro.cloud.init({
  env: 'name-id' // 云开发环境名
})

// taro/src/pages/avatar-edit/avatar-edit.js
Taro.cloud.callFunction({
  name: 'analyze-face',
  data: {
    fileID: '12345'
  }
}).then(res => console.log(res))

hi-face 项目的主要文件结构

|- cloud
  |- functions 云函数目录
  |- template 小程序云函数的调试模板
|- taro Taro 主目录
  |- config/ Taro 项目配置 
  |- src 功能主代码
  |  |- app.js 项目主入口
  |  |- config.js 运行时的全局配置
  |  |- components 通用组件
  |  |  |- taro-cropper 图片裁剪插件
  |  |- pages 页面
  |  |  |- avatar-edit 头像编辑页
  |  |  |- avatar-poster 头像分享页 / 头像作品页
  |  |  |- theme-list 主题列表页
  |  |  |- self 我的,包含头像列表
  |  |- utils 通用方法
  |  |  |- common.js 常用的方法,比如判断iPhoneX
  |  |  |- fetch/index.js 接口情况的封装,对云函数调用的 cloudCallFunction 也在其中
  |  |  |- image-utils.js 获取图片、图片转 base64、上传图片等
  |  |  |- face-utils.js 人脸识别的处理方法,包含人脸的头顶中间位置、嘴部最近位置等

头像编辑页主流程

头像编辑页的主流程:

v2 版

常见问题

接口请求体太大,还未接收到请求结果,云函数就返回失败?

将接口请求的返回数据调大一些,如20秒

"networkTimeout": {
  "request": 20000,
  "downloadFile": 10000
}

云函数容易超时吗?

云函数默认的超时时间为 3 秒,这对于普通的网络请求还算够用。

云函数存在冷启动的情况,并且调用五官分析等也需要 0.5s 到 3s 的时间,需要将云函数的超时时间改为10s ~ 20s。

微信开发者工具上使用云函数本地调试的时候,函数还未发出就报错,并且返回的 result 为 null

我在做“人脸五官分析”功能的时候,曾经调用了约 1Mb 大小的 base64 图片数据,就遇到了这个问题。后来努力将 base64 图片数据降为 150Kb(在图片识别加速的文章中有讲解),或者将这个图片先上传到云存储上,再在云函数环境中再下来下来,这样也达到多次调用,减少网络间数据传递体积。

小结

下一篇文章中,我将介绍如何介绍Hi头像的核心功能“人脸五官分析”的配置以及腾讯云特色的人工智能服务。

← 1.2 技术选型的依据2.2 人脸五官分析的环境配置 →
  • 小程序项目配置 project.config.json
    • 普通模式
    • 开通云开发模式
    • 云开发模式配置及使用
  • hi-face 项目的主要文件结构
    • 头像编辑页主流程
  • 常见问题
  • 小结
Hi头像
文档
开篇介绍
相关资源
云开发 CloudBaseTaro
关于
联系我们GitHub主页Star
Copyright © 2020. All Rights Reserved.
沪ICP备2022023998号