基于改进Mask R-CNN的越南场景文字检测

2022-01-05 02:31俸亚特文益民
计算机应用 2021年12期
关键词:越南模块文字

俸亚特,文益民

(1.桂林电子科技大学计算机与信息安全学院,广西桂林 541004;2.广西图像图形与智能处理重点实验室(桂林电子科技大学),广西桂林 541004)

(∗通信作者电子邮箱ymwen2004@aliyun.com)

0 引言

越南文字是越南官方使用文字,目前约有9 300 万人使用。越南场景文字检测就是从复杂场景中定位越南文字区域,是进行越南场景文字识别的前提。随着中国-东盟自由贸易区的发展,有相当多的领域需要利用图像中的越南文字信息。实现从真实场景中检测越南文字,对推动中国与东盟国家的人文交流具有重要意义。

世界上的语言,从有无声调的角度看,大概可分为两大类:声调语言与非声调语言[1]。非声调语言多为印欧语系的语言,如英语、法语、德语等,声调语言多为汉藏语系的语言。声调语言的文字书写有两种形式:第一种为表意文字,如汉字、老彝文字,文字使用不同的象形文字书写表示不同的意义;第二种为表音文字,如越南文、泰文、寮文,使用不同字母与不同声调符号的组合表示不同的意义。

由于当前的场景文字检测算法[2-4]大多都关注于如英文、法文、中文等非声调语言或是声调语言文字中表意文字的检测。声调语言表意文字的字形中不会出现声调符号,非声调语言文字的字形中也几乎不会出现声调符号,即使出现声调符号也仅表示语气变换而不会影响到其语义,所以是否检测到声调符号并不会影响后续对文字语义的识别。这导致鲜有文字检测的研究工作关注到声调语言表音文字中的声调符号。作为声调语言表音文字中的重要组成部分,声调符号往往被现有场景文字检测算法忽视。与其他语言文字相比,表音文字在字形上最主要的区别在于其使用声调符号区分文字含义。作为声调语言中表音文字的代表,越南文字借用拉丁字母,在字母上下区域增加了6 种不同的声调符号,相同字母的主体和不同的声调符号组合会导致语义信息的改变,如:“MÔ和“MÀ”就分别表示着“代码”和“但是”两种意思。所以实现越南场景文字检测的关键在于设计的算法是否可以检测到文字的声调区域。

目前,依赖于大量人工标注的训练样本,基于深度学习的场景文字检测算法可以很好地实现对各种复杂场景中文字的检测;但是,人工标注的越南场景文字数据非常稀缺,所以在标注样本少的情况下完成深度学习模型的训练以实现如越南文字等小语种文字的检测是件不容易的事情。通过对越南场景文字检测的研究,可以促进如泰文、寮文,缅文等其他声调语言表音文字检测的研究,同时对其他小语种场景文字检测识别的研究也具有很好的借鉴意义。

随着目标检测技术的发展,已经有越来越多的场景文本检测采用目标检测技术,如单点多盒探测器(Single Shot multibox Detector,SSD)[5]、YOLO(You Only Look Once)[6]、Faster-RCNN[7]等。TextBoxes[8]提供了一种简单直接的神经网络结构,通过优化SSD 目标检测器,减少了场景文本检测步骤;TextBoxes++[9]通过增加SSD的输出和优化卷积核大小,使算法可以检测任意方向的文本区域;Liao 等[10]提出了一种基于定向响应网络[11]的场景文本检测算法,该算法在SSD 基础上进行了改进,利用输出的四点坐标偏移量预测检测倾斜文本;Zhou 等[12]基于两阶段文本检测方法消除了中间过程的冗余性,减少了检测时间,检测到的形状可以是任意形状的四边形,也可以是旋转的矩形;Shi 等[13]基于SSD 算法通过连接小规模候选框,通过后处理方法连接检测到的文字区域。然而,上述方法并不适用于越南文字。首先,由于声调符号的存在,导致越南语文本的形状不规则,目标检测算法用四边形作为网络输出的方法很难准确标注越南语文本区域。这是因为:1)如果用四边形来标注越南语文本区域的形状,会导致如图1(a)所示的情况,即用椭圆标注的多余区域会被包含在检测框中,从而导致文本识别的恶化;2)使用四边形表示的检测框有可能忽略越南字符的重音符号或音调符号,如图1(b)所示。

