C4对人体轮廓检测的精度的实验分析与实验结果

FPGA/ASIC技术

206人已加入

描述

摘要  本文提出了一种实时并且精准的人体检测架构C4。C4在目前最高精确度下可以达到20帧每秒的检测速度,并且是在只使用一个处理线程和不使用GPU等硬件的情况下达到的。能达到实时而精确的检测源于以下两点:第一,相邻像素差值的符号是描述轮廓的关键信息;第二,CENTRIST描述子非常适合做人体检测,因为它编码了符号信息并且可以隐式地表达全局轮廓。使用CENTRIST描述子和线性分类器,我们提出了一种不需要显式生成特征向量的计算方法,它不需要图像的预处理或特征向量的归一化,只需要O(1)时间去测试一个图片区域。C4也非常适合进一步的硬件加速,我们在一个嵌入式的1.2GHz CPU上同样实现了20fps的高速人体检测。

人体检测

Ⅰ引言

人体检测在生活中应用广泛:监控系统和机场安全,自动驾驶和驾驶辅助系统,人机交互,互动娱乐,智能家庭和老人辅助,军方的寻人应用等。广泛的应用和挑战吸引了很多研究者参与到其中来。

本文的目的是以最少的误报率进行实时而精确的人体检测。在机器人系统上,计算效率尤其重要,不仅要达到实时的检测,还要做的占用尽量少的CPU资源,使得其他任务例如路径规划、导航等不会受到影响。

目前的人体检测在很多方面已经达到问题的前沿,例如:特征、分类器、速度、遮挡处理等,引文[1]~[11]做了详细论述。然而,至少还有两个重要问题没有得到解决:
(1)实时检测检测速度非常重要,因为实时检测是很多现实应用[12]的先决条件。
(2) 确定最重要的信息源 HOG[1]和LBP[8]特征在人体检测中取得了成功,但我们还不是很清楚的了解这些特征中最重要的信息是什么,或者说,为什么这些特征可以取得这么好的检测效果。

在本文中,我们认为这两个问题是紧密相关的,我们证明合适的特征选择会带来高效的检测结果。事实上,特征计算是现有方法的主要瓶颈,现有方法即使使用GPU的100+并行处理线程,也只能达到大约10fps的检测速率。大多数时间都耗费在了特征计算上(包括图像预处理、特征构建和特征向量归一化)。

本文主要解决了两个问题。第一,通过一系列精心设计的实验(见SectionⅢ-A)表明表征身体外沿的轮廓特征可以提供人体检测的重要信息。我们发现相邻像素差值的符号对于表示轮廓至关重要,但差值的大小没有符号信息重要。

第二,我们提出用轮廓线索(contour cues)进行人体检测,并表示成熟的CENTRIST[13]特征非常适合人体检测(见SectionⅢ-B)。CENTRIST编码了像素差值的符号信息,并且可以表示全局(大规模)轮廓。在SectionⅢ-C中,我们将CENTRIST与其他特征进行了对比。

CENTRIST特征在速度上非常吸引人,在SectionⅣ中,我们提出了一种不包括图像预处理和特征向量归一化的评价方法。事实上,没有必要显式地计算CENTRIST特征向量,因为它已经无缝的嵌入在分类器中,能够达到视频流检测速度。我们使用层级分类器,所以将此方法叫做C4:detecting humanContour using aCascadeClassifier and theCENTRISTdescriptor.

C4可以在不使用GPU的单线程上实现精确地实时人体监测。在SectionⅤ中,我们用两种评价方法展示实验结果,第一,在一个标准人体检测数据集上的实验结果;第二,在线检测结果,即在iRobot PackBot上的实验结果。特别的,我们还展示了基于实时行人检测的行人跟踪。我们将此检测系统提供给其他研究者使用。

Ⅱ相关研究工作

人体检测的精确度仍是主要研究方向,尤其是在低FPPI[2] (False Positive Per Image)时的高检测率。在此方面的研究主要向两个方向发展:特征和分类器。

人体检测中使用过各种特征,例如Haar[7],edgelet[10],然而HOG是使用最多的人体检测特征[1,3,4,6,8]。边缘在不同方向上的强度分布似乎可以有效地在图像中捕获人体。近来,LBP(LocalBinary Patern)方法的变体也表现出很大潜力[5][8]。最近人体检测趋向于联合多种信息源,例如颜色、局部纹理、边缘、运动等等[14,6,8,15],引入更多信息通道会提高检测精度,但同时也会增加检测时间。

