参考了很多网上的博客资源,有些只讲了如何提取身份证区域,有些只讲了如何做训练集。我将各个方法做了一些筛选和整合。身份证素材均来自网络。
实验目标
完成身份证识别程序,通过输入一张身份证图片,可以自动识别其身份证号码等信息。
软件环境
Opencv4.2+MFC
实现思路
1、 通过降噪、增强、计算阈值二值化输入的身份证图片,经过轮廓提取出身份证号所在的区域。
2、 整理训练集所用的身份证图片,反复利用(1)中方法切割提取出身份证上身份证号码的数字二值化图像,并依次整理分类至0~X的标签作为训练集。
3、 利用SVM支持向量模型,通过训练集的图像数据训练得识别模型。
4、 输入测试集的身份证图片,同样通过(1)中的过程提取出每个数字的二值化图像,通过(3)中的SVM进行预测识别,最终提取得出身份证号码。
实现过程
为了方便,测试集测试和训练集的相关操作都放在一个对话框上完成。
选择一张光线正常、角度正常的身份证照片,将其缩放至合适大小。