图1 使用四边形检测框标注越南文本区域时存在的问题Fig.1 Problems in labelling Vietnamese texts areas with quadrangular bonding boxes

近年来,随着图像分割算法的发展,场景文字检测的研究重点已从水平场景文本转向更具挑战性的曲面或任意形状场景文本。Wang 等[14]对文本行不同核大小做预测,然后采用渐进式扩展算法扩展小尺度内核到最终的文本行大小,这使算法可以有效区分相邻的文本;Liu 等[15]基于Mask R-CNN[16]分割的思想,通过平面聚类得到最终的检测框;Long 等[17]将文本表示为圆形的组件的集合,因此可以检测任何形状的文本实例,包括水平文本实例、倾斜文本实例和弯曲文本实例;Lyu 等[18]在Mask R-CNN 的改进基础上,提供了检测各种形状文本的框架,可以识别10个数字和26个字母;Liu等[19]使用贝塞尔曲线表示文本边界,自适应地拟合任意形状的文本,但是越南文字的文本边界由于声调符号的存在呈现锯齿状,简单的二次、三次曲线不能很好地拟合文字边界。理论上,使用实例分割的方法可以有效地检测越南文字,但是这需依赖于大量人工标记的分割数据,而获取这些像素级标注的样本会面临高额的成本问题。

Mask R-CNN是一种典型的实例分割算法[16],将检测过程分为目标检测和语义分割两个部分。目标检测可以视为一个Faster R-CNN[20],生成包括一个目标区域的候选框,语义分割部分可视为利用全卷积神经网络(Fully Convolutional Network,FCN)[21]在候选框内的语义分割。在COCO、VOC 等常规实例分割数据集和ICDAR 2013、ICDAR 2015、MLT 等文字检测数据集上,Mask R-CNN 都被证明有较优的效果,但它不能被直接应用于越南场景文字的检测,主要有如下原因:

1)如果模型使用MLT 中的拉丁文字数据集训练,模型的输出会出现如图2 所示的情况,越南文字的声调符号部分往往会被忽视;

图2 使用MLT中拉丁文字数据训练的模型对部分越南文字的检测结果Fig.2 Detection results of some Vietnamese texts using the model trained by Latin data in MLT dataset

2)因为越南场景文字数据缺乏,Mask R-CNN 的网络结构又十分复杂,使用少量手工标记的越南场景文字数据集训练网络会导致过拟合现象的出现;

3)用于常规目标检测的非极大值抑制算法不能过滤大量由于文本特征的相似性和连续性导致的冗余候选框。

针对Mask R-CNN对检测越南场景文字的不足,本文提出了一个改进的Mask R-CNN算法,并设计了一个模型联合训练方法灵活地使用不同规模、不同标注类型的数据,最大化利用现有数据的信息。本文主要工作如下:

1)收集了用于越南场景文字检测的数据集,包括200 幅图像,每幅图像都使用像素级标注;

2)改进了区域分割模块网络的特征表示,仅使用P2特征层来分割文本区域,且将文本区域的掩码矩阵大小从14×14调整为14×28,以更好地适应文字区域的横纵比,使分割模型对文字边界的判断更加准确;

3)考虑到场景文字特征的连续性,设计了一个文本区域过滤模块,可以有效地消除由于回归框算法对连续文本区域判断错误而产生的大量冗余检测框;

4)为了保持网络规模和数据集规模的一致性,本文提出了模型联合训练的方法,使算法对越南文字的检测具有高召回率的同时也保证了算法对文本区域的准确检测。

1 越南场景文字检测算法

本文提出的越南场景文字检测网络结构如图3 所示。图3中,箭头表示数据的流向,5个实线框分别表示网络的5个主要组成部分:包括提取全局图像特征的特征金字塔网络(Feature Pyramid Network,FPN)[22];包含生成文本区域候选框的区域生成网络(Region Proposal Network,RPN)[20];使用候选框坐标和对应图像特征生成准确候选框坐标的候选框坐标回归模块(box branch)[20];使用候选框坐标信息以及图像特征完成文本分割的区域分割模块(mask branch)[16];对重复检测的文本区域进行剔除的文本区域过滤模块(text region filtering branch)。

图3 总体网络结构Fig.3 Overall network structure

1.1 改进的区域分割模块网络特征选取

