如何通过表情包文字识别提取出文字,作为关键字搜索?

  • 回答 (11)
  • 关注 (1)
  • 查看 (585)

在我们的表情项目当中需要从形形色色的网络表情中找出对应的文字,作为关键字搜索。

KKKCobainKKKCobain提问于
缪雪儿sakura回答于
推荐

目前主流的文字识别方法都差不多。主要分为两个模块,一个模块定位文字位置,另外一个模块针对定位后的文字进行识别。

看看多强大哈哈!文字定位后截取的图片

文字识别使用CTC(Connectionist Temporal Classification)技术在语音识别里很常用,后来也被用于文字的识别。文字识别中使用的CTC也是基于端对端的。基本思路是将定位后的图片,用CNN网络提取特征,输出特征给RNN网络,再由RNN网络输出预测序列。输出的序列通过greedy decoder、最优路径等方法进行解码,并计算出损失。

火狐回答于

为了达到我们想要的效果,会使用到一些调优方法

 数据扩增

     通过人工去标注大量的文字定位信息和文字内容信息用于训练显然是不可行的。对比其他业务的标签数据,文字识别是比较容易通过机器去生成。我们研究了后台表情图片的文字大致分布,然后模拟生成接近真实图片的训练数据。

     方法包括:

     a. 找各种颜色的背景图,以便于生成多样性,例如偏蓝色背景图,偏红色背景图,黑白背景图等等。

     b. 结合语料使生成的图片更加接近真实数据集。

     c. 控制各种类型图片生成比例。

网络结构

a. 文字定位最开始用的是VGG网络,定位出来的坐标不够准确。定位后发现是由于VGG网络学习容易饱和导致。后采用深度残差网络替换,使得loss能够进一步降低。

     b. CTC模型使用的是一个改进的VGG16网络,以及一个双向RNN网络。在改进版VGG16网络中,每一层都加上Batch Norm以及dropout。

tricks

     a. 由于我们在CTC中使用的是双向RNN网络,因此在训练过程中,前几个time step不计算损失。目的是让网络在第一次计算loss的时候,能拿到前后的信息。

     b. Spatial Transform。定位的图片输入后使用ST对输入进行空间变换,增加模型健壮性。

     c. 权重初始化使用何恺明论文里提出的variance scaling initializer[7]。

     d. 图片输入网络之前使用双线性插值。

参数调优

除去常规的参数调优,这里列举一些值得关注的参数调整

 a. 针对文字定位部分,主要调整了anchor box的aspect ratio。由于文字一般是长方形,因此我们希望长方形的anchor box生成的更多,减少其他不必要的anchor box。

     b. RNN输出的序列不宜过长,否则效果会下降。

云淡风轻回答于

对于不同的特定业务,需要收集该业务中尽可能多的标签数据,并针对这些标签数据做好数据扩增。使用适合的tricks和参数提高上限。把模型接入到运营环境中有助于提高。如下图所示:

i太过热闹的梦回答于

一张合适的底图配上逗比的文字往往比冰冷的文字更加能表达当时的一个心理状态。

一般搜索方式就是用户根据文字找到想要的表情。

皮皮洽移动互联网、心里咨询师、产品设计经理回答于

表情包充斥在了网络的各个角落。“能发图就不打字”哈哈哈。 表情文字识别还挺重要的,不然我怎么搜表情包啊。

kilybekb产品狗回答于

深度残差网络能够有效对抗梯度问题,但是由于网络太深,参数太多,会引起训练以及预测时候效率的下降。

月挽云岫回答于

这波操作可以说非常6了!道出了我想说的!难道这就是传说中上学与不上学的区别。。。

用户3127237回答于
用户3145279回答于

通过CNN可以大量学习计算

出最优化的路径

抛弃哥来了回答于
芜湖服务真实姐真是真实找到富商大贾发生的股份回答于

一张合适的底图配上逗比的文字往往比冰冷的文字更加能表达当时的一个心理状态。

一般搜索方式就是用户根据文字找到想要的表情。

所属标签

可能回答问题的人

  • Y. Ji

    5 粉丝0 提问1 回答
  • Superbeet

    4 粉丝0 提问0 回答
  • daiye

    1 粉丝0 提问0 回答
  • DJ213

    0 粉丝0 提问0 回答
  • 罗罗可爱多

    腾讯 · 高级研究员 (已认证)

    7 粉丝0 提问4 回答
  • 晏栋栋栋

    1 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券