在分类器方面,线性SVM由于速度快而被广泛使用。HIK SVM(Histogram IntersectionKernel SVM)[16][17]可以达到更高的精度,耗时有所增加[4]。

最近的研究还提高了人体检测的速度。层级(cascade)[7][11]和积分图[14][8]被广泛用来加速检测。然而,检测速度仍远低于帧率,所以人们使用GPU来做并行计算,例如,[9]中的系统达到了10fps,[8]中达到了4fps,两者都使用了GPU。在SectionⅣ中,我们展示了一种可以在不使用GPU的单线程上达到20fps的方法(并且此方法非常易于做GPU加速)。表Ⅰ对比了当前的几种快速检测方法的速度和精度,包括本文提出的C4方法。

人体检测


表Ⅰ,几种人体检测方法的速度比较。VGA分辨率是640*480,qVGA是320*240,精度单位是1FPPI(False Positive Per Image)

 

移动机器人平台上的人体检测系统已有很多相关研究工作[18,19,20,21],多数都是利用测距传感器(ranging sensor)[18][21]。3D传感器对于检测和跟踪有很大作用(人体位于地平面之上,可以在深度上被很好的分割),此方面也已经有一些不错的系统出现。然而这些方法有一个缺点:测距系统的解析度有限、临时采样率有限、难以处理强烈的室外光。因此,探索被动光电传感器例如摄像机的可用性变得更加重要。

Ⅲ使用CENTRIST描述子检测人体轮廓

A 像素差值的符号对于编码轮廓和人体检测至关重要

我们认为轮廓是人体检测中最有用的信息,而相邻像素差值的符号是对轮廓进行编码的关键。这两个假设都在本节有实验支持。

假设1:对于人体检测,最重要的就是编码轮廓信息,而这正是HOG描述子的关键。

局部纹理可能对检测有害,例如人衣服上的图案可能扰乱检测器。图1b是图1a的Sobel梯度图(计算图1a中每个像素的Sobel梯度,归一化到[0,255],然后替换原像素值)。Sebel图会平滑局部高频纹理信息,所以图1b中剩下的轮廓可以清晰地显示人体的位置。

人体检测

 

图1 (a)原图,(b)Sobel梯度图,(c)梯度符号图

Dalal的HOG论文[1]中的图6也表明在人体轮廓周围的图像块是HOG描述子中最重要的。然而,我们还没有清楚地知道HOG描述子中编码的到底是什么信息,使得它在人体检测中如此成功。

我们要通过实验表明轮廓是HOG描述子中编码的最重要的信息。我们使用论文[1]中的原始HOG检测器,但使用Sobel图进行测试。原始HOG SVM检测器使用轮廓和其他信息(例如有衣服上的纹理)交织在一起进行训练,这样训练出来的检测器如果在只有轮廓信息的Sobel图上能够检测出人体,就表明轮廓信息是HOG编码的主要信息。结果,检测精度在1FPPI时是67%,比[14]中评价的12个检测器中的7个都要好。

因此,我们相信轮廓是HOG描述子中用于人体检测的最重要的信息。C4和其他现有方法的最大不同是C4明确地从Sobel图中检测人体轮廓。

假设2:相邻像素间差值的符号是编码轮廓的关键信息。我们经常使用梯度来检测轮廓,而梯度是通过相邻像素做差来获得的。我们将说明差值的符号是编码轮廓的关键信息,而差值的幅值(大小)并没有符号重要。

为了证明此假设,对于给定的图像I,我们生成图像I’,I’与I保持相邻像素差值符号的一致,但差值大小被忽略。即

人体检测

上式中,I中的96对应I’中的3,因为存在比较路径:2<32<38<96。换句话说,虽然I’中忽略了差值的大小,但元素之间的空间相对位置仍会提供一种大小关系。此外,I和I’中的梯度幅值也会有很大不同。将图1b看做I,则图1c就是对应的I’(像素值变换到[0,255]区间),可以很容易地从中检测出人体轮廓。

