【导读】

在前端应用人脸识别、人像分割等 AI 能力已经广泛分布于各类场景中,其在低延迟、数据隐私保护、服务资源节省等方面都有明显的应用优势。随着人工智能技术的不断发展,越来越多的深度学习模型在保持超轻量的同时也拥有高精度的特点,使得前端可实现的 AI 应用范围不断扩大。

近期,百度飞桨团队联合飞桨开发者专家(PPDE) 陈千鹤,发布了支持一站式 AI 能力的前端应用集合,大幅提升了 AI 模型的易用性和可移植性。主要特色包括:

  • 提供视觉模型7种、web 端 demo 和小程序端 demo 共计6个,覆盖人脸检测、文字识别等经典计算机视觉技术应用方向;

  • 提供开箱即用 demo 和 npm 包调用两种方式,灵活易用;

  • 支持自定义修改前后处理参数、更换模型等定制化需求。

话不多说,先看 demo!

web 前端应用集合:包括人脸检测、人像分割、手势识别、1000种物品识别。

人脸检测

OCR 文字检测与识别动图

小程序应用:

图像识别小游戏

demo 传送门:

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js/


详细的使用流程

■ demo 使用

整体优化后的计算机视觉网页端 demo 体验步骤十分简单。

在浏览器中打开 http://localhost:5173/main/index.html 网址即可看到如下界面,点击左侧不同的功能即可体验 OCR、图像检测、分割功能。

■ 进阶使用

以 PP-OCR js 模型为例,只需要通过指令 npm install@paddle-js-models/ocr,使用方式如下:

其中,ocr.recognize()函数的输入参数 img 是 HTML ImageElement 格式的数据。

如果要在前端项目中直接使用其他 demo 中的 AI 能力,只需要在 https://www.npmjs.com/search?q=paddle-js-models 中选择相应的包,通过指令 npm install 包名即可完成安装。

■ 更换模型、自定义前后处理参数

>> 更换模型

参考如下步骤:

步骤1:将模型转成 js 格式,参考如下命令:

步骤2:修改代码替换默认的模型。以 OCR demo 为例:

注:

OCR 文本识别 demo 模型部署的源代码链接:

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js/web_demo/demo/src/pages/cv/ocr/TextRecognition/

ocr.init()函数有两个参数,分别为检测模型参数和识别模型参数,源码参考:

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js/web_demo/packages/paddlejs-models/ocr/src/index.ts#L52

>> 自定义前后处理参数

以 OCR 文本检测 demo 为例,期望修改文本检测后处理的参数实现扩大文本检测框的效果。

修改前:

参数调整前,文本检测效果如下:

通过给 detect()函数传入文本检测的后处理参数,修改后代码如下:

注:

OCR 文本检测 demo 模型部署的源代码链接:

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js/web_demo/demo/src/pages/cv/ocr/TextDetection/

扩大检测框后,重新运行 demo,文本检测效果如下:

有关 PP-OCR js 模型预测的细节,参考以下链接。

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js/web_demo/packages/paddlejs-models/ocr

更多 demo 应用方法可以在 FastDeploy 中查阅。

https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/application/js

FastDeploy 简介

FastDeploy 是一款易用高效的推理部署工具箱。已支持 TensorRT、Paddle Inference、OpenVINO、ONNX Runtime、Paddle.js 等(Paddle Lite、RKNN等开发中),多硬件统一 API 部署体验;覆盖业界 CV、NLP、Speech 等热门 AI 模型60+,提供开箱即用的部署体验。


深度学习模型优化经验揭秘

由于前端环境和计算资源限制,在前端部署深度学习模型时,我们对模型的性能有着更严格的要求,简单来说,模型需要足够轻量化。理论上模型的输入 shape 越小、模型大小越小,则对应的模型的 flops 越小,在前端运行也能更流畅。经验总结,使用 Paddle.js 部署的模型存储尽量不超过5M。

本次发布的 demo 中的模型性能数据如下表所示。其中,主要针对 PP-OCRv3 模型进行了优化,因其涉及多个模型的串联(文本检测和文本识别),对单个模型的性能要求更严格,通过通道裁剪、知识蒸馏等技术进一步进行模型轻量化后,整体系统存储从 12.3M 压缩至4.3M,在 Mac M1 机器上使用 Google Chrome 测试推理速度仅需350ms,流畅度显著升级,相比旧版本模型压缩65%,预测速度提升87.5%。

注:flops 统计不包含前后处理


加入 FastDeploy js 技术交流群

入群福利

  • 第一时间获取 FastDeploy 产品最新信息及学习资料

  • 近距离与各企业部署大佬互动交流

  • 近距离与 FastDeploy 研发同学交流讨论

入群方式

微信扫描下方二维码,关注公众号,填写问卷后进入微信群

▎更多阅读

飞桨官网:

https://www.paddlepaddle.org.cn

FastDeploy 项目地址:

https://github.com/PaddlePaddle/FastDeploy

PaddleOCR 项目地址:

GitHub: https://github.com/PaddlePaddle/PaddleOCR

Gitee: https://gitee.com/paddlepaddle/PaddleOCR

