附件1:公安出入境管理用指纹采集设备接口规范

1    范围

本规范规定了出入境管理中建档和核验用指纹采集设备指纹图像采集和指纹比对接口规范。

本规范适用于出入境管理中建档和核验用的指纹采集设备。

2    引用标准

下列标准所包含的条文,通过在本规范中引用而构成为本规范的条文。在规范出版时,所示版本均为有效。

GB 2312  信息交换用汉字编码字符集 基本集

GB 18030      信息技术 中文编码字符集

GA/T 625-2010 活体指纹图像采集技术规范

GA/T 626.1-2010 活体指纹图像应用程序接口规范 第1部分: 采集设备

GA/T 774.1-2008 指纹特征规范 第1部分 指纹方向

GA 776-2008   指纹自动识别系统产品编码规则

3    术语

纠偏 image deviation rectify

通过旋转、移动等图像处理方式,使得采集到的指纹图像有效区域位于图像几何中心,并且指纹方向保持垂直向上。

4    图像采集接口

4.1初始化采集设备

函数原型:     int __stdcall LIVESCAN_Init()

说明:         遵循GA/T 626.1—2010中3.1规定。

4.2释放采集设备

函数原型:       int __stdcall LIVESCAN_Close()

说明:           遵循GA/T 626.1—2010中3.2规定。

4.3获得采集设备通道数量

函数原型:       int __stdcall LIVESCAN_ GetChannelCount()

说明:           遵循GA/T 626.1—2010中3.3规定。

4.4设置采集设备当前的亮度

函数原型:     int __stdcall LIVESCAN_SetBright(int nChannel, int nBright)

说明:         遵循GA/T 626.1—2010中3.4规定。

4.5设置采集设备当前的对比度

函数原型:     int __stdcall LIVESCAN_SetContrast(int nChannel, int

nContrast)

说明:         遵循GA/T 626.1—2010中3.5规定。

4.6获得采集设备当前的亮度

函数原型:     int __stdcall LIVESCAN_GetBright(int nChannel, int

*pnBright)

说明:         遵循GA/T 626.1—2010中3.6规定。

4.7获得采集设备当前的对比度

函数原型:     int __stdcall LIVESCAN_GetContrast(int nChannel, int

*pnContrast)

说明:         遵循GA/T 626.1—2010中3.7规定。

4.8调用采集设备的属性设置对话框

函数原型:     int __stdcall LIVESCAN_Setup()

说明:         遵循GA/T 626.1—2010中3.11规定。

4.9采集设备是否支持设置对话框

函数原型:      int __stdcall LIVESCAN_ IsSupportSetup();

说明:          遵循GA/T 626.1—2010中3.16规定。

4.10实时视频预览

函数原型:       int __stdcall  LIVESCAN_ SetVideoWindow (HWND hWnd)

参数:           HWND hWnd句柄类型,为用于显示实时视频的控件句柄。

返回值:         调用成功,返回1。

<0 返回错误代码。

说明:           该函数调用后,须自动、持续在参数所确定控件中显                               示指纹设备采集的指纹实时视频图像,实时视频图像须充满整个窗口。在调用4.2释放采集设备时停止显示并释放所占用的全部资源。

4.11准备采集一帧图像

函数原型:        int __stdcall LIVESCAN_BeginCaptutre(int nChannel);

说明:           遵循GA/T 626.1—2010中3.12规定。

4.12采集一帧图像

函数原型:        int __stdcall LIVESCAN_GetFPRawData(int nChannel, unsigned char *pRawData);

说明:            遵循GA/T 626.1—2010中3.13规定。内存块大小为单指指纹采集图像大小。

4.13采集一幅BMP格式图像数据

函数原型:        int __stdcall LIVESCAN_GetFPBmpData(int nChannel, unsigned char *pBmpData);

参数:            int nChannel     通道号。输入参数。

unsigned char* pBmpData    指向存放采集BMP格式的指纹图像数据的内存块,调用者分配,大小应该为: 400字节×400字节+1078字节。输出参数。

返回值:          调用成功,返回大于0的整数。

<0 返回错误代码。

说明:            返回的图像数据为包括文件头在内的8位灰度BMP格式的图像,采集的图像宽和高为400像素×400像素,图像无压缩、无缩放,数据存储顺序为从左到右,从下到上。

如果采集接口不具备纠偏功能,采集成功返回1。

如果采集接口具备纠偏功能,指纹图像采集成功后纠偏失败,返回2,此时输出的图像数据为没有纠偏前的数据。

如果采集接口具备纠偏功能,指纹图像采集成功并且纠偏成功,返回3,输出的图像数据为纠偏后的数据。

4.14结束采集一帧图像

函数原型:        int __stdcall LIVESCAN_EndCapture(int nChannel)

说明:            遵循GA/T 626.1—2010中3.14规定。

4.15取得接口的版本

函数原型:        int __stdcall LIVESCAN_ GetVersion();

说明:            遵循GA/T 626.1—2010中3.20规定。