我们仍通过实验验证假设2,使用原始HOG检测器在梯度符号图(类似图1c)上进行人体检测,在1FPPI时达到了61%的精度,比[14]中评价的7中方法的精度都要高。虽然在Sobel图和符号图上的检测精度都比较低,但要注意到,所用的分类器都是在原图上进行训练的,我们在没有改变原始HOG分类器的情况下就取得了比现有的一些方法还要高的精度。这充分证明了,人体检测中最有用的信息是人体的全身轮廓信息,而相邻像素的差值符号是编码轮廓信息的关键。

B CENTRIST描述子
我们建议使用CENTRIST描述子[13]来识别人体,因为它简洁的编码了关键的符号信息,并且不需要图像的预处理和后处理。CENTRIST意思是CENsusTRansform hISTogram。在此节中我们会说明为什么CENTRIST描述子适合人体检测,并将CENTRIST描述子与其他描述子进行对比(在SectionⅢ-C中)。

#p#CT比较像素点e#

CensusTransform(CT,普查变换)最初是为了建立局部区域的一致性而设计的[22]。CT比较像素点与其周围像素的灰度值大小,如下式所示:

人体检测

如果中心像素值大于或等于周围的某个像素值,对应位置的值为1,否则值为0。从像素值比较得到的这8个值以一定的顺序(我们以从左到右、从上到下的顺序)排列在一起,转换为[0,255]间的一个十进制数,这个数就是中心像素的CT值。CENTRIST描述子就是这些CT值的直方图[13]。

如公式(3)所示,CT值简洁的编码了相邻像素的差值符号信息。CENTRIST所遗漏的似乎只有捕获全局(大尺度)轮廓的能力。

对于给定的具有CENTRIST描述子h的图像I,和有匹配的CENTRIST描述子的图像I’,我们希望I’与I相似,尤其是在全局轮廓上相似。如图2所示,图2a是一个108*36的人体轮廓,我们将此图分割为12*4个块(block),每个块的大小是9*9。对于每个块I,我们找到具有相同CENTRIST描述子的图像I’。如图2b所示,根据CENTRIST描述子重建的图像与原图很相似,虽然图像的左边有些许错误,但人体轮廓的全局特征仍被很好的保留下来。

人体检测

 

图2 从CENTRIST描述子重建的图像

CENTRIST描述子不仅编码了最重要的局部差值符号信息,而且还隐式地编码了人体的全局轮廓信息,所以我们认为CENTRIST描述子可以很好的表达人体轮廓。

C 与HOG和LBP的比较
在本节我们将CENTRIST与HOG和LBP这两个最常用的人体检测描述子进行对比。

对于分类来说,同类别样本的特征向量应该彼此相似,不同类别样本的特征向量应该不相似。对于任意样本x,计算x与所有其他样本的相似度。设xin是同类别的样本中与x相似度最高的,xout是不同类别样本中与x相似度最高的。s(x,y)表示x与y的相似度,值越大表明相似度越高。很明显,我们希望sNN = s(x,xin)– s(x,xout)值是正的并且越大越好。sNN是正值表明x被最近邻规则正确分类。因此sNN是一个直观并且易计算的评价描述子是否适合分类的标准。

在图3中,我们在INRIA数据集[1]上对比了CENTRIST(在Sobel图上)和HOG(在原始图上)。我们使用2416个含人体的正样本,从1218个不包含人体的图中随机截取2436个不包含人体的负样本(每个图上截取2个)。图3a显示了CENTRIST和HOG的sNN值分布。相似度被归一化到[0,1]之间,负sNN值(在黑色虚线的左边)表示被最近邻规则分类错误。很明显CENTRIST的结果都在正确的一边(2.9%错误),而近乎一半的HOG结果在错误的一边(46%错误)。图3b进一步表明HOG的错误多数都在数据集的前一半,即含人体的正样本部分。

人体检测

 

图3a

 

人体检测

 

图3b

在[13]中已讨论过,HOG或SIFT描述子[23]描述的更多是图像的详细局部纹理信息,而不是结构属性(例如轮廓)。我们进一步推测这是由于HOG中使用的局部差值大小描述的更多是局部纹理信息。很明显我们也无法从HOG或SIFT描述子重建一个图像。在图3中,HOG描述子使用L2范数归一化,相似度s(x,y) = xTy;对于CENTRIST描述子,使用直方图交叉核[24]来计算相似度。

