CN110554782A - 一种表情输入的图像合成方法和系统 - Google Patents
一种表情输入的图像合成方法和系统 Download PDFInfo
- Publication number
- CN110554782A CN110554782A CN201910677155.1A CN201910677155A CN110554782A CN 110554782 A CN110554782 A CN 110554782A CN 201910677155 A CN201910677155 A CN 201910677155A CN 110554782 A CN110554782 A CN 110554782A
- Authority
- CN
- China
- Prior art keywords
- expression
- picture
- pictures
- input
- package
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/432—Query formulation
- G06F16/434—Query formulation using image data, e.g. images, photos, pictures taken by a user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种表情输入的图像合成方法,通过会话页面进入表情输入面板;检测表情输入面板上触发的表情输入事件,并获取输入的字符串;针对字符串对应多个表情包效果图的筛选操作,筛选操作包括推荐与字符串精准匹配的多个表情图片;将字符串与多个表情图片排版配置成多个表情包效果图,并将多个表情包效果图排列展示在表情输入面板中;表情包效果图其中之一被触发选取时,生成所述表情包效果图对应的表情包,后展示在会话页面中。本发明利用精准匹配与推荐相结合,筛选出多个表情图片,并展示输入字符串与多个表情图片拼接合成效果图,选中后,进入底层快递合成表情包并发送,给用户流畅的表情体验,且避免了网络延迟带来的卡顿。
Description
技术领域
本发明涉及输入法技术领域,具体涉及一种表情输入的图像合成方法和系统。
背景技术
随着互联网的快速发展,出现了各式各样的在线社交应用,包括即时通讯应用等。在使用这些社交应用的过程中,为了更形象、生动的表达想说的话,用户经常会发送一些动态表情,能够大大促进用户之间交流的灵活性和趣味性。
目前,许多动态表情一般都是由社交应用的开发者预先设计好的,用户下载或保存后即可使用,这些动态表情无法满足用户的个性化需求。为了能够使用自定义的动态表情,用户只能先通过额外的工具对自己喜欢的素材处理后生成动态表情,再将动态表情导入至社交应用中方便自己使用,显然,这种生成动态表情的方式效率极低。且这些动态表情通常是单个,对于大多数用户来说,不具有可扩展和可选择性。基于此,腾讯科技(深圳)有限公司在201811132844.6公开了一动态表情生成方法,针对现有的生成动态表情的方式效率较低的技术问题。
另外,在实际应用中,现有的表情输入存在有以下问题:为了尽可能地满足用户的需求,一个应用往往包含有几十甚至几百个表情供用户选择。当表情选择界面中包含较多表情时,需要分类和/或分页显示这些表情。用户在输入表情时,需要首先找到所需输入的表情所对应的分类和/或所在的页面,然后从中选取所需输入的表情。这就导致用户输入表情的速度很慢,而且增加了表情输入过程的复杂度。广州华多网络科技有限公司在201410069166.9的申请文件中公开了一种表情输入方法和装置,解决了现有技术中表情输入速度慢且过程复杂的问题;达到了简化表情输入过程,提高表情输入的速度的效果。但是,对于快速的互联网文化,热门表情图片与用户输入信息的精准匹配,实际应用中未体现精准匹配以及流畅的用户体验。
发明内容
针对现有技术的不足,本发明的目的在于提供一种表情输入的图像合成方法和系统,以解决现有技术中输入法中表情包的数量有限、下载过多表情包占用内存过大,网络表情包会有网络延迟等一系列影响用户体验的技术问题。
为实现上述目的,本发明提供了一种表情输入的图像合成方法,
包括如下步骤:
S101:通过会话页面进入表情输入面板;
S102:检测表情输入面板上触发的表情输入事件,并获取输入的字符串;
S103:针对所述字符串对应多个表情包效果图的筛选操作,所述筛选操作包括推荐与所述字符串精准匹配的多个表情图片;
S104:将所述字符串与所述多个表情图片排版配置成多个表情包效果图,并按照预设的方式将所述多个表情包效果图排列展示在表情输入面板中;
S105:所述表情包效果图其中之一被触发选取时,生成所述表情包效果图对应的表情包,后展示在所述会话页面中。
优选地,S103所述字符串对应多个表情包效果图的筛选操作之前还包括:生成所述多个表情包效果图预设区域的位图以及与各所述位图对应的渲染器,将所述渲染器的工作模式设置为平铺;将各所述表情图片粘贴到对应的所述位图中;根据所述渲染器的工作模式,控制画笔在所述预设区域内绘制所述字符串得到各所述表情包效果图。
优选地,S105中表情包生成进一步包括:所述表情包包括静态表情包和动态表情包;所述静态表情包通过将静态表情图片和所述字符串合成重组为一个静态表情包;所述动态表情包通过解析动态表情图片的所有帧数并将每一帧与所述字符串合成重组为一个动态表情包。
优选地,S105中表情包生成还包括:将选中的所述表情包效果图对应的所述表情图片转换为位图,并生成该位图对应的渲染器;将所述渲染器的工作模式设置为平铺;根据所述表情图片的预设排版配置,控制画笔将所述字符串绘制到预设排版位置后,按照NDK编码通道进行打包生成so动态库,使用so动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的所述表情包效果图对应的表情包。
优选地,S103中筛选操作进一步包括:
表情图库中表情图片中预先存储与之匹配的特征向量;
当获得所述输入字符串时,利用语言算法模型提取所述字符串中的若干特征向量,并利用各所述特征向量筛选表情图库中与各所述特征向量精准匹配的多个表情图片。
优选地,S103中筛选操作进一步包括:利用推荐算法模型筛选出多个精准匹配成功且用于展示到表情输入面板中的所述表情包效果图对应的所述表情图片。
优选地,所述表情图片录入表情图库时,配置好所述字符串与所述表情图片的预排版位置;所述排版位置包括将所述字符串设置于所述表情图片的上下左右以及所述表情图片内的位置的任意一个。
优选地,预先设定所述表情图库,所述表情图库包括服务器终端的表情图库和/或用户终端的表情图库;选择不同优先级来调用所述服务器终端的表情图库、用户终端的表情图库的至少其中之一。
优选地,选择不同优先级来调用表情图库进一步包括:所述用户终端与所述服务器终端之间的数据传输速率达到网络流畅速率时,所述字符串对应的特征向量与所述服务器终端的表情图库内的表情图片精准匹配;
所述用户终端与所述服务器终端之间的数据传输速率在网络速率拥堵区间时,按照优选级,依次调用服务器终端和用户终端的表情图片与所述字符串的特征向量精准匹配;其中,通过预先设定匹配时长,切换用于精准匹配的表情图库;
所述用户终端与所述服务器终端的网络断开时,所述字符串对应的特征向量与所述用户终端的表情图库内的所述表情图片进行精准匹配。
优选地,S103中筛选操作还包括:利用BERT语言算法模型提取多个所述字符串对应的特征向量,并利用SoftMax函数将各所述特征向量与分类好的所述表情图片进行类别概率归一化,并从情感分类中找出与各所述特征向量匹配的多个所述表情图片。
优选地,在表情输入面板的预设区域内,按照预设方式排列多个所述表情包效果图,使所述表情包效果图布满所述预设区域内,接收任一所述表情包效果图的触发事件,视为确认输入所述表情包,关闭所有所述表情包效果图和所述字符串。
为实现本发明的另一个目的,本发明采用如下技术方案:
一种表情输入的图像合成系统,包括:接收模块、匹配模块、推荐模块、排版模块、显示模块、合成模块;
接收模块:用于实时获取用户当前通过表情输入面板输入的字符串;
匹配模块:利用BERT语言算法模型对所述字符串进行解析,提取多个所述字符串对应的特征向量;基于各所述特征向量,筛选出多个表情图库中精准匹配成功的表情图片;
推荐模块:利用推荐算法模型对多个匹配成功的表情图片进行筛选,并筛选出用于展示的多个表情包效果图对应的所述表情图片;
排版模块:生成所述多个表情包效果图预设区域的位图以及与各所述位图对应的渲染器,将所述渲染器的工作模式设置为平铺;将各所述表情图片粘贴到对应的所述位图中;根据所述渲染器的工作模式,控制画笔在所述预设区域内绘制所述字符串得到各所述表情包效果图,并发送给所述显示模块展示;
显示模块:用于展示多个所述表情包效果图,以便用户触发选取其中一个表情包效果图;接收用户点击任一所述表情包效果图后,关闭所述表情包效果图及输入的所述字符串,会话页面显示所述表情包效果图对应表情包;
合成模块:将选中的所述表情包效果图对应的所述表情图片转换为位图,并生成该位图对应的渲染器;将所述渲染器的工作模式设置为平铺;根据所述表情图片的预设排版配置,控制画笔将所述字符串绘制到预设排版位置后,按照NDK进行打包生成so动态库,使用so动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的所述表情包效果图对应的表情包。
进一步地,还包括判断模块,所述判断模块用于判断用户终端当前的输入环境是否开启表情输入;若开启,继续执行获取当前用户输入字符串的步骤。
进一步地,还包括分析模块;所述分析模块用于分析用户终端与服务器终端的网络连通状态;若网络流畅,则将所述特征向量与服务器终端表情图库的表情图片精准匹配;若网络拥堵,则先将所述特征向量与服务器终端表情图库的表情图片精准匹配,匹配超过预设时长后,将匹配操作切换至用户终端,将所述特征向量与用户终端表情图库的表情图片精准匹配;若网络断开,则将特征向量与用户终端预先缓存的表情图片精准匹配。
本发明的有益效果如下:
(1)利用语言算法模型对输入的字符串进行解析,提取相应的特征向量,并将特征向量与表情图库中分类好的表情图片进行类别概率归一化,从而筛选出与输入的字符串相匹配的多个表情图片;
(2)利用推荐算法模型对匹配成功的表情图片进一步筛选,筛选出多个表情图片;
(3)将筛选出的多个表情图片与输入的字符串根据各个表情图片的预设排版配置,拼接合成表情包效果图,并展示给用户选择;
(4)选中的表情包效果图对应的表情图片和字符串根据底层通道快速合成表情包效果图对应的表情包;
(5)结合服务器终端与用户终端的表情图片资源供精准匹配,给用户流畅的表情体验,避免产生网络拥堵带来的卡顿;
(6)使用场景根据用户终端支持该表情输入法时才会展示,避免造成胡乱展示影响用户体验。
附图说明
图1为本发明实施例提供的表情输入的图像合成方法流程图;
图2为BERT模型输入表示的直观表示图;
图3为本发明一实施例提供的即时通讯界面的示意图;
图4为本发明一种动态表情包合成示意流程图;
图5为本发明静态表情包合成示意流程图;
图6为本发明一实施例提供的表情输入的图像合成系统结构图;
图7为本发明一实施例中表情输入的图像合成系统运行流程图;
图8为本发明的一种实施例中表情包生成的应用环境图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明一实施例提供的表情输入的图像合成方法原理流程图。
在S101中,通过会话页面进入表情输入面板。会话页面是用于展示会话消息的页面,比如,可以是社交应用中用于展示会话双方发送会话消息的页面。社交应用是基于社交网络进行网络互动的应用,社交应用通常具有即时通信功能,社交应用可以是即时通信应用等,会话消息就可以是即时会话消息。
表情是一种具有意思表达功能的图像,可反映发送该表情的用户的内心活动、情绪、情感或特定语义。常用表情包括静态表情和动态表情。通常,静态表情是一帧静态图片,可以是PNG(Portable Network Graphics,便携式网络图形)的文件格式,而动态表情是一个动画,由多帧图片合成,可以是GIF(Graphics Interchange Format,图像互换格式)的文件格式。
本例中的表情输入面板可理解为存放表情包对应的表情包效果图的容器。表情输入面板可以包括用于容纳不同类别或不同来源的表情对应的表情包效果图的多个页签,比如,用于容纳社交应用的开发者自行设计的表情对应的表情效果图的常用页签、用于容纳当前用户收藏的表情对应的表情效果图的收藏页签以及用于下载、保存或导入新的表情的添加页签,等等。通常,在会话页面中,表情输入面板与文本输入面板可自动来回切换,用户可在切换至文本输入面板时在文本输入框中输入文本,并向通信对方发送文本消息,在切换至表情输入面板时通过输入表情向通信对方发送表情消息。表情输入面板与文本输入面板可统称为会话面板。
通常,用户在回复其他用户时,可能想使用表情包进行回复,也可能想使用文字进行回复。因此,本例中,进入表情输入面板可理解为确认用户终端的当前环境开启表情输入,进而表示用户进入表情输入面板,预使用表情包进行回复,否则回到文本输入面板进行文字输入。
在S102中,检测表情输入面板上触发的表情输入事件,并获取输入的字符串。
在本例中,用户终端在会话页面中展示输入字符串(字符串可以为字、词、短句类),当检测到针对输入的字符串的触发事件时,触发的表情包在会话页面中展示在表情输入面板中。具体,用户终端在检测到当前用户触发的针对表情输入面板中输入的字符串的触发操作时,获取输入的字符串,并对字符串进行相应处理,筛选出匹配的且用户需要的表情包效果图供用户选择,将选择的表情包效果图对应的表情图片和字符串进行合成处理生成表情包后发送至登录通信对方的登录账号的另一终端,并将的表情包展示在当前的会话页面中。
在S103中,针对字符串对应多个表情包效果图的筛选操作,筛选操作包括推荐与字符串精准匹配的多个表情图片。其中可分为两个筛选步骤,首选,筛选出与字符串匹配的表情图片,其次,推荐出预展示到用户终端的表情图片。
关于表情图片调用表情图库中的表情图片,包括远程服务器终端的表情图库和用户终端的表情图库,其中用户终端的表情图库可以是用户终端缓存中的表情图片。各表情图片在录入表情图库时,已进行各表情图片进行了分类设定。
进一步地,用户终端获取输入的字符串与表情图片的精准匹配包括与服务器终端的表情图库内的表情图片进行精准匹配,也包括与用户终端的缓存图库的表情图片进行精准匹配。
本例中,为使输入的字符串与最热门的表情精准匹配合成,在用户终端与服务器终端网络流畅状态下,直接调用服务器终端的表情图库内的表情图片进行精准匹配,直至与服务器终端的网络拥堵断开,无法继续精准匹配时,切换至与用户终端的缓存表情图库的表情图片进行精准匹配。因此,在执行精准匹配操作时,需要同步检测用户终端与服务器终端的网络连通状态。对于网络连接问题,通常根据数据传输速率初步将网络划分为网络流畅、网络拥堵以及网络断开三种状态。
若用户终端与服务器终端之间的数据传输速率达到网络流畅值时,那么将字符串对应的特征向量与服务器终端表情图库的表情图片进行精准匹配;若用户终端与服务器终端之间的数据传输速率位于某一网络拥堵区间时,那么按照优先级依次将特征向量与服务器终端、用户终端的表情图库精准匹配,具体地,首先将字符串对应的特征向量与服务器终端的表情图库的表情图片进行精准匹配,在超过预设时长内,未筛选满预设展示图片数量的最低值时,将字符串对应的特征向量自动切换至用户终端预先缓存的表情图库的表情图片进行精准匹配;若用户终端与服务器终端的处于网络断开状态,那么直接将字符串对应的特征向量与用户终端预先缓存的表情图库内的表情图片进行精准匹配。
进一步地,关于字符串对应的特征向量与服务器终端的表情图片精准匹配时长问题,本例中,设置字符串对应的特征向量与服务器终端的表情图片的精准匹配的预设时长为800毫秒,当精准匹配时长超过800毫秒时,该精准匹配接口自动关闭,然后自动切换至与用户终端的缓存图片库中的表情图片进行精准匹配,当然用户终端通常会预先缓存有热门表情图片。
进一步,利用语言算法模型对用户输入的字符串进行特征向量的提取,并将提取的特征向量与分类好的表情图片进行精准匹配。
其中,关于字符串与表情图片的精准匹配,采用BERT的语言表示模型。关于BERT(Bidirectional Encoder Representation from Transformers)方法,首先将用户所要表达的情感进行特征表达,从而在用户输入所需表情时,能够提供更加精准的表情;其次,利用深度学习的分类方法,将情感表达分为多种(比如202种);最后针对表情包数量大以及移动端展示受限的不足,对匹配的表情包进行是筛选,基于此,采用了基于用户行为的表情包推荐算法,将用户最感兴趣的表情展示与其,避免用户过多滑屏选择,提高用户的使用体验。区别于传统的文字聊天及表情聊天过程,只是将相关情感表达直接(即相应表情包)直接展示于客户,本例中表情输入表现为,将所需表情文字可直接合成到相应表情图片上,更加精准的表达用户需要;其次,该本例中的表情输入涉及的情感类别有两百多种,基本覆盖了日常生活中的情感场景;且将传统的文字聊天变为动图聊天,提升聊天的趣味性。
进一步地,利用如下匹配流程,实现字符串与表情图片的精准匹配。
(1)预训练分类模型,将多种预设定的表情图片进行分类,根据特征预训练字符串的分类;
(2)预训练字符串的特征BERT模型,将用户所要表达的字符串进行特征表达对应特征向量的提取训练;
(3)接收到用户输入的字符串,以字符串中的“字”、“词”为单位进行包括分语、停用词在内的文字处理,并设置成表情特征BERT模型所需的输入的数据格式;
(4)输入至表情特征BERT模型进行特征向量的提取,获得对应的特征向量;
(5)将特征向量输入至预训练好的分类模型,并利用SoftMax函数将特征向量的类别概率归一化,得到最终所属的多个表情图片;
(6)利用User-CF或者Item-CF展示用户所需表情相对应的静态表情图片、动态表情图片在内的表情展示信息。
其中,关于BERT的语言表示模型,其代表Transformer的双向编码器表示。BERT旨在通过联合调解所有层中的上下文来预先训练深度双向表示。因此,训练的BERT表示可以通过一个额外的输出层进行微调,适用于广泛任务的最先进模型的构建,BERT:即Transformer的双向编码表示来改进基于架构微调的方法。BERT提出一种新的训练目标:遮蔽语言模型(mask language model,MLM),来克服上文提到的单向性局限。MLM的灵感来自Cloze任务。MLM随机遮蔽模型(即为语料特征BERT模型)输入中的一些token,目标在于仅基于遮蔽词的语境来预测其原始词汇id。与从左到右的语言模型训练不同,MLM目标允许表征融合左右两侧的语境,从而训练一个深度双向Tansformer。除了遮蔽语言模型之外,本专利还引入了一个“下一句预测”(next sentence prediction)任务,可以和MLM共同预训练文本对的表示。
基于BERT的输入表示:输入表示(input representation)能够在一个token序列中明确地表示单个文本句子或一对文本句子(例如,[Question,Answer])。对于给定token,其输入表示通过对相应的token、segment和position embeddings进行求和来构造。可参照图2所示的BERT的输入表示的直观表示图。每一个字的表示由Token Embedding、SegmentEmbedding、Position Embedding三个部分相加得到。其中Token Embedding是一个简答的查表操作,Segment Embedding表示该词语所属的句子,Position Embedding是对该字在句子中对应的位置的信息,也是一个查表操作。语料特征BERT模型是由双向Transformer组成的一个特征抽取模型。图中E表示字的embedding,T表示经过BERT编码后每个字的新的特征表示,Trm表示Transformer特征抽取器。在训练中使用masked language model,随机mask输入中的一些tokens,然后在预训练中对它们进行预测,并增加句子级别的任务,nextsentence prediction,随机替换一些句子,然后利用上一句进行IsNext/NotNext的预测。通过这两项任务,使用大规模的无标注语料对词的三种表示进行优化,得到预训练好的语料特征BERT模型。
其中,将字符串设置成特征BERT模型所需的输入数据格式进一步包括:使用WordPiece嵌入和多个token(比如30,000)的词汇表,用##表示分词,使用学习的positional embeddings,支持的序列长度最多为512个token,每个序列的第一个token始终是用[CLS]来表示的特殊分类嵌入,对应于该token的最终隐藏状态被用作分类任务的聚合序列表示,句子对被打包成一个序列,以两种方式区分句子,首先,用特殊标记([SEP])将它们分开,其次,添加一个learned sentence A嵌入到第一个句子的每个token中,一个sentence B嵌入到第二个句子的每个token中,对于单个句子输入,只使用sentence A嵌入。
接着介绍利用BERT模型对输入的字符串进行特征提取,获得对应的特征向量。进一步包括:对一个句子x=x1,x2,......,xn,句子中的每一个字使用token embedding、segment embedding、position embedding三个表示相加产生,并使用Masked LanguageModel和Next Sentence Prediction为优化目标,对字至少三种表示进行优化。
对于得到的字优化文本,使用TextCNN模型在内的模型,进行特征抽取,TextCNN模型是一个由多个感受的CNN并列组成的层叠模型,可以对句子中的表示对分类有帮助的特征进行很好的抽取,对抽取出的特征进行池化操作后,得到最终的分类特征表示。
TextCNN由多个不同卷积层并列组成,通过过多个大小不同的卷积核进行计算,使用多个大小不同的有利于句子语义特征和句型特征的提取;池化层对卷积后的结果进行池化操作,提取卷积计算后最重要的特征;将得到的字优化文本组建所述文本的语义文件,其经卷积层处理得到特征图;将所述特征图输入池化层,经最大池化处理得到词向量并将所述词向量串联成特征向量。从而实现,比如用户输入“生气”,所以匹配出来的表情图片皆为“生气”的表情。
进一步地,针对提取字符串的多个特征向量,特征向量可分为第一特征向量、第二特征向量等,通常在第一特征向量匹配不成功后调用第二特征向量,当然如果第二特征向量依旧匹配不成功,继续下一个特征向量。另外当涉及到敏感的字符串时,服务器终端或用户终端直接反馈信息给用户,告知用户终端不展示表情。
字符串对应的第一特征向量与表情图片精准匹配不成功时,利用关联规则联想出相关的第二特征向量,该第二特征向量可以为原特征向量的近义词或者相似含有的词或者其他有关系的,如果第二特征向量与表情图片依旧匹配不成功,那么继续利用关联规则联想相关的特征向量。进一步地,将联想出的相关的特征向量与表情图片进行精准匹配。当然该关联规则对用户终端和/或服务器终端的任何网络状态都适用。
进一步地,针对精准匹配成功的表情图片,如何推荐出用户可能需要的表情图片,比如,用户习惯使用的表情图片系列,或者当前字符串匹配的热门表情图片等等。本例中采用一系列的推荐算法模型,将表情图片相对应的图或动画内的表情展示信息基于协同过滤的推荐。常用的推荐表情方法如下
(1)Item-CF
基于物品的协同过滤和基于用户的协同过滤相似,它使用所有用户对物品或者信息的偏好(评分),发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。基于物品的协同过滤可以看作是关联规则推荐的一种退化,但由于协同过滤更多考虑了用户的实际评分,并且只是计算相似度而非寻找频繁集,因此可以认为基于物品的协同过滤准确率较高并且覆盖率更高。
(2)User-CF
基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好(评分),发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K-Nearest Neighboor”的算法;然后,基于这K个邻居的历史偏好信息,为当前用户进行推荐。
基于商品的协同过滤方法很多,后续实施例中也给出一些。在此先举个例再说明一下。用户相关或相近用户群,该用户群有表情a,表情b,...,表情n每个表情具有若干N(比如N可以为2-4)个表情标签(主要为2-4个关键字),譬如表情a具有标签(taga):taga1(比如:开心)、taga2(比如:笑眯眯)、taga3(比如:姚明)...tagaN,则taga中的关键字通过BERT模型得到其相应的特征向量:
v(taga1)=[v11,v12,...,v1m]
v(taga2)=[v21,v22,..,v2m]
...
v(taga3)=[v31,v32,...,v3m]
...
v(tagaN)=[vN1,vN2,..,vNm]
对taga每个关键字向量加权求平均得:
v(taga)=[v11+v21+v31,v12+v22+v32,...,vNm+vNm+vNm]/m
=[V11,V12,...,V1m]
同理有表情b有标签tagb,其每一个标签关键字经过BERT模型得到相应的特征向量v(tagb)=[V21,V22,...,V2m],表情c有标签tagc,其每一个标签关键字经过BERT模型得到相应词的特征向量v(tagc)=[V31,V32,...,V3m]
则可以利用余弦相似度求得表情间的相似程度:
表情a与表情b的相似程度为:cos(taga,tagb):
表情a与表情c的相似程度为:cos(taga,tagc):
表情b与表情c的相似程度为:cos(tagb,tagc):
...
某一表情,通过计算其若干相关表情cos值,计算上述cos值最小的为表情最相似,可将相似表情推荐于该用户。
(3)基于内容的推荐
基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。这种推荐系统多用于一些资讯类的应用上,针对文章本身抽取一些tag作为该文章的关键词,继而可以通过这些tag来评价两篇文章的相似度。基于内容的推荐具有如下优势:
A.易于实现,不需要用户数据因此不存在稀疏性和冷启动问题。
B.基于物品本身特征推荐,因此不存在过度推荐热门的问题。
(4)基于关联规则的推荐
基于关联规则的推荐更常见于电子商务系统中,并且也被证明行之有效。其实际的意义为购买了一些物品的用户更倾向于购买另一些物品。基于关联规则的推荐系统的首要目标是挖掘出关联规则,也就是那些同时被很多用户购买的物品集合,这些集合内的物品可以相互进行推荐。目前关联规则挖掘算法主要从Apriori和FP-Growth两个算法发展演变而来。
基于关联规则的推荐系统一般转化率较高,因为当用户已经购买了频繁集合中的若干项目后,购买该频繁集合中其他项目的可能性更高。基于关联规则推荐的优势如下:
A.计算量较大,但是可以离线计算,因此影响不大。
B.由于采用用户数据,不可避免的存在冷启动和稀疏性问题。
C.存在热门项目容易被过度推荐的问题。
因此,本例中可简要描述,当基于关联规则的推荐中,首要目标为挖掘出关联规则,通常为同时被很多用户使用的表情集合,这些表情集合可以进行相互推荐。目前关联规则的挖掘算法主要是从Apriori和FP-Growth两个算法发展演变而来。基于内容的推荐,通常根据表情图片与输入的字符串的相关性,基于用户以往的喜好记录,推荐给用户相似的表情图片。
综上推荐算法,筛选出精准匹配成功的表情图片,从网络热门表情图片或者按照用户喜好筛选出用户终端推荐的表情图片供用户选择。
在S104中,将字符串与多个表情图片排版配置成多个表情包效果图,并按照预设的方式将多个表情包效果图排列展示在表情输入面板中。
关于表情包效果图,基于表情输入面板的预设区域,生成多个表情包效果图预设区域的位图以及与各个位图对应的渲染器,将这些渲染器的工作模式设置为平铺;将各个表情图片粘贴到各自对应的位图中;根据渲染器的工作模式,控制画笔在预设区域内绘制字符串,得到各所述表情包效果图。
进一步地,按照表情输入面板的预设方式,排列展示多个表情包效果图,使表情包效果图布满预设区域内。当然预设区域的数量可进行设定,以用于推荐精准匹配成功的表情图片的最低值。进一步地,在接受任一表情包效果图的触发事件时,视为确认输入该表情包效果图对应的表情包,并关闭所有表情包效果图和字符串。
如图3所示,本发明一实施例提供的即时通讯界面的示意图,选出多个热门表情图片后,将多个热门表情图片与字符串排版配置成表情包效果图展示在表情输入面板中。筛选出的热门表情图片与输入的字符串,根据各表情图片预设的排版配置,拼接合成表情包效果图,并将排版配置好的表情包效果图展示在输入面板的预设区域内。当然,此时热门表情图片与输入的字符串属于位图的拼接,且只是各热门表情图片与字符串位置上的位图拼接排版,将排版配置好的表情包效果图预览展示在表情输入面板中,供用户对表情包效果图进行触发选择。
各个表情图片录入到表情图库时,已配置好字符串与表情图片的排版位置;排版位置包括将字符串设置于各表情图片的上下左右以及表情图片内的位置的任意一个。
进一步地,关于排版配置,本例中采用图片预设排版配置,具体表现为表情输入面板中的字符串在表情图片上的位置不是固定的。当然关于表情图片的位置问题,在表情图片录入到表情图库中时,进行表情图片审核时进行了相应字符串显示位置的设置,因此,在进行精准匹配或推荐筛选时,调用的表情图片已设置好每张表情图片中字符串的位置。以便合成后的表情包呈现出来的是比较符合审美设计的排版展示,因此,对于排版,可理解为字符串在表情图片上的排版位置时不固定的,上下左右以及图片内都可,但是对于每一个表情图片,在录入到表情图库时,已预先设置了,因此也可称为预设动态排版。因此,可以进行初次时动态排版,随着用户使用习惯的累积,也可以用推荐算法将用户喜好的表情图片的排版设置推荐于用户。
针对所述字符串与对应的热门表情图片的显示,本例中,可如图3所示,将筛选出的热门表情图片与字符串固定排版配置成表情包的效果图,并预览显示以供用户选择;一种实施例中,该排版表现为,字符串拼接在表情图片的顶部或底部,该排版方法可通过组件拼接展示,一个组件展示表情图片一个组件展示字符串,这样拼接成表情包效果图。换句话说,关于将筛选出的热门表情图片与字符串排版配置,字符串与各表情图片展示效果是预先设置的,但是,可以预先设置在表情图片区域内的任意位置也可在表情图片区域外的上下左右任意位置,且该排版规则属于随机分配,按照表情图片录入图片库是设定好,整体动态配置,单个固定设置。配置完成后进行预览展示合成前的表情包效果图。通过合成前预览选择以避免减少每次合成造成的性能消耗,从而能够更流畅的展示。
如图3所示的实施例,用户终端输入“开心”,后台运行时,筛选出若干与“开心”匹配的表情图片,各表情图片中的动画或形态都不一样,可以设置在图片内容的上方、下方、左边、右边或者可以在图片动画内部,若系统随机设置,可能会出现重复,或者展示出来最匹配的表情图片,但是排列出来的属于同一个图片的不同位置,这样给用户带来选择的不便性,即同一个图片的不同表现,还是同一个图片,不利于表情图片展示的丰富多彩性。
另外筛选出的热门表情图片与字符串的合成前的效果图,每次至少陈列20个,以提供用户足够多的选择。
S105中,表情包效果图其中之一被触发选取时,生成所述表情包效果图对应的表情包,后展示在会话页面中。
表情包效果图用于在表情输入面板中检测到针对表情包的效果图的选取事件时,对选中的表情包效果图对应的字符串和表情图片进行处理合成新的表情包,此时表情包作为会话消息展示在所述会话页面中。可理解为,接收用户点击的任一预览展示的表情包,默认为该用户选择发送该表情包,点击操作后,本例中,选择的热门表情图片与输入的字符串通过底层通道快速合成,合成操作完成后可调用第三方程序中图片发送接口实现确认发送。当然,在用户开启无障碍模式的前提下,可在用户点击后无需再次确认即可合成表情包以实现自动发送。
用户终端的表情输入面板中接收用户点击任一表情包合成前的效果图为确认输入该表情包,且在点击后,关闭表情包的效果图和字符串,此时,选中的表情包作为会话消息展示在会话页面中。
将选中的表情包效果图对应的表情图片转换为位图,并生成该位图对应的渲染器;将该渲染器的工作模式设置为平铺;根据表情图片与字符串的预设排版配置,控制画笔将字符串绘制到预设位置后,按照NDK进行打包生成so动态库,使用so动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的表情包效果图对应的表情包。
其中,表情包包括静态表情包和动态表情包;如图4所示为静态表情包合成示意流程图,如图5所示为一个动态表情包的合成示意流程图。关于选中的表情图片与输入的字符串,可包括以下情况:字符串与静态表情图片生成静态表情包效果图;字符串与静态表情图片生成静态表情包;字符串与动态表情图片生成动态表情包;字符串与动态表情图片生成动态表情包效果图。
静态表情包通过将静态表情图片和字符串合成重组为一个静态表情包;动态表情包通过解析动态表情图片的所有帧数并将每一帧与字符串合成重组为一个动态表情包。
生成多个表情包效果图预设区域的位图以及与各位图对应的渲染器,将渲染器的工作模式设置为平铺;将各表情图片粘贴到对应的位图中;根据渲染器的工作模式,控制画笔在预设区域内绘制字符串,得到各表情包效果图。
将选中的表情包效果图对应的表情图片转换为位图,并生成该位图对应的渲染器;将渲染器的工作模式设置为平铺;根据表情图片的预设排版配置,控制画笔将字符串绘制到预设排版位置后,按照NDK进行打包生成so动态库,使用so动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的表情包效果图对应的表情包。
关于字符串的绘制,例如在Android系统中,可以通过BitmapmBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.background_01)的方式实例化Bitmap得到mBitmap,将图像显示指令指向的标识信息为background_01的源图片转换为位图;再通过mBitmapShader=newBitmapShader(mBitmap,Shader.TileMode.REPEAT,Shader.TileMode.REPEAT)的方式,实例化所述Shader生成所述位图对应的渲染器mBitmapShader。通过Shader.TileMode.REPEAT将所述渲染器的工作方式设置为重复。再通过paint.setShader(mBitmapShader)将mBitmapShader设置给画笔paint。
可以理解为,将字符串绘制到位图格式的表情图片中,通过底层编码通道打包带目标位置,以便调用。例如,在Android系统中,利用第三方开源的android-ndk-gif C++源码进行提取优化后编译成so动态库,通过C++语言实现对32-bit ARGB图片进行色彩量化,转化成Gif动态图(即为256色域)。通过C++语言实现对32-bit ARGB图片进行色彩量化,转化成Gif动态图(即为256色域)。其中关于色彩转换算法是基于Gifflen@Bitmap色彩还原和GIF编码的,通过对Gifflen的C++源码进行定制和修改,编译出本地库(即用户终端内部的.so文件),通过NDK通道打包至APK(AndroidPackage)(即用户终端安装包)供Java层调用。从而实现表情包的快速生成,以便调用并呈现在会话页面中。
其中,so动态库支持对动态表情图片的解码,使其解码出一帧一帧格式,也支持将一帧一帧格式的位图合成文件,因此将程序底层封装成so动态图,以便与Java层调用解码动态表情图片以及生成动态表情图片。
因此,可以理解,动态表情图片需要进入NDK通道进入SO动态库进行解码,解码成功后得到位图格式的多帧表情图片。因此,在生成表情包效果图步骤中,针对表情输入面板中的多个表情包效果图的预设区域生成的多个位图以及各个位图对应的渲染器,且将这些渲染器的工作模式设置为平铺,将各个表情图片粘贴到各自对应的位图区域中,并根据渲染器的工作模式控制画笔在预设区域内绘制字符串,从而得到表情包效果图。当然此处针对静态表情包效果图。动态表情包效果图还需要将多帧表情图片对应的多帧表情包效果图进行封装合成动态表情包效果图。
进一步地,so动态库支持对动态表情图片的解码,使其解码出一帧一帧的位图格式,也支持将一帧一帧格式的位图位图合成动态文件,因此利用程序底层封装成so动态图,以便与Java层调用解码动态表情图片以及生成动态表情图片。
因此,通过合成动态表情图片的实施例进行理解,如下:
用户输入“开心”,提取“开心”的特征向量,将“开心”的特征向量与表情图库中与“开心”的特征向量匹配的表情图片提出出来,再根据推荐算法,筛选出当前最热门表情图片,将筛选出的多个热门表情图片与输入的“开心”合成表情包效果图展示在表情输入面板中,供用户选择。
接受到用户点击的任意一个拼接效果图后,输入的“开心”和选中的热门表情图片进入合成表情包出来,利用第三方开源的android-ndk-gif C++源码进行提取优化后编译成so动态库,对表情图片和“开心”进行处理,使其字体、颜色、大小、位置按照录入到表情图库时的预制规则进行定制修改,将“开心”绘制到选中的热门表情图片的位图中,通过C++语言实现对该位图(32-bit ARGB图片)进行色彩量化,转化成Gif动态图(即为256色域)。其中,关于色彩转换算法是基于Gifflen@Bitmap色彩还原和GIF编码的,通过对Gifflen的C++源码进行定制和修改,编译出本地库(即用户终端内部的.so文件),通过NDK通道打包至APK(AndroidPackage)(即用户终端安装包)供Java层调用,从而实现表情图片与“开心”在底层的快速合成,然后按照程序设定调用到会话页面中。其中,采用筛选后进行效果图展示,在点击选中后才进行合成,可以想象,效果图展示结合单个图片的合成,与现有技术中展示时已是合成图片相比,本方法降低了用户终端的内存使用率,且提高了运行速度,便于用户终端运行的流畅。
如图6所示,为本发明一实施例提供的表情输入的图像合成系统结构图;结合图7所示,该系统表情输入的图像合成运行的流程图。
该系统包括判断模块31、接收模块32、分析模块33、匹配模块34、推荐模块35、排版模块36、显示模块37、合成模块38。
接收模块32,用于实时获取用户当前通过表情输入面板输入的字符串;
匹配模块34,利用BERT语言算法模型对字符串进行解析,提取多个字符串对应的特征向量;基于各特征向量,筛选出多个表情图库中精准匹配成功的表情图片;
推荐模块35,利用推荐算法模型对多个匹配成功的表情图片进行筛选,并筛选出用于展示的多个表情包效果图对应的表情图片;一般至少筛选出20个热门表情图片。
对于表情筛选,具体可以用以下方法来实施:
第一种方法,根据用户使用该种表情的次数对用户直接展现该表情,也即在“喜”这种类型的表情中,用户所使用“小黄人头像”的表情次数最多,将此表情可推荐展示于用户;
第二种方法,通过协同过滤的方法:简单示例如下。
基于用户的协同过滤方法,其中有用户A,用户B,用户C;表情a,表情b,表情c,接收用户输入的点击次数,每个用户对每个表情的使用情况如下图所示(即点击次数)。
表情a | 表情b | 表情n | |
用户A | 8 | 5 | 3 |
用户B | 7 | 10 | 2 |
用户C | 4 | 2 | 1 |
则在此,用户相似度可利用欧式距离、聚类等方法的其他求距离相似度方法,在此利用欧式距离进行举例说明。欧式距离公式如下:在n维空间,点集合x与点集和y之间的距离为d(x,y):
则对于用户A(userA)和用户B(userB)有:
对于用户A(userA)和用户C(userC)有:
对于用户B(userB)和用户C(userC)有:
所以可将用户A使用过的表情推荐于用户B,或可以将用户B使用过的表情推荐于用户A。
如果使用聚类的方法,对用户A,用户B及用户N使用聚类的方法,得知具有相同喜好商品(在此为使用用户表情)的用户,可此类用户使用过的表情推荐于此类用户。
基于商品的协同过滤方法,在此表情a,表情b,...,表情n每个表情具有2-4个表情标签(主要为2-4个关键字),譬如表情a具有标签(taga):开心、笑眯眯、姚明,则taga中的关键字通过BERT模型得到其相应的特征向量:
v(开心)=[v11,v12,...,v1m]
v(笑眯眯)=[v21,v22,..,v2m]
v(呲牙)=[v31,v32,...,v3m]
对taga每个关键字向量加权求平均得:
v(taga)=[v11+v21+v31,v12+v22+v32,...,v1m+v2m+v3m]/m
=[V11,V12,...,V1m]
同理有表情b有标签tagb,其每一个标签关键字经过BERT模型得到相应的特征向量v(tagb)=[V21,V22,...,V2m],表情c有标签tagc,其每一个标签关键字经过BERT模型得到相应词的特征向量v(tagc)=[V31,V32,...,V3m]
则可以利用余弦相似度求得表情间的相似程度:
表情a与表情b的相似程度为:cos(taga,tagb):
表情a与表情c的相似程度为:cos(taga,tagc):
表情b与表情c的相似程度为:cos(tagb,tagc):
在实际的应用中,计算上述cos值最小的为表情最相似,可将相似表情推荐于该用户。
在上述表情相似度计算方法中,还可以利用聚类等其他相似度方法,最终将得到结果相似的表情,推荐于该用户。
排版模块36,生成多个表情包效果图预设区域的位图以及与各位图对应的渲染器,将渲染器的工作模式设置为平铺;将各表情图片粘贴到对应的所述位图中;根据渲染器的工作模式,控制画笔在预设区域内绘制字符串得到各表情包效果图,并发送给显示模块37展示;
显示模块37,用于展示多个表情包效果图,以便用户触发选取其中一个表情包效果图;接收用户点击任一表情包效果图后,关闭表情包效果图及输入的字符串,会话页面显示表情包效果图对应表情包;
合成模块38,将选中的表情包效果图对应的表情图片转换为位图,并生成该位图对应的渲染器;将渲染器的工作模式设置为平铺;根据表情图片的预设排版配置,控制画笔将字符串绘制到预设排版位置后,按照NDK进行打包生成SO动态库,使用SO动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的表情包效果图对应的表情包。
判断模块31,在接收模块获字符串动作之前,用于判断用户终端当前的输入环境是否开启表情输入法;若开启,则继续执行获取当前用户通过输入法输入的字符串的步骤。
分析模块33,分析模块33用于分析用户终端与服务器终端之间的数据传输速率;若数据传输速率达到网络流畅值,则将特征向量与服务器终端表情图库的表情图片精准匹配;若数据传输速率在网络拥堵的某一区间值时,依次将特征向量与服务器终端的表情图库、用户终端的表情图库进行精准匹配,具体地,先将特征向量与服务器终端表情图库的表情图片精准匹配,匹配超过预设时长后,将匹配操作切换至用户终端,将特征向量与用户终端表情图库的表情图片精准匹配;若没有数据传输速率时,表示网络断开,将特征向量与用户终端预先缓存的表情图片精准匹配。通常预设时长为800毫秒,超过800毫秒后自动切换至与用户终端表情图片的精准匹配。
图8为本发明的一个实施例中表情包生成的应用环境图,具体地,该表情包生成系统包括用户终端110和服务器终端120。用户终端110和服务器终端120通过网络连接。终端110具体可以是移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。用户终端110在会话页面中进入表情输入面板,检测并获取在表情输入面板中输入的字符串;用户终端110还可获取针对该字符串进行特征提取和从情感分类中找到最终所属的表情,并筛选推荐与所述字符串精准匹配的表情图片,并将所述字符串与所述表情图片随机排版配置成表情包合成前的效果图并显示在表情输入面板中,并且可根据各种推荐算法展示出多个效果图作为会话消息展示在会话页面中的表情输入面板中供用户选择。
需要说明的是,上述的应用环境只是一个示例,在一些实施例中,用户终端110还可将输入字符串直接发送至服务器终端120,由服务器终端120按照取针对字符串进行特征提取和从情感分类中找到最终所属的表情,并筛选推荐与所述字符串精准匹配的表情图片,并将所述字符串与所述表情图片随机排版配置成表情包合成前的效果图显示在用户终端110,以供用户使用。这样用户终端110在检测到针对表情输入面板中该表情缩略图的触发操作时,合成相应的表情包,并将该表情包作为会话消息展示在会话页面中。当然,本例中,用户终端110向用户展示多个筛选出的表情包的缩略图,并通过各种推荐算法推荐至用户,由用户选定后,合成并展示在会话页面中。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (14)
1.一种表情输入的图像合成方法,其特征在于,包括如下步骤:
S101:通过会话页面进入表情输入面板;
S102:检测表情输入面板上触发的表情输入事件,并获取输入的字符串;
S103:针对所述字符串对应多个表情包效果图的筛选操作,所述筛选操作包括推荐与所述字符串精准匹配的多个表情图片;
S104:将所述字符串与所述多个表情图片排版配置成多个表情包效果图,并按照预设的方式将所述多个表情包效果图排列展示在表情输入面板中;
S105:所述表情包效果图其中之一被触发选取时,生成所述表情包效果图对应的表情包,后展示在所述会话页面中。
2.如权利要求1所述的方法,其特征在于,S103所述字符串对应多个表情包效果图的筛选操作之前还包括:
生成所述多个表情包效果图预设区域对应的位图以及与各所述位图对应的渲染器,将所述渲染器的工作模式设置包括平铺模式;
将各所述表情图片粘贴到对应的所述位图中;
根据所述渲染器的工作模式,控制画笔在所述预设区域内绘制所述字符串,得到各所述表情包效果图。
3.如权利要求1或2所述的方法,其特征在于:S105中表情包生成进一步包括:
所述表情包生成包括静态表情包生成和动态表情包生成;
所述静态表情包生成通过将静态表情图片和所述字符串合成重组为一个静态表情包;所述动态表情包生成通过解析动态表情图片的所有帧数并将每一帧与所述字符串合成重组为一个动态表情包。
4.如权利要求3所述的方法,其特征在于,S105中表情包生成还包括:
将选中的所述表情包效果图对应的所述表情图片转换为位图,并生成该位图对应的渲染器;
将所述渲染器的工作模式设置包括平铺模式;
根据所述表情图片的预设排版配置,控制画笔将所述字符串绘制到预设排版位置后,按照NDK编码通道进行打包生成so动态库,使用so动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的所述表情包效果图对应的表情包。
5.如权利要求1所述的方法,其特征在于,S103中筛选操作进一步包括:
表情图库中表情图片中预先存储与之匹配的特征向量;
当获得所述输入字符串时,利用语言算法模型提取所述字符串中的若干特征向量,
并利用所述各特征向量筛选表情图库中与各所述特征向量精准匹配的多个表情图片。
6.如权利要求5所述的方法,其特征在于,S103中筛选操作进一步包括:
利用推荐算法模型筛选出多个精准匹配成功且用于展示到表情输入面板中的所述表情包效果图对应的所述表情图片。
7.如权利要求2所述的方法,其特征在于,S104中排版配置进一步包括:
所述表情图片录入表情图库时,配置好所述字符串与所述表情图片的排版位置;所述排版位置包括将所述字符串设置于所述表情图片的上下左右以及所述表情图片内的位置的任意一个。
8.如权利要求1所述的方法,其特征在于,
预先设定所述表情图库,所述表情图库包括服务平台的表情图库和/或用户终端的表情图库;
根据用户终端与所述服务器终端的网络连通状态,选择不同优先级来调用所述服务器终端的表情图库、用户终端的表情图库的至少其中之一。
9.如权利要求8所述的方法,其特征在于,选择不同优先级来调用表情图库进一步包括:
所述用户终端与所述服务器终端之间的数据传输速率达到网络流畅速率时,所述字符串对应的特征向量与所述服务器终端的表情图库内的表情图片精准匹配;
所述用户终端与所述服务器终端之间的数据传输速率在网络速率拥堵区间时,按照优选级,依次调用服务器终端和用户终端的表情图片与所述字符串的特征向量精准匹配;其中,通过预先设定匹配时长,切换用于精准匹配的表情图库;
所述用户终端与所述服务器终端的网络断开时,所述字符串对应的特征向量与所述用户终端的表情图库内的所述表情图片进行精准匹配。
10.如权利要求5所述的方法,其特征在于,S103中筛选操作还包括:利用BERT语言算法模型提取多个所述字符串对应的特征向量,并利用SoftMax函数将各所述特征向量与分类好的所述表情图片进行类别概率归一化,并从情感分类中找出与各所述特征向量匹配的多个所述表情图片。
11.如权利要求1所述的方法,其特征在于,在表情输入面板的预设区域内,按照预设方式排列多个所述表情包效果图,使所述表情包效果图布满所述预设区域内,接收任一所述表情包效果图的触发事件,视为确认输入该所述表情包效果图对应的所述表情包,关闭所有所述表情包效果图和所述字符串。
12.一种表情输入的图像合成系统,其特征在于,包括:接收模块、匹配模块、推荐模块、排版模块、显示模块、合成模块;
接收模块:用于实时获取用户当前通过表情输入面板输入的字符串;
匹配模块:利用BERT语言算法模型对所述字符串进行解析,提取多个所述字符串对应的特征向量;基于各所述特征向量,筛选出多个表情图库中精准匹配成功的表情图片;
推荐模块:利用推荐算法模型对多个匹配成功的表情图片进行筛选,并筛选出用于展示的多个表情包效果图对应的所述表情图片;
排版模块:生成所述多个表情包效果图预设区域的位图以及与各所述位图对应的渲染器,将所述渲染器的工作模式设置为平铺;将各所述表情图片粘贴到对应的所述位图中;根据所述渲染器的工作模式,控制画笔在所述预设区域内绘制所述字符串得到各所述表情包效果图,并发送给所述显示模块展示;
显示模块:用于展示多个所述表情包效果图,以便用户触发选取其中一个表情包效果图;接收用户点击任一所述表情包效果图后,关闭所述表情包效果图及输入的所述字符串,会话页面显示所述表情包效果图对应表情包;
合成模块:将选中的所述表情包效果图对应的所述表情图片转换为位图,并生成该位图对应的渲染器;将所述渲染器的工作模式设置为平铺;根据所述表情图片的预设排版配置,控制画笔将所述字符串绘制到预设排版位置后,按照NDK进行打包生成so动态库,使用so动态库进行本地编辑接口JIN的调用,实现C++语言对叠加合成位图的处理,得到选中的所述表情包效果图对应的表情包。
13.如权利要求12所述的表情输入的图像合成系统,其特征在于,还包括判断模块,所述判断模块用于判断用户终端当前的输入环境是否开启表情输入;若开启,继续执行获取当前用户输入字符串的步骤。
14.如权利要求12所述的表情输入的图像合成系统,其特征在于,还包括分析模块;所述分析模块用于分析用户终端与服务器终端的网络连通状态;若网络流畅,则将所述特征向量与服务器终端表情图库的表情图片精准匹配;若网络拥堵,则先将所述特征向量与服务器终端表情图库的表情图片精准匹配,匹配超过预设时长后,将匹配操作切换至用户终端,将所述特征向量与用户终端表情图库的表情图片精准匹配;若网络断开,则将特征向量与用户终端预先缓存的表情图片精准匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677155.1A CN110554782B (zh) | 2019-07-25 | 2019-07-25 | 一种表情输入的图像合成方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910677155.1A CN110554782B (zh) | 2019-07-25 | 2019-07-25 | 一种表情输入的图像合成方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110554782A true CN110554782A (zh) | 2019-12-10 |
CN110554782B CN110554782B (zh) | 2023-06-27 |
Family
ID=68735524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910677155.1A Active CN110554782B (zh) | 2019-07-25 | 2019-07-25 | 一种表情输入的图像合成方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110554782B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142685A (zh) * | 2019-12-12 | 2020-05-12 | 北京智慧章鱼科技有限公司 | 一种特效文字输入方法及输入法系统 |
CN111460177A (zh) * | 2020-03-27 | 2020-07-28 | 北京奇艺世纪科技有限公司 | 影视类表情搜索方法、装置、存储介质、计算机设备 |
CN113393445A (zh) * | 2021-06-21 | 2021-09-14 | 上海交通大学医学院附属新华医院 | 乳腺癌影像确定方法及系统 |
CN113536059A (zh) * | 2020-04-21 | 2021-10-22 | 德国邮政股份公司 | 用于标识文件的检验方法和设备 |
CN114553810A (zh) * | 2022-02-22 | 2022-05-27 | 广州博冠信息科技有限公司 | 表情图片合成方法及装置、电子设备 |
CN114780190A (zh) * | 2022-04-13 | 2022-07-22 | 脸萌有限公司 | 消息处理方法、装置、电子设备及存储介质 |
WO2024064806A1 (en) * | 2022-09-22 | 2024-03-28 | Snap Inc. | Text-guided cameo generation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150200881A1 (en) * | 2014-01-15 | 2015-07-16 | Alibaba Group Holding Limited | Method and apparatus of processing expression information in instant communication |
CN105929976A (zh) * | 2016-05-25 | 2016-09-07 | 广州市久邦数码科技有限公司 | 一种基于输入法的动态表情输入方法及其系统 |
WO2016148525A1 (ko) * | 2015-03-18 | 2016-09-22 | 주식회사 카카오 | 이모티콘 탐색 방법 및 단말 |
WO2019128558A1 (zh) * | 2017-12-28 | 2019-07-04 | 北京达佳互联信息技术有限公司 | 用户肢体动作的解析方法、系统及移动终端 |
-
2019
- 2019-07-25 CN CN201910677155.1A patent/CN110554782B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150200881A1 (en) * | 2014-01-15 | 2015-07-16 | Alibaba Group Holding Limited | Method and apparatus of processing expression information in instant communication |
WO2016148525A1 (ko) * | 2015-03-18 | 2016-09-22 | 주식회사 카카오 | 이모티콘 탐색 방법 및 단말 |
CN105929976A (zh) * | 2016-05-25 | 2016-09-07 | 广州市久邦数码科技有限公司 | 一种基于输入法的动态表情输入方法及其系统 |
WO2019128558A1 (zh) * | 2017-12-28 | 2019-07-04 | 北京达佳互联信息技术有限公司 | 用户肢体动作的解析方法、系统及移动终端 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142685A (zh) * | 2019-12-12 | 2020-05-12 | 北京智慧章鱼科技有限公司 | 一种特效文字输入方法及输入法系统 |
CN111460177A (zh) * | 2020-03-27 | 2020-07-28 | 北京奇艺世纪科技有限公司 | 影视类表情搜索方法、装置、存储介质、计算机设备 |
CN111460177B (zh) * | 2020-03-27 | 2023-12-15 | 北京奇艺世纪科技有限公司 | 影视类表情搜索方法、装置、存储介质、计算机设备 |
CN113536059A (zh) * | 2020-04-21 | 2021-10-22 | 德国邮政股份公司 | 用于标识文件的检验方法和设备 |
CN113393445A (zh) * | 2021-06-21 | 2021-09-14 | 上海交通大学医学院附属新华医院 | 乳腺癌影像确定方法及系统 |
CN114553810A (zh) * | 2022-02-22 | 2022-05-27 | 广州博冠信息科技有限公司 | 表情图片合成方法及装置、电子设备 |
CN114780190A (zh) * | 2022-04-13 | 2022-07-22 | 脸萌有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN114780190B (zh) * | 2022-04-13 | 2023-12-22 | 脸萌有限公司 | 消息处理方法、装置、电子设备及存储介质 |
WO2024064806A1 (en) * | 2022-09-22 | 2024-03-28 | Snap Inc. | Text-guided cameo generation |
Also Published As
Publication number | Publication date |
---|---|
CN110554782B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110554782B (zh) | 一种表情输入的图像合成方法和系统 | |
CN111191078B (zh) | 基于视频信息处理模型的视频信息处理方法及装置 | |
US9934515B1 (en) | Content recommendation system using a neural network language model | |
US10685186B2 (en) | Semantic understanding based emoji input method and device | |
US20190392487A1 (en) | System, Device, and Method of Automatic Construction of Digital Advertisements | |
US11366846B2 (en) | Apparatus and a method for providing expression item services which constructing digital communication environments | |
CN109952572A (zh) | 基于消息贴纸的建议响应 | |
WO2017172175A1 (en) | Computerized system and method for automatically detecting and rendering highlights from streaming videos | |
CN109983455A (zh) | 在在线社交网络上多样化媒体搜索结果 | |
US20060218192A1 (en) | Method and System for Providing Information Services Related to Multimodal Inputs | |
US10891539B1 (en) | Evaluating content on social media networks | |
CN110543242A (zh) | 基于bert技术的表情输入法及其装置 | |
CN106227792B (zh) | 用于推送信息的方法和装置 | |
JP7192086B2 (ja) | 機械学習を使用してアニメーションメディアコンテンツアイテムから時間的情報を抽出するためのシステムおよび方法 | |
CN111512617B (zh) | 推荐联系人信息的装置和方法 | |
US20210209289A1 (en) | Method and apparatus for generating customized content based on user intent | |
US9639633B2 (en) | Providing information services related to multimodal inputs | |
CN112231563B (zh) | 一种内容推荐方法、装置及存储介质 | |
US20220092071A1 (en) | Integrated Dynamic Interface for Expression-Based Retrieval of Expressive Media Content | |
US9129216B1 (en) | System, method and apparatus for computer aided association of relevant images with text | |
CN113392641A (zh) | 文本处理方法、装置、存储介质和设备 | |
US20230353820A1 (en) | Systems and Methods for Improved Searching and Categorizing of Media Content Items Based on a Destination for the Media Content Machine Learning | |
CN110909768B (zh) | 一种标注数据获取方法及装置 | |
CN111460267B (zh) | 对象识别方法、装置和系统 | |
CN112784156A (zh) | 基于意图识别的搜索反馈方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |