科技
设为书签Ctrl+D将本页面保存为书签,全面了解最新资讯,方便快捷。
业 界/ 互联网/ 行 业/ 通 信/ 数 码/ 手 机/ 平 板/ 笔记本/ 相 机
当前位置:科技 > 快讯 >

可外接AI镜头模组新发布,原设备可轻松升级人脸识别功能

可外接AI镜头模组新发布,原设备可轻松升级人脸识别功能
2021-07-22 15:49:34 来源:财讯网

随着人脸识别的日益普及,它的应用场景越来越广。近几年面市的门禁机、考勤机、校园班牌等终端,纷纷集成了人脸识别功能。但与此相对,相应场景下“服役”多年的老旧设备,由于早期产品设计往往没有摄像头,并且老旧设备算力也不足以支撑人脸识别算法的运行。但如果将这些老旧设备全盘替换,不仅成本昂贵还需要解决系统迭代兼容性问题。

那么如何低成本让老旧设备焕发新生机?近期,笔者从市场上了解到,虹软视觉开放平台联合多家产业链合作伙伴,推出了一款可外接的AI摄像头模组,内置芯片和高精度算力,能够在原设备基础上轻松升级实现人脸识别。

一、什么是AI摄像头模组?

首先要介绍一下虹软视觉开放平台,它是业内知名的免费视觉AI算法提供方,开放了人脸识别、活体检测、人脸属性分析、人证核验等一系列算法SDK。支持免费商用,而且能够离线运行,在一些对信息安全要求高,或者不具备联网条件的封闭场景下,都非常适用。

该AI摄像头模组概况来说,是一款能够急速上手的软硬一体化小型开发机,可以让AI算法落地更标准化,更小巧化

软件上,模组集成了虹软视觉开放平台ArcFace人脸识别算法及相应配套应用软件服务。算法能力上除了人脸比对、识别、属性检测、人证核验等多种基础功能外,还支持大面积遮挡下的人脸识别,抵御攻击方面具备RGB/IR活体检测双重保障,支持离线激活使用,同时自带图像质量检测功能,自动过滤画面模糊或小角度的人脸图像,提升识别准确率和识别速度。

硬件上,模组集成了UVC摄像头和RV1109芯片,通过USB接口对外输出视频流数据,只需要将模组插入相应设备,即可工作。其中,自带RV1109芯片平台提供算力这点非常重要,不仅解决了老设备算力不足的问题,而且RV1109芯片性价比非常高,很适合门禁、闸机的改造。

同时,该AI摄像头模组除了支持跨Android、 Windows、Linux等多系统运行,算法计算结果以JSON标准化输出,标准化接口可供平台移植、拓展业务。

此外,这款AI摄像头模组可通过硬件适配参数调节,适配不同分辨率的设备,适用场景也非常丰富,像人员注册、人脸识别开门、考勤打卡、门禁权限管理、识别记录查询等功能,老设备都可以通过外接AI摄像头模组来实现。

二、项目开发详细介绍

从虹软商务获取了其产业链伙伴的AI镜头模组,虹软已经把模组的服务软件部署进去了,同时也提供了Windows及Android客户端Demo,如果没有特殊需求,安装客户端之后基本能做到即插即用。在我个人的开发过程中,因为项目本身有定制化需求,所以没有用虹软开放平台官方提供的客户端APK,而是自己做了Android的上位机开发。简单来说,项目首先需要获取UVC视频流,将视频图像显示在Android上位机上;其次利用RNDIS将模组和Android上位机建立通信;最后通过Arc服务获取到算法处理结果,并将结果显示到Android上位机,以下是我的开发过程。

2.1 USB摄像头SDK封装

获取USB摄像头视频流需要借助第三方框架,我在Github上找到了一个开源的框架:https://github.com/saki4510t/UVCCamera,把项目代码clone到本地,使用AndroidStudio打开项目代码;修改“Application.mk文件,运行“ndkBuild”;编译成功后,得到“arm64-v8a”和“armeabi-v7a”两个架构的so包,并编译出jar包;或者执行assembleRelease任务,编译出libuvccamera-release.aar包,供后续项目使用,如下图所示:

2.2 集成USB摄像头SDK

新建Android项目,将“libuvccamera-release.aar”开发包添加到项目libs文件夹中,修改build.gradle文件,编译项目,这样开发包就集成好了,如下图所示:

2.3 AI摄像头模组获取

