App Inventor 2 人脸识别App开发 - 第三方API接入的通用方法

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
简介: **App 效果图**:展示人脸识别功能,可识别性别和年龄。**工作原理**:调用第三方人脸识别API,上传图片并接收返回的JSON数据,AppInventor2解析结果显示。

App效果图,可以识别人脸,推断出性别及年龄:

App原理介绍

通过调用第三方人脸识别api,按照指定格式上传图片及必要的参数,然后api进行云端识别,

识别成功/失败后,会返回json格式的数据结果,使用AppInventor2解析json结果,显示到App上即可。

当然,也可以采用原生的自行训练本地人脸识别模型的方式去完成这个人脸识别需求,可以参考:《自行训练AI图像识别模型,开发图像识别分类App》

下面简单对比一下两种方式的优缺点:

对比项 调用第三方API 自己训练AI识别模型
学习成本 简单,学习成本低。 适合AI相关专业人士,学习成本高。
识别速度 速度稍慢,几秒。 速度极快,毫秒级。
使用限制 调用次数有限制,不过学习及演示用足够了。 训练好模型后,调用不受限制,且越用识别越准确。
数据安全 数据在第三方云端,敏感数据不建议。 数据全本地,自主可控。

当然了,我们这里仅讨论第一种调用API的方式实现人脸识别

第三方API介绍

第三方人脸识别的api平台特别多,这里仅以“旷视Face++”(faceplusplus.com.cn)作为演示,因为它提供足够多的免费调用次数,其他平台的使用方法都是几乎一样的。

这些第三方平台除了提供人脸识别功能外,还有其他AI相关的识别功能,比如文字识别、图像识别、证件识别等等,其核心都是调用相关api,按其文档传入指定格式的数据即可。对我们而言api类调用的App开发原理都是通用的!

平台的注册及登录步骤请自行完成,登录后需要创建一个应用以获得API调用时必要的api_keyapi_secret

如何理解api_keyapi_secret:可以类比为 API Key是用户ID(用于标识用户),Secret Key是密码(用于鉴权)。“你需要两个不同的密钥,一个告诉他们你是谁,另一个证明你就是你所说的“。

创建一个API Key应用

填写必要的参数

查看已创建的应用

这时,我们就能得到了api_keyapi_secret,后续步骤会用到这两个关键的数据。

查看API文档,确定我们需要准备的数据

通过文档可知,我们需要填入api_keyapi_secret、上传一张图片、指定识别的属性:gender,age(这里以性别和年龄为例)。

第三方API的调用

使用”Web客户端“组件调用第三方API,代码如下:

注:这里图片采用Base64的方式,压缩后进行Base64编码。用到 SimpleBase64 拓展 和 TaifunImage 拓展。

JSON结果的解析

请求成功返回JSON示例

{
    "image_id": "Dd2xUw9S/7yjr0oDHHSL/Q==", 
    "request_id": "1470472868,dacf2ff1-ea45-4842-9c07-6e8418cea78b", 
    "time_used": 752, 
    "faces": [
        {
            "landmark": {
                "mouth_upper_lip_left_contour2": {
                    "y": 185, 
                    "x": 146
                }, 
                "contour_chin": {
                    "y": 231, 
                    "x": 137
                }, 
               .........省略关键点信息
                "right_eye_pupil": {
                    "y": 146, 
                    "x": 205
                }, 
                "mouth_upper_lip_bottom": {
                    "y": 195, 
                    "x": 159
                }
            }, 
            "attributes": {
                "gender": {
                    "value": "Female"
                }, 
                "age": {
                    "value": 21
                }, 
                "glass": {
                    "value": "None"
                }, 
                "headpose": {
                    "yaw_angle": -26.625063, 
                    "pitch_angle": 12.921974, 
                    "roll_angle": 22.814377
                }, 
                "smile": {
                    "threshold": 30.1, 
                    "value": 2.566890001296997
                }
            }, 
            "face_rectangle": {
                "width": 140, 
                "top": 89, 
                "left": 104, 
                "height": 141
            }, 
            "face_token": "ed319e807e039ae669a4d1af0922a0c8"
        }
    ],
  "face_num":1
}

JSON


请求失败返回JSON示例

{
    "time_used": 3, 
    "error_message": "MISSING_ARGUMENTS: image_url, image_file, image_base64", 
    "request_id": "1470378968,c6f50ec6-49bd-4838-9923-11db04c40f8d"
}

JSON


JSON解析参考代码

原文:https://www.fun123.cn/reference/pro/ai_face.html

相关文章
|
3天前
|
API 开发工具 数据库
开发一份API接口,需要注意这些,看你做到了几项
本文介绍了设计API接口时需注意的关键点,包括数字签名、敏感数据加密与脱敏、限流、参数校验、统一返回与异常处理、请求日志记录、幂等设计、数据量限制、异步处理、参数定义、完整文档及开发者对接SDK等内容,旨在帮助开发者设计出安全、稳定、易维护的API接口。
33 6
开发一份API接口,需要注意这些,看你做到了几项
|
10天前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
37 3
如何使用Python开发API接口?
|
6天前
|
存储 SQL API
探索后端开发:构建高效API与数据库交互
【10月更文挑战第36天】在数字化时代,后端开发是连接用户界面和数据存储的桥梁。本文深入探讨如何设计高效的API以及如何实现API与数据库之间的无缝交互,确保数据的一致性和高性能。我们将从基础概念出发,逐步深入到实战技巧,为读者提供一个清晰的后端开发路线图。
|
5天前
|
JSON 前端开发 API
后端开发中的API设计与文档编写指南####
本文探讨了后端开发中API设计的重要性,并详细阐述了如何编写高效、可维护的API接口。通过实际案例分析,文章强调了清晰的API设计对于前后端分离项目的关键作用,以及良好的文档习惯如何促进团队协作和提升开发效率。 ####
|
3天前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
16 1
|
6天前
|
监控 搜索推荐 安全
探究亚马逊详情API接口:开发与应用
在数字化时代,亚马逊作为全球领先的电商平台,为商家和消费者提供了丰富的商品信息和便捷的购物体验。本文深入探讨了亚马逊详情API接口的获取与运用,帮助开发者和商家实时监控商品数据、分析市场趋势、优化价格策略、分析竞争对手、构建推荐系统及自动化营销工具,从而在竞争中占据优势。文章还提供了Python调用示例和注意事项,确保API使用的安全与高效。
27 3
|
10天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
32 4
|
9天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
16 2
家政服务小程序APP开发,做好上门家政最快的方法是什么?
在家政服务领域,打造成功的平台并非易事。本文分享了三个关键步骤:避免初期盲目投入、采用低成本获客方式、建立有效的阿姨筛选机制。遵循这些方法,可助你避开常见陷阱,成为行业头部平台。
|
16天前
|
前端开发 关系型数据库 API
深入浅出后端开发——从零到一构建RESTful API
本文旨在为初学者提供一个关于后端开发的全面指南,特别是如何从零开始构建一个RESTful API。我们将探讨后端开发的基本概念、所需技术栈、以及通过实际案例展示如何设计和实现一个简单的RESTful API。无论你是完全的新手还是有一定编程基础的开发者,这篇文章都将为你提供实用的知识和技巧,帮助你在后端开发的道路上迈出坚实的一步。

热门文章

最新文章