4.16获得接口的说明

函数原型:        int __stdcall LIVESCAN_GetDesc(char pszDesc[1024]);

说明:           遵循GA/T 626.1—2010中3.21规定。

4.17取得采集接口错误信息

函数原型:        int __stdcall LIVESCAN_GetErrorInfo(int nErrorNo,

char pszErrorInfo[256])

说明:           遵循GA/T 626.1—2010中3.22规定。

4.18图像采集接口错误代码

图像采集接口错误代码见表1。

其中错误代码从-1~-100为系统保留错误代码,用户可以自行定义的错误代码范围为-101~-200。 其他错误号码保留。

表1  图像采集接口错误代码

错误代码

说           明

-1

参数错误。给定函数的参数有错误。

-2

内存分配失败。没有分配到足够的内存。

-3

功能未实现。调用函数的功能没有实现。

-4

设备不存在。初始化的时候,检测到设备不存在。

-5

设备未初始化。

-6

非法的错误号。

-7

没有授权。

-8~-100

系统保留。

-101~-200

用户自定义。

5    指纹比对接口

5.1获得比对算法版本

函数原型:           long __stdcall LIVESCAN_Get_Version(char

*pcVersionInfo)

参数:               char *pcVersionInfo 厂家及算法版本标识,其长度由外部调用者分配,长度为6字节。输出参数。

返回值:             调用成功返回1。

<0 返回错误代码。

5.2提取特征模板

函数原型:      long __stdcall  LIVESCAN__FeatureExtractMem(

unsigned char *  pcImageData, long lDataLen,

unsigned char *pcTemplateData)

参数:           unsigned char * pcImageData     给定待提取特征的(包括文件头在内的BMP格式的)指纹图像数据。输入参数。

long lDataLen                待提取特征的指纹图像数据长度,上限为640×640+1078字节。输入参数。

unsigned char * pcTemplateData 指向存放指纹特征模板的内存数据块,其大小为1024字节,由调用者分配。输出参数。

返回值:      若特征模板提取成功(同时应生成特征模板数据),该返回值代表算法对输入图像的品质评价系数,取值为1~100 的整数,该系数值愈小表示图像质量愈差,该系数值愈大则表示图像质量愈好;若输入像图像的质量不满足算法提取特征的返回0。

说明:          从指纹图像数据中抽取特征模板,若发生其他不可预测错误,如给定的数据格式不可识别等情况,该函数返回-1,识别算法负责捕获异常。

5.3特征模板比对

函数原型:     long __stdcall  LIVESCAN__FeatureMatchMem (unsigned char * pcTemplateDataA, unsigned char *pcTemplateDataB,

float *pfSim)

参数:         unsigned char * pcTemplateDataA 给定参与比对的第1个特征模板数据,其长度为1024字节。输入参数。

unsigned char * pcTemplateDataB  给定参与比对的第2个特征模板数据,其长度为1024字节。输入参数。

float *pfSim                   参与比对的两个特征模板数据匹配的相似度,大小为0.00~4.00,按第5位4舍5入方式取小数点后4位。输出参数。

返回值:     若成功完成比对返回1,如果发生其他不可预测错误,如给定的特征模板数据格式不可识别等情况,该函数返回-1。两个文件比对的相似度通过pfSim 参数返回,相似度为0.00~4.00 的浮点数,相似度越大,表示两个模板匹配程度越高。

说明:        比较两个输入的特征模板文件,返回相似度。

6    示例

6.1指纹采集示例

正常的情况下,采用下面的流程来使用采集设备(本流程不包括错误判定的步骤)。

unsigned char pData[400*400+1078];  //指纹图像数据

unsigned char pTplDataA[1024]; //特征模板A

int nChannelCount;

int nRtn;

FILE *fp;

LIVESCAN_Init();

nChannelCount = LIVESCAN_GetChannelCount();

if ( nChannelCount>1 ) {

//让用户选择使用那个通道;

}

LIVESCAN_ SetVideoWindow(hWnd) //实时视频预览

// 假设使用通道0采集指纹

for(;;)

{

LIVESCAN_BeginCapture(0);

//采集一幅尺寸为400*400的bmp格式的指纹图像数据

LIVESCAN_GetFPBmpData(0, pData);

//特征提取

LIVESCAN__FeatureExtractMem(pData, 400*400+1078, pTplDataA);

//存储提取到的指纹特征模板

fp = fopen(“c:\\fingerprint.tpl”,”wb”);

fwrite(pTplDataA,1,1024,fp);

fclose(fp);

LIVESCAN_EndCapture(0) ;

}

LIVESCAN_Close();    // 关闭采集设备。

采集的流程图见图1。

7)指纹模板编码及封装

