“陈阳!“
沈清雪从教学楼另一侧跑过来,手里抱著书。
“你怎么在这儿?“陈阳问。
“刚下课啊。“
沈清雪说,“看到你跟姚教授在聊天,就没打扰。聊得怎么样?“
“还不错。“陈阳笑道,“姚教授对我的项目挺感兴趣的。“
“那当然,你做的东西这么厉害。“沈清雪说,“对了,你今晚去工作室吗?我也过去,帮你测试。“
“去。“陈阳说,“周末要把身份证识別做完,你来正好。“
“好!“沈清雪眼睛亮了,“我先回宿舍放书,晚饭后就过去。“
周五晚上七点,华清嘉园工作室。
陈阳坐在电脑前,手指在键盘上飞快地敲击。
屏幕上是密密麻麻的代码,都是他这几天写的身份证识別系统,以及验证数据增强技术。
因为获取不到大量的身份证原件,陈阳只能写了一整套数据增强的脚本来模擬,各种实际情况下出现的场景,比如:
隨机旋转:-30度到30度隨机缩放:0.8倍到1.2倍
隨机裁剪:模擬不同的拍照距离光照变化:模擬不同的光线条件
添加噪点:模擬图像质量差的情况
模糊处理:模擬对焦不清晰的情况
透视变换:模擬不同的拍照角度
用这些方法,他把手里的几张原始身份证图片,扩充到了20000张训练样本。
这种数据增强的技术,用少量真实数据,生成大量多样化的训练样本,让模型见过各种极端情况。
“陈阳,我来了!“
门开了,沈清雪提著一个大袋子走进来。
“买了什么?“陈阳转过头。
“吃的!“
沈清雪把袋子放在桌上,“我估计今晚又要熬夜,所以买了一堆零食。还有红牛,提神的。“
她从袋子里掏出一大堆东西:薯片、巧克力、饼乾、瓜子、红牛、咖啡。
“你这是搬超市了吗?“陈阳笑道。
“嘿嘿,有备无患嘛。“沈清雪拉了把椅子坐在他旁边,“现在进度怎么样了?“
“模型训练刚跑完第一轮。“陈阳指著另一台电脑的屏幕,上面显示著训练过程的曲线图。
“准確率多少?“
“92%。“陈阳说,“还不够,我的目標是99%以上。“
“99%?“沈清雪有些惊讶,“这么高?“
“必须高。“陈阳解释道,“身份证识別用在实名认证的场景,容错率很低。如果准確率只有90%,意味著每100张身份证就有10张识別错误,这在实际应用中是不可接受的。“
“那怎么提高准確率?“
“继续训练,优化参数,增加数据。“陈阳说,“另外,我准备加一个后处理模块,用规则约束来纠正一些明显的错误。比如身份证號必须是18位,出生日期必须是合理的日期格式等等。“
“明白了。“沈清雪点点头,“我能帮什么忙?“
“帮我准备测试数据。“陈阳把一个u盘递给她,“这里面有500张身份证图片,你帮我把每张的正確信息都录入到excel表格里。等模型训练完,我们用这些数据来测试准確率。“
“好!“沈清雪接过u盘,打开自己的电脑,开始工作。
两人就这样並肩坐著,各自忙各自的。
工作室里很安静,只有键盘的敲击声和电脑风扇的嗡鸣声。
偶尔沈清雪会问一句“这个字是什么“,陈阳就凑过去看一眼,然后告诉她。
时间一点点流逝。
晚上九点,模型训练完第二轮,准確率提升到95%。
晚上十一点,第三轮完成,准確率96.5%。
“累不累?“陈阳问沈清雪。
“还好。“沈清雪伸了个懒腰,“就是眼睛有点酸。“
“休息一下吧。“陈阳说,“出去走走。“
两人走出工作室,来到楼下的小区花园。
秋天的夜晚有些凉,风吹过来,树叶沙沙作响。
小区里很安静,只有几盏路灯还亮著。
“陈阳,“沈清雪忽然说,“我觉得一起做一件事情,一起努力,一起看著它慢慢成长。这种感觉,比上课有意思多了。“
陈阳看著她,月光下,她的脸上带著认真的表情。
“辛苦你了。“陈阳说,“明明可以在宿舍休息,却跟著我熬夜。“
“我愿意啊。“沈清雪笑道,“而且我也学到了很多东西。以前只是写写作业,现在才知道真正的项目是什么样的。“
两人在花园里走了一圈,然后回到工作室继续工作。
凌晨两点,陈阳完成了后处理模块的开发。
这个模块会对识別结果进行多重验证:
身份证號码必须是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
“完全正確!“沈清雪看著屏幕,“而且真的好快!“
陈阳又测试了几张不同情况的照片:倾斜的、模糊的、反光的,都能准確识別。
“搞定。“陈阳保存了代码,“身份证识別系统,正式完成。“
他看了看时间,凌晨四点半。
窗外天还是黑的,但已经能听到远处传来清晨的鸟叫声。
“我们成功了!“沈清雪兴奋地转过椅子,眼睛亮晶晶的。
“嗯,第一个里程碑。“陈阳笑道。
两人对视了几秒,然后沈清雪忽然意识到什么,脸微微一红,转过头去。
“那、那现在怎么办?“她问。
“先睡一觉。“
陈阳站起身,活动了一下僵硬的脖子,
“下午再更新官网,发帖推广。“
沈清雪从教学楼另一侧跑过来,手里抱著书。
“你怎么在这儿?“陈阳问。
“刚下课啊。“
沈清雪说,“看到你跟姚教授在聊天,就没打扰。聊得怎么样?“
“还不错。“陈阳笑道,“姚教授对我的项目挺感兴趣的。“
“那当然,你做的东西这么厉害。“沈清雪说,“对了,你今晚去工作室吗?我也过去,帮你测试。“
“去。“陈阳说,“周末要把身份证识別做完,你来正好。“
“好!“沈清雪眼睛亮了,“我先回宿舍放书,晚饭后就过去。“
周五晚上七点,华清嘉园工作室。
陈阳坐在电脑前,手指在键盘上飞快地敲击。
屏幕上是密密麻麻的代码,都是他这几天写的身份证识別系统,以及验证数据增强技术。
因为获取不到大量的身份证原件,陈阳只能写了一整套数据增强的脚本来模擬,各种实际情况下出现的场景,比如:
隨机旋转:-30度到30度隨机缩放:0.8倍到1.2倍
隨机裁剪:模擬不同的拍照距离光照变化:模擬不同的光线条件
添加噪点:模擬图像质量差的情况
模糊处理:模擬对焦不清晰的情况
透视变换:模擬不同的拍照角度
用这些方法,他把手里的几张原始身份证图片,扩充到了20000张训练样本。
这种数据增强的技术,用少量真实数据,生成大量多样化的训练样本,让模型见过各种极端情况。
“陈阳,我来了!“
门开了,沈清雪提著一个大袋子走进来。
“买了什么?“陈阳转过头。
“吃的!“
沈清雪把袋子放在桌上,“我估计今晚又要熬夜,所以买了一堆零食。还有红牛,提神的。“
她从袋子里掏出一大堆东西:薯片、巧克力、饼乾、瓜子、红牛、咖啡。
“你这是搬超市了吗?“陈阳笑道。
“嘿嘿,有备无患嘛。“沈清雪拉了把椅子坐在他旁边,“现在进度怎么样了?“
“模型训练刚跑完第一轮。“陈阳指著另一台电脑的屏幕,上面显示著训练过程的曲线图。
“准確率多少?“
“92%。“陈阳说,“还不够,我的目標是99%以上。“
“99%?“沈清雪有些惊讶,“这么高?“
“必须高。“陈阳解释道,“身份证识別用在实名认证的场景,容错率很低。如果准確率只有90%,意味著每100张身份证就有10张识別错误,这在实际应用中是不可接受的。“
“那怎么提高准確率?“
“继续训练,优化参数,增加数据。“陈阳说,“另外,我准备加一个后处理模块,用规则约束来纠正一些明显的错误。比如身份证號必须是18位,出生日期必须是合理的日期格式等等。“
“明白了。“沈清雪点点头,“我能帮什么忙?“
“帮我准备测试数据。“陈阳把一个u盘递给她,“这里面有500张身份证图片,你帮我把每张的正確信息都录入到excel表格里。等模型训练完,我们用这些数据来测试准確率。“
“好!“沈清雪接过u盘,打开自己的电脑,开始工作。
两人就这样並肩坐著,各自忙各自的。
工作室里很安静,只有键盘的敲击声和电脑风扇的嗡鸣声。
偶尔沈清雪会问一句“这个字是什么“,陈阳就凑过去看一眼,然后告诉她。
时间一点点流逝。
晚上九点,模型训练完第二轮,准確率提升到95%。
晚上十一点,第三轮完成,准確率96.5%。
“累不累?“陈阳问沈清雪。
“还好。“沈清雪伸了个懒腰,“就是眼睛有点酸。“
“休息一下吧。“陈阳说,“出去走走。“
两人走出工作室,来到楼下的小区花园。
秋天的夜晚有些凉,风吹过来,树叶沙沙作响。
小区里很安静,只有几盏路灯还亮著。
“陈阳,“沈清雪忽然说,“我觉得一起做一件事情,一起努力,一起看著它慢慢成长。这种感觉,比上课有意思多了。“
陈阳看著她,月光下,她的脸上带著认真的表情。
“辛苦你了。“陈阳说,“明明可以在宿舍休息,却跟著我熬夜。“
“我愿意啊。“沈清雪笑道,“而且我也学到了很多东西。以前只是写写作业,现在才知道真正的项目是什么样的。“
两人在花园里走了一圈,然后回到工作室继续工作。
凌晨两点,陈阳完成了后处理模块的开发。
这个模块会对识別结果进行多重验证:
身份证號码必须是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
“完全正確!“沈清雪看著屏幕,“而且真的好快!“
陈阳又测试了几张不同情况的照片:倾斜的、模糊的、反光的,都能准確识別。
“搞定。“陈阳保存了代码,“身份证识別系统,正式完成。“
他看了看时间,凌晨四点半。
窗外天还是黑的,但已经能听到远处传来清晨的鸟叫声。
“我们成功了!“沈清雪兴奋地转过椅子,眼睛亮晶晶的。
“嗯,第一个里程碑。“陈阳笑道。
两人对视了几秒,然后沈清雪忽然意识到什么,脸微微一红,转过头去。
“那、那现在怎么办?“她问。
“先睡一觉。“
陈阳站起身,活动了一下僵硬的脖子,
“下午再更新官网,发帖推广。“
