第12章 里程碑(2/2)
这个模块会对识別结果进行多重验证:
身份证號码必须是18位,前17位是数字,最后一位是数字或x身份证號码的前6位是地区码,必须是有效的行政区划代码身份证號码的7-14位是出生日期,必须是合理的日期(比如月份不能超过12)身份证號码的最后一位是校验码,可以根据前17位计算出来性別信息必须与身份证號码的第17位对应(奇数为男,偶数为女)
这些规则可以过滤掉大部分识別错误。
“清雪,测试数据整理好了吗?“陈阳问。
“好了。“沈清雪揉了揉眼睛,把excel文件发给他,“500张都录完了。“
“辛苦了。“陈阳接收文件,“现在开始测试。“
他写了一个批量测试脚本,把500张测试图片全部跑一遍。
测试程序开始运行,进度条慢慢前进。
沈清雪坐在旁边,紧张地看著屏幕。
十分钟后,测试完成。
陈阳打开结果报告:
总测试样本:500张
成功识別:497张
识別错误:2张
识別失败:1张
综合准確率:99.4%
平均识別时间:0.9秒
“99.4%!“沈清雪惊呼,“真的做到了!“
陈阳看著屏幕上的数字,嘴角露出笑容。
他点开那3张失败的案例:
第一张,是一张严重磨损的一代身份证,上面的文字已经模糊到肉眼都很难辨认。
第二张,拍照时光线极差,整张照片几乎是黑的。
第三张,身份证被严重摺叠过,文字完全变形。
“这三种情况確实很难处理。“陈阳说,“但99.4%的准確率,已经超过人眼的识別水平了。“
“超过人眼?“沈清雪不太理解。
“对。“陈阳解释道,“人工录入身份证信息,出错率大概在1%-2%。因为数字和字母容易看错,比如0和o,1和i,8和b。我们的系统准確率99.4%,错误率只有0.6%,已经比人工更准確了。“
“太厉害了!“沈清雪兴奋地握拳。
陈阳又测试了几遍,確认系统稳定后,开始写部署脚本。
他要把这个系统部署到伺服器上,做成web api的形式,这样任何人都可以通过上传图片来调用识別服务。
凌晨四点,部署完成。
陈阳打开瀏览器,输入伺服器地址,一个简洁的页面出现在屏幕上。
中间是一个上传框,下方有一行字:“支持jpg、png、bmp格式,最大5mb“。
“试试看。“陈阳说。
沈清雪用手机拍了一张自己的身份证,然后上传。
不到一秒钟,识別结果就显示出来了:
姓名:沈清雪
性別:女
民族:汉
出生日期:1994年08月12日
住址:湘南省星城市xx號
身份证號码:3xxxxxx
签发机关:星城市公安局
有效期限:2012.05.10-2022.05.10
“完全正確!“沈清雪看著屏幕,“而且真的好快!“
陈阳又测试了几张不同情况的照片:倾斜的、模糊的、反光的,都能准確识別。
“搞定。“陈阳保存了代码,“身份证识別系统,正式完成。“
他看了看时间,凌晨四点半。
窗外天还是黑的,但已经能听到远处传来清晨的鸟叫声。
“我们成功了!“沈清雪兴奋地转过椅子,眼睛亮晶晶的。
“嗯,第一个里程碑。“陈阳笑道。
两人对视了几秒,然后沈清雪忽然意识到什么,脸微微一红,转过头去。
“那、那现在怎么办?“她问。
“先睡一觉。“
陈阳站起身,活动了一下僵硬的脖子,
“下午再更新官网,发帖推广。“