通过指纹仪获得的指纹模板数据(2枚模板的二进制数据流)按《电子出入境证件信息结构标准》进行数据格式封装。对经过封装的指纹模板数据按A LOGICAL DATA STRUCTURE FOR CONTACTLESS INTEGRATED CIRCUIT DATA STORAGE TECHNOLOGE( Section III) of Specification for Electronically Enabled Passports with Biometric Identification Capability (volume 2) of 《Machine Readable Travel Documents》(ICAO DOC9303) 进行TLV封装。对指纹模板数据生成以TPL结尾的文件。

8)指纹采集过程实时监控

所有申请人指纹采集过程通过外接摄像头全程监控。支持所有能与电脑连接的WDM(win32 Driver model)模式的摄像头。

电脑启动时可自动连接摄像头,摄像头异常断开连接时应自动检测发现,并可恢复使用状态。

对申请人指纹采集过程监控时,所获得摄像头视频数据,须在主程序相应位置实时显示,支持实时预览。

 

3、采集指纹卡按捺指纹

a)   支持所有TWAIN接口普通扫描仪对指纹卡采集。按捺后的指纹卡(十指指纹卡)通过扫描仪扫描(600DPI)存为BMP图像。也应支持从指定的目录读取已扫描的指纹卡图像(BMP格式)。

b)   采集程序读取指纹卡扫描图片,对有按捺指纹的位置,自动提取指纹图片,并根据图像在指纹卡所处的位置自动赋予相应的指位。

c)   如指纹不能建模,应可由操作人员对提取图像位置进行微调或对图像进行旋转,调整后重新尝试建模。

d)   按照指纹采集顺序,并最终确认2枚指头作为存储的指纹。

 

4、申请人手写签名采集

a) 支持所有TWAIN接口普通扫描仪对手写签名采集。也应支持从指定的目录读取已扫描的申请人手写签名图像(BMP格式)。

b) 申请人手写签名签在出入境证件申请表上的特定区域,通过扫描仪扫描(400-600DPI)申请表指定区域,获得申请人的手写签名BMP格式图像。

c) 对手写签名BMP图像文件进行自动裁剪,仅保留签名区域的最小范围,并去除签名区域的噪声点。

d) 对保留的签名区域图像进行二值化处理,二值化后仍要尽可能保留原手写签名特征。

e) 二值化处理完成后采用DEFLATE压缩算法压缩,要求实现方式为调用zlib.lib(V1.2.5版)的compress函数进行压缩。最终存储为本地文件,文件后缀名为.ZIP。

5、采集制证人像(可选)

a)    可通过控制数码照相机拍摄制证相片或扫描仪扫描申请人的制证相片(扫描分辨率为300DPI以上),或通过指定目录读取已采集的制证相片,相片格式为JPG(相片的背景为白色、浅灰色、浅蓝色,其中:浅灰色的RGB参考值不小于220、220、220,浅蓝色的HSB参考值210、21%、79%)。

b)    要求支持所有TWAIN接口的普通扫描仪。当扫描仪异常断开连接时应自动检测发现,并可恢复使用状态。

c)    程序要对采集的制证人像进行归一化处理,处理要求如下:图像品质系数不低于 85,相片的像素须354*472,图像文件大小范围为20K字节~80K字节之间。

d)    归一化之后的相片应调用“相片质量检测程序”进行质量检查(相片质量检测程序的调用接口附后),不合格相片应提示或重新拍照、扫描。

 

6、采集现场人像(可选)

a)    支持连接所有WDM(win32 Driver model)模式的摄像头。电脑启动时可自动连接摄像头,摄像头异常断开连接时应自动检测发现和恢复使用状态,在主屏显示实时的动态人像。

b)    摄像头拍摄操作应可通过鼠标或快捷热键操作,可控制摄像头焦距,可根据受理点光线情况进行光补偿。

c)    采集的现场人像规格要求:文件图像格式为JPEG,人像二眼瞳孔距离大于 30像素,图像文件大小范围为5K字节~10K字节之间。

7、生成文件

1)文件命名规则

系统采集的数据需在指定目录生成文件,以下8类文件均必须生成,如现场人像、制证人像等未采集也应对应生成空文件,生成文件的命名规则如下:

条形码(15位)+“-”+指纹图像采集结果(2位)+指纹模板采集结果(2位)+“-”+指位码1(1位)+ 指位码2(1位)+“-”+厂家算法版本(6位)+“-”+指纹仪厂商ID号(2位)+“-”+图像质量分值(3位) +“-”+比对算法质量分值(3位)+“-”+芯片写入标记(2位,其值取为“01”) +“.” +文件后缀名。

例如数据文件名:

310010050100001-1111-72-FRI001-01-080-070-01.WSQ

310010050100001-1111-72-FRI001-01-080-070-01.JPG

310010050100001-1111-72-FRI001-01-080-070-01.TPL

310010050100001-1111-72-FRI001-01-080-070-01.JPZ

310010050100001-1111-72-FRI001-01-080-070-01.ZIP

310010050100001-1111-72-FRI001-01-080-070-01.ERR

310010050100001-1111-72-FRI001-01-080-070-01.MD5

索引文件名

310010050100001-1111-72-FRI001-01-080-070.INX

