王桂江 黄润才 马诗语 黄小刚 王承茂
(上海工程技术大学电子电气工程学院 上海 201620)
(guijiang_wang@163.com)
随着互联网的迅速发展与广泛应用,人们沟通交流、获取信息愈加方便.互联网在带来便捷和巨量信息的同时,也为有害思想的滋生传播提供了温床.2019年12月,武汉爆发新型冠状病毒肺炎疫情,围绕该话题,大多数网友表达了“武汉加油”“中国加油”的支持,但也有人趁机传播一些否定社会主义价值观的观点,对抗疫大局造成干扰.
信息传播载体的多样性和内容的巨量给了解和分析用户观点带来巨大困难,尤其是在谣言方面,部分用户通过截图传播来降低被监管的可能.通常,分析图像中的用户观点需要将所有文本进行提取,然后运用自然语言处理方式进行文本预处理.例如,使用中文分词工具NLPIR对数据集进行分词和词性标注,并过滤掉其中的标点符号和特殊字符等[1].在预处理过程中,部分用户观点与截图中的其他信息冲突,导致数据清洗后的结果失真,从而出现观点丢失或数据被干扰的情况.因此,针对互联网复杂的网络截图,运用图像处理手段,实现在文本图像中获取特定文本区域具有较强的实际意义.
文本检测在近年来取得了较大的发展[2-5].Ma等人[6]运用图神经网络提出了可检测任意形状的检测模型;Liu等人[7]利用CNN解决了冗余背景噪声、不必要的重叠甚至信息丢失等问题.MSER模型[8]、SWT模型[9]及其改进模型等传统方法的优点是执行速度快,但当背景复杂、纹理特征不明显时,检测效果较差.
随着机器学习的发展,出现了基于回归和分割的识别方法.基于回归的方法需要对数据集进行单词级的标注,然后使用Faster R-CNN[10]方法进行特征提取.比较典型的基于回归的方法有YOLO[11],CTPN[12]等,这类方法对于水平文本检测效果较好,对于不规则文本的检测效果较差.然而,文本通常以不规则形状出现,为了解决这个问题,TextBoxes模型[13]通过修改神经网络的卷积核大小提取更多的特征信息,并增加滑动窗口扫描神经网络的特征图,以有效捕捉文本形状.PSENet模型[14]利用渐进式扩张的方法,从中心线向周边延伸,实现了任意形状文本的检测,但在稠密文本中表现不佳.基于分割的方法是在像素级寻找目标文本区域[15-16],这类方法通过评估字符的外接边界区域的位置,实现字符与背景的分割,以此检测文本.SSTD模型[17]使用注意力机制减少背景干扰以增强文本区域,基于注意力机制的Transformer结构[18]也运用到文本检测中.
以上方法是在图像中寻找文本区域,并不能定位文本图像中的特定文本.自然场景下文本比较稀疏,以上方法表现不错.有别于自然场景文本,微博截图文本组合多样,文本稠密,想要实现在图像中寻找特定文本并不容易.例如,在图1所示的微博截图中,框中内容为用户观点,其他内容都是无效信息,单纯使用基于回归或分割的方法无法直接定位用户观点位置.为此,本文提出一种两阶段的微博截图用户观点定位方法.首先运用字符区域感知模型对图像中的文本进行定位;然后运用逻辑推理对定位到的每个字符进行处理和分析;最后将由逻辑推理得到的定位结果与字符区域感知模型的定位结果进行融合,实现在文本图像中寻找特定文本区域.
鉴于微博截图内容的稠密分布,使用连通域等方法进行观点定位无法有效提取其中各个字符的形态信息.因此使用具有字符区域感知能力的CRAFT(character region awareness for text detection)模型[19]作为基础模型检测文本区域,充分获取图像中每个字符的形态信息.
如图2所示,CRAFT模型使用VGG-16_bn[20]作为基础结构,VGG-16网络结构由13个卷积层和3个全连接层组成,因其简洁性和实用性,被广泛运用在图像分类和目标检测任务中.对于每个训练图像,使用多次卷积提取其中的特征信息,在解码部分跳过全连接层,并在每次上采样时融入卷积提取到的低级特征进行聚合,形成一个浅层加深层的卷积特征提取结构,类似于U-net[21],从而有效保留了浅层和深层的语义特征.在模型最后,通过4层卷积将输出变为2个通道:区域分数(region score)和亲和度分数(affinity score),区域分数为像素是字符中心的概率,亲和度分数为相邻字符间可以连接的概率.
对于每个训练图像,需要生成字符区域分数真值标签和带有边缘、形状、轮廓和局部特征等特征级边界框的亲和度分数真值标签.对于区域分数真值标签的生成,CRAFT模型采用高斯热图的方式,这种方式可以很好地处理没有严格包围的边界区域.区域分数真值标签生成过程如图3中的分数生成模块所示,首先准备1个二维各向同性的高斯映射,然后计算高斯映射区域与每个文本框之间的透视变换,最后将高斯热图映射变换到文本框区域.对于亲和度分数真值标签的生成,使用相邻的字符框(character box)定义亲和度.亲和度分数真值标签生成过程如图3中的亲和框(affinity box)生成部分所示.在此部分中,绿色框为单字符的4个顶点构成的字符框,把4个顶点连接起来,找到上下三角形的中心点,即图中的蓝色十字点,对于每个相邻的字符框对,将上下三角形的中心设置为框的角进行连接,生成亲和框.
逻辑推理是对模型输出的区域分数和亲和度分数分别进行二值化处理,相加后得到包含字符分数(区域分数二值化结果)和字符关系分数(亲和度分数二值化结果)的值text_score_comb.将text_score_comb还原成文本图像,称为score_text.对score_text进行处理,运用opencv提供的工具对图像中的单个字符进行标记,获取图像中每个字符的坐标信息和高度信息.对由每张图像得到的数据信息进行逻辑处理,将处理结果作为定位结果返回.逻辑推理可以视为对定位得到的文本区域根据文本形态进行分类,通过分析字符之间的关系,将检测到的文本分为用户观点区域和非用户观点区域.
设置数组loc_arr保存每个字符的高度信息,loc_arr[x][y]是当前位置上的字符高度,其中x,y是当前字符坐标.在每张图像处理之前需要对该数组进行初始化,以便存储下一张图像信息.
文本行中含有大量的文本和符号,为区分当前字符是文本还是符号,使用字符最大可信度(character maximum reliability, CMR)进行判别.CMR由当前字符高度与当前行最大字符高度的比较而来,如式(1)所示.根据数据分析,当CMR>0.8时,认定该字符为文本.
(1)
其中,max_h为当前行最大字符高度.
为评估当前处理的文本行是否为用户观点信息,提出了行最大可信度(line maximum reliability, LMR).LMR由当前行中CMR>0.8的有效字符个数与当前行能够检测到的所有字符个数比较而来,如式(2)所示:
(2)
其中,count_vaild为当前行中CMR>0.8的有效字符个数,count_total为当前行能够检测到的所有字符个数.根据数据分析,当LMR>0.7且lth 通过使用CMR将文本与符号进行了区分,使用LMR将用户观点文本行与非用户观点文本行进行了区分.区分之后,将用户观点文本行的纵坐标使用数组Isvaild进行记录.实际操作过程中,使用score_text得到的用户观点文本行的纵坐标与使用text_score_comb得到的用户观点文本行的纵坐标有所偏差,这是因为text_score_comb是基于字符中心点的一个包含轮廓信息的列表,score_text是基于字符外界边框得到的包含位置和高度的列表.为了避免这个偏差对定位结果融合造成的影响,对由score_text得到的用户观点文本行的纵坐标y进行修正,即y增加或减少1~2个值,称为vaild_y,使由score_text得到的用户观点文本行的纵坐标与由text_score_comb得到的用户观点文本行的纵坐标保持一致.将修正后的纵坐标vaild_y在Isvaild中赋值为1,表示当前纵坐标对应的是用户观点文本行,其他位置标记为0,如式(3)所示: (3) 图4给出了定位结果融合流程.其中,A是输入的原始图像;B是CRAFT模型输出的处理后的text_score_comb,白线标记的地方为能够检测到字符的位置;C是逻辑处理图像,白色标记的区域为用户文本行区域,是基于逻辑推理得到的;D是最终定位到的用户观点区域;X代表定位结果融合. 定位结果融合的具体过程如算法1所示.其中,上边界阈值和下边界阈值由先验经验获取,字符高度阈值经数据分析得到,text_score_comb由CRAFT模型得到,Isvaild由逻辑推理得到.连通域是由图像中具有相同像素值且位置相邻的像素点组成的图像区域,连通域阈值是连通域内像素点值的下限.文本行外接框通过使用图像处理工具OpenCV的CCL(连接组件标签)和MinAreaRect(最小外接矩形)函数对text_score_comb进行区域连接得到. 算法1.定位结果融合算法. 输入:text_score_comb,IsVaild,上边界阈值,下边界阈值,字符高度阈值; 输出:用户文本行的外接框. ① 获取text_score_comb的连通域个数n; ② fori=1;i ③ 获取第i个连通域的大小(size),坐标值(x,y),宽高值(w,h); ④ ifsize<连通域阈值 then ⑤ 过滤; ⑥ end if ⑦ ify>下边界阈值或y<上边界阈值 then ⑧ 这是非用户观点文本行; ⑨ else ⑩ ifIsVaild[y]==1 then 本文实验在Ubuntu18.04上进行,使用语言为Python 3.7,GPU为华硕1070TI,显存8 GB,系统内存16 GB,Pytorch版本为1.7.0GPU. 实验数据集为400张微博截图,以用户观点和其他媒体内容为主,用于对CRAFT模型进行测试. CRAFT模型首先使用具有字符级注释的SynthText[22]数据集迭代5万次,生成字符区域分数真值标签和亲和度分数真值标签,并使用Adam优化器寻找CRAFT模型的最小损失值,损失值越小越接近真实结果;然后使用数据集ICDAR13,ICDAR15,ICDAR17[23-25]进行弱监督训练,由于这些数据集没有字符级注释,因此从每个单词级注释生成字符框,从而得到并不准确的字符区域分数真值标签和亲和度分数真值标签.当使用带有单词级注释的真实图像时,训练过程中得到的中间模型预测使用分水岭算法裁剪后的字符区域分数,不断学习得到相对合理的权重值,使真值标签更接近真实.增强使用SynthText训练得到的模型在ICDAR上的效果时,ICRAR与SynthText的数据比例为5∶1,迭代2.5万次. 在预训练CRAFT模型的基础上,本文采用层迁移的方法对CRAFT模型进行迁移学习.为了防止CRAFT模型的参数发生抖动,将学习率设置为1e-4,只对CRAFT模型的最后一层权重进行训练.在保持CRAFT模型的单字符检测能力的前提下,使用标记的单字符微博数据进行迁移学习,增强CRAFT模型在当前任务上的单字符检测能力.训练一共迭代500次,每次训练2批数据,使用Adam优化器寻找与目标接近的最小损失值. 1) 迁移学习检测效果 迁移学习的目的是提高在目标数据集上的检测效果.为了检验迁移学习是否在数据集上发生作用,从数据集中随机选择一张图像进行测试,测试内容为用户发表的观点.图5展示了迁移学习对模型的增强,图中左侧为使用迁移学习之前,右侧为使用迁移学习之后.可以看出,使用迁移学习后,字符的高斯热点图更加明显,部分之前检测不到的单字符被检测到,如图5中白框位置. 2) 逻辑推理的有效性 为验证逻辑推理的有效性,将本文方法与不使用逻辑推理的CRAFT模型进行对比.图6展示了使用逻辑推理前后用户观点数和非用户观点数的柱状图.使用逻辑推理之前,用户观点数为9 299个,非用户观点数为7 957个.使用逻辑推理后,得到用户观点9 187个、非用户观点2 720个,非用户观点数约为使用逻辑推理前的1/3,非用户观点的干扰大大降低.可见,使用逻辑推理后的效果比较明显,用户观点的精确度进一步增强,部分不必统计的信息被过滤. 3) 不同方法用户观点定位效果对比 图7展示了PSENet,CRAFT模型和本文方法在数据集上的用户观点定位效果对比.如图7(a)~(c)所示,PSENet是基于渐进式扩张的方法,当字符比较稠密时,尽管可以定位到文本行位置,但文本行外接框较为错乱,定位效果有所损失;如图7(d)~(f)所示,CRAFT模型没有引入逻辑推理,虽将图像中的所有文本都进行了检测,整体检测效果强于PSENet,但无法对文本进行筛选;如图7(g)~(i)所示,本文方法引入逻辑推理,既过滤了无效信息,也对文本行中的“…”等标点内容作了剔除,较完整地保留了用户的主体信息,定位效果最佳. 本文针对当前微博截图信息传播方式提出一种基于字符区域感知和逻辑推理的微博截图用户观点定位方法.首先采用CRAFT模型对当前任务进行迁移学习,提升其在当前数据集上的泛化能力;然后对字符外接框生成引入逻辑推理,实现有效筛选候选区域,获取用户观点区域.实验数据表明,本文方法对微博截图用户观点具有较好的定位能力,能够实现在图像中寻找特定文本区域,对于检测互联网截图中的用户观点、维护信息舆论安全具有积极意义.下一步工作将研究如何对定位内容进行提取并进行情感分析.2.3 定位结果融合
3 实 验
3.1 数据集
3.2 模型训练及参数
3.3 实验结果与分析
4 结束语