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

长春网站建设 找源晟大连市建设工程网官网

长春网站建设 找源晟,大连市建设工程网官网,建设成一个网站的程序,自己怎么制作logo图标一、任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别#xff0c;涉及保密的原因#xff0c;这里就不能粘贴出具体的图片了#xff0c;下面粘贴出一张类似需要识别的图片。 假如说我的数据源如上图所示#xff0c;那么我需要做的工作就是将上面图片里面标红的数… 一、任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别涉及保密的原因这里就不能粘贴出具体的图片了下面粘贴出一张类似需要识别的图片。 假如说我的数据源如上图所示那么我需要做的工作就是将上面图片里面标红的数字给识别出来。 我采用的算法是GitHub - YCG09/chinese_ocr: CTPN DenseNet CTC based end-to-end Chinese OCR implemented using tensorflow and keras这是基于Tensorflow和keras框架采用ctpndensenetCTC算法来完成对图片指定内容的字符识别。 二、 图像标注 既然要进行OCR识别那么一定要对已有的数据源进行图像标注工作这里采用的工具是labelImg相信大家如果有搞深度学习这块的话一定对这个工具不会陌生。 对图像具体的标注流程我这里就不做说明了网上有很多资料可以查找。这里需要作特别说明的是对于ctpn的训练label的名字为text对于densenet的训练来说的话就需要把标注框里面的内容当作label。 然后就是数据增强这块这里需要记录的有两点一就是原始的数据源比较少就必须做数据增强不然做出来的效果肯定不太行二就是怎么做数据增强由于这里的数据比较简单需要识别的内容也是有规律可行的那这里就用不着采用比较复杂的数据增强所以我做的数据增强就是对图像随机进行裁剪和倾斜当然这里裁剪的尺寸和倾斜的角度一定要控制好不然就会影响图片的质量。 import cv2 import numpy as np import random import os from PIL import Image# 数据增强的代码img_path r ***************** save_path r ****************# 随机倾斜图片 def rotate_ima(img_path,save_path):for file in os.listdir(img_path):img cv2.imread(os.path.join(img_path, file ), 0 )rows,cols img.shape# cols-1 and rows-1 are the coordinate limits.# 每张图片倾斜4张for i in range ( 4 ):a random.randint( 2 , 6 )print (a)# 指定左右倾斜for j in range ( 2 ):a - aM cv2.getRotationMatrix2D(((cols - 1 ) / 2.0 ,(rows - 1 ) / 2.0 ),a, 1 )dst cv2.warpAffine(img,M,(cols,rows))#cv2.imshow(img,img)#cv2.imshow(dst,dst)cv2.imwrite(os.path.join(save_path, rot_ str (i) _ str (j) file ),dst)#cv2.waitKey(0)cv2.destroyAllWindows()# 随机裁剪图片 def cut_img(img_path,save_path):all_file []for file in os.listdir(img_path):all_file.append( file )file1 random.sample(all_file, 2 )for x in file1:im Image. open (os.path.join(img_path,x))crop_all []for c in range ( 5 ):  # 对每张图片随机生成5张for i in range ( 4 ):a random.randint( 100 , 400 )crop_all.append(a)region im.crop((crop_all[ 0 ],crop_all[ 1 ],im.size[ 0 ] - crop_all[ 2 ],im.size[ 1 ] - crop_all[ 3 ]))region.save(os.path.join(save_path, cut_ str (c) _ x))#rotate_ima(img_path,save_path) cut_img(img_path,save_path) 然后我大概生成了3000张左右的图片就开始进行数据标注了标注了大概六七个小时才把这些数据标注给完成。 有了这些标注数据过后就可以正式开始训练了。 三、CTPN训练 关于CTPN训练流程在chinese_ocr/ctpn at master · YCG09/chinese_ocr · GitHub的readme已经说的很清楚了。但是我这里就列出我所踩的坑吧。 最开始我直接把标注的数据制作成VOC2007数据集的格式丢进去训练然后训练出来的效果并不好后面我才在周围同事的提醒下有一个关键的步骤忘了做。 因为CTPN是进行文字检测并不同于普通的目标检测它的检测原理是对单个的字符进行检测然后拼接在一起。 因为我们在进行数据标注的时候是对一整行文本进行拉框标注但是如果要进行CTPN训练的话就需要对这个框划分成很多个矩形小框划分的方法就是上面的split_label.py程序。 但是要进行上面一步的前提就是需要更改标注文件使用labelImg标注出来的文件是一个图像对应一个xml文件但是这里需要更改成一个图像对应一个txt文件txt里面存放的是标注框的四个坐标共计八个点注意坐标点的顺序。如下所示 410,1554,1723,1554,1723,1736,410,1736 然后在运行split_label.py接着ToVoc.py这里面的代码细节需要自行更改这里就不做说明了。 然后就可以正式开始训练了截图如下 这里粘贴出一个错误需要注意 解决方案就是删除cache文件夹 四、DenseNetCTC训练 DenseNetCTC训练主要分为两个步骤一是图像处理二是txt文件处理。 图像处理的话在我们拿到标注好的数据之后需要对原始图像进行裁剪工作就是根据标注的坐标裁剪出具体的图像就拿上面的图像来说我们需要的图像如下所示。 然后再对裁剪后的图像进行resize工作resize成(280,32)这样的话图像处理这一部分就算完成了。 txt处理的话这里我们需要对xml文件进行一系列处理来达到下面的效果。 前面card_900.jpg代表图像名称后面这一串字符代表需要识别的字符在下面这个文件里面的位置索引。 注意这里txt里面存放的是所有图像里面待识别字符的编号不是一个图像对应一个txt。 做到这一步过后在把生成的txt划分成训练集和测试集就算成功制作出来训练DenseNet的数据集了。 然后就可以开始训练了截图如下 五、总结 这次这个小的OCR项目历时大概十天左右从数据标注再到训练模型里面踩了很多坑也做了很多次尝试也查阅了很多资料也向周围同事请教了很多次总算功夫不负有心人总算完成了这次项目。 这个记录只是记录了大概的流程很多代码细节并不方便透露更多详情参阅上面给出的GitHub地址。记录下这个更多是方便自己以后查阅。
http://www.hkea.cn/news/14450950/

