CTC

【AI in 美团】深度学习在OCR中的应用

心不动则不痛 提交于 2021-02-10 16:36:01
AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索、推荐、广告、风控、智能调度、语音识别、机器人、无人配送等多个领域,帮助美团3.2亿消费者和400多万商户改善服务和体验,帮大家吃得更好,生活更好。 基于AI技术,美团搭建了世界上规模最大,复杂度最高的多人、多点实时智能配送调度系统;基于AI技术,美团推出了业内第一款大规模落地的企业应用级语音交互产品,为50万骑手配备了智能语音系统;基于AI技术,美团构建了世界上最大的菜品知识库,为200多万商家、3亿多件商品绘制了知识图谱,为2.5亿用户提供了精准的用户画像,并构建了世界上用户规模最大、复杂度最高的O2O智能推荐平台。 美团这个全球最大生活服务互联网平台的“大脑”是怎么构建的?从本周起,我们将连续发表“AI in 美团”系列文章,给大家全面揭开各项技术的内幕。 另外,业界第一部全面讲述互联网机器学习实践的图书《美团机器学习实践》也即将上市,敬请期待,本文选自书中第十五章。 背景 计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测、识别、理解、跟踪、判别决策的功能。以美团业务为例,在商家上单、团单展示、消费评价等多个环节都会涉及计算机视觉的应用,包括文字识别、图片分类

CV学习笔记(二十二):CRNN+CTC

☆樱花仙子☆ 提交于 2021-02-05 14:27:28
作者:云时之间 来源:知乎 链接: https://zhuanlan.zhihu.com/p/142269888 编辑:王萌 上次的一篇文章说了下DenseNet,这一篇文章来说一下CRNN+CTC的识别原理以及实现过程。这篇文章原理部分主要参考于白裳老师的“一文读懂CRNN+CTC文字识别”,其中的CTC原理的讲解部分是我见过最清晰易懂的,值得好好读一下。 一:OCR识别流程 通常我们做文本识别主要做上图中的三件事,检测的方法比较多,这里说一下识别,之前我们传统的识别过程是将检测到的数字划分为单字符(投影法等),然后扔到CNN里去分类, 但是深度学习的发展,出现了end2end的识别方式,简单的来说就是我们不需要将检测到的数字划分为单字符,无论你检测的数字长度多长,尺寸多宽,直接从头到尾给你识别出来。 比如上图的银行卡号,传统的方式要分割成 这样单个字符,现在直接从左到右识别完整,这样一来,我们就将单个字符的识别问题转化为序列的识别问题。 现在端到端的识别主要有两种比较流行的方式,以银行卡OCR识别为例: CRNN+CTC,CNN+Seq2Seq+Attention是比较流行的方式,CRNN用的会更广泛些,因为Attention机制限制会比较大些,而这两者最主要的区别也就在这,两者都抛弃了softmax,而CRNN用了CTC来最后文本对齐,而CNN用了Attention机制

『带你学AI』一文带你搞懂OCR识别算法CRNN:解析+源码

浪子不回头ぞ 提交于 2021-01-24 14:03:26
来源 | 极简AI 头图 | 视觉中国 本文搬运自小宋的小伙伴:https://blog.csdn.net/libo1004,欢迎大家关注文章链接:https://blog.csdn.net/libo1004/article/details/111595054 前言 文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。 其中,文本检测、文本识别是最核心的环节。文本检测方面,在我的 OCR_detection 专栏相关文章中已介绍过了多种基于深度学习的方法(有的还没完成,待整理后都会放入该专栏),可针对各种场景实现对文字的检测,详请见专栏中的相关文章。 在以前的 OCR 任务中,识别过程分为两步:单字切割 和 分类任务。我们一般都会将一连串文字的文本文件先利用 投影法 切割出单个字体,再送入 CNN 里进行文字分类。但是此法已经有点过时了,现在更流行的是基于深度学习的端到端的文字识别,即我们不需要显式加入文字切割这个环节,而是将文字识别转化为序列学习问题,虽然输入的图像尺度不同,文本长度不同,但是经过 DCNN 和 RNN 后,在输出阶段经过一定的 CTC 翻译转录后,就可以对整个文本图像进行识别,也就是说,文字的切割也被融入到深度学习中去了。 现今基于深度学习的端到端 OCR 技术有两大主流技术:CRNN OCR 和

