中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
圖片識(shí)別加速,從 10 秒變?yōu)?1 秒,是怎么做到的呢? | 小程序云開發(fā)

滬江 CCtalk 前端開發(fā)工程師,Taro 框架的 issue 維護(hù)志愿者,主要側(cè)重于前端 UI 編寫和團(tuán)隊(duì)文檔建設(shè)。本文講解的是我的快快戴口罩小程序中核心邏輯,如何給人臉戴上口罩,也就是使用騰訊云的人臉識(shí)別中的五官分析來實(shí)現(xiàn)的。

基本步驟

  1. 用戶選擇圖片
  2. 圖片裁切,借助canvas 來實(shí)現(xiàn)
  3. canvas 圖片轉(zhuǎn)換為小程序的圖片
  4. 圖片轉(zhuǎn)換為 base64 數(shù)據(jù)
  5. 上傳 base64 到騰訊云后進(jìn)行五官識(shí)別

先來 2 個(gè)小問題

**問題 1:第一個(gè)要處理的問題,是從小程序側(cè)直接上傳還是傳給個(gè)人服務(wù)器或云端后再轉(zhuǎn)發(fā)呢?**小程序側(cè)直接上傳

  • 我們就需要在微信公眾平臺(tái)上配置多個(gè)騰訊云的域名,比如 iai.tencentcloudapi.com、 tiia.tencentcloudapi.com 等
  • 還需要依賴用戶那邊的網(wǎng)絡(luò)速度,還有小程序側(cè)請(qǐng)求還是挺容易失敗的,會(huì)讓小程序的體驗(yàn)大打折扣
  • 如果一個(gè)功能上有多個(gè)網(wǎng)絡(luò)請(qǐng)求,比如人臉識(shí)別、五官分析、智能美顏,那小程序側(cè)去請(qǐng)求,直接就消耗了用戶大量流量啦。

傳給個(gè)人服務(wù)器或云端后再轉(zhuǎn)發(fā)

  • 無需在微信公眾平臺(tái)上配置多個(gè)騰訊云的域名
  • 可以合并多個(gè)網(wǎng)絡(luò)請(qǐng)求,依托個(gè)人服務(wù)器或云端穩(wěn)定的網(wǎng)絡(luò)環(huán)境做到更快速的請(qǐng)求響應(yīng)

**問題 2:在個(gè)人服務(wù)器和小程序云開發(fā)上,我是如何選擇的?**最近比較火的概念就是 Serverless,簡單來說就是,不借助運(yùn)維手段就可以直接調(diào)用服務(wù)器上的數(shù)據(jù)庫、文件以及其他資源。而我在這次小程序開發(fā)中的個(gè)人服務(wù)器當(dāng)中做了如下設(shè)置

  1. 購買了一個(gè)域名并備案,設(shè)置了二級(jí)域名,為二級(jí)域名設(shè)置了 HTTP SSL 證書
  2. 購買了一個(gè)騰訊云的云服務(wù)器,在上面安裝了 nginx、nodejs 等基礎(chǔ)軟件
  3. 在啟動(dòng)了基于 nodejs 的 express.js 寫的簡單的 Rest API 服務(wù)后,借助于 nginx 將來自二級(jí)域名的請(qǐng)求轉(zhuǎn)發(fā)到 node 站點(diǎn)上

先說花銷上,域名每年需要幾十元、服務(wù)器也需要幾十元或幾百元不等,網(wǎng)站備案也需要各種限制,比如在上海的話就需要戶口或居住證,在江蘇的話就需要江蘇的手機(jī)號(hào)碼。再說運(yùn)維上,我不僅要設(shè)置上述的基礎(chǔ)功能,還要考慮設(shè)置出測(cè)試環(huán)境、正式環(huán)境,還要考慮服務(wù)的穩(wěn)定性。這就是我為何選擇小程序云·開發(fā)的原因了。因?yàn)?strong>免費(fèi)、高效、穩(wěn)定。云開發(fā)提供了幾大基礎(chǔ)能力支持:

  • 云函數(shù)——在云端運(yùn)行的代碼,微信私有協(xié)議天然鑒權(quán),開發(fā)者只需編寫自身業(yè)務(wù)邏輯代碼
  • 數(shù)據(jù)庫——一個(gè)既可在小程序前端操作,也能在云函數(shù)中讀寫的 JSON 數(shù)據(jù)庫
  • 存儲(chǔ)——在小程序前端直接上傳/下載云端文件,在云開發(fā)控制臺(tái)可視化管理
  • 云調(diào)用——原生微信服務(wù)集成 基于云函數(shù)免鑒權(quán)使用小程序開放接口的能力,包括服務(wù)端調(diào)用、獲取開放數(shù)據(jù)等能力