相关文章:

  • 课程设计超市会员网站建设wordpress文章链接
  • 国外网站拼邮需要怎么做游戏钓鱼网站怎么做
  • 东莞做网站公司哪家比较好梓潼县住房和城乡建设局网站
  • 沈阳设计培训网站建设京东网站建设案例
  • 成都网站维护营销网站建设工作
  • 福州网站网页设计东城网站开发
  • 东莞企业网站推广多少钱怎样用自己的电脑,做网站
  • 北京网站开发公司一网天行商务咨询公司经营范围
  • 北京网站开发公司排名网站建设 事迹
  • 安徽合肥建设局网站网络营销师证怎么考
  • 抚州网站开发机构展示型网站有哪些
  • 梅州市住房与城乡建设局网站域名查询官网
  • 一半招聘网站海报格式都怎么做精品网站制作公司
  • 代发新闻稿的网站网站页面需求
  • 比比西旅游网站建设中山专业外贸网站开发
  • 大连网站怎么金华农村网站建设
  • 哪个网站 可以做快递单录入wordpress 留言给站长发邮件
  • 阿里云建站视频教程表情制作器
  • 建设银行企业网站失败全面的seo网站优化排名
  • 延边企业网站建设新昌县建设局网站
  • 舟山高端网站设计o2o
  • 网站使用微软雅黑wordpress 按月归档
  • 网站建设小程序公众号推广开发网时 网站服务器租赁
  • 贵州网站建设公司推荐建设企业银行网站多少钱
  • 北辰苏州网站建设合肥有做网站的吗
  • 基于asp.net电子商务网站开发实践中的关键技术和应用响应式手机网站制作
  • 网站建设专业的有哪些传奇世界网页版星装
  • 怎么做网站发货织梦系统网站搭建教程
  • 普达建站快车重庆相亲网
  • 顺德门户网站建设公司直播开发