专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

基于MindXSDK的ChineseOCR文字识别教程

  b站视频案例:https:www。bilibili。comvideoBV12W4y1j7Fq
  目录
  1。任务介绍
  1。1。任务场景
  1。2。任务描述
  1。3。任务目标
  1。4。环境信息
  2。模型介绍
  3。MindStudio介绍
  4。开发前准备
  4。1。环境准备
  4。2。安装MindStudio3
  5。开发过程
  5。1。工程创建
  5。2。工程结构介绍
  5。3。om模型文件准备
  5。4。官方模型转onnx模型
  5。5。Pipeline流程编排
  5。6。主程序开发
  5。6。1代码逻辑
  5。6。2主程序实现
  5。7。数据集准备
  5。8。运行
  5。9。FAQ
  5。10。推广
  1任务介绍
  1。1任务场景
  MindXSDK应用开发
  1。2任务描述
  本开发样例使用MindXSDK,演示中文字体识别ChineseOCR,供用户参考。本系统基于昇腾Atlas310卡。主要为单行中文识别系统,系统将图像进行适当的仿射变化,然后送入字符识别系统中进行识别后将识别结果输出。
  1。3任务目标
  在Ascend310上能使模型成功识别手写文字图片
  1。4环境信息
  开发环境:Windows10MindStudio5。0。RC2
  昇腾设备:Atlas200DK
  昇腾芯片:Ascend310
  服务器环境依赖软件和版本如下表:
  软件名称
  版本
  mxVision
  3。0。RC2
  Python
  3。9。12
  CANN
  5。1。RC1
  本地环境依赖软件和版本如下表:
  软件名称
  版本
  Python
  3。7。13
  Docker
  1。52
  Python第三方库依赖如下表:
  软件名称
  版本
  protobuf
  3。19。0
  2模型介绍
  ChineseOCR是一个主要识别中文字符的系统。系统可以实现将字符检测结果中的文字进行识别。本方案选择使用PaddleOCR作为字符识别模型。
  我们也提供了已经转换好的模型以及一些测试数据集的OBS地址:
  https:mindx。sdk。obs。cnnorth4。myhuaweicloud。commindxsdkreferenceapps20contribOCRmodelmodelsocr。zip3MindStudio介绍
  MindStudio是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,集成了工程管理、编译器、仿真器以及命令行开发工具包,提供网络模型移植、应用开发、推理运行及自定义算子开发等功能。通过MindStudio能够进行工程管理、编译、调试、运行、性能分析等全流程开发,支持仿真环境及真实芯片运行,提高开发效率。
  通过MindStudio,众智团队可以基本脱离终端命令行模式,搭配昇腾AI硬件环境(实体服务器或远端环境)体验AI开发的所有功能。并通过MindStudio后端主导的独有的负载建模和专家系统,以及可视化的数据分析来更高效的完成调优等过程。
  4开发前准备
  4。1MindStudio环境搭建
  首先安装好CANN和MindXSDK,具体可参考如下链接:
  CANN安装指导:昇腾社区官网丨昇腾万里让智能无所不及
  MindXSDK安装指导
  昇腾社区官网丨昇腾万里让智能无所不及
  然后开始设置环境变量,在CANN的安装目录和MindXSDK的安装目录可以分别找到setenv。sh,它们包含了MindXSDKApp所需的大部分环境变量。我们可以打开它们查看内容并且运行脚本,也可以将它们加入。bashrc,以便每次进入bash时不用重新手动运行。
  编辑bashrc,vi。bashrc,在bashrc中应用这两个脚本,然后重启bash。
  vi。bashrc
  在bashrc中加入以下两行并保存
  source{SDK安装路径}setenv。sh
  source{CANN安装路径}setenv。sh
  保存后重启bash
  bash
  MindStudio的主要安装依赖项有CANN,若需开发MindXSDK应用,还需MindXSDK的支持。
  我们点开setting设置,点击installSDK进行CANN和SDK设置
  如果我们在Windows环境下开发。基于MindStudio的SDK应用开发环境搭建可以参考:昇腾社区官网丨昇腾万里让智能无所不及
  4。2onnx模型文件准备
  步骤一:首先用户需下载大于等于1。8。0以上版本的paddle包和1。7。0以上版本的onnx,用户可以通过以下两种方式进行安装
  安装方式一:
  pipinstallpaddle2onnx0。3。1〔user〕
  安装方式二:
  gitclonehttps:github。comPaddlePaddlepaddle2onnx。git
  pythonsetup。pyinstall
  步骤二:进入下载的目录modelspaddleocr执行以下命令
  paddle2onnxmodeldir。chppocrserverv2。0recinfermodelfilenameinference。pdmodelparamsfilenameinference。pdiparamssavefile。chppocrserverv2。0recinfer。onnxopsetversion11enableonnxcheckerTrue
  如果执行成功则会生成转化成功的onnx模型,如果出现E16005错误
  E16005:Themodelhas〔2〕〔domainversion〕fields,butonlyoneisallowed。
  则调用keepdefaultdomain这个接口修改onnx解决,参考链接网址为镇亮MagicONNX
  5开发过程
  5。1工程创建
  下载MindStudio压缩包解压打开后进入MindStudio的安装目录,选择bin目录下的MindStudio64。exe,打开MindStudio。
  点击AscendApp,选择项目路径,然后点击下一步选择昇腾应用工程类型。
  选择如图所示,选择Python框架的MindXSDK应用工程,点击Finish完成创建。
  5。2工程结构介绍
  本工程结构包含如下文件:
  编辑
  README。md
  main。py主程序
  chineseocr。pipelinepipeline文件
  dataset输入图片
  output输出图片
  5。3om模型文件准备
  MindXSDK支持的模型格式是om模型,因此使用之前须进行模型转换。首先需要下载官方的paddle模型文件,再使用官方的转化工具将模型转化为onnx模型。
  若下载我们提供的已经转化完成的om模型,则可以跳跃至5。4阅读。
  首先在PaddleOCR下载官方的的pdparams模型文件。
  5。4onnx模型转om模型
  将onnx文件上传到CANN所在服务器后,打开MindStudio,在顶部菜单栏中选择AscendModelConverter,打开图形化模型转换工具。
  在ModelFile中选中上传至服务器的onnx模型。ModelName一栏可自行更改,其为输出的om模型名。TargetSocVersion选中目标平台,这里我们选择Ascend310。OutputPath为输出路径,模型转换工具会将转换后的一些文件拷贝至该位置。
  更改InputFormat和InputNodes,一般情况下,选择好PB文件后,该栏会自动和模型匹配,若是因某些原因没有自动匹配,需自行选定。
  旧版本的MindXSDK的已有插件中的推理插件mxpitensorinfer暂不支持动态分辨率模型,因此即使原模型支持动态分辨率,也需要在此步将input可能的分辨率固定下来。
  若需要动态分辨率支持,可以使用mxVision3。0。RC2及以上的版本,经实验确定推理插件mxpitensorinfer已经支持动态分辨率模型。
  InputNodes中的Shape为1的一项表明该维度是动态的,因此可以根据需要将N取值为1以实现动态Batch,或者将H,W取值1,以实现动态分辨率。但注意,动态分辨率和动态Batch是不能同时应用的。
  最后点击OutputNodes下方的Select,会出现可视化的模型图,找到模型的最终输出节点,然后点击OK确认。
  点击Next,下一步是一些数据预处理,比如转换颜色空间、裁切输入以适配模型等,可按需选择。本项目并不需要进行预处理,因此继续进行下一步。
  本模型不需要设置其他参数,因此直接finish结束模型转换,转换完成。
  5。5Pipeline流程编排
  MindXSDK实现功能的最小粒度是插件,每一个插件实现特定的功能,如图片解码、图片缩放等。将这些插件按照合理的顺序编排,实现相应的功能。
  我们将这个配置文件叫做pipeline,以JSON格式编写,用户必须指定业务流名称、元件名称和插件名称,并根据需要,补充元件属性和下游元件名称信息。
  我们在MindStudio中可以进行可视化流程编排。在顶部菜单栏中选择AscendMindXSDKPipeline,打开空白的pipeline绘制界面,可以在左方插件库中选中所需的插件,并进行插入插件、修改参数等操作。
  点击MindXSDKPipeline新建pipeline
  本模型使用的插件和工作流程如下表所示
  序号
  子系统
  功能描述
  1hr图片输入
  调用appsrc接口输入图片
  2hr图像解码
  调用mxpiimagedecoder接口对图像解码
  3hr模型推理
  调用mxpitensorinfer接口对图像进行推理
  4hr模型后处理
  将图像推理后结果进行最后的处理输出结果
  5hr数据序列化
  用mxpidataserialize插件对数据进行序列化输出结果
  本项目Pipeline的文本格式如下:
  {
  chineseocr:{
  streamconfig:{
  deviceId:0
  },
  appsrc0:{
  props:{
  blocksize:4096000
  },
  factory:appsrc,
  next:mxpiimagedecoder0
  },
  mxpiimagedecoder0:{
  props:{
  dataSource:appsrc0,
  deviceId:0,
  cvProcessor:opencv,
  dataType:uint8,
  outputDataFormat:RGB
  },
  factory:mxpiimagedecoder,
  next:mxpiimageresize0
  },
  mxpiimageresize0:{
  props:{
  dataSource:mxpiimagedecoder0,
  resizeType:ResizerStretch,
  cvProcessor:opencv,
  resizeHeight:32,
  resizeWidth:320
  },
  factory:mxpiimageresize,
  next:crnnrecognition
  },
  crnnrecognition:{
  props:{
  dataSource:mxpiimageresize0,
  modelPath:。modelchppocrserverv2。0recinferbs1。om
  },
  factory:mxpitensorinfer,
  next:mxpitextgenerationpostprocessor0
  },
  mxpitextgenerationpostprocessor0:{
  props:{
  dataSource:crnnrecognition,
  postProcessConfigPath:。cfgcrnn。cfg,
  labelPath:。cfgppocrkeysv1。txt,
  postProcessLibPath:。cfglibcrnnpostprocess。so
  },
  factory:mxpitextgenerationpostprocessor,
  next:mxpidataserialize0
  },
  mxpidataserialize0:{
  props:{
  outputDataKeys:mxpitextgenerationpostprocessor0,
  deviceId:0
  },
  factory:mxpidataserialize,
  next:appsink0
  },
  appsink0:{
  props:{
  blocksize:4096000
  },
  factory:appsink
  }
  }
  }
  next和dataSouce制定了各个元件之间的连接关系,om模型地址需要放在推理插件里面,推理插件输出结果不一定可以可视化,所以需要后处理元件对推理插件进行处理输出。
  5。6主程序开发
  5。6。1代码逻辑
  接下来就是应用主程序的编写。本项目主程序的逻辑如下:初始化流管理。加载图像,对图像进行预处理以符合动态分辨率模型的档位。向流发送图像数据,进行推理。获取pipeline各插件输出结果,将结果写入文件。销毁流。
  5。6。2主程序实现
  下图是本程序的需要的依赖库,其中StreamManagerApi是MindXSDK自带的,如果在Windows本地进行编辑代码,需要同步MindXSDK,将这些库文件下载到本地,才可以有代码补全提示等,并消去MindStudio对于没有找到对应库的提示。由于运行程序是在远端安装了CANN和MindXSDK的昇腾设备上进行的,因此这些错误提示可以忽略。
  另外,如果在昇腾设备上运行程序时报找不到OpenCV等第三方库的错误提示,可以使用pip或者conda安装,但如果是报找不到StreamManagerApi等MindXSDK自带的库的错误提示,此时要确认环境变量是否配置正确,{PYTHONPATH}这个环境变量用于在导入模块的时候搜索路径,配置正确会给程序指明MindXSDK自带模块的位置。配置环境变量请看第4节。
  预先设置需要的全局变量以便后面使用
  在程序开始前,应先检查pipeline文件是否存在且可以运行。
  设置好文件输出路径,使图片识别结果的保存到txt文档中,以便后续与标签的比对。
  设置好输入路径的图片和标签:
  发送数据时需要将数据赋给dataInput,然后指定流名,指定输入插件的插件名称,调用SendData发送。推理结果在终端输出打印台同时显示:
  将打印结果写入文档,并与标签进行文字比对,输出识别结果的相似度:
  数据完成输出后后,应当回收并销毁所创建的流:
  其中发送数据和接收数据这一套业务流数据对接接口共有4套,但有些接口是可以不用成套使用的。比如本程序中的SendData是和GetResult配对的,但是本程序使用的获取结果的接口是GetProtobuf,这些根据实际情况使用即可。详细的使用说明可以查看官方文档:昇腾社区官网丨昇腾万里让智能无所不及。
  发送数据后的处理是对用户透明的,用户只需要确认数据发送成功后,就可以尝试获取结果。在GetProtobuf这个接口中,我们需要指定流名称、对应的输入接口的编号,以及要获取结果的插件的插件名。
  5。7数据集准备
  数据集为GitHubchineseocrchineseocr:yolo3ocr官方提供的OCR手写数据集,直接下载到本地即可
  5。8运行
  在3。2中,按照给出的教程连接,我们已经将本地Windows的MindStudio与远程服务器连接。
  准备好数据集后,修改main。py里的DATAPATH为自己放置数据集的路径。
  接下来,点击顶部菜单栏的ToolsDeploymentUpload,将项目与远程服务器同步。
  当然,也可以勾选AutomaticUpload,这会让MindStudio在文件更改后就会上传到远程服务器。
  然后点击编辑运行配置,选中main。py为Excutable文件。然后保存配置,点击运行。
  这是运行成功的控制台输出:
  等待运行成功后,MindStudio会自动同步远程项目,但是若是自动同步失败或者没有运行,可以点击菜单栏中的ToolsDeploymentDownload,下载服务器里的项目,应当包含模型的输出。
  测试图片输入(放置在dataset文件夹内):
  测试图片输出(控制台的打印输出)
  因为本项目要测试识别文字的精度,因此需要额外将识别结果写入文件,保存后与标签文件进行相似度计算。
  5。9FAQ
  输入图片大小与模型不匹配问题
  问题描述:
  运行失败,错误提示:E2022082610:05:45。46681719546MxpiTensorInfer。cpp:750〕〔crnnrecognition〕〔1001〕〔GeneralFailed〕TheshapeofconcatinputTensors〔0〕doesnotmatchmodelinputTensors〔0〕
  解决方案:
  在imagedecode插件,设定解码方式的参数为opencv,选择模型格式为RGB,然后再imageresize插件里面设定o解码方式为opencv
  5。10推广
  昇腾(Ascend)开发者论坛面向开发者提供的AI计算平台,包含计算资源、运行框架以及相关配套工具等,这里有昇腾专家在线答疑,欢迎开发者来昇腾论坛学习和交流。
  链接地址:华为云论坛(https:bbs。huaweicloud。comforum)