在小程序側(cè)免費(fèi)開通云開發(fā),配額如下:

對(duì)于新手或?qū)嶒?yàn)性項(xiàng)目來說,這個(gè)配合足夠用。如果想升級(jí),小程序還提供了非常完整的升級(jí)方案。具體可以在下面這個(gè)鏈接上進(jìn)行查看。developers.weixin.qq.com/miniprogram… nodejs 為載體的云開發(fā)環(huán)境可以高度自定義。

  • wx-server-sdk來調(diào)用小程序開放接口
  • tcb-admin-node讓你可以在服務(wù)端(如騰訊云云函數(shù)或 CVM 等)使用 Node.js 服務(wù)訪問 TCB 的的服務(wù)。
  • tencentcloud-sdk-nodejs,調(diào)用騰訊云的諸多服務(wù),如人臉識(shí)別、五官分析等等
  • 甚至說,上面這些都可以自己改代碼,自定義功能實(shí)現(xiàn),比如我最開始使用五官分析時(shí),需要更換騰訊云的簽名方法,而tencentcloud-sdk-nodejs的 npm 版尚未支持,我就下載代碼下載,自己改好再用。

正文開始

第一版 VS 第四版

第一版:個(gè)人服務(wù)器版本,圖片大約為 1.2~2M第四版:云開發(fā)版本,以云存儲(chǔ) fileID 為載體

使用 canvas 的canvasToTempFilePath 進(jìn)行圖片壓縮,格式為 jpg,質(zhì)量為 0.8,在安卓手機(jī)上圖片會(huì)從 1.2-2MB 降為 150KB 以下,該圖也是本地顯示的原圖。使用小程序的compressImage(質(zhì)量 0.1)來壓縮圖片,在 iPhone 上效果良好,在安卓系統(tǒng)上效果不大,但這里我們也可以使用。即使質(zhì)量很低,足夠圖片審核、五官分析所用的。使用臨時(shí)上傳圖片為載體、以 fileID 為云函數(shù)調(diào)用的標(biāo)志時(shí),云函數(shù)調(diào)用的體積較小,云存儲(chǔ)的上傳下載都非常穩(wěn)定。圖片安全 和五官分析可以同時(shí)請(qǐng)求,但使用 Promise.allSettled() 同時(shí)來請(qǐng)求。這里解決了三個(gè)問題:

  • 云函數(shù)調(diào)用有時(shí)長限制,需要修改 app.json 的 timeout,否則云函數(shù)調(diào)用會(huì)直接報(bào)錯(cuò),即使后續(xù)云開發(fā)環(huán)境有數(shù)據(jù)返回。
  • 圖片審核大小限制 500KB
  • 五官分析在 base64 數(shù)據(jù)大于 1MB 時(shí)需要更換簽名方法為TC3-HMAC-SHA256。

那么效果如何呢?總使用時(shí)間大約為 5 秒,其中請(qǐng)求時(shí)間約為 3 秒。

備注:
用時(shí)為云開發(fā)的本地開發(fā)模式測(cè)得,云端調(diào)用速度更快 總使用時(shí)間:從圖片壓縮開始,經(jīng)過調(diào)用云函數(shù),云函數(shù)識(shí)別出五官信息,返回后小程序處理五官信息,渲染口罩效果的用時(shí)。
請(qǐng)求時(shí)間:從小程序調(diào)用云函,云函數(shù)識(shí)別出五官信息、返回到小程序側(cè)的用時(shí)。

第四版 VS 第五版

第四版:云開發(fā)版本,以云存儲(chǔ) fileID 為中間載體第五版:云開發(fā)版本,以 base64 數(shù)據(jù)直接請(qǐng)求