CENTRIST描述子和LBP很相似,如果我们将公式(3)中的所有1变为0、0变为1,则修改后的公式就是计算3*3区域的LBP值[25]的一个中间步骤。然而,更重要的区别是LBP值如何使用。人体检测方法中使用统一LBP(uniform LBP)[5][8],非统一LBP放在一起,由于非统一LBP被丢弃了,无法根据LBP描述子重构全局轮廓。此外,[5][8]中对像素值进行了插值处理,使得描述子只能编码模糊过的重要图像信息(相邻像素差值符号)。我们计算了统一LBP描述子的sNN分布,有6.4%的最近邻分类错误率,比CENTRIST(2.9%)的两倍还多,但要好于HOG(46%)。我们猜想是LBP中不完整且模糊的符号信息对于噪声和局部纹理干扰的敏感度没有HOG描述子那么高。

Ⅳ快速线性方法和检测框架

鉴于CENTRIST描述子的优点,我们使用它来进行人体检测。使用108*36大小的检测窗口,将检测窗口分为9*4个块(block),每个块的大小为12*9,含108个像素。类似论文[1],我们将每个相邻的2*2个块组成超级块(super-block),并从每个超级块中提取CENTRIST描述子。超级块之间有一半的重叠,所以一个检测窗口内共有共有个超级块,由于每个超级块中CT值(取值范围为[0,255])的统计直方图为256维,所以特征向量的维数是256*24=6144维。由于CT值的计算需要3*3的区域,所以会忽略超级块周围一像素宽的边缘。

A 使用线性分类器进行快速扫描
假设我们已经训练好了一个线性分类器ω∈R6144,我们可以根据对应的超级块将ω分割为小的单元。也就是说,ω可以看做是24个ωi,j∈R256,1≤i≤8,1≤j≤3的串接。对于给定的特征向量为f(同样分割为fi,j)的图像区域,如果满足下式就将其分类为含有人体:

人体检测

只需要一个积分图来计算公式(9),即节省内存空间又节省时间。实际上,公式(9)计算起来要比公式(7)快3到4倍,并且公式(9)是通用的,可被用来加速其他计算。

这里所描述的方法不包括图像预处理(例如平滑)和特征向量的归一化。事实上,特征提取部分是无缝嵌入到分类器中的。这些特性一起构成了一个实时人体检测系统。

B 检测框架
在训练方面,使用108*36的正样本集P以及不包含任何人体的负样本原图集合N,从N中随机裁取108*36大小的区域得到负样本集合N1,用P和N1训练线性SVM分类器H1。然后使用二次训练程序(bootstrap 自举法、自助法)产生一个新的负样本集合N2,也就是用H1在负样本原图N上多尺度穷尽搜索误报的负样本。然后用P和N2训练分类器H2,继续此迭代过程直到负样本原图N中的所有区域都被H1,H2…中的至少一个分类为不含人体。最后使用正样本集合P和所有Ni的并集训练最终的分类器Hlin。

线性SVM分类器可以保证检测速度,但HIK核SVM分类器可以达到更高的分类精度[17][4]。所以我们再训练一个HIK SVM分类器,使用Hlim在N上自举(bootstrap)出一个新的负样本集合Nfinal,使用[27]中的方法训练HIK SVM分类器,叫做Hhik。在检测中,使用有两个节点Hlin和Hhik的级联方法。

我们将这种方法叫做C4,因为是使用CENTRIST描述子和级联分类器基于人体轮廓信息检测人体:detecting human basedon theirContour informationusing aCascadeClassifier and theCENTRIST descriptor.

C 机器人上的行人检测
我们将C4算法集成到一个机器人iRobot PackBot上,目的是实现机载行人检测和跟踪。首先利用TYZX G2立体摄像机捕捉图像,然后使用英特尔1.2GHz的酷睿2双核CPU处理图像。我们使用原始图像进行检测,利用距离信息估计到人体的距离,使用粒子滤波进行行人跟踪。最后,向机器人底盘和脖子转轴发出命令进行跟踪。

