当前位置:
首页 > Python基础教程 >
-
python 身份证读取 照片并通过摄像头实时 比对相似度 人证比对软件 源码
最近朋友需要一个人证比对软件需要实现以下功能:
- 通过摄像头实时采集人脸图像
- 通过身份证读卡器采集身份证信息 和 身份证照片
- 使用实时人脸照片 和 身份证照片做相似度比对
- 比对后返回相似度,或者返回同一人,非同一人
- 实时采集照片 和 身份证信息照片存档,方便以后查阅
准备
- 摄像头采用普通电脑usb摄像头
- 身份证读卡器采用 华视 CVR-100UC
- 人脸识别软件使用 虹软免费SDK
为什么使用虹软人脸识别算法,前期使用了很多开源算法(dlib,face_recognition),准确率都不高,相似度本人对比和非本人对比,相似度都在50%~70%,很难判断是否一人,在网上找到了虹软人脸算法(免费离线使用,每年联网激活一次),测试后准去率非常高,跟10年前的身份证图像 比对相似度94%,今年的身份证相似度98%,非本人30%一下,可以很方便的进行人证比对。
python 调用虹软SDK 参考以下链接:
仓库链接 https://gitee.com/shellcoder/ArcFace-python
python 调用华视 CVR-100UC DLL 参考以下链接:
https://blog.csdn.net/weixin_52521533/article/details/122393567
遇到的坑
测试本地图片比对,提示90127错误,通过查询虹软文档
错误码说明:图片宽高不支持,宽度需四字节对齐
详细说明:SDK对待处理图像的宽高做了限制:
1.所有支持的格式的图像宽度为4的倍数;
2.YUYV/I420/NV21/NV12格式的图片高度为2的倍数;
3.BGR24/GRAY/DEPTH_U16格式的图片高度不限制;
建议:若不符合可对图片进行适当的裁剪
通过以下代码对图片进行裁切处理
def process_image(image_path):
try:
img = cv2.imread(image_path)
if img is None:
raise Exception(f"Failed to read image: {image_path}")
# 获取原始图片的宽度和高度
height, width = img.shape[:2]
# 计算调整后的宽度和高度
new_width = width - (width % 4)
new_height = height - (height % 2)
# 调整图片大小
resized_img = cv2.resize(img, (new_width, new_height))
return resized_img
except Exception as e:
print(f"Error: {e}")
return None
程序实现
出处:https://www.cnblogs.com/hanyibo/p/17657154.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式