卷积神经网络(Convolutional Neural Network,CNN)[23]作为一种提取图像特征最有效的方法已被大量研究[24-26]证明。对于一个多层CNN 结构而言,不同网络层的特征图输出会提取到不同的图像特征:浅层网络特征图由于感受野小,主要提取的是图像细节信息和较小区域的特征;随着网络的加深,高层特征图由于拥有更大的感受野,主要提取的是图像整体信息和较大区域的特征。因此不同的特征层适用于不同的任务,正确地使用特征可以有效提高网络模型的性能。本文使用特征金字塔网络输出的特征图作为模型的特征来源。特征金字塔网络对不同网络层的特征进行了融合处理,可以为模型提取更多有效的信息。特征金字塔网络使用ResNet101[27]作为网络主干,对ResNet101 中的5 个不同的大小的特征图C1、C2、C3、C4、C5 进行上采样融合后输出5 个不同尺度的特征图P2、P3、P4、P5、P6。

Mask R-CNN 的区域分割模块根据输入的候选框大小,自适应地选择特征金字塔网络的特征图作为Roi-align[16]进行归一化的特征来源,越大的候选框会选择越高层的特征图。然而高层的特征图由于分辨率低、细节特征少,不利于区域分割模块分割有声调符号的越南文字。为了使区域分割模块输出的二值掩码更加准确地表示声调符号区域,本文对Mask RCNN模型的特征选取进行以下了改进:

1)使用特征金字塔网络中的低层高分辨率特征图(P2)作为Roi-align进行归一化的特征来源。因为与其他的特征图相比,P2 特征图拥有局部细节特征的同时集成了P3~P5 特征图的高层语义信息,更利于分割文字,而且P2 特征图的高分辨率更高,更适合于Roi-align进行下采样。

2)本文的区域分割模块与Mask R-CNN 使用的区域分割模块不同,本文候选框坐标回归模块生成的候选框经过Roialign 后,会被规范化到14×28×256 大小的特征块上以适应文本较大的横纵比,而不是Mask R-CNN 所使用的14×14×256大小。特征块经过四个卷积层和一个反卷积上采样层后,得到大小为28×56的二值掩码矩阵来表示真实文本区域。

改进后的区域分割模块可以生成更好的二值掩码矩阵用于文本区域分割。

1.2 文本区域过滤模块

在常规的目标检测中,同一目标在一个位置上会出现大量重叠的候选框。非极大值抑制(Non-Maximum Suppression,NMS)算法可以有效地消除冗余候选框,但是非极大值抑制算法是基于候选框交并比(Intersection over Union,IoU)进行设计,IoU为两个候选框的交集面积除以它们的并集面积。当两个候选框的IoU 只有大于某一个特定阈值(通常设为0.5)时才会剔除其中的一个候选框,这导致部分文本重复检测的文字区域无法完全滤除,如图4(a)中的5 号框将四个单词检测为一个单词区域,图4(c)中1 号框将单词的部分区域视为一个单词区域检测,这些重复检测的候选框与任意候选框的IoU小于0.5,所以无法被非极大值抑制算法剔除。造成文本区域重复检测的原因是场景文本检测属于单一目标检测,且相邻文本区域的特征类似,这些区域往往被检测为一个完整的、独立的文本区域。

图4 文本区域过滤模块效果Fig.4 Effect of Text region filtering branch

针对图4(a)、(c)这两种现象,本文提出了两个针对文本区域的过滤算法,两个过滤算法串行执行以过滤错误检测的区域:1)如果一个检测框中包含两个以上的检测框子集,则将检测框视为重复的检测区域并剔除该检测区域;2)如果一个检测框是另一个检测框的单一子集,则剔除单一子集检测框。

假设存在两个检测框分别为A和B,则判断A检测框是否为B 检测框子集的条件是A 与B 检测框的相交区域面积占A检测框面积的80%以上,且A 检测框的高度大于B 检测框高度的50%。图4(a)、(c)这两种重复检测的情况经过文本区域过滤方法处理后的结果如图4(b)、(d)所示。本文的文本区域过滤模块会在检测到的有限个检测框内进行迭代过滤,每个检测框需要和剩下的检测框进行比较,假设检测框数量为N,则时间复杂度约为O(N2)。

1.3 训练方法