我们将上面描述的方法和使用立体数据的当前最优方法进行比较。我们用距离图像进行人体位置的假设。使用RANSAC算法从立体数据中估计地平面的位置,沿着地平线采样深度信息。利用深度信息和地面坐标,可以计算出包含站在给定位置和距离的地面上的人体的包围盒。这个计算出的包围盒大大减少了检测窗口的数量,从而减少计算量和误报率。图4a,4b,4c显示了C4算法的原始检测结果,根据立体数据预测的结果以及C4在预测结果上的检测结果。

人体检测

 

人体检测

 

人体检测

 

图4 机器人上的检测示例。(a)C4算法的原始检测结果,(b)C4结合立体数据的结果,(c)C4结合立体数据处理后的结果。其中的绿线是用立体数据估计的地平面。

在机器人上应用时,C4算法使用了3层节点的级联分类器而不是原来的2层节点(速度更快但精度低)。默认的检测流程如下:检测系统在多尺度空间上进行搜索,每个尺度的每个可能的位置上用分类器判断是否有行人。在缺乏其他信息的情况下,这是唯一可靠的检测方法。然而,当有其他信息可用时,我们应该用这些信息来减少搜索窗口的数目,减少误报率。特别地,我们可以使用从立体摄像机获得的地平面信息。例如,图4a显示了使用C4算法在所有可能的窗口上进行行人检测的结果,产生了很多冗余窗口,没有考虑到在某些位置是根本不可能出现人体的这一事实[28]。行人必须站在地面上,根据这一事实可以限制搜索范围,如图4b所示的C4加立体数据的结果。然后再过滤多余的包围盒,即得到处理后的结果,如图4c(在SectionⅤ-C中有后处理的详细说明)。

Ⅴ结果

我们在INRIA数据集上做了实验,在SectionV-A到V-C中讨论了C4的速度和精度,在SectionV-D中讨论在机器人上的实验结果。

INRIA数据集中共有2416个正样本图片,1218个负样本原图。我们去掉样本中人体四周的像素,将样本都裁剪成108*36大小。测试时使用暴力搜索查找图片所有可能的位置是否含有人体,对测试图像进行0.8倍的连续降采样,并以步长为2的网格进行扫描。

我们使用Dollar的”Pedestrian detection:A benchmark”(CVPR2009)[2]中的groundtruth和评价标准。检测到的矩形框Rd和groundtruth的矩形框Rg之间的关系如公式(10)所示则被认为是正确匹配的:

人体检测

我们同样遵守[2]中规定的一个groundtruth矩形框最多匹配一个检测到的矩形框的。

A 检测速度
C4能够达到比现有人体检测算法更高的速度。在640*480的20fps视频上,使用单核2.8GHz处理器,现有的最快系统(保证有较低的虚警率和较高的检测率)能达到大约10fps[9],但它是使用了GPU的并行处理。详细的对比结果见表1。

实时处理是很多人体检测应用所必须的特性。我们的系统在一些领域已经可以应用,例如机器人。然而,还有很多可以提升速度的空间,使得C4可以适应更多应用的要求,例如自动驾驶辅助系统。表Ⅱ给出了C4系统中不同模块的时间花费,这些模块都对于硬件加速(例如GPU)非常友好。

人体检测

 

表Ⅱ,各模块花费时间

不需要显式地构造Hlin的特征向量并不是使得C4如此快的唯一原因。在INRIA数据集上进行的测试表明,第一级线性分类器Hlin是一个强大的分类器,可以过滤大约99.43%的图片区域,只有不到0.6%的图片区域需要HIK核分类器Hhik的处理。C4处理INRIA测试集中的所有图片用了27.1秒,而HOG检测器[1]需要2167.5秒(所以C4相对于HOG大约有80倍的加速)。

C4在小分辨率的图片上速度更快,在480*360的YouTube视频上速度达到36.3fps,在320*240大小的视频上能达到109fps。

B 在INRIA数据集上的检测精度
图5显示了C4在FPPW(False Positive PerWindow)和FPPI(False Positive PerImage)两种精度指标上与HOG的对比。HOG用的是论文[1]中的可执行文件,在与其他算法对比时,我们直接使用所发表论文中的精度数值。

人体检测

 

图5 C4与HOG的精度对比

