首页 文章 精选 留言 我的

精选列表

搜索[智能数据应用],共10000篇文章
优秀的个人博客,低调大师

【人工智能应用】基于人脸识别的驾驶员身份认证系统

【概述】 实现基于人脸识别的身份认证功能,至少有以下三种方案: 1、使用各大平台提供的云服务,基于WEB API调用。API调用需要按次收费。 2、使用SDK,嵌入在设备里。这种情况需要自行开发硬件,SDK需要按设备数一次性收费。 3、购买现成的人脸识别硬件产品,使用厂家提供的SDK进行二次开发。这种设备通常比较贵。 本文将使用萤石云结合萤石C2HC网络摄像头(第一种方案)来实现基于人脸识别的身份认证功能。本方案硬件成本小于200元,单次人脸识别+身份认证的费用小于0.01元。是一个相对比较经济的方案。 【系统架构示意图】 备注:关于车辆启动信号的来源,可以参考我的另一篇文章。【企业项目】工程车辆管理系统(含硬件设计和开发) 【前期准备】 1、由于萤石API不能直接使用摄像头拍摄的照片进行人脸识别,需要将照片发送到OSS云服务进行存储。所以,需要提前开通OSS云服务并做好相应的配置2、需要一个ECS云服务器来承载PC控制端程序,操作系统为windows3、在进行人脸识别前,需要调用萤石API来创建一个人脸集合(setToken),集合名称可以随意指定。 【人脸注册】 # 【业务流程】 1、控制端通过萤石API向摄像头发送一个拍照指令,拍摄一张头像照片。 2、摄像头收到拍照指令后,会拍摄一张照片并存储在萤石云的指定位置。萤石API会将图片地址链接返回给程序。 3、控制端收到图片地址链接后获取到图片,并将图片存储到OSS云服务对象中。 4、控制端将图片发送给萤石API进行人脸识别,识别成功后会返回人脸唯一标识(faceToken) 5、将人脸唯一标识faceToken发送给萤石API到指定的人脸集合(setToken)中进行注册。 # 【核心代码】 Token token = aiLib.checkToken();//获取token string pic = aiLib.getPic(token.accessToken, deviceSerial, "1");//使用萤石API拍照 if (pic != "") { string url = aiLib.uploadImg(pic);//将照片上传到OSS服务器 if (url != "") { string faceToken = aiLib.faceCheck(token.accessToken, "0", url);//人脸检测 bool flag = aiLib.faceRegister(token.accessToken, faceToken, setToken);//人脸注册 result.imgUrlOss = url; result.faceToken = faceToken; result.result = flag; } } return result; 【人脸比对-身份认证】 # 【业务流程】 1、车辆启动后,向控制端发送一个车辆启动信号 2、控制端收到信号后,等待1分钟(待摄像头完全启动)后,通过萤石API向摄像头连续发送6次拍照指令,发送间隔为10秒。 3、摄像头收到拍照指令后,会拍摄一张照片并存储在萤石云的指定位置。萤石API会将图片地址链接返回给程序。 4、控制端收到图片地址链接后获取到图片,并将图片存储到OSS云服务对象中。 5、控制端将图片发送给萤石API进行人脸识别,识别成功后会返回人脸唯一标识(faceToken) 6、将人脸唯一标识(faceToken)发送给萤石API进行人脸比对,比对成功后返回相似度得分。 7、相似度大于90即可认为是同一个人。 # 【核心代码】 Token token = aiLib.checkToken();//获取token string pic = aiLib.getPic(token.accessToken, deviceSerial, "1");//使用萤石API拍照 if (pic != "") { string url = aiLib.uploadImg(pic);//将照片上传到OSS服务器 if (url != "") { string faceToken = aiLib.faceCheck(token.accessToken, "0", url);//人脸检测 Dictionary<string, object> dic = new Dictionary<string, object>(); dic["setToken"] = setToken; dic["threshold"] = 80;//比对阈值 dic["matchCount"] = 1; string operation = "[" + JsonHelper.ObjectToJSON(dic) + "]"; string score = aiLib.faceSearch(token.accessToken, "2", faceToken, operation, "1");//在人脸集合中搜索检测到的人脸 result.imgUrlOss = url; result.faceToken = faceToken; result.score = score;//相识度得分 } } return result;

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册