本文提出的实例分割算法需要使用像素级标注的数据集进行训练,但获取大量像素级标注的图片需要高额的成本,只利用少量像素级标注的越南场景文字图片训练模型则无法达到较好的泛化能力。随着场景文字检测研究的发展,公开了大量四边形标注的拉丁场景文字检测数据,如MLT2017[28]、MLT2019[29]等,所以如何有效利用这些数据是解决越南场景文字检测问题的关键。本文提出了一种多种数据对模型联合训练的方法,能有效解决缺少标注数据导致的模型泛化能力弱的问题。

本文提出的模型联合训练方法的训练过程主要为两个部分:第一个部分为特征金字塔网络和区域生成网络的训练,使模型能够拥有提取图像特征和准确生成文本区域候选框的能力。越南文字与拉丁文字有着相似的特征,可以看作是拉丁文字与声调符号的组合,其主体部分可视为拉丁文字。使用拉丁文字数据对模型的特征金字塔网络和区域生成网络的参数进行训练,可以使特征金字塔网络提取文字特征的能力增强,同时使区域生成网络更准确地生成候选框。训练使用MLT2017和MLT2019中的拉丁文字数据,共包含7 200张四边形标注图像。尽管MLT 中的数据使用四边形标注,但是四边形标注不影响区域生成网络的真实值的获得。通过计算区域生成网络输出的预测与真实值之间差值,使用反向传播算法对特征金字塔网络和区域生成网络的参数进行学习训练,训练参数的设置将在实验部分进行详细说明。特征金字塔网络和区域生成网络的参数大小约为240 MB,约占总模型参数的94%,适用大规模数据训练以增强模型的泛化能力。

第二部分为候选框坐标回归模块和区域分割模块的训练,使模型拥有检测并分割带声调符号越南文字的能力。由于区域分割模块需要使用像素级标注的数据作为真实值进行训练,本文使用像素级标注方法对200 张越南场景文字图像进行了标注。尽管越南场景文字数据量与MLT 相比要少,但由于区域分割模块和候选框坐标回归模块具有较浅的网络结构且参数量较少,可以使用少量像素级标注的越南场景文字数据参数进行训练,同样可以得到良好的泛化能力。在第二部分的训练中,将第一部分训练好的模型参数进行冻结,只使用越南场景文字数据训练,模型通过越南场景文字数据集训练,候选框坐标回归模块可以准确地生成包括声调符号的越南文字候选框,训练参数的设置同样在第二章进行说明。通过第二部分的训练,可以使这两个模块分别拥有获取准确的候选框坐标信息并可以在候选框内准确分割文字区域的能力,从而使网络可以检测到越南文字的声调符号区域并进行逐像素的分割。

在推理部分,将之前训练的两个模块结合,使模型具有较好的泛化能力。本文训练虽然采用了模型联合训练方法,在网络模型训练阶段的时间复杂度会提升,但不会影响网络模型在推理部分的时间复杂度。

1.4 评估方法

为了评估本文提出算法的性能,使用检测到的文本区域与真实文本区域的IoU 数值是否大于某一设定的阈值作为判读文本区域是否被正确检测的指标。IoU 计算方法如式(1),其中:X是检测到的文本区域掩码矩阵,Y是对应的真实文本区域掩码矩阵,areas()表示区域大小。本文使用准确率(P)、召回率(R)和F 值(F1)作为检测算法的性能评估指标。准确率为检测正确的样本总数与检测到的样本总数的比值,召回率的计算为检测正确的样本总数与真实样本总数的比值。最终评价的指标使用F 值,它是准确率和召回率的调和平均值,计算如式(2)所示。

本文将IoU阈值设置为0.7以适应不规则文本实例,这意味着检测到的文本区域与真实区域的IoU 需要大于70%才被视为正确检测。为了计算两个任意形状文本区域之间的IoU,本文使用区域分割模块得到的掩码矩阵与对应真实区域掩码矩阵的内积作为两个区域交集的计算方法。假设掩码矩阵X与掩码矩阵Y分别为:

其中掩码矩阵中文本区域的元素值设置为1,其余部分元素值设置为0。可以进行如下计算:

这样检测到的文本掩码矩阵和真实的掩码矩阵的矩阵对应元素的乘积中元素值为1 的部分就是两个文本区域之间交集的大小;并集大小为两个掩码矩阵中值为1 的元素数量减去掩码块交集的大小;得到两个区域的交集和并集大小后可以通过式(1)得到IoU的值。在本例中IoU大小的计算如下:

