• 脸鉴AI开放平台:轻松上手的人工智能算法


    序言

    最近在公司项目中遇到了人脸识别验证的需求,其中一个重要的功能是使用手机摄像头进行人脸实时显示和识别。由于我之前没有调用过摄像头的经验,一开始遇到了很多问题😔😔

    按照网上的教程编写了相关的代码,并在模拟器中运行程序。然而,当点击启动按钮时,程序突然崩溃了😭😭

    我有尝试重新编译代码、检查权限等方式,但问题依然存在。为了排查问题,决定在真机上调试程序。但是在真机上,依然发现程序根本无法启动,只是停留在一个黑屏界面上,没有任何反应。😰😰

    通过添加调试语句并逐行排查,我发现问题可能出现在与摄像头资源释放和打开有关的代码段中。查阅了相关资料后,发现需要在onPause()方法中释放摄像头资源,并在onResume()方法中重新打开摄像头,以避免应用切换时的问题。系统可能会将摄像头资源分配给其他应用程序使用,如果不及时释放摄像头资源,用户再次回到应用时可能无法正常访问摄像头。🙂🙂

    于是修改了代码,在onPause()和onResume()方法中加入了释放和打开摄像头资源的代码。这次运行程序时,它终于正常工作了!✌️✌️我成功看到了实时视频流。😎😎

    通过这次经历,我意识到没有调用过摄像头的程序员,刚开始使用时几乎都会遇到这种类似的问题。

    由于与硬件有关,写上层应用的软件工程师往往缺乏相关经验,有些问题根本想不到。并且查过资料过程中发现,视频处理隐藏的问题比较多,有些还与使用时长有关,简单测试测不出来。

    因此,在开发过程中要保持警觉,并进行充分的测试,以确保软件的稳定性和可靠性💪

    然而,项目进度紧迫,时间有限。最近得知一家名为👉暖果科技】的视觉算法公司18年来一直从事前沿算法的研究和应用,他们最近推出了一个👉【AI开放平台—脸鉴】。

    在这个平台提供的脸识别SDK里直接封装了View窗口可以直接调用,而不需要重新制作UI上的人脸框。考虑到方便性,我去详细了解了一下,发现确实使用起来非常方便👍👍

    接下来我会把使用经验分享给大家。

    今天我们就来了解一下这个SDK吧,本文会从以下四个方面讲解👇👇

    1. 提升开发效率工具
    2. 使用介绍
    3. 使用结果
    4. 总结&建议

    一、提升开发效率工具

    1.1封装view窗口

    SDK封装了view窗口,处理了摄像头数据的获取和渲染,开发者无需担心底层视频流处理和图像显示细节。

    经过验证和测试,封装的view窗口可以保证一定的稳定性和可靠性。初次接触人脸识别SDK的开发者可以直接使用这个封装好的view窗口,无需担心底层摄像头处理问题,避免潜在错误和异常情况。这个对开发者真的很友好👍👍

    以添加人脸模板功能为例,看一下添加布局后的效果:

    可以看到添加布局后,能很方便的调用手机摄像头并显示人脸跟踪框,窗口的大小、跟踪框的颜色等都可以根据需要设置。我们不需要关注如何调用摄像头,也不需要从头开始做UI,只需要调用封装好的方法即可,真的做到了开箱即用。✌️✌️

    1.2封装常用功能接口

    SDK还提供了人脸采集、人脸比对和活体检测这些常见功能的整合接口。对于不熟悉人脸识别流程的开发者来说,只需要调用一个接口,就能自动完成整个流程中多个功能的调用,而无需在不同的基础功能接口(如摄像头遮挡检测、人脸检测、提取指定位置的人脸特征和特征值比对等)之间反复切换和调用。进一步简化了开发过程,提高效率。

    例如人脸比对的使用流程如下:

    人脸比对功能基础接口使用流程

    封装后的代码示例

    1. public void compareFeature(View view) {
    2. if (feature1 == null || feature2 == null){
    3.             tv.setText("请先选择照片");
    4. return;
    5. }
    6.         FaceController.getInstance().checkFeatrue(feature1, feature2, new CompareFeatureListener() {
    7. @Override
    8. public void checkFail(final int code, final String errorMsg) {
    9. runOnUiThread(new Runnable() {
    10. @Override
    11. public void run() {
    12.                         tv.setText("比对失败, code:" + code + "  errorMsg:" + errorMsg);
    13. }
    14. });
    15. }
    16. @Override
    17. public void checkSuccess(final float value) {
    18. runOnUiThread(new Runnable() {
    19. @Override
    20. public void run() {
    21.                         tv.setText("比对完成, 相似度:" + value);
    22. }
    23. });
    24. }
    25. });
    26. }

    1.3提供基础接口代码块

    如果需要自己进行功能整合开发,要反复调用基础接口的话,在帮助中心也可以找到SDK各个基础功能接口的demo代码块,我们可以在对应接口的代码块👉直接复制需要的代码,而不需要在整个示例demo中大海捞针式复制。

    如常用的人脸检测功能接口代码:直接点击右上角的复制按钮就可以了。

    二、使用介绍

    2.1 注册&登录

    打开链接,www.landaispace.com

    会展示如下界面,填入对应的信息进行注册即可

    注册成功之后,就可以选择登录啦,他支持两种方式登录:账号密码/手机号快捷登录

    我选择的是手机号快捷登录

    登录成功如图所示,初次登陆帐号为未认证状态,我们申请的每个应用仅有1个SDK授权(即新建的每个应用所下载的SDK仅能在1台设备激活使用)。

    2.2 新建应用

    下载SDK并使用脸鉴AI技术之前,需要先新建应用。因为应用是我们下载并使用SDK服务的基本操作单元,应用创建成功后,可获取激活码(AppID和SDK_KEY),并进行相关配置操作。

    2.2.1 我的应用

    点击我的应用--->新建应用,如图

    2.2.2 填入对应的信息

    2.2.3 应用列表

    新建成功之后,在应用列表就会看到对应的应用,另外每个应用右侧都有“咨询产品”按钮,点击后就能直接发送当前应用信息与在线客服沟通

    2.3 下载应用

    下载应用有两种方式:1在列表中下载,2,在详情中下载

    2.3.1下载成功

    2.4 安装包介绍

    下载成功之后,解压可以看到内容

    分为2个包:

    • 安卓
    • IOS

    2.4.1 安卓内容

    2.4.2 IOS内容

    2.5 demo项目

    2.6 配置demo

    2.6.1 配置包

    修改build.gradle文件,修改applicationId,为你新建应用的包名,如下图所示

    2.6.2 配置lib

    把刚刚下载下来的lib包中的.arr 文件放到libs文件下,并修改对应的配置文件

    具体代码

    1. apply plugin: 'com.android.application'
    2. android {
    3.     compileSdkVersion 28
    4.     defaultConfig {
    5.         applicationId "com.warmnut.sface.demo.test"
    6.         minSdkVersion 21
    7.         targetSdkVersion 27
    8.         versionCode 1
    9.         versionName "1.2"
    10.         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    11. }
    12.     lintOptions {
    13.         checkReleaseBuilds false
    14. // Orif you prefer, you can continue to check for errors in release builds,
    15. // but continue the build even when errors are found:
    16.         abortOnError false
    17. }
    18.     repositories {
    19.         flatDir {
    20.             dirs 'libs' // aar目录
    21. }
    22. }
    23. }
    24. dependencies {
    25.     implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
    26. implementation(name: 'sface_app_sdk_recognize_actionalive_2.0.2', ext: 'aar')
    27.     implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    28.     implementation 'com.alibaba:fastjson:1.2.33'
    29. }

    2.6.3 初始化方法

    修改SplashActivity.java中人脸识别引擎初始化initManage函数的参数,appid和sdkkey。

    2.6.4 配置权限

    在AndroidManifest.xml,如图所示

    具体代码

    1. <uses-permission android:name="android.permission.INTERNET" />
    2. <uses-permission android:name="android.permission.RECORD_AUDIO" />
    3. <uses-feature
    4.         android:name="android.hardware.camera"
    5.         android:required="true" />
    6. <uses-permission android:name="android.permission.CAMERA" />
    7. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    8. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    9. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    2.7 运行demo

    配置好了之后,项目就可以正常运行了,运行结果如下,我们此时就可以进行一些人脸识别操作测试了。

    使用结果

    因为隐私原因,这里放的检测结果如下:

    3.1 摄像头采集人脸添加模板

    3.2 实时画面1:N人脸检测

    3.3 照片测试

    3.3.1  M:N 人脸比对

    这里选择了比较喜欢的一个演员的照片

    即便更换表情,M:N比对也会反馈比对成功,

    如果事先没有添加模板,仅显示比对结束,而不返回人员和相似度

    3.3.2 1:1 对比

    SDK推荐的阈值是0.77,相似度高于阈值判定为是同一个人

    人脸对比结果:相似度0.86正确识别为同一个人

    3.3.2.1 换装对比

    换装比对结果:相似度0.86正确识别为同一个人

    3.3.2.2 换人对比

    换人比对结果:相似度0.46低于0.77不是一个人

    3.4 活体检测

    活体检测有6种,分别是:

    • 眨眨眼
    • 左转头
    • 右转头
    • 低头
    • 抬头
    • 张张嘴

    3.4.1 眨眨眼

    可以看到眨眼睛已检测成功

    3.4.2 左转头

    四、总结&建议

    4.1 总结

    针对脸鉴人脸识别SDK功能方面,以下是我的一些感受👇👇

    这个平台真的很贴心❤️❤️,特别是对开发者来说。首先,他们提供了一个免费试用期为期一年的SDK授权,完全没有应用数量的限制。这意味着我们有足够的时间来进行集成测试,而不必担心授权费用。

    而且,他们的维护政策也很出色。平台提供了终身授权和免费升级,这意味着我们不必担心将来的升级费用或者需要再次购买新版本的SDK。随着时间的推移,如果他们对人脸识别SDK进行改进和优化,比如增加新功能、提高性能和算法准确率等,我们可以立刻在平台上获得这些更新,并将其应用到我们的应用程序中。这对于提供更好的用户体验和效果非常有帮助。

    此外,这个平台还提供了其他私有化服务器部署的算法产品,包括人脸识别、人员属性、人员行为、安全生产(烟火、安全帽、行人等)和OCR识别等,这意味着他们可以满足不同场景的需求。

    总之,这个平台为我们提供了非常便利的工具和支持,让我们可以更轻松地构建出色的应用程序。

     公测福利

    平台还在开展公测活动,公测期间通过企业认证的用户,可获赠首单买一赠一券,一年内首次购买 SDK 买多少送多少。有需要的朋友们可以抓紧时间注册认证。

    平台的其他信息,可以查看平台提供的【新手指南】写的很详细:🌹🌹🌹

    脸鉴AI开放平台

    4.2体验地址

    总体使用下来,不管是视频检测还是照片检测效果不错,如果你在人脸识别这方面有需求,不妨试一下这个平台的产品。体验地址如下:

    体验地址

    五、投票

  • 相关阅读:
    今日AI:Midjourney角色一致性功能上线、Grok即将开源、OpenAI永远提供免费版ChatGPT
    Zookeeper:Mac通过Docker安装Zookeeper集群
    【毕业设计】花卉识别 - 深度学习 机器视觉 卷积神经网络 python OpenCV
    DVWA全级别通关教程
    idea2023和easyconnect代理问题
    并查集详解(原理+代码实现+应用)
    刚柔相济铸伟业 ——访湖南顺新金属制品科技有限公司董事长张顺新
    【技术积累】《MongoDB实战》笔记(1)
    心酸,1区期刊主编,诺奖得主:成名前论文只能发表在IF低于1.5的期刊上
    06 - 雷达发射机 概述
  • 原文地址:https://blog.csdn.net/weixin_36755535/article/details/132953862