虹软AI摄像头模组类似于一个软、硬件结合的小型开发机。软件上,模组集成了人脸识别算法及应用软件,通过RNDIS(RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡)服务和Android上位机通信;硬件上,模组集成了UVC摄像头,通过USB接口对外输出视频流数据,只需要将模组插入Android上位机,即可工作。

2.4 实现UvcCameraHelper获取UVC视频流

2.4.1 获取到UsbDevice

我自己实现了一个UvcCameraHelper类,用来管理USB摄像头的生命周期。不同于集成好的Android设备摄像头,AI摄像头模组作为一个外接设备,需要使用“USBMonitor.java”类遍历获取,attach到对应的USB设备后,请求USB权限,如果权限通过,会有一个onConnect回调,表示USB设备已连接,可以进行下一步操作了,具体如下图所示:

如上图,onConnect方法回调成功以后,就可以对UsbDevice进行下一步操作了。

2.4.2 开启USB摄像头

拿到UsbDevice后,借助UVCCamera类,就可以开启USB摄像头了,调用UVCCamera.open()和UVCCamera.startPreview()方法后,摄像头开启成功,使用TextureView作为显示视频图像数据,就可以在Android上位机实时显示摄像头图像数据了,具体实现如下图所示:

2.5 接入AI摄像头模组

2.5.1 实现网络通信

AI摄像头模组里面集成了Arc服务,用于检测、识别人脸,并将人脸结果对外输出。将 AI模组插入Android上位机USB接口上,Arc服务就会自启动了。

通过RNDIS,我在Android端实现了一套Http和WebSocket通信服务,用来和AI模组进行数据传输。如下图所示,使用Retrofit作为网络通信框架:

如下图所示,创建API服务,和AI模组进行网络数据交互:

如下图所示,创建WebSoket服务,用于接收AI模组人脸识别数据:

通过以上步骤,就完成了AI摄像头模组和Android上位机网络通信功能。

3.5.2 网络数据交互

Arc服务包含设备激活、人员注册、设置参数等API。

如下图所示,调用激活接口,激活AI模组,才能够进行后续操作:

如下图所示,调用注册人员接口,将人脸库注册到AI模组中,用于后续人脸识别:

AI摄像头模组集成了人脸识别算法及算法核心业务,将模组摄像头对准人脸,开始识别人脸,并最终将人脸识别结果输出。如下图所示,我实现了一个WebSocket服务,用于接收人脸识别结果数据:

2.5.2 数据显示

拿到人脸识别结果数据,包括人脸框,人脸ID,人脸图片等。如下图人脸识别结果数据结构:

通过自定义View,使用Paint和Canvas类,绘制人脸框Rect数据;根据type类型判断识别结果,包括识别成功、识别失败等,并将人员信息显示在UI上。

到这里,AI模组和Android上位机就接入好了。

三、注意事项

由于虹软SDK只包含arm64-v8a和armeabi-v7a的so包,在编译USB摄像头SDK的时候,只能编译对应架构的so包;

需要选择对应的USB设备ID,才能正常开启USB摄像头,注意不要选错;

AI模组连接过程中可能会断开,需要做一些重连操作。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。

责任编辑:kj005

文章投诉热线:156 0057 2229 投诉邮箱:29132 36@qq.com
关键词:

数字艺术品亮相淘宝造物节!设计师黄河山协同NEAR发布NFT

2021-07-20 10:16:10数字艺术品亮相淘宝造物节!设计师黄河山协同NEAR发布NFT

我国5G网络建设保持领先 累计开通5G基站96.1万个

2021-07-19 09:04:25我国5G网络建设保持领先 累计开通5G基站96.1万个

“造新”竞速时代已至 海信热泵干衣机引领新赛道

2021-07-09 17:05:10“造新”竞速时代已至 海信热泵干衣机引领新赛道

风云四号B星成功发射!用于天气分析预报、环境灾害监测等领域

2021-07-07 09:32:35风云四号B星成功发射!用于天气分析预报、环境灾害监测等领域

“深度智能”时代正加速到来 人工智能技术突破形成核心竞争力

2021-07-06 09:00:28“深度智能”时代正加速到来 人工智能技术突破形成核心竞争力

中国成功发射风云三号E气象卫星 提升天气预测预报能力

2021-07-05 09:51:52中国成功发射风云三号E气象卫星 提升天气预测预报能力

相关新闻