泰坦尼克号唯一幸存的日本人,一生受尽唾骂,隐忍到死才揭露真相1997年,由美国著名导演詹姆斯卡梅隆执导,影帝莱昂纳多和凯特温斯莱特主演的爱情电影泰坦尼克号上映,这部电影由真实事件改编,刚播出就引起了不小的轰动。剧中杰克和露丝的爱情故事,和人匈牙利总理西方对俄制裁将乌克兰危机变成全球经济战央广网北京9月27日消息据中央广播电视总台中国之声新闻和报纸摘要报道,匈牙利总理欧尔班26日在国会发表讲话时说,由于西方对俄制裁,乌克兰危机正由局部冲突演变为一场可能导致欧洲乃至全真实的坐山雕有多凶残?比电影残暴百倍,连日本人都拿他没办法2014年12月23日,趁着元旦来临,国内上映了一部剿匪电影智取威虎山。这部剧根据真实历史事件改编,剿匪英雄杨子荣由内陆演员张涵予饰演。然而电影播出后,除了正面人物的形象,其中梁家东八区的先生们正式下架,博主认为太过儿戏,审查时干嘛去了最近这段时间,演员张翰可谓是得到了翻红,不过这种红却是褒义词,张翰走红不是因为他的演技得到任何,反而是因为在新剧东八区的先生们中浮夸的演技,低俗的剧情,导致张翰本人遭到了无数网友的9月27日木星冲日现身!木星影响气候,未来气候会更糟吗2022年极端高温来袭,高温导致欧洲出现了500年来最严重的干旱。今年冬季我们还将经历罕见的三重拉尼娜现象。另外根据媒体表示,在2022年9月27日,夜空将上演木星冲日的天象。此次走进十三朝古都洛阳,感受中国五千年文明史记住乡愁古城播出内容洛阳通达古今名动天下(上)播出时间2022年9月26日(周一)2200播出频道CCTV4中文国际频道洛水之阳十三朝古都若问古今兴废事,请君只看洛阳城。如果选择一港股历史大底,抄底港股指数型基金为者长成行者长至。投资是一个人的旅行,希望此文引起您的兴趣与思考!港股目前估值市净率0。9。市盈率9。基本是破产的价格,上一次出现这个估值还是2008年全球金融危机。我认为是重大机身材苗条的董妮,穿着清凉的上衣搭配超长半身裙,你还记得吗?身材苗条的董妮经常穿着清凉的上衣搭配超长半身裙高腰裤或露背装纽扣衬衫。DongNhi在最近的一次假期中发布了一张抱着小公主的照片,并配文说妈妈,把它盖起来。我的眼皮好忧郁的声音,通杰伦忘不了总决赛的失利今夏我一直穿着G6穿的鞋直播吧9月27日讯凯尔特人今日举办了新赛季媒体日,杰伦在接受采访时谈到了上赛季总决赛的失利。我等不及再回到赛季之中了,上赛季我们有很多事情做得很好,但也有很多事情我希望当时有做得不曹德旺预言已应验?如今持有多套房的家庭,将会面临什么问题20多年的城镇化建设,名下有多套房子的家庭越来越多。比如本来一个儿子,老家县城父母一套,儿子备一套大城市房子儿子住一套,老子又备一套。这种情况非常普遍。更有甚者,在大城市拥有十几套曹德旺预言应验?中国手握两套房的家庭,未来将面临什么结果从去年下半年开始,国内房地产市场就呈现出明显的调整趋势。现在越来越多的城市都加入到了房价下跌的队伍中来。数据显示,8月份,70个大中城市中,50个城市新建商品住宅价格环比下跌,19
盘前必读丨多家基金券商资管公布自购计划纳指大涨3。43周一,美股三大指数集体收涨,截至收盘,道指涨1。87,纳指涨3。43,标普500指数涨2。65。刚刚上任的英国财政大臣杰里米亨特宣布了针对特拉斯政府迷你财政案的最新调整,亨特几乎完油价调整消息今天10月18号,调整后各地9295汽油柴油售价随着时间的推移,距离下一次油价调整窗口开启还剩下一个星期的时间,依照目前的数据显示来看,油价仍旧处于预计上调,而原油价格的下跌,又使得看到油价下调的希望多了一些苗头,这也我们必须持京东系数位高管空降德邦股份,京东物流CEO余睿担任董事长10月18日,德邦股份发布公告,公司已选举产生公司第五届董事会成员,董事会同意选举余睿(现任京东物流执行董事兼CEO)为公司第五届董事会董事长,唐伟(京东物流商业发展服务中心负责人海外英特尔下调Mobileye估值预期至200亿美元,后者IPO计划不变文懂车帝原创李帅飞懂车帝原创行业日前,据外媒援引知情人士的说法称,英特尔正计划让旗下的自动驾驶子公司Mobileye以远低于此前预期的估值上市。此前,英特尔为Mobileye设定的微软XboxElite2精英手柄二代已支持定制外观,149。99美元起IT之家10月18日消息,今日,微软宣布XboxElite2精英手柄二代已支持通过Xbox设计实验室定制外观,149。99美元起,约1078元人民币起。微软XboxElite2精英美国作出回应!国际原油跌至85美元,沙特计划受挫,还减产吗?在以沙特为首的众多产油国决定11月大幅度减产之后,国际原油价格出现了快速的上涨。施压失败的美国警告,必将对这一行为作出回应。如今美国的回应来了,将在11月再次大幅度加息。国际原油价外媒微软在利润增速放缓后进一步裁员中新经纬10月18日电据华尔街日报中文网18日报道,微软在利润增速放缓后进一步裁员。该报道称,微软本周进一步裁员,成为最新一家对未来需求表现出担忧迹象的科技公司。该报道提到,微软今PCL纹绣品牌发展历程2013年潘纯林先生创造了首款有型无框的手工雾眉粉墨眉,自此开创了纹绣新时代,于温州成立了潘纯林美妆培训学校,聚焦美业培训。PCL纹绣品牌发展历程PCL纹绣品牌发展历程2014年P红毯生图,60岁杨紫琼无惧高清镜头,比伯前任与现任上演世纪和解日前,第二届美国电影学院博物馆庆典在西好莱坞举办,这场活动可以说非常盛大,除了不少电影人都盛装出席,还有不少超模明星亮相,可以说星光熠熠,这一期我们就来简单看看各位明星名人的造型。高奢一线品牌DOLOMIA鹅绒被公价3万起售,堪称羽绒被中的劳斯莱斯如果你问外国人,世界上最著名的护肤品牌是什么?答案也许是Chanel香奈儿HR赫莲娜EsteeLauder雅诗兰黛Dior迪奥。可是,当你问英国女王伊丽莎白二世英国前首相布莱尔篮球念念不忘,必有回响头条创作挑战赛文智慧大中原秋风吹落叶,总是即残酷,又无情。而且还透着那缕缕的缠绵。那是秋风与落叶的悲壮,那是生命与失去的告别,那是难舍的最后浪漫,那是失去了生命的枯黄。秋天的风,都
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网