当前位置: 首页 > news >正文

网站被墙怎么做跳转黑龙江新闻最新消息今天

网站被墙怎么做跳转,黑龙江新闻最新消息今天,wordpress留言板模板下载,wordpress建站好么0 前言 #x1f525; 优质竞赛项目系列#xff0c;今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖#xff0c;适合作为竞赛课题方向#xff0c;学长非常推荐#xff01; #x1f9ff; 更多资料, 项目分享#xff1a; https://gitee.com/dancheng-sen…0 前言 优质竞赛项目系列今天要分享的是 基于机器视觉的身份证识别系统 该项目较为新颖适合作为竞赛课题方向学长非常推荐 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 实现方法 1.1 原理 1.1.1 字符定位 在Android移动端摄像头拍摄的图片是彩色图像上传到服务器后为了读取到身份证上的主要信息就要去除其他无关的元素因此对身份证图像取得它的灰度图并得到二值化图。 对身份证图像的的二值化有利于对图像内的信息的进一步处理可以将待识别的信息更加突出。在OpenCV中提供了读入图像接口函数imread, 首先通过imread将身份证图像读入内存中 ​ id_card_img cv2.imread(path_img) 之后再调用转化为灰度图的接口函数cvtColor并给它传入参数COLOR_BGR2GRAY,它就可以实现彩色图到灰度图的转换代码如下 ​ gray_id_card_img cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY) preprocess_bg_mask PreprocessBackgroundMask(boundary) 转化为二值化的灰度图后图像如图所示 转换成灰度图之后要进行字符定位通过每一行进行垂直投影就可以找到所有字段的位置具体如下 然后根据像素点起始位置确定字符区域然后将字符区域一一对应放入存放字符的列表中 ​ vertical_peek_ranges extract_peek_ranges_from_array(vertical_sum,minimun_val40,minimun_range1)vertical_peek_ranges2d.append(vertical_peek_ranges)最后的效果图如图所示 1.1.2 字符识别 身份证识别中最重要的是能够识别身份证图像中的中文文字(包括数字和英文字母)这里学长采用深度学习的方式来做 1身份证图像涉及个人隐私很难获取其数据训练集。针对此问题我采用获取身份证上印刷体汉字和数字的数据训练集的方法利用Python图像库PIL将13类汉字印刷体字体转换成6492个类别建立了较大的字符训练集 2如何获取身份证图片上的字符是在设计中一个重要问题。我采用水平和垂直投影技术首先对身份证图像进行预处理然后对图片在水平和垂直方向上像素求和区分字符与空白区域完成了身份证图像中字符定位与分割工作有很好的切分效果 3在模型训练中模型的选择与设计是一个重要的环节本文选择Lenet模型发现模型层次太浅然后增加卷积层和池化层设计出了改进的深层Lenet模型然后采用Caffe深度学习工具对模型进行训练并在训练好的模型上进行测试实验表明模型的测试精度达到96.2%。 1.1.3 深度学习算法介绍 深度学习技术被提出后发展迅速在人工智能领域取得了很好的成绩越来越多优秀的神经网络也应运而生。深度学习通过建立多个隐层的深层次网络结构比如卷积神经网络可以用来研究并处理目前计算机视觉领域的一些热门的问题如图像识别和图像检索。 深度学习建立从输入数据层到高层输出层语义的映射关系免去了人工提取特征的步骤建立了类似人脑神经网的分层模型结构。深度学习的示意图如图所示 1.1.4 模型选择 在进行网络训练前另一项关键的任务是模型的选择与配置因为要保证模型的精度要选一个适合本文身份证信息识别的网络模型。 ​ 首先因为汉字识别相当于一个类别很多的图片分类系统所以先考虑深层的网络模型优先采用Alexnet网络模型对于汉字识别这种千分类的问题很合适但是在具体实施时发现本文获取到的数据训练集每张图片都是6464大小的一通道的灰度图而Alexnet的输入规格是224224三通道的RGB图像在输入上不匹配并且Alexnet在处理像素较高的图片时效果好用在本文的训练中显然不合适。 其次是Lenet模型没有改进的Lenet是一个浅层网络模型如今利用这个模型对手写数字识别精度达到99%以上效果很好在实验时我利用在Caffe下的draw_net.py脚本并且用到pydot库来绘制Lenet的网络模型图实验中绘制的原始Lenet网络模型图如图所示图中有两个卷积层和两个池化层网络层次比较浅。 2 算法流程 3 部分关键代码 ​ cv2_color_img cv2.imread(test_image)##放大图片resize_keep_ratio PreprocessResizeKeepRatio(1024, 1024)cv2_color_img resize_keep_ratio.do(cv2_color_img) ##转换成灰度图cv2_img cv2.cvtColor(cv2_color_img, cv2.COLOR_RGB2GRAY)height, width cv2_img.shape##二值化 调整自适应阈值 使得图像的像素值更单一、图像更简单adaptive_threshold cv2.adaptiveThreshold(cv2_img, ##原始图像255, ##像素值上限cv2.ADAPTIVE_THRESH_GAUSSIAN_C, ##指定自适应方法Adaptive Method这里表示领域内像素点加权和cv2.THRESH_BINARY, ##赋值方法二值化11, ## 规定领域大小一个正方形的领域2) ## 常数C阈值等于均值或者加权值减去这个常数adaptive_threshold 255 - adaptive_threshold## 水平方向求和找到行间隙和字符所在行numpyhorizontal_sum np.sum(adaptive_threshold, axis1)## 根据求和结果获取字符行范围peek_ranges extract_peek_ranges_from_array(horizontal_sum)vertical_peek_ranges2d []for peek_range in peek_ranges:start_y peek_range[0] ##起始位置end_y peek_range[1] ##结束位置line_img adaptive_threshold[start_y:end_y, :]## 垂直方向求和分割每一行的每个字符vertical_sum np.sum(line_img, axis0)## 根据求和结果获取字符行范围vertical_peek_ranges extract_peek_ranges_from_array(vertical_sum,minimun_val40, ## 设最小和为40minimun_range1) ## 字符最小范围为1## 开始切割字符vertical_peek_ranges median_split_ranges(vertical_peek_ranges)## 存放入数组中vertical_peek_ranges2d.append(vertical_peek_ranges)## 去除噪音主要排除杂质小的曝光点不是字符的部分filtered_vertical_peek_ranges2d []for i, peek_range in enumerate(peek_ranges):new_peek_range []median_w compute_median_w_from_ranges(vertical_peek_ranges2d[i])for vertical_range in vertical_peek_ranges2d[i]:## 选取水平区域内的字符当字符与字符间的间距大于0.7倍的median_w说明是字符if vertical_range[1] - vertical_range[0] median_w*0.7:new_peek_range.append(vertical_range)filtered_vertical_peek_ranges2d.append(new_peek_range)vertical_peek_ranges2d filtered_vertical_peek_ranges2dchar_imgs []crop_zeros PreprocessCropZeros()resize_keep_ratio PreprocessResizeKeepRatioFillBG(norm_width, norm_height, fill_bgFalse, margin4)for i, peek_range in enumerate(peek_ranges):for vertical_range in vertical_peek_ranges2d[i]:## 划定字符的上下左右边界区域x vertical_range[0]y peek_range[0]w vertical_range[1] - xh peek_range[1] - y## 生成二值化图char_img adaptive_threshold[y:yh1, x:xw1]## 输出二值化图char_img crop_zeros.do(char_img)char_img resize_keep_ratio.do(char_img)## 加入字符图片列表中char_imgs.append(char_img)## 将列表转换为数组np_char_imgs np.asarray(char_imgs)## 放入模型中识别并返回结果output_tag_to_max_proba caffe_cls.predict_cv2_imgs(np_char_imgs)ocr_res ## 读取结果并展示for item in output_tag_to_max_proba:ocr_res item[0][0]print(ocr_res.encode(utf-8))## 生成一些Debug过程产生的图片if debug_dir is not None:path_adaptive_threshold os.path.join(debug_dir,adaptive_threshold.jpg)cv2.imwrite(path_adaptive_threshold, adaptive_threshold)seg_adaptive_threshold cv2_color_img# color (255, 0, 0)# for rect in rects:# x, y, w, h rect# pt1 (x, y)# pt2 (x w, y h)# cv2.rectangle(seg_adaptive_threshold, pt1, pt2, color)color (0, 255, 0)for i, peek_range in enumerate(peek_ranges):for vertical_range in vertical_peek_ranges2d[i]:x vertical_range[0]y peek_range[0]w vertical_range[1] - xh peek_range[1] - ypt1 (x, y)pt2 (x w, y h)cv2.rectangle(seg_adaptive_threshold, pt1, pt2, color)path_seg_adaptive_threshold os.path.join(debug_dir,seg_adaptive_threshold.jpg)cv2.imwrite(path_seg_adaptive_threshold, seg_adaptive_threshold)debug_dir_chars os.path.join(debug_dir, chars)os.makedirs(debug_dir_chars)for i, char_img in enumerate(char_imgs):path_char os.path.join(debug_dir_chars, %d.jpg % i)cv2.imwrite(path_char, char_img) 4 效果展示 5 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://wiki.neutronadmin.com/news/350919/

相关文章:

  • 智慧团建网站登录电脑版成都网站建设找重庆最佳科技
  • 网站定制开发最简单的网站开发
  • 网站建设页面图做网站和做平台的区别
  • 南京定制网站哪个好虚拟邮箱注册网站
  • 网站地图是怎么做的黄山公司做网站
  • 网站设计配色案列郴州建网站
  • 网页设计素材网站营销手机软件开发定制
  • 期货贵金属网站建设网站建设企业模板哪家好
  • 网站开发设计运维秦皇岛在什么地方
  • 模板网站最大缺点重庆网站建设优化
  • 信丰网站制作公司平台
  • 网站的总体方案与功能设计满堂彩谁做的网站
  • 模块网站怎么做中山市建设工程 交易中心网站
  • 洛阳市住房和城乡建设局网站discuz注册
  • 网站建设与管理工作内容邢台有几个县
  • 中石油网页设计与网站建设义乌企业网站建设
  • 快刷网站挪威网站后缀
  • 视频网站建设成本网页设计素材以及效果图
  • 企业网站模板湖南岚鸿模板奉化网站关键词优化费用
  • 四川做网站公司wordpress 采集 伪原创
  • 怎么做垂直网站网站建设副业
  • 如何向搜索引擎提交网站网页设计实验总结报告
  • 唐山网址建站网站设计 书籍
  • 网站建设运维方案小外包公司
  • 手机哪里可以做视频网站怎么一键删除wordpress
  • 网站的ppt方案怎么做flask做网站
  • 手机做网站对比路由器做网站做网站镜像步骤
  • 我的网站在百度搜不到了网络推广途径和推广要点
  • 微软网站开发工具有哪些做花馍网站
  • 批量 网站标题给个网站好人有好报2020免费