《多媒体信息与通信》课件第5章_第1页
《多媒体信息与通信》课件第5章_第2页
《多媒体信息与通信》课件第5章_第3页
《多媒体信息与通信》课件第5章_第4页
《多媒体信息与通信》课件第5章_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章综合案例任务5.1车牌识别系统的设计任务5.2音频传输系统的设计

任务5.1车牌识别系统的设计

学习目标(1)掌握数字信号处理的基本概念、基本理论和基本方法。(2)掌握图像处理的常用算法。(3)掌握字符识别的应用及字符识别使用的基本算法。(4)了解DSP,结合具体应用学会DSP的使用,掌握DSP的程序设计方法。任务分析对获取的车牌图像,利用图像处理算法把车牌从图像中定位出来,利用字符识别算法识别出其中的字符。首先使图像通过灰度化、二值化、边缘检测、倾斜字符校正等方法实现车牌的预处理过程;经过预处理方法以后,车牌目标已经明显区别于背景区域,根据车牌自身固有特征,选择恰当的方法定位字符在图像中的位置,并给出数字在图像中的外接矩形;根据字符区域特征,选择合适的方法进行字符分割,并实现对字符的识别。5.1.1彩色图像灰度化处理待处理的图像是一幅24位真彩图像。对于RGB图像,其中每一幅红、绿、蓝图像都是一幅8比特图像。在这种条件下,每一个RGB彩色像素要用24比特来表示。可以想象,表示一幅彩色图像需要多大的数据量,而对这样一幅彩色图像进行处理,则需要很大的运算量。因此直接对彩色图像进行处理达不到快速、实时的要求。所以预处理第一步就是把彩色图像转化为灰度图像。(a)所示为原彩色图像,(b)所示为灰度化图像。5.1.2增强图像对比度图像在产生、传输和变换的过程中,由于受到各种条件的限制和干扰,图像的灰度值往往与实际景物不完全匹配,这种差异叫变劣或退化。比如被摄物体的远近不同,使得图像中央区域和边缘区域的灰度失衡;由于摄像头在扫描时各点的灵敏度的差异较大而产生的图像失真;由于光照条件不同,因而采集到的汽车图像背景复杂,车牌部分灰度变化不均匀,提供的梯度信息、纹理信息不够等。若直接对车辆图像进行边缘提取则效果很不理想。对退化的图像进行灰度校正处理,使处理后的图像更适于人眼观察或有利于从中提取信息,这种处理被称为图像增强。针对图像的某种变劣特征,应选择合适的增强处理方法。因为对一幅图像适用的增强处理方法,可能对另一幅图像完全不适用,所以要根据图像自身的特点选择合适的处理方法。根据图像处理知识,利用图像灰度线性变换将灰度范围扩展,这样可以使图像动态范围增大,图像变得清晰,特征变得明显。通过实验和观测可知,多数车辆照片的灰度值范围是(50,150),总体上灰度偏低,图像较暗。根据人眼的视觉要求和图像处理方法,利用图像灰度线性变换将灰度范围扩展到(0,255)。灰度图像进行线性变换后,其结果如图所示。可以看出经过图像增强后,原来偏暗图像的整体灰度值有所提高,灰度层次变得丰富,突出了车牌信息,更利于后面的车牌定位和识别。5.1.3用改进的Bernsen算法进行图像二值化车牌图像二值化是车牌识别系统中的一个关键步骤,在车牌图像识别的各个阶段,经常用到图像二值化。所谓二值化就是利用图像中所要提取的目标物和背景在灰度值特征上的差异,把图像视为具有不同灰值级的两类区域。常用的局部阈值法有Bernsen法、Chow和Kaneko法、Yanowitz和Buckstein法、Sauvola法以及Pietikainen法。对于目标和背景比较清楚的图像,全局阈值法可以取得较好结果。但是如果图像的背景不均匀,或者目标灰度变化率比较大,则一般用局部阈值法。在车牌识别系统中常用的二值化算法有ptile法、Otsu法和Bernsen法。而实际中,由于复杂光照(不均匀光线、光异常反射等)的影响导致车牌图像降质严重。如何确定有效的、能适应不同光照条件的阈值直接关系到定位的准确性。本节针对不均匀光照下的车牌图像,采用了同态滤波处理来去掉车牌图像的不均匀光照的影响,然后使用一种改进的Bernsen算法对车牌图像进行二值化。在实际图像处理中,经常遇到光线不均匀或光线异常反射的情况,二值化后图像不清晰,难以进行后续的处理,因此对光线不均造成的降质车牌图像进行增晰是非常必要的。1.光照的反射成像模型传统的一些空域方法,如局部对比度修正、局部直方图均衡和统计局部增强等,是根据图像的局部对比度特点进行亮度修正的,具有较好的局部增强性能。但这一类方法没有考虑图像信息的频率特征,因而不能达到突出高频信息、衰减由光照不均引起的低频信息的目的。基于照明反射模型的同态滤波同时考虑照明和反射特性,并且兼顾图像的高频细节和低频分量,因而可以得到较为满意的效果。照明反射模型如图,可以通过压缩亮度范围和增强对比度来增强图像、改善图像。图像与二维光强度函数有关,用f(x,y)表示。入射光强可以用i(x,y)(照明分量)表示,景物被物体的反射率用r(x,y)(反射分量)来表示,则有2.同态滤波算法同态滤波是一种图像亮度范围压缩和对比度增强的频域方法。整个同态滤波增强算法的流程图如图所示。对式两边取对数,得对两边进行傅里叶变换,得记为可用高通滤波函数H(u,v),以减少低频成分。H(u,v)常采用Butterworth高通滤波器:n=2,d=3。滤波后输出为进行反傅里叶变换,得将式的结果进行反对数变换exp[s(x,y)],就能获得同态滤波的结果。3.改进的Bernsen二值化算法利用基于全局的二值化思想对Bernsen算法进行了一些改进,并采用一种快速算法寻找局部窗口极值,使得此方法更加具有实用价值。实验证明该算法一般情况下优于单独采用Otsu法或Bernsen法。该算法实现步骤如下:5.1.4去噪处理由于天气、光照等因素影响,得到的汽车图像中不可避免地存在干扰。通过平滑处理可以减少噪声和干扰的影响。比较快速有效的平滑方法主要有均值滤波和中值滤波两种。1.均值滤波均值滤波也叫邻域平均法滤波,是将每个像素点灰度值用其周围各点的灰度平均值来取代。设原图像为f(x,y),平滑后的图像为g(x,y),它的每一个像素的灰度级由包含(x,y)邻域的几个像素的灰度级的平均值决定,即图像邻域平均法的平滑效果与所用的邻域半径有关。半径愈大,则图像的模糊程度越大。邻域平均法算法简单,计算速度快,主要缺点是降低噪声的同时使图像产生模糊。这种方法特别适用于消除麻点噪声。2.中值滤波中值滤波方法是一种非线性的图像平滑方法,其原理非常简单,用一个滑动窗口在图像上进行扫描,把窗口内包含的图像像素按灰度级升(或降)序排列起来,取灰度值居中的像素灰度为窗口中心像素的灰度,若窗口中有偶数个像素,则取两个中间值的平均。滑动窗口中亮度的中值不受个别噪声毛刺的影响,因此中值滤波相当好地消除了冲激噪声。中值滤波可以很好地消除孤立噪声点的干扰,更重要的是还能有效地保护边界信息,因此可以迭代使用。但算法实现比均值滤波要复杂一些,尤其是当处理图像的尺寸较大时,耗时比均值滤波长。在目标和背景的边界处的像素,当其邻域中大多数为目标点时,它取目标的灰度值,当其邻域中大多数为背景点时,它取背景的灰度值,不会造成图像模糊。当滑动窗口内有一类目标时,它们的均值和中值可以认为是相等的;当有两类目标时,它们的均值就没有意义,但中值能保证取到多的那一类。当窗口不大的时候,可以假定最多有两类目标。中值滤波的效果依赖于两个要素:邻域的空间范围和中值计算中涉及的像素数,当空间范围较大时,一般只取若干稀疏分布的像素作抽样中值计算。3.快速中值滤波按照中值滤波的定义,在每个像素位置上都要对一个矩形邻域内部的所有像素进行排序,显然,当原图像过大时,时间开销必定很大。一种比较有效的方法是:当窗口沿着行移动一列时,窗口内容的变化只是丢掉了最左边的列而被右侧列取代,对于i行j列的中值窗口,i·j-2i个像素没有变化,不需要重新排列,从而避免了对大量没有变动像素的比较。快速算法实现过程如下:(1)计算第一个窗口灰度直方图H(i)、中值m和窗口中小于中值的像素个数L。(2)当窗口沿列或者行的方向移动的时候,考虑移出的像素和移入的像素,重新修正窗口内直方图和L的大小:由移出的像素有:H(i)=(i)-1;若i≤m,则L=L-1;由移入的像素有:H(i)=(i)+1;若i≤m,则L=L+1。这样得到了当前窗口的直方图H(i)和窗口中小于前一个窗口中值的像素个数L。为了求出此时的中值,令K=(hw-1)/2,h、w为窗口的高度和宽度。(3)若L>K,则m=m-1,L=L-H(m),直到L≤K。(4)检验此时L+H(m)≤K成立与否,不成立,此时的中值为当前窗口的中值;否则L=L+H(m),m=m+1,然后再对上式进行检验。这里采用8邻域的均值滤波法和3×3窗口的中值滤波方法对原始车牌图像进行平滑去噪处理。如图5-1-7所示,采用8邻域的均值滤波对原始图像进行平滑处理,图像会产生模糊。而经过3×3的中值滤波后,能有效地去除图像中的冲激噪声,同时还能保持清晰的边缘。5.1.5水平差分在经过预处理后的车牌图像中,车牌区域具有与其他区域明显不同的特征:该区域边缘丰富,在垂直方向连通,水平方向灰度跳变率大。可利用水平差分的方法尽量去掉背景图像的干扰,同时突出车牌字符区域,如图所示。为了突出灰度变化频繁区域,水平差分累加值计算如下:5.1.6车牌定位算法1.传统的模板匹配法模板匹配技术是计算机图形、图像处理中一项非常重要的技术。它根据各种不同对象的需要来选择一个或者多个模板,在待匹配的图像中移动,将模板图像和原图像比对,找到与模板相匹配的区域。图像匹配算法大致可分为三种类型:基于灰度相关的图像匹配、基于特征的图像匹配和基于解释的图像匹配。两幅图像之间的匹配算法可以归结为二者的某一特征值的相关性度量。通过将模板图像与待匹配图像进行相关运算,得到一个相关值,根据这一相关值的大小就可以判断二者是否匹配。运用在车牌定位算法中的模板匹配是一种模糊匹配。即所制定的模板并不是一个具体的车牌,而是根据经验值设定的矩形模板。将矩形模板在待匹配的车牌图像中移动,不断地计算模板中像素的水平差分累加值,当模板中水平差分累加值达到最大的时,就找到了车牌的粗略位置。虽然这种方法能够找到车牌的位置,但是存在两种缺陷:一是模板尺寸的大小问题,如果给模板尺寸一个固定值,对于不同的图像,会产生不适应性;二是该算法运算时间比较长,不能满足算法实时性的要求。因此,需要对算法进行改进。2.基于数据流修正的自适应模板匹配法粗定位基于模板匹配中模糊匹配的思想,从模板尺寸及运算时间考虑,结合图像中目标区域的特征,本节设计了基于数据流修正的自适应方法来改变模板的大小,并提出了一种优化的模板匹配算法缩短了运算时间,有效避免了传统模板匹配法的种种缺陷。对差分后的图像进行水平(或垂直)投影,目标区域会出现不同于背景的连续而均匀的较大投影值。根据实际需要,设定适当的白像素投影阈值,用“1”表示投影图中白像素值大于阈值的信息,用“0”表示投影图中白像素值小于阈值的信息。为了减少数据的运算量以及所需存储器的数目,选取每5个像素宽度的信息生成数据流的一个信息位。把每个高为5个像素、宽为13个像素范围内的白像素累加,如果累加值大于设定的阈值,将对应的单元赋值为“1”;否则赋值为“0”。这样就形成了“0”“1”交替的数据流。当两个连续的“1”段中间产生“0”时,其数目比小于阈值的“0”段数目明显少,且与“1”之间的距离比较小,说明此时的“0”是噪声干扰,对数据流信息进行修正,作变“0”为“1”处理,即当两个连续的“0”段中间产生“1”时,其数目比小于阈值的“1”段数目明显少,且与“0”之间的距离比较小,说明此时的“1”是噪声干扰,对数据流信息进行修正,作变“1”为“0”处理,即n或N的值根据不同的投影图和实际需要而变动。车牌图像的水平投影图、数据流及数据流修正图如图所示。经过对数据流信息的修正,得到了由连续的“0”段、“1”段和“0”段组成的数据流,这样就明显看出,第一个起始1的位置和连续最后一个1的位置之间的距离就是模板的高度,即车牌的水平高度。对于不同的车牌图像,随着“1”段的高度变化,模板的高度也随之变化,从而得到自适应的模板尺寸。同样的方法可以得到模板的宽度。这样,将矩形模板与待匹配的图像进行比对,当模板中的水平差分累加值达到最大时,就是待匹配目标的大致位置,如图所示。3.投影法细定位经过粗定位后,车牌区域已基本被提取出来,此时图像中车牌区域特征更加明显。接着对粗定位后的图像进行边缘检测,为后面的细定位打下基础。传统的边缘检测算法,如sobel、prewitt算子,都是通过计算图像中小区域像素的差分来实现的,因此在检测边缘的同时也加强了噪声。本节以采用基于形态梯度的边缘检测为例。该方法对噪声较敏感但不会加强或放大噪声,有利于车牌区域的精确定位。一般用形态学的腐蚀和膨胀这两个最基本运算来解决形态梯度问题。选用的形态梯度为该梯度对孤立的噪声点不敏感,对于理想斜面边缘的检测效果很好。由于形态梯度能反映出图像的所有边缘,而车牌图像区是梯度变化较多的区域,车牌区域的边缘是人们最为感兴趣的,所以采用形态梯度边缘检测可以很好地突出车牌区域,如图所示。为了得到车牌字符的准确位置,仍然要对车牌和投影图进行分析。由于上下边框的连续性,边框上每个点的像素值相同,所以该处的像素差分值几乎为0。在水平投影图5-1-12中可以看到,车牌字符位置对应于投影图中连续的波峰区,由于车牌边框和字符之间没有字符,所以边框在投影图中必然对应于波谷位置。因此,只需从下到上搜索(因为一般情况下,牌照都挂在缓冲器上或附近,处于汽车图像的下半部分)水平投影图中两个有较大突变投影值的行号,如图中的A、B点,去掉A、B点行号上下部分即去掉了车牌上下边框,得到车牌字符区域的水平位置。去除左右边框的原理与去除上下边框的原理差不多,在去除左右边框时,对车牌区域的定位图像进行垂直投影,如图所示。由于左右边框的连续性,它们和上下边框一样,在投影图中的投影值最大,且基本上与车牌的高度相同。先找出垂直投影图中最大的投影值,然后自左向右和自右向左同时搜索两个突变的波谷位置,找到了这两个波谷后记录下它们的列号。这两列之间的区域就是去除了左右边框的车牌区域,图所示为最终定位结果。5.1.7车牌倾斜校正车牌图像在采集的过程中,由于拍摄距离、拍摄角度等原因使字符图像存在一定程度的倾斜,这样会造成单字切分的不准确甚至错误,从而进一步造成字符的错误识别。为了确保系统的正确识别率,有必要对变形字符图像进行几何校正。所谓图像校正,是指从具有畸变的图像中消除畸变的处理过程,消除几何畸变的过程叫作几何校正。在实际运用中,字符图像的畸变一般是由于输入设备位置变化而导致获取的图像产生缩放、旋转等几何畸变的,分析这些畸变不难发现它们都可以用原始图像坐标与畸变图像坐标之间的关系来描述。因此消除几何畸变恢复原图像的问题就转化为从畸变图像和两坐标之间关系求得无几何失真的图像问题。为了实现对变形字符图像的校正,必须确定变形字符图像有关的形变参数。一幅二值字符图像,也可以看作平面上的一个二维随机向量(X1,Y1),字符图像中的像素点即可作为二维随机向量(X1,Y1)的随机样本点来分析。为了方便起见,不妨设二维随机向量(X1,Y1)服从均匀分布且相互独立,图像平面内的字符像素点总数为N,字符点坐标为(xi1,yi1),其中0≤i≤N,则随机变量(X1,Y1)的数学期望为二维随机变量(X1,Y1)的样本方差为由两式可得为了便于分析,以字符图像中某一点为中心将图像旋转某一角度后,形成倾斜的字符图像,如图所示。这时倾斜字符图像的像素可以看作某一个新的二维随机向量(X2,Y2)的随机样本点。很明显,字符图像的字符像素点总数不变,仍为N,随机样本点坐标变换为(xi2,yi2),0≤i≤N,则随机变量(X2,Y2)的数学期望也随之变化为从视觉上看,原字符图像发生了旋转,但从变换的角度上看,只是对原二维随机变量作了一次正交线性变换;因此,变换前后的随机样本方差不会发生变化,即D(X1,Y1)=D(X2,Y2),代入式中,可得无论图像如何旋转,随机样本方差均保持不变,即两个独立随机变量X、Y各自方差的和不变,但随机变量X、Y各自的方差D(X)、D(Y)在总的随机样本方差D(X、Y)中的比重却在变化。为了方便分析随机变量X、Y在随机样本方差中的比重,这里定义了一个字符主方向判别函数:当字符图像围绕某一点旋转时,判别函数f(X′,Y′)呈周期性的变化,由图可知,当图像中字符沿轴方向书写时,判别函数f(X′,Y′)达到最大值。因此对某一倾斜字符图像的坐标进行旋转,使判别函数达到最大,这时轴所指方向被称为字符主方向,它对应于字符图像中字符书写方向。根据观察,由于图像输入设备位置变化造成的几何倾斜其范围一般在-π/4到π/4之间,所以对字符主方向的搜索方案可采用逐角度旋转式,这样对于几何倾斜范围在-π/4到π/4之间的字符图像,若最小角度分辨率为Δθ,则搜索次数为π/(2Δθ)。这种搜索策略的优点在于它思路简单,且可以方便地检测出搜索范围内的最大值。通过对图的分析可知,当图中字符围绕图中某一点旋转时,随机字符点阵在X坐标上投影的方差是旋转角度θ的一维函数。当字符图像的主方向在搜索范围-π/4到π/4之间时,该一维函数将出现一次最大值,且在搜索范围内呈单峰特性分布,对图所示的倾斜字符图像所在的范围内求取判别函数曲线,如图所示。通过对字符主方向的定义可看出,字符主方向就是图像中字符的主要书写方向,也是使判别函数达到最大时X′轴所指方向。如果将字符图像旋转使X′轴所指方向与水平轴重合,则校正了图像在该方向上的变形。为了分析直观,用一平行四边形框代表发生扭曲的字符图像。对如图所示的几何形变图像求取字符主方向,并旋转直角坐标直至X轴与字符主方向重合,从而校正了图像在字符书写方向上的变形。对图(b)的主方向旋转校正效果进行观察,可以发现通过字符主方向校正图像的主要形变已得到了校正。但进一步分析得知,由于在实际几何变形情况下,发生在X轴与Y轴方向上的形变角度不一定相等,所以经过主方向旋转校正后,字符图像只校正了发生在字符书写方向上的变形,而单个字符自身的扭曲却并没有得到校正。这里对变形的字符图像采取分步校正处理的步骤:(1)在-π/4到π/4的范围求取字符图像的主方向,并通过旋转图像坐标达到校正图像主方向上的形变。(2)根据求取主方向的基本原理求取字符水平扭曲角度,将图像在水平方向进行相同角度的扭曲从而达到校正的效果。在这里要指明求取扭曲角度与主方向是有差别的,求取主方向时是将字符图像以某一点为中心进行旋转,而求取字符水平变形角度时是将字符图像进行水平扭曲。(3)采用空间变换公式,将畸变图像校正。由于在变换过程中不可避免地使用到插值运算,从而会出现很多毛刺点,所以要对校正后的图像进行平滑处理。通过仿真实验表明,对发生形变的字符图像进行主字符方向的搜索来求取倾斜角并校正是一种行之有效的方法。同时该方法使用了较优化的快速搜索策略,可以大大减少计算时间,如图所示。该方法的一个缺陷是,整个算法是建立在字符图像只发生水平或垂直扭曲和旋转形变的基础之上的,对因镜头畸变或其他原因造成的非几何畸变校正效果受限。5.1.8字符分割与归一化在汽车牌照自动识别过程中,字符分割有承前启后的作用。它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块由两个字符组成,需要分割。一般分割出来的字符要进行进一步的处理,以满足下一步字符识别的需要。但是对于车牌的识别,并不需要太多的处理就已经可以达到正确识别的目的。在此只进行了归一化处理,之后还需要进行后期处理。5.1.9字符识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR算法,逐排检查有没有白色像素点,设置1≤j<n-1,若图像两边s(j)=0,则切割,去除图像两边多余的部分和上下多余的部分根据图像的大小,设置一阈值,检测图像的X轴,若宽度等于这一阈值则切割,分离出七个字符归一化切割出来的字符图像,与模板中字符图像的大小相匹配。基于模板匹配的OCR的基本过程如下:首先对待识别字符进行二值化并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。模板匹配的主要特点是实现简单,当字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高。综合模板匹配的这些优点可作为车牌字符识别的主要方法。模板匹配是图像识别方法中最具代表性的基本方法之一,它是将从待识别的图像或图像区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图像归于相应的类。也可以计算图像与模板特征量之间的距离,用最小距离法判定所属类。然而,通常情况下用于匹配的图像各自的成像条件存在差异,会产生较大的噪声干扰,或图像经预处理和规格化处理后,使得图像的灰度或像素点的位置发生改变。在实际设计模板的时候,是根据各区域形状固有的特点,突出各类似区域之间的差别,并将由处理过程引起的噪声和位移等因素都考虑进去,按照一些基于图像不变特性所设计的特征量来构建模板,就可以避免上述问题。通常采用相减的方法来求得字符与模板中哪一个字符最相似,然后找到相似度最大的输出。汽车牌照的字符一般有七个,大部分车牌第一位是汉字,通常代表车辆所属省份,紧接其后的为字母与数字。车牌字符识别与一般文字识别在于它的字符数有限,汉字共约50多个,大写英文字母24个,数字10个。为了实验方便,结合本次设计所选汽车牌照的特点,只建立了4个汉字24个字母与10个数字的模板。其他模板设计的方法与此相同。首先取字符模板,接着依次取待识别字符与模板进行匹配,将其与模板字符相减,得到的0越多就越匹配。把每一幅相减后的图的0值个数保存,即为识别出来的结果。5.1.10特殊情况的处理对于光照条件不理想的图像,可先进行一次图像增强处理,使得图像灰度动态范围扩展和对比度增强,再进行定位和分割,这样可以提高分割的正确率。而采用了色彩通道的牌照区域分割算法充分利用了牌照图像的色彩信息,简化了算法的实现,加快了图像的处理速度,具有较高的检出正确率,而且整个过程用MATLAB语言编程实现,无时间滞后感,可以满足实时检出的要求。但是在设计的过程中发现,使用另一幅图像后,识别效果始终没有那么理想。需要进行一定的设置后才能识别出相应的字符。在车牌字符分割的预处理中,用到了均值滤波、膨胀或腐蚀的处理。这对于有杂点的车牌是很有用的,因为这样可以把字符与字符之间的杂色点去除,只有白色的字符和黑色的背景存在,这样有利于字符分割的进行。字符识别过程使用的是模板匹配的方法,利用两幅图片相减的方法,找到相减后值最小的,即为相似程度最大的。模板的制作很重要,必须要用精确的模板,否则就不能正确地识别。由对于识别错误情况的分析可知,其主要原因有两个:一是牌照自身的污渍等影响了图像的质量;二是由于牌照字符的分割失败而导致的识别错误;三是由于部分字符的形状相似性,比如,B和8、A和4等字符,使识别结果可能发生混淆的情况。总之,尽管目前牌照字符的识别率还不理想,但是只要在分割出的字符的大小、位置的归一化,以及尝试提取分类识别能力更好的特征值和设计分类器等环节上进行再完善,进一步提高识别率是完全可行的。该任务主要解决了以下几个问题:(1)在背景的图像中如何定位分割牌照区域?(2)对分割下来的牌照字符如何提取具有分类能力的特征?(3)如何设计识别器?在车辆牌照字符识别系统的研究领域,近几年出现了许多切实可行的识别技术和方法,从这些新技术和方法中可以看到两个明显的趋势:一是单一的预处理和识别技术都无法达到理想的结果,多种方法的有机结合才能使系统有效识别能力提高。在本系统的设计中,也吸取了以上一些算法的思想,并结合实际,进行了反复比较和综合分析。二是在有效性和实用性的原则下,结合神经网络和人工智能的新技术的应用是研究的一个新方向。