天花板级前端工程师才能玩转的工具?前端AI应用集合重磅开源相关推荐

  1. JS前端AI应用集合重磅开源,PP-OCRv3 JS版模型速度提升87.5%

    在前端应用中,人脸识别.人像分割等AI能力已经广泛分布于各类场景中,其在低延迟.数据隐私保护.服务资源节省等方面都有明显的应用优势.随着人工智能技术的不断发展,越来越多的深度学习模型在保持超轻量的同时 ...

  2. 转: 写给想成为前端工程师的同学们 (from 360前端团队)

    转自:     http://www.75team.com/post/to-be-a-good-frontend-engineer.html 前端工程师是做什么的? 前端工程师是互联网时代软件产品研发 ...

  3. 初级Web前端工程师是什么?初级Web前端工程师的技术体系有哪些?

    今天小编要跟大家分享的文章是关于初级Web前端工程师是什么?初级Web前端工程师的技术体系有哪些?本篇文章为大家整理出来了Web前端工程师初级阶段需要掌握的内容,很全面,希望大家好好阅读,看看自己掌握 ...

  4. 2020 年前端工程师学习指南【全新web前端入门视频教程】

    前端是个非常年轻的领域,很多前端工程师做到一定时间就会遇到职业发展瓶颈,怀疑自身能力甚至怀疑前端行业.但是在我看来,前端领域可以用一个词来形容--百废待兴,如今的前端恰恰是充满机遇和挑战的阶段,只要找 ...

  5. 前端工程师需要学习ps 吗_前端人员一定要掌握的PS技巧

    一.PS与前端知多少 一般我们会认为PS是用来修改图片的,这些工作是美工人员做的事不是前端人员做的,其实这样想你就错了,因为在前端人员也是要学会一些简单的关于PS的技巧的,这样就不会应为一点点小小的需 ...

  6. Web前端工程师知识体系大全,Web前端入门基础体系

    Web前端工程师知识体系大全 什么?你上面说的太多太乱了,好吧下面的知识体系只要能掌握个六七成,就能找到个前端的碗了! Web前端基础知识体系大全

  7. 什么才是市场急需的前端工程师?【零基础web前端入门视频教程】

    据统计,国外的前端开发人员和后端开发人员比例约1:1,但是在国内比例却在1:3以下,Web前端开发职位人才缺口巨大.前端工程师的发展之路十分有"钱"景. 每天,HR 群都有人在吐槽 ...

  8. 中高级前端工程师都需要熟悉的技能--前端缓存

    前言 web缓存是高级前端工程师必修技能.是我们变成大牛过程中绕不开的知识点. 文章会尽量用通俗易懂的言语来细说web缓存的概念和用处. 本期文章的大纲是 什么是web缓存(前端缓存) 缓存可以解决什 ...

  9. 前端工程师需要学习ps 吗_前端开发工程师需要掌握的6大PS技能

    前端开发工程师(简称前端)的上游是UI设计师,大部分的UI设计师都是用photoshop(简称PS)来设计产品效果图的,而前端会使用这个效果图来制作页面,为了能很好地与UI设计师对接以及制作页面,前端 ...

最新文章

  1. 谨慎对待switch,用Object对象替换switch
  2. 优化算法求解复杂约束问题策略(以粒子群算法为例讲解求解复杂约束问题的多种策略)
  3. Spark Streaming(二)Flume
  4. 域用户配置文件的漫游配置
  5. python跳槽工资_年薪45万阿里程序员想跳槽到vivo,网友:工资不翻倍不要去
  6. 典型用户信息管理系统
  7. 创业动力衰减 中国面临危险挑战
  8. delphi控件切图界面闪烁_先本设计教你跳过UI小程序的七个坑
  9. js保存html页面的图片,html使用js截取页面保存为图片
  10. Linux系统的目录结构 及各目录用途详解
  11. sir模型初始值_SIR 模型笔记
  12. Ubuntu14.04 ec20 4G模块 ppp拨号--rt3070 wifi模块释放sofAP
  13. 2022年玻璃包装容器行业市场发展环境分析预测及下游需求规模增长率研究预测
  14. lede 内核 单 编_编译了一个 K3 的 LEDE 17.01.4 版本提供下载(忠于 LEDE 原版,无任何附加包)...
  15. 阳历转化为农历的c语言程序,公历和农历之间如何转换?
  16. c++,给成绩分等级
  17. 前端学HTTP之web攻击技术
  18. sb3500_您的代码如何在3500万人的家庭中成为社会公益的代言人
  19. 电路设计学习一:DAC/ADC原理
  20. 关于电脑电流滋滋声解决方法

热门文章

  1. android实现资源分包分类存放以便查找
  2. 面向对象是什么鬼(OOP)
  3. CSS开发-简单布局模板
  4. 小陈学JS Do-while循环练习
  5. 2023计算机毕业设计SSM最新选题之java东风锻造有限公司点检管理系统65p2d
  6. RabbitMQ——邮件服务,初学记录
  7. 毕业第二年写给百度HR的一封求职信
  8. microblaze c语言,MicroBlaze
  9. 男人彻底懂得一个女人之后就不会爱她了吗?
  10. 情绪的自我调节与控制