不使用云存儲(chǔ)作為傳遞載體,而是使用圖片壓縮后的不大于 150KB 大小的 base64 數(shù)據(jù)直接請(qǐng)求,減少了小程序側(cè)圖片上傳、云開發(fā)環(huán)境中的圖片下載兩個(gè)異步操作的步驟。小程序側(cè)也有 ArrayBuffer 數(shù)據(jù),但在本地開發(fā)過程中發(fā)現(xiàn),只要其大小超過 50KB(猜的),云函數(shù)調(diào)用就會(huì)直接報(bào)錯(cuò)。

PS:我這個(gè)小程序的圖片識(shí)別只是暫時(shí)的請(qǐng)求數(shù)據(jù),并未需要將圖片上傳到云存儲(chǔ),讓用戶下次還能看到這個(gè)圖片。

那么效果如何呢?總使用時(shí)間大約為 3 秒以內(nèi),其中請(qǐng)求時(shí)間約為 0.8-1.2 秒。

結(jié)論

  • 本地識(shí)別,需要原圖
  • 五官識(shí)別輪廓就行,圖片審核用低質(zhì)量圖片即可
  • 圖片壓縮,想辦法壓縮到能用的最低
  • 異步請(qǐng)求的數(shù)量要減少,可以直接傳遞最終數(shù)據(jù),但數(shù)據(jù)要小

小程序五個(gè)版本的細(xì)節(jié)

  • 第一版:個(gè)人服務(wù)器版本

    • 總使用時(shí)間大約為 13 秒,請(qǐng)求花了 10 秒
    • 需要本地開發(fā)后,git 上傳代碼,服務(wù)器上安裝 nodejs 依賴,pm2 啟動(dòng),很麻煩,
    • 未區(qū)分測(cè)試環(huán)境和正式環(huán)境,要是實(shí)際使用,必須得再配置,每次使用也很麻煩。
    • 在個(gè)人服務(wù)上用 nginx 轉(zhuǎn)發(fā),再用 nodejs 接收
    • nginx 默認(rèn)限制大小,所以得改大小
    • 調(diào)用騰訊云服務(wù),1M 以上需要改簽名方法
    • canvas 轉(zhuǎn)換為圖片,再轉(zhuǎn)換為 base64 編碼,大小通常為 1.2-2M
    • 向個(gè)人服務(wù)器發(fā)送 API 請(qǐng)求,數(shù)據(jù)為 base64 編碼
    • 小程序
    • 個(gè)人服務(wù)器
    • 效果
  • 第二版,云開發(fā),直接上傳 base64

    • 總使用時(shí)間大約為 11 秒
    • 請(qǐng)求時(shí)間長,本地開發(fā)很容易失敗,因?yàn)?timeout 得調(diào)整大于 10 秒,我改為 20 秒
    • 開發(fā)體驗(yàn)比個(gè)人服務(wù)器好了很多,基本上在微信開發(fā)者工具與 Visual Code 上切換即可
    • 五官分析,使用 base64 編碼。由于此時(shí)大于 1M,需要更換簽名方法
    • canvas 轉(zhuǎn)換為圖片,再轉(zhuǎn)換為 base64 編碼,大小通常為 1.2-2M
    • 調(diào)用云函數(shù),數(shù)據(jù)為 base64 編碼
    • 小程序
    • 云開發(fā)云函數(shù)
    • 效果
  • 第三版,云開發(fā)基礎(chǔ)上,改用云存儲(chǔ)轉(zhuǎn)發(fā)

    • 總使用時(shí)間大約為 8 秒
    • 使用 fileID 存儲(chǔ),以及向云函數(shù)發(fā)送 fileID,安全性更高,因?yàn)樵崎_發(fā)的存儲(chǔ)需要騰訊云權(quán)限
    • 接收五官信息
    • 利用 fileID 刪除云存儲(chǔ)上的圖片
    • 利用 fileID 下載圖片內(nèi)容,轉(zhuǎn)換為 base 格式
    • 五官分析,使用 base64 編碼。由于此時(shí)大于 1M,需要更換簽名方法
    • canvas 轉(zhuǎn)化為圖片,
    • 云調(diào)用 uploadFile 上傳云存儲(chǔ),返回 fileID
    • 調(diào)用云函數(shù),數(shù)據(jù)為 fileID
    • 小程序
    • 云開發(fā)云函數(shù)
    • 小程序
    • 效果
  • 第四版:大幅度壓縮圖片,云存儲(chǔ) fileID 為中間載體

    • 總使用時(shí)間大約為 6 秒,其中請(qǐng)求時(shí)間約為 4 秒
    • 加入 canvas 圖片壓縮,效果非常明顯
    • 微信圖片壓縮,安卓上效果不明顯
    • 設(shè)置五官信息,若圖片審核失敗,就報(bào)錯(cuò)
    • 利用 fileID 刪除云存儲(chǔ)上的圖片
    • 使用 fileID 從云開發(fā)的存儲(chǔ)里下載文件
    • Promise.allSettled 異步全返回
    • 圖片審核-使用 Buffer
    • 五官分析-使用 base64 格式
    • canvas 轉(zhuǎn)換為圖片,注意要圖片壓縮,設(shè)置格式為 jpg,質(zhì)量為 0.8
    • 小程序,圖片壓縮,安卓上效果不大?但此時(shí)圖片大小約在 150k 以下
    • 上傳文件到云開發(fā)環(huán)境,獲得 fileID
    • 調(diào)用云函數(shù),數(shù)據(jù)為 fileID
    • 小程序
    • 云開發(fā)云函數(shù)
    • 小程序
    • 效果
  • 第五版本

    • 總使用時(shí)間約為 2-3 秒,請(qǐng)求時(shí)間在 1.2 秒以內(nèi),通常為 0.8 秒
    • 比第四版相比,省去圖片上傳下載的過程,節(jié)約了請(qǐng)求時(shí)間,但相應(yīng)的,安全性不那么高
    • 優(yōu)化方案為,base64 數(shù)據(jù)可以加密。
    • 設(shè)置五官信息,若圖片審核失敗,就報(bào)錯(cuò)
    • Promise.allSettled 異步全返回
    • 圖片審核-使用 Buffer
    • 五官分析-使用 base64 格式
    • canvas 轉(zhuǎn)換為圖片,注意要圖片壓縮,設(shè)置格式為 jpg,質(zhì)量為 0.8
    • 小程序,圖片壓縮質(zhì)量為 0.1,安卓上效果不大
    • 圖片轉(zhuǎn)換為 base64 格式,大小小于 150k
    • 調(diào)用云函數(shù),數(shù)據(jù)為 base64 格式
    • 小程序
    • 云開發(fā)云函數(shù)
    • 小程序
    • 效果

