动态人脸识别与身份证上的头像如何对比,看是不是同一个人?

动态人脸识别与身份证上的头像如何对比,然后识别出来是不是同一个人?

【人脸实时比对与身份证比对判断是否是一个人的Android Demo】

关于此项目的需求

  经常有这种需求,比如住宾馆、开证明,银行卡提款等
要验证这个人跟身份证是同一个人的需求,我们暂且叫做《人证比对》需求。那么这里一定牵涉到人脸的识别,识别出人脸,然后实时的拿到人脸,再去跟身份证的头像做比对。比对出一个结果值来,如果这个结果值特别像一个人,那么我们就认为它是一个人。(本文用Android
程序实现)
实现身份证与人脸实时比对判断是否是一个人的Android Demo.

项目运行截图:

关于身份证读卡:

身份证读卡

第一个就是要读取到身份证信息。拿到照片数据、身份证数据(比如身份证号码、年龄、性别、出生年月等)。这个设备就叫做身份证读卡器(比如
我们这个项目用的是《云从科技》的机器,集成了身份证读卡器,实际上是买的华视读卡器设备(提供了AndroidDemo 我们在这里封装成了
读卡器Libarary也叫 读卡器单独的module 、或者叫sdk)。


项目结构:

请点击输入图片描述

项目解释:

app module 依赖libraries 目录下的FaceVerifyModel和ReadIDCardModel。我们对身份证读卡的sdk做了简单的封装。我们无需理会读卡的具体过程,我可以再本片文章做简单的解释,以便你更快的理解我封装的sdk运行原理读卡原理。

关于sdk的封装代码简单解释:

要一直读卡,那么一定会有一个子线程while(true)一直读卡,直到程序停止,app退出,那么这个线程结束。我们要用一个线程控制。。


private class AlwaysReadCardRunnable implements Runnable {        @Override
public void run() {
HSIDCardInfo icCardInfo;            while (isAutoReadCard) {                synchronized (hsOtgApi) {                    //读取成功阻塞3秒
SystemClock.sleep(4 * 100);                    if (hsOtgApi.Authenticate(200, 200) != 1) {
Log.i(TAG, "卡认证失败");                        //SystemClock.sleep(1 * 1000);
SystemClock.sleep(1 * 1000);
} else {
icCardInfo = new HSIDCardInfo();
ReadCardEvent cardEvent = new ReadCardEvent();                        if (hsOtgApi.ReadCard(icCardInfo, 200, 1300) == 1) {                            int ret = hsOtgApi.Unpack(filepath, icCardInfo.getwltdata());// 照片解码
if (ret != 0) {
Log.i(TAG, "unzip  success");
}
cardEvent.setCardInfo(icCardInfo);
EventBus.getDefault().post(cardEvent);
Log.i(TAG, "读卡成功");
SystemClock.sleep(5 * 100);
}                        else{
Log.i(TAG, "读卡shibai");
}                        //SystemClock.sleep(3 * 1000);
}
}
}
}
}

Demo使用方法:

Activity的创建后初始化此sdk

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        new VerifyPresenter((VerifyContract.View) fragment, new VerifyModel());        IDCardSDK.getInstance().initSDK(getHandler(), this);
}

关于IdCardBean


public class IdCardBean {    private String name;    private String gender;    private String people;//民族;
private String from;//
private String address;    private String idNumber;    private String department;    private String endDate;    private String birthDay;//生日

app项目中用 Eventbus 得到 身份证读卡信息。


@Subscribe
public void onEventMainThread(ReadCardEvent readCardEvent) {
isStartMatch = true;
startMatchTime = System.currentTimeMillis();

Log.i(TAG, "检测成功,并且读取到身份证信息");

HSIDCardInfo cardInfo = readCardEvent.getCardInfo();
idCardBean = IdCardConvertUtils.converToIdCardBean(cardInfo);
mPresenter.getRealItemBeanByIdCard(idCardBean);
Log.i("lixiaodaoaaa", "file path is " + FileConstant.ID_CARD_HEAD_FILE_PATH);
Bitmap bitmapFromPath = FileUtils.getBitmapFromPath(FileConstant.ID_CARD_HEAD_FILE_PATH);
ivPeopleHead.setImageBitmap(bitmapFromPath);

}

关于 IdCardConvertUtils

这个是类型转化类,实现类的转化 读取身份证信息。


/*
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
Author   :  lixiaodaoaaa
Date     :  2019-08-11
Time     :  17:13
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
*/public class IdCardConvertUtils {


public static IdCardBean converToIdCardBean(HSIDCardInfo cardInfo) {
IdCardBean idCardBean = new IdCardBean();        if (null != cardInfo) {            String name = cardInfo.getPeopleName();            String gender = cardInfo.getSex();            String people = cardInfo.getPeople();            String birthDay = DateFormatterUtils.toBirthDay(cardInfo.getBirthDay());            String address = cardInfo.getAddr();            String cardNumber = cardInfo.getIDCard();            String department = cardInfo.getDepartment();            String endDate = cardInfo.getEndDate();
idCardBean.setName(name);
idCardBean.setGender(gender);
idCardBean.setPeople(people);
idCardBean.setBirthDay(birthDay);
idCardBean.setAddress(address);
idCardBean.setIdNumber(cardNumber);
idCardBean.setDepartment(department);
idCardBean.setEndDate(endDate);            return idCardBean;
}        return null;
}
}

demo中概述

    实现实时图像(人脸图像)

    读取身份证信息。

Demo下载:联系v : lixiaodaoaaa

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-01
开放平台为企业提供了极大的商业想象空间,现场人脸和身份证头像人脸对比识别是一种尖端可靠的前沿科学技术。无论是从业务开发的广度和深度,人脸对比识别服务平台都代表着国内现场人脸和身份证头像人脸对比识别最专业、最精准的技术水平。同时,现场人脸和身份证头像人脸对比识别接口平台更以形式自由著称----不限语言、不限平台(支持浏览器、桌面)、不限使用场所,为企业创造了更为便利、更为广阔的应用领域。
第2个回答  2017-03-01
这个就是人脸识别软件啊?中安未来不仅可以做到人脸比对,还能提供身份证,护照等证件的识别核心,关键是单机版,服务器端都可以做。本回答被提问者采纳
第3个回答  2021-04-19

       打开百度,搜索“通查”,点击打开通查网站,进入“全部产品”栏目,找到“身份证照片人脸验证”产品点击进入

上传照片,输入身份证号和姓名

通过“微信”或“支付宝”支付后即可获取相关信息

第4个回答  2019-06-05
动态的话是识别的范围要广一些,在某段距离内就可以识别并实现开门,而静态的话呢则是需要在指定的区域内范围内识别,相对较慢一些&成都熙南&%动态人脸识别系统。。。广泛应用于小区出入口,智慧工地,外接住键局
相似回答