[CQOI2014]通配符匹配

落花浮王杯 提交于 2020-12-04 18:29:11
Description 几乎所有操作系统的命令行界面(CLI)中都支持文件名的通配符匹配以方便用户。最常见的通配符有两个,一个是星号(“”’),可以匹配0个及以上的任意字符:另一个是问号(“?”),可以匹配恰好一个任意字符。 现在需要你编写一个程序,对于给定的文件名列表和一个包含通配符的字符串,判断哪些文件可以被匹配。 Input 第一行是一个由小写字母和上述通配符组成的字符串。 第二行包含一个整数n,表示文件个数。 接下来n行,每行为一个仅包含小写字母字符串,表示文件名列表。 Output 输出n行,每行为“YES”或“NO”,表示对应文件能否被通配符匹配。 Sample Input *aca?ctc 6 acaacatctc acatctc aacacatctc aggggcaacacctc aggggcaacatctc aggggcaacctct Sample Output YES YES YES YES YES NO HINT 对于1 00%的数据 字符串长度不超过100000 1 <=n<=100 通配符个数不超过10 本题有弱化版 [AHOI2005]VIRUS 病毒检测 , 题解 关于这题有很多解法,例如KMP,Hash啥的……但是既然这题有AC自动机的标签,那么我们肯定要用AC自动机去解决对吧? 然后冥思苦想没有结果……滚去看题解

深度学习文字识别

我只是一个虾纸丫 提交于 2020-11-13 09:30:30
Blog : https://blog.csdn.net/implok/article/details/95041472 步骤 : 文字识别是AI的一个重要应用场景,文字识别过程一般由图像输入、预处理、文本检测、文本识别、结果输出等环节组成。 分类 :文字识别可根据待识别的文字特点采用不同的识别方法,一般分为定长文字、不定长文字两大类别。 定长文字(例如 手写数字识别 、 验证码 ),由于字符数量固定,采用的网络结构相对简单,识别也比较容易; 不定长文字(例如印刷文字、广告牌文字等),由于字符数量是不固定的,因此需要采用比较复杂的网络结构和后处理环节,识别也具有一定的难度。 一、定长文字识别 定长文字的识别相对简单,应用场景也比较局限,最典型的场景就是验证码的识别。由于字符数量是已知的、固定的,因此,网络结构比较简单,一般构建3层卷积层,2层全连接层便能满足“定长文字”的识别。 手写数字识别 MNIST是一个经典的手写数字数据集,来自美国国家标准与技术研究所,由不同人手写的0至9的数字构成,由60000个训练样本集和10000个测试样本集构成,每个样本的尺寸为28x28,以二进制格式存储,如下图所示: MNIST手写数字识别模型的主要任务是:输入一张手写数字的图像,然后识别图像中手写的是哪个数字。 该模型的目标明确、任务简单,数据集规范、统一,数据量大小适中

ASLP Kaldi

别说谁变了你拦得住时间么 提交于 2020-11-08 10:19:36
ASLP(Audio, Speech and Language Processing Group ,音频、语音和语言处理组 ) 位于西北工业大学,隶属于陕西省语音和图像信息处理重点实验室(SAIIP)。 ASLP小组成立于1995年。ASLP小组的使命是促进音频,语音和语言处理学科内的广泛学科的跨学科研究和教育。目前,ASLP集团的研究范围包括人机语音通信,语音和音频信号处理,视听处理,多媒体内容分析和检索。 在2011年,该组由三位正教授,一位副教授,四位兼职教授和三十多位博士和硕士生组成...... ASLP 官网: http://www.npu-aslp.org ASLP Kaldi Github : https://github.com/robin1001/kaldi-aslp/blob/master/README.md ASLP Kaldi 是对 Kaldi 的增强,增强的功能有: nnet 增强 Batch 正则化 标准 LSTM 、 BLSTM without projection 延迟( Latency )控制 BLSTM Warp CTC 以及 Eesen 版本的 CTC Skip training & decode 图网络(如多输入、多输出、 add 与拼接) 行卷积 GRU FSMN 语音端点检测( VAD ) 在线识别 并行化增强 BSP ( Bulk

Debian 10 | Debian 9系统安装PostgreSQL 13详细过程

