翼度科技»论坛 编程开发 python 查看内容

python 身份证读取 照片并通过摄像头实时 比对相似度 人证比对软件 源码

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
最近朋友需要一个人证比对软件需要实现以下功能:

  • 通过摄像头实时采集人脸图像
  • 通过身份证读卡器采集身份证信息 和 身份证照片
  • 使用实时人脸照片 和 身份证照片做相似度比对
  • 比对后返回相似度,或者返回同一人,非同一人
  • 实时采集照片 和 身份证信息照片存档,方便以后查阅
准备


  • 摄像头采用普通电脑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错误,通过查询虹软文档
  1. 错误码说明:图片宽高不支持,宽度需四字节对齐
  2. 详细说明:SDK对待处理图像的宽高做了限制:
  3. 1.所有支持的格式的图像宽度为4的倍数;
  4. 2.YUYV/I420/NV21/NV12格式的图片高度为2的倍数;
  5. 3.BGR24/GRAY/DEPTH_U16格式的图片高度不限制;
  6. 建议:若不符合可对图片进行适当的裁剪
复制代码
通过以下代码对图片进行裁切处理
  1. def process_image(image_path):
  2.     try:
  3.         img = cv2.imread(image_path)
  4.         if img is None:
  5.             raise Exception(f"Failed to read image: {image_path}")
  6.         # 获取原始图片的宽度和高度
  7.         height, width = img.shape[:2]
  8.         # 计算调整后的宽度和高度
  9.         new_width = width - (width % 4)
  10.         new_height = height - (height % 2)
  11.         # 调整图片大小
  12.         resized_img = cv2.resize(img, (new_width, new_height))
  13.         return resized_img
  14.     except Exception as e:
  15.         print(f"Error: {e}")
  16.         return None
复制代码
程序实现


如有需要源码请添加微信:

可支持定制身份证读卡器(有偿)

来源:https://www.cnblogs.com/hanyibo/p/17657154.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具