AI人脸识别的实现SDK
关于AI SDK
当我们想要实现一个AI功能时,比如人脸识别,人脸比对,物体识别等等,如果从0开始开发AI模型,训练AI模型,直至部署到当前的项目中,势必会花费大量的人力以及时间。得益于近年人工智能领域的告诉发展, 许多成熟的AI模型已经开源,作为一名开发者不要重复造轮子,可以使用现有的成熟的AI模型来实现所需的AI功能。
但对于非AI开发者而言,想要将现有的AI模型中集成到android/iOS app中,并不是一件容易的事情。为了简化AI功能集成到app的步骤, 已经有很多公司提供了AI功能的API, 如Google, Microsoft, Baidu等。 但是这些公司大多数都只提供了API的方式来调用AI功能,没有提供本地SDK的方式调用AI功能。
相对于API方式,SDK方式的调用不需要网络的支持,以人脸识别为例,如果采用SDK方式的话就不需要把人脸的图片传输到API服务器,也不需要等待API服务器将推理结果传输回来,而是直接使用手机的CPU/GPU进行推理操作。所以对于安全性以及实时性,SDK方式都优于API方式。但是,由于SDK方式利用的是手机的CPU/GPU,性能上弱于服务器的GPU,所以SDK方式不适合大的AI模型的推理,比如GPT-2。
快速开始
本AI SDK尽可能的简化了集成步骤,即使是初学APP开发的人也能顺利地将AI功能集成到APP中。目前我们提供了Flutter AI SDK, iOS AI SDK, Android AI SDK, 请开发者根据实际的项目需求选择对应的SDK进行集成。下面将介绍如何在flutter中集成人脸识别功能。
1. 下载Flutter AI SDK
从https://download.csdn.net/download/fyq158797/87707388下载Flutter AI SDK压缩包,将压缩包解压到flutter项目文件夹。
打开flutter项目的pubspec.yaml
文件,在dependencies
下方导出AI SDK, path为SDK压缩包解压的路径。
aisdk:path: ../aisdk
2. 下载人脸识别功能所需要的AI模型
为了节省app所占的容量,我们没有将所有的AI模型都放到SDK中,而是要求开发者根据需要下载所需的AI模型。这次要集成人脸识别功能,所以只需要下载人脸识别功能所需要的文件。 下载模型文件和label文件,然后将这两个文件放到项目目录的assets
目录下, 如assets/models/
目录下。
打开flutter项目的pubspec.yaml
文件,在assets
下方声明新加入的两个文件。
assets:- assets/facemask_v1.tflite- assets/facemask_v1.txt
3. 初始化AI SDK
在调用AI模型前,我们需要初始化AI SDK。比如我们创建了一个名为FaceDetectionPage.dart的文件,这个页面的功能是从照片库中选择一张照片,然后调用AI SDK的人脸识别功能识别出人脸的坐标。 那么首先需要在initState()
方法中,初始化AI SDK的人脸识别功能。
import 'package:aisdk/aisdk.dart';@overridevoid initState() {super.initState();initAISDK();}Future<void> initAISDK() async {Map resultMap = await Aisdk.init(modelPath: "assets/models/facemask_v1.tflite", modelCateogry: Aisdk.MODEL_CATEGORY_FACE_DETECTION, labelPath: "assets/models/facemask_v1.txt");print("initAISDK:$resultMap");}
注意这里的modelPath以及labelPath参数,modelPath指向了人脸识别模型对应的路径,labelPath指向了人脸识别的label文件路径。同时,modelCateogry需要指定为人脸识别的类别:Aisdk.MODEL_CATEGORY_FACE_DETECTION
。
通过Aisdk.init()
初始化SDK后,会返回{"error":nil, "result":[]}
。如果error的内容是nil,则表示初始化成功。 如果error内容不为空,则表示初始化失败,error的内容会指明初始化失败的原因,比如modelFileLoadFailed
表明AI模型加载失败,原因可能是modelPath
设置的路径错误。
4. 调用AI模型
只需要一行代码即可调用AI功能,返回值同样是{"error":nil, "result":[]}
结构。 如果error的内容是nil,则表示调用成功。否则调用失败,需要根据error的内容来判断调用失败的原因。
调用成功后, result中的内容为AI模型的返回值。本例中,返回了图片中所有的人脸的坐标位置,以及是否佩戴了口罩。
Map resultMap = await Aisdk.inferenceOnImage(path: imageFilePath);if (resultMap["error"] != null) {print("失败${resultMap["error"]}");} else {List<dynamic> resultList = resultMap["result"];faceList = [];for (dynamic faceInfo in resultList) {Map faceMap = faceInfo;Face face = Face();face.x = faceMap["x"];face.y = faceMap["y"];face.w = faceMap["w"];face.h = faceMap["h"];face.confidence = faceMap["confidence"];face.hasMask = faceMap["className"] == "mask";faceList.add(face);}setState(() {});}
总结
经过以上的4步,就可以将人脸识别功能集成到app中。其它的AI功能也是同样的步骤,
- 下载Flutter AI SDK
- 下载AI功能所需要的模型文件
- 初始化AI SDK
- 调用AI模型
本SDK目前提供了人脸识别(是否佩戴口罩),人脸比对,物体识别,图像分割,超分辨率功能。并且以后会随时增加新的AI功能以及改进现有的AI功能。如果您在使用本SDK中有任何的意见或者建议,请随时联系我们。
AI人脸识别的实现SDK相关推荐
- 基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别
基于人脸识别的课堂签到管理系统(三)---实时时间显示以及百度AI人脸识别 一.前言概述 二.实时时间显示 三.百度AI人脸识别 3.1 获取access_token 3.2 发送请求,通过网络请求方 ...
- Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储
原 Python+OpenCv实现AI人脸识别身份认证系统(2)--人脸数据采集.存储 2019年07月02日 08:47:52 不脱发的程序猿 阅读数 602更多 所属专栏: 人脸识别身份认证系统设 ...
- 云开发:让你拥有自己的第一个AI人脸识别小程序
文章目录 博主绪论 准备过程 GIT的安装 NodeJS和npm的安装 腾讯云人脸识别API 正式开始 创建云开发小程序 开发前的思考准备,思维决定行动 服务器开发(写一个云函数端) 分析 调用人脸识 ...
- AI人脸识别真的成熟了吗?读完这篇你就懂了
作者 | 于曦 AI 成为新基建风口模式下的一个重要选题,让人们对于 AI 的热情空前高涨.从一开始的烧钱阶段到今天的确定性发展,AI 一直渗透着人们的生活,从自动驾驶到人脸识别都是如此.其中,人脸 ...
- 连Python都不熟也能跑通AI人脸识别?“隐藏Boss”竟是它!
摘要:先把AI人脸识别跑起来,然后研究它是如何实现的,整个过程中确实收获不少.所谓先跟着做,再跟着学,实践与理论结合,自己感觉有理解了一些基础概念入个门,在此分享一下自己的捣鼓经验. 1.买台小&qu ...
- 门前异动监控、AI 人脸识别!360 发布新型智能门铃
10 月 29 日,360 举行了主题为"硬核新视界"的智能硬件新品发布会.会上,360 发布了一款全新产品--360 智能门铃.360 智能门铃以"门前异动监控&quo ...
- 这家金融巨头,要让AI人脸识别大规模应用在银行领域
脑海中想象这样一个画面:当一位VIP客户走进银行大厅办理业务时,人脸识别技术能在极短时间内帮助客户经理实现快速.准确定位其身份信息,并显示该客户在银行的理财记录等,这时客户经理将为其匹配针对性的服务, ...
- 基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别)
基于Python的百度AI人脸识别API接口(可用于OpenCV-Python人脸识别) 资源: download.csdn.net/download/weixin_53403301/43644312 ...
- 微信小程序开发工具结合腾讯云开发AI人脸识别和身份证识别——基于腾讯云开发者实验项目
微信小程序开发工具结合腾讯云开发AI人脸识别和身份证识别--基于腾讯云开发者实验项目 开通腾讯云相关权限(AI人脸识别,文字识别-身份证识别) 查看API密钥 部署微信小程序 成功演示 代码包 开通腾 ...
最新文章
- web服务器获取项目路径问题,读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题...
- ajax jsonp post php,※ajax的post方式注意点※及jsonp的封装
- 4x root 红米_好激动,红米NOTE4X开发版成功获得完全ROOT教程,非假ROOT!!
- SSH远程启动tomcat后,退出SSH,tomcat也退出
- java实现代理服务器,接收客户端连接,发送到对应服务器
- 以ontouch为例说明android事件发送机制
- 西柚SWPU新生赛(场外同步赛)miscAK 别的在混(
- shell脚本合集2
- 【神经网络与深度学习】1.线性分类与感知机
- IG赢了,让我们先理直气壮的喊出那句 我们是冠军!
- app下载统计 php,如何统计app在各个渠道的下载量?
- XAMPP介绍、安装及使用
- Zigbee(3) ---- 无线温度检测试验
- 高项、高级项目管理师论文-风险管理
- 设置ListView中的所有Item均不可点击
- pytorch实现用CNN和LSTM对文本进行分类
- 十五天学会Autodesk Inventor,看完这一系列就够了(一),前言—介绍及区别
- 剑指offer 专项突破版 78、合并排序链表
- shell网络编程netstat
- 2020年度总结-送你一张腾讯视频VIP月卡
热门文章
- 云服务商将占据 80% CDN 市场份额,传统CDN或将终结
- 华为荣耀android是什么系统,华为荣耀+
- c语言提供了三种预处理命令,C语言提供的三种预处理命令
- Graph Database 图数据库
- BeanUtils只拷贝对象中属性值不为null的属性
- etlgr是什么服务器_什么是ETL,ETL工程师的的主要工作职责是什么?
- 火爆的人工智能项目都在这里了|Gitee项目推荐
- 玩 原来有个 腾讯热腾
- php淘金农场源码_PHP欢乐农场源码 淘金农场源码 欢乐农场游戏源码
- linux oracle访问mysql_linux oracle 查询所有数据库