• [AI实战营] 华为云2020 AI实战营 第五章 OCR-课程打卡实战体验
    课程打卡地址为: https://bbs.huaweicloud.com/forum/thread-64183-1-1.html压缩文件上有这次作业的代码,可以直接在notebook上传一键运行全部就可以课程打卡了。
  • [问题求助] 【实战营提问】OCR识别的相关问题
    通过学习了第5章,了解并对OCR进行了实践,下面提出我的问题:①经过实验,课程作业2中提供的脚本,只有‘test.png’能通过实验,其余图片都无法正确识别,是否因为只搭建了简单的框架但没完善功能?②腾讯QQ业务中的“提取图片文字”功能,是否只运用了OCR识别,是否还有其他识别文字的方法?③CRNN算法中,DETECT_MODE的两种取值:'H'和'O',当一张图片既有水平文字,也有倾斜文字,选取哪一个值相对来说较为准确?
  • [AI实战营] 【手摸手学ModelArts】第五章OCR课程打卡及作业打卡分享
    > 本文首次发表于华为云社区ModelArts版块,主要是作者在学习使用AI开发平台ModelArts过程中的一些经验产出。此次要和大家分享的是学习过程中的一些小的心得及作业分享。感觉我又有很久没有活跃在社区了,也很久没有产出文章了。回顾AI实战营过去四章的学习,我们已经掌握了图像分类、物体检测、图像分割、人脸识别等常用的算法和技巧,应该对ModelArts也是能够熟练使用了。 ## 准备 今天偶然读到ModelArts关于[创建带有Git存储库的Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0279.html)的文档,于是最新的获取官方学习资料的方法应运而生:在新建NoteBook的时候选择Git仓库,链接到官方的github代码仓库,得益于JupiterLab的git插件支持,我们能轻松管理学习资料,……,不过理想很丰满,显示很骨感,尽管我们通过这种方式能接入github仓库,但是,网络问题导致我们无法正常pull代码,更别说学习,看来我已死磕资料获取方式的学习……还是乖乖跟着课程里提供的方法在[jupyter在线预览](https://nbviewer.jupyter.org/)中访问案例对应的github地址。这里还是要公开吐槽一下gitee上的代码同步不及时,这都落后一个月了! 撸起袖子就是干!请新建一个免费的NoteBook,开始我们第五章的课程学习和打卡! - 拉取代码 ``` import os import pathlib if "ModelArts-Lab" in pathlib.Path.cwd().parts: while "ModelArts-Lab" in pathlib.Path.cwd().parts: os.chdir('..') elif not pathlib.Path('ModelArts-Lab').exists(): !git clone --depth 1 https://gitee.com/hu-qi/ModelArts-Lab print('代码下载完成,撸起袖子就是干!') ``` 第五章我们学习OCR,学习资料在**ModelArts-Lab/notebook/DL_ocr_crnn_sequence_recognition**和**ModelArts-Lab/notebook/DL_ocr_ctpn_text_detection**,就是我们要学习的CRNN和CTPN。其实,通过对打卡文档的分析,不难看出这种的打卡任务依旧只需简单的复制粘贴就能完成,当然这对号称**Copy攻城狮**的我来说,小菜一碟,更多地是想跟大家分享课程背后的心得,比如编程思想。废话不多说,撸起袖子就是干! ## 课程打卡 > 课程要点: 函数 ![finish-class.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/13/175021cs8ys3wf2rfpgexg.png) 课程打卡的任务就是跑跑一遍字符序列检测CRNN模型,对应的文件是我们刚下载的**/home/ma-user/work/ModelArts-Lab/notebook/DL_ocr_crnn_sequence_recognition/CRNN.ipynb**。别忘了按照打卡要求,我们需要将文件重命名成自己的华为云账号,然后直接运行就行,等待数分钟之后就能看到打卡需要的结果。代码中的注释写得明明白白,非常清晰,我这里就不复述,希望大家还是要认真看下。总结一句就:数据、代码、依赖下载及引用,程序编写;不过对我来说就是永无止境的**Ctr+c**以及**Ctr+v**,有时候也会怀疑自己是不是只会**Copy**……静下心再来看看代码。 - crnn_ocr函数 ``` def crnn_ocr(img): """ CRNN字符识别函数 :param img: 需要进行字符识别的图片 :return: ocr_result: 图片的字符识别结果,数据类型为字符串 """ img = img.convert('L') # 图片灰度化 scale = img.size[1] * 1.0 / 32 # 图片尺寸调整,把图片高度调整为32 w = img.size[0] / scale w = int(w) img = img.resize((w, 32)) img = np.array(img).astype(np.float32) / 255.0 X = img.reshape((32, w, 1)) X = np.array([X]) y_pred = basemodel.predict(X) # 预测 ocr_result = decode(y_pred) # 处理预测结果 return ocr_result ``` 对的,我的关注点在于**crnn_ocr**这个函数的编写,其实从实战营的第一堂课到现阶段的第5章,我相信大家对函数已经不再陌生,就算我没有python基础,几乎每次学习都有函数及函数的调用,对**def**应该能够熟练的使用了,这里**crnn_ocr**函数就是进行了简单的处理,把我们之前一步一步执行的代码,简单的合并在一起,方便后续的使用。这里不得不提下老生常谈的**将大象装进冰箱**这个梗,大象装进冰箱只需三步:打开冰箱门-->把大象装进冰箱-->关上冰箱门。假如我们要把一万头大象装进冰箱,只需循环一万次执行这个大象装进冰箱的方法。这也许就是为什么我们要使用函数的原因。这里不得不说下我为什么会着重提**crnn_ocr**函数,主要还是无意间看到了老师的代码提交记录,几天前这个脚本是没有**crnn_ocr**这个函数的,也许是为了降低后面作业的难点,老师特意将传入一张图片使用CRNN进行识别这里封装成了函数,方便后续大家的复制。尽管实战营的内容全是是免费的,但是老师们真的花了很多心思想尽一切办法让大家学得明白、学得轻松,而且每章都有配置的作业讲解,感谢! ![upload-fn1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/13/175134nbphjgsmhu6auz4x.png) ## 作业打卡 本章的作业打卡依旧比较简单,只需简单的修改或者复制即可完成。作业一为修改文本检测CTPN模型中文本框合并策略的参数,作业二巧妙的将CRNN及CTPN结合起来,完成一个完整的OCR应用,其实也是编程思维的体现,下面将逐一分析: > 作业一要点:调参 调参,也需是被誉为“炼丹师”的AI开发工程师必备的技能,我们在前面几次课中也学习了一些调参的技巧。这里的调参也非常简单,涉及的参数只有入5个,老师也给出了只需修改第一个和第五个参数的温馨提示,那我们先要了解这些参数是什么含义,好在代码中已经给出了非常详细的注释,从字面意思上来看,我将**两个框之间的距离**调小些、将**DETECT_MODE**调为适合检测有轻微倾斜的文字的O模式应该就完成了作业一: ``` # 文本框合并策略: TextLineCfg.MAX_HORIZONTAL_GAP = 25 # 两个框之间的距离小于25,才会被判定为临近框。该值越小,两个框之间要进行合并的要求就越高 TextLineCfg.TEXT_PROPOSALS_MIN_SCORE = 0.7 # 单个小文本框的置信度,高于这个置信度的框才会被合并。该值越大,越多的框就会被丢弃掉 TextLineCfg.TEXT_PROPOSALS_NMS_THRESH = 0.2 # 非极大值抑制阈值。该值越大,越多的框就会被丢弃掉 TextLineCfg.MIN_V_OVERLAPS = 0.7 # 两个框之间的垂直重合度大于0.7,才会被判定为临近框。该值越大,两个在垂直方向上有偏差的框进行合并的可能性就越小 textdetector = TextDetector(DETECT_MODE='O') # DETECT_MODE有两种取值:'H'和'O','H'模式适合检测水平文字,'O'模式适合检测有轻微倾斜的文字 ``` > 作业二要点:编程思维 ![todo.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/13/1751001axuiwwotwpilltf.png) 编程思维,我觉得在这个作业中特别能体现。首先需求分析:实现一个端到端OCR流程,流程为输入原图 -> 文字检测 -> 文字块切片 -> 字符识别 -> 识别结果汇总;步骤分解: - (1)准备一张含有文字的原图; - (2)对原图进行文字位置的检测,检测结果可能是水平矩形框,也可能是倾斜矩形框; - (3)从原图中把文字框对应的图片切下来,并旋转正,得到水平的文字块切片图; - (4)对每个文字块切片图依次进行字符识别,每个切片图的识别结果汇总起来,就得到原图的文字识别结果。 下载代码:[e2e_ocr_assi.ipynb](https://modelarts-labs-bj4.obs.cn-north-4.myhuaweicloud.com/notebook/DL_ocr_crnn_sequence_recognition/e2e_ocr_assi.ipynb)上传到Notebook并重命令您自己的华为云账号, 搜索**TODO**找到这两处需要完善的地方,第一个TODO加入作业一的文本框合并策略代码,第二个TODO将上面的**crnn_ocr**直接拷贝过来替换,重头到尾执行一遍应该就实现了一个端到端的OCR流程。好像就这么结束了…… 难道我所说的编程思想就是复制粘贴?不愧为**Copy攻城狮**啊。其实不然,复制粘贴仅仅是第一步,我们还得静下心来看看我们都复制了啥,从全局代码来讲,面向过程的话,我们需要一个步骤一个步骤的来实现功能,于是我们有了一大片代码去准备数据、模型等等,然后我们要实现文字位置检测,于是就有了**ctpn_text_detection**;然后我们要实现切片,于是就有了**img_transform_perspective**;我们还要实现字符识别,于是就有了**crnn_ocr**。最后就是这些函数的调用,传入图片就能获得识别结果。整个过程,大体就是这样了。 ## 彩蛋 我认为的彩蛋,是关于每次实践的开头一系列的数据、模型下载代码。不知道您有没有留意过以下代码: ``` import os from modelarts.session import Session sess = Session() if sess.region_name == 'cn-north-1': bucket_path="modelarts-labs/notebook/DL_ocr_crnn_sequence_recognition/E2E_ocr.zip" elif sess.region_name == 'cn-north-4': bucket_path="modelarts-labs-bj4/notebook/DL_ocr_crnn_sequence_recognition/E2E_ocr.zip" else: print("请更换地区到北京一或北京四") if not os.path.exists('E2E_ocr'): sess.download_data(bucket_path=bucket_path, path="./E2E_ocr.zip") if os.path.exists('./E2E_ocr.zip'): status = os.system("unzip -q E2E_ocr.zip") if status == 0: os.system("rm E2E_ocr.zip") ``` 我们每次实践都会去下载指定的数据、模型、代码。那究竟这些文件都放在哪里呢?长什么样呢?经过笔者的一番研究,得知这些文件其实放在OBS上,应该是开启了公开只读,OBS桶名为**modelarts-labs**和**modelarts-labs-bj4**,为了验证,我尝试了以下操作: ``` import os import moxing as mox mox.file.shift('os', 'mox') print(os.listdir('obs://modelarts-labs-bj4/')) ``` 得到:['DL_DL_face_facial_expression', 'ExeML', 'ai-engineer-example', 'case_zoo', 'codelab', 'end2end', 'models', 'notebook', 'notebookDL_face_detector', 'opensource', 'tools'];果不其然。您可以用Moxing将文件直接拷贝到自己的OBS桶中方便学习,当然前提是空间足够大。我尝试将文件拷贝到Notebook,发现**No space left on device**,也就是说需要足够大的存储空间,不过既然知道源头了,以后想学啥就拷贝啥吧。比如第五章作业二的辅助代码就可这样拿: ``` import os from modelarts.session import Session sess = Session() print(sess) if sess.region_name == 'cn-north-1': bucket_path="modelarts-labs/notebook/DL_ocr_crnn_sequence_recognition/" elif sess.region_name == 'cn-north-4': bucket_path="modelarts-labs-bj4/notebook/DL_ocr_crnn_sequence_recognition/" else: print("请更换地区到北京一或北京四") if not os.path.exists('hello-modelArts'): sess.download_data(bucket_path=bucket_path, path="./hello-modelArts") print('彩蛋') ``` 或者: ``` import os import moxing as mox mox.file.copy_parallel('obs://modelarts-labs-bj4/notebook/DL_ocr_crnn_sequence_recognition/', './') print('彩蛋') ``` ![getCode.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/13/175038teughpym3hm32yq0.png) 成功拿到Buff加成,赶紧完成打卡吧!
  • [技术干货] 【ModelArts】基于densent+ctc实现不定长文本识别训练与部署
    # 参考 - 华为云官方文档: https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0092.html#modelarts_23_0092__table1683418482455 - github官方示例: https://github.com/huaweicloud/ModelArts-Lab - gitee官方示例: https://gitee.com/ModelArts/ModelArts-Lab - 此次测试代码: https://gitee.com/sheng_peng_exhibition/densent_ctc - 数据集/训练好的模型 (链接:https://pan.baidu.com/s/1ZcQozu1st87WUR8aqTiqUw 提取码:sh2w ) - text-detection-ocr: https://github.com/GlassyWing/text-detection-ocr # 完整流程 1. 本地:准备数据集、训练代码、模型推理代码、模型配置文件 2. 控制台OBS:选择区域,新建桶 3. 控制台ModelArts:选择区域(需与新建桶的区域一致) 4. 控制台ModelArts:创建训练作业 5. 控制台ModelArts:导入训练模型 6. 控制台ModelArts:部署上线,在线服务测试 # 本地准备 - 数据集 1. 训练集、验证集 2. 标签文件 3. 字典 - 代码 参考官方代码:ModelArts-Lab\train_inference\image_recognition\codes 1. 训练代码 `train.py` 2. 测试代码(仿真部署)`local_infer_test.py` 3. 模型推理代码 参考 https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0093.html 3. 模型配置文件 参考 https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0092.html ## 本地调试 - 环境 `git clone git@gitee.com:sheng_peng_exhibition/densent_ctc.git` `pip install -r requirement.txt` - 训练使用低batch size 测试训练代码逻辑没问题(读取->训练->保存->转换成pb文件)local_debug = True 见代码启动文件 ``` tf.flags.DEFINE_integer('batch_size', 8, 'number of training iterations.') tf.flags.DEFINE_integer('max_epochs', 2, 'max number of training iterations.') tf.flags.DEFINE_integer('num_gpus', 1, 'gpu nums.') tf.flags.DEFINE_integer('num_classes', 37, 'num_classes.') tf.flags.DEFINE_integer('steps_per_epoch', 100, 'step_per_epoch.') tf.flags.DEFINE_string('data_url', './data', 'dataset directory.') tf.flags.DEFINE_string('dict_url', './digitEn_37.txt', 'dictionary directory.') tf.flags.DEFINE_string('train_file_url', './data/train_labels.txt', 'train labels file.') tf.flags.DEFINE_string('val_file_url', './data/val_labels.txt', 'val labels file.') tf.flags.DEFINE_string('train_url', './output', 'saved model directory.') tf.flags.DEFINE_float('learning_rate', 0.05, 'learning rate.') tf.flags.DEFINE_bool('local_debug', True, 'local debug.') ``` 将数据集拷贝至当前工作目录 >`python train.py` - 推理 >`python local_infer_test.py --model_path='./output/pb_model' --data_path='./data' --dict_file='./digitEn_37.txt'` - 移植代码到ModelArts >**修改数据访问模式**访问OBS内的数据需要通过moxing库(主要用于数据量过大,只能通过OBS访问数据集的情况)注:配置文件从OBS复制到训练机器上,则在数据访问时可以正常使用open等函数,减少移植代码的工作量.见:MoXing开发指南->常用操作的样例代码https://support.huaweicloud.com/moxing-devg-modelarts/modelarts_11_0005.html ``` mox.file.copy(OBS上的文件路径, 训练机器上的目标路径) ``` >**模型转换为pb格式** ``` def save_keras_model_to_serving(model, export_path): signature = tf.saved_model.signature_def_utils.predict_signature_def( inputs={'images': model.inputs[0]}, outputs={'logits': model.outputs[0]}) builder = tf.saved_model.builder.SavedModelBuilder(export_path) legacy_init_op = tf.group(tf.tables_initializer(), name='legacy_init_op') builder.add_meta_graph_and_variables( sess=K.get_session(), tags=[tf.saved_model.tag_constants.SERVING], signature_def_map={ 'segmentation': signature, }, legacy_init_op=legacy_init_op) builder.save() ``` # 控制台OBS - 建议下载OBS Browser+ :https://support.huaweicloud.com/clientogw-obs/zh-cn_topic_0045829056.html - 选择地区新建桶(ocr) - 新建文件夹(digitEn) - 目录结构如下: > ocr //桶名称 >> digitEn //新建文件夹 >>> digitEn_37.txt // 字典 >>>data //数据集 >>>> train_labels.txt // 训练集标签 >>>>val_labels.txt // 验证集标签 >>>>*.jpg >>> >>> digitEn_output // 输出目录 >>>digitEn_code // 代码目录 >>>> train.py // 训练启动文件 >>>>train_lib ![文件结构.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/112958xfes2mkkk6feoerm.png) # 控制台ModelArts 1. 选择地区(与**桶**的地区一致),新建训练作业![训练作业.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/113330dkxnfggboamwitih.png) ![训练日志.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/100629vsuo2arlezqrm8gu.png) - 红色框信息表示在训练机器上已完成训练并保存为pb格式,再使用moxing库copy到OBS中(见启动文件代码),至此完成训练过程。 2. 导入模型 - 将模型推理代码、模型配置文件copy至OBS中,与pb格式模型文件放置同一处。 ![推理文件夹结构.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/115248bu3h70xjwzntmsvc.png) - 从训练中选择/从OBS中选择均可(注意选择model文件夹的上一级目录) ![模型配置.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/114631caymjisw0p8rm424.png) ![模型基本信息.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/114638o43jwj3vearh4xln.png) 3. 配置在线服务 ![在线服务.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/115425srkvyp3nvau5dpu3.png) 部署过程均可在日志中查看,依据日志来调试模型推理代码和模型配置文件 - 在线服务测试 ![在线服务测试.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202007/10/120010j70l3xfphpduqehw.png) 至此完成所有流程! 欢迎交流!
  • [技术干货] 【AI实战营】第五章OCR延伸学习材料
    1. 参考文章传统OCR识别综述文字识别在计算机视觉的重要性、基本技术和最新进展2. 算法2.1 文字检测文字检测算法基本上经历了以下几个阶段:(1)基于文字笔画特征点的文字检测算法FASText,2015,该论文认为所有的文字都是由笔画构成的,因此可以使用一个笔画特征点检测器先检测出特征点,接着再找到笔画、找到文字。这种方法的优点是可以检测简单背景下的多语言文字,缺点是文字与背景区分不明显的情况下就无能为力了。(2)基于物体检测的文字检测算法这个阶段中产生了很多代表性的文字检测算法,基本上是跟随着物体检测算法的脚本来发展的CTPN,2016,基于FasterRCNN改进的文字检测算法,主要检测水平文字和略带轻微角度倾斜的文字;TextBoxes++,2018,基于SSD改进的文字检测算法,可以检测多方向的文字,但对纯竖直的文字检测效果还不够好。(3)基于图像分割的文字检测算法PSENet,2019,基于图像分割的方法,使得算法可以检测任意形状的文字,比如一个商标里的文字可能是弧形的;DBNet,2020,从19年开始,基于分割的文字检测方法占据了主流,但是基于分割的方法往往要求复杂的网络结构和后处理,很难在速度和性能上做到平衡,于是该论文做了一些改进,简化了基于分割方法的文字检测,在性能和速度上都获得了不错的效果。2.2 文字识别发表的文字识别算法很少,基本上现阶段就是以CRNN和attention-ocr为代表2.3 文字检测+文字识别这类算法是指一个模型可以同时完成文字检测和文字识别的算法,学术上称为text spotting,通俗地理解就是端到端的OCR算法FOTS,2018,可惜作者没有开源,只有第三方复现的版本,离论文中准确率还差一点ABCNet,2020,一个端到端可训练的、可检测任意形状的文本识别网络3. 代码库TextBoxes++的官方开源代码:https://github.com/MhLiao/TextBoxes_plusplusCRNN代码:https://github.com/xiaofengShi/CHINESE-OCR/tree/master/crnnattention-ocr:https://github.com/emedvedev/attention-ocrABCNet的官方开源代码:https://github.com/aim-uofa/AdelaiDet/4. 比赛和数据集(1)近几年最主流的比赛和数据集,就是ICDAR(International Conference on Document Analysis and Recognition,https://rrc.cvc.uab.es/),每两年一届比赛,如下图所示(2)合成的数据,生成一些文字,贴到背景图上,再经过一些处理,使其看起来像是自然的文字,可合成无限的图片,网址:http://www.robots.ox.ac.uk/~vgg/data/scenetext/5. 论文OCR综述文章:《Scene text detection and recognition recent advances and future trends》CTPN:《Detecting Text in Natural Image with Connectionist Text Proposal Network》CRNN:《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》TextBoxes++:《TextBoxes++ A Single-Shot Oriented Scene Text Detector》PSENet:《PSENet_Shape_Robust_Text_Detection_With_Progressive_Scale_Expansion_Network》DBNet:《DBNet_Real-time Scene Text Detection with Differentiable Binarization》FOTS:《FOTS Fast Oriented Text Spotting with a Unified Network》ABCNet:《ABCNet_Real-Time_Scene_Text_Spotting_With_Adaptive_Bezier-Curve_Network》
  • [技术干货] 传统OCR识别综述
    计算机文字识别,俗称光学字符识别,英文全称是Optical Charater Recognition(简称OCR),它是利用光学技术和计算机技术把印刷在或者写在图纸上的文字以文本形式提取出来,并转换成一种计算机能够接受、人又可以理解的格式。OCR技术是实现文字快速录入的一项关键技术。在信息社会时代,每天会产生大量的票据、表单、证件数据,这些数据要电子化,需要利用OCR技术进行提取录入。在深度学习没有全面推广之前,大部分OCR识别都是基于传统的方法进行检测识别。在背景单一、数据场景简单的情况下,传统OCR一般都能达到好的效果,但在一些场景复杂、干扰多的情况下,识别效果不好,这个时候深度学习OCR就能体现出巨大的优势。详情请点击博文链接:https://bbs.huaweicloud.com/blogs/140398
  • [技术干货] 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
    本文为OCR文字识别系列的第三篇,主要讲的华为云OCR文字识别服务的产品优势和应用场景,典型的行业落地方案,以及我们下一步要的事情,有些事情也是人工智能行业本身需要解决的。现在人工智能虽然很火,但是能落地的场景还是比较少的,能大规模落地的场景更是少之又少。详情请点击博文链接:https://bbs.huaweicloud.com/blogs/136916
  • [技术干货] 华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)
    本文为OCR文字识别系列的第二篇。首先简单的介绍一下华为云文字识别服务,随后重点介绍产品的关键技术、关键能力,产品的优化之路,做产品需要注意到问题以及踩过的坑。其中很多点是整个人工智能或者以数据为驱动的产品都需要注意的。详情请点击博文链接:https://bbs.huaweicloud.com/blogs/123585
  • [技术干货] 【OCR调试】使用Postman调用华为云OCR服务
    使用postman模拟使用OCR服务的API接口使用Postman调用华为云OCR API1.     开通服务调用华为云OCR服务前需要确保调用的服务已开通。详情参考:https://support.huaweicloud.com/api-ocr/ocr_03_0043.html详情请点击博文链接:https://bbs.huaweicloud.com/blogs/123085
  • [技术干货] 文字识别在计算机视觉的重要性、基本技术和最新进展(OCR系列一)
    本文为OCR文字识别系列的第一篇,基于深度学习的文字识别为现在人工智能领域研究的热点之一。本文主要介绍文字检测和文字识别作为计算机视觉一部分的重要性,基本知识,面临的挑战,以及部分最新的成果。详情请点击博文链接:https://bbs.huaweicloud.com/blogs/118500
  • [其他] 【学习活动】文字识别,知多少,京东卡任你领!!!
    文字识别知多少,云学院学习打卡,京东卡在线撒!!!活动时间:即日起-7月31日参与步骤:1. 请前往华为云学院,学习【文字识别服务】课程;立即前往2. 完成第五章随堂测试,测试得分60分及以上,晒出截图至本帖;3. 抽取5人,奖励50元京东购物卡。回帖格式:1、 截图中有华为云账号2、 截图中有随堂测试得分3、分享学习感受样例:获奖规则:截止至7月31日00:00,若回帖层数为N,则楼层数为:Nx0.2~1的用户获得奖励(四舍五入取整数)举个栗子:假设截止日期前回帖101楼,则获奖用户为:20楼,40楼,60楼,80楼,100楼。温馨提示:ü  在本系列活动中同一ID不可重复获得购物卡;ü  禁止刷帖行为(超过5条);ü  若获奖者违规或不具备领奖资格,奖品自动顺延至下一楼。获奖名单:本次打卡帖共34楼获奖楼层为:0.2*34=7楼:Idea0.4*34=14楼:卷毛C酱0.6*34=20楼:啊哈哈哈哈哈哈h0.8*34=27楼:马可波罗1*34=34楼:好逸恶劳说明:本次京东卡发放为电子卡(不发放实体卡)请获奖同学在3个工作日内(周五前),论坛私信楼主华为云账号&收获信息
  • [技术干货] 【问题集锦】你想知道的这都有!!!
    历史论坛问题求助汇总精华帖!!!此后周度汇总求助帖!!!敬请关注!!!1、请问,华为云OCR,支持一个图片里有多个主题的文字识别吗?(比如:一个图片里,同时有火车票,发票,表格, 能否支持同时识别出来,然后分成3段文字输出。)解答:你好,华为云OCR的智能分类识别服务可以一次性对同张图片中的多个卡证、票据进行检测和识别,并返回每个卡证、票据的类别及结构化数据。目前支持的卡证票据类型包含:身份证(包含头像面、国徽面)、行驶证(包含主页、副页)、驾驶证(包含主页、副页)、护照、银行卡、道路运输证、增值税发票(包含专用发票、普通发票、电子普通发票)、机动车销售统一发票、出租车发票、火车票、定额发票、车辆通行费发票、飞机行程单等。具体调用说明与返回参数结构请参考智能分类识别服务API说明文档:https://support.huaweicloud.com/api-ocr/ocr_03_0113.html 2、请问,华为的OCR,支持用户自定义模板吗?解答:你好,华为云OCR自定义模板目前对限定客户开放公测中,如您有业务需求也可通过工单联系我们申请公测,感谢您的支持~ 3、请问,华为云的OCR服务,除了支持汉语,是否还支持少数民族语言? 支持多少种语言的文字识别?解答:您好,目前暂不支持少数民族语言,谢谢 4、请问怎么识别表格并输出到一个EXCEL里?解答:调用通用表格接口返回统一为json格式,转化为其他word、txt、excel等需要用户通过编程代码进行格式转换。 5、需要安装huaweicloud-sdk-python这个模块,但是文档显示只支持到3.7版本,怎么办                                               安装不了使用postman调用出现了问题,之前还能好好用       解答:python SDK包可以在这里下载安装https://developer.huaweicloud.com/intl/zh-cn/sdk?OCR   postman没有响应,检查下是否添加代理什么的  把这些关掉,需要用公网访问  要是用公司内网,检查下是否配置代理      6、OCRDemo 无法通过公司网络使用,这个Demo中有没有可以配置网络Proxy的地方?解答:您好,您可以在发送请求函数中添加Proxy,以Python SDK为例,如果您使用token认证方式,则打开HWOcrClientToken.py,添加proxies:http_proxy = "http://ip:port"https_proxy = "https://ip:port"proxies = {"http": http_proxy, "https": https_proxy}        在requests.post函数中增加入参proxies,如下所示:# response = requests.post(url, json=payload, headers=headers, verify=False)response = requests.post(url, json=payload, headers=headers, proxies=proxies, verify=False)        注意:get_token和request_ocr_service_base64的requests.post中均要配置proxies。       如果您使用AK/SK认证,则需要在HWOcrClientAKSK.py->request_ocr_service_base64->requests.post中添加proxies。       其他SDK同理,在Token或AKSK文件中找到post请求命令,增加proxies。 感谢您的支持~ 7、请问ocr的sdk包可以从哪个maven仓库下载?公司要求依赖包来源可信,所以ocr的sdk包是否已经发布到公司的公共仓库中了?解答:您好,OCR的SDK包已发布至华为开源镜像站:https://mirrors.huaweicloud.com,您可以通过华为开源镜像站下载SDK,谢谢~ 8、手写文字识别基本无法识别HWDB的测试用例?解答:使用“quick_mode”来测试的吗?quick_mode的话,可以直接测试切片,对这种整张图就是一个文字的情况会友好一些。 9、文字识别能离线吗解答:您好:OCR服务支持本地私有化部署,如有需要请通过售前服务联系我们。感谢您的支持~ 10、我们的OCR支持针对视频中的内容(如字幕)进行识别么?解答:您好,目前已支持“视频OCR”,请您前往:https://console.huaweicloud.com/iva,申请“视频识别”进行公测,谢谢。 11、各个ocr类型的并发在哪看?解答:每个用户调用不同服务都有并发限制,例如通用图片目前并发量最大为1分钟45次,如果需要更大并发量请通过华为云客服联系我们。 12、OCR 服务是怎么收费的?OCRDemo 的操作也在频繁调用API,这个操作是不收费的吧?解答:OCR收费有一个链接: https://www.huaweicloud.com/price_detail.html#/ocr_detail 13、车牌识别服务下线了?什么时候重新上线呀?解答:您好!车牌识别服务目前由于内容原因,暂不支持调用了。后续内部服务预计8月20号左右进行邀测,具体请关注ocr产品页通知。https://www.huaweicloud.com/product/ocr.html 14、文字识别可以支持香港永久身份证吗解答:您好!目前还不支持识别香港永久身份证 15、为什么www.huaweicloud.com上不能够直接demo测试。百度识图,可以直接选择本地图片或者网络图片进行识别测试。 文字识别服务,能否提供在线测试?解答:您好, 在文字识别栏目的“服务公告”中有OCR体验环境地址,您可以到该处获取地址体验文字识别服务。 16、调用OCR 的API 失败时怎么处理?解答:检查原因 1. 根据API调用返回结果或者错误码查找原因。 2. 检查访问密钥AK/SK是否获取成功。 3. 检查Token是否填写正确或者已过期。 4. 检查API调用方法是否正确。 联系服务人员 如果无法确定原因和解决问题,请联系技术服务人员。
  • [公告] OCR文字识别优质博文汇总帖!(持续更新中)
    博文日期博文标题2020/5/12论文解读系列四:实时端到端场景文字检测识别网络ABCNet(CVPR   2020论文)2020/5/8OCR技术专题系列一:CTC原理简介2020/3/2文字识别服务(OCR)基于对抗样本的模型可信安全威胁分析初析2019/12/28论文解读系列二:AAAI2020   基于Differentiable Binarization分割方法的文字检测算法2019/12/28论文解读系列一:CVPR2019针对密集文本检测的算法PSENET2019/12/28论文解读系列三:CVPR   2019最新论文基于CornerNet改进的ExtremeNet2019/12/28论文解读系列一:CVPR   2019最新论文自然场景文本检测PSENet2019/12/27论文解读系列二:AAAI   2020 oral最新文本行检测论文DBNet2019/12/23传统OCR识别综述2019/12/6华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)2019/10/1华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)2019/9/30【OCR调试】使用Postman调用华为云OCR服务2019/9/29【新品发布】智能分类识别---一个超级OCR服务API的开场白2019/9/172019数字中国创新大赛:文化传承汉字书法多场景识别赛题解读2019/9/15文字识别在计算机视觉的重要性、基本技术和最新进展(OCR系列一)
  • [内容拦截申诉] 【博客】+深源恒际:信用报告OCR服务 助力授信审核快人一步
    发文的版块名:AI/云计算/人工智能/华为云/软件开发发文的标题名:深源恒际:信用报告OCR服务 助力授信审核快人一步帖子内容链接:https://bbs.huaweicloud.com/blogs/169344
  • [其他] 【人工智能相关知识分享】图像识别的研究现状
    图像识别的发展经历了三个阶段:文字识别、数字图像处理与识别、物体识别。文字识别的研究是从 1950年开始的,一般是识别字母、数字和符号,从印刷文字识别到手写文字识别, 应用非常广泛。 数字图像处理和识别的研究开始于1965年。数字图像与模拟图像相比具有存储,传输方便可压缩、传输过程中不易失真、处理方便等巨大优势,这些都为图像识别技术的发展提供了强大的动力。物体的识别主要指的是对三维世界的客体及环境的感知和认识,属于高级的计算机视觉范畴。它是以数字图像处理与识别为基础的结合人工智能、系统学等学科的研究方向,其研究成果被广泛应用在各种工业及探测机器人上。现代图像识别技术的一个不足就是自适应性能差,一旦目标图像被较强的噪声污染或是目标图像有较大残缺往往就得不出理想的结果。 图像识别问题的数学本质属于模式空间到类别空间的映射问题。目前,在图像识别的发展中,主要有三种识别方法:统计模式识别、结构模式识别、模糊模式识别。图像分割是图像处理中的一项关键技术,自20世纪70年代,其研究已经有几十年的历史,一直都受到人们的高度重视,至今借助于各种理论提出了数以千计的分割算法,而且这方面的研究仍然在积极地进行着。 现有的图像分割的方法有许多种,有阈值分割方法,边缘检测方法,区域提取方法,结合特定理论工具的分割方法等。从图像的类型来分有:灰度图像分割、彩**像分割和纹理图像分割等。早在1965年就有人提出了检测边缘算子,使得边缘检测产生了不少经典算法。但在近二十年间,随着基于直方图和小波变换的图像分割方法的研究计算技术、VLSI技术的迅速发展,有关图像处理方面的研究取得了很大的进展。图像分割方法结合了一些特定理论、 方法和工具,如基于数学形态学的图像分割、基于小波变换的分割、基于遗传算法的分割等。
总条数:278 到第
上滑加载中