命名规则中各部分意义如下所述:

条形码:申请人受理编号,长度为15位;

指纹图像采集结果:第1位表示第1枚指纹图像采集结果, 第2位表示第2枚指纹图像采集结果。每一位取值为0或1,0表示无指纹图像,1表示有指纹图像。

指纹模板采集结果:第1位表示第1枚指纹模板采集结果, 第2位表示第2枚指经纹模板采集结果。每一位取值为0或1,0表示无指纹模板,1表示有指纹模板。

指位码1:采集到的第一枚指纹图像指位码,长度为1位。其值为0、1、2、3、4、5、6、7、8、9、A。如果指纹图像采集结果第1位值为0,则指位码1的值为0。

指位码2:采集到的第二枚指纹图像指位码,长度为1位。其值为0、1、2、3、4、5、6、7、8、9、A。如果指纹图像采集结果第2位值为0,则指位码2的值为0。

厂家算法版本:前三个字节为厂商标志,后三个字节为指纹算法代码,指纹采集仪动态库按照《出入境管理电子旅行证件指纹采集设备接口规定》须以“厂家算法版本”命名,采集系统从指纹采集仪动态库的名字获得“厂家算法版本”内容。

指纹仪厂商ID:指纹采集设备厂商ID编号,长度为2位。指纹采集仪按《出入境管理电子旅行证件指纹采集设备接口规定》返回指纹仪厂商ID,代码表如下:

指纹厂商

厂商代码

长春鸿达光电子与生物统计识别技术有限公司

04

浙江师大计海新技术有限公司

10

北京北大高科指纹技术有限公司

13

北京海鑫科金高科技股份有限公司

17

深圳华视电子读写设备有限公司

17

北京东方金指科技有限公司

19

北京欣网科科技有限公司

22

图像质量分值:程序按“采集指纹图像及质量检测”要求对第一枚指纹图像的质量打分,图像质量分用3位阿拉伯数字表示,其范围在0—100之间,值越大表示图像质量越好,如果没有指纹图像,其值为0。如果图像质量分小于100,采取前补“0”的方法补足3位。

比对算法分值:指纹采集仪按《出入境管理电子旅行证件指纹采集设备接口规定》应返回对指纹图像的质量判断分值,比对算法分用3位阿拉伯数字表示,其范围在0—100之间,值越大表示图像质量越好,如果第一枚指纹图像不存在或比对算法无法对第一枚指纹图像提取特征模板,其值为0。如果比对算法分小于100,采取前补“0”的方法补足3位。

芯片写入标志:“01”表示采集的指纹模板数据目前还无需写入芯片。

文件后缀名: WSQ:加密后的指纹图像信息文件;TPL:指纹模板信息文件;ERR:异常信息文件;JPG:现场人脸图像文件;MD5:现场人脸图像、指纹模板、异常信息文件MD5加密文件;INX:是数据文件的索引文件;JPZ:制证人像图像文件;ZIP:经裁减处理的二值化手写签名图像压缩文件。

异常文件:文件内容为异常结果文字描述。

2)生成各类文件要求

a)     ERR文件。当无法采集到2枚模板数据时属于采集异常,必须生成ERR文件,文件中记载的应是“采集异常信息”中的中文描述内容。若不存在采集异常则生成空的ERR文件。

b)     WSQ文件。对采集的指纹图像经“指纹图像编码及封装”后,并使用指纹受理编码作为密钥进行一次DES加密。如果两幅指纹图像都不存在,则生成内容为空的DES加密数据。

c)     MD5文件。对指纹WSQ文件和指纹模板数据TPL文件进行MD5摘要,生成MD5文件,指纹WSQ文件指进行“指纹图像编码及封装”后未作DES加密前的文件。

对指纹图像和模板做MD5摘要,MD5摘要为32字节。MD5摘要顺序为第一幅指纹图像WSQ数据(10k) + 第二幅指纹图像WSQ数据(10k) + 第一幅指纹图像对应的模板(1K)+ 第二幅指纹图像对应的模板(1K)按照上述顺序做摘要。若对应的项不存在(此时对应的数据长度为0),下一项递补完成MD5摘要。如果无图像和模板,生成内容为空的MD5数据。

 

8、用户管理

生物特征采集处理可执行程序应具备一定的用户管理能力,进入系统应进行用户登录,用户管理须具备“新建用户、修改用户、删除用户、用户授权”等信息系统用户管理功能。用户类别应分为:系统管理员、指纹采集员、管理民警。用户信息包括:警号、名字、用户密码、用户类别。

9、系统自动更新

系统应具备自动更新功能。应在公安网上建立更新服务器,发布新的版本或程序更新时,在服务器上发布,各终端在配置好服务器地址后,自动检测到新程序后实现终端程序自动更新。

(二) 指纹核验应用接口

申请人在进行生物特征信息采集后,可进行证件受理,证件受理时需对受理的指纹信息进行核验,需开发指纹核验应用接口供出入境管理信息系统调用,接口应封装为带界面的DLL或OCX程序。