2 实验及结果分析

为了验证本文算法的有效性,进行了以下实验分析:

1)为了证明模型联合训练方法的有效性,将本文算法与未使用模型联合训练方法进行了5 折交叉验证对比实验,计算IoU阈值为0.7时的F值来对算法进行评价。

2)本文提出的实例分割算法为先检测、后分割的两阶段算法。为了验证在同一阶段进行检测与分割的单阶段实例分割模型是否可以通过少量数据获得良好的效果,本文算法与较为先进的单阶段实例分割算法YOLACT[30]和YOLACT++[31]进行了比较。

3)对提出的文本区域过滤模块与文本分割模块的优化进行了两次消融实验,并对实验结果进行了分析。

实验配置环境为:Ubuntu16.04 操作系统,CPU 为E5-2698v4,GPU 为NVIDIA Tesla V100 ×4,使用Python3.6 作为开发环境,深度学习框架为Keras。

2.1 数据集获取

为了实现越南场景文字的检测及模型评估,本文创建了一个用于越南场景文字检测的数据集,总共包括200 张图片,全部来源于越南真实场景拍摄。越南场景文字数据集的标注方式全部使用像素级标注。不同于矩形或四边形区域表示文本区域的方式,像素级标注是指图像中的每一个像素被分为背景和文字两种类型,其中每个文本实例使用不同掩码值表示不同的掩码块。由于越南文字中声调符号的存在,文字区域的形状并不规则,使用像素级标注可以精准地表示每一个包括声调符号的越南文字区域。

由于越南文字的主体是拉丁字母,与拉丁文字在字形上的特征相似度高,本文在实施模型联合训练时还使用了自然场景多语言文本检测数据集(MLT)。该数据集是国际文档分析与识别大会举办的一个多国场景文字检测识别竞赛中使用的数据集,其图片来源于世界各地的各种不同场景,其中包含了10 个国家的7 种不同字体类型,所有文本区域都使用四边形标注。本文使用了其中7 200 张只包括拉丁文字类型的图片作为辅助数据用以提升模型的泛化能力。

2.2 模型联合训练有效性实验

为了证明使用模型联合训练方法的有效性,首先使用MLT数据集对特征金字塔网络和区域生成网络的参数进行训练,并使用随机梯度下降法(Stochastic Gradient Descent,SGD)作为优化方法。初始学习率设为0.001,权值衰减设为0.001,动量设为0.9,在MLT 数据集上训练10 个epoch,每个批次有两张训练图片。在训练候选框坐标回归模块的参数和文本区域分割模块的参数时,其他已训练参数被冻结,使用越南场景文本数据集训练10个epoch 后得到一个完整的模型。对比方法使用越南场景文本数据集对整个模型参数进行训练,一共训练20个epoch,训练优化参数与模型联合训练方法相同。

在越南场景文字检测数据集上进行了3 组5 折交叉验证实验,模型联合训练的方法在使用越南场景文字检测数据训练之前已使用MLT 数据集对特征金字塔网络和区域生成网络的参数进行训练。第1 组交叉验证设置使用越南场景文字检测数据集的图片数为160,剩下的40张图片作为验证集;第2 组交叉验证设置使用越南场景文字检测数据集的图片数为100,剩下的100张图片作为测试集;第3组交叉验证设置使用越南场景文字检测数据集的图片数为40,剩下的160 张图片作为测试集。每组实验都分割出5 组不同的训练与验证数据用于5折交叉验证。

实验结果如表1 所示,可以看出本文提出的模型联合训练方法可以获得更好的检测效果。即使使用图像数量较少的训练集,如40 张图片来训练候选框坐标回归模块和区域分割模块,也可以得到很高的F 值。部分与使用MLT 数据集训练方法对比的实验结果如图2和图5所示,模型联合训练的方法与仅使用MLT 数据集训练的方法相比可以有效检测到越南文字的声调符号区域。通过本次实验可以得到以下结论:

表1 使用与未使用模型联合训练方法在越南场景文本数据集上的对比Tab.1 Comparision between using and not using model joint training method on Vietnamese scene text dataset

图5 模型联合训练方法对部分越南文字的检测结果Fig.5 Detection results of some Vietnamese texts using model joint training method

1)用四边形标注的拉丁文本数据集训练特征金字塔网络和区域生成网络,可以帮助网络更准确地判断场景文本区域。