文章相關(guān)內(nèi)容:

珍愛生命,從我做起,快點(diǎn)戴上口罩,給大家介紹我開源的 Taro + 騰訊云開發(fā) 小程序「快快戴口罩」它可以智能識(shí)別人臉,給集體照戴上口罩。(* ̄︶ ̄)

采用 Taro 跨端框架,采用騰訊云開發(fā)模式,采用基于騰訊云的五官分析的人臉識(shí)別,實(shí)現(xiàn)了自動(dòng)為頭像戴上口罩的功能。源碼地址:快快戴口罩源碼主要功能

  • 智能識(shí)別人臉,進(jìn)行五官定位
  • 支持多人識(shí)別
  • 支持添加加油圖片

掃碼預(yù)覽微信搜一搜:快快戴口罩

小程序截圖

關(guān)于云開發(fā)

云開發(fā)(CloudBase)是一款云端一體化的產(chǎn)品方案 ,采用 serverless 架構(gòu),免環(huán)境搭建等運(yùn)維事務(wù) ,支持一云多端,助力快速構(gòu)建小程序、Web應(yīng)用、移動(dòng)應(yīng)用。

  • 技術(shù)文檔:www.cloudbase.net/
  • 微信搜索:騰訊云云開發(fā),獲取項(xiàng)目最新進(jìn)展
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
開發(fā) | 小程序「分享圖」生成難?一招教你輕松解決
微信小程序——幫您打造屬于自己的直播平臺(tái)!
小程序
小程序·云開發(fā)最佳實(shí)踐:零基礎(chǔ)如何快速上手小程序開發(fā)?
騰訊Canvas圖片運(yùn)營工具
小程序免費(fèi)開發(fā),賺取生活費(fèi)很容易
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服