1、指纹核验接口函数设计要求

接口函数名称为EpassportFingerCheckVerify,函数原型、参数、返回结果如下所示:

int   __stdcall  EpassportFingerCheckVerify (

char  czCurFingerImgResult[3],

char  czCurFingerTplResult[3],

char  czCurFingerPos1[2],

char  czCurFingerPos2[2],

unsigned char czCurFingerImgData[20605],

int nCurFingerImgDataLen,

unsigned char czKeySeed[32],

int nKeySeedLen,

unsigned char czCurFingerTplData[2155],

int  nCurFingerTplDataLen,

unsigned char czMd5[32],

int  nType,

char czExceptInfo[128],

int nMaxVerifyCount,

float fMatchGate ,

float *fSim1,

float *fSim2);

【输入参数】
char czCurFingerImgResult[3]  指纹图像采集结果

char czCurFingerTplResult[3]  指纹模板采集结果

char czCurFingerPos1[2]      第1枚指纹图像指位码

char czCurFingerPos2[2]      第2枚指纹图像指位码

unsigned char czCurFingerImgData[20605]    指纹图像信息数据

int  nCurFingerImgDataLen                指纹图像信息数据长度

unsigned char czCurKeySeed[32]            指纹图像密钥数据

int nCurKeySeedLen                      指纹图像密钥数据长度

unsigned char czCurFingerTplData[2155]      指纹模板信息数据

int  nCurFingerTplDataLen                指纹模板信息数据长度

unsigned char czMd5[32]       指纹图像和指纹模板的MD5摘要信息

int  nType                  核验时使用的数据类型,0-模板;1-图像

char czExceptInfo[128]        指纹异常信息,如果无异常信息值为NULL

int nMaxVerifyCount      同一手指核验不通过时最多核验次数(整数)

float fMatchGate         比对门限,指纹仪算法推荐值。

【输出参数】

float *fSim1            第1枚比对相似度值,如果输入的模板不存在,返回-1.0;如果核验时无法提取模板,则返回-2.0;系统强制退出,则返回-3.0。

float *fSim2            第2枚比对相似度值,如果输入的模板不存在,返回-1.0;如果核验时无法提取模板,则返回-2.0;系统强制退出,则返回-3.0。

【返回值】

指纹核验接口函数返回值表

返回值

描述意义

1

核验成功 (采集时无图像无模板,核验时手指信息属实)

2

核验成功 (采集时1幅图像无模板,核验时对应手指无法提取指纹模板,手指信息属实)

3

核验成功 (采集时1幅图像1个模板,核验时对应手指能够提取模板,并可正确匹配,并且手指信息属实)

4

核验成功 (采集时2幅图像无模板,核验时对应手指也无法提取模板)

5

核验成功 (采集时2幅图像1个模板,核验时对应的第1枚手指能够提取模板,并可正确匹配,对应的第2枚手指无法提取模板)

6

核验成功 (采集时2幅图像2个模板,核验时对应手指都可以提取模板,并且可以分别正确匹配)

11

核验失败,需要重新采集。(采集时第1枚指纹无模板,但核验时第1枚指纹能够生成模板)

12

核验失败,需要重新采集。(采集时第2枚指纹无模板,但核验时第2枚指纹能够生成模板)

21

核验失败 (核验时手指信息与采集时不一致)

22

核验失败 (采集时第1枚指纹有图像有模板,但核验时对应手指不能生成模板,或者生成的模板不能匹配)

23

核验失败 (采集时第2枚指纹有图像有模板,但核验时对应手指不能生成模板,或者生成的模板不能匹配)

31

未完成核验,系统强制退出

101

输入参数中,指纹图像采集结果不正确。正确的参数应为“00”,“10”或“11”

102

输入参数中,指纹模板采集结果不正确。正确的参数应为“00”,“10”或“11”

103

输入参数中,指纹图像采集结果与模板采集结果不匹配。正确的匹配关系是:图像采集结果参数为“00”时,模板采集结果参数应为“00”;图像采集结果参数为“10”时,模板采集结果参数可能为“00”或“10”;图像采集结果参数为“11”时,模板采集结果参数可能为“00”,“10”或“11”。

104

输入参数中,指位码不正确。指位码合法的范围是“0~9”,或“A”

105

输入参数中,指纹模板长度不正确。可能的长度为:0,1119,或2155。

106

无法正确解析输入参数中的指纹模板数据

107

输入参数中指纹模板数目与模板数据解析后获得的指纹模板数目不符

108

输入参数中的指位码与模板数据解析后获得的指位码不符

109

输入参数中,指纹图像数据长度不正确。可能的长度为:0,10351,或20605。

110

无法正确解析输入参数中的指纹图像数据

111

输入参数中指纹图像数目与图像数据解析后获得的图像数目不符

112

输入参数中的指位码与图像数据解析后获得的指位码不符

113

MD5摘要校验不成功

