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

长春网站建设 找源晟网站建设费用细项

长春网站建设 找源晟,网站建设费用细项,网站建设学费多少钱,企业网站建设 邮箱一、任务介绍 这次的任务是对两百余张图片里面特定的编号进行识别,涉及保密的原因,这里就不能粘贴出具体的图片了,下面粘贴出一张类似需要识别的图片。 假如说我的数据源如上图所示,那么我需要做的工作就是将上面图片里面标红的数…

一、任务介绍

  这次的任务是对两百余张图片里面特定的编号进行识别,涉及保密的原因,这里就不能粘贴出具体的图片了,下面粘贴出一张类似需要识别的图片。

  假如说我的数据源如上图所示,那么我需要做的工作就是将上面图片里面标红的数字给识别出来。

  我采用的算法是GitHub - YCG09/chinese_ocr: CTPN + DenseNet + CTC based end-to-end Chinese OCR implemented using tensorflow and keras,这是基于Tensorflow和keras框架采用ctpn+densenet+CTC算法来完成对图片指定内容的字符识别。

二、 图像标注

  既然要进行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文件夹

四、DenseNet+CTC训练

  DenseNet+CTC训练主要分为两个步骤,一是图像处理,二是txt文件处理。

  图像处理的话,在我们拿到标注好的数据之后需要对原始图像进行裁剪工作,就是根据标注的坐标裁剪出具体的图像,就拿上面的图像来说,我们需要的图像如下所示。

  然后再对裁剪后的图像进行resize工作,resize成(280,32),这样的话图像处理这一部分就算完成了。

  txt处理的话,这里我们需要对xml文件进行一系列处理来达到下面的效果。

  前面card_900.jpg代表图像名称,后面这一串字符代表需要识别的字符在下面这个文件里面的位置索引。

  注意这里txt里面存放的是所有图像里面待识别字符的编号,不是一个图像对应一个txt。

  做到这一步过后,在把生成的txt划分成训练集和测试集,就算成功制作出来训练DenseNet的数据集了。

  然后就可以开始训练了,截图如下:

五、总结

  这次这个小的OCR项目历时大概十天左右,从数据标注再到训练模型,里面踩了很多坑,也做了很多次尝试,也查阅了很多资料,也向周围同事请教了很多次,总算功夫不负有心人,总算完成了这次项目。

  这个记录只是记录了大概的流程,很多代码细节并不方便透露,更多详情参阅上面给出的GitHub地址。记录下这个更多是方便自己以后查阅。

http://www.15wanjia.com/news/164452.html

相关文章:

  • 有专业做网站苏州展厅设计企业
  • 网站建设买阿里云云服务器中国风ppt模板免费下载
  • 强企网做网站品牌网线有哪些
  • hishop网站搬家郑州网站建设企业推荐
  • google搜索优化同ip网站做排名seo
  • 酒店类网站建设开发书seo黑帽技术有哪些
  • 不懂网站建设.怎么销售软件开发流程图用啥画
  • 用python做的网站网站友链查询
  • 手机网站制作公司选哪家云主机 asp 网站
  • 公司网站开发怎么收费网站建设 $ 金手指排名效果好
  • 如何做网站页面免费的国际网站建设的目的
  • 自响应式网站建设清单网站的构成元素
  • 给赌场做网站重庆市建设工程信息网 最权威平台中项网
  • 外贸模板网站深圳wordpress 协会主题
  • 做网站和seo流程app平台运营模式
  • 网站设计郑州网站设计素材网站推荐
  • 济南网站建设知识看想看的做想做的电影网站好
  • 朝阳区互联网公司泉州做网站优化
  • 网站建设選宙斯王周口网站建设73data
  • 米拓建站免费模板牡丹江在哪个城市
  • 云南建设局网站首页网站如何使用cdn
  • 东阳网站优化东营信息网招聘信息
  • 如何删除网站黑链制作自己的名字免费的
  • 无锡专业做网站的公司哪家好参加网站建设项目人员保障体系
  • 万网网站到期后续费一年多少钱常州企业网站建设
  • 做网站必须有框架是吗灰色seo关键词排名
  • 网站系统开发商业网站建设案例课程下载
  • 新市网站建设中国工厂货源求购网
  • 网站排名优化是怎么做的seo排名软件价格
  • 高端网站建设公司排行郑州网站关键词优化外包