2)使用模型联合训练的方法可以有效利用不同规模和不同标注方式的数据集。

3)区域分割模块和候选框坐标回归模块不需要大量数据集进行训练也可以获得很好的性能。

2.3 与其他单目标实例分割算法的比较实验

本文算法基于两阶段实例分割的思想,为了验证单阶段实例分割的算法是否可以使用小规模数据达到更好的泛化能力,使用最新的单阶段实例分割算法YOLACT 和YOLACT++与本文算法进行了比较,结果表明其他单阶段实例分割模型也无法通过少量数据获得良好的效果。使用越南场景文字数据集训练这两种实例分割算法,为了达到这两种方法的最佳性能,算法的主干网络均使用与本文算法相同的ResNet101网络,使用SGD 作为优化方法,使用早停法(early stopping)训练模型。对比结果如图6 所示,本文算法的查准率、查全率和F 值在规模为160、100 和40 大小的训练集上都具有较大的优势。实验结果表明,由于两阶段方法天然对目标检测中正负样本不平衡的问题存在优势,Mask R-CNN 两阶段实例分割算法对于小规模数据的准确率要高于YOLACT 和YOLACT++的单阶段实例分割算法。

图6 四种实例分割算法在三种不同规格训练集、验证集上的F值对比Fig.6 F-mesure comparison of four instance segmentation algorithms on three different specifications of training sets and validation sets

2.4 消融实验

2.4.1 优化文本区域分割模块的有效性验证实验

为了验证本文对区域分割模块中改动的有效性,将优化前与优化后的方法进行比较实验。实验在模型联合训练的第二阶段,进行了优化前和优化后两种模型在三组不同规模训练数据集的交叉验证实验,得到在IoU 阈值分别为0.7、0.8、0.9情况下的对比实验结果如图7所示。图7结果表明,P2层包括高层语义信息的同时也包含了图像的细节信息,拥有更多利于文本分割的特征,采用P2作为文本区域分割模块特征提取层和使用14×28×256大小的掩码特征块可以得到更准确的掩模区域。在IoU阈值设置为0.9时,使用规模大小为160、100 和40 的训练数据集进行第二阶段训练,本文的优化方法对比优化之前的方法分别提高了32.3%、19.6%和16.3%。图8 展示了使用两种方法的部分结果,可以看出本文的优化方法可以更准确地分割越南文字区域。

图7 区域分割模块优化前后在三种不同规格训练集、验证集上的F值对比Fig.7 F-mesure comparison before and after optimization of Mask branch on three different specifications of training sets and validation sets

图8 区域分割模块优化前后的部分检测结果Fig.8 Partial detection results before and after optimization of Mask branch

2.4.2 文本区域过滤模块有效性验证实验

本文通过计算每个交叉验证实验中文本区域过滤模块消除的错误检测区域个数,验证了提出的针对文本实例的区域过滤模块的有效性。文本区域过滤模块对检测结果的提升如表2所示。

表2 使用和不使用文本区域过滤模块的在越南场景文本数据集上的性能对比Tab.2 Performance comparison between using and not using the proposed text region filtering module on vietnamese scene text dataset

3 结语

本文首先说明了目前场景文字检测算法在检测越南文字时存在的问题,并基于这些问题提出一个基于Mask R-CNN模型的越南场景文字检测方法。对于缺乏像素级标注的实例分割数据带来的问题,提出使用模型联合训练的方法提高了模型的泛化能力;针对越南场景文字检测中大量存在的声调符号区域漏检测现象,通过优化文本区域分割模块和使用像素级标注的数据训练,使得模型能准确地分割包括声调符号的越南文字区域;此外,还提出了针对文本的文本区域过滤模块有效解决了由文本连续性导致的重复检测的问题,实验结果表明本文提出的算法可以有效使用少量像素级标注的数据集实现越南场景文字的实例分割,与Mask R-CNN 模型相比,本文算法在准确率与召回率上都具有优势。之后的工作将对模型进行简化处理,降低算法的时间复杂度。

猜你喜欢
越南模块文字
“选修3—3”模块的复习备考
文字的前世今生
读图
Module 4 Music Born in America
越南Vedana餐厅
热爱与坚持
当我在文字中投宿
越南百里“银滩”
必修模块相关知识过关训练
“凯萨娜”侵袭越南