114

输入参数中,比对相似度的门限值不正确。正确值应介于0与1之间

115

输入参数中,最大核验次数不正确。正确的值应为大于0的整数。

200

指纹识别算法未能加载

201

指纹采集设备未找到

202

指纹采集设备初始化失败

203

系统运行过程中指纹采集设备未找到

204

指纹采集设备其他错误

2、指纹核验过程

(1)支持连接通过《出入境管理电子旅行证件指纹采集设备接口规定》认证测试的警用指纹采集仪或民用指纹采集仪,指纹采集仪异常断开连接时应自动检测发现,并可恢复使用状态。并显示实时的动态指纹图像。

(2)按照《出入境管理电子旅行证件指纹采集设备接口规定》的接口要求,通过“提取特征模板”接口(long  __stdcall LIVESCAN_FeatureExtractMem (unsigned char *pcImageData, long lDataLen,unsigned char *pcTemplateData))和“特征模板比对”接口(long  __stdcall LIVESCAN_FeatureMatchMem)进行指纹特征比对。

(3)指纹核验程序根据出入境系统传入的指位信息,应有语音提示申请人按捺相应手指,通过指纹采集仪获得指纹图像,并通过指纹仪所带算法生成指纹模板。

(4)根据出入境系统传入的生物特征采集处理系统采集的指纹图像,需根据密钥进行DES解密,再与指纹模板信息一并进行MD5信息的校验,校验成功方可开始核验。

(5)解密之后的指纹图像与核验采集仪获得的图像进行比对。如预采集的2枚指纹均有模板,则需要2枚指纹分别比对值均高于阀值,为核对一致;如预采集仅有一枚指纹有模板,则仅需该枚指纹核对一致;如预采集2枚指纹均无模板,则仅需核对指纹采集情况是否与预采集时是否一致。核对一致,认为指纹核对通过。

3、历史指纹核验

在指纹核验通过后,如申请人之前申领过电子证件并采集过指纹信息,可调用历史指纹核验接口。历史指纹核试验接口封装于“指纹核验应用接口”程序包内。

1)历史指纹核验接口设计要求

接口函数名为:EpassportMatchLatestFinger

接口函数名称为EpassportMatchLatestFinger,原型、参数、返回结果如下:

int   __stdcall  EpassportMatchLatestFinger (

unsigned char czLatestFingerImgData[20605],

int nLatestFingerImgDataLen,

unsigned char czLatestKeySeed[32],

int nLatestKeySeedLen,

int  nMatchLatestFingerPos,

float  fMatchGate,

float *fSim)

【输入参数】
unsigned char czLatestFingerImgData[20605]   历史指纹图像信息数据

int nLatestFingerImgDataLen                历史图像信息数据长度

unsigned char czLatestKeySeed[32]           历史指纹密钥数据

int nLatestKeySeedLen                     历史指纹密钥长度

int  nMatchLatestFingerPos                 需要比对的指位

float  fMatchGate                         历史指纹比对门限

【输出参数】

float *fSim        历史指纹比对相似度值。若无法正常比对,则返回-1.0.

【返回值】

历史指纹比对函数返回值表

返回值

描述意义

1

历史指纹比对通过 (历史指纹与当次指纹相似度值不小于上位系统设定的门限)

2

历史指纹比对不通过 (历史指纹与当次指纹相似度值小于上位系统设定的门限)

3

历史图像长度不正确。可能的长度为:0,10351,或20605;其他值不正确。

4

历史图像无法正确解析

5

输入参数中无指定指位的历史图像

6

指定指位的历史图像无法生成模板

7

当次采集的指纹中,无指定指位的指纹图像

8

当次采集的指纹中,指定指位的指纹图像无法生成模板

9

调用函数EpassportFingerCheckVerify前,调用了历史指纹比对函数

10

当次核验未通过时,调用了该函数

2)历史指纹核验过程

对出入境系统传入的历史指纹图像,需根据密钥进行DES解密,并判断历史指纹信息与本次申请存储的指纹图像是否有相同指位的图像信息,且同指位的图像可生成模板,以上条件均满足,可进行历史指纹核验。本次申请存储的指纹图像与历史指纹图像通过指纹仪自带算法进行比对。如有2枚预采集图像均符合上述条件,只需对第一枚进行历史指纹核验即可。预采集的指纹图像与历史指纹图像比对值高于阀值,为核对一致;认为历史指纹核验通过。

历史指纹核验在后台进行,不得增加申请人按捺指纹的次数。

(三)手写签名图像处理应用接口

1、手写签名图像处理过程

如手写签名图像采集功能非通过生物特征采集处理系统完成,需开发手写签名图像处理应用接口,用于出入境管理信息系统调用处理该图像。

手写签名图像处理应用接口功能为以内存方式传入已采集的手写签名BMP图像,对手写签名BMP图像文件进行自动裁剪,仅保留签名区域的最小范围,并去除签名区域的噪声点。再进行二值化处理,二值化后仍要尽可能保留原手写签名特征。并采用DEFLATE压缩算法,实现方式为调用zlib.lib(1.2.5版)的compress函数进行压缩。返回压缩后的内存块。

