身份证号码的秘密(精选7篇)
身份证号码的秘密 第1篇
2004年我国开始使用二代居民身份证, 由于身份证编号能唯一确定一张身份证, 并能得到一些个人信息, 所以在大多数情况下, 身份证一般只登记身份证号码, 但登记还是采用人工方式, 这不仅耗时而且效率低下, 因此, 如何快速录入身份证号码成为急需解决的问题, 尤其是光学字符识别 (Optical Character Recognition, OCR) 技术被成功引用到证件行业上来, 身份证识别技术也得到广泛运用。
身份证号码的识别技术属于图像字符识别领域, 目前国内外采用较多的方法主要有两类:基于模板匹配OCR算法和基于神经网络的OCR算法[1,2]。目前随着人工智能领域深度学习的快速发展, 图像识别技术的研究和应用飞速发展, 并取得突破性进展, 光学字符识别技术也开始采用深度学习。其中卷积神经网络是深度学习[3]的一种高效识别算法, 将卷积神经网络 (Convolutional Neural Network, CNN) 运用到身份证号码识别中, 能够提高识别精度和增强鲁棒性。卷积神经网络可以直接输入原图像进行训练, 学习图像的特征, 经过训练后的网络可以用于字符的识别。
2 身份证号码的定位和提取
2.1 身份证号码的定位
虽然第二代居民身份证的大小是固定的, 但是拍照不像扫描获得的身份证图像固定, 因此, 不能直接通过身份证图像的大小来获取它的位置。图1 (a) 为通过拍照获得的身份证图像, 要求拍照的背景不要复杂, 比较简单, 能够和身份证形成比较大的差异, 并且身份证在图像中的位置要居中和占据80%左右的空间, 倾斜角不要太大, 以保证能够检测到身份证, 并不会对身份证号码的定位造成影响。不管身份证的尺寸如何, 身份证号码在身份证上的位置总是固定的, 结合先验知识和获得的身份证图像, 身份证号码位置要大于图像宽度的1/3。身份证上身份证号码总是处于人脸之下, 可以采用Matlab自带的Vision工具箱检测到人脸 (如图1 (b) 所示) , 身份证号码大概在检测到的人脸长度的1.2倍之下, 从而截取出包括身份证号码区域的一部分图像, 如图1 (c) 所示。
获得的一部分图像是彩色图像, 需要进行灰度化和二值化处理。常见的灰度化处理方法有平均值法、加权平均值法和最大值法等。通常加权平均值法[4], 按公式 (1) 对RGB三个分量进行加权平均能得到灰度图像。
式 (1) 中, F为像素的灰度值, R为彩色图像中红色分量的值, G为彩色图像中绿色分量的值, B为彩色图像蓝色分量的值。常见的二值化处理方法有全局固定阈值、自适应阈值二值化和OSTU法。采用了迭代法进行二值化[5], 其思想是利用迭代的方法最终找到一个最佳的分割阈值, 二值化后得到如图1 (d) 所示。
通常二值化后会用投影分割切割出身份证号码, 但是图像区域还是略大, 而且还有些其他的非号码区域, 因此, 继续采用一些图像处理技术来更好地提取出身份证号码图像, 达到要求。首先是对图像进行开运算, 使得图像形成几个连通域, 接着用8邻域标记连通域。因为身份证号码高度基本一致, 所以身份证号码连通域将被合并。图像形成的连通域可能不止包括身份证号码, 还有其他的部分, 因此, 需要计算连通域的面积来进行号码区域匹配, 选取匹配度接近1的连通域, 并对目标区域分别向上下左右延伸7个像素, 最后在原图像上提取出身份证号码图像, 如图2所示。
2.2 单个字符提取
获得身份证号码图像后, 需要对图像进行字符分割, 提取出单个字符。可以通过投影分割的方法来实现, 步骤如下:
(1) 对图像进行加权灰度化;
(2) 用迭代二值化方法二值化灰度图像;
(3) 采用像素水平投影和垂直投影[6]法切割出单个字符, 图3为切割后的18个灰度化字符。
3 基于卷积神经网络的字符识别
3.1 深度学习
深度学习是机器学习研究中的一个新的领域, 目的在于模仿人脑的机制来解释数据, 例如图像、声音和文本。深度学习采用了神经网络的分层结构, 系统包括输入层、隐藏层和输出层组成的多层网络, 只有相邻的节点之间有连接, 同一层以及跨层节点之间相互无连接, 通过对给定的训练集不断训练, 主动学习一些特征, 从而建立模型。深度学习首先利用无监督学习对每一层网络进行逐层预训练, 每次用无监督学习只训练一层, 并将训练结果作为更高一层的输入, 最后用监督学习去调整所有层。CNN[7-9]是深度学习的一个重要算法, 也是一种多层神经网络, 通过卷积来模拟特征区分, 并且通过卷积的权值共享及池化, 来降低网络参数数量级, 最后通过神经网络[10,11]完成分类等任务。
3.2 CNN网络模型
深度学习的CNN网络结构主要考虑网络层数、卷积层神经元数和子采样层神经层数, 以及最后输出层的神经层数。CNN网络结构如图4所示, 参考了Caffe Net[12]模型, 网络共有8层, 其中前5层是卷积层, 后3层是全连接层, 由于身份证号码有0~9和X共11类, 因此, 最后一个输出分类层是作为分类的总数。
4 实验
本文由于采用了基于深度学习的身份证号码识别方法, 训练需要大量的数据集, 而从实际中获取不现实, 因此本文采用自己合成的数据集, 用身份证号码区域的背景, 身份证号码字体OCR-B 10 BT, 融合了不同的高斯噪声、不同的字体倾斜角、字体大小不同、RGB不同以及区域大小, 并且将18位身份证号码加入验证, 确保符合真实的身份证号码要求, 得到了10W张身份证号码图像, 如图5所示, 并且每一张图像都有标签。
用二值化和投影分割切出字符, 将其分到11类中。本次实验是基于ubuntu 14.10, GTX 980的机器, 深度学习的框架是Caffe, 通过输入原图像, 将图像归一化为64*64大小, 训练图像接近18W, 其中有768个字符没有切割出来, 训练迭代5W次, 得到模型, 训练准确率接近100%。通过自己拍照获得了541张身份证图像, 身份证号码数共9 738个, 用之前的方法切割出9 643个字符, 切割正确率为99%, 测试的识别率为98%, 其中错误的共195个。实验过程中有一些身份证号码图像切割出错, 测试识别出错最多的是0, 图6为切割出错的真实身份证号码图像示例。
5 结语
本文针对二代身份证拍照识别的问题进行了研究, 提出了基于深度学习的字符识别方法, 该方法对身份证的号码有很高的识别率, 对字符的倾斜和大小有很好的鲁邦性。但当分割出来的字符不太完整、图像质量比较差时识别会有一定影响。
参考文献
[1]凌小静'路小波'黄卫.车牌字符识别[C]//全国交通运输领域青年学术会议, 2003.
[2]王敏, 黄心汉, 魏武, 等.一种模板匹配和神经网络的车牌字符识别方法[J].华中科技大学学报:自然科学版, 2001, 29 (3) :48-50.
[3]孙志军, 薛磊, 许阳明, 等.深度学习研究综述[J].计算机应用研究, 2012, 29 (8) :2806-2810.
[4]李贞培, 李平, 郭新宇, 等.三种基于GDI+的图像灰度化实现方法[J].计算机技术与发展, 2009, 19 (7) :73-75.
[5]李开, 陈礼安'曹计昌.基于灰度多值化的身份证号码识别[J].计算机工程与应用, 2015, 51 (13) :191-196.
[6]杨晓娟, 宋凯.基于投影法的文档图像分割算法[J].成都大学学报:自然科学版, 2009, 28 (2) :139-141.
[7]李彦冬, 郝宗波, 雷航.卷积神经网络研究综述[J].计算机应用, 2016, 36 (9) :2508-2515.
[8]徐姍姍.卷积神经网络的研究与应用[D].南京:南京林业大学, 2013.
[9]郑永森.基于卷积神经网络的身份证号码识别研究与实现[J].计算机光盘软件与应用, 2015 (3) :13-14.
[10]施少敏, 马彦恒, 陈建泗.基于BP神经网络的数字识别方法[J].兵工自动化, 2006, 25 (10) :40-41.
[11]陈先昌.基于卷积神经网络的深度学习算法与应用研究[D].杭州:浙江工商大学, 2013.
身份证号码各位数字的含义 第2篇
新的18位身份证号码各位数字的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码;
7-14位出生年月日,比如19670401代表1967年4月1日; 15-17位为顺序号,其中17位男为单数,女为双数; 18位为校验码,0-9和X,由公式随机产生。举例:
***4010012这个身份证号的含义:13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为验证码。
15位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码;
7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别; 13-15位为顺序号,其中15位男为单数,女为双数; 与18位身份证号的第二个区别:没有最后一位的验证码。
举例:
***1001的含义;13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001。
居民身份证是国家法定的证明公民个人身份的证件。为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要点:
一、居民身份证的整体识别
1、居民身份证规格为88mm×60mm,四角呈圆弧状。式样为聚脂薄膜密封、持证人像片和登记内容一体化的单页卡式,即证件是经翻拍印制后塑封而成。
2、证件正面主要颜色为红、绿二色,印有中华人民共和国国徽和证件名称,以及环状、网状、团状花纹图案;背面为浅绿色,印有中华人民共和国版图、持证人标准像片,以及网状花纹图案,姓名、性别、民族、出生年月日、住址五个登记项目和签发日期、有效期限、编号三个项目及签发机关印章。新的防伪居民身份证背面透视全息图象由长城峰火台图象IDCHINA中国等字样组成。“ID长城峰火台图象CHINA中国”在“中国CHINAID”组成的背景前由内向外依次排列。
证件签发机关为县公安局、不设区的市公安局和设区的公安分局。
3、居民身份证从登记项目、填写内容和颜色上还有其他两种形式: a.民族自治地方颁发的居民身份证。
证件背面五个登记项目和签发机关印章,同时使用汉字和相应的少数民族文字印刷和刻制(宁夏回族自治区除外)。常见的少数民族文字有:维吾尔文、哈萨克文、蒙古文、藏文、朝鲜文、壮文、彝文等。
证件“出生年月日”的登记项目改为“出生日期”。如:内地和经济特区颁发的证件,登记为“出生1949年10月1日”,民族自治地方颁发的证件则登记为“出生日期1949.10.1”。
证件填写内容分为只书写汉字(如广西壮族自治区和内蒙古自治区部分地区)和同时书写汉字和少数民族文字(如新疆维吾尔自治区、西藏自治区、内蒙古自治区部分地区、吉林省延边朝鲜族自治州和四川、云南、青海、甘肃、黑龙江、吉林、辽宁等省部分民族自治地方)两类。少数民族文字在上方,汉字在下方(蒙古文文字在左,汉字在右)。
对加入中国国籍的外国人,如本人的民族名称与我国民族名称不同,本人是什么民族就填写什么民族,但民族名称后应加注“入籍”二字,如“民族乌克兰(入籍)”。
b.经济特区颁发的居民身份证识别:
证件正面主体颜色为海蓝色,背面为浅蓝色。证件背面右上角有一个压模全息特殊标记,规格为9mm×12mm的全息标志图案。海南省经济特区的全息标志图案为五指山和太阳;深圳、珠海、汕头和厦门经济特区的全息标志图案为有带“T”字的盾牌符号。
二、居民身份证有效期限与持证人年龄、签发日期的关系
居民身份证的有效期限分为10年、20年、长期三种。16周岁至25周岁的,发给有效期为10年的居民身份证;26周岁至45周岁的,发给有效期为20年的居民身份证;46周岁以上的,发给长期有效的居民身份证。证件有效期限从签发之日起计算。如某人1949年9月20日出生,1984年35周岁时申领居民身份证,签发日期为1984年12月31日,他属于26至45周岁这一年龄段,证件有效期限属于20年这一档次,到2004年12月30日有效期满。
查验或检查时,应对照检查证件有效期限与持证人年龄,签发日期三者之间的关系。
三、居民身份证编号识别
1、身份证编码规则如下:根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码(身份证前六位)表示编码对象第一次申领居民身份证时的常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站http://查询到最新的县及县以上的行政编码资料。)生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。
顺序码(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。
校验码(身份证最后一位)是根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出来的检验码。
2、从1999年10月1日起,全国实行公民身份证号码制度,居民身份证编号由原15位升至18位。前6位为地址码;第七位至14位为出生日期码,此码由6位数改为8位数,其中年份用4位数表示;第15位至17位为顺序码,取消了顺序码中对百岁老人使用的特定编号;第十八位为校验码,主要是为了校验计算机输入公民身份证号码的前17位数字是否正确,其取值范围是0至10,当值等于10时,用罗马数字符χ表示。
四、临时身份证识别
临时身份证规格、登记项目均与居民身份证相同。临时身份证正面为长城、群山和网状花纹图案,颜色为蓝色。背面为网状图案,颜色为黄色。临时身份证使用与本人身份证相同的编号;常住户口特定人员的临时身份证编号也按居民身份证编号原则和方法编15位码。
临时身份证有效期限分为3个月和一年两种:尚待领取居民身份证或证件丢失、损坏尚待领补人员发给有效期3个月的临时身份证,使用阿拉伯数字填写;常住户口特定人员发给有效期一年的临时身份证,使用汉字填写。
经济特区使用的临时身份证不加特区全息标记和荧光印刷图案。
五、身份证第18位(校验码)的计算方法
1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
2、将这17位数字和系数相乘的结果相加。
3、用加出来和除以11,看余数是多少?
4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。
5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。
例如:某男性的身份证号码是***01X。我们要看看这个身份证是不是合法的身份证。首先我们得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的数字是x。所以,可以判定这是一个合格的身份证号码。
身份证号码的秘密 第3篇
关键词:Excel2007;身份证号码;妙用
我们在使用Excel2007进行人事档案管理,需要在单元格中输入身份证号码,会碰到如何输入身份证号码的问题。我们又知道身份证号码里包含了每个人的出生日期、性别等信息,那么如何从身份证号码里提取有用的信息呢?
1身份证号码的输入
在Excel2007中,在单元格中输入15位数字的时候,Excel2007会自动将其转换成科学记数法显示,执行“格式”菜单→“单元格”命令,设置数值格式,就能显示15位的老身份证号码。现在新的身份证号码一般为18位,用同样的方法,15位以后的数字会变为0。例如123456789012345678,回车,设置数值格式就会变为123456789012345000。那么如何输入18位身份证号码呢?
方法一:把18位身份证号码作为数字文本输入,在输入数字前先输入单引号。这种方法在输入前总要输入单引号,显得有点繁琐。
方法二:在輸入数字之前,先选定需要输入的单元格,然后单击“格式”菜单中的“单元格”命令,找到“数字”项中的“自定义”命令,然后在其右面的“类型”框中选择“@”项,“确定”之后再输入即可。
2避免重复输入身份证号码
俗话说得好,解决问题要从根本抓起。在需要输入学号、身份证号码等具有唯一性的数据时,完全有条件也应该做到不出现重复的数据。过去这么难:打开“条件格式”对话框,在右侧的输入框中输入类似于“=COUNTIF($A$2:$A$21,A2)>1”这样的公式,当然还需要通过“格式→图案”设置相关的颜色,确认后才能避免在A2:A21的单元格区域中出现重复数据。
2007更简单:首先选中A2:A21单元格区域,接下来切换到“开始”标签页,在“条件格式”下拉菜单中选择“突出显示单元格规则→重复值”,此时会打开“重复值”对话框,在这里可以自行定义重复值单元格的颜色,例如设置为醒目的红色,确认后即可生效。以后,每当输入重复数据时,当前单元格会立即变成红色。
如果木已成舟,大量的数据已经输入完毕,此时你需要做的恐怕就是将相关的重复数据找出来后将其删除。过去这么难:需要通过高级筛选隐藏重复项,然后再将不重复的项复制到其他的工作表中,前前后后需要好几个步骤才能解决问题,操作也颇为麻烦。
2007很简单:选中需要删除重复项的单元格区域,然后切换到“数据”标签页,直接单击工具栏中的“删除重复项”,此时会打开“删除重复项”对话框,确认后即可将指定区域中的重复项一次性清除。注意,选择处理区域时最好不要选择标题行。
3身份证号码中提取生日
大家都知道,身份证号码已经包含了每个人的出生年月日,对于老式的15位身份证而言,7-12位即个人的出生年月日,对于新式的18位身份证而言,7-14位代表个人的出身年月日。根据身份证号码的这种排列规律,结合Excel2007的有关函数,我们就能实现利用身份证号码自动输入出生年月日。
假设在A列单元格中输入身份证号码,在B列单元格中输入“=IF(LEN(A2)=15.CONCATENATE(“19”,MOD(A2,7,2),“年”MID(A2,9,2),“月”,MID(A2,11,2),“日”),CONCATENATE(MID(A2,7,4),“年”,MID(A2,11,2),“月”,MID(A2,13,2),“日”))”这样的公式,很容易提取到生日。共用到四个函数,作用分别为:
(1)IF(10gical_test,value_if_true,vat-ue_iUalse):根据逻辑表达式测试的结果,返回相应的值。IF函数允许嵌套;
(2)LEN(text):返回文本字符串中字符个数;
(2)CONCA7ENATE(textl,text2……):将若干个文字项合并至一个文字项中;
(4)M[D(textstart-num,num_chars):从文本字符串中指定的起始位置起,返回指定长度的字符。
4判断性别
身份证号码中,老式的15位的身份证号码最后一位为性别(奇数为男,偶数为女)。对于新式的18位身份证,17位(即倒数第二位)为性别(同样奇数为男,偶数为女)。只要输入“=IF(LEN(A2)=15,1F(MOD(MID(A2,15,1),2)=1,“男”,“女”),1F(MOD(MID(A2,17.1),2)=1”,“男”,:女”))”这样的公式,即可从身份证号码中判断性别。用到一新函数MOD(number,divisor):返回两数相除后的余数。
5身份证号码中算年龄
根据前面出生年月日求年龄,我们可以编辑“=(YEAR(TODAY())-YEAR(A1))“这样的公式。A1中存放的是出生年月日,并用到两个函数,作用分别为:
(1)TODAY():返回系统的日期;
身份证号码的秘密 第4篇
作为居民身份的象征, 身份证已成为生活中必不可少的证件。出于保障公民合法权益和社会治安的考虑, 越来越多的行业都开始要求进行实名制和身份证登记管理, 如公安、海关、银行、通信、网吧及酒店旅馆、洗浴业等, 因此利用计算机进行自动识别录入尤为必要。身份证自动识别代替手工录入可以大大提高工作效率, 因而具有广阔的应用前景。
本文以第二代居民身份证为研究对象, 从身份证号码图像中提取号码数字0~9的空间分布特征和结构特征, 采用相似系数最大和结构特征一致准则, 应用Matlab软件编程实现了身份证号码的快速识别。
2 基本原理
身份证号码识别技术的基本原理如图1所示。
第二代居民身份证的大小是固定的, 宽度为8.6cm, 高度为5.4cm, 因此扫描身份证得到的图像可以缩放到同一个大小, 本文采用的图像宽度为366个像素, 高度为233像素, 这样在从身份证图像中提取号码数字图像时可以快速定位。
由于第二代居民身份证的号码字体比较特殊, 所以需要从身份证图像中获取号码数字0~9的图像作为样本, 用于提取特征。样本数字图像如图2所示。
该样本数字图像为真彩色图像, 需要对其进行预处理。首先将真彩色数字图像转化为二值图像:设P为真彩色数字图像的任意点, P的颜色三分量值分别为r、g、b, 若0.299*r+0.587*g+0.114*b<0.5, 则二值图像对应的点为白色, 否则为黑色。然后对二值图像进行数字分割, 将图像中的10个数字完整、单独地分割出来。最后对分割后的每个数字图像进行规范化处理:若单个数字图像的整行或整列全为0, 则删除该行或该列。预处理后的各样本数字图像如图3所示。
注:为达到较好的视觉效果, 在每个样本数字图像周围増加了一个黑色矩形方框。
完成预处理后, 接下来就是提取每个数字的特征。本文考虑每个数字的空间分布情况和形状结构特点, 作为分类识别的特征。
2.1 空间分布特征
首先将预处理后的样本数字图像看成是有质量的图形, 其中白色点的质量为1, 黑色点的质量为0。该图形的质心坐标总体上能反映对应数字的空间分布情况, 用x1和x2分别表示质心横坐标和纵坐标, 则x1等于该样本数字图像中白色点的横坐标之和除以白色点的个数;x2等于该样本数字图像中白色点的纵坐标之和除以白色点的个数。
再将样本数字图像等分成上、下两个部分, 用x3和x4分别表示该样本数字图像上半部分的质心横坐标和纵坐标;用x5和x6分别表示该样本数字图像下半部分的质心横坐标和纵坐标。
最后将样本数字图像等分成左、右两个部分, 用x7和x8分别表示该样本数字图像左半部分的质心横坐标和纵坐标;用x9和x10分别表示该样本数字图像右半部分的质心横坐标和纵坐标。
各区域的质心横坐标为该区域内的白色点的横坐标之和除以该区域内的白色点的个数;各区域的质心纵坐标为该区域内的白色点的纵坐标之和除以该区域内的白色点的个数。
这10个质心坐标组成的向量:
就是该样本数字图像对应的数字的空间分布特征。逐个计算各数字的空间分布特征向量, 并将它们存放于数组中。
2.2 结构特征
采用数字的空间分布特征可以将数字“1”、“2”、“4”、“5”、“7”正确识别出来, 但数字“0”、“3”、“6”、“8”、“9”有时却不能正确识别。针对这几个会出现误判情形的数字进行分析, 不难发现它们的形状结构特征明显, 数字“0”和“6”及“9”含有一个洞;数字“3”不包含洞;数字“8”包含两个洞。由于身份证号码字体的特殊性, 数字“1”、“2”、“4”、“5”、“7”均不含有洞。
Matlab中的bweuler函数返回二值图像的欧拉数。欧拉数是对图像的拓扑度量, 它是指图像中对象的总个数与这些对象中洞的个数的差, 可以使用4连通或8连通邻域。各数字的欧拉数参见表1。
本文采用8连通邻域, 将各样本数字图像的欧拉数作为它的结构特征, 并存放于数组中E (10) 。
2.3 分类识别准则
样本数字图像的空间分布特征和结构特征分别存于数组digital (10, 10) 和E (10) 中。对于待识别身份证号码 (共18个) 的目标, 按照前面类似的处理过程, 提取各号码数字的空间分布特征和结构特征, 并存放于数组obj (18, 10) 和objE (18) 中。
令x= (x1, x2, , .., x10) T为目标号码数字的空间分布特征, y= (y1, y2, ..., y10) T为样本号码数字的空间分布特征, 定义两者的相似系数为:
对于待识别的目标数字号码, 计算该数字号码的空间分布特征与10个样本数字的空间分布特征的相似系数, 其分类识别准则是:在结构特征一致的条件下, 相似系数最大的对应的样本数字就是该目标号码的识别结果。
3 程序实现
采用Matlab6.5 (release R 13) 作为开发工具, 在Windows XP平台下实现了身份证号码的快速识别。
图4是程序使用的身份证图像, 程序输出结果为:350426198107282635。对多个身份证图像进行测试, 均得到正确的结果。
身份证号码识别的程序代码如下:
四、结论
本文对第二代居民身份证的号码数字进行分析, 提出了基于空间分布特征的相似系数最大和结构特征一致的分类识别准则, 使得识别方法较简单, 对多个身份证图像进行测试 (将程序中的IDCard01.jpg替换为待测试的身份证图像文件名) , 均能快速、准确识别。
参考文献
[1]邢如义, 夏冰, 袁红云.印刷体数字快速识别方法.河北建筑科技学院学报, 2004;21 (3) :65-67.
[2]苏金明, 王永利编著.MATLAB7.0使用指南.电子工业出版社, 2004.
WPS表格身份证号码的输入 第5篇
①启动WPS表格,在单元格输入身份证号码。
②可以看见,单元格并没有显示正确的号码,而是一长串的数字,用科学计数法显示,
③右击该单元格,选择设置单元格格式。
④在数字标签里面选择文本,确定。
身份证号码的秘密 第6篇
一、软件的设计步骤
二、软件详细设计
1. 解决方案与软件特色
本程序使用VB在Windows XP环境开发, 解决了身份证号码验证过程中存在的易出错、工作量大的问题, 支持Excel文件批量验证及信息追加, 绿色免安装、小巧、实用性强。
2. 具体设计
下面就根据软件的操作流程图进行介绍软件的功能和实现原理:
(1) 操作流程图。
参数设置说明:身份证号码、性别、出生年月所在列均以阿拉伯数字表示, 性别、出生年月信息的追加属于选择项。
(2) 身份证号码校验值计算函数代码。
函数参数为18位身份证号码, 返回值为身份证号码的校验值, 即身份证号码最后一位, 整个计算过程严格按照GB11643-1999《公民身份号码》中的规定完成。
(3) 验证代码。
“Msg Box”数据验证完成, 到文件中查看验证结果“&” (共验证“&hs1&”条记录, 发现“&err&”处身份证错误信息) “, 48, ”提示
(4) 验证代码需要完成的任务。
①判断身份证号码所在列参数填写是否正确;②判断是否追加性别、出生年月及所在列参数;③读取Excel文件中的身份证号码, 根据调用计算身份证号码校验码sfzjym函数判断身份证号码是否正确;④对正确的身份证号码自动校正小写x为大写X;⑤给Excel文件反馈判断信息及错误原因, 若选择追加性别、出生年月选项, 将对正确的身份证号码相关记录添加性别、出生年月;⑥弹窗提示验证信息量与错误信息量, 并自动打开验证的Excel文件。
三、程序所体现特点与应用性
身份证号码的秘密 第7篇
一、性别的生成方法
目前居民身份证号码使用的18位的编码, 它的第17位为性别 (偶数为女, 奇数为男) , 第18位为效验位。
使用函数的表达式为:
=IF (MOD (MID (E2, 17, 1) , 2) =1, “男”, “女”
解释
1、LEN函数返回指定文本型数据的函数。
语法:LEN (<字符表达式>)
该函数返回指定字符表达式的长度。空格将作为字符进行计数。例如:
2、MOD函数返回两数相除后的余数。余数的正负号与除数相同。
语法:MOD (number1, number2) Number1为被除数;number2为除数。例如:
3、MID函数返回文本字符串中从指定位置开始的特定数目的字符, 该数目由用户指定。
语法:MID (string, start, length)
string为字符串表达式, 从中返回字符;Start为string中要提取的第一个字符的位置, 文本string中第一个字符为1, 以此类推;length为从文本中返回字符的个数。例如:
4、IF函数用于执行真假值判断后, 根据逻辑测试的真假值返回不同的结果, 因此If函数也称之为条件函数。
语法:IF (logical-test, value-if-true, value-if-false)
简言之, 如果第一个参数logical_test返回的结果为真的话, 则执行第二个参数Value_if_true的结果, 否则执行第三个参数Value_if_false的结果。
理解了上述几种函数后, 前面提出的函数的意思是:若身份证编号的第17位是偶数, 则性别为“女”, 否则为“男”。
在如图的E列依次输入身份证号, 要求在C列输出学生的性别。在C2单元格中输入如下公式:“=IF (MOD (MID (E2, 17, 1) , 2) =1, “男”, “女”) ”。回车后即可在单元格获得该学生的性别, 而后只要把公式复制 (将插入点放在C2单元格的句柄处, 按住鼠标左键不松手向下拖动) 到C3、C4等单元格, 即可得到其他学生的性别。
二、出生日期的生成
在D2单元格内输入:
然后确认, 即可得到该职工的出生日期, 再往下拖动填充柄, 其他职工的出生日期也就生成了。注:最好将出生日期这列的数据设置成日期型。
上式中关于DATE函数的解释:DATE函数返回年月日。
语法:DATE (year, month, day) 。例如:
摘要:向单位的人事表格中录入员工的性别与出生年月等信息往往需要花费大量的时间。本文依据身份证号码的编排规律, 设计出一个函数公式。在向Excel表格中输入新旧身份证号码时, 该公式均能有效识别并自动生成性别以及出生年月, 从而大大地提高了工作效率。