任务5.2音频传输系统的设计

学习目标(1)掌握模拟信号数字化的方法。(2)掌握音频信号处理的常用算法。(3)了解数字化会议系统音频部分的系统框架。(4)了解数字化会议系统的通信协议。任务分析了解对模拟话音的采集、量化,并进行处理和传输过程,制定系统的实现方案及总体架构。掌握对模拟信号的采样、量化方法;从系统的角度出发选择器件,分析可行性,搭建试验平台;针对设计的方案完成硬件、软件部分的设计;最后进行整体的调试,完成预定的技术指标,从而实现较高质量的话音传输。利用FPGA、嵌入式、Zigbee等硬件及相应的外围电路、芯片完成话音传输系统的设计要求。5.2.1网络音频传输产生的意义目前音频网络化传输成为专业音频领域的主要研究方向。音频网络化传输具有极大的灵活性。首先,网络音频传输技术中的音频信号能够实现点对点或点对多点的传输,即一路输入信号可以传输到多个需要的点,并且这种连接方式是虚拟的,不需要专用的音频传输线进行物理上的连接;其次,网络传输技术是将音频数据以二进制码打包成的数据包形式进行传输的,能够有效减少音频信号在传输与处理过程中的衰减,提高了抗干扰能力,并且在传输容错及容量上较模拟音频传输技术有很大的提高;最后,当需要更改传输要求时,只需修改系统配置而不用更改硬件上的连线,弥补了传统模拟音频传输的操作复杂、不易维护等缺点。5.2.2基于FPGA的音频传输系统的设计1.系统的总体框架系统的总体框架如图所示。2.网络拓扑结构设计基于以太网的音频传输由于高保真音频数据一个通道占用的带宽达到2Mb以上,且是多通道传输,对以太网络造成巨大压力,也给网络的拓扑结构提出了新的要求:既要保证网络组合的灵活性,又要保证网络稳定,不出现阻塞,造成丢包或者延时,进而影响音质。这里设计的工作模式有三种:点对点传输模式、点对多点传输模式、菊花链传输模式。点对点传输模式:系统工作在点对点传输模式时,收发设备之间的网络流量不会影响网络中的其他设备,但数据只能定向发送。收发设备之间采用全双工模式进行通信。点对点连接方式是双向传输模式下,速度最快、延时最低的连接模式。该方式可以使用双网线作为热备份,在一根网线出现问题的情况下,另外一根网线会立即替换原来的线缆,保持音频传输的稳定可靠。点对多点传输模式:系统工作在点对多点传输模式时,发送端完成一次发送,由交换机将该数据广播至所有其他端口,不管网络中其他设备是否需要接收该数据。它把支持二层交换机作为传递中继,在二层交换位置,音频流只支持单向音频传递,在分支内部支持双向数据流。菊花链传输模式:系统工作在菊花链传输模式时,网络数据可双向流动并采用广播数据包模式。它的特点是可以不使用其他设备直接完成组网,音频流可以双向传输,延时会随着节点的增多而增加。3.系统节点的设计及工作原理在设计音频传输节点时,尽量考虑到系统的可升级性。将功能不相关的部分分离开,这样当某个模块性能达不到预期指标时,可单独对该模块进行更改,从而将硬件更改成本降到最低。网络音频传输系统由多个音频传输节点组网形成,本质上为局域网。各个节点均有自己的MAC地址。每个节点由4部分组成:输入信号处理子板、电源与数据传输底板、输出信号处理子板、数据处理核心板,如图所示。其中,输入信号处理子板包含输入音频输入信号处理板和A/D转换电路;输出信号处理子板包含输出音频信号处理板和D/A转换电路;数据处理核心板用于对网络数据和子板的音频数据进行相关处理;电源与数据传输底板包含电源电路和数据传输电路,电源电路用于提供输入信号处理子板、输出信号处理子板和数据处理核心板所需各种电源,数据传输电路用于在数据处理核心板和各子板之间传输音频数据。系统由多个音频传输子节点组成,各个子节点均有自己的MAC地址。系统工作时,输入信号处理子板对输入的模拟音频信号进行放大、滤波等处理,并对处理得到的信号进行A/D转换,主节点将A/D转换后的音频数据按以太网包格式进行封装,再通过以太网发送出去;从节点则对以太网上获取的音频数据包进行分解,提取需要的音频通道,然后发给输出通道,经过D/A转换,将得到的模拟音频信号进行I/V转换,补偿频率响应,然后再输出。4.信号处理流程输入信号处理子板电路模块如图所示。由于音频传输系统数据处理器采用FPGA,所以为了方便系统开发,减轻工作量,选择A/D转换器件时,首先考虑选用带有硬件配置工作模式的AD芯片。然后在候选器件中选择性能满足要求的器件。5.电源与数据传输底板的设计电源与数据传输底板有两个作用:向各子板和数据处理核心板提供电源,在子板和数据处理核心板之间传输数据。由于节点中数据处理核心板采用FPGA作为核心器件,涉及几组不同电源,考虑到FPGA运行的稳定性需要,底板只提供5V电源接口给数据处理核心板,再由数据处理核心板上的电源电路进行转换得到FPGA所需各种电源,输入信号处理子板和输出信号处理子板数量较多,如果将电源电路集成到子板上则会导致电压上升。合理的做法是将电源电路集成在底板上,根据实际需求,使两组或更多的子板共用一组电源。所以输入信号处理子板和输出信号处理子板所需的电源由底板的电源电路转换得到,而数据处理核心板所需电源则直接由本身的电源电路转换得到。设计底板电源电路时主要考虑以下两点:(1)满足输入、输出电压和电流需求,保证有30%左右的冗余量。在高保真音频系统设计中,要求电源有一定的冗余度,以满足信号放大的需求,避免出现失真。(2)选用噪声低、纹波系数小的LDO电源芯片。在专业音频领域,噪声是十分重要的指标。目前常见的电源转换芯片有两种:线性低压差稳压器(LDO)和直流开关电源(DC/DC)。LDO的优点在于其噪音低,静态电流小;直流开关电源则输出脉动和开关噪音较大。因此在选择底板电源芯片时,模拟电源部分必须选用噪声低、纹波系数小的LDO电源芯片。6.数据传输模块设计数据传输电路在数据处理核心板和各子板之间起着连接作用,由于机械设计要求,数据处理核心板和子板平行放置,核心板放置在最边上。这样核心板和子板之间必定存在较大的距离。系统设计时,可以定义两种不同的节点:一种是24通道输入、8通道输出;另一种为24通道输出、8通道输入。设计传输电路时可以将两种工作模式集成到同一电路中,根据需求配置成对应的工作模式。考虑到传输电路PCB在设计时,存在长距离走线,因此数据传输电路需要在I2S总线起始端加入总线缓冲器,以提高驱动力。为了减小长距离传输造成的信号反射与衰减,还要加入匹配电路,以保证信号的完整性。7.数据处理核心板设计系统硬件设计核心部分就是数据处理核心板的设计。该部分要完成最多达32通道的数字音频接口,以及具有热备份功能的双网络接口的设计。ARM、DSP等架构的处理器很难实现这样的功能,但是FPGA却能很好地实现,理由如下:(1)FPGA芯片种类设置灵活丰富。同系列的FPGA芯片可以做到管脚兼容,逻辑资源大小不同,这样能方便系统进行升级。(2)FPGA并行能力强。系统能实现16路I2S总线的并行操作,而目前为止没有任何一个型号的ARM或DSP具有这样的能力,只能采用FPGA。(3)FPGA工作速度快。由于FPGA的逻辑功能全部用硬件电路实现,不存在操作系统所产生的延时,故所有的延迟只来源于门电路,而一般门电路的延迟都在ns级别,也正好能够满足系统设计中实时音频传输与控制的要求。FPGA主要实现16路I2S总线数据的采集与播放、双MAC功能、主从节点音频采样时钟同步调整等功能。MAC占用的逻辑资源比较大,所以选用的FPGA规模不能太小。目前比较流行的FPGA主要由XILINX和ALTERA两家公司生产。FPGA选型过程中,需要考虑逻辑设计中所需的大概等效门电路规模、可用的I/O端口数目及类型、内部存储器RAM的大小和数目、锁相环的数目、器件的工作频率等几方面的因素。由于要在FPGA内部实现双MAC功能,需要占用比较多的逻辑资源,MAC与I2S总线进行数据交互也需要比较多的RAM资源,因而要保证一定的设计空间。数据处理核心板总体架构如图所示,主要包括处理器、网络模块、用户信息接口、数字音频接口、电源管理、存储器、配置模块七个部分。其中数字音频接口部分属于音频时钟域,由音频时钟驱动;其余部分均属于网络时钟域,由网络时钟驱动。这主要由音频采样的特殊格式所决定。音频采样所需的48kHz、44.1kHz等时钟无法由普通晶振分频或者倍频得到,而只能采用专用的音频晶振。网络模块包含两块PHY芯片,其中一路用于传输和接收数字音频信号,并通过MII接口与FPGA实现信息交互。另一路作为备份使用,如果当前运行的网络出现故障,备份系统可立即投入使用。数字音频接口通过I2S总线连接系统A/D与D/A转换芯片,用于发射或接收数字音频信号。存储器用于存储网络模块的信息和音频通道的映射信息。FPGA控制串行口下载音频通道的映射信息到存储器中。配置模块则用于存储FPGA配置文件,在系统上电时,加载信息到FPGA之中。8.PHY电路的设计网络功能是系统中十分重要的一环。良好的硬件设计是网络正常运行的基础。由于系统中FPGA内部已经实现了双MAC功能,实现了百兆以太网的控制操作功能,因而只需要外扩两个物理层芯片就可很方便地实现以太网功能。IEEE802.3协议中规定数据链路层包括逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层。数据帧的封装、解封、发送和接收功能由MAC子层独立完成。物理层(PHY)的电路结构随着传输介质和速率的不同有一定差异。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层可有效地屏蔽传输介质的差异,使网络从MAC层向上看起来是无差异的。因此MAC层和物理层的接口也称为介质无关MII接口(MediaIndependentInterface),包括分别用于发送器和接收器的两条独立信道,且每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号,包括TX_ER,TXD<3∶0>、TX_EN、TX_CLK、COL、RXD<3∶0>、RX_EX、RX_CLK、CRS、RX_DV等。MAC层和物理层的数据交换通过MII总线完成。9.FPGA的开发流程FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。FPGA的开发流程如图所示,包括电路功能设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。(1)电路功能设计。在系统设计之前,首先要进行的是方案论证和FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,如此循环,直到可以直接使用EDA元件库为止。(2)设计输入。设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方法是一种最直接的描述方法,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。目前,在实际开发中应用最广的就是HDL语言输入法,其主流语言是VerilogHDL和VHDL。(3)功能仿真。功能仿真也称为前仿真,是指在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。(4)综合优化。综合优化就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。(5)综合后仿真。综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。(6)实现与布局布线。实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。(7)时序仿真与验证。时序仿真也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。(8)板级仿真与验证。板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。(9)芯片编程与调试。芯片编程是指产生使用的数据文件,然后将编程数据下载到FPGA芯片中。5.2.3基于嵌入式的音频传输系统的设计1.总体结构本书主要介绍基于ARM7的数字音频的接收、解压、播放单元的总体结构,及每一模块部分的功能,以此来选择合适的硬件实现方案和软件操作平台,从而实现各模块的功能。总体结构如图所示。处理器作为整个单元的核心,完成各种数据的处理与交换工作。来自蓝牙接收模块的数据和来自SD卡的数据都将在这里处理之后再进行解码播放,同时还与输入/输出模块进行数据的交互。处理器作为整个系统的核心,对它附带的内存空间和程序存储空间,还有主频,都有一定的要求。数字音频解压播放模块可以将蓝牙接口接收到的音频数据进行解压之后实现实时播放,也可以选择先存储到SD卡中,需要时再播放,还可以对SD卡中存储好的音频数据进行解压播放。考虑到本设计对实时性的要求,可以采用解码效率高、功率消耗低的硬件解码。蓝牙接口作为整个单元与外界无线蓝牙设备进行通信,它将从外部蓝牙设备中接收数据并送给处理器,又将处理器要发送的数据发送到外部蓝牙设备中去。蓝牙工作在2.4GHz全球自由频段内,可以保证所有网络设备自由连通。输入/输出模块主要包括LCD显示模块、按键输入模块、语音输入模块、音频播放模块等。这些模块的设计提高了设计单元的人机交互功能。SD卡是数据存储单元,用来存储从蓝牙接收过来的数据,还可以存储数字音频处理单元录制的音频数据,这些数据可随身携带,需要时可随时播放。处理器会通过SPI接口将这些音频数据比特流的方式发送给芯片。2.系统硬件结构本设计单元以ARM7内核的LPC2148中央处理器为例,外扩SD卡存储接口、数字音频解码播放接口和无线蓝牙接口。它可以接收来自蓝牙上的数据,并将其存入SD卡中,还可以将这些音频数据通过SPI接口送往VS1003芯片解码播放。同时在设计中利用LPC2148处理器的一些GPIO口控制输入/输出模块,方便现场使用。这样就可以完整地实现一个无线数字音频接收、解压、播放单元设计。3.系统软件结构硬件部分是分模块设计的,系统的软件部分也相应采用了模块化的设计。软件部分主要包括如下模块:无线蓝牙数据传输、数字音频解压播放、SD卡存储、液晶显示处理、按键处理等。因为实现功能比较多,程序很复杂,稳定性不强,因此考虑采用添加嵌入式实时操作系统μC/OS-II,为每一个任务定制优先级和时间对应关系,然后应用程序采用无限循环方式。这样可以增强系统的可靠性,避免在系统工作时程序跑飞或陷入死循环,从而使整个系统的程序有序进行。5.2.4基于Zigbee的无线音频传输系统的设计WATS是无线音频传输系统(WirelessAudioTransmissionSystem)的英文简称,利用无线传感器网络技术传输音频数据。在本系统中,无线通信技术采用的是Zigbee技术,可实现短距离的语音信息传输。1.系统的总体结构无线音频传输系统的设计采用模块化方法,根据WMSN原理,设计了音频采集系统、无线通信系统和音频播放系统。1)音频采集系统2)无线通信系统3)音频播放系统2.无线音频节点的硬件结构在WATS硬件系统设计方面继承了典型无线传感器节点的设计方法,但也有与典型无线传感器节点不同的地方。3.系统软件结构1)音频处理模块设计要实现系统功能,不但要有硬件平台,还需编写相应的软件才能配合硬件完成系统的功能。2)语音编解码设计语音编码压缩与解编码压缩在无线语音传输网络中具有重要的作用。在无线多媒体传感器网络中,节点受到运算速率、能量、存储空间限制等影响,语音编解码算法直接关系到系统的效果。ADPCM编解码算法在技术实现复杂度、语音质量、延迟等方面上均适合无线音频传输系统的需要。3.系统软件结构1)音频处理模块设计要实现系统功能,不但要有硬件平台,还需编写相应的软件才能配合硬件完成系统的功能。2)语音编解码设计语音编码压缩与解编码压缩在无线语音传输网络中具有重要的作用。在无线多媒体传感器网络中,节点受到运算速率、能量、存储空间限制等影响,语音编解码算法直接关系到系统的效果。ADPCM编解码算法在技术实现复杂度、语音质量、延迟等方面上均适合无线音频传输系统的需要。由于音频信号是流媒体,数据量大,而Zigbee芯片的处理能力和存储空间都有限,因此必须对采集到的数据作压缩处理,以减少处理器处理时间和存储空间。音频能被有损压缩编码从而达到降低音频信号的数据比特率,其主要原理如下:(1)利用音频信号的相关性。音频信源是相关信源,经过采样和量化的信号之间有非常强的相关性,为了降低音频信号的比特率,可以尽可能地消去信号之间的相关性。一般来说,语音信号存在样本之间的短时相关和基音周期之间的长时相关。(2)利用人耳的掩蔽效应。当人耳接收很多个响度不等的声音时,会产生响度较高的频率成分影响较低频率成分的效果,使人不易察觉响度较低的频率成分。因此,人耳允许有较大的音频信号误差,可以利用这一掩蔽效应进一步降低压缩编码比特率。语音编码压缩处理是在处理系统接收到语音数据信号后进行的,语音编码压缩处理的过程如下:(1)初始化系统,如自适应量化器、反向自适应量化器和自适应预测器。过程为自适应量化器输出默认的信号值,在本系统中数值为0,反向自适应量化器收到自适应量化器的输出的信号值,随之产生一个初始化的默认的量化差分信号并与自适应预测器构成初始化的估计信号值。(2)输入的采样信号,信号值为16bit,与自适应预测器输出的估计信号值计算差分信号,过程为对输入的采样信号与估计信号值求差,得到差分信号d(k)。(3)差分信号通过自适应量化器量化,转换为ADPCM编码信号。(4)根据量化后的结果,调整反向自适应量化器的值,即步长,与自适应预测器重新计算重构信号并更新估计信号,并保存ADPCM编码信号值。(5)如还有输入信号,转入第(2)步,否则进入第(6)步。(6)退出。根据上面的过程,ADPCM编码压缩的数据流图如图所示。实现ADPCM编码算法的流程图如图所示。语音解编码压缩是在收到ADPCM编码数据后进行的,解编码压缩处理实质上就是编码过程的逆过程,其具体的过程如下:(1)初始化系统,如反向自适应量化器、自适应预测器。与编码不同的是,这里初始化只需要使各个模块处于就绪状态。(2)系统接收到输入的ADPCM编码数据大小为4bit,与反向自适应量化器计算出量化的差分信号值。(3)以量化的差分信号和上次更新的估计信号值作为参数计算出输出信号值。(4)将输出信号值作为参数进入自适应预测器,计算出估计信号值。(5)若还有输入信号,则转入第(2)步,否则进入第(6)步。(6)退出。ADPCM解编码压缩的数据流图如图所示。实现ADPCM解编码算法的流程图如图所示。4.无线网络的组建ZStack协议栈是支持基于IEEE802.15.4的Zigbee的协议栈。ZStack是基于轮转查询式操作系统的,其主函数在ZMain.c中。ZStack的作用一是初始化系统,即初始化硬件系统和软件系统所需的各个模块,二是开始执行操作系统实体。系统初始化流程图如图所示。Zigbee的通信频率定义在物理层,提供了三个不同的工作频率范围,并在这三个频段中定义了27个物理信道,通过物理层管理服务实体接入点写入物理层网络的基本信息,如信道号、扩频方式、数据率等。其分配信道的数据格式为:5B的同步包头、1B的物理层包头和写入物理层的基本信息。Zigbee规范规定如果当前没有网络连接,那么Zigbee协调器节点就启动新网络的建立过程。如果已经有网络存在,则网络层管理实体就终止该过程。当建网过程开始后,网络层首先请求MAC层对有效信道进行能量扫描,检测有无干扰。若扫描完成,则网络层管理实体将收到信道扫描成功的信息,并把信道排序,选择最优信道开始建网。音频传感器节点如要加入网络,首先需要网络建立者允许传感器节点加入网络。当汇聚节点和路由节点允许设备加入网络过程开始后,网络层管理实体不再允许MAC层修改PAN信息库信息。传感器节点开始加入网络。在Zigbee协议规范中,设备有以下三种方式加入网络:(1)联合方式:即子设备试图连接网络时,当父设备感知到子设备试图联网后,可以根据需要作出应答或拒绝子设备入网的决定。(2)直接方式:即子设备通过预先分配的父设备直接联网。(3)孤点方式:如果子设备暂时与父设备失去联系,则它将能以孤点方式重新入网。该过程由应用层控制NV信息决定是否加入网络。当传感器节点加入网络后,就可以开始数据传输了。没有连接到网络的传感器节点则丢弃收到的数据,并请求加入网络或报告错误。每个设备的网络层都维护一个递增的序列号,将序列号装载到需要发送的数据帧里,和校验号一起构成网络协议数据单元,然后由网络层传输。MAC层收到网络协议数据单元后,按照帧形式构建帧数据,最后发送出去,在Zigbee协议栈里通过调用数据请求函数实现发送。5.2.5音频传输系统中的典型问题解析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论