C4在0.96FPPI时能达到83.5%的检测率,与INRIA数据集上的当前最优结果(state of the art)具有可比性,例如ChnFtrs[14]和HOG-LBP[8],这两个算法在1FPPI时都能达到大约86%的检测率。这两个方法中都使用了多特征融合,C4中也可以使用多特征融合来改善效果。C4比HOG的检测精度高(在1FPPI时是74.4%),并且比[14]和[2]中对比的很多其他方法都要好。

图5b显示了Hhik的FPPW结果(计算FPPW曲线时没有使用Hlin)。FPPI与FPPW并不是线性相关的,但有相似的趋势。在误报率大于10-4(FPPI曲线中是0.1)时,C4的结果要优于HOG,在较低的误报率时不如HOG好,但两者的曲线在最左边会收敛在一起。

C 后处理的重要性
图5中,C4和HOG的曲线分别在10-1FPPI和10-4FPPW处相交,这是由非极大值抑制(NMS)引起的。在C4中,如果某个位置检测到的矩形框小于3个,就会将其看做误报。这个要求不会影响正确检测,因为由于滑动窗口步长为2所以真正有人的位置周围往往有很多检测到的矩形框。

较小的移动步长意味着非极大值抑制会大大减少误报的个数,如图6所示,在两幅图像中分别有17个和5个(中间有两个距离非常近)误报窗口,进行非极大值抑制后,第一张图只有1个误报,第二张图中的误报全部消除了(不懂为什么)。

人体检测

 

图6 非极大值抑制消除误报

图5a中的HOG曲线与论文[14]中的略有不同。在图5a中,HOG在所有测试图只有1个误报的情况下检测率为34%,而在[14]中仅为10%。相反,[14]中HOG在1FPPI时能达到更高的检测率(77%),我们的实验中为74%。虽然不能清楚地知道造成这些差别的原因是什么,但我们认为非极大值抑制和检测窗口的紧缩是重要原因。

在训练时我们使用非常紧凑的108*36大小的窗口,在后处理阶段将检测窗口松弛到120*42大小。在[2]或[1]中使用的过度松弛的检测窗口对于降低误报率是有害的。

D 在机器人上的检测结果
为了更好地了解机器人上使用的联合方法(C4加立体数据),我们在iRobot的Bedford设备搜集的图像上进行了测试。图7a和图7b显示了详细分析结果,图7a是ROC曲线,图7b是precision-recall曲线,其中还有不同级联级别的结果分析。

人体检测

 

图7a

 

人体检测

 

图7b

ROC曲线表明加入立体信息后误报减少,然而,检测率的峰值小于无立体信息的独立C4,这可能是由于独立C4并不是由在地平线上的人体所训练得来的。precision-recall曲线同样表明在高recall率时加入立体信息precision会增加,同样recall率的峰值不如独立C4高。图中展示了ROC和precision-recall曲线在不同级联级别的对比结果,表明了级联分类器对性能的提升作用。

总之,加入立体信息的联合方法有助于减少误报率,增加检测速度。联合方法可以减少60%的计算量,并将漏检率降低5倍。

Ⅵ 总结和未来的工作
在此论文中我们提出了一个实时而精确的人体检测器C4,它使用轮廓线索、级联分类器和CENTRIST描述子检测人体。

首先,我们通过精细设计的实验,证明轮廓是人体检测中最重要的信息源,并且相邻像素差值的符号是编码轮廓的关键。CENTRIST[13]特别适合人体检测,因为它简洁的编码了符号信息,并且可以捕获全局轮廓信息。

本文的主要贡献是快速人体检测,C4可以在640*480的图像上只使用一个处理线程达到20fps,并且达到与当前最优的检测精度可比的精度。

CENTRIST不需要耗时的预处理和特征向量归一化操作,并且,使用线性型分类器和CENTRIST,我们不需要显式生成特征向量,只需要O(1)时间来表示一个图像块。

当前C4的检测精度不如[8]和[2]中描述的方法,然而,通过使用[8]和[2]中的多特征融合方法,C4也可以改善检测精度。此外,C4对于硬件加速非常友好。

最后,我们在配备Intel酷睿2双核1.2GHz CPU的机器人iRobot PackBot上,将C4与立体视觉信息融合,在不影响机器人其他功能的前提下达到了精确的实时人体检测效果。

论文下载:[2011 ICRA]Real-Time Human Detection Using Contour Cues

南京大学吴建鑫教授的主页:,其中可下载C4的源码

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分