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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文将使用萤石云结合萤石C2HC网络摄像头来实现基于人脸识别的身份认证功能。本方案硬件成本小于200元,单次人脸识别+身份认证的费用小于0.01元。是一个相对比较经济的方案。

【概述】

实现基于人脸识别的身份认证功能,至少有以下三种方案:
1、使用各大平台提供的云服务,基于WEB API调用。API调用需要按次收费。
2、使用SDK,嵌入在设备里。这种情况需要自行开发硬件,SDK需要按设备数一次性收费。
3、购买现成的人脸识别硬件产品,使用厂家提供的SDK进行二次开发。这种设备通常比较贵。

本文将使用萤石云结合萤石C2HC网络摄像头(第一种方案)来实现基于人脸识别的身份认证功能。本方案硬件成本小于200元,单次人脸识别+身份认证的费用小于0.01元。是一个相对比较经济的方案。

【系统架构示意图】

_
备注:关于车辆启动信号的来源,可以参考我的另一篇文章。【企业项目】工程车辆管理系统(含硬件设计和开发)

【前期准备】

1、由于萤石API不能直接使用摄像头拍摄的照片进行人脸识别,需要将照片发送到OSS云服务进行存储。所以,需要提前开通OSS云服务并做好相应的配置
2、需要一个ECS云服务器来承载PC控制端程序,操作系统为windows
3、在进行人脸识别前,需要调用萤石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;
目录
相关文章
|
19小时前
|
机器学习/深度学习 人工智能 自然语言处理
构建未来:AI在持续学习系统中的创新应用
【5月更文挑战第11天】 随着人工智能(AI)技术的飞速发展,其在教育领域的应用日益增多。特别是在持续学习系统(Lifelong Learning Systems, LLS)中,AI技术正开启着个性化和适应性教学的新篇章。本文聚焦于AI在LLS中的创新应用,探讨了机器学习、自然语言处理和认知建模等关键技术如何共同作用于构建智能化的学习环境。文章旨在分析当前AI技术在持续学习领域的最新进展,并展望其对未来教育模式的影响。
|
1天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【5月更文挑战第11天】 随着人工智能(AI)技术的快速发展,其在医疗领域的应用已经成为改善患者护理和提高诊断效率的重要工具。本文将深入探讨AI在医疗诊断中的具体应用,包括图像识别、疾病预测、个性化治疗建议等方面。通过实例分析,我们将展示AI如何辅助医生进行更准确的诊断,并讨论AI在医疗行业中实施的挑战与机遇。
|
1天前
|
机器学习/深度学习 人工智能 自动驾驶
构建未来:AI在持续学习系统中的创新应用
【5月更文挑战第11天】 在人工智能的迅猛发展浪潮中,一个不断进化的分支便是AI在持续学习系统中的应用。本文旨在探讨AI技术如何革新持续学习系统,并分析其在不同领域的创新实践。文章首先界定了持续学习系统的概念,随后深入解析了深度学习、强化学习以及转移学习等关键技术在其中的作用。通过案例分析,展示了这些技术如何在医疗诊断、自动驾驶及个性化教育中发挥至关重要的角色。最终,讨论了面临的挑战与未来的发展趋势,为读者提供了一个关于AI在持续学习领域未来可能展开的蓝图。
4 1
|
1天前
|
机器学习/深度学习 人工智能 算法
【好书推荐2】AI提示工程实战:从零开始利用提示工程学习应用大语言模型
【好书推荐2】AI提示工程实战:从零开始利用提示工程学习应用大语言模型
8 0
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术的应用和发展
【5月更文挑战第10天】AI技术的应用和发展
17 1
|
3天前
|
人工智能 搜索推荐 机器人
AI在医疗领域的突破性应用:重塑未来的医疗格局
【5月更文挑战第9天】AI正重塑医疗领域,从医学影像诊断的自动化提升准确性,到个性化治疗方案的制定,智能手术与机器人辅助提高手术安全,预防性医学借助大数据预测健康风险,智能调度优化医院运营,以及聊天机器人和虚拟健康助手提供便捷咨询。这些突破性应用将深刻改变医疗格局,实现更高效率和精度的医疗服务。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在医疗诊断中的应用
【5月更文挑战第8天】 随着科技的飞速发展,人工智能(AI)技术已经渗透到各个领域,其中医疗诊断领域的应用尤为引人注目。本文将探讨人工智能在医疗诊断中的应用,包括图像识别、疾病预测和个性化治疗方案等方面。通过对比传统医疗诊断方法,我们将展示AI技术如何提高诊断准确性、降低医疗成本并改善患者体验。
22 10
|
5天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
47 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
5天前
|
机器学习/深度学习 人工智能 分布式计算
JAVA编程语言在人工智能领域的应用
Java是由Sun Microsystems(已被Oracle收购)于1995年推出的一种跨平台编程语言。它具有面向对象、可移植、高效和安全等特性,成为了广泛应用于企业级应用开发的编程语言之一。
45 21
|
5天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【5月更文挑战第7天】 随着技术的飞速发展,人工智能(AI)在医疗领域的应用已经从理论走向了实践。本文将深入探讨AI在医疗诊断中的具体应用,包括图像识别、疾病预测以及个性化治疗方案的制定等方面。通过分析最新的研究成果和实际案例,我们旨在揭示AI技术如何提高诊断的准确性和效率,同时讨论其在实际应用中面临的挑战和未来的发展方向。