女生的网名这么多〃 提交于 2020-11-04 19:57:29
PostgreSQL是一个开放源代码,功能强大,具有弹性和容错性的关系数据库管理系统,可为许多关键任务应用程序提供支持。PostgreSQL数据库基于POSTGRES 4.2。截至目前为止,PostgreSQL的最新稳定版本为版本13。有关PostgreSQL 13的所有新功能,改进和错误修复报告,可在官方发行页面上找到。 以下是PostgreSQL 13一些值得注意的新功能: B树索引条目的重复数据删除带来的改进–空间节省和性能提升 使用聚合表或分区表的查询可提高性能。 增量排序 使用扩展统计信息时更好的查询计划 索引的并行清理 更新系统及其软件包 如果按照本文过程下一步进行操作,则应该在Debian 10 | Debian 9系统上获得可运行且可以运行的PostgreSQL 13。建议在继续之前更新Linux系统和所有已安装的软件包。 sudo apt update sudo apt -y upgrade 重新启动服务器。 sudo reboot 添加PostgreSQL 12存储库 在配置APT存储库之前,导入用于签名软件包的GPG密钥,添加PostgreSQL 12存储库即可,命令如下: sudo apt update sudo apt -y install gnupg2 wget --quiet -O - https://www.postgresql.org/media

Greenplum中定义数据库对象之创建与管理数据库

喜你入骨 提交于 2020-08-12 10:34:59
定义数据库对象 创建与管理数据库 通过\h命令查看创建数据库的语法,如下所示: testdw-# \h create database Command: CREATE DATABASE Description: create a new database Syntax: CREATE DATABASE name [ [ WITH ] [ OWNER [=] dbowner ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace ] [ CONNECTION LIMIT [=] connlimit ] ] 连接限制 说明: 一个GPDB系统可以有多个数据库; 关于数据库模版:可以基于模版创建数据库,缺省数据库模版为template1,GP系统内部使用模板:template0和postgres; 创建数据库应该具备CREATEDB权限或者SUPERUSER身份; 通过CREATEDATABASE 命令创建; template1=# create database devdw; CREATE DATABASE 克隆一个数据库 template1=#\c devdw 使用

【Paper】CTC Introduce

帅比萌擦擦* 提交于 2020-08-12 02:22:09
Connectionist Temporal Classification, an algorithm used to train deep neural networks in speech recognition, handwriting recognition and other sequence problems. 1. Problem don’t know the characters in the transcript align to the audio when having a dataset of audio clips and corresponding transcripts. people’s rates of speech vary. hand-align takes lots of time. Speech recognition, handwriting recognition from images, sequences of pen strokes, action labelling in videos. 2. Question Define when mapping input sequences X = [ x 1 , x 2 , … , x T ] X = [x_1, x_2, \ldots, x_T] X = [ x 1 ​ , x 2

能跑源码,还提供数据集:这里有一个入门企业级验证码识别项目

☆樱花仙子☆ 提交于 2020-08-11 01:13:13
  机器之心专栏    作者:kerlomz    网上关于验证码识别的开源项目众多,但大多是学术型文章或者仅仅是一个测试 demo,那么企业级的验证码识别究竟是怎样的呢?    1. 前言   网上关于验证么识别的开源项目众多,但大多是学术型文章或者仅仅是一个测试 demo,那么企业级的验证码识别究竟是怎样的呢?前方高能预警,这是一个生产水准的验证码识别项目,笔者可以向你们保证,它一定会是各位所见过的文章中最实用的,你甚至可以不需要懂代码写代码就能轻松使用它训练一个 99 识别率的模型。这才是企业级应该有的样子:算法开发负责框架,训练只需要一个实习生。不仅操作上简单,在可用性和稳定性上也是经得起考验。性能上,笔者使用腾讯云 1 核 1G 的机器测试:单次识别平均在 12ms 左右,再也不需要 GPU 部署了,CPU 一样可以日调百万。   不少初学者和笔者反应,安装环境太难了,没关系,都给你们安排好了,一行 pip 就能搞定环境的 MuggleOCR。   仓库地址: https://pypi.org/project/muggle-ocr   MuggleOCR 的体积有 6MB,其中附带了两个通用模型:简单通用验证码,普通 OCR。简而言之就是,再也不用愁验证码的样本不好标注了,它将是各位标注样本的利器,简单的验证码识别率能有 95% 以上,复杂的也有 50%-70% 左右