作者:郭永磊,阿里巴巴智能互联技术专家

今天非常荣幸能在这里与大家分享主题——通义灵码如何助力嵌入式软硬件开发。通过今天的分享,大家可以看到通义灵码在嵌入式领域 C++ 编程方面的一些实际表现,以及它在提效方面的能力。

功能需求

软硬一体产品的开发流程中,前期技术方案的可行性验证是非常重要的。如果没有做好充分的验证,是很有可能导致项目中途失败的。受硬件成本和开发周期的影响,这也会给公司带来极大的损失。

接下来,让我们设想开发一款基于人脸识别的验票机(应用场景:机场、车站、景点等的人证合一验证),我们已经完成了初步市场调研,并发现了一家供应商提供的人脸比对云端 API 服务。接下来的任务是针对这个 API 进行一系列的功能性验证测试,以确保它能满足我们的项目需求。具体来说,我们将重点关注以下几个方面:

1. 时延测试:考虑到考勤机需要快速响应用户请求,因此我们需要评估该 API 处理人脸比对请求的速度。这包括从图像上传到返回结果所需的时间。理想的状况下,整个过程应该尽可能快,以便给用户提供流畅无阻的体验。

2. 稳定性检查:稳定性是指 API 在长时间运行过程中保持正常工作的能力。我们需要模拟不同的使用场景(如高并发访问)来测试其性能表现,并监控是否有异常情况发生,比如错误代码返回、服务中断等现象。

3. 准确率分析:对于任何一个人脸识别系统而言,其识别精度都是非常关键的一个指标。我们将通过大量不同类型的照片样本(不同光照条件、角度变化、面部遮挡等情况)来检验该 API 能否准确地完成人脸匹配任务。此外,还应考虑误报率和漏报率等因素,以全面评价系统的可靠性。

4. 安全性考量:除了上述技术层面的要求外,数据安全也不容忽视。必须确保供应商采取了适当的安全措施保护用户隐私信息不被泄露或滥用。例如,查看他们是否遵循 GDPR 等相关法律法规,以及如何存储和传输个人敏感数据等。

5. 成本效益分析:最后,还需综合考虑使用该 API 的成本与收益之间的平衡点。比较不同供应商提供的价格方案,同时结合预期的服务水平协议(SLA)条款,确定最合适的合作伙伴。

综上所述,通过对这些关键维度进行全面细致的评估,可以帮助我们更好地理解所选 API 的实际效果及其适用性,从而为后续项目的顺利推进奠定坚实基础。

通义灵码AI程序员助力快速原型验证

接下来,我们将利用通义灵码这一强大的 AI 程序员工具来快速实现并运行这个 API。通过这种方式,我们可以迅速搭建起一个初步的 demo,使得 API 能够立即投入使用。这不仅能够帮助我们验证技术方案的可行性,还能让我们在实际操作中发现可能存在的问题,并及时进行调整和优化。

此外,借助于通义灵码的强大功能,即使是复杂的编程任务也能被简化处理,从而大大提高了开发效率。这样一来,我们就能够在较短的时间内完成 API 的基础建设工作,为后续更深入的功能开发与测试打下坚实的基础。

2.1 安装通义灵码

以 VScode 为例,直接在应用商店搜索 lingma,找到插件进行安装即可。

2.2 登录账号

安装完成后,在左侧打开通义灵码的入口,点击登录按钮,根据提示登录阿里云账号即可使用。

3.3 分析 API

人脸比对的 API 接口说明如下图所示,可以知道:

  • API 地址:https://netocr.com/verapi/verFaceImage.do
  • 接口请求方式:POST
  • 请求参数:一共有 6 个且都是必选项。其中:
  • img1 和 img2 是需要拿来做比对的图片,需要将图片转为 base64 格式。
  • key 和 secret 是平台分配的秘钥信息,固定信息,平台已提供。key 为 C92HMRaM3uXMPj266DsEf2,secret 为 e0952efd41fd4dc1bf0d3c6528fef13d。
  • typeId 为 21,对应的就是人脸比对功能,也是固定值。
  • format 用于指定返回格式,支持 xml 或者 json,对嵌入式开发来说,json 更友好,我们固定为 json。

分析到这里,我们的需求也就清晰了,主要分 2 个点:

  1. 需要编写代码,实现图片文件转 base64。
  2. 需要编写代码,实现该 api 的请求。

接下来,我们就使用通义灵码来一一实现。

3.4 实现 base64 编码接口

prompt:使用 C 语言实现 base64 编解码接口,并给出测试函数。

实现的代码:

根据 AI 程序员给出的使用说明,尝试编译运行测试,发现有错误。

不用慌,把错误告诉 AI 程序员,让 AI 程序员来解决:

再次编译,成功通过。

运行 demo,验证 base64 接口是否正常工作。

目前的接口还不支持对文件 base64 编码,扩展下该功能。

再次编译运行验证,新增 API 和 linux base64 命令对同一个文件的 base64 编码结果一致。

3.5 实现 API 请求代码

接下来,我们把之前整理的 API 信息告诉 AI 程序员,让它帮我生成对应的 C 语言请求代码。

编译运行,再次遇到错误,直接把报错信息交给 AI 程序员,它写的错误代码,就该由它来解决。

解决后继续尝试编译运行,再次遇到错误,再次把报错信息交给 AI 程序员来解决。

根据指引,安装 libcurl 的开发库,继续尝试编译运行,通过!

尝试运行,继续报错:

手动修改为正确的文件路径,并注释掉 base64 测试函数。再次编译运行,发现接口通了但是返回了错误。

根据问题猜测,让 AI 程序员尝试修改一个版本,再次编译运行。使用 2 张同一个人的照片进行比对,成功得到结果,比对结果为一致。

更换 2 张不同的图片,重新运行,结果为否,不一致。

因此,借助通义灵码,我们已经能够迅速完成人脸比对 API 的代码实现。之后,我们就可以根据当前的能力进行相关实验,测试稳定性、准确率等。通过进一步的代码迭代,我们可以得到更详细和全面的测试结果。此外,我们还可以根据其他方面的衡量标准获取相应信息,并通过各个维度的数据进行全面的可行性评估,以确定该 API 是否满足我们的项目需求。

通义灵码在整个过程中主要起到的作用是提高效率,使我们能够将精力集中在更有价值的地方。

下载体验:https://lingma.aliyun.com/download


阿里云云原生
1.1k 声望317 粉丝