2手写签名图像处理接口设计要求

接口函数命名为:SegmentSignature_Mem。

接口函数SegmentSignature_Mem,原型、参数、返回结果如下:

int __stdcall  SegmentSignature_Mem(unsigned char* srcbuf,

long srcbufsize,

unsigned char* dstbuf,

long  dstbufsize

long* outputbufsize);

【输入参数】

unsigned char* srcbuf    原始的含有签名的图像数据,BMP格式(完整文件内容,需包含文件头)

long       srcbufsize   原始图像数据的长度

unsigned char* dstbuf    保存签名图像的缓存。需调用者分配和释放缓存,分配的缓存空间应足够大(建议不小于输入缓存)。

Long     dstbufsize    签名图像缓存的大小

long*     dstbufsize    输出签名图像的长度

【返回值】

返回值

描述意义

1

有签名,且已成功提取

0

无签名

-1

输入图像格式不正确

-2

输出缓存空间分配不足

-3

输入图像的水平或垂直分辨率低于400DPI

-4

图像中签名部分高度小于0.5cm或者宽度小于1cm

-5

输入参数原始签名图像数据指针,或者输出处理后签名图像数据指针为空

-6

内存分配失败

-7

压缩失败

(四)指纹一对一比对应用接口

1、指纹一对一比对过程

指纹一对一比对应用接口,用于出入境管理信息系统采集指纹和受理岗位合一,不需要进行指纹核验,只需要进行历史指纹比对时调用此接口。

根据出入境系统传入的历史指纹图像,需根据密钥进行DES解密,并判断历史指纹信息与预采集的指纹图像是否有相同指位的图像信息,且同指位的预采集图像须可以生成模板,以上条件均满足,可以开始进行历史指纹核验。预采集指纹图像与历史指纹图像通过指纹仪自带算法进行比对。如有2枚预采集图像均符合上述条件,只需对第一枚进行历史指纹核验即可。预采集的指纹图像与历史指纹图像比对值高于阀值,为核对一致;认为历史指纹核验通过。

历史指纹核验在后台进行,不得增加申请人按捺指纹的次数。

2、指纹一对一比对接口设计

接口函数命名为:MatchLatestFinger。

接口函数MatchLatestFinger,原型、参数、返回结果如下:

int   __stdcall  MatchLatestFinger(

unsigned char czLatestFingerImgData[20605],

int nLatestFingerImgDataLen,

unsigned char cLatestzKeySeed[32],

int nLatestKeySeedLen,

unsigned char czCurFingerTplData[2155],

int  nCurFingerTplDataLen,

int  nMatchFingerPos,

float fMatchGate

float* fSim)

【输入参数】

unsigned char czLatestFingerImgData [20605]  历史指纹图像信息数据

int  nLatestFingerImgDataLen              历史指纹图像信息数据长度

unsigned char cLatestzKeySeed [32]          历史指纹图像密钥数据

int nLatestKeySeedLen                    历史指纹图像密钥数据长度

unsigned char czCurFingerTplData [2155]     当前采集的指纹模板信息数据

int  nCurFingerTplDataLen                当前指纹模板信息数据长度

int  nMatchFingerPos                    需要比对的指位数据 (1~10有效),1~9对应采集时的指位”1”~”9”,10对应指位”A”

float fMatchGate                         比对分数门限

【输出参数】

float *fSim,                   比对相似度值,如果无法比对则返回-1.0

【返回值】

返回值

描述意义

1

历史指纹比对通过 (历史指纹与当次指纹相似度值不小于上位系统设定的门限)

2

历史指纹比对不通过 (历史指纹与当次指纹相似度值小于上位系统设定的门限)

3

历史图像长度不正确。可能的长度为:0,10351,或20605;其他值不正确。

4

历史图像无法正确解析

5

输入参数中无指定指位的历史图像

6

指定指位的历史图像无法生成模板

7

当次采集的指纹模板数据长度不正确。可能的长度为0,1119,2155

8

当次采集的指纹模板无法正确解析

9

当次采集的指纹中,无指定指位的指纹模板

四、相关附件

(一)出入境管理数字人像质量检测软件接口说明

(二)出入境证件指纹捺印表式样

转载于:https://www.cnblogs.com/betterfar/archive/2012/06/29/2569678.html

公安出入境管理用指纹采集设备接口规范相关推荐

  1. 上海公安出入境管理 攻略 2016

    有个微信公众号 "上海公安出入境管理", 可以直接在上面预约好(预约的话去了现场预约都来得及), 然后现场有机器可以打印预约单, 总共有3个项目可以预约: 护照,台湾签证,港澳. ...

  2. 纹宁指纹采集设备完美适配国产化操作系统

    经过我们团队的不懈努力,纹宁信息自主研发的WMR06系列指纹采集设备终于适配了主流的国产化操作系统,这是纹宁信息向国产化操作系统迈出的坚实的一大步.欢迎国产软件爱好者.用户与我们探讨国产化软件的指纹应 ...

  3. 人员基础信息一体化采集设备及系统研发技术总结

    一.研发背景 随着智慧监狱.智慧公安.智慧看守所.智慧戒毒所等工作的智慧化建设,根据建设一个平台.三大支撑.六大体系的总体框架,全力打造"大平台共享.大系统共治.大数据慧治信息化新格局&qu ...

  4. 什么是声纹采集?标准声纹采集设备有什么作用?派出所采集声纹有什么意义?

    一.什么是声纹识别? 声纹识别,也叫做说话人识别是一项根据语音波形中反映说话人生理和行为特征的语音参数,来识别语音说话者身份的技术.由于每个人的发声器官(舌.牙齿.喉头.肺.鼻腔)在尺寸和形态方面不尽 ...

  5. 喝杯水都能泄露指纹?屏下指纹识别设备被攻破

    在手机.电子锁.保险箱等产品中广泛运用指纹解锁,真的安全吗? 10月24日,在上海举行的GeekPwn 2019国际安全极客大赛上,在20分钟的挑战时间内,腾讯安全玄武实验室研究人员完成了指纹识别破解 ...

  6. C#开发ActiveX控件及指纹采集

    最近做一个指纹采集和比对的功能,因为公司整个项目是WEB类型的,所以指纹采集的模块要嵌套在网页中,那只有用ActiveX了,以下是一些操作及效果,做个笔记! 新建用户控件,编写CS代码,如下: usi ...

  7. 云图说|华为HiLens云上管理平台 花样管理多种端侧设备

    摘要:华为HiLens作为端云协同多模态AI开发应用平台,支持对接和管理多种端侧计算设备,帮助用户开发多模态AI应用并下发到端侧设备,实现多场景的智能化解决方案. 本文分享自华为云社区<[云图说 ...

  8. 城市能源管理系统、实时监测、运行监测、负荷效应、预警管理、设备管理、设备入库、设备安装、设备检修、设备报废、设备查询、控制策略、系统集成、HTML/CSS/Bootstrap/jQuery/JS

    源码类别: 后台模板 文件大小: 3074 KB 城市能源管理系统响应式HTML模板 前端技术: HTML/CSS/Bootstrap/jQuery/JS 适用范围:PC端,前端页面展示 文件类型: ...

  9. 商业智能在公安交通管理领域的应用

    随着商业智能和大数据的价值不断深入人心,各行各业均有了不同程度的探索,近几年,商业智能系统开始在公安交通管理领域得到普及应用.相信未来,基于大数据分析的行业应用将更加深入,商业智能和大数据在公安领域的 ...

最新文章

  1. java使用jdbc调用hive出现The query did not generate a result set!
  2. Kotlin实战指南十一:扩展函数
  3. 上一页下一页_Excel打印时一页放不下,4招轻松搞定,省下的纸叫老板加工资
  4. wedo2.0编程模块介绍_能量黑科技模块系列十:RFID魔块
  5. python3 爬虫实战:mitmproxy 对接 python 下载抖音小视频
  6. LiveCoding
  7. 赚钱第一,投资第二,才是正确的财富获取方式
  8. Hadoop群集设置
  9. JSONArray ja = JSONArray.fromObject(list);//特殊类 用于将list转化为JSON 数据并返回 out.print(ja);...
  10. java打印模板_怎样做一个word模板,用java调用打印功能
  11. CodeWisdom软件供应链系列学术报告:第2期
  12. cloudera安装
  13. 采购订单税码检查增强(badi)
  14. Redis详解及使用
  15. 高级软件工程第八次作业:东理三剑客团队作业
  16. 项目(day01网站流量指标统计)
  17. 百度抢先发布中国版ChatGPT——文心一言,现已开通测试申请
  18. 【贪心】数列极差问题
  19. ISCC2021——wp
  20. 阿里技术出品:高可用的本质!

热门文章

  1. D-A-K方法求天然气偏差系数 以及等温压缩系数、天然气体积系数、天然气黏度的计算。牛顿迭代法。
  2. java判断简体和繁体字_如何判断一个字符串是繁体编码还是简体编码?????????...
  3. idea与windows输入法热键冲突解决方法
  4. 微粒贷来了,看看你有多少额度!
  5. 20个期末作业——学生个人html静态网页制作 基于HTML+CSS+JavaScript+jquery仿苏宁易购官网商城模板
  6. 《精益数据分析》-第一部分概括笔记
  7. 计算机地质绘图实验报告,计算机地质绘图实习报告作业二.doc
  8. 结论太小,以致于大家都看不见它
  9. 【读点论文】Fawkes: Protecting Privacy against Unauthorized Deep Learning Models 添加像素扰动来实现图片的对抗AI识别
  10. Ubuntu